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

1 line
652 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/pento/Projects/gutenberg/packages/block-library/src/archives/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/archives/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/audio/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/audio/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/block/edit-panel/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/block/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/block/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/block/indicator/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/button/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/button/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/categories/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/categories/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/classic/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/classic/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/code/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/code/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/columns/column.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/columns/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/cover/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/constants.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/core-embeds.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/embed-controls.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/embed-loading.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/embed-placeholder.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/embed-preview.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/icons.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/settings.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/embed/util.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/file/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/file/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/file/inspector.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/gallery/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/gallery/gallery-image.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/gallery/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/heading/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/heading/heading-toolbar.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/heading/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/html/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/image/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/image/image-size.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/image/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/latest-comments/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/latest-comments/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/latest-posts/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/latest-posts/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/list/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/media-text/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/media-text/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/media-text/media-container.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/missing/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/more/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/more/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/nextpage/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/nextpage/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/paragraph/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/paragraph/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/preformatted/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/pullquote/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/pullquote/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/quote/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/separator/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/shortcode/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/spacer/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/subhead/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/table/edit.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/table/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/table/state.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/template/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/text-columns/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/verse/index.js","webpack://wp.[name]//Users/pento/Projects/gutenberg/packages/block-library/src/video/edit.js","webpack://wp.[name]//Users/pento/Projects/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","getAttributesFromPreview","setAttributesFromPreview","getResponsiveHelp","toggleResponsive","handleIncomingPreview","editingURL","preview","allowResponsive","upgradedBlock","createUpgradedEmbedBlock","hasPreview","hadPreview","switchedPreview","switchedURL","cannotEmbed","providerName","provider_name","providerNameSlug","kebabCase","toLower","isFromWordPress","getClassNames","checked","newAllowResponsive","fetching","themeSupportsResponsive","EmbedControls","blockSupportsResponsive","showEditButton","EmbedLoading","EmbedPlaceholder","onSubmit","EmbedPreview","onCaptionChange","scripts","getPhotoHtml","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","findBlock","photo","photoPreview","thumbnail_url","renderToString","attributesFromPreview","matchingBlock","existingClassNames","aspectRatioClassNames","ratioIndex","aspectRatioToRemove","previewDocument","iframe","height","width","aspectRatio","toFixed","potentialRatio","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","availableImageSizes","linkTarget","isExternal","availableImageSizesBySlug","keyBy","toolbarEditButton","imageSizes","getImageSizes","isResizable","isLinkURLInputDisabled","getInspectorControls","imageWidth","imageHeight","size","slug","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","isStackedOnMobile","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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ACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,IAAI;AACJ;;AAEA,OAAO;AACP,IAAI;AACJ;;AAEA;AACA,IAAI;AACJ;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,kBAAkB,SAAS;AAC3B;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,EAAE;;AAEF,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;;;;;;;;;;;;AC7GD;AACA;AACA;AACA;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,EAUN;;AAEF,CAAC;;;;;;;;;;;;;;ACjhBD;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 { isFromWordPress, createUpgradedEmbedBlock, getClassNames } from './util';\nimport EmbedControls from './embed-controls';\nimport EmbedLoading from './embed-loading';\nimport EmbedPlaceholder from './embed-placeholder';\nimport EmbedPreview from './embed-preview';\n\n/**\n * External dependencies\n */\nimport { kebabCase, toLower } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\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.getAttributesFromPreview = this.getAttributesFromPreview.bind( this );\n\t\t\tthis.setAttributesFromPreview = this.setAttributesFromPreview.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\tconst { allowResponsive } = this.props.attributes;\n\t\t\tthis.setAttributesFromPreview();\n\t\t\tconst upgradedBlock = createUpgradedEmbedBlock(\n\t\t\t\tthis.props,\n\t\t\t\tthis.getAttributesFromPreview( this.props.preview, allowResponsive )\n\t\t\t);\n\t\t\tif ( upgradedBlock ) {\n\t\t\t\tthis.props.onReplace( upgradedBlock );\n\t\t\t}\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 ( ( hasPreview && ! hadPreview ) || switchedPreview || switchedURL ) {\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\treturn;\n\t\t\t\t}\n\t\t\t\tthis.handleIncomingPreview();\n\t\t\t}\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 * 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 = getClassNames( html, this.props.attributes.className, responsive && allowResponsive );\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 newAllowResponsive = ! allowResponsive;\n\n\t\t\tthis.props.setAttributes(\n\t\t\t\t{\n\t\t\t\t\tallowResponsive: newAllowResponsive,\n\t\t\t\t\tclassName: getClassNames( html, className, responsive && newAllowResponsive ),\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, themeSupportsResponsive } = this.props;\n\n\t\t\tif ( fetching ) {\n\t\t\t\treturn (\n\t\t\t\t\t<EmbedLoading />\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<EmbedPlaceholder\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\tonSubmit={ this.setUrl }\n\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\tcannotEmbed={ cannotEmbed }\n\t\t\t\t\t\tonChange={ ( event ) => this.setState( { url: event.target.value } ) }\n\t\t\t\t\t/>\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<EmbedControls\n\t\t\t\t\t\tshowEditButton={ preview && ! cannotEmbed }\n\t\t\t\t\t\tthemeSupportsResponsive={ themeSupportsResponsive }\n\t\t\t\t\t\tblockSupportsResponsive={ responsive }\n\t\t\t\t\t\tallowResponsive={ allowResponsive }\n\t\t\t\t\t\tgetResponsiveHelp={ this.getResponsiveHelp }\n\t\t\t\t\t\ttoggleResponsive={ this.toggleResponsive }\n\t\t\t\t\t\tswitchBackToURLInput={ this.switchBackToURLInput }\n\t\t\t\t\t/>\n\t\t\t\t\t<EmbedPreview\n\t\t\t\t\t\tpreview={ preview }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\turl={ url }\n\t\t\t\t\t\ttype={ type }\n\t\t\t\t\t\tcaption={ caption }\n\t\t\t\t\t\tonCaptionChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t/>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { IconButton, Toolbar, PanelBody, ToggleControl } from '@wordpress/components';\nimport { BlockControls, InspectorControls } from '@wordpress/editor';\n\nconst EmbedControls = ( props ) => {\n\tconst {\n\t\tblockSupportsResponsive,\n\t\tshowEditButton,\n\t\tthemeSupportsResponsive,\n\t\tallowResponsive,\n\t\tgetResponsiveHelp,\n\t\ttoggleResponsive,\n\t\tswitchBackToURLInput,\n\t} = props;\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<Toolbar>\n\t\t\t\t\t{ showEditButton && (\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\tonClick={ switchBackToURLInput }\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\t{ themeSupportsResponsive && blockSupportsResponsive && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Media Settings' ) } className=\"blocks-responsive\">\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Resize for smaller devices' ) }\n\t\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\t\thelp={ getResponsiveHelp }\n\t\t\t\t\t\t\tonChange={ toggleResponsive }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t</Fragment>\n\t);\n};\n\nexport default EmbedControls;\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Spinner } from '@wordpress/components';\n\nconst EmbedLoading = () => (\n\t<div className=\"wp-block-embed is-loading\">\n\t\t<Spinner />\n\t\t<p>{ __( 'Embedding…' ) }</p>\n\t</div>\n);\n\nexport default EmbedLoading;\n","/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Button, Placeholder } from '@wordpress/components';\nimport { BlockIcon } from '@wordpress/editor';\n\nconst EmbedPlaceholder = ( props ) => {\n\tconst { icon, label, value, onSubmit, onChange, cannotEmbed } = props;\n\treturn (\n\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label } className=\"wp-block-embed\">\n\t\t\t<form onSubmit={ onSubmit }>\n\t\t\t\t<input\n\t\t\t\t\ttype=\"url\"\n\t\t\t\t\tvalue={ value || '' }\n\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\tonChange={ onChange } />\n\t\t\t\t<Button\n\t\t\t\t\tisLarge\n\t\t\t\t\ttype=\"submit\">\n\t\t\t\t\t{ _x( 'Embed', 'button label' ) }\n\t\t\t\t</Button>\n\t\t\t\t{ cannotEmbed && <p className=\"components-placeholder__error\">{ __( 'Sorry, we could not embed that content.' ) }</p> }\n\t\t\t</form>\n\t\t</Placeholder>\n\t);\n};\n\nexport default EmbedPlaceholder;\n","/**\n * Internal dependencies\n */\nimport { HOSTS_NO_PREVIEWS } from './constants';\nimport { getPhotoHtml } from './util';\n\n/**\n * External dependencies\n */\nimport { parse } from 'url';\nimport { includes } from 'lodash';\nimport classnames from 'classnames/dedupe';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Placeholder, SandBox } from '@wordpress/components';\nimport { RichText, BlockIcon } from '@wordpress/editor';\n\nconst EmbedPreview = ( props ) => {\n\tconst { preview, url, type, caption, onCaptionChange, isSelected, className, icon, label } = props;\n\tconst { scripts } = preview;\n\n\tconst html = 'photo' === type ? getPhotoHtml( preview ) : preview.html;\n\tconst parsedUrl = parse( url );\n\tconst cannotPreview = includes( HOSTS_NO_PREVIEWS, parsedUrl.host.replace( /^www\\./, '' ) );\n\t// translators: %s: host providing embed content e.g: www.youtube.com\n\tconst iframeTitle = sprintf( __( 'Embedded content from %s' ), parsedUrl.host );\n\tconst sandboxClassnames = classnames( type, className, 'wp-block-embed__wrapper' );\n\n\tconst embedWrapper = 'wp-embed' === type ? (\n\t\t<div\n\t\t\tclassName={ sandboxClassnames }\n\t\t\tdangerouslySetInnerHTML={ { __html: html } }\n\t\t/>\n\t) : (\n\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t<SandBox\n\t\t\t\thtml={ html }\n\t\t\t\tscripts={ scripts }\n\t\t\t\ttitle={ iframeTitle }\n\t\t\t\ttype={ sandboxClassnames }\n\t\t\t/>\n\t\t</div>\n\t);\n\n\treturn (\n\t\t<figure className={ classnames( className, 'wp-block-embed', { 'is-type-video': 'video' === type } ) }>\n\t\t\t{ ( cannotPreview ) ? (\n\t\t\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label }>\n\t\t\t\t\t<p className=\"components-placeholder__error\"><a href={ url }>{ url }</a></p>\n\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</Placeholder>\n\t\t\t) : embedWrapper }\n\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\tvalue={ caption }\n\t\t\t\t\tonChange={ onCaptionChange }\n\t\t\t\t\tinlineToolbar\n\t\t\t\t/>\n\t\t\t) }\n\t\t</figure>\n\t);\n};\n\nexport default EmbedPreview;\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\tthemeSupportsResponsive: 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, WORDPRESS_EMBED_BLOCK, ASPECT_RATIOS } from './constants';\n\n/**\n * External dependencies\n */\nimport { includes } from 'lodash';\nimport classnames from 'classnames/dedupe';\n\n/**\n * WordPress dependencies\n */\nimport { renderToString } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\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\nexport const getPhotoHtml = ( photo ) => {\n\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t// acually the full size photo.\n\tconst photoPreview = <p><img src={ photo.thumbnail_url } alt={ photo.title } width=\"100%\" /></p>;\n\treturn renderToString( photoPreview );\n};\n\n/***\n * Creates a more suitable embed block based on the passed in props\n * and attributes generated from an embed block's preview.\n *\n * We require `attributesFromPreview` to be generated from the latest attributes\n * and preview, and because of the way the react lifecycle operates, we can't\n * guarantee that the attributes contained in the block's props are the latest\n * versions, so we require that these are generated separately.\n * See `getAttributesFromPreview` in the generated embed edit component.\n *\n * @param {Object} props The block's props.\n * @param {Object} attributesFromPreview Attributes generated from the block's most up to date preview.\n * @return {Object|undefined} A more suitable embed block if one exists.\n */\nexport const createUpgradedEmbedBlock = ( props, attributesFromPreview ) => {\n\tconst { preview, name } = props;\n\tconst { url } = props.attributes;\n\n\tif ( ! url ) {\n\t\treturn;\n\t}\n\n\tconst matchingBlock = findBlock( url );\n\n\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\tif ( WORDPRESS_EMBED_BLOCK !== name && DEFAULT_EMBED_BLOCK !== matchingBlock ) {\n\t\t// At this point, we have discovered a more suitable block for this url, so transform it.\n\t\tif ( name !== matchingBlock ) {\n\t\t\treturn createBlock( matchingBlock, { url } );\n\t\t}\n\t}\n\n\tif ( preview ) {\n\t\tconst { html } = preview;\n\n\t\t// We can't match the URL for WordPress embeds, we have to check the HTML instead.\n\t\tif ( isFromWordPress( html ) ) {\n\t\t\t// If this is not the WordPress embed block, transform it into one.\n\t\t\tif ( WORDPRESS_EMBED_BLOCK !== name ) {\n\t\t\t\treturn createBlock(\n\t\t\t\t\tWORDPRESS_EMBED_BLOCK,\n\t\t\t\t\t{\n\t\t\t\t\t\turl,\n\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// won't have had all the attributes set, and so won't get the correct\n\t\t\t\t\t\t// type and it won't render correctly. So, we pass through the current attributes\n\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// block. This only affects the WordPress block because it can't be\n\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// relies on the preview to set the correct render type.\n\t\t\t\t\t\t...attributesFromPreview,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * Returns class names with any relevant responsive aspect ratio names.\n *\n * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n * @param {string} existingClassNames Any existing class names.\n * @param {boolean} allowResponsive If the responsive class names should be added, or removed.\n * @return {string} Deduped class names.\n */\nexport function getClassNames( html, existingClassNames = '', allowResponsive = true ) {\n\tif ( ! allowResponsive ) {\n\t\t// Remove all of the aspect ratio related class names.\n\t\tconst aspectRatioClassNames = {\n\t\t\t'wp-has-aspect-ratio': false,\n\t\t};\n\t\tfor ( let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++ ) {\n\t\t\tconst aspectRatioToRemove = ASPECT_RATIOS[ ratioIndex ];\n\t\t\taspectRatioClassNames[ aspectRatioToRemove.className ] = false;\n\t\t}\n\t\treturn classnames(\n\t\t\texistingClassNames,\n\t\t\taspectRatioClassNames\n\t\t);\n\t}\n\n\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\tpreviewDocument.body.innerHTML = html;\n\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t// If we have a fixed aspect iframe, and it's a responsive embed block.\n\tif ( iframe && iframe.height && iframe.width ) {\n\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\tfor ( let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++ ) {\n\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\treturn classnames(\n\t\t\t\t\texistingClassNames,\n\t\t\t\t\t{\n\t\t\t\t\t\t[ potentialRatio.className ]: allowResponsive,\n\t\t\t\t\t\t'wp-has-aspect-ratio': allowResponsive,\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t}\n\n\treturn existingClassNames;\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 ) {\n\t\t\t\t\treturn files.length > 0;\n\t\t\t\t},\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 blocks = [];\n\n\t\t\t\t\tfiles.map( ( file ) => {\n\t\t\t\t\t\tconst blobURL = createBlobURL( file );\n\n\t\t\t\t\t\t// File will be uploaded in componentDidMount()\n\t\t\t\t\t\tblocks.push( createBlock( 'core/file', {\n\t\t\t\t\t\t\thref: blobURL,\n\t\t\t\t\t\t\tfileName: file.name,\n\t\t\t\t\t\t\ttextLinkHref: blobURL,\n\t\t\t\t\t\t} ) );\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn blocks;\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\n\t\tconst img = url ? <img src={ url } alt={ alt } data-id={ id } onClick={ this.onImageClick } tabIndex=\"0\" onKeyDown={ 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\tkeyBy,\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.image && this.props.image.source_url ) || 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\tgetImageSizes() {\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 {\n\t\t\tattributes,\n\t\t\tsetAttributes,\n\t\t\tisLargeViewport,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t\tmaxWidth,\n\t\t\tnoticeOperations,\n\t\t\tnoticeUI,\n\t\t\ttoggleSelection,\n\t\t\tisRTL,\n\t\t\tavailableImageSizes,\n\t\t} = this.props;\n\t\tconst { url, alt, caption, align, id, href, linkDestination, width, height, linkTarget } = attributes;\n\t\tconst isExternal = isExternalImage( id, url );\n\t\tconst availableImageSizesBySlug = keyBy( availableImageSizes, 'slug' );\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 imageSizes = this.getImageSizes();\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( imageSizes ) && (\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( imageSizes, ( size, slug ) => ( {\n\t\t\t\t\t\t\t\tvalue: size.source_url,\n\t\t\t\t\t\t\t\tlabel: availableImageSizesBySlug[ slug ] ? availableImageSizesBySlug[ slug ].name : startCase( slug ),\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, availableImageSizes } = getEditorSettings();\n\n\t\treturn {\n\t\t\timage: id ? getMedia( id ) : null,\n\t\t\tmaxWidth,\n\t\t\tisRTL,\n\t\t\tavailableImageSizes,\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\tToggleControl,\n\tToolbar,\n} from '@wordpress/components';\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 {\n\t\t\tisStackedOnMobile,\n\t\t\tmediaAlt,\n\t\t\tmediaPosition,\n\t\t\tmediaType,\n\t\t\tmediaWidth,\n\t\t} = 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\t'is-stacked-on-mobile': isStackedOnMobile,\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 = (\n\t\t\t<PanelBody title={ __( 'Media & Text Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Stack on mobile' ) }\n\t\t\t\t\tchecked={ isStackedOnMobile }\n\t\t\t\t\tonChange={ () => setAttributes( {\n\t\t\t\t\t\tisStackedOnMobile: ! isStackedOnMobile,\n\t\t\t\t\t} ) }\n\t\t\t\t/>\n\t\t\t\t{ mediaType === 'image' && ( <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\tisStackedOnMobile: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\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\tisStackedOnMobile,\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\t'is-stacked-on-mobile': isStackedOnMobile,\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.3.2 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 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 * http://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.3.2',\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) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // 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 { // 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 || Function(\"return this\")() || (1, eval)(\"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":""}