WordPress/wp-includes/js/dist/block-library.js.map

1 line
646 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/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/archives/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/archives/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/audio/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/audio/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/edit-panel/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/indicator/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/button/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/button/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/categories/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/categories/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/classic/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/classic/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/code/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/code/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/columns/column.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/columns/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/cover/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/constants.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/core-embeds.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/icons.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/settings.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/util.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/inspector.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/gallery-image.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/heading-toolbar.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/html/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/image-size.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-comments/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-comments/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-posts/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-posts/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/list/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/media-text/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/media-text/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/media-text/media-container.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/missing/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/more/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/more/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/nextpage/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/nextpage/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/paragraph/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/paragraph/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/preformatted/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/pullquote/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/pullquote/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/quote/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/separator/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/shortcode/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/spacer/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/subhead/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/state.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/template/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/text-columns/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/verse/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/video/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/video/index.js","webpack://wp.[name]/./node_modules/classnames/dedupe.js","webpack://wp.[name]/./node_modules/classnames/index.js","webpack://wp.[name]/./node_modules/memize/index.js","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]/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","__experimentalGetReusableBlock","isFetchingReusableBlock","__experimentalIsFetchingReusableBlock","isSavingReusableBlock","__experimentalIsSavingReusableBlock","getBlock","ref","withDispatch","dispatch","fetchReusableBlocks","__experimentalFetchReusableBlocks","updateBlockAttributes","updateReusableBlockTitle","__experimentalUpdateReusableBlockTitle","saveReusableBlock","__experimentalSaveReusableBlock","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","_x","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","selectId","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","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","getDeprecatedLayoutColumn","originalContent","doc","implementation","createHTMLDocument","columnMatch","innerHTML","classList","classListItem","match","Number","isEligible","innerBlocks","isFastPassEligible","some","innerBlock","reduce","result","columnIndex","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","instructions","overlayColorClass","Math","round","backgroundImage","HOSTS_NO_PREVIEWS","ASPECT_RATIOS","DEFAULT_EMBED_BLOCK","WORDPRESS_EMBED_BLOCK","common","embedTwitterIcon","keywords","patterns","embedYouTubeIcon","embedFacebookIcon","embedInstagramIcon","embedWordPressIcon","responsive","embedAudioIcon","embedSpotifyIcon","embedFlickrIcon","embedVimeoIcon","others","embedVideoIcon","embedContentIcon","embedPhotoIcon","embedRedditIcon","embedTumbrIcon","getEmbedEditComponent","switchBackToURLInput","setUrl","maybeSwitchBlock","getAttributesFromPreview","setAttributesFromPreview","setAspectRatioClassNames","getResponsiveHelp","toggleResponsive","handleIncomingPreview","editingURL","preview","hasPreview","hadPreview","switchedPreview","switchedURL","cannotEmbed","photo","photoPreview","thumbnail_url","renderToString","matchingBlock","findBlock","isFromWordPress","allowResponsive","previewDocument","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","foreground","getEmbedBlockSettings","commonEmbeds","embedDefinition","otherEmbeds","embedAttributes","blockDescription","core","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","getThemeSupports","previewIsFallback","themeSupports","badEmbedProvider","wordpressCantEmbed","data","status","validPreview","embedClassName","matchesPatterns","pattern","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","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","property","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","linkTarget","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","__experimentalGetSettings","formats","date","post","decodeEntities","rendered","date_gmt","format","dateI18n","latestPostsQuery","pickBy","orderby","isUndefined","categoriesListQuery","listContentSchema","ul","ol","li","ordered","values","multiline","toHTMLString","join","create","LINE_SEPARATOR","multilineTag","multilineWrapperTags","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","onMediaAltChange","newMediaAlt","mediaTextGeneralSettings","renderMediaArea","DEFAULT_MEDIA_WIDTH","mediaTypeRenders","MediaContainer","renderToolbarEditButton","onResize","onResizeStop","enablePositions","mediaElement","renderImage","renderVideo","renderPlaceholder","MissingBlockWarning","convertToHTML","originalName","originalUndelimitedContent","hasContent","hasHTMLBlock","actions","messageHTML","replaceBlock","MoreEdit","onChangeInput","defaultText","customText","ENTER","getDefaultBlockName","noTeaser","toggleNoTeaser","inputLength","multiple","dataset","moreTag","noTeaserTag","compact","NextPageEdit","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;AAAA;AAAe;AACf;AACA,C;;;;;;;;;;;;ACFA;AAAA;AAAe;AACf;AACA,iDAAiD,gBAAgB;AACjE;AACA;;AAEA;AACA;AACA,C;;;;;;;;;;;;ACRA;AAAA;AAAe;AACf;AACA;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACNA;AAAA;AAAe;AACf;AACA;AACA;AACA,C;;;;;;;;;;;;ACJA;AAAA;AAAA;AACA,iBAAiB,kBAAkB;AACnC;AACA;AACA;AACA;AACA;AACA;AACA;;AAEe;AACf;AACA;AACA;AACA,C;;;;;;;;;;;;ACdA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,GAAG;AACH;AACA;;AAEA;AACA,C;;;;;;;;;;;;ACbA;AAAA;AAAe;AACf;AACA,mBAAmB,sBAAsB;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,C;;;;;;;;;;;;AChBA;AAAA;AAAe;AACf;AACA;AACA;AACA;AACA,C;;;;;;;;;;;;ACLA;AAAA;AAAA;AAA8C;AAC/B;AACf;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,kBAAkB,+DAAc;AAChC,C;;;;;;;;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AACA;AACA;;AAEA;AACA;;AAEA,gBAAgB;;AAEhB;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;AACA;;AAEA;;AAEA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA,KAAK,KAA6B;AAClC;AACA;AACA,EAAE,UAAU,IAA4E;AACxF;AACA,EAAE,iCAAqB,EAAE,mCAAE;AAC3B;AACA,GAAG;AAAA,oGAAC;AACJ,EAAE,MAAM,EAEN;AACF,CAAC;;;;;;;;;;;;ACnDD;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA,eAAe,SAAS;AACxB;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA,cAAc,SAAS;AACvB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,MAAM,KAA+B,GAAG,EAMtC;;AAEF;AACA;;;;;;;;;;;;ACpHA;AACA,CAAC;;AAED;AACA,mBAAmB,KAA0B;AAC7C;AACA,kBAAkB,KAAyB;AAC3C;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,sCAAsC,EAAE,I;;;;;;;;;;;ACArD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,uCAAuC,EAAE,I;;;;;;;;;;;ACAtD,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,uCAAuC,EAAE,I;;;;;;;;;;;ACAtD,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,6CAA6C,EAAE,I;;;;;;;;;;;ACA5D,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,iCAAiC,EAAE,I","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 = \"./node_modules/@wordpress/block-library/build-module/index.js\");\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 * 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';\nimport { G, Path, SVG } from '@wordpress/components';\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 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\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';\nimport { SVG, Path } from '@wordpress/components';\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 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\ttype: 'string',\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 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\t__experimentalGetReusableBlock: getReusableBlock,\n\t\t\t__experimentalIsFetchingReusableBlock: isFetchingReusableBlock,\n\t\t\t__experimentalIsSavingReusableBlock: isSavingReusableBlock,\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\t__experimentalFetchReusableBlocks: fetchReusableBlocks,\n\t\t\tupdateBlockAttributes,\n\t\t\t__experimentalUpdateReusableBlockTitle: updateReusableBlockTitle,\n\t\t\t__experimentalSaveReusableBlock: saveReusableBlock,\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 { G, Path, SVG } from '@wordpress/components';\nimport { __, _x } 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\ttype: 'string',\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: __( 'Prompt visitors to take action with a custom 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: _x( 'Rounded', 'block style' ), isDefault: true },\n\t\t{ name: 'outline', label: __( 'Outline' ) },\n\t\t{ name: 'squared', label: _x( 'Squared', 'block style' ) },\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 * External dependencies\n */\nimport { times, unescape } from 'lodash';\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 { withInstanceId, compose } from '@wordpress/compose';\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, instanceId, className } = this.props;\n\t\tconst parentId = showHierarchy ? 0 : null;\n\t\tconst categories = this.getCategories( parentId );\n\t\tconst selectId = `blocks-category-select-${ instanceId }`;\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<label htmlFor={ selectId } className=\"screen-reader-text\">\n\t\t\t\t\t{ __( 'Categories' ) }\n\t\t\t\t</label>\n\t\t\t\t<select id={ selectId } className={ `${ className }__dropdown` }>\n\t\t\t\t\t{ categories.map( ( category ) => this.renderCategoryDropdownItem( category, 0 ) ) }\n\t\t\t\t</select>\n\t\t\t</Fragment>\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}\nexport default compose(\n\twithSelect( ( select ) => {\n\t\tconst { getEntityRecords } = select( 'core' );\n\t\tconst { isResolving } = select( 'core/data' );\n\t\tconst query = { per_page: -1 };\n\n\t\treturn {\n\t\t\tcategories: getEntityRecords( 'taxonomy', 'category', query ),\n\t\t\tisRequesting: isResolving( 'core', 'getEntityRecords', [ 'taxonomy', 'category', query ] ),\n\t\t};\n\t} ),\n\twithInstanceId\n)( CategoriesEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { SVG, Path } from '@wordpress/components';\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 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 { __, _x } from '@wordpress/i18n';\nimport { Path, Rect, SVG } from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/freeform';\n\nexport const settings = {\n\ttitle: _x( 'Classic', 'block title' ),\n\n\tdescription: __( 'Use the classic WordPress editor.' ),\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: __( 'Display code snippets that respect your spacing and tabs.' ),\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 { Path, SVG } from '@wordpress/components';\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 } from 'lodash';\nimport classnames from 'classnames';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, RangeControl, G, SVG, Path } 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\n/**\n * Given an HTML string for a deprecated columns inner block, returns the\n * column index to which the migrated inner block should be assigned. Returns\n * undefined if the inner block was not assigned to a column.\n *\n * @param {string} originalContent Deprecated Columns inner block HTML.\n *\n * @return {?number} Column to which inner block is to be assigned.\n */\nfunction getDeprecatedLayoutColumn( originalContent ) {\n\tlet { doc } = getDeprecatedLayoutColumn;\n\tif ( ! doc ) {\n\t\tdoc = document.implementation.createHTMLDocument( '' );\n\t\tgetDeprecatedLayoutColumn.doc = doc;\n\t}\n\n\tlet columnMatch;\n\n\tdoc.body.innerHTML = originalContent;\n\tfor ( const classListItem of doc.body.firstChild.classList ) {\n\t\tif ( ( columnMatch = classListItem.match( /^layout-column-(\\d+)$/ ) ) ) {\n\t\t\treturn Number( columnMatch[ 1 ] ) - 1;\n\t\t}\n\t}\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\t// Since isEligible is called on every valid instance of the\n\t\t\t\t// Columns block and a deprecation is the unlikely case due to\n\t\t\t\t// its subsequent migration, optimize for the `false` condition\n\t\t\t\t// by performing a naive, inaccurate pass at inner blocks.\n\t\t\t\tconst isFastPassEligible = innerBlocks.some( ( innerBlock ) => (\n\t\t\t\t\t/layout-column-\\d+/.test( innerBlock.originalContent )\n\t\t\t\t) );\n\n\t\t\t\tif ( ! isFastPassEligible ) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// Only if the fast pass is considered eligible is the more\n\t\t\t\t// accurate, durable, slower condition performed.\n\t\t\t\treturn innerBlocks.some( ( innerBlock ) => (\n\t\t\t\t\tgetDeprecatedLayoutColumn( innerBlock.originalContent ) !== undefined\n\t\t\t\t) );\n\t\t\t},\n\t\t\tmigrate( attributes, innerBlocks ) {\n\t\t\t\tconst columns = innerBlocks.reduce( ( result, innerBlock ) => {\n\t\t\t\t\tconst { originalContent } = innerBlock;\n\n\t\t\t\t\tlet columnIndex = getDeprecatedLayoutColumn( originalContent );\n\t\t\t\t\tif ( columnIndex === undefined ) {\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( 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 {\n\tIconButton,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n\tToolbar,\n\twithNotices,\n\tSVG,\n\tPath,\n} 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\ttype: 'string',\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 an image or video with a text overlay — 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\tinstructions: __( 'Drag an image or a video, upload a new one or select a file from your library.' ),\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\ttype: 'string',\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","// These embeds do not work in sandboxes due to the iframe's security restrictions.\nexport const HOSTS_NO_PREVIEWS = [ 'facebook.com' ];\n\nexport const 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\nexport const DEFAULT_EMBED_BLOCK = 'core/embed';\nexport const WORDPRESS_EMBED_BLOCK = 'core-embed/wordpress';\n","/**\n * Internal dependencies\n */\nimport {\n\tembedContentIcon,\n\tembedAudioIcon,\n\tembedPhotoIcon,\n\tembedVideoIcon,\n\tembedTwitterIcon,\n\tembedYouTubeIcon,\n\tembedFacebookIcon,\n\tembedInstagramIcon,\n\tembedWordPressIcon,\n\tembedSpotifyIcon,\n\tembedFlickrIcon,\n\tembedVimeoIcon,\n\tembedRedditIcon,\n\tembedTumbrIcon,\n} from './icons';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const common = [\n\t{\n\t\tname: 'core-embed/twitter',\n\t\tsettings: {\n\t\t\ttitle: 'Twitter',\n\t\t\ticon: embedTwitterIcon,\n\t\t\tkeywords: [ 'tweet' ],\n\t\t\tdescription: __( 'Embed a 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: {\n\t\t\ttitle: 'YouTube',\n\t\t\ticon: embedYouTubeIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'video' ) ],\n\t\t\tdescription: __( 'Embed a YouTube 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: {\n\t\t\ttitle: 'Facebook',\n\t\t\ticon: embedFacebookIcon,\n\t\t\tdescription: __( 'Embed a Facebook post' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/www\\.facebook.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/instagram',\n\t\tsettings: {\n\t\t\ttitle: 'Instagram',\n\t\t\ticon: embedInstagramIcon,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t\tdescription: __( 'Embed an Instagram post' ),\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: {\n\t\t\ttitle: 'WordPress',\n\t\t\ticon: embedWordPressIcon,\n\t\t\tkeywords: [ __( 'post' ), __( 'blog' ) ],\n\t\t\tresponsive: false,\n\t\t\tdescription: __( 'Embed a WordPress post' ),\n\t\t},\n\t},\n\t{\n\t\tname: 'core-embed/soundcloud',\n\t\tsettings: {\n\t\t\ttitle: 'SoundCloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t\tdescription: __( 'Embed SoundCloud content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?soundcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/spotify',\n\t\tsettings: {\n\t\t\ttitle: 'Spotify',\n\t\t\ticon: embedSpotifyIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t\tdescription: __( 'Embed Spotify content' ),\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: {\n\t\t\ttitle: 'Flickr',\n\t\t\ticon: embedFlickrIcon,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t\tdescription: __( 'Embed Flickr content' ),\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: {\n\t\t\ttitle: 'Vimeo',\n\t\t\ticon: embedVimeoIcon,\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t\tdescription: __( 'Embed a Vimeo 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: {\n\t\t\ttitle: 'Animoto',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed an Animoto video' ),\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: {\n\t\t\ttitle: 'Cloudup',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Cloudup content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/cloudup\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/collegehumor',\n\t\tsettings: {\n\t\t\ttitle: 'CollegeHumor',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed CollegeHumor content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?collegehumor\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/dailymotion',\n\t\tsettings: {\n\t\t\ttitle: 'Dailymotion',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed a Dailymotion video' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?dailymotion\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/funnyordie',\n\t\tsettings: {\n\t\t\ttitle: 'Funny or Die',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed Funny or Die content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?funnyordie\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/hulu',\n\t\tsettings: {\n\t\t\ttitle: 'Hulu',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed Hulu content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?hulu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/imgur',\n\t\tsettings: {\n\t\t\ttitle: 'Imgur',\n\t\t\ticon: embedPhotoIcon,\n\t\t\tdescription: __( 'Embed Imgur content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(.+\\.)?imgur\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/issuu',\n\t\tsettings: {\n\t\t\ttitle: 'Issuu',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Issuu content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?issuu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/kickstarter',\n\t\tsettings: {\n\t\t\ttitle: 'Kickstarter',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Kickstarter content' ),\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: {\n\t\t\ttitle: 'Meetup.com',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Meetup.com content' ),\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: {\n\t\t\ttitle: 'Mixcloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t\tdescription: __( 'Embed Mixcloud content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?mixcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/photobucket',\n\t\tsettings: {\n\t\t\ttitle: 'Photobucket',\n\t\t\ticon: embedPhotoIcon,\n\t\t\tdescription: __( 'Embed a Photobucket image' ),\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: {\n\t\t\ttitle: 'Polldaddy',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Polldaddy content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?polldaddy\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reddit',\n\t\tsettings: {\n\t\t\ttitle: 'Reddit',\n\t\t\ticon: embedRedditIcon,\n\t\t\tdescription: __( 'Embed a Reddit thread' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reddit\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reverbnation',\n\t\tsettings: {\n\t\t\ttitle: 'ReverbNation',\n\t\t\ticon: embedAudioIcon,\n\t\t\tdescription: __( 'Embed ReverbNation content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reverbnation\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/screencast',\n\t\tsettings: {\n\t\t\ttitle: 'Screencast',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed Screencast content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?screencast\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/scribd',\n\t\tsettings: {\n\t\t\ttitle: 'Scribd',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Scribd content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?scribd\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/slideshare',\n\t\tsettings: {\n\t\t\ttitle: 'Slideshare',\n\t\t\ticon: embedContentIcon,\n\t\t\tdescription: __( 'Embed Slideshare content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(.+?\\.)?slideshare\\.net\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/smugmug',\n\t\tsettings: {\n\t\t\ttitle: 'SmugMug',\n\t\t\ticon: embedPhotoIcon,\n\t\t\tdescription: __( 'Embed SmugMug content' ),\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: {\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: {\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\tdescription: __( 'Embed Speaker Deck content' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?speakerdeck\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/ted',\n\t\tsettings: {\n\t\t\ttitle: 'TED',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed a TED video' ),\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: {\n\t\t\ttitle: 'Tumblr',\n\t\t\ticon: embedTumbrIcon,\n\t\t\tdescription: __( 'Embed a Tumblr post' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?tumblr\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/videopress',\n\t\tsettings: {\n\t\t\ttitle: 'VideoPress',\n\t\t\ticon: embedVideoIcon,\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t\tdescription: __( 'Embed a VideoPress 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: {\n\t\t\ttitle: 'WordPress.tv',\n\t\t\ticon: embedVideoIcon,\n\t\t\tdescription: __( 'Embed a WordPress.tv video' ),\n\t\t},\n\t\tpatterns: [ /^https?:\\/\\/wordpress\\.tv\\/.+/i ],\n\t},\n];\n","/**\n * Internal dependencies\n */\nimport { findBlock, isFromWordPress } from './util';\nimport { HOSTS_NO_PREVIEWS, ASPECT_RATIOS, DEFAULT_EMBED_BLOCK, WORDPRESS_EMBED_BLOCK } from './constants';\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 { __, _x, sprintf } from '@wordpress/i18n';\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';\n\nexport function getEmbedEditComponent( title, icon, responsive = true ) {\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\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\t// Dont do anything if we are going to switch to a different block,\n\t\t\t\t// and we've just changed the URL, or we've just received a preview.\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\t// Can't embed this URL, and we've just received or switched the preview.\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 * Switches to a different embed block type, based on the URL\n\t\t * and the HTML in the preview, if the preview or URL match a different block.\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 ( WORDPRESS_EMBED_BLOCK !== this.props.name && DEFAULT_EMBED_BLOCK !== 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// We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\t\t\t\tif ( isFromWordPress( html ) ) {\n\t\t\t\t\t// If this is not the WordPress embed block, transform it into one.\n\t\t\t\t\tif ( WORDPRESS_EMBED_BLOCK !== this.props.name ) {\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\tWORDPRESS_EMBED_BLOCK,\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\t// If we have a fixed aspect iframe, and it's a responsive embed block.\n\t\t\tif ( responsive && 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 ( isFromWordPress( html ) ) {\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 ? __( 'This embed will preserve its aspect ratio when the browser is resized.' ) : __( 'This embed may not preserve its aspect ratio when the browser is resized.' );\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={ __( 'Resize for smaller devices' ) }\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\t// No preview, or we can't embed the current URL, or we've clicked the edit button.\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{ _x( 'Embed', 'button label' ) }\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","/**\n * WordPress dependencies\n */\nimport {\n\tG,\n\tPath,\n\tPolygon,\n\tSVG,\n} from '@wordpress/components';\n\nexport const 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>;\nexport const 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>;\nexport const 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>;\nexport const 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>;\nexport const embedTwitterIcon = {\n\tforeground: '#1da1f2',\n\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};\nexport const embedYouTubeIcon = {\n\tforeground: '#ff0000',\n\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};\nexport const embedFacebookIcon = {\n\tforeground: '#3b5998',\n\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};\nexport const embedInstagramIcon = <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>;\nexport const embedWordPressIcon = {\n\tforeground: '#0073AA',\n\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};\nexport const embedSpotifyIcon = {\n\tforeground: '#1db954',\n\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};\nexport const embedFlickrIcon = <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>;\nexport const embedVimeoIcon = {\n\tforeground: '#1ab7ea',\n\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};\nexport const embedRedditIcon = <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>;\nexport const embedTumbrIcon = {\n\tforeground: '#35465c',\n\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};\n","/**\n * Internal dependencies\n */\nimport { common as commonEmbeds, others as otherEmbeds } from './core-embeds';\nimport { embedContentIcon } from './icons';\nimport { getEmbedBlockSettings } from './settings';\n\n/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const name = 'core/embed';\n\nexport const settings = getEmbedBlockSettings( {\n\ttitle: _x( 'Embed', 'block title' ),\n\tdescription: __( 'Embed videos, images, tweets, audio, and other content from external sources.' ),\n\ticon: embedContentIcon,\n\t// Unknown embeds should not be responsive by default.\n\tresponsive: false,\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 = commonEmbeds.map(\n\t( embedDefinition ) => {\n\t\treturn {\n\t\t\t...embedDefinition,\n\t\t\tsettings: getEmbedBlockSettings( embedDefinition.settings ),\n\t\t};\n\t}\n);\n\nexport const others = otherEmbeds.map(\n\t( embedDefinition ) => {\n\t\treturn {\n\t\t\t...embedDefinition,\n\t\t\tsettings: getEmbedBlockSettings( embedDefinition.settings ),\n\t\t};\n\t}\n);\n","/**\n * Internal dependencies\n */\nimport { getEmbedEditComponent } from './edit';\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames/dedupe';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { RichText } from '@wordpress/editor';\nimport { withSelect } from '@wordpress/data';\n\nconst embedAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t},\n\tcaption: {\n\t\ttype: 'string',\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\nexport function getEmbedBlockSettings( { title, description, icon, category = 'embed', transforms, keywords = [], supports = {}, responsive = true } ) {\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\tconst edit = getEmbedEditComponent( title, icon, responsive );\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)( edit ),\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","/**\n * Internal dependencies\n */\nimport { common, others } from './core-embeds';\nimport { DEFAULT_EMBED_BLOCK } from './constants';\n\n/**\n * External dependencies\n */\nimport { includes } from 'lodash';\n\n/**\n * Returns true if any of the regular expressions match the URL.\n *\n * @param {string} url The URL to test.\n * @param {Array} patterns The list of regular expressions to test agains.\n * @return {boolean} True if any of the regular expressions match the URL.\n */\nexport const matchesPatterns = ( url, patterns = [] ) => {\n\treturn patterns.some( ( pattern ) => {\n\t\treturn url.match( pattern );\n\t} );\n};\n\n/**\n * Finds the block name that should be used for the URL, based on the\n * structure of the URL.\n *\n * @param {string} url The URL to test.\n * @return {string} The name of the block that should be used for this URL, e.g. core-embed/twitter\n */\nexport const 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 DEFAULT_EMBED_BLOCK;\n};\n\nexport const isFromWordPress = ( html ) => {\n\treturn includes( html, 'class=\"wp-embedded-content\" data-secret' );\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\tinstructions: __( 'Drag a file, upload a new one or select a file from your library.' ),\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 { __, _x } from '@wordpress/i18n';\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { RichText } from '@wordpress/editor';\nimport { SVG, Path } from '@wordpress/components';\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 downloadable file.' ),\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\ttype: 'string',\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\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t\tdefault: _x( 'Download', 'button label' ),\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\tdownload={ true }\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\tinstructions: __( 'Drag images, upload new ones or select files from your library.' ),\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';\nimport { G, Path, SVG } from '@wordpress/components';\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\ttype: 'string',\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 a rich gallery.' ),\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\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\tdefault: '',\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 new sections and organize content to help visitors (and search engines) understand the structure of your content.' ),\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, SVG, Path } 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 custom HTML code and preview it 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\tToggleControl,\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, linkTarget } = 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\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={ __( 'Alternative text describes your image to people who cant see it. Add a short description with its key details.' ) }\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<Fragment>\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Link URL' ) }\n\t\t\t\t\t\t\t\tvalue={ href || '' }\n\t\t\t\t\t\t\t\tonChange={ this.onSetCustomHref }\n\t\t\t\t\t\t\t\tplaceholder={ ! isLinkURLInputDisabled ? 'https://' : undefined }\n\t\t\t\t\t\t\t\tdisabled={ isLinkURLInputDisabled }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Open in New Tab' ) }\n\t\t\t\t\t\t\t\tonChange={ () => setAttributes( { linkTarget: ! linkTarget ? '_blank' : undefined } ) }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' } />\n\t\t\t\t\t\t</Fragment>\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\ttype: 'string',\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\tlinkTarget: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'target',\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', 'target' ],\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: __( 'Insert an image to make a visual statement.' ),\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: [\n\t\t'img', // \"img\" is not translated as it is intended to reflect the HTML <img> tag.\n\t\t__( 'photo' ),\n\t],\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, linkTarget } = 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 } target={ linkTarget } rel={ linkTarget === '_blank' ? 'noreferrer noopener' : undefined }>{ 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';\nimport { G, Path, SVG } from '@wordpress/components';\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: __( 'Display a list of your 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, __experimentalGetSettings } 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 = __experimentalGetSettings().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'has-dates': displayPostDate,\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';\nimport { Path, Rect, SVG } from '@wordpress/components';\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, LINE_SEPARATOR } from '@wordpress/rich-text';\nimport { G, Path, SVG } from '@wordpress/components';\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\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'ol,ul',\n\t\tmultiline: 'li',\n\t\tdefault: '',\n\t},\n};\n\nexport const name = 'core/list';\n\nexport const settings = {\n\ttitle: __( 'List' ),\n\tdescription: __( 'Create a bulleted or numbered list.' ),\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( {\n\t\t\t\t\t\t\tvalue: join( blockAttributes.map( ( { content } ) =>\n\t\t\t\t\t\t\t\treplace( create( { html: content } ), /\\n/g, LINE_SEPARATOR )\n\t\t\t\t\t\t\t), LINE_SEPARATOR ),\n\t\t\t\t\t\t\tmultilineTag: 'li',\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\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( {\n\t\t\t\t\t\t\tvalue: create( { html: value, multilineTag: 'p' } ),\n\t\t\t\t\t\t\tmultilineTag: 'li',\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\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( {\n\t\t\t\t\t\thtml: values,\n\t\t\t\t\t\tmultilineTag: 'li',\n\t\t\t\t\t\tmultilineWrapperTags: [ 'ul', 'ol' ],\n\t\t\t\t\t} ), LINE_SEPARATOR )\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( { value: 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( {\n\t\t\t\t\t\t\tvalue: create( {\n\t\t\t\t\t\t\t\thtml: values,\n\t\t\t\t\t\t\t\tmultilineTag: 'li',\n\t\t\t\t\t\t\t\tmultilineWrapperTags: [ 'ul', 'ol' ],\n\t\t\t\t\t\t\t} ),\n\t\t\t\t\t\t\tmultilineTag: 'p',\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\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 {\n\tPanelBody,\n\tTextareaControl,\n\tToolbar,\n} 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 { mediaAlt, mediaPosition, mediaType, 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\tconst onMediaAltChange = ( newMediaAlt ) => {\n\t\t\tsetAttributes( { mediaAlt: newMediaAlt } );\n\t\t};\n\t\tconst mediaTextGeneralSettings = mediaType === 'image' && (\n\t\t\t<PanelBody title={ __( 'Media & Text Settings' ) }>\n\t\t\t\t<TextareaControl\n\t\t\t\t\tlabel={ __( 'Alt Text (Alternative Text)' ) }\n\t\t\t\t\tvalue={ mediaAlt }\n\t\t\t\t\tonChange={ onMediaAltChange }\n\t\t\t\t\thelp={ __( 'Alternative text describes your image to people who cant see it. Add a short description with its key details.' ) }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t);\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t{ mediaTextGeneralSettings }\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 { Path, SVG } from '@wordpress/components';\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\tdescription: __( 'Set media and words side-by-side media for a richer layout.' ),\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} }\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 an excerpt of this post on your home page? Use this block to define where you want the separation.' ),\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';\n\nexport default function NextPageEdit() {\n\treturn (\n\t\t<div className=\"wp-block-nextpage\">\n\t\t\t<span>{ __( 'Page break' ) }</span>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport { G, Path, SVG } from '@wordpress/components';\nimport edit from './edit';\n\nexport const name = 'core/nextpage';\n\nexport const settings = {\n\ttitle: __( 'Page break' ),\n\n\tdescription: __( 'Separate your content into a multi-page experience.' ),\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\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\ttype: 'string',\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: __( 'Start with the building block of all narrative.' ),\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\tdefault: '',\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';\nimport { Path, Rect, SVG } from '@wordpress/components';\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\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t\tdefault: '',\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 { __, _x } from '@wordpress/i18n';\nimport {\n\tgetColorClassName,\n\tRichText,\n\tgetColorObjectByAttributeValues,\n} from '@wordpress/editor';\nimport {\n\tselect,\n} from '@wordpress/data';\nimport { Path, Polygon, SVG } from '@wordpress/components';\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\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t\tdefault: '',\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: __( 'Give special visual emphasis to a quote from your text.' ),\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: _x( 'Regular', 'block style' ), 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\ttype: 'string',\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 { __, _x } 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';\nimport { G, Path, SVG } from '@wordpress/components';\n\nconst blockAttributes = {\n\tvalue: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t\tdefault: '',\n\t},\n\tcitation: {\n\t\ttype: 'string',\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t\tdefault: '',\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: __( 'Give quoted text visual emphasis. \"In quoting others, we cite ourselves.\" — Julio Cortázar' ),\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: _x( 'Regular', 'block style' ), isDefault: true },\n\t\t{ name: 'large', label: _x( 'Large', 'block style' ) },\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( {\n\t\t\t\t\t\t\tvalue: join( attributes.map( ( { content } ) =>\n\t\t\t\t\t\t\t\tcreate( { html: content } )\n\t\t\t\t\t\t\t), '\\u2028' ),\n\t\t\t\t\t\t\tmultilineTag: 'p',\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\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 && value !== '<p></p>' ) {\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( { value: 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 && citation !== '<p></p>' ) {\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( { value: 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( {\n\t\t\t\t\t\t\t\tvalue: quotePieces.length ? join( pieces.slice( 1 ), '\\u2028' ) : create(),\n\t\t\t\t\t\t\t\tmultilineTag: 'p',\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\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\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\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: 'footer',\n\t\t\t\t\tdefault: '',\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';\nimport { SVG, Path } from '@wordpress/components';\n\nexport const name = 'core/separator';\n\nexport const settings = {\n\ttitle: __( 'Separator' ),\n\n\tdescription: __( 'Create a break between ideas or sections with a horizontal separator.' ),\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, SVG, Path } 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: __( 'Insert additional custom elements with a WordPress shortcode.' ),\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, G, SVG, Path } 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 white space between blocks and customize its 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';\nimport { SVG, Path } from '@wordpress/components';\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\ttype: 'string',\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 { __, _x } from '@wordpress/i18n';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\nimport { G, Path, SVG } from '@wordpress/components';\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\ttype: 'string',\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: _x( 'Regular', 'block style' ), 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';\nimport { G, Path, Rect, SVG } from '@wordpress/components';\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\ttype: 'string',\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';\nimport { SVG, Path } from '@wordpress/components';\n\nexport const name = 'core/verse';\n\nexport const settings = {\n\ttitle: __( 'Verse' ),\n\n\tdescription: __( 'Insert poetry. Use special spacing formats. Or quote song lyrics.' ),\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\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t\tdefault: '',\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\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';\nimport { SVG, Path } from '@wordpress/components';\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 from your media library or upload a new one.' ),\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\ttype: 'string',\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","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar 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\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","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","/*! 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;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\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":""}