WordPress/js/dist/block-library.js.map
atimmer 8614d14887 Build tools: Build @wordpress packages with webpack.
We decided to split the media webpack config into it's own file. The
main webpack config then combines this file with the packages config.

Include vendor scripts by copying them. We copy the minified files if
they are available. If they aren't available we minify the original
files ourselves.

Props omarreiss, herregroen, gziolo, youknowriad, netweb, adamsilverstein.
Merges [43719] to trunk.
See #45065.

Built from https://develop.svn.wordpress.org/trunk@44112


git-svn-id: http://core.svn.wordpress.org/trunk@43942 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2018-12-13 15:26:42 +00:00

1 line
584 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

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

{"version":3,"sources":["webpack://wp.[name]/webpack/bootstrap","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/createClass.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/extends.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/inherits.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectSpread.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/slicedToArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","webpack://wp.[name]/./node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/archives/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/archives/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/audio/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/audio/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/edit-panel/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/block/indicator/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/button/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/button/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/categories/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/categories/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/classic/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/classic/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/code/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/code/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/columns/column.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/columns/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/cover-image/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/embed/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/file/inspector.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/gallery-image.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/gallery/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/heading-toolbar.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/heading/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/html/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/image-size.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/image/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-comments/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-comments/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-posts/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/latest-posts/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/list/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/more/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/more/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/nextpage/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/paragraph/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/paragraph/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/preformatted/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/pullquote/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/pullquote/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/quote/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/separator/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/shortcode/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/spacer/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/subhead/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/table/state.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/template/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/text-columns/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/verse/index.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/video/edit.js","webpack://wp.[name]//Users/gziolo/PhpstormProjects/gutenberg/packages/block-library/src/video/index.js","webpack://wp.[name]/./node_modules/classnames/dedupe.js","webpack://wp.[name]/./node_modules/classnames/index.js","webpack://wp.[name]/./node_modules/memize/index.js","webpack://wp.[name]/./node_modules/punycode/punycode.js","webpack://wp.[name]/./node_modules/querystring-es3/decode.js","webpack://wp.[name]/./node_modules/querystring-es3/encode.js","webpack://wp.[name]/./node_modules/querystring-es3/index.js","webpack://wp.[name]/./node_modules/url/url.js","webpack://wp.[name]/./node_modules/url/util.js","webpack://wp.[name]/(webpack)/buildin/global.js","webpack://wp.[name]/(webpack)/buildin/module.js","webpack://wp.[name]/external {\"this\":[\"wp\",\"autop\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"blob\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"blocks\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"components\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"compose\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"coreData\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"data\"]}","webpack://wp.[name]/external {\"this\":[\"wp\",\"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\"","webpack://wp.[name]/external \"moment\""],"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","indexOf","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","transform","block","createBlock","createBlobURL","ReusableBlockEditPanel","titleField","createRef","editButton","handleFormSubmit","handleTitleChange","handleTitleKeyDown","isEditing","current","select","prevProps","isSaving","focus","event","preventDefault","onSave","onChangeTitle","target","keyCode","ESCAPE","stopPropagation","onCancel","onEdit","instanceId","withInstanceId","ReusableBlockEdit","reusableBlock","startEditing","stopEditing","setTitle","isTemporary","changedAttributes","fetchReusableBlock","prevState","onUpdateTitle","updateAttributes","clientId","isFetching","element","noop","compose","withSelect","ownProps","getReusableBlock","isFetchingReusableBlock","isSavingReusableBlock","getBlock","ref","withDispatch","dispatch","fetchReusableBlocks","updateBlockAttributes","updateReusableBlockTitle","saveReusableBlock","partial","customClassName","inserter","ReusableBlockIndicator","tooltipText","sprintf","window","getComputedStyle","FallbackStyles","withFallbackStyles","node","textColor","backgroundColor","backgroundColorValue","color","textColorValue","textNode","querySelector","fallbackBackgroundColor","fallbackTextColor","ButtonEdit","nodeRef","bindRef","setBackgroundColor","setTextColor","text","classnames","class","onChange","isLargeText","withColors","blockAttributes","customBackgroundColor","customTextColor","colorsMigration","omit","alignWide","styles","isDefault","textClass","getColorClassName","backgroundClass","buttonClasses","buttonStyle","deprecated","pick","default","linkClass","migrate","CategoriesEdit","toggleDisplayAsDropdown","toggleShowPostCounts","toggleShowHierarchy","showHierarchy","parentId","categories","filter","parent","level","unescape","trim","getCategories","getCategoryListClassName","map","renderCategoryListItem","childCategories","link","renderCategoryName","count","childCategory","renderCategoryDropdownItem","times","isRequesting","inspectorControls","renderCategoryDropdown","renderCategoryList","getEntityRecords","isResolving","query","per_page","isTmceEmpty","editor","body","getBody","childNodes","test","innerText","textContent","ClassicEdit","initialize","onSetup","wpEditorL10n","tinymce","baseURL","suffix","EditorManager","overrideDefaults","base_url","document","readyState","addEventListener","wp","oldEditor","remove","content","get","setContent","inline","content_css","fixed_toolbar_container","setup","on","command","getContent","BACKSPACE","DELETE","onReplace","stopImmediatePropagation","altKey","F10","addButton","tooltip","_x","onClick","button","active","dom","toggleClass","cmd","rootNode","activeElement","blur","nativeEvent","onToolbarKeyDown","CodeEdit","trigger","regExp","nodeName","children","firstChild","schema","pre","code","ALLOWED_BLOCKS","getColumnsTemplate","memoize","columns","isEligible","innerBlocks","some","property","withoutLayout","reduce","result","innerBlock","layout","columnIndex","columnMatch","match","Number","push","migratedInnerBlocks","columnBlocks","classes","nextColumns","validAlignments","contentAlign","hasParallax","dimRatio","overlayColor","customOverlayColor","blocks","to","setOverlayColor","updateAlignment","onSelectImage","toggleParallax","setDimRatio","ratio","newTitle","style","backgroundImageStyles","dimRatioToClass","controls","open","hasTitle","overlayColorClass","Math","round","backgroundImage","HOSTS_NO_PREVIEWS","ASPECT_RATIOS","matchesPatterns","patterns","pattern","findBlock","common","others","getEmbedEdit","switchBackToURLInput","setUrl","maybeSwitchBlock","setAttributesFromPreview","setAspectRatioClassNames","getResponsiveHelp","toggleResponsive","handleIncomingPreview","editingURL","preview","hasPreview","hadPreview","switchedPreview","switchedURL","previewIsFallback","photo","photoPreview","thumbnail_url","renderToString","matchingBlock","allowResponsive","previewDocument","implementation","createHTMLDocument","innerHTML","iframe","height","width","aspectRatio","toFixed","ratioIndex","potentialRatio","getAspectRatioClassNames","providerName","provider_name","providerNameSlug","kebabCase","toLower","checked","responsiveClassNames","fetching","cannotEmbed","getPhotoHtml","scripts","parsedUrl","parse","cannotPreview","host","replace","iframeTitle","sandboxClassnames","embedWrapper","__html","embedAttributes","getEmbedBlockSettings","keywords","blockDescription","core","getEmbedPreview","isPreviewEmbedFallback","isRequestingEmbedPreview","validPreview","data","status","embedClassName","embedContentIcon","embedAudioIcon","embedPhotoIcon","embedVideoIcon","foreground","FileEdit","onSelectFile","confirmCopyURL","resetCopyConfirmation","changeLinkDestinationOption","changeOpenInNewWindow","changeShowDownloadButton","hasError","showCopyConfirmation","href","isBlobURL","message","revokeBlobURL","fileName","create","textLinkHref","newHref","textLinkTarget","showDownloadButton","downloadButtonText","attachmentPage","openInNewWindow","getMedia","priority","blobURL","mime_type","getTextContent","getDownloadButtonHelp","FileBlockInspector","hrefs","linkDestinationOptions","MAX_COLUMNS","linkOptions","defaultColumnsNumber","min","images","pickRelevantMediaFiles","image","GalleryEdit","onSelectImages","setLinkTo","setColumnsNumber","toggleImageCrop","onRemoveImage","setImageAttributes","addFiles","uploadFromFiles","selectedImage","index","img","i","linkTo","imageCrop","slice","currentImages","imagesNormalized","concat","captionSelected","dropZone","getImageCropHelp","alt","attrs","GalleryImage","onImageClick","onSelectCaption","onKeyDown","bindContainer","container","onSelect","onRemove","source_url","alt_text","newCaption","isMultiBlock","validImages","tag","shortcode","ids","named","split","parseInt","every","HeadingEdit","mergeBlocks","insertBlocksAfter","placeholder","tagName","newLevel","before","after","textAlign","HeadingToolbar","targetLevel","selectedLevel","isActive","subscript","String","minLevel","maxLevel","range","createLevelControl","getLevelFromHeadingNodeName","substr","anchor","h1","getPhrasingContentSchema","h2","h3","h4","h5","h6","getBlockAttributes","getBlockType","outerHTML","migratedAttributes","toLowerCase","merge","attributesToMerge","figure","require","figcaption","withState","isPreview","isDisabled","MIN_SIZE","LINK_DESTINATION_NONE","LINK_DESTINATION_MEDIA","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_CUSTOM","ImageEdit","updateAlt","onFocusCaption","updateImageURL","updateWidth","updateHeight","updateDimensions","onSetCustomHref","onSetLinkDestination","captionFocused","prevID","prevUrl","linkDestination","newAlt","extraUpdatedAttributes","isLargeViewport","maxWidth","toggleSelection","isRTL","availableSizes","getAvailableSizes","isResizable","isLinkURLInputDisabled","getInspectorControls","imageWidth","imageHeight","size","startCase","scale","scaledWidth","scaledHeight","isCurrent","getLinkDestinationOptions","sizes","imageWidthWithinContainer","imageHeightWithinContainer","currentWidth","currentHeight","minWidth","minHeight","showRightHandle","showLeftHandle","top","right","bottom","left","direction","elt","delta","getEditorSettings","withViewportMatch","ImageSize","calculateSize","fetchImageSize","dirtynessTrigger","onload","Image","clientWidth","exceedMaxWidth","containerWidth","containerHeight","clientHeight","withGlobalEvents","resize","imageSchema","a","alignMatches","exec","idMatches","anchorElement","blockType","extraImageProps","figureStyle","registerCoreBlocks","paragraph","heading","gallery","list","quote","archives","audio","column","coverImage","embed","classic","latestComments","latestPosts","more","nextpage","preformatted","pullquote","separator","spacer","subhead","table","template","textColumns","verse","video","forEach","registerBlockType","setDefaultBlockName","setUnknownTypeHandlerName","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","post","decodeEntities","rendered","date_gmt","moment","utc","format","local","latestPostsQuery","pickBy","orderby","isUndefined","categoriesListQuery","listContentSchema","ul","ol","li","ordered","values","multiline","toHTMLString","join","multilineTag","piece","setupEditor","setNextValues","internalListType","parents","find","nodeInfo","findInternalListType","lang","navigator","browserLanguage","language","keyboardHasSquareBracket","shortcuts","add","execCommand","editorSettings","plugins","lists_indent_on_tab","nextValues","createSetListType","createExecCommand","MoreEdit","onChangeInput","defaultText","customText","ENTER","getDefaultBlockName","noTeaser","toggleNoTeaser","inputLength","multiple","dataset","moreTag","noTeaserTag","compact","applyFallbackStyles","fontSize","customFontSize","editableNode","computedStyles","fallbackFontSize","ParagraphBlock","toggleDropCap","splitBlock","dropCap","setFontSize","getDropCapHelp","nextContent","ParagraphEdit","withFontSizes","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","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","VideoEdit","videoPlayer","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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AEA;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,EAaN;;AAEF,CAAC;;;;;;;;;;;;;;ACphBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA,iBAAiB,SAAS;AAC1B;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;ACnFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA;AACA,KAAK;;AAEL;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,eAAe;AAChC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;ACpFa;;AAEb,iCAAiC,mBAAO,CAAC,0DAAU;AACnD,qCAAqC,mBAAO,CAAC,0DAAU;;;;;;;;;;;;;ACHvD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEa;;AAEb,eAAe,mBAAO,CAAC,qDAAU;AACjC,WAAW,mBAAO,CAAC,0CAAQ;;AAE3B;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA,gBAAgB,KAAK;;AAErB;AACA;AACA;AACA;AACA;AACA;AACA,qCAAqC;AACrC;AACA;AACA,2CAA2C,KAAK;AAChD,0CAA0C,KAAK;AAC/C;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL,kBAAkB,mBAAO,CAAC,4DAAa;;AAEvC;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA,oCAAoC;AACpC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,mBAAmB,4BAA4B;AAC/C;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,mBAAmB,yBAAyB;AAC5C;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,2CAA2C,OAAO;AAClD;AACA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,OAAO;AACjD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;;AAEA;AACA;AACA,GAAG;AACH;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,kBAAkB,mBAAmB;AACrC;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,oBAAoB,mBAAmB;AACvC;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB,iBAAiB;AACtC;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,8BAA8B,QAAQ;AACtC;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;;AAEA;AACA;AACA,UAAU,MAAM;AAChB;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;AC3tBa;;AAEb;AACA;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACfA;;AAEA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA,CAAC;AACD;AACA;AACA;;AAEA;AACA;AACA,4CAA4C;;AAE5C;;;;;;;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;;;;;;;;;;;;ACrBA,aAAa,sCAAsC,EAAE,I;;;;;;;;;;;ACArD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,uCAAuC,EAAE,I;;;;;;;;;;;ACAtD,aAAa,2CAA2C,EAAE,I;;;;;;;;;;;ACA1D,aAAa,wCAAwC,EAAE,I;;;;;;;;;;;ACAvD,aAAa,yCAAyC,EAAE,I;;;;;;;;;;;ACAxD,aAAa,qCAAqC,EAAE,I;;;;;;;;;;;ACApD,aAAa,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;;;;;;;;;;;ACAhD,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';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/archives';\n\nexport const settings = {\n\ttitle: __( 'Archives' ),\n\n\tdescription: __( 'Display a monthly archive of your sites Posts.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M7 11h2v2H7v-2zm14-5v14l-2 2H5l-2-2V6l2-2h1V2h2v2h8V2h2v2h1l2 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z\" /></g></svg>,\n\n\tcategory: 'widgets',\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( [ 'left', 'center', 'right' ].includes( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\t// Handled by PHP.\n\t\treturn null;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tDisabled,\n\tIconButton,\n\tPanelBody,\n\tSelectControl,\n\tToolbar,\n\tToggleControl,\n\twithNotices,\n} from '@wordpress/components';\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tRichText,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { getBlobByURL } 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 && src.indexOf( 'blob:' ) === 0 ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ { id: mediaId, url } ] ) => {\n\t\t\t\t\t\tsetAttributes( { id: mediaId, src: url } );\n\t\t\t\t\t},\n\t\t\t\t\tonError: ( e ) => {\n\t\t\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\t\t\tthis.setState( { editing: true } );\n\t\t\t\t\t\tnoticeOperations.createErrorNotice( e );\n\t\t\t\t\t},\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\ttoggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tthis.props.setAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tonSelectURL( newSrc ) {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { src } = attributes;\n\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\n\t\tthis.setState( { editing: false } );\n\t}\n\n\trender() {\n\t\tconst { autoplay, caption, loop, preload, src } = this.props.attributes;\n\t\tconst { setAttributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { editing } = this.state;\n\t\tconst switchToEditing = () => {\n\t\t\tthis.setState( { editing: true } );\n\t\t};\n\t\tconst onSelectAudio = ( media ) => {\n\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t// in this case there was an error and we should continue in the editing state\n\t\t\t\t// previous attributes should be removed because they may be temporary blob urls\n\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\tswitchToEditing();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// sets the block's attribute and updates the edit component from the\n\t\t\t// selected media, then switches off the editing UI\n\t\t\tsetAttributes( { src: media.url, id: media.id } );\n\t\t\tthis.setState( { src: media.url, editing: false } );\n\t\t};\n\t\tif ( editing ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-audio\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Audio' ),\n\t\t\t\t\t\tname: __( 'an audio' ),\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ this.props.attributes }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-icon-button components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit audio' ) }\n\t\t\t\t\t\t\tonClick={ switchToEditing }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Audio Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\t\t\tvalue={ undefined !== preload ? preload : 'none' }\n\t\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { preload: ( 'none' !== value ) ? value : undefined } ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{ value: 'none', label: __( 'None' ) },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tDisable the audio tag so the user clicking on it won't play the\n\t\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<Disabled>\n\t\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t\t</Disabled>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withNotices( AudioEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\n\nexport const name = 'core/audio';\n\nexport const settings = {\n\ttitle: __( 'Audio' ),\n\n\tdescription: __( 'Embed an audio file and a simple audio player.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m12 3l0.01 10.55c-0.59-0.34-1.27-0.55-2-0.55-2.22 0-4.01 1.79-4.01 4s1.79 4 4.01 4 3.99-1.79 3.99-4v-10h4v-4h-6zm-1.99 16c-1.1 0-2-0.9-2-2s0.9-2 2-2 2 0.9 2 2-0.9 2-2 2z\" /></svg>,\n\n\tcategory: 'common',\n\n\tattributes: {\n\t\tsrc: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'src',\n\t\t},\n\t\tcaption: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tautoplay: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'autoplay',\n\t\t},\n\t\tloop: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'loop',\n\t\t},\n\t\tpreload: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'audio',\n\t\t\tattribute: 'preload',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'audio/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// in the audio block\n\t\t\t\t\tconst block = createBlock( 'core/audio', {\n\t\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { autoplay, caption, loop, preload, src } = attributes;\n\t\treturn (\n\t\t\t<figure>\n\t\t\t\t<audio controls=\"controls\" src={ src } autoPlay={ autoplay } loop={ loop } preload={ preload } />\n\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { Button } from '@wordpress/components';\nimport { Component, Fragment, createRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { withInstanceId } from '@wordpress/compose';\n\nclass ReusableBlockEditPanel extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.titleField = createRef();\n\t\tthis.editButton = createRef();\n\t\tthis.handleFormSubmit = this.handleFormSubmit.bind( this );\n\t\tthis.handleTitleChange = this.handleTitleChange.bind( this );\n\t\tthis.handleTitleKeyDown = this.handleTitleKeyDown.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\t// Select the input text when the form opens.\n\t\tif ( this.props.isEditing && this.titleField.current ) {\n\t\t\tthis.titleField.current.select();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Select the input text only once when the form opens.\n\t\tif ( ! prevProps.isEditing && this.props.isEditing ) {\n\t\t\tthis.titleField.current.select();\n\t\t}\n\t\t// Move focus back to the Edit button after pressing the Escape key, Cancel, or Save.\n\t\tif ( ( prevProps.isEditing || prevProps.isSaving ) && ! this.props.isEditing && ! this.props.isSaving ) {\n\t\t\tthis.editButton.current.focus();\n\t\t}\n\t}\n\n\thandleFormSubmit( event ) {\n\t\tevent.preventDefault();\n\t\tthis.props.onSave();\n\t}\n\n\thandleTitleChange( event ) {\n\t\tthis.props.onChangeTitle( event.target.value );\n\t}\n\n\thandleTitleKeyDown( event ) {\n\t\tif ( event.keyCode === ESCAPE ) {\n\t\t\tevent.stopPropagation();\n\t\t\tthis.props.onCancel();\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { isEditing, title, isSaving, onEdit, instanceId } = this.props;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ ( ! isEditing && ! isSaving ) && (\n\t\t\t\t\t<div className=\"reusable-block-edit-panel\">\n\t\t\t\t\t\t<b className=\"reusable-block-edit-panel__info\">\n\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t</b>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tref={ this.editButton }\n\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__button\"\n\t\t\t\t\t\t\tonClick={ onEdit }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t\t{ ( isEditing || isSaving ) && (\n\t\t\t\t\t<form className=\"reusable-block-edit-panel\" onSubmit={ this.handleFormSubmit }>\n\t\t\t\t\t\t<label\n\t\t\t\t\t\t\thtmlFor={ `reusable-block-edit-panel__title-${ instanceId }` }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__label\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Name:' ) }\n\t\t\t\t\t\t</label>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tref={ this.titleField }\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tdisabled={ isSaving }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__title\"\n\t\t\t\t\t\t\tvalue={ title }\n\t\t\t\t\t\t\tonChange={ this.handleTitleChange }\n\t\t\t\t\t\t\tonKeyDown={ this.handleTitleKeyDown }\n\t\t\t\t\t\t\tid={ `reusable-block-edit-panel__title-${ instanceId }` }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\ttype=\"submit\"\n\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\tisBusy={ isSaving }\n\t\t\t\t\t\t\tdisabled={ ! title || isSaving }\n\t\t\t\t\t\t\tclassName=\"reusable-block-edit-panel__button\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</form>\n\t\t\t\t) }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withInstanceId( ReusableBlockEditPanel );\n","/**\n * External dependencies\n */\nimport { noop, partial } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { Placeholder, Spinner, Disabled } from '@wordpress/components';\nimport { withSelect, withDispatch } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { BlockEdit } from '@wordpress/editor';\nimport { compose } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport ReusableBlockEditPanel from './edit-panel';\nimport ReusableBlockIndicator from './indicator';\n\nclass ReusableBlockEdit extends Component {\n\tconstructor( { reusableBlock } ) {\n\t\tsuper( ...arguments );\n\n\t\tthis.startEditing = this.startEditing.bind( this );\n\t\tthis.stopEditing = this.stopEditing.bind( this );\n\t\tthis.setAttributes = this.setAttributes.bind( this );\n\t\tthis.setTitle = this.setTitle.bind( this );\n\t\tthis.save = this.save.bind( this );\n\n\t\tif ( reusableBlock && reusableBlock.isTemporary ) {\n\t\t\t// Start in edit mode when we're working with a newly created reusable block\n\t\t\tthis.state = {\n\t\t\t\tisEditing: true,\n\t\t\t\ttitle: reusableBlock.title,\n\t\t\t\tchangedAttributes: {},\n\t\t\t};\n\t\t} else {\n\t\t\t// Start in preview mode when we're working with an existing reusable block\n\t\t\tthis.state = {\n\t\t\t\tisEditing: false,\n\t\t\t\ttitle: null,\n\t\t\t\tchangedAttributes: null,\n\t\t\t};\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tif ( ! this.props.reusableBlock ) {\n\t\t\tthis.props.fetchReusableBlock();\n\t\t}\n\t}\n\n\tstartEditing() {\n\t\tconst { reusableBlock } = this.props;\n\n\t\tthis.setState( {\n\t\t\tisEditing: true,\n\t\t\ttitle: reusableBlock.title,\n\t\t\tchangedAttributes: {},\n\t\t} );\n\t}\n\n\tstopEditing() {\n\t\tthis.setState( {\n\t\t\tisEditing: false,\n\t\t\ttitle: null,\n\t\t\tchangedAttributes: null,\n\t\t} );\n\t}\n\n\tsetAttributes( attributes ) {\n\t\tthis.setState( ( prevState ) => {\n\t\t\tif ( prevState.changedAttributes !== null ) {\n\t\t\t\treturn { changedAttributes: { ...prevState.changedAttributes, ...attributes } };\n\t\t\t}\n\t\t} );\n\t}\n\n\tsetTitle( title ) {\n\t\tthis.setState( { title } );\n\t}\n\n\tsave() {\n\t\tconst { reusableBlock, onUpdateTitle, updateAttributes, block, onSave } = this.props;\n\t\tconst { title, changedAttributes } = this.state;\n\n\t\tif ( title !== reusableBlock.title ) {\n\t\t\tonUpdateTitle( title );\n\t\t}\n\n\t\tupdateAttributes( block.clientId, changedAttributes );\n\t\tonSave();\n\n\t\tthis.stopEditing();\n\t}\n\n\trender() {\n\t\tconst { isSelected, reusableBlock, block, isFetching, isSaving } = this.props;\n\t\tconst { isEditing, title, changedAttributes } = this.state;\n\n\t\tif ( ! reusableBlock && isFetching ) {\n\t\t\treturn <Placeholder><Spinner /></Placeholder>;\n\t\t}\n\n\t\tif ( ! reusableBlock || ! block ) {\n\t\t\treturn <Placeholder>{ __( 'Block has been deleted or is unavailable.' ) }</Placeholder>;\n\t\t}\n\n\t\tlet element = (\n\t\t\t<BlockEdit\n\t\t\t\t{ ...this.props }\n\t\t\t\tisSelected={ isEditing && isSelected }\n\t\t\t\tclientId={ block.clientId }\n\t\t\t\tname={ block.name }\n\t\t\t\tattributes={ { ...block.attributes, ...changedAttributes } }\n\t\t\t\tsetAttributes={ isEditing ? this.setAttributes : noop }\n\t\t\t/>\n\t\t);\n\n\t\tif ( ! isEditing ) {\n\t\t\telement = <Disabled>{ element }</Disabled>;\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ ( isSelected || isEditing ) && (\n\t\t\t\t\t<ReusableBlockEditPanel\n\t\t\t\t\t\tisEditing={ isEditing }\n\t\t\t\t\t\ttitle={ title !== null ? title : reusableBlock.title }\n\t\t\t\t\t\tisSaving={ isSaving && ! reusableBlock.isTemporary }\n\t\t\t\t\t\tonEdit={ this.startEditing }\n\t\t\t\t\t\tonChangeTitle={ this.setTitle }\n\t\t\t\t\t\tonSave={ this.save }\n\t\t\t\t\t\tonCancel={ this.stopEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isSelected && ! isEditing && <ReusableBlockIndicator title={ reusableBlock.title } /> }\n\t\t\t\t{ element }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst {\n\t\t\tgetReusableBlock,\n\t\t\tisFetchingReusableBlock,\n\t\t\tisSavingReusableBlock,\n\t\t\tgetBlock,\n\t\t} = select( 'core/editor' );\n\t\tconst { ref } = ownProps.attributes;\n\t\tconst reusableBlock = getReusableBlock( ref );\n\n\t\treturn {\n\t\t\treusableBlock,\n\t\t\tisFetching: isFetchingReusableBlock( ref ),\n\t\t\tisSaving: isSavingReusableBlock( ref ),\n\t\t\tblock: reusableBlock ? getBlock( reusableBlock.clientId ) : null,\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst {\n\t\t\tfetchReusableBlocks,\n\t\t\tupdateBlockAttributes,\n\t\t\tupdateReusableBlockTitle,\n\t\t\tsaveReusableBlock,\n\t\t} = dispatch( 'core/editor' );\n\t\tconst { ref } = ownProps.attributes;\n\n\t\treturn {\n\t\t\tfetchReusableBlock: partial( fetchReusableBlocks, ref ),\n\t\t\tupdateAttributes: updateBlockAttributes,\n\t\t\tonUpdateTitle: partial( updateReusableBlockTitle, ref ),\n\t\t\tonSave: partial( saveReusableBlock, ref ),\n\t\t};\n\t} ),\n] )( ReusableBlockEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/block';\n\nexport const settings = {\n\ttitle: __( 'Reusable Block' ),\n\n\tcategory: 'reusable',\n\n\tdescription: __( 'Create content, and save it to reuse across your site. Update the block, and the changes apply everywhere its used.' ),\n\n\tattributes: {\n\t\tref: {\n\t\t\ttype: 'number',\n\t\t},\n\t},\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t},\n\n\tedit,\n\n\tsave: () => null,\n};\n","/**\n * WordPress dependencies\n */\nimport { Tooltip, Dashicon } from '@wordpress/components';\nimport { __, sprintf } from '@wordpress/i18n';\n\nfunction ReusableBlockIndicator( { title } ) {\n\t// translators: %s: title/name of the reusable block\n\tconst tooltipText = sprintf( __( 'Reusable Block: %s' ), title );\n\treturn (\n\t\t<Tooltip text={ tooltipText }>\n\t\t\t<span className=\"reusable-block-indicator\">\n\t\t\t\t<Dashicon icon=\"controls-repeat\" />\n\t\t\t</span>\n\t\t</Tooltip>\n\t);\n}\n\nexport default ReusableBlockIndicator;\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport { compose } from '@wordpress/compose';\nimport {\n\tDashicon,\n\tIconButton,\n\twithFallbackStyles,\n} from '@wordpress/components';\nimport {\n\tURLInput,\n\tRichText,\n\tContrastChecker,\n\tInspectorControls,\n\twithColors,\n\tPanelColorSettings,\n} from '@wordpress/editor';\n\nconst { getComputedStyle } = window;\n\nconst FallbackStyles = 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\tFallbackStyles,\n] )( ButtonEdit );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { omit, pick } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tRichText,\n\tgetColorClassName,\n} from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'href',\n\t},\n\ttitle: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'a',\n\t\tattribute: 'title',\n\t},\n\ttext: {\n\t\tsource: 'html',\n\t\tselector: 'a',\n\t},\n\tbackgroundColor: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomBackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/button';\n\nconst colorsMigration = ( attributes ) => {\n\treturn omit( {\n\t\t...attributes,\n\t\tcustomTextColor: attributes.textColor && '#' === attributes.textColor[ 0 ] ? attributes.textColor : undefined,\n\t\tcustomBackgroundColor: attributes.color && '#' === attributes.color[ 0 ] ? attributes.color : undefined,\n\t}, [ 'color', 'textColor' ] );\n};\n\nexport const settings = {\n\ttitle: __( 'Button' ),\n\n\tdescription: __( 'Want visitors to click to subscribe, buy, or read more? Get their attention with a button.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M19 6H5L3 8v8l2 2h14l2-2V8l-2-2zm0 10H5V8h14v8z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: blockAttributes,\n\n\tsupports: {\n\t\talign: true,\n\t\talignWide: false,\n\t},\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Rounded' ), isDefault: true },\n\t\t{ name: 'outline', label: __( 'Outline' ) },\n\t\t{ name: 'squared', label: __( 'Squared' ) },\n\t],\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\turl,\n\t\t\ttext,\n\t\t\ttitle,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tcustomTextColor,\n\t\t} = attributes;\n\n\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\n\t\tconst buttonClasses = classnames( 'wp-block-button__link', {\n\t\t\t'has-text-color': textColor || customTextColor,\n\t\t\t[ textClass ]: textClass,\n\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t} );\n\n\t\tconst buttonStyle = {\n\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t};\n\n\t\treturn (\n\t\t\t<div>\n\t\t\t\t<RichText.Content\n\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\thref={ url }\n\t\t\t\t\ttitle={ title }\n\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\tvalue={ text }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t},\n\n\tdeprecated: [ {\n\t\tattributes: {\n\t\t\t...pick( blockAttributes, [ 'url', 'title', 'text' ] ),\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\tconst buttonStyle = {\n\t\t\t\tbackgroundColor: color,\n\t\t\t\tcolor: textColor,\n\t\t\t};\n\n\t\t\tconst linkClass = 'wp-block-button__link';\n\n\t\t\treturn (\n\t\t\t\t<div className={ `align${ align }` }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\tclassName={ linkClass }\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ buttonStyle }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: colorsMigration,\n\t},\n\t{\n\t\tattributes: {\n\t\t\t...pick( blockAttributes, [ 'url', 'title', 'text' ] ),\n\t\t\tcolor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\ttextColor: {\n\t\t\t\ttype: 'string',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, text, title, align, color, textColor } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<div className={ `align${ align }` } style={ { backgroundColor: color } }>\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"a\"\n\t\t\t\t\t\thref={ url }\n\t\t\t\t\t\ttitle={ title }\n\t\t\t\t\t\tstyle={ { color: textColor } }\n\t\t\t\t\t\tvalue={ text }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t},\n\t\tmigrate: colorsMigration,\n\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { PanelBody, Placeholder, Spinner, ToggleControl } from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport { times, unescape } from 'lodash';\nimport {\n\tInspectorControls,\n\tBlockControls,\n\tBlockAlignmentToolbar,\n} from '@wordpress/editor';\n\nclass CategoriesEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.toggleDisplayAsDropdown = this.toggleDisplayAsDropdown.bind( this );\n\t\tthis.toggleShowPostCounts = this.toggleShowPostCounts.bind( this );\n\t\tthis.toggleShowHierarchy = this.toggleShowHierarchy.bind( this );\n\t}\n\n\ttoggleDisplayAsDropdown() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { displayAsDropdown } = attributes;\n\n\t\tsetAttributes( { displayAsDropdown: ! displayAsDropdown } );\n\t}\n\n\ttoggleShowPostCounts() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { showPostCounts } = attributes;\n\n\t\tsetAttributes( { showPostCounts: ! showPostCounts } );\n\t}\n\n\ttoggleShowHierarchy() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { showHierarchy } = attributes;\n\n\t\tsetAttributes( { showHierarchy: ! showHierarchy } );\n\t}\n\n\tgetCategories( parentId = null ) {\n\t\tconst categories = this.props.categories;\n\t\tif ( ! categories || ! categories.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\tif ( parentId === null ) {\n\t\t\treturn categories;\n\t\t}\n\n\t\treturn categories.filter( ( category ) => category.parent === parentId );\n\t}\n\n\tgetCategoryListClassName( level ) {\n\t\tconst { className } = this.props;\n\t\treturn `${ className }__list ${ className }__list-level-${ level }`;\n\t}\n\n\trenderCategoryName( category ) {\n\t\tif ( ! category.name ) {\n\t\t\treturn __( '(Untitled)' );\n\t\t}\n\n\t\treturn unescape( category.name ).trim();\n\t}\n\n\trenderCategoryList() {\n\t\tconst { showHierarchy } = this.props.attributes;\n\t\tconst parentId = showHierarchy ? 0 : null;\n\t\tconst categories = this.getCategories( parentId );\n\n\t\treturn (\n\t\t\t<ul className={ this.getCategoryListClassName( 0 ) }>\n\t\t\t\t{ categories.map( ( category ) => this.renderCategoryListItem( category, 0 ) ) }\n\t\t\t</ul>\n\t\t);\n\t}\n\n\trenderCategoryListItem( category, level ) {\n\t\tconst { showHierarchy, showPostCounts } = this.props.attributes;\n\t\tconst childCategories = this.getCategories( category.id );\n\n\t\treturn (\n\t\t\t<li key={ category.id }>\n\t\t\t\t<a href={ category.link } target=\"_blank\">{ this.renderCategoryName( category ) }</a>\n\t\t\t\t{ showPostCounts &&\n\t\t\t\t\t<span className={ `${ this.props.className }__post-count` }>\n\t\t\t\t\t\t{ ' ' }({ category.count })\n\t\t\t\t\t</span>\n\t\t\t\t}\n\n\t\t\t\t{\n\t\t\t\t\tshowHierarchy &&\n\t\t\t\t\t!! childCategories.length && (\n\t\t\t\t\t\t<ul className={ this.getCategoryListClassName( level + 1 ) }>\n\t\t\t\t\t\t\t{ childCategories.map( ( childCategory ) => this.renderCategoryListItem( childCategory, level + 1 ) ) }\n\t\t\t\t\t\t</ul>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t</li>\n\t\t);\n\t}\n\n\trenderCategoryDropdown() {\n\t\tconst { showHierarchy } = this.props.attributes;\n\t\tconst parentId = showHierarchy ? 0 : null;\n\t\tconst categories = this.getCategories( parentId );\n\n\t\treturn (\n\t\t\t<select className={ `${ this.props.className }__dropdown` }>\n\t\t\t\t{ categories.map( ( category ) => this.renderCategoryDropdownItem( category, 0 ) ) }\n\t\t\t</select>\n\t\t);\n\t}\n\n\trenderCategoryDropdownItem( category, level ) {\n\t\tconst { showHierarchy, showPostCounts } = this.props.attributes;\n\t\tconst childCategories = this.getCategories( category.id );\n\n\t\treturn [\n\t\t\t<option key={ category.id }>\n\t\t\t\t{ times( level * 3, () => '\\xa0' ) }\n\t\t\t\t{ this.renderCategoryName( category ) }\n\t\t\t\t{\n\t\t\t\t\t!! showPostCounts ?\n\t\t\t\t\t\t` (${ category.count })` :\n\t\t\t\t\t\t''\n\t\t\t\t}\n\t\t\t</option>,\n\t\t\tshowHierarchy &&\n\t\t\t!! childCategories.length && (\n\t\t\t\tchildCategories.map( ( childCategory ) => this.renderCategoryDropdownItem( childCategory, level + 1 ) )\n\t\t\t),\n\t\t];\n\t}\n\n\trender() {\n\t\tconst { attributes, setAttributes, isRequesting } = this.props;\n\t\tconst { align, displayAsDropdown, showHierarchy, showPostCounts } = attributes;\n\n\t\tconst inspectorControls = (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Categories Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Display as Dropdown' ) }\n\t\t\t\t\t\tchecked={ displayAsDropdown }\n\t\t\t\t\t\tonChange={ this.toggleDisplayAsDropdown }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Hierarchy' ) }\n\t\t\t\t\t\tchecked={ showHierarchy }\n\t\t\t\t\t\tonChange={ this.toggleShowHierarchy }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show Post Counts' ) }\n\t\t\t\t\t\tchecked={ showPostCounts }\n\t\t\t\t\t\tonChange={ this.toggleShowPostCounts }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\tif ( isRequesting ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ inspectorControls }\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon=\"admin-post\"\n\t\t\t\t\t\tlabel={ __( 'Categories' ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t</Placeholder>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tcontrols={ [ 'left', 'center', 'right', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div className={ this.props.className }>\n\t\t\t\t\t{\n\t\t\t\t\t\tdisplayAsDropdown ?\n\t\t\t\t\t\t\tthis.renderCategoryDropdown() :\n\t\t\t\t\t\t\tthis.renderCategoryList()\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select ) => {\n\tconst { getEntityRecords } = select( 'core' );\n\tconst { isResolving } = select( 'core/data' );\n\tconst query = { per_page: -1 };\n\n\treturn {\n\t\tcategories: getEntityRecords( 'taxonomy', 'category', query ),\n\t\tisRequesting: isResolving( 'core', 'getEntityRecords', [ 'taxonomy', 'category', query ] ),\n\t};\n} )( CategoriesEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/categories';\n\nexport const settings = {\n\ttitle: __( 'Categories' ),\n\n\tdescription: __( 'Display a list of all your sites categories.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M12,2l-5.5,9h11L12,2z M12,5.84L13.93,9h-3.87L12,5.84z\" /><path d=\"m17.5 13c-2.49 0-4.5 2.01-4.5 4.5s2.01 4.5 4.5 4.5 4.5-2.01 4.5-4.5-2.01-4.5-4.5-4.5zm0 7c-1.38 0-2.5-1.12-2.5-2.5s1.12-2.5 2.5-2.5 2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5z\" /><path d=\"m3 21.5h8v-8h-8v8zm2-6h4v4h-4v-4z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tattributes: {\n\t\tshowPostCounts: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\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\talign: {\n\t\t\ttype: 'string',\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' === align || 'right' === 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 * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE, F10 } from '@wordpress/keycodes';\n\nfunction isTmceEmpty( editor ) {\n\t// When tinyMce is empty the content seems to be:\n\t// <p><br data-mce-bogus=\"1\"></p>\n\t// avoid expensive checks for large documents\n\tconst body = editor.getBody();\n\tif ( body.childNodes.length > 1 ) {\n\t\treturn false;\n\t} else if ( body.childNodes.length === 0 ) {\n\t\treturn true;\n\t}\n\tif ( body.childNodes[ 0 ].childNodes.length > 1 ) {\n\t\treturn false;\n\t}\n\treturn /^\\n?$/.test( body.innerText || body.textContent );\n}\n\nexport default class ClassicEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\t\tthis.initialize = this.initialize.bind( this );\n\t\tthis.onSetup = this.onSetup.bind( this );\n\t\tthis.focus = this.focus.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { baseURL, suffix } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\tif ( document.readyState === 'complete' ) {\n\t\t\tthis.initialize();\n\t\t} else {\n\t\t\twindow.addEventListener( 'DOMContentLoaded', this.initialize );\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\twindow.addEventListener( 'DOMContentLoaded', this.initialize );\n\t\twp.oldEditor.remove( `editor-${ this.props.clientId }` );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { clientId, attributes: { content } } = this.props;\n\n\t\tconst editor = window.tinymce.get( `editor-${ clientId }` );\n\n\t\tif ( prevProps.attributes.content !== content ) {\n\t\t\teditor.setContent( content || '' );\n\t\t}\n\t}\n\n\tinitialize() {\n\t\tconst { clientId } = this.props;\n\t\tconst { settings } = window.wpEditorL10n.tinymce;\n\t\twp.oldEditor.initialize( `editor-${ clientId }`, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tinline: true,\n\t\t\t\tcontent_css: false,\n\t\t\t\tfixed_toolbar_container: `#toolbar-${ clientId }`,\n\t\t\t\tsetup: this.onSetup,\n\t\t\t},\n\t\t} );\n\t}\n\n\tonSetup( editor ) {\n\t\tconst { attributes: { content }, setAttributes } = this.props;\n\t\tconst { ref } = this;\n\n\t\tthis.editor = editor;\n\n\t\t// Disable TinyMCE's keyboard shortcut help.\n\t\teditor.on( 'BeforeExecCommand', ( event ) => {\n\t\t\tif ( event.command === 'WP_Help' ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t} );\n\n\t\tif ( content ) {\n\t\t\teditor.on( 'loadContent', () => editor.setContent( content ) );\n\t\t}\n\n\t\teditor.on( 'blur', () => {\n\t\t\tsetAttributes( {\n\t\t\t\tcontent: editor.getContent(),\n\t\t\t} );\n\t\t\treturn false;\n\t\t} );\n\n\t\teditor.on( 'keydown', ( event ) => {\n\t\t\tif ( ( event.keyCode === BACKSPACE || event.keyCode === DELETE ) && isTmceEmpty( editor ) ) {\n\t\t\t\t// delete the block\n\t\t\t\tthis.props.onReplace( [] );\n\t\t\t\tevent.preventDefault();\n\t\t\t\tevent.stopImmediatePropagation();\n\t\t\t}\n\n\t\t\tconst { altKey } = event;\n\t\t\t/*\n\t\t\t * Prevent Mousetrap from kicking in: TinyMCE already uses its own\n\t\t\t * `alt+f10` shortcut to focus its toolbar.\n\t\t\t */\n\t\t\tif ( altKey && event.keyCode === F10 ) {\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t} );\n\n\t\teditor.addButton( 'kitchensink', {\n\t\t\ttooltip: _x( 'More', 'button to expand options' ),\n\t\t\ticon: 'dashicon dashicons-editor-kitchensink',\n\t\t\tonClick: function() {\n\t\t\t\tconst button = this;\n\t\t\t\tconst active = ! button.active();\n\n\t\t\t\tbutton.active( active );\n\t\t\t\teditor.dom.toggleClass( ref, 'has-advanced-toolbar', active );\n\t\t\t},\n\t\t} );\n\n\t\teditor.addButton( 'wp_add_media', {\n\t\t\ttooltip: __( 'Insert Media' ),\n\t\t\ticon: 'dashicon dashicons-admin-media',\n\t\t\tcmd: 'WP_Medialib',\n\t\t} );\n\n\t\teditor.on( 'init', () => {\n\t\t\tconst rootNode = this.editor.getBody();\n\n\t\t\t// Create the toolbar by refocussing the editor.\n\t\t\tif ( document.activeElement === rootNode ) {\n\t\t\t\trootNode.blur();\n\t\t\t\tthis.editor.focus();\n\t\t\t}\n\t\t} );\n\t}\n\n\tfocus() {\n\t\tif ( this.editor ) {\n\t\t\tthis.editor.focus();\n\t\t}\n\t}\n\n\tonToolbarKeyDown( event ) {\n\t\t// Prevent WritingFlow from kicking in and allow arrows navigation on the toolbar.\n\t\tevent.stopPropagation();\n\t\t// Prevent Mousetrap from moving focus to the top toolbar when pressing `alt+f10` on this block toolbar.\n\t\tevent.nativeEvent.stopImmediatePropagation();\n\t}\n\n\trender() {\n\t\tconst { clientId } = this.props;\n\n\t\t// Disable reason: the toolbar itself is non-interactive, but must capture\n\t\t// events from the KeyboardShortcuts component to stop their propagation.\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions */\n\t\treturn [\n\t\t\t// Disable reason: Clicking on this visual placeholder should create\n\t\t\t// the toolbar, it can also be created by focussing the field below.\n\t\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/click-events-have-key-events */\n\t\t\t<div\n\t\t\t\tkey=\"toolbar\"\n\t\t\t\tid={ `toolbar-${ clientId }` }\n\t\t\t\tref={ ( ref ) => this.ref = ref }\n\t\t\t\tclassName=\"block-library-classic__toolbar\"\n\t\t\t\tonClick={ this.focus }\n\t\t\t\tdata-placeholder={ __( 'Classic' ) }\n\t\t\t\tonKeyDown={ this.onToolbarKeyDown }\n\t\t\t/>,\n\t\t\t<div\n\t\t\t\tkey=\"editor\"\n\t\t\t\tid={ `editor-${ clientId }` }\n\t\t\t\tclassName=\"wp-block-freeform block-library-rich-text__tinymce\"\n\t\t\t/>,\n\t\t];\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions */\n\t}\n}\n","/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/freeform';\n\nexport const settings = {\n\ttitle: __( 'Classic' ),\n\n\tdescription: __( 'Its the classic WordPress editor and its a block! Drop the editor right in.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m20 7v10h-16v-10h16m0-2h-16c-1.1 0-1.99 0.9-1.99 2l-0.01 10c0 1.1 0.9 2 2 2h16c1.1 0 2-0.9 2-2v-10c0-1.1-0.9-2-2-2z\" /><rect x=\"11\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"11\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"5\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"5\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"8\" y=\"14\" width=\"8\" height=\"2\" /><rect x=\"14\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"14\" y=\"8\" width=\"2\" height=\"2\" /><rect x=\"17\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"17\" y=\"8\" width=\"2\" height=\"2\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t},\n\t},\n\n\tsupports: {\n\t\tclassName: false,\n\t\tcustomClassName: false,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn <RawHTML>{ content }</RawHTML>;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { PlainText } from '@wordpress/editor';\n\nexport default function CodeEdit( { attributes, setAttributes, className } ) {\n\treturn (\n\t\t<div className={ className }>\n\t\t\t<PlainText\n\t\t\t\tvalue={ attributes.content }\n\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\tplaceholder={ __( 'Write code…' ) }\n\t\t\t\taria-label={ __( 'Code' ) }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/code';\n\nexport const settings = {\n\ttitle: __( 'Code' ),\n\n\tdescription: __( 'Add text that respects your spacing and tabs -- perfect for displaying code.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M9.4,16.6L4.8,12l4.6-4.6L8,6l-6,6l6,6L9.4,16.6z M14.6,16.6l4.6-4.6l-4.6-4.6L16,6l6,6l-6,6L14.6,16.6z\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'text',\n\t\t\tselector: 'code',\n\t\t},\n\t},\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\ttrigger: 'enter',\n\t\t\t\tregExp: /^```$/,\n\t\t\t\ttransform: () => createBlock( 'core/code' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => (\n\t\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\t\tnode.children.length === 1 &&\n\t\t\t\t\tnode.firstChild.nodeName === 'CODE'\n\t\t\t\t),\n\t\t\t\tschema: {\n\t\t\t\t\tpre: {\n\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\tcode: {\n\t\t\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\t\t\t'#text': {},\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\treturn <pre><code>{ attributes.content }</code></pre>;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InnerBlocks } from '@wordpress/editor';\n\nexport const name = 'core/column';\n\nexport const settings = {\n\ttitle: __( 'Column' ),\n\n\tparent: [ 'core/columns' ],\n\n\ticon: 'columns',\n\n\tdescription: __( 'A single column within a columns block.' ),\n\n\tcategory: 'common',\n\n\tsupports: {\n\t\tinserter: false,\n\t},\n\n\tedit() {\n\t\treturn <InnerBlocks templateLock={ false } />;\n\t},\n\n\tsave() {\n\t\treturn <div><InnerBlocks.Content /></div>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { times, property, omit } from 'lodash';\nimport classnames from 'classnames';\nimport memoize from 'memize';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tInspectorControls,\n\tInnerBlocks,\n} from '@wordpress/editor';\n\n/**\n * Allowed blocks constant is passed to InnerBlocks precisely as specified here.\n * The contents of the array should never change.\n * The array should contain the name of each block that is allowed.\n * In columns block, the only block we allow is 'core/column'.\n *\n * @constant\n * @type {string[]}\n*/\nconst ALLOWED_BLOCKS = [ 'core/column' ];\n\n/**\n * Returns the layouts configuration for a given number of columns.\n *\n * @param {number} columns Number of columns.\n *\n * @return {Object[]} Columns layout configuration.\n */\nconst getColumnsTemplate = memoize( ( columns ) => {\n\treturn times( columns, () => [ 'core/column' ] );\n} );\n\nexport const name = 'core/columns';\n\nexport const settings = {\n\ttitle: sprintf(\n\t\t/* translators: Block title modifier */\n\t\t__( '%1$s (%2$s)' ),\n\t\t__( 'Columns' ),\n\t\t__( 'beta' )\n\t),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M21 4H3L2 5v14l1 1h18l1-1V5l-1-1zM8 18H4V6h4v12zm6 0h-4V6h4v12zm6 0h-4V6h4v12z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t},\n\n\tdescription: __( 'Add a block that displays content in multiple columns, then add whatever content blocks youd like.' ),\n\n\tsupports: {\n\t\talign: [ 'wide', 'full' ],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: {\n\t\t\t\tcolumns: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tdefault: 2,\n\t\t\t\t},\n\t\t\t},\n\t\t\tisEligible( attributes, innerBlocks ) {\n\t\t\t\treturn innerBlocks.some( property( [ 'attributes', 'layout' ] ) );\n\t\t\t},\n\t\t\tmigrate( attributes, innerBlocks ) {\n\t\t\t\tfunction withoutLayout( block ) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...block,\n\t\t\t\t\t\tattributes: omit( block.attributes, [ 'layout' ] ),\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tconst columns = innerBlocks.reduce( ( result, innerBlock ) => {\n\t\t\t\t\tconst { layout } = innerBlock.attributes;\n\n\t\t\t\t\tlet columnIndex, columnMatch;\n\t\t\t\t\tif ( layout && ( columnMatch = layout.match( /^column-(\\d+)$/ ) ) ) {\n\t\t\t\t\t\tcolumnIndex = Number( columnMatch[ 1 ] ) - 1;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tcolumnIndex = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! result[ columnIndex ] ) {\n\t\t\t\t\t\tresult[ columnIndex ] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tresult[ columnIndex ].push( withoutLayout( innerBlock ) );\n\n\t\t\t\t\treturn result;\n\t\t\t\t}, [] );\n\n\t\t\t\tconst migratedInnerBlocks = columns.map( ( columnBlocks ) => (\n\t\t\t\t\tcreateBlock( 'core/column', {}, columnBlocks )\n\t\t\t\t) );\n\n\t\t\t\treturn [\n\t\t\t\t\tattributes,\n\t\t\t\t\tmigratedInnerBlocks,\n\t\t\t\t];\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { columns } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t\t\t<InnerBlocks.Content />\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\n\tedit( { attributes, setAttributes, className } ) {\n\t\tconst { columns } = attributes;\n\t\tconst classes = classnames( className, `has-${ columns }-columns` );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( nextColumns ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tcolumns: nextColumns,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 6 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<div className={ classes }>\n\t\t\t\t\t<InnerBlocks\n\t\t\t\t\t\ttemplate={ getColumnsTemplate( columns ) }\n\t\t\t\t\t\ttemplateLock=\"all\"\n\t\t\t\t\t\tallowedBlocks={ ALLOWED_BLOCKS } />\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { columns } = attributes;\n\n\t\treturn (\n\t\t\t<div className={ `has-${ columns }-columns` }>\n\t\t\t\t<InnerBlocks.Content />\n\t\t\t</div>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { IconButton, PanelBody, RangeControl, ToggleControl, Toolbar, withNotices } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { compose } from '@wordpress/compose';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tAlignmentToolbar,\n\tPanelColorSettings,\n\tRichText,\n\twithColors,\n\tgetColorClassName,\n} from '@wordpress/editor';\n\nconst validAlignments = [ 'left', 'center', 'right', 'wide', 'full' ];\n\nconst blockAttributes = {\n\ttitle: {\n\t\tsource: 'html',\n\t\tselector: 'p',\n\t},\n\turl: {\n\t\ttype: 'string',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tcontentAlign: {\n\t\ttype: 'string',\n\t\tdefault: 'center',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\thasParallax: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tdimRatio: {\n\t\ttype: 'number',\n\t\tdefault: 50,\n\t},\n\toverlayColor: {\n\t\ttype: 'string',\n\t},\n\tcustomOverlayColor: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/cover-image';\n\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nexport const settings = {\n\ttitle: __( 'Cover Image' ),\n\n\tdescription: __( 'Add a full-width image, and layer text over it — great for headers.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M4 4h7V2H4c-1.1 0-2 .9-2 2v7h2V4zm6 9l-4 5h12l-3-4-2.03 2.71L10 13zm7-4.5c0-.83-.67-1.5-1.5-1.5S14 7.67 14 8.5s.67 1.5 1.5 1.5S17 9.33 17 8.5zM20 2h-7v2h7v7h2V4c0-1.1-.9-2-2-2zm0 18h-7v2h7c1.1 0 2-.9 2-2v-7h-2v7zM4 13H2v7c0 1.1.9 2 2 2h7v-2H4v-7z\" /><path d=\"M0 0h24v24H0z\" fill=\"none\" /></svg>,\n\n\tcategory: 'common',\n\n\tattributes: blockAttributes,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { content } ) => (\n\t\t\t\t\tcreateBlock( 'core/cover-image', { 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-image', {\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],\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\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],\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 { url, title, align, contentAlign, id, hasParallax, dimRatio } = attributes;\n\t\t\tconst updateAlignment = ( nextAlign ) => setAttributes( { align: nextAlign } );\n\t\t\tconst onSelectImage = ( 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\tsetAttributes( { url: media.url, id: media.id } );\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...backgroundImageStyles( url ),\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<AlignmentToolbar\n\t\t\t\t\t\t\tvalue={ contentAlign }\n\t\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { contentAlign: nextAlign } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit image' ) }\n\t\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\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</Toolbar>\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 Image Settings' ) }>\n\t\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Fixed Background' ) }\n\t\t\t\t\t\t\t\t\tchecked={ hasParallax }\n\t\t\t\t\t\t\t\t\tonChange={ toggleParallax }\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 Image' );\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\tname: __( 'an image' ),\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonSelect={ onSelectImage }\n\t\t\t\t\t\t\taccept=\"image/*\"\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{ ( ! 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-image-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 { url, title, hasParallax, dimRatio, align, contentAlign, overlayColor, customOverlayColor } = attributes;\n\t\tconst overlayColorClass = getColorClassName( 'background-color', overlayColor );\n\t\tconst style = backgroundImageStyles( url );\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{ ! RichText.isEmpty( title ) && (\n\t\t\t\t\t<RichText.Content tagName=\"p\" className=\"wp-block-cover-image-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\ttitle: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'h2',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes, className } ) {\n\t\t\tconst { url, title, hasParallax, dimRatio, align } = attributes;\n\t\t\tconst style = backgroundImageStyles( url );\n\t\t\tconst classes = classnames(\n\t\t\t\tclassName,\n\t\t\t\tdimRatioToClass( dimRatio ),\n\t\t\t\t{\n\t\t\t\t\t'has-background-dim': dimRatio !== 0,\n\t\t\t\t\t'has-parallax': hasParallax,\n\t\t\t\t},\n\t\t\t\talign ? `align${ align }` : null,\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<section className={ classes } style={ style }>\n\t\t\t\t\t<RichText.Content tagName=\"h2\" value={ title } />\n\t\t\t\t</section>\n\t\t\t);\n\t\t},\n\t} ],\n};\n\nfunction dimRatioToClass( ratio ) {\n\treturn ( ratio === 0 || ratio === 50 ) ?\n\t\tnull :\n\t\t'has-background-dim-' + ( 10 * Math.round( ratio / 10 ) );\n}\n\nfunction backgroundImageStyles( url ) {\n\treturn url ?\n\t\t{ backgroundImage: `url(${ url })` } :\n\t\t{};\n}\n","/**\n * External dependencies\n */\nimport { parse } from 'url';\nimport { includes, kebabCase, toLower } from 'lodash';\nimport classnames from 'classnames/dedupe';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { compose } from '@wordpress/compose';\nimport { Component, renderToString, Fragment } from '@wordpress/element';\nimport {\n\tButton,\n\tPlaceholder,\n\tSpinner,\n\tSandBox,\n\tIconButton,\n\tToolbar,\n\tPanelBody,\n\tToggleControl,\n} from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, BlockControls, BlockIcon, InspectorControls } from '@wordpress/editor';\nimport { withSelect } from '@wordpress/data';\n\n// These embeds do not work in sandboxes\nconst HOSTS_NO_PREVIEWS = [ 'facebook.com' ];\n\nconst ASPECT_RATIOS = [\n\t// Common video resolutions.\n\t{ ratio: '2.33', className: 'wp-embed-aspect-21-9' },\n\t{ ratio: '2.00', className: 'wp-embed-aspect-18-9' },\n\t{ ratio: '1.78', className: 'wp-embed-aspect-16-9' },\n\t{ ratio: '1.33', className: 'wp-embed-aspect-4-3' },\n\t// Vertical video and instagram square video support.\n\t{ ratio: '1.00', className: 'wp-embed-aspect-1-1' },\n\t{ ratio: '0.56', className: 'wp-embed-aspect-9-16' },\n\t{ ratio: '0.50', className: 'wp-embed-aspect-1-2' },\n];\n\nconst matchesPatterns = ( url, patterns = [] ) => {\n\treturn patterns.some( ( pattern ) => {\n\t\treturn url.match( pattern );\n\t} );\n};\n\nconst findBlock = ( url ) => {\n\tfor ( const block of [ ...common, ...others ] ) {\n\t\tif ( matchesPatterns( url, block.patterns ) ) {\n\t\t\treturn block.name;\n\t\t}\n\t}\n\treturn 'core/embed';\n};\n\nexport function getEmbedEdit( title, icon ) {\n\treturn class extends Component {\n\t\tconstructor() {\n\t\t\tsuper( ...arguments );\n\n\t\t\tthis.switchBackToURLInput = this.switchBackToURLInput.bind( this );\n\t\t\tthis.setUrl = this.setUrl.bind( this );\n\t\t\tthis.maybeSwitchBlock = this.maybeSwitchBlock.bind( this );\n\t\t\tthis.setAttributesFromPreview = this.setAttributesFromPreview.bind( this );\n\t\t\tthis.setAspectRatioClassNames = this.setAspectRatioClassNames.bind( this );\n\t\t\tthis.getResponsiveHelp = this.getResponsiveHelp.bind( this );\n\t\t\tthis.toggleResponsive = this.toggleResponsive.bind( this );\n\t\t\tthis.handleIncomingPreview = this.handleIncomingPreview.bind( this );\n\n\t\t\tthis.state = {\n\t\t\t\teditingURL: false,\n\t\t\t\turl: this.props.attributes.url,\n\t\t\t};\n\n\t\t\tif ( this.props.preview ) {\n\t\t\t\tthis.handleIncomingPreview();\n\t\t\t}\n\t\t}\n\n\t\thandleIncomingPreview() {\n\t\t\tthis.setAttributesFromPreview();\n\t\t\tthis.maybeSwitchBlock();\n\t\t}\n\n\t\tcomponentDidUpdate( prevProps ) {\n\t\t\tconst hasPreview = undefined !== this.props.preview;\n\t\t\tconst hadPreview = undefined !== prevProps.preview;\n\t\t\t// We had a preview, and the URL was edited, and the new URL already has a preview fetched.\n\t\t\tconst switchedPreview = this.props.preview && this.props.attributes.url !== prevProps.attributes.url;\n\t\t\tconst switchedURL = this.props.attributes.url !== prevProps.attributes.url;\n\n\t\t\tif ( switchedURL && this.maybeSwitchBlock() ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( ( hasPreview && ! hadPreview ) || switchedPreview ) {\n\t\t\t\tif ( this.props.previewIsFallback ) {\n\t\t\t\t\tthis.setState( { editingURL: true } );\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.handleIncomingPreview();\n\t\t\t}\n\t\t}\n\n\t\tgetPhotoHtml( photo ) {\n\t\t\t// 100% width for the preview so it fits nicely into the document, some \"thumbnails\" are\n\t\t\t// acually the full size photo.\n\t\t\tconst photoPreview = <p><img src={ photo.thumbnail_url } alt={ photo.title } width=\"100%\" /></p>;\n\t\t\treturn renderToString( photoPreview );\n\t\t}\n\n\t\tsetUrl( event ) {\n\t\t\tif ( event ) {\n\t\t\t\tevent.preventDefault();\n\t\t\t}\n\t\t\tconst { url } = this.state;\n\t\t\tconst { setAttributes } = this.props;\n\t\t\tthis.setState( { editingURL: false } );\n\t\t\tsetAttributes( { url } );\n\t\t}\n\n\t\t/***\n\t\t * Maybe switches to a different embed block type, based on the URL\n\t\t * and the HTML in the preview.\n\t\t *\n\t\t * @return {boolean} Whether the block was switched.\n\t\t */\n\t\tmaybeSwitchBlock() {\n\t\t\tconst { preview } = this.props;\n\t\t\tconst { url } = this.props.attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst matchingBlock = findBlock( url );\n\n\t\t\t// WordPress blocks can work on multiple sites, and so don't have patterns,\n\t\t\t// so if we're in a WordPress block, assume the user has chosen it for a WordPress URL.\n\t\t\tif ( 'core-embed/wordpress' !== this.props.name && 'core/embed' !== matchingBlock ) {\n\t\t\t\t// At this point, we have discovered a more suitable block for this url, so transform it.\n\t\t\t\tif ( this.props.name !== matchingBlock ) {\n\t\t\t\t\tthis.props.onReplace( createBlock( matchingBlock, { url } ) );\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( preview ) {\n\t\t\t\tconst { html } = preview;\n\n\t\t\t\t// This indicates it's a WordPress embed, there aren't a set of URL patterns we can use to match WordPress URLs.\n\t\t\t\tif ( includes( html, 'class=\"wp-embedded-content\" data-secret' ) ) {\n\t\t\t\t\t// If this is not the WordPress embed block, transform it into one.\n\t\t\t\t\tif ( this.props.name !== 'core-embed/wordpress' ) {\n\t\t\t\t\t\tthis.props.onReplace( createBlock( 'core-embed/wordpress', { url } ) );\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t}\n\n\t\t/**\n\t\t * Gets the appropriate CSS class names to enforce an aspect ratio when the embed is resized\n\t\t * if the HTML has an iframe with width and height set.\n\t\t *\n\t\t * @param {string} html The preview HTML that possibly contains an iframe with width and height set.\n\t\t * @param {boolean} allowResponsive If the classes should be added, or removed.\n\t\t * @return {Object} Object with classnames set for use with `classnames`.\n\t\t */\n\t\tgetAspectRatioClassNames( html, allowResponsive = true ) {\n\t\t\tconst previewDocument = document.implementation.createHTMLDocument( '' );\n\t\t\tpreviewDocument.body.innerHTML = html;\n\t\t\tconst iframe = previewDocument.body.querySelector( 'iframe' );\n\n\t\t\tif ( iframe && iframe.height && iframe.width ) {\n\t\t\t\tconst aspectRatio = ( iframe.width / iframe.height ).toFixed( 2 );\n\t\t\t\t// Given the actual aspect ratio, find the widest ratio to support it.\n\t\t\t\tfor ( let ratioIndex = 0; ratioIndex < ASPECT_RATIOS.length; ratioIndex++ ) {\n\t\t\t\t\tconst potentialRatio = ASPECT_RATIOS[ ratioIndex ];\n\t\t\t\t\tif ( aspectRatio >= potentialRatio.ratio ) {\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t[ potentialRatio.className ]: allowResponsive,\n\t\t\t\t\t\t\t'wp-has-aspect-ratio': allowResponsive,\n\t\t\t\t\t\t};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t/**\n\t\t * Sets the aspect ratio related class names returned by `getAspectRatioClassNames`\n\t\t * if `allowResponsive` is truthy.\n\t\t *\n\t\t * @param {string} html The preview HTML.\n\t\t */\n\t\tsetAspectRatioClassNames( html ) {\n\t\t\tconst { allowResponsive } = this.props.attributes;\n\t\t\tif ( ! allowResponsive ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst className = classnames(\n\t\t\t\tthis.props.attributes.className,\n\t\t\t\tthis.getAspectRatioClassNames( html )\n\t\t\t);\n\t\t\tthis.props.setAttributes( { className } );\n\t\t}\n\n\t\t/***\n\t\t * Sets block attributes based on the preview data.\n\t\t */\n\t\tsetAttributesFromPreview() {\n\t\t\tconst { setAttributes, preview } = this.props;\n\n\t\t\t// Some plugins only return HTML with no type info, so default this to 'rich'.\n\t\t\tlet { type = 'rich' } = preview;\n\t\t\t// If we got a provider name from the API, use it for the slug, otherwise we use the title,\n\t\t\t// because not all embed code gives us a provider name.\n\t\t\tconst { html, provider_name: providerName } = preview;\n\t\t\tconst providerNameSlug = kebabCase( toLower( '' !== providerName ? providerName : title ) );\n\n\t\t\tif ( includes( html, 'class=\"wp-embedded-content\" data-secret' ) ) {\n\t\t\t\ttype = 'wp-embed';\n\t\t\t}\n\n\t\t\tif ( html || 'photo' === type ) {\n\t\t\t\tsetAttributes( { type, providerNameSlug } );\n\t\t\t}\n\n\t\t\tthis.setAspectRatioClassNames( html );\n\t\t}\n\n\t\tswitchBackToURLInput() {\n\t\t\tthis.setState( { editingURL: true } );\n\t\t}\n\n\t\tgetResponsiveHelp( checked ) {\n\t\t\treturn checked ? __( 'Videos and other content automatically resizes.' ) : __( 'Content is fixed size.' );\n\t\t}\n\n\t\ttoggleResponsive() {\n\t\t\tconst { allowResponsive, className } = this.props.attributes;\n\t\t\tconst { html } = this.props.preview;\n\t\t\tconst responsiveClassNames = this.getAspectRatioClassNames( html, ! allowResponsive );\n\n\t\t\tthis.props.setAttributes(\n\t\t\t\t{\n\t\t\t\t\tallowResponsive: ! allowResponsive,\n\t\t\t\t\tclassName: classnames( className, responsiveClassNames ),\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\trender() {\n\t\t\tconst { url, editingURL } = this.state;\n\t\t\tconst { caption, type, allowResponsive } = this.props.attributes;\n\t\t\tconst { fetching, setAttributes, isSelected, className, preview, previewIsFallback } = this.props;\n\t\t\t// We have a URL, but couldn't get a preview, or the preview was the oEmbed fallback.\n\t\t\tconst cannotEmbed = url && ( ! preview || previewIsFallback );\n\t\t\tconst controls = (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t\t{ preview && ! previewIsFallback && (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit URL' ) }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\tonClick={ this.switchBackToURLInput }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</Toolbar>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Media Settings' ) } className=\"blocks-responsive\">\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Automatically scale content' ) }\n\t\t\t\t\t\t\t\tchecked={ allowResponsive }\n\t\t\t\t\t\t\t\thelp={ this.getResponsiveHelp }\n\t\t\t\t\t\t\t\tonChange={ this.toggleResponsive }\n\t\t\t\t\t\t\t/>\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\n\t\t\tif ( fetching ) {\n\t\t\t\treturn (\n\t\t\t\t\t<div className=\"wp-block-embed is-loading\">\n\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t<p>{ __( 'Embedding…' ) }</p>\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\t// translators: %s: type of embed e.g: \"YouTube\", \"Twitter\", etc. \"Embed\" is used when no specific type exists\n\t\t\tconst label = sprintf( __( '%s URL' ), title );\n\n\t\t\tif ( ! preview || previewIsFallback || editingURL ) {\n\t\t\t\treturn (\n\t\t\t\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label } className=\"wp-block-embed\">\n\t\t\t\t\t\t<form onSubmit={ this.setUrl }>\n\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\ttype=\"url\"\n\t\t\t\t\t\t\t\tvalue={ url || '' }\n\t\t\t\t\t\t\t\tclassName=\"components-placeholder__input\"\n\t\t\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Enter URL to embed here…' ) }\n\t\t\t\t\t\t\t\tonChange={ ( event ) => this.setState( { url: event.target.value } ) } />\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\t\ttype=\"submit\">\n\t\t\t\t\t\t\t\t{ __( 'Embed' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{ cannotEmbed && <p className=\"components-placeholder__error\">{ __( 'Sorry, we could not embed that content.' ) }</p> }\n\t\t\t\t\t\t</form>\n\t\t\t\t\t</Placeholder>\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tconst html = 'photo' === type ? this.getPhotoHtml( preview ) : preview.html;\n\t\t\tconst { scripts } = preview;\n\t\t\tconst parsedUrl = parse( url );\n\t\t\tconst cannotPreview = includes( HOSTS_NO_PREVIEWS, parsedUrl.host.replace( /^www\\./, '' ) );\n\t\t\t// translators: %s: host providing embed content e.g: www.youtube.com\n\t\t\tconst iframeTitle = sprintf( __( 'Embedded content from %s' ), parsedUrl.host );\n\t\t\tconst sandboxClassnames = classnames( type, className );\n\t\t\tconst embedWrapper = 'wp-embed' === type ? (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"wp-block-embed__wrapper\"\n\t\t\t\t\tdangerouslySetInnerHTML={ { __html: html } }\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t<SandBox\n\t\t\t\t\t\thtml={ html }\n\t\t\t\t\t\tscripts={ scripts }\n\t\t\t\t\t\ttitle={ iframeTitle }\n\t\t\t\t\t\ttype={ sandboxClassnames }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\n\t\t\treturn (\n\t\t\t\t<figure className={ classnames( className, 'wp-block-embed', { 'is-video': 'video' === type } ) }>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t{ ( cannotPreview ) ? (\n\t\t\t\t\t\t<Placeholder icon={ <BlockIcon icon={ icon } showColors /> } label={ label }>\n\t\t\t\t\t\t\t<p className=\"components-placeholder__error\"><a href={ url }>{ url }</a></p>\n\t\t\t\t\t\t\t<p className=\"components-placeholder__error\">{ __( 'Previews for this are unavailable in the editor, sorry!' ) }</p>\n\t\t\t\t\t\t</Placeholder>\n\t\t\t\t\t) : embedWrapper }\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t}\n\t};\n}\n\nconst embedAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t},\n\tcaption: {\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\ttype: {\n\t\ttype: 'string',\n\t},\n\tproviderNameSlug: {\n\t\ttype: 'string',\n\t},\n\tallowResponsive: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n};\n\nfunction getEmbedBlockSettings( { title, description, icon, category = 'embed', transforms, keywords = [], supports = {} } ) {\n\t// translators: %s: Name of service (e.g. VideoPress, YouTube)\n\tconst blockDescription = description || sprintf( __( 'Add a block that displays content pulled from other sites, like Twitter, Instagram or YouTube.' ), title );\n\treturn {\n\t\ttitle,\n\t\tdescription: blockDescription,\n\t\ticon,\n\t\tcategory,\n\t\tkeywords,\n\t\tattributes: embedAttributes,\n\n\t\tsupports: {\n\t\t\talign: true,\n\t\t\t...supports,\n\t\t},\n\n\t\ttransforms,\n\n\t\tedit: compose(\n\t\t\twithSelect( ( select, ownProps ) => {\n\t\t\t\tconst { url } = ownProps.attributes;\n\t\t\t\tconst core = select( 'core' );\n\t\t\t\tconst { getEmbedPreview, isPreviewEmbedFallback, isRequestingEmbedPreview } = core;\n\t\t\t\tconst preview = url && getEmbedPreview( url );\n\t\t\t\tconst previewIsFallback = url && isPreviewEmbedFallback( url );\n\t\t\t\tconst fetching = undefined !== url && isRequestingEmbedPreview( url );\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 validPreview = preview && ! ( preview.data && preview.data.status === 404 );\n\t\t\t\treturn {\n\t\t\t\t\tpreview: validPreview && preview,\n\t\t\t\t\tpreviewIsFallback,\n\t\t\t\t\tfetching,\n\t\t\t\t};\n\t\t\t} )\n\t\t)( getEmbedEdit( title, icon ) ),\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\t\tif ( ! url ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t} );\n\n\t\t\treturn (\n\t\t\t\t<figure className={ embedClassName }>\n\t\t\t\t\t<div className=\"wp-block-embed__wrapper\">\n\t\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t\t</div>\n\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t</figure>\n\t\t\t);\n\t\t},\n\n\t\tdeprecated: [\n\t\t\t{\n\t\t\t\tattributes: embedAttributes,\n\t\t\t\tsave( { attributes } ) {\n\t\t\t\t\tconst { url, caption, type, providerNameSlug } = attributes;\n\n\t\t\t\t\tif ( ! url ) {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst embedClassName = classnames( 'wp-block-embed', {\n\t\t\t\t\t\t[ `is-type-${ type }` ]: type,\n\t\t\t\t\t\t[ `is-provider-${ providerNameSlug }` ]: providerNameSlug,\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<figure className={ embedClassName }>\n\t\t\t\t\t\t\t{ `\\n${ url }\\n` /* URL needs to be on its own line. */ }\n\t\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t\t</figure>\n\t\t\t\t\t);\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t};\n}\n\nexport const name = 'core/embed';\nconst embedContentIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M19,4H5C3.89,4,3,4.9,3,6v12c0,1.1,0.89,2,2,2h14c1.1,0,2-0.9,2-2V6C21,4.9,20.11,4,19,4z M19,18H5V8h14V18z\" /></svg>;\nconst embedAudioIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M21 3H3L1 5v14l2 2h18l2-2V5l-2-2zm0 16H3V5h18v14zM8 15a3 3 0 0 1 4-3V6h5v2h-3v7a3 3 0 0 1-6 0z\" /></svg>;\nconst embedPhotoIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M21,4H3C1.9,4,1,4.9,1,6v12c0,1.1,0.9,2,2,2h18c1.1,0,2-0.9,2-2V6C23,4.9,22.1,4,21,4z M21,18H3V6h18V18z\" /><polygon points=\"14.5 11 11 15.51 8.5 12.5 5 17 19 17\" /></svg>;\nconst embedVideoIcon = <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m10 8v8l5-4-5-4zm9-5h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2zm0 16h-14v-14h14v14z\" /></svg>;\n\nexport const settings = getEmbedBlockSettings( {\n\ttitle: __( 'Embed' ),\n\tdescription: __( 'The Embed block allows you to easily add videos, images, tweets, audio, and other content to your post or page.' ),\n\ticon: embedContentIcon,\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'P' && /^\\s*(https?:\\/\\/\\S+)\\s*$/i.test( node.textContent ),\n\t\t\t\ttransform: ( node ) => {\n\t\t\t\t\treturn createBlock( 'core/embed', {\n\t\t\t\t\t\turl: node.textContent.trim(),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n} );\n\nexport const common = [\n\t{\n\t\tname: 'core-embed/twitter',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Twitter',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1da1f2',\n\t\t\t\tsrc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M22.23 5.924c-.736.326-1.527.547-2.357.646.847-.508 1.498-1.312 1.804-2.27-.793.47-1.67.812-2.606.996C18.325 4.498 17.258 4 16.078 4c-2.266 0-4.103 1.837-4.103 4.103 0 .322.036.635.106.935-3.41-.17-6.433-1.804-8.457-4.287-.353.607-.556 1.312-.556 2.064 0 1.424.724 2.68 1.825 3.415-.673-.022-1.305-.207-1.86-.514v.052c0 1.988 1.415 3.647 3.293 4.023-.344.095-.707.145-1.08.145-.265 0-.522-.026-.773-.074.522 1.63 2.038 2.817 3.833 2.85-1.404 1.1-3.174 1.757-5.096 1.757-.332 0-.66-.02-.98-.057 1.816 1.164 3.973 1.843 6.29 1.843 7.547 0 11.675-6.252 11.675-11.675 0-.178-.004-.355-.012-.53.802-.578 1.497-1.3 2.047-2.124z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ 'tweet' ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?twitter\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/youtube',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'YouTube',\n\t\t\ticon: {\n\t\t\t\tforeground: '#ff0000',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M21.8 8s-.195-1.377-.795-1.984c-.76-.797-1.613-.8-2.004-.847-2.798-.203-6.996-.203-6.996-.203h-.01s-4.197 0-6.996.202c-.39.046-1.242.05-2.003.846C2.395 6.623 2.2 8 2.2 8S2 9.62 2 11.24v1.517c0 1.618.2 3.237.2 3.237s.195 1.378.795 1.985c.76.797 1.76.77 2.205.855 1.6.153 6.8.2 6.8.2s4.203-.005 7-.208c.392-.047 1.244-.05 2.005-.847.6-.607.795-1.985.795-1.985s.2-1.618.2-3.237v-1.517C22 9.62 21.8 8 21.8 8zM9.935 14.595v-5.62l5.403 2.82-5.403 2.8z\" /></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'music' ), __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/((m|www)\\.)?youtube\\.com\\/.+/i, /^https?:\\/\\/youtu\\.be\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/facebook',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Facebook',\n\t\t\ticon: {\n\t\t\t\tforeground: '#3b5998',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M20 3H4c-.6 0-1 .4-1 1v16c0 .5.4 1 1 1h8.6v-7h-2.3v-2.7h2.3v-2c0-2.3 1.4-3.6 3.5-3.6 1 0 1.8.1 2.1.1v2.4h-1.4c-1.1 0-1.3.5-1.3 1.3v1.7h2.7l-.4 2.8h-2.3v7H20c.5 0 1-.4 1-1V4c0-.6-.4-1-1-1z\" /></svg>,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/www\\.facebook.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/instagram',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Instagram',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><g><path d=\"M12 4.622c2.403 0 2.688.01 3.637.052.877.04 1.354.187 1.67.31.42.163.72.358 1.036.673.315.315.51.615.673 1.035.123.317.27.794.31 1.67.043.95.052 1.235.052 3.638s-.01 2.688-.052 3.637c-.04.877-.187 1.354-.31 1.67-.163.42-.358.72-.673 1.036-.315.315-.615.51-1.035.673-.317.123-.794.27-1.67.31-.95.043-1.234.052-3.638.052s-2.688-.01-3.637-.052c-.877-.04-1.354-.187-1.67-.31-.42-.163-.72-.358-1.036-.673-.315-.315-.51-.615-.673-1.035-.123-.317-.27-.794-.31-1.67-.043-.95-.052-1.235-.052-3.638s.01-2.688.052-3.637c.04-.877.187-1.354.31-1.67.163-.42.358-.72.673-1.036.315-.315.615-.51 1.035-.673.317-.123.794-.27 1.67-.31.95-.043 1.235-.052 3.638-.052M12 3c-2.444 0-2.75.01-3.71.054s-1.613.196-2.185.418c-.592.23-1.094.538-1.594 1.04-.5.5-.807 1-1.037 1.593-.223.572-.375 1.226-.42 2.184C3.01 9.25 3 9.555 3 12s.01 2.75.054 3.71.196 1.613.418 2.186c.23.592.538 1.094 1.038 1.594s1.002.808 1.594 1.038c.572.222 1.227.375 2.185.418.96.044 1.266.054 3.71.054s2.75-.01 3.71-.054 1.613-.196 2.186-.418c.592-.23 1.094-.538 1.594-1.038s.808-1.002 1.038-1.594c.222-.572.375-1.227.418-2.185.044-.96.054-1.266.054-3.71s-.01-2.75-.054-3.71-.196-1.613-.418-2.186c-.23-.592-.538-1.094-1.038-1.594s-1.002-.808-1.594-1.038c-.572-.222-1.227-.375-2.185-.418C14.75 3.01 14.445 3 12 3zm0 4.378c-2.552 0-4.622 2.07-4.622 4.622s2.07 4.622 4.622 4.622 4.622-2.07 4.622-4.622S14.552 7.378 12 7.378zM12 15c-1.657 0-3-1.343-3-3s1.343-3 3-3 3 1.343 3 3-1.343 3-3 3zm4.804-8.884c-.596 0-1.08.484-1.08 1.08s.484 1.08 1.08 1.08c.596 0 1.08-.484 1.08-1.08s-.483-1.08-1.08-1.08z\"></path></g></svg>,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?instagr(\\.am|am\\.com)\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/wordpress',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'WordPress',\n\t\t\ticon: {\n\t\t\t\tforeground: '#0073AA',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><g><path d=\"M12.158 12.786l-2.698 7.84c.806.236 1.657.365 2.54.365 1.047 0 2.05-.18 2.986-.51-.024-.037-.046-.078-.065-.123l-2.762-7.57zM3.008 12c0 3.56 2.07 6.634 5.068 8.092L3.788 8.342c-.5 1.117-.78 2.354-.78 3.658zm15.06-.454c0-1.112-.398-1.88-.74-2.48-.456-.74-.883-1.368-.883-2.11 0-.825.627-1.595 1.51-1.595.04 0 .078.006.116.008-1.598-1.464-3.73-2.36-6.07-2.36-3.14 0-5.904 1.613-7.512 4.053.21.008.41.012.58.012.94 0 2.395-.114 2.395-.114.484-.028.54.684.057.74 0 0-.487.058-1.03.086l3.275 9.74 1.968-5.902-1.4-3.838c-.485-.028-.944-.085-.944-.085-.486-.03-.43-.77.056-.742 0 0 1.484.114 2.368.114.94 0 2.397-.114 2.397-.114.486-.028.543.684.058.74 0 0-.488.058-1.03.086l3.25 9.665.897-2.997c.456-1.17.684-2.137.684-2.907zm1.82-3.86c.04.286.06.593.06.924 0 .912-.17 1.938-.683 3.22l-2.746 7.94c2.672-1.558 4.47-4.454 4.47-7.77 0-1.564-.4-3.033-1.1-4.314zM12 22C6.486 22 2 17.514 2 12S6.486 2 12 2s10 4.486 10 10-4.486 10-10 10z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'post' ), __( 'blog' ) ],\n\t\t} ),\n\t},\n\t{\n\t\tname: 'core-embed/soundcloud',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'SoundCloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?soundcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/spotify',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Spotify',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1db954',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M12 2C6.477 2 2 6.477 2 12s4.477 10 10 10 10-4.477 10-10S17.523 2 12 2m4.586 14.424c-.18.295-.563.387-.857.207-2.35-1.434-5.305-1.76-8.786-.963-.335.077-.67-.133-.746-.47-.077-.334.132-.67.47-.745 3.808-.87 7.076-.496 9.712 1.115.293.18.386.563.206.857M17.81 13.7c-.226.367-.706.482-1.072.257-2.687-1.652-6.785-2.13-9.965-1.166-.413.127-.848-.106-.973-.517-.125-.413.108-.848.52-.973 3.632-1.102 8.147-.568 11.234 1.328.366.226.48.707.256 1.072m.105-2.835C14.692 8.95 9.375 8.775 6.297 9.71c-.493.15-1.016-.13-1.166-.624-.148-.495.13-1.017.625-1.167 3.532-1.073 9.404-.866 13.115 1.337.445.264.59.838.327 1.282-.264.443-.838.59-1.282.325\" /></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(open|play)\\.spotify\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/flickr',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Flickr',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><path d=\"m6.5 7c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5zm11 0c-2.75 0-5 2.25-5 5s2.25 5 5 5 5-2.25 5-5-2.25-5-5-5z\" /></svg>,\n\t\t\tkeywords: [ __( 'image' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?flickr\\.com\\/.+/i, /^https?:\\/\\/flic\\.kr\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/vimeo',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Vimeo',\n\t\t\ticon: {\n\t\t\t\tforeground: '#1ab7ea',\n\t\t\t\tsrc: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M22.396 7.164c-.093 2.026-1.507 4.8-4.245 8.32C15.323 19.16 12.93 21 10.97 21c-1.214 0-2.24-1.12-3.08-3.36-.56-2.052-1.118-4.105-1.68-6.158-.622-2.24-1.29-3.36-2.004-3.36-.156 0-.7.328-1.634.98l-.978-1.26c1.027-.903 2.04-1.806 3.037-2.71C6 3.95 7.03 3.328 7.716 3.265c1.62-.156 2.616.95 2.99 3.32.404 2.558.685 4.148.84 4.77.468 2.12.982 3.18 1.543 3.18.435 0 1.09-.687 1.963-2.064.872-1.376 1.34-2.422 1.402-3.142.125-1.187-.343-1.782-1.4-1.782-.5 0-1.013.115-1.542.34 1.023-3.35 2.977-4.976 5.862-4.883 2.14.063 3.148 1.45 3.024 4.16z\"></path></g></svg>,\n\t\t\t},\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?vimeo\\.com\\/.+/i ],\n\t},\n];\n\nexport const others = [\n\t{\n\t\tname: 'core-embed/animoto',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Animoto',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?(animoto|video214)\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/cloudup',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Cloudup',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/cloudup\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/collegehumor',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'CollegeHumor',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?collegehumor\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/dailymotion',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Dailymotion',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?dailymotion\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/funnyordie',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Funny or Die',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?funnyordie\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/hulu',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Hulu',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?hulu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/imgur',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Imgur',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(.+\\.)?imgur\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/issuu',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Issuu',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?issuu\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/kickstarter',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Kickstarter',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?kickstarter\\.com\\/.+/i, /^https?:\\/\\/kck\\.st\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/meetup-com',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Meetup.com',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?meetu(\\.ps|p\\.com)\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/mixcloud',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Mixcloud',\n\t\t\ticon: embedAudioIcon,\n\t\t\tkeywords: [ __( 'music' ), __( 'audio' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?mixcloud\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/photobucket',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Photobucket',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^http:\\/\\/g?i*\\.photobucket\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/polldaddy',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Polldaddy',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?polldaddy\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reddit',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Reddit',\n\t\t\ticon: <svg viewBox=\"0 0 24 24\"><path d=\"M22 11.816c0-1.256-1.02-2.277-2.277-2.277-.593 0-1.122.24-1.526.613-1.48-.965-3.455-1.594-5.647-1.69l1.17-3.702 3.18.75c.01 1.027.847 1.86 1.877 1.86 1.035 0 1.877-.84 1.877-1.877 0-1.035-.842-1.877-1.877-1.877-.77 0-1.43.466-1.72 1.13L13.55 3.92c-.204-.047-.4.067-.46.26l-1.35 4.27c-2.317.037-4.412.67-5.97 1.67-.402-.355-.917-.58-1.493-.58C3.02 9.54 2 10.56 2 11.815c0 .814.433 1.523 1.078 1.925-.037.222-.06.445-.06.673 0 3.292 4.01 5.97 8.94 5.97s8.94-2.678 8.94-5.97c0-.214-.02-.424-.052-.632.687-.39 1.154-1.12 1.154-1.964zm-3.224-7.422c.606 0 1.1.493 1.1 1.1s-.493 1.1-1.1 1.1-1.1-.494-1.1-1.1.493-1.1 1.1-1.1zm-16 7.422c0-.827.673-1.5 1.5-1.5.313 0 .598.103.838.27-.85.675-1.477 1.478-1.812 2.36-.32-.274-.525-.676-.525-1.13zm9.183 7.79c-4.502 0-8.165-2.33-8.165-5.193S7.457 9.22 11.96 9.22s8.163 2.33 8.163 5.193-3.663 5.193-8.164 5.193zM20.635 13c-.326-.89-.948-1.7-1.797-2.383.247-.186.55-.3.882-.3.827 0 1.5.672 1.5 1.5 0 .482-.23.91-.586 1.184zm-11.64 1.704c-.76 0-1.397-.616-1.397-1.376 0-.76.636-1.397 1.396-1.397.76 0 1.376.638 1.376 1.398 0 .76-.616 1.376-1.376 1.376zm7.405-1.376c0 .76-.615 1.376-1.375 1.376s-1.4-.616-1.4-1.376c0-.76.64-1.397 1.4-1.397.76 0 1.376.638 1.376 1.398zm-1.17 3.38c.15.152.15.398 0 .55-.675.674-1.728 1.002-3.22 1.002l-.01-.002-.012.002c-1.492 0-2.544-.328-3.218-1.002-.152-.152-.152-.398 0-.55.152-.152.4-.15.55 0 .52.52 1.394.775 2.67.775l.01.002.01-.002c1.276 0 2.15-.253 2.67-.775.15-.152.398-.152.55 0z\" /></svg>,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reddit\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/reverbnation',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'ReverbNation',\n\t\t\ticon: embedAudioIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?reverbnation\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/screencast',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Screencast',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?screencast\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/scribd',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Scribd',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?scribd\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/slideshare',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Slideshare',\n\t\t\ticon: embedContentIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(.+?\\.)?slideshare\\.net\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/smugmug',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'SmugMug',\n\t\t\ticon: embedPhotoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?smugmug\\.com\\/.+/i ],\n\t},\n\t{\n\t\t// Deprecated in favour of the core-embed/speaker-deck block.\n\t\tname: 'core-embed/speaker',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Speaker',\n\t\t\ticon: embedAudioIcon,\n\t\t\tsupports: {\n\t\t\t\tinserter: false,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [],\n\t},\n\t{\n\t\tname: 'core-embed/speaker-deck',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Speaker Deck',\n\t\t\ticon: embedContentIcon,\n\t\t\ttransform: [ {\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core-embed/speaker' ],\n\t\t\t\ttransform: ( content ) => {\n\t\t\t\t\treturn createBlock( 'core-embed/speaker-deck', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t} ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?speakerdeck\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/ted',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'TED',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.|embed\\.)?ted\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/tumblr',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'Tumblr',\n\t\t\ticon: {\n\t\t\t\tforeground: '#35465c',\n\t\t\t\tsrc: <svg viewBox=\"0 0 24 24\"><path d=\"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zm-5.57 14.265c-2.445.042-3.37-1.742-3.37-2.998V10.6H8.922V9.15c1.703-.615 2.113-2.15 2.21-3.026.006-.06.053-.084.08-.084h1.645V8.9h2.246v1.7H12.85v3.495c.008.476.182 1.13 1.08 1.107.3-.008.698-.094.907-.194l.54 1.6c-.205.297-1.12.642-1.946.657z\" /></svg>,\n\t\t\t},\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/(www\\.)?tumblr\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/videopress',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'VideoPress',\n\t\t\ticon: embedVideoIcon,\n\t\t\tkeywords: [ __( 'video' ) ],\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/videopress\\.com\\/.+/i ],\n\t},\n\t{\n\t\tname: 'core-embed/wordpress-tv',\n\t\tsettings: getEmbedBlockSettings( {\n\t\t\ttitle: 'WordPress.tv',\n\t\t\ticon: embedVideoIcon,\n\t\t} ),\n\t\tpatterns: [ /^https?:\\/\\/wordpress\\.tv\\/.+/i ],\n\t},\n];\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, revokeBlobURL } 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';\nimport { create } from '@wordpress/rich-text';\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 ( this.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: create( { text: 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\tisBlobURL( url = '' ) {\n\t\treturn url.indexOf( 'blob:' ) === 0;\n\t}\n\n\tconfirmCopyURL() {\n\t\tthis.setState( { showCopyConfirmation: true } );\n\t}\n\n\tresetCopyConfirmation() {\n\t\tthis.setState( { showCopyConfirmation: false } );\n\t}\n\n\tchangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tchangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tchangeShowDownloadButton( newValue ) {\n\t\tthis.props.setAttributes( { showDownloadButton: newValue } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tclassName,\n\t\t\tisSelected,\n\t\t\tattributes,\n\t\t\tsetAttributes,\n\t\t\tnoticeUI,\n\t\t\tnoticeOperations,\n\t\t\tmedia,\n\t\t} = this.props;\n\t\tconst {\n\t\t\tfileName,\n\t\t\thref,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t\tid,\n\t\t} = attributes;\n\t\tconst { hasError, showCopyConfirmation } = this.state;\n\t\tconst attachmentPage = media && media.link;\n\n\t\tif ( ! href || hasError ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-default\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tname: __( 'a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\taccept=\"*\"\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, {\n\t\t\t'is-transient': this.isBlobURL( href ),\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<FileBlockInspector\n\t\t\t\t\threfs={ { href, textLinkHref, attachmentPage } }\n\t\t\t\t\t{ ...{\n\t\t\t\t\t\topenInNewWindow: !! textLinkTarget,\n\t\t\t\t\t\tshowDownloadButton,\n\t\t\t\t\t\tchangeLinkDestinationOption: this.changeLinkDestinationOption,\n\t\t\t\t\t\tchangeOpenInNewWindow: this.changeOpenInNewWindow,\n\t\t\t\t\t\tchangeShowDownloadButton: this.changeShowDownloadButton,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\t\t\tvalue={ id }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit file' ) }\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<div className={ classes }>\n\t\t\t\t\t<div className={ `${ className }__content-wrapper` }>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\twrapperClassName={ `${ className }__textlink` }\n\t\t\t\t\t\t\ttagName=\"div\" // must be block-level or else cursor disappears\n\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write file name…' ) }\n\t\t\t\t\t\t\tkeepPlaceholderOnFocus\n\t\t\t\t\t\t\tformattingControls={ [] } // disable controls\n\t\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { fileName: text } ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t<div className={ `${ className }__button-richtext-wrapper` }>\n\t\t\t\t\t\t\t\t{ /* Using RichText here instead of PlainText so that it can be styled like a button */ }\n\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\ttagName=\"div\" // must be block-level or else cursor disappears\n\t\t\t\t\t\t\t\t\tclassName={ `${ className }__button` }\n\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\tformattingControls={ [] } // disable controls\n\t\t\t\t\t\t\t\t\tplaceholder={ __( 'Add text…' ) }\n\t\t\t\t\t\t\t\t\tkeepPlaceholderOnFocus\n\t\t\t\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { downloadButtonText: text } ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t}\n\t\t\t\t\t</div>\n\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t<ClipboardButton\n\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\ttext={ href }\n\t\t\t\t\t\t\tclassName={ `${ className }__copy-url-button` }\n\t\t\t\t\t\t\tonCopy={ this.confirmCopyURL }\n\t\t\t\t\t\t\tonFinishCopy={ this.resetCopyConfirmation }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ showCopyConfirmation ? __( 'Copied!' ) : __( 'Copy URL' ) }\n\t\t\t\t\t\t</ClipboardButton>\n\t\t\t\t\t}\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getMedia } = select( 'core' );\n\t\tconst { id } = props.attributes;\n\t\treturn {\n\t\t\tmedia: id === undefined ? undefined : getMedia( id ),\n\t\t};\n\t} ),\n\twithNotices,\n] )( FileEdit );\n","/**\n * External dependencies\n */\nimport { includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlobURL } from '@wordpress/blob';\nimport { createBlock } from '@wordpress/blocks';\nimport { select } from '@wordpress/data';\nimport { RichText } from '@wordpress/editor';\nimport { create, getTextContent } from '@wordpress/rich-text';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/file';\n\nexport const settings = {\n\ttitle: __( 'File' ),\n\n\tdescription: __( 'Add a link to a file that visitors can download.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M9 6l2 2h9v10H4V6h5m1-2H4L2 6v12l2 2h16l2-2V8l-2-2h-8l-2-2z\" /></svg>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'document' ), __( 'pdf' ) ],\n\n\tattributes: {\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\thref: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tfileName: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'a:not([download])',\n\t\t},\n\t\t// Differs to the href when the block is configured to link to the attachment page\n\t\ttextLinkHref: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'href',\n\t\t},\n\t\t// e.g. `_blank` when the block is configured to open in a new window\n\t\ttextLinkTarget: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'a:not([download])',\n\t\t\tattribute: 'target',\n\t\t},\n\t\tshowDownloadButton: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: true,\n\t\t},\n\t\tdownloadButtonText: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'a[download]',\n\t\t\tdefault: __( 'Download' ),\n\t\t},\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch: ( files ) => files.length === 1,\n\t\t\t\t// We define a lower priorty (higher number) than the default of 10. This\n\t\t\t\t// ensures that the File block is only created as a fallback.\n\t\t\t\tpriority: 15,\n\t\t\t\ttransform: ( files ) => {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\tconst blobURL = createBlobURL( file );\n\n\t\t\t\t\t// File will be uploaded in componentDidMount()\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: blobURL,\n\t\t\t\t\t\tfileName: file.name,\n\t\t\t\t\t\ttextLinkHref: blobURL,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/audio' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.src,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.src,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.src,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/file', {\n\t\t\t\t\t\thref: attributes.url,\n\t\t\t\t\t\tfileName: attributes.caption,\n\t\t\t\t\t\ttextLinkHref: attributes.url,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/audio' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'audio' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/audio', {\n\t\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/video' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'video' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/video', {\n\t\t\t\t\t\tsrc: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\tisMatch: ( { id } ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\tconst { getMedia } = select( 'core' );\n\t\t\t\t\tconst media = getMedia( id );\n\t\t\t\t\treturn !! media && includes( media.mime_type, 'image' );\n\t\t\t\t},\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/image', {\n\t\t\t\t\t\turl: attributes.href,\n\t\t\t\t\t\tcaption: attributes.fileName,\n\t\t\t\t\t\tid: attributes.id,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\thref,\n\t\t\tfileName,\n\t\t\ttextLinkHref,\n\t\t\ttextLinkTarget,\n\t\t\tshowDownloadButton,\n\t\t\tdownloadButtonText,\n\t\t} = attributes;\n\n\t\treturn ( href &&\n\t\t\t<div>\n\t\t\t\t{ ! RichText.isEmpty( fileName ) &&\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={ textLinkTarget ? 'noreferrer noopener' : false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t}\n\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName=\"wp-block-file__button\"\n\t\t\t\t\t\t// ensure download attribute is still set when fileName\n\t\t\t\t\t\t// is undefined. Using '' here as `true` still leaves\n\t\t\t\t\t\t// the attribute unset.\n\t\t\t\t\t\tdownload={ getTextContent( create( { html: fileName } ) ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</a>\n\t\t\t\t}\n\t\t\t</div>\n\t\t);\n\t},\n\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport { InspectorControls } from '@wordpress/editor';\n\nfunction getDownloadButtonHelp( checked ) {\n\treturn checked ? __( 'The download button is visible.' ) : __( 'The download button is hidden.' );\n}\n\nexport default function FileBlockInspector( {\n\threfs,\n\topenInNewWindow,\n\tshowDownloadButton,\n\tchangeLinkDestinationOption,\n\tchangeOpenInNewWindow,\n\tchangeShowDownloadButton,\n} ) {\n\tconst { href, textLinkHref, attachmentPage } = hrefs;\n\n\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\tif ( attachmentPage ) {\n\t\tlinkDestinationOptions = [\n\t\t\t{ value: href, label: __( 'Media File' ) },\n\t\t\t{ value: attachmentPage, label: __( 'Attachment Page' ) },\n\t\t];\n\t}\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Text Link Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\tonChange={ changeLinkDestinationOption }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open in New Window' ) }\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';\nimport { create } from '@wordpress/rich-text';\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\tlet { caption } = image;\n\n\tif ( typeof caption !== 'object' ) {\n\t\tcaption = create( { html: caption } );\n\t}\n\n\treturn {\n\t\t...pick( image, [ 'alt', 'id', 'link', 'url' ] ),\n\t\tcaption,\n\t};\n};\n\nclass GalleryEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onSelectImage = this.onSelectImage.bind( this );\n\t\tthis.onSelectImages = this.onSelectImages.bind( this );\n\t\tthis.setLinkTo = this.setLinkTo.bind( this );\n\t\tthis.setColumnsNumber = this.setColumnsNumber.bind( this );\n\t\tthis.toggleImageCrop = this.toggleImageCrop.bind( this );\n\t\tthis.onRemoveImage = this.onRemoveImage.bind( this );\n\t\tthis.setImageAttributes = this.setImageAttributes.bind( this );\n\t\tthis.addFiles = this.addFiles.bind( this );\n\t\tthis.uploadFromFiles = this.uploadFromFiles.bind( this );\n\n\t\tthis.state = {\n\t\t\tselectedImage: null,\n\t\t};\n\t}\n\n\tonSelectImage( index ) {\n\t\treturn () => {\n\t\t\tif ( this.state.selectedImage !== index ) {\n\t\t\t\tthis.setState( {\n\t\t\t\t\tselectedImage: index,\n\t\t\t\t} );\n\t\t\t}\n\t\t};\n\t}\n\n\tonRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst images = filter( this.props.attributes.images, ( img, i ) => index !== i );\n\t\t\tconst { columns } = this.props.attributes;\n\t\t\tthis.setState( { selectedImage: null } );\n\t\t\tthis.props.setAttributes( {\n\t\t\t\timages,\n\t\t\t\tcolumns: columns ? Math.min( images.length, columns ) : columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tonSelectImages( images ) {\n\t\tthis.props.setAttributes( {\n\t\t\timages: images.map( ( image ) => pickRelevantMediaFiles( image ) ),\n\t\t} );\n\t}\n\n\tsetLinkTo( value ) {\n\t\tthis.props.setAttributes( { linkTo: value } );\n\t}\n\n\tsetColumnsNumber( value ) {\n\t\tthis.props.setAttributes( { columns: value } );\n\t}\n\n\ttoggleImageCrop() {\n\t\tthis.props.setAttributes( { imageCrop: ! this.props.attributes.imageCrop } );\n\t}\n\n\tgetImageCropHelp( checked ) {\n\t\treturn checked ? __( 'Thumbnails are cropped to align.' ) : __( 'Thumbnails are not cropped.' );\n\t}\n\n\tsetImageAttributes( index, attributes ) {\n\t\tconst { attributes: { images }, setAttributes } = this.props;\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...attributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tuploadFromFiles( event ) {\n\t\tthis.addFiles( event.target.files );\n\t}\n\n\taddFiles( files ) {\n\t\tconst currentImages = this.props.attributes.images || [];\n\t\tconst { noticeOperations, setAttributes } = this.props;\n\t\tmediaUpload( {\n\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\tfilesList: files,\n\t\t\tonFileChange: ( images ) => {\n\t\t\t\tconst imagesNormalized = images.map( ( image ) => pickRelevantMediaFiles( image ) );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\timages: currentImages.concat( imagesNormalized ),\n\t\t\t\t} );\n\t\t\t},\n\t\t\tonError: noticeOperations.createErrorNotice,\n\t\t} );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\t// Deselect images when deselecting the block\n\t\tif ( ! this.props.isSelected && prevProps.isSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tselectedImage: null,\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { attributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { images, columns = defaultColumnsNumber( attributes ), align, imageCrop, linkTo } = attributes;\n\n\t\tconst dropZone = (\n\t\t\t<DropZone\n\t\t\t\tonFilesDrop={ this.addFiles }\n\t\t\t/>\n\t\t);\n\n\t\tconst controls = (\n\t\t\t<BlockControls>\n\t\t\t\t{ !! images.length && (\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\tonSelect={ this.onSelectImages }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\tgallery\n\t\t\t\t\t\t\tvalue={ images.map( ( img ) => img.id ) }\n\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t\tclassName=\"components-toolbar__control\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Edit Gallery' ) }\n\t\t\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t) }\n\t\t\t</BlockControls>\n\t\t);\n\n\t\tif ( images.length === 0 ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\ticon=\"format-gallery\"\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\t\t\t\tname: __( 'images' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonSelect={ this.onSelectImages }\n\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tmultiple\n\t\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t\t/>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ controls }\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Gallery Settings' ) }>\n\t\t\t\t\t\t{ images.length > 1 && <RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ this.setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t/> }\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Crop Images' ) }\n\t\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\t\tonChange={ this.toggleImageCrop }\n\t\t\t\t\t\t\thelp={ this.getImageCropHelp }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\t\tonChange={ this.setLinkTo }\n\t\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t{ noticeUI }\n\t\t\t\t<ul className={ `${ className } align${ align } columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` }>\n\t\t\t\t\t{ dropZone }\n\t\t\t\t\t{ images.map( ( img, index ) => (\n\t\t\t\t\t\t<li className=\"blocks-gallery-item\" key={ img.id || img.url }>\n\t\t\t\t\t\t\t<GalleryImage\n\t\t\t\t\t\t\t\turl={ img.url }\n\t\t\t\t\t\t\t\talt={ img.alt }\n\t\t\t\t\t\t\t\tid={ img.id }\n\t\t\t\t\t\t\t\tisSelected={ isSelected && this.state.selectedImage === index }\n\t\t\t\t\t\t\t\tonRemove={ this.onRemoveImage( index ) }\n\t\t\t\t\t\t\t\tonSelect={ this.onSelectImage( index ) }\n\t\t\t\t\t\t\t\tsetAttributes={ ( attrs ) => this.setImageAttributes( index, attrs ) }\n\t\t\t\t\t\t\t\tcaption={ img.caption }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) ) }\n\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t<li className=\"blocks-gallery-item has-add-item-button\">\n\t\t\t\t\t\t\t<FormFileUpload\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tisLarge\n\t\t\t\t\t\t\t\tclassName=\"block-library-gallery-add-item-button\"\n\t\t\t\t\t\t\t\tonChange={ this.uploadFromFiles }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\ticon=\"insert\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Upload an image' ) }\n\t\t\t\t\t\t\t</FormFileUpload>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t}\n\t\t\t\t</ul>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withNotices( GalleryEdit );\n","/**\n * External Dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress Dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { IconButton, Spinner } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { BACKSPACE, DELETE } from '@wordpress/keycodes';\nimport { withSelect } from '@wordpress/data';\nimport { RichText } from '@wordpress/editor';\n\nclass GalleryImage extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onImageClick = this.onImageClick.bind( this );\n\t\tthis.onSelectCaption = this.onSelectCaption.bind( this );\n\t\tthis.onKeyDown = this.onKeyDown.bind( this );\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\n\t\tthis.state = {\n\t\t\tcaptionSelected: false,\n\t\t};\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tonSelectCaption() {\n\t\tif ( ! this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: true,\n\t\t\t} );\n\t\t}\n\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\t}\n\n\tonImageClick() {\n\t\tif ( ! this.props.isSelected ) {\n\t\t\tthis.props.onSelect();\n\t\t}\n\n\t\tif ( this.state.captionSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonKeyDown( event ) {\n\t\tif (\n\t\t\tthis.container === document.activeElement &&\n\t\t\tthis.props.isSelected && [ BACKSPACE, DELETE ].indexOf( event.keyCode ) !== -1\n\t\t) {\n\t\t\tevent.stopPropagation();\n\t\t\tevent.preventDefault();\n\t\t\tthis.props.onRemove();\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tconst { isSelected, image, url } = this.props;\n\t\tif ( image && ! url ) {\n\t\t\tthis.props.setAttributes( {\n\t\t\t\turl: image.source_url,\n\t\t\t\talt: image.alt_text,\n\t\t\t} );\n\t\t}\n\n\t\t// unselect the caption so when the user selects other image and comeback\n\t\t// the caption is not immediately selected\n\t\tif ( this.state.captionSelected && ! isSelected && prevProps.isSelected ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionSelected: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { url, alt, id, linkTo, link, isSelected, caption, onRemove, setAttributes } = this.props;\n\n\t\tlet href;\n\n\t\tswitch ( linkTo ) {\n\t\t\tcase 'media':\n\t\t\t\thref = url;\n\t\t\t\tbreak;\n\t\t\tcase 'attachment':\n\t\t\t\thref = link;\n\t\t\t\tbreak;\n\t\t}\n\n\t\t// Disable reason: Image itself is not meant to be\n\t\t// interactive, but should direct image selection and unfocus caption fields\n\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/click-events-have-key-events\n\t\tconst img = url ? <img src={ url } alt={ alt } data-id={ id } onClick={ this.onImageClick } /> : <Spinner />;\n\n\t\tconst className = classnames( {\n\t\t\t'is-selected': isSelected,\n\t\t\t'is-transient': url && 0 === url.indexOf( 'blob:' ),\n\t\t} );\n\n\t\t// Disable reason: Each block can be selected by clicking on it and we should keep the same saved markup\n\t\t/* eslint-disable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<figure className={ className } tabIndex=\"-1\" onKeyDown={ this.onKeyDown } ref={ this.bindContainer }>\n\t\t\t\t{ isSelected &&\n\t\t\t\t\t<div className=\"block-library-gallery-item__inline-menu\">\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\ticon=\"no-alt\"\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t\tclassName=\"blocks-gallery-item__remove\"\n\t\t\t\t\t\t\tlabel={ __( 'Remove Image' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) ? (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\tisSelected={ this.state.captionSelected }\n\t\t\t\t\t\tonChange={ ( newCaption ) => setAttributes( { caption: newCaption } ) }\n\t\t\t\t\t\tunstableOnFocus={ this.onSelectCaption }\n\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t/>\n\t\t\t\t) : null }\n\t\t\t</figure>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-noninteractive-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withSelect( ( select, ownProps ) => {\n\tconst { getMedia } = select( 'core' );\n\tconst { id } = ownProps;\n\n\treturn {\n\t\timage: id ? getMedia( id ) : null,\n\t};\n} )( GalleryImage );\n","/**\n * External dependencies\n */\nimport { filter, every } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, mediaUpload } from '@wordpress/editor';\nimport { createBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport { default as edit, defaultColumnsNumber, pickRelevantMediaFiles } from './edit';\n\nconst blockAttributes = {\n\timages: {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t\tsource: 'query',\n\t\tselector: 'ul.wp-block-gallery .blocks-gallery-item',\n\t\tquery: {\n\t\t\turl: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'src',\n\t\t\t},\n\t\t\tlink: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'data-link',\n\t\t\t},\n\t\t\talt: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'alt',\n\t\t\t\tdefault: '',\n\t\t\t},\n\t\t\tid: {\n\t\t\t\tsource: 'attribute',\n\t\t\t\tselector: 'img',\n\t\t\t\tattribute: 'data-id',\n\t\t\t},\n\t\t\tcaption: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'figcaption',\n\t\t\t},\n\t\t},\n\t},\n\tcolumns: {\n\t\ttype: 'number',\n\t},\n\timageCrop: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n\tlinkTo: {\n\t\ttype: 'string',\n\t\tdefault: 'none',\n\t},\n};\n\nexport const name = 'core/gallery';\n\nexport const settings = {\n\ttitle: __( 'Gallery' ),\n\tdescription: __( 'Display multiple images in an elegantly organized tiled layout.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M20 4v12H8V4h12m0-2H8L6 4v12l2 2h12l2-2V4l-2-2z\" /><path d=\"M12 12l1 2 3-3 3 4H9z\" /><path d=\"M2 6v14l2 2h14v-2H4V6H2z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'images' ), __( 'photos' ) ],\n\tattributes: blockAttributes,\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\tconst validImages = filter( attributes, ( { id, url } ) => id && url );\n\t\t\t\t\tif ( validImages.length > 0 ) {\n\t\t\t\t\t\treturn createBlock( 'core/gallery', {\n\t\t\t\t\t\t\timages: validImages.map( ( { id, url, alt, caption } ) => ( { id, url, alt, caption } ) ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/gallery' );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\ttag: 'gallery',\n\t\t\t\tattributes: {\n\t\t\t\t\timages: {\n\t\t\t\t\t\ttype: 'array',\n\t\t\t\t\t\tshortcode: ( { named: { ids } } ) => {\n\t\t\t\t\t\t\tif ( ! ids ) {\n\t\t\t\t\t\t\t\treturn [];\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ids.split( ',' ).map( ( id ) => ( {\n\t\t\t\t\t\t\t\tid: parseInt( id, 10 ),\n\t\t\t\t\t\t\t} ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tcolumns: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tshortcode: ( { named: { columns = '3' } } ) => {\n\t\t\t\t\t\t\treturn parseInt( columns, 10 );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tlinkTo: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( { named: { link = 'attachment' } } ) => {\n\t\t\t\t\t\t\treturn link === 'file' ? 'media' : link;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\t// When created by drag and dropping multiple files on an insertion point\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length !== 1 && every( files, ( file ) => file.type.indexOf( 'image/' ) === 0 );\n\t\t\t\t},\n\t\t\t\ttransform( files, onChange ) {\n\t\t\t\t\tconst block = createBlock( 'core/gallery', {\n\t\t\t\t\t\timages: files.map( ( file ) => pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} ) ),\n\t\t\t\t\t} );\n\t\t\t\t\tmediaUpload( {\n\t\t\t\t\t\tfilesList: files,\n\t\t\t\t\t\tonFileChange: ( images ) => {\n\t\t\t\t\t\t\tonChange( block.clientId, {\n\t\t\t\t\t\t\t\timages: images.map( ( image ) => pickRelevantMediaFiles( image ) ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t},\n\t\t\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t\t\t} );\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/image' ],\n\t\t\t\ttransform: ( { images } ) => {\n\t\t\t\t\tif ( images.length > 0 ) {\n\t\t\t\t\t\treturn images.map( ( { id, url, alt, caption } ) => createBlock( 'core/image', { id, url, alt, caption } ) );\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/image' );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { images, columns = defaultColumnsNumber( attributes ), imageCrop, linkTo } = attributes;\n\t\treturn (\n\t\t\t<ul className={ `columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\tlet href;\n\n\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } data-link={ image.link } className={ image.id ? `wp-image-${ image.id }` : null } />;\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<li key={ image.id || image.url } className=\"blocks-gallery-item\">\n\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ image.caption } />\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t);\n\t\t\t\t} ) }\n\t\t\t</ul>\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { images, columns = defaultColumnsNumber( attributes ), imageCrop, linkTo } = attributes;\n\t\t\t\treturn (\n\t\t\t\t\t<ul className={ `columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } data-link={ image.link } />;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<li key={ image.id || image.url } className=\"blocks-gallery-item\">\n\t\t\t\t\t\t\t\t\t<figure>\n\t\t\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t\t\t{ image.caption && image.caption.length > 0 && (\n\t\t\t\t\t\t\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ image.caption } />\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</ul>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: {\n\t\t\t\t...blockAttributes,\n\t\t\t\timages: {\n\t\t\t\t\t...blockAttributes.images,\n\t\t\t\t\tselector: 'div.wp-block-gallery figure.blocks-gallery-image img',\n\t\t\t\t},\n\t\t\t\talign: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tdefault: 'none',\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { images, columns = defaultColumnsNumber( attributes ), align, imageCrop, linkTo } = attributes;\n\t\t\t\treturn (\n\t\t\t\t\t<div className={ `align${ align } columns-${ columns } ${ imageCrop ? 'is-cropped' : '' }` } >\n\t\t\t\t\t\t{ images.map( ( image ) => {\n\t\t\t\t\t\t\tlet href;\n\n\t\t\t\t\t\t\tswitch ( linkTo ) {\n\t\t\t\t\t\t\t\tcase 'media':\n\t\t\t\t\t\t\t\t\thref = image.url;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t\tcase 'attachment':\n\t\t\t\t\t\t\t\t\thref = image.link;\n\t\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst img = <img src={ image.url } alt={ image.alt } data-id={ image.id } />;\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<figure key={ image.id || image.url } className=\"blocks-gallery-image\">\n\t\t\t\t\t\t\t\t\t{ href ? <a href={ href }>{ img }</a> : img }\n\t\t\t\t\t\t\t\t</figure>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</div>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * Internal dependencies\n */\nimport HeadingToolbar from './heading-toolbar';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { PanelBody } from '@wordpress/components';\nimport { createBlock } from '@wordpress/blocks';\nimport { RichText, BlockControls, InspectorControls, AlignmentToolbar } from '@wordpress/editor';\n\nexport default function HeadingEdit( {\n\tattributes,\n\tsetAttributes,\n\tmergeBlocks,\n\tinsertBlocksAfter,\n\tonReplace,\n\tclassName,\n} ) {\n\tconst { align, content, level, placeholder } = attributes;\n\tconst tagName = 'h' + level;\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls>\n\t\t\t\t<HeadingToolbar minLevel={ 2 } maxLevel={ 5 } selectedLevel={ level } onChange={ ( newLevel ) => setAttributes( { level: newLevel } ) } />\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Heading Settings' ) }>\n\t\t\t\t\t<p>{ __( 'Level' ) }</p>\n\t\t\t\t\t<HeadingToolbar minLevel={ 1 } maxLevel={ 7 } selectedLevel={ level } onChange={ ( newLevel ) => setAttributes( { level: newLevel } ) } />\n\t\t\t\t\t<p>{ __( 'Text Alignment' ) }</p>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<RichText\n\t\t\t\twrapperClassName=\"wp-block-heading\"\n\t\t\t\ttagName={ tagName }\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( value ) => setAttributes( { content: value } ) }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\tonSplit={\n\t\t\t\t\tinsertBlocksAfter ?\n\t\t\t\t\t\t( before, after, ...blocks ) => {\n\t\t\t\t\t\t\tsetAttributes( { content: before } );\n\t\t\t\t\t\t\tinsertBlocksAfter( [\n\t\t\t\t\t\t\t\t...blocks,\n\t\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', { content: after } ),\n\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t} :\n\t\t\t\t\t\tundefined\n\t\t\t\t}\n\t\t\t\tonRemove={ () => onReplace( [] ) }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tclassName={ className }\n\t\t\t\tplaceholder={ placeholder || __( 'Write heading…' ) }\n\t\t\t/>\n\t\t</Fragment>\n\t);\n}\n","/**\n * External dependencies\n */\nimport { range } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { Component } from '@wordpress/element';\nimport { Toolbar } from '@wordpress/components';\n\nclass HeadingToolbar extends Component {\n\tcreateLevelControl( targetLevel, selectedLevel, onChange ) {\n\t\treturn {\n\t\t\ticon: 'heading',\n\t\t\t// translators: %s: heading level e.g: \"1\", \"2\", \"3\"\n\t\t\ttitle: sprintf( __( 'Heading %d' ), targetLevel ),\n\t\t\tisActive: targetLevel === selectedLevel,\n\t\t\tonClick: () => onChange( targetLevel ),\n\t\t\tsubscript: String( targetLevel ),\n\t\t};\n\t}\n\n\trender() {\n\t\tconst { minLevel, maxLevel, selectedLevel, onChange } = this.props;\n\t\treturn (\n\t\t\t<Toolbar controls={ range( minLevel, maxLevel ).map( ( index ) => this.createLevelControl( index, selectedLevel, onChange ) ) } />\n\t\t);\n\t}\n}\n\nexport default HeadingToolbar;\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetPhrasingContentSchema,\n\tgetBlockAttributes,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\n/**\n * Given a node name string for a heading node, returns its numeric level.\n *\n * @param {string} nodeName Heading node name.\n *\n * @return {number} Heading level.\n */\nexport function getLevelFromHeadingNodeName( nodeName ) {\n\treturn Number( nodeName.substr( 1 ) );\n}\n\nconst supports = {\n\tclassName: false,\n\tanchor: true,\n};\n\nconst schema = {\n\tcontent: {\n\t\tsource: 'html',\n\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t},\n\tlevel: {\n\t\ttype: 'number',\n\t\tdefault: 2,\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/heading';\n\nexport const settings = {\n\ttitle: __( 'Heading' ),\n\n\tdescription: __( 'Introduce topics and help visitors (and search engines!) understand how your content is organized.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M5 4v3h5.5v12h3V7H19V4z\" /><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /></svg>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'title' ), __( 'subtitle' ) ],\n\n\tsupports,\n\n\tattributes: schema,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\t\tschema: {\n\t\t\t\t\th1: { children: getPhrasingContentSchema() },\n\t\t\t\t\th2: { children: getPhrasingContentSchema() },\n\t\t\t\t\th3: { children: getPhrasingContentSchema() },\n\t\t\t\t\th4: { children: getPhrasingContentSchema() },\n\t\t\t\t\th5: { children: getPhrasingContentSchema() },\n\t\t\t\t\th6: { children: getPhrasingContentSchema() },\n\t\t\t\t},\n\t\t\t\ttransform( node ) {\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t...getBlockAttributes(\n\t\t\t\t\t\t\tgetBlockType( 'core/heading' ),\n\t\t\t\t\t\t\tnode.outerHTML\n\t\t\t\t\t\t),\n\t\t\t\t\t\tlevel: getLevelFromHeadingNodeName( node.nodeName ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\tregExp: /^(#{2,6})\\s/,\n\t\t\t\ttransform: ( { content, match } ) => {\n\t\t\t\t\tconst level = match[ 1 ].length;\n\n\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\tlevel,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/paragraph', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...omit( schema, [ 'level' ] ),\n\t\t\t\tnodeName: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'property',\n\t\t\t\t\tselector: 'h1,h2,h3,h4,h5,h6',\n\t\t\t\t\tproperty: 'nodeName',\n\t\t\t\t\tdefault: 'H2',\n\t\t\t\t},\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\tconst { nodeName, ...migratedAttributes } = attributes;\n\n\t\t\t\treturn {\n\t\t\t\t\t...migratedAttributes,\n\t\t\t\t\tlevel: getLevelFromHeadingNodeName( nodeName ),\n\t\t\t\t};\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { align, nodeName, content } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName={ nodeName.toLowerCase() }\n\t\t\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { align, level, content } = attributes;\n\t\tconst tagName = 'h' + level;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName={ tagName }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Disabled, SandBox } from '@wordpress/components';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport { BlockControls, PlainText } from '@wordpress/editor';\nimport { withState } from '@wordpress/compose';\n\nexport const name = 'core/html';\n\nexport const settings = {\n\ttitle: __( 'Custom HTML' ),\n\n\tdescription: __( 'Add your own HTML (and view it right here as you edit!).' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M4.5,11h-2V9H1v6h1.5v-2.5h2V15H6V9H4.5V11z M7,10.5h1.5V15H10v-4.5h1.5V9H7V10.5z M14.5,10l-1-1H12v6h1.5v-3.9 l1,1l1-1V15H17V9h-1.5L14.5,10z M19.5,13.5V9H18v6h5v-1.5H19.5z\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tkeywords: [ __( 'embed' ) ],\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'html',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'FIGURE' && !! node.querySelector( 'iframe' ),\n\t\t\t\tschema: {\n\t\t\t\t\tfigure: {\n\t\t\t\t\t\trequire: [ 'iframe' ],\n\t\t\t\t\t\tchildren: {\n\t\t\t\t\t\t\tiframe: {\n\t\t\t\t\t\t\t\tattributes: [ 'src', 'allowfullscreen', 'height', 'width' ],\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\tfigcaption: {\n\t\t\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit: withState( {\n\t\tisPreview: false,\n\t} )( ( { attributes, setAttributes, setState, isPreview } ) => (\n\t\t<div className=\"wp-block-html\">\n\t\t\t<BlockControls>\n\t\t\t\t<div className=\"components-toolbar\">\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ `components-tab-button ${ ! isPreview ? 'is-active' : '' }` }\n\t\t\t\t\t\tonClick={ () => setState( { isPreview: false } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>HTML</span>\n\t\t\t\t\t</button>\n\t\t\t\t\t<button\n\t\t\t\t\t\tclassName={ `components-tab-button ${ isPreview ? 'is-active' : '' }` }\n\t\t\t\t\t\tonClick={ () => setState( { isPreview: true } ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<span>{ __( 'Preview' ) }</span>\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</BlockControls>\n\t\t\t<Disabled.Consumer>\n\t\t\t\t{ ( isDisabled ) => (\n\t\t\t\t\t( isPreview || isDisabled ) ? (\n\t\t\t\t\t\t<SandBox html={ attributes.content } />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\tvalue={ attributes.content }\n\t\t\t\t\t\t\tonChange={ ( content ) => setAttributes( { content } ) }\n\t\t\t\t\t\t\tplaceholder={ __( 'Write HTML…' ) }\n\t\t\t\t\t\t\taria-label={ __( 'HTML' ) }\n\t\t\t\t\t\t/>\n\t\t\t\t\t)\n\t\t\t\t) }\n\t\t\t</Disabled.Consumer>\n\t\t</div>\n\t) ),\n\n\tsave( { attributes } ) {\n\t\treturn <RawHTML>{ attributes.content }</RawHTML>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport {\n\tget,\n\tisEmpty,\n\tmap,\n\tpick,\n\tstartCase,\n} from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Component, Fragment } from '@wordpress/element';\nimport { getBlobByURL, revokeBlobURL } from '@wordpress/blob';\nimport {\n\tButton,\n\tButtonGroup,\n\tIconButton,\n\tPanelBody,\n\tResizableBox,\n\tSelectControl,\n\tTextControl,\n\tTextareaControl,\n\tToolbar,\n\twithNotices,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport {\n\tRichText,\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tBlockAlignmentToolbar,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { compose } from '@wordpress/compose';\nimport { create } from '@wordpress/rich-text';\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\tlet { caption } = image;\n\n\tif ( typeof caption !== 'object' ) {\n\t\tcaption = create( { html: caption } );\n\t}\n\n\treturn {\n\t\t...pick( image, [ 'alt', 'id', 'link', 'url' ] ),\n\t\tcaption,\n\t};\n};\n\nclass ImageEdit extends Component {\n\tconstructor() {\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.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\n\t\tthis.state = {\n\t\t\tcaptionFocused: false,\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 ( ! id && url.indexOf( 'blob:' ) === 0 ) {\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 ( ! prevID && prevUrl.indexOf( 'blob:' ) === 0 && id && url.indexOf( 'blob:' ) === -1 ) {\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: create(),\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\tthis.props.setAttributes( {\n\t\t\t...pickRelevantMediaFiles( media ),\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t} );\n\t}\n\n\tonSetLinkDestination( value ) {\n\t\tlet href;\n\n\t\tif ( value === LINK_DESTINATION_NONE ) {\n\t\t\thref = undefined;\n\t\t} else if ( value === LINK_DESTINATION_MEDIA ) {\n\t\t\thref = this.props.attributes.url;\n\t\t} else if ( value === LINK_DESTINATION_ATTACHMENT ) {\n\t\t\thref = this.props.image && this.props.image.link;\n\t\t} else {\n\t\t\thref = this.props.attributes.href;\n\t\t}\n\n\t\tthis.props.setAttributes( {\n\t\t\tlinkDestination: value,\n\t\t\thref,\n\t\t} );\n\t}\n\n\tonSetCustomHref( value ) {\n\t\tthis.props.setAttributes( { href: value } );\n\t}\n\n\tonFocusCaption() {\n\t\tif ( ! this.state.captionFocused ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionFocused: true,\n\t\t\t} );\n\t\t}\n\t}\n\n\tonImageClick() {\n\t\tif ( this.state.captionFocused ) {\n\t\t\tthis.setState( {\n\t\t\t\tcaptionFocused: false,\n\t\t\t} );\n\t\t}\n\t}\n\n\tupdateAlt( newAlt ) {\n\t\tthis.props.setAttributes( { alt: newAlt } );\n\t}\n\n\tupdateAlignment( nextAlign ) {\n\t\tconst extraUpdatedAttributes = [ 'wide', 'full' ].indexOf( nextAlign ) !== -1 ?\n\t\t\t{ width: undefined, height: undefined } :\n\t\t\t{};\n\t\tthis.props.setAttributes( { ...extraUpdatedAttributes, align: nextAlign } );\n\t}\n\n\tupdateImageURL( url ) {\n\t\tthis.props.setAttributes( { url, width: undefined, height: undefined } );\n\t}\n\n\tupdateWidth( width ) {\n\t\tthis.props.setAttributes( { width: parseInt( width, 10 ) } );\n\t}\n\n\tupdateHeight( height ) {\n\t\tthis.props.setAttributes( { height: parseInt( height, 10 ) } );\n\t}\n\n\tupdateDimensions( width = undefined, height = undefined ) {\n\t\treturn () => {\n\t\t\tthis.props.setAttributes( { width, height } );\n\t\t};\n\t}\n\n\tgetAvailableSizes() {\n\t\treturn get( this.props.image, [ 'media_details', 'sizes' ], {} );\n\t}\n\n\tgetLinkDestinationOptions() {\n\t\treturn [\n\t\t\t{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n\t\t\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t\t\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t\t\t{ value: LINK_DESTINATION_CUSTOM, label: __( 'Custom URL' ) },\n\t\t];\n\t}\n\n\trender() {\n\t\tconst { attributes, setAttributes, isLargeViewport, isSelected, className, maxWidth, noticeOperations, noticeUI, toggleSelection, isRTL } = this.props;\n\t\tconst { url, alt, caption, align, id, href, linkDestination, width, height } = attributes;\n\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\n\t\t\t\t<Toolbar>\n\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\tonSelect={ this.onSelectImage }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\tvalue={ id }\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 image' ) }\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\n\t\tif ( ! url ) {\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t{ controls }\n\t\t\t\t\t<MediaPlaceholder\n\t\t\t\t\t\ticon=\"format-image\"\n\t\t\t\t\t\tlabels={ {\n\t\t\t\t\t\t\ttitle: __( 'Image' ),\n\t\t\t\t\t\t\tname: __( 'an image' ),\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ className }\n\t\t\t\t\t\tonSelect={ this.onSelectImage }\n\t\t\t\t\t\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/>\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': 0 === url.indexOf( 'blob:' ),\n\t\t\t'is-resized': !! width || !! height,\n\t\t\t'is-focused': isSelected,\n\t\t} );\n\n\t\tconst availableSizes = this.getAvailableSizes();\n\t\tconst isResizable = [ 'wide', 'full' ].indexOf( align ) === -1 && isLargeViewport;\n\t\tconst isLinkURLInputDisabled = linkDestination !== LINK_DESTINATION_CUSTOM;\n\n\t\tconst getInspectorControls = ( imageWidth, imageHeight ) => (\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Image Settings' ) }>\n\t\t\t\t\t<TextareaControl\n\t\t\t\t\t\tlabel={ __( 'Alt Text (Alternative Text)' ) }\n\t\t\t\t\t\tvalue={ alt }\n\t\t\t\t\t\tonChange={ this.updateAlt }\n\t\t\t\t\t\thelp={ __( 'Describe the purpose of the image. Leave empty if the image is not a key part of the content.' ) }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isEmpty( availableSizes ) && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Image Size' ) }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\toptions={ map( availableSizes, ( size, name ) => ( {\n\t\t\t\t\t\t\t\tvalue: size.source_url,\n\t\t\t\t\t\t\t\tlabel: startCase( name ),\n\t\t\t\t\t\t\t} ) ) }\n\t\t\t\t\t\t\tonChange={ this.updateImageURL }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ isResizable && (\n\t\t\t\t\t\t<div className=\"block-library-image__dimensions\">\n\t\t\t\t\t\t\t<p className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t{ __( 'Image Dimensions' ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t<div className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-image__dimensions__width\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\t\t\t\tvalue={ width !== undefined ? width : '' }\n\t\t\t\t\t\t\t\t\tplaceholder={ imageWidth }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tonChange={ this.updateWidth }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tclassName=\"block-library-image__dimensions__height\"\n\t\t\t\t\t\t\t\t\tlabel={ __( 'Height' ) }\n\t\t\t\t\t\t\t\t\tvalue={ height !== undefined ? height : '' }\n\t\t\t\t\t\t\t\t\tplaceholder={ imageHeight }\n\t\t\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\t\t\tonChange={ this.updateHeight }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"block-library-image__dimensions__row\">\n\t\t\t\t\t\t\t\t<ButtonGroup aria-label={ __( 'Image Size' ) }>\n\t\t\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( scale ) => {\n\t\t\t\t\t\t\t\t\t\tconst scaledWidth = Math.round( imageWidth * ( scale / 100 ) );\n\t\t\t\t\t\t\t\t\t\tconst scaledHeight = Math.round( imageHeight * ( scale / 100 ) );\n\n\t\t\t\t\t\t\t\t\t\tconst isCurrent = width === scaledWidth && height === scaledHeight;\n\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ scale }\n\t\t\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\t\t\tisPrimary={ isCurrent }\n\t\t\t\t\t\t\t\t\t\t\t\taria-pressed={ isCurrent }\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ this.updateDimensions( scaledWidth, scaledHeight ) }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ scale }%\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\tonClick={ this.updateDimensions() }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelBody title={ __( 'Link Settings' ) }>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\tlabel={ __( 'Link To' ) }\n\t\t\t\t\t\tvalue={ linkDestination }\n\t\t\t\t\t\toptions={ this.getLinkDestinationOptions() }\n\t\t\t\t\t\tonChange={ this.onSetLinkDestination }\n\t\t\t\t\t/>\n\t\t\t\t\t{ linkDestination !== LINK_DESTINATION_NONE && (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\tlabel={ __( 'Link URL' ) }\n\t\t\t\t\t\t\tvalue={ href || '' }\n\t\t\t\t\t\t\tonChange={ this.onSetCustomHref }\n\t\t\t\t\t\t\tplaceholder={ ! isLinkURLInputDisabled ? 'https://' : undefined }\n\t\t\t\t\t\t\tdisabled={ isLinkURLInputDisabled }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\n\t\t// Disable reason: Each block can be selected by clicking on it\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ controls }\n\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t<ImageSize src={ url } dirtynessTrigger={ align }>\n\t\t\t\t\t\t{ ( sizes ) => {\n\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\timageWidthWithinContainer,\n\t\t\t\t\t\t\t\timageHeightWithinContainer,\n\t\t\t\t\t\t\t\timageWidth,\n\t\t\t\t\t\t\t\timageHeight,\n\t\t\t\t\t\t\t} = sizes;\n\n\t\t\t\t\t\t\t// Disable reason: Image itself is not meant to be\n\t\t\t\t\t\t\t// interactive, but should direct focus to block\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-noninteractive-element-interactions\n\t\t\t\t\t\t\tconst img = <img src={ url } alt={ alt } onClick={ this.onImageClick } />;\n\n\t\t\t\t\t\t\tif ( ! isResizable || ! imageWidthWithinContainer ) {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t\t{ getInspectorControls( imageWidth, imageHeight ) }\n\t\t\t\t\t\t\t\t\t\t<div style={ { width, height } }>\n\t\t\t\t\t\t\t\t\t\t\t{ img }\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tconst currentWidth = width || imageWidthWithinContainer;\n\t\t\t\t\t\t\tconst currentHeight = height || imageHeightWithinContainer;\n\n\t\t\t\t\t\t\tconst ratio = imageWidth / imageHeight;\n\t\t\t\t\t\t\tconst minWidth = imageWidth < imageHeight ? MIN_SIZE : MIN_SIZE * ratio;\n\t\t\t\t\t\t\tconst minHeight = imageHeight < imageWidth ? MIN_SIZE : MIN_SIZE / ratio;\n\n\t\t\t\t\t\t\tlet showRightHandle = false;\n\t\t\t\t\t\t\tlet showLeftHandle = false;\n\n\t\t\t\t\t\t\t/* eslint-disable no-lonely-if */\n\t\t\t\t\t\t\t// See https://github.com/WordPress/gutenberg/issues/7584.\n\t\t\t\t\t\t\tif ( align === 'center' ) {\n\t\t\t\t\t\t\t\t// When the image is centered, show both handles.\n\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t} else if ( isRTL ) {\n\t\t\t\t\t\t\t\t// In RTL mode the image is on the right by default.\n\t\t\t\t\t\t\t\t// Show the right handle and hide the left handle only when it is aligned left.\n\t\t\t\t\t\t\t\t// Otherwise always show the left handle.\n\t\t\t\t\t\t\t\tif ( align === 'left' ) {\n\t\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// Show the left handle and hide the right handle only when the image is aligned right.\n\t\t\t\t\t\t\t\t// Otherwise always show the right handle.\n\t\t\t\t\t\t\t\tif ( align === 'right' ) {\n\t\t\t\t\t\t\t\t\tshowLeftHandle = true;\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tshowRightHandle = true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* eslint-enable no-lonely-if */\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<Fragment>\n\t\t\t\t\t\t\t\t\t{ getInspectorControls( imageWidth, imageHeight ) }\n\t\t\t\t\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\t\t\t\t\tsize={\n\t\t\t\t\t\t\t\t\t\t\twidth && height ? {\n\t\t\t\t\t\t\t\t\t\t\t\twidth,\n\t\t\t\t\t\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t\t\t\t\t\t} : undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\t\t\t\t\t\t\tminHeight={ minHeight }\n\t\t\t\t\t\t\t\t\t\tmaxHeight={ maxWidth / ratio }\n\t\t\t\t\t\t\t\t\t\tlockAspectRatio\n\t\t\t\t\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\t\t\t\t\tright: showRightHandle,\n\t\t\t\t\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\t\t\t\t\tleft: showLeftHandle,\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: parseInt( currentWidth + delta.width, 10 ),\n\t\t\t\t\t\t\t\t\t\t\t\theight: parseInt( currentHeight + delta.height, 10 ),\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ img }\n\t\t\t\t\t\t\t\t\t</ResizableBox>\n\t\t\t\t\t\t\t\t</Fragment>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t</ImageSize>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tunstableOnFocus={ this.onFocusCaption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tisSelected={ this.state.captionFocused }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { getMedia } = select( 'core' );\n\t\tconst { getEditorSettings } = select( 'core/editor' );\n\t\tconst { id } = props.attributes;\n\t\tconst { maxWidth, isRTL } = getEditorSettings();\n\n\t\treturn {\n\t\t\timage: id ? getMedia( id ) : null,\n\t\t\tmaxWidth,\n\t\t\tisRTL,\n\t\t};\n\t} ),\n\twithViewportMatch( { isLargeViewport: 'medium' } ),\n\twithNotices,\n] )( ImageEdit );\n","/**\n * External dependencies\n */\nimport { noop } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { withGlobalEvents } from '@wordpress/compose';\nimport { Component } from '@wordpress/element';\n\nclass ImageSize extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.state = {\n\t\t\twidth: undefined,\n\t\t\theight: undefined,\n\t\t};\n\t\tthis.bindContainer = this.bindContainer.bind( this );\n\t\tthis.calculateSize = this.calculateSize.bind( this );\n\t}\n\n\tbindContainer( ref ) {\n\t\tthis.container = ref;\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.src !== prevProps.src ) {\n\t\t\tthis.setState( {\n\t\t\t\twidth: undefined,\n\t\t\t\theight: undefined,\n\t\t\t} );\n\t\t\tthis.fetchImageSize();\n\t\t}\n\n\t\tif ( this.props.dirtynessTrigger !== prevProps.dirtynessTrigger ) {\n\t\t\tthis.calculateSize();\n\t\t}\n\t}\n\n\tcomponentDidMount() {\n\t\tthis.fetchImageSize();\n\t}\n\n\tcomponentWillUnmount() {\n\t\tif ( this.image ) {\n\t\t\tthis.image.onload = noop;\n\t\t}\n\t}\n\n\tfetchImageSize() {\n\t\tthis.image = new window.Image();\n\t\tthis.image.onload = this.calculateSize;\n\t\tthis.image.src = this.props.src;\n\t}\n\n\tcalculateSize() {\n\t\tconst maxWidth = this.container.clientWidth;\n\t\tconst exceedMaxWidth = this.image.width > maxWidth;\n\t\tconst ratio = this.image.height / this.image.width;\n\t\tconst width = exceedMaxWidth ? maxWidth : this.image.width;\n\t\tconst height = exceedMaxWidth ? maxWidth * ratio : this.image.height;\n\t\tthis.setState( { width, height } );\n\t}\n\n\trender() {\n\t\tconst sizes = {\n\t\t\timageWidth: this.image && this.image.width,\n\t\t\timageHeight: this.image && this.image.height,\n\t\t\tcontainerWidth: this.container && this.container.clientWidth,\n\t\t\tcontainerHeight: this.container && this.container.clientHeight,\n\t\t\timageWidthWithinContainer: this.state.width,\n\t\t\timageHeightWithinContainer: this.state.height,\n\t\t};\n\t\treturn (\n\t\t\t<div ref={ this.bindContainer }>\n\t\t\t\t{ this.props.children( sizes ) }\n\t\t\t</div>\n\t\t);\n\t}\n}\n\nexport default withGlobalEvents( {\n\tresize: 'calculateSize',\n} )( ImageSize );\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetBlockAttributes,\n\tgetBlockType,\n\tgetPhrasingContentSchema,\n} from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\nimport { createBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/image';\n\nconst blockAttributes = {\n\turl: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'src',\n\t},\n\talt: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'img',\n\t\tattribute: 'alt',\n\t\tdefault: '',\n\t},\n\tcaption: {\n\t\tsource: 'html',\n\t\tselector: 'figcaption',\n\t},\n\thref: {\n\t\ttype: 'string',\n\t\tsource: 'attribute',\n\t\tselector: 'figure > a',\n\t\tattribute: 'href',\n\t},\n\tid: {\n\t\ttype: 'number',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\twidth: {\n\t\ttype: 'number',\n\t},\n\theight: {\n\t\ttype: 'number',\n\t},\n\tlinkDestination: {\n\t\ttype: 'string',\n\t\tdefault: 'none',\n\t},\n};\n\nconst imageSchema = {\n\timg: {\n\t\tattributes: [ 'src', 'alt' ],\n\t\tclasses: [ 'alignleft', 'aligncenter', 'alignright', 'alignnone', /^wp-image-\\d+$/ ],\n\t},\n};\n\nconst schema = {\n\tfigure: {\n\t\trequire: [ 'img' ],\n\t\tchildren: {\n\t\t\t...imageSchema,\n\t\t\ta: {\n\t\t\t\tattributes: [ 'href' ],\n\t\t\t\tchildren: imageSchema,\n\t\t\t},\n\t\t\tfigcaption: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t},\n\t},\n};\n\nexport const settings = {\n\ttitle: __( 'Image' ),\n\n\tdescription: __( 'Theyre worth 1,000 words! Insert a single image.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"m19 5v14h-14v-14h14m0-2h-14c-1.1 0-2 0.9-2 2v14c0 1.1 0.9 2 2 2h14c1.1 0 2-0.9 2-2v-14c0-1.1-0.9-2-2-2z\" /><path d=\"m14.14 11.86l-3 3.87-2.14-2.59-3 3.86h12l-3.86-5.14z\" /></svg>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'photo' ) ],\n\n\tattributes: blockAttributes,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => node.nodeName === 'FIGURE' && !! node.querySelector( 'img' ),\n\t\t\t\tschema,\n\t\t\t\ttransform: ( node ) => {\n\t\t\t\t\t// Search both figure and image classes. Alignment could be\n\t\t\t\t\t// set on either. ID is set on the image.\n\t\t\t\t\tconst className = node.className + ' ' + node.querySelector( 'img' ).className;\n\t\t\t\t\tconst alignMatches = /(?:^|\\s)align(left|center|right)(?:$|\\s)/.exec( className );\n\t\t\t\t\tconst align = alignMatches ? alignMatches[ 1 ] : undefined;\n\t\t\t\t\tconst idMatches = /(?:^|\\s)wp-image-(\\d+)(?:$|\\s)/.exec( className );\n\t\t\t\t\tconst id = idMatches ? Number( idMatches[ 1 ] ) : undefined;\n\t\t\t\t\tconst anchorElement = node.querySelector( 'a' );\n\t\t\t\t\tconst linkDestination = anchorElement && anchorElement.href ? 'custom' : undefined;\n\t\t\t\t\tconst href = anchorElement && anchorElement.href ? anchorElement.href : undefined;\n\t\t\t\t\tconst blockType = getBlockType( 'core/image' );\n\t\t\t\t\tconst attributes = getBlockAttributes( blockType, node.outerHTML, { align, id, linkDestination, href } );\n\t\t\t\t\treturn createBlock( 'core/image', attributes );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'image/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// int the image block\n\t\t\t\t\tconst block = createBlock( 'core/image', {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\ttag: 'caption',\n\t\t\t\tattributes: {\n\t\t\t\t\turl: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'src',\n\t\t\t\t\t\tselector: 'img',\n\t\t\t\t\t},\n\t\t\t\t\talt: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'alt',\n\t\t\t\t\t\tselector: 'img',\n\t\t\t\t\t},\n\t\t\t\t\tcaption: {\n\t\t\t\t\t\tshortcode: ( attributes, { shortcode } ) => {\n\t\t\t\t\t\t\tconst { content } = shortcode;\n\t\t\t\t\t\t\treturn content.replace( /\\s*<img[^>]*>\\s/, '' );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\thref: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tsource: 'attribute',\n\t\t\t\t\t\tattribute: 'href',\n\t\t\t\t\t\tselector: 'a',\n\t\t\t\t\t},\n\t\t\t\t\tid: {\n\t\t\t\t\t\ttype: 'number',\n\t\t\t\t\t\tshortcode: ( { named: { id } } ) => {\n\t\t\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn parseInt( id.replace( 'attachment_', '' ), 10 );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\talign: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( { named: { align = 'alignnone' } } ) => {\n\t\t\t\t\t\t\treturn align.replace( 'align', '' );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align, width } = attributes;\n\t\tif ( 'left' === align || 'center' === align || 'right' === align || 'wide' === align || 'full' === align ) {\n\t\t\treturn { 'data-align': align, 'data-resized': !! width };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\tconst classes = classnames( {\n\t\t\t[ `align${ align }` ]: align,\n\t\t\t'is-resized': width || height,\n\t\t} );\n\n\t\tconst image = (\n\t\t\t<img\n\t\t\t\tsrc={ url }\n\t\t\t\talt={ alt }\n\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\twidth={ width }\n\t\t\t\theight={ height }\n\t\t\t/>\n\t\t);\n\n\t\tconst figure = (\n\t\t\t<Fragment>\n\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t</Fragment>\n\t\t);\n\n\t\tif ( 'left' === align || 'right' === align || 'center' === align ) {\n\t\t\treturn (\n\t\t\t\t<div>\n\t\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t\t{ figure }\n\t\t\t\t\t</figure>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<figure className={ classes }>\n\t\t\t\t{ figure }\n\t\t\t</figure>\n\t\t);\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\t\t\tconst classes = classnames( {\n\t\t\t\t\t[ `align${ align }` ]: align,\n\t\t\t\t\t'is-resized': width || height,\n\t\t\t\t} );\n\n\t\t\t\tconst image = (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ classes }>\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height, id } = attributes;\n\n\t\t\t\tconst image = (\n\t\t\t\t\t<img\n\t\t\t\t\t\tsrc={ url }\n\t\t\t\t\t\talt={ alt }\n\t\t\t\t\t\tclassName={ id ? `wp-image-${ id }` : null }\n\t\t\t\t\t\twidth={ width }\n\t\t\t\t\t\theight={ height }\n\t\t\t\t\t/>\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ align ? `align${ align }` : null } >\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: blockAttributes,\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { url, alt, caption, align, href, width, height } = attributes;\n\t\t\t\tconst extraImageProps = width || height ? { width, height } : {};\n\t\t\t\tconst image = <img src={ url } alt={ alt } { ...extraImageProps } />;\n\n\t\t\t\tlet figureStyle = {};\n\n\t\t\t\tif ( width ) {\n\t\t\t\t\tfigureStyle = { width };\n\t\t\t\t} else if ( align === 'left' || align === 'right' ) {\n\t\t\t\t\tfigureStyle = { maxWidth: '50%' };\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\t<figure className={ align ? `align${ align }` : null } style={ figureStyle }>\n\t\t\t\t\t\t{ href ? <a href={ href }>{ image }</a> : image }\n\t\t\t\t\t\t{ ! RichText.isEmpty( caption ) && <RichText.Content tagName=\"figcaption\" value={ caption } /> }\n\t\t\t\t\t</figure>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport '@wordpress/core-data';\nimport {\n\tregisterBlockType,\n\tsetDefaultBlockName,\n\tsetUnknownTypeHandlerName,\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 coverImage from './cover-image';\nimport * as embed from './embed';\nimport * as file from './file';\nimport * as html from './html';\nimport * as latestComments from './latest-comments';\nimport * as latestPosts from './latest-posts';\nimport * as list from './list';\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\tcoverImage,\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\tlatestComments,\n\t\tlatestPosts,\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\tsetUnknownTypeHandlerName( classic.name );\n\t}\n};\n","/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport {\n\tDisabled,\n\tPanelBody,\n\tRangeControl,\n\tToggleControl,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tBlockAlignmentToolbar,\n\tBlockControls,\n\tServerSideRender,\n} from '@wordpress/editor';\n\n/**\n * Minimum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_COMMENTS = 1;\n/**\n * Maximum number of comments a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_COMMENTS = 100;\n\nclass LatestComments extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.setAlignment = this.setAlignment.bind( this );\n\t\tthis.setCommentsToShow = this.setCommentsToShow.bind( this );\n\n\t\t// Create toggles for each attribute; we create them here rather than\n\t\t// passing `this.createToggleAttribute( 'displayAvatar' )` directly to\n\t\t// `onChange` to avoid re-renders.\n\t\tthis.toggleDisplayAvatar = this.createToggleAttribute( 'displayAvatar' );\n\t\tthis.toggleDisplayDate = this.createToggleAttribute( 'displayDate' );\n\t\tthis.toggleDisplayExcerpt = this.createToggleAttribute( 'displayExcerpt' );\n\t}\n\n\tcreateToggleAttribute( propName ) {\n\t\treturn () => {\n\t\t\tconst value = this.props.attributes[ propName ];\n\t\t\tconst { setAttributes } = this.props;\n\n\t\t\tsetAttributes( { [ propName ]: ! value } );\n\t\t};\n\t}\n\n\tsetAlignment( align ) {\n\t\tthis.props.setAttributes( { align } );\n\t}\n\n\tsetCommentsToShow( commentsToShow ) {\n\t\tthis.props.setAttributes( { commentsToShow } );\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\talign,\n\t\t\tcommentsToShow,\n\t\t\tdisplayAvatar,\n\t\t\tdisplayDate,\n\t\t\tdisplayExcerpt,\n\t\t} = this.props.attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ this.setAlignment }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Latest Comments Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Avatar' ) }\n\t\t\t\t\t\t\tchecked={ displayAvatar }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayAvatar }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Date' ) }\n\t\t\t\t\t\t\tchecked={ displayDate }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayDate }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Display Excerpt' ) }\n\t\t\t\t\t\t\tchecked={ displayExcerpt }\n\t\t\t\t\t\t\tonChange={ this.toggleDisplayExcerpt }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Number of Comments' ) }\n\t\t\t\t\t\t\tvalue={ commentsToShow }\n\t\t\t\t\t\t\tonChange={ this.setCommentsToShow }\n\t\t\t\t\t\t\tmin={ MIN_COMMENTS }\n\t\t\t\t\t\t\tmax={ MAX_COMMENTS }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tblock=\"core/latest-comments\"\n\t\t\t\t\t\tattributes={ this.props.attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default LatestComments;\n","/**\n * WordPress dependencies.\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies.\n */\nimport edit from './edit';\n\nexport const name = 'core/latest-comments';\n\nexport const settings = {\n\ttitle: __( 'Latest Comments' ),\n\n\tdescription: __( 'Show a list of your sites most recent comments.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M22 4l-2-2H4L2 4v12l2 2h14l4 4V4zm-2 0v13l-1-1H4V4h16z\" /><path d=\"M6 12h12v2H6zM6 9h12v2H6zM6 6h12v2H6z\" /></g></svg>,\n\n\tcategory: 'widgets',\n\n\tkeywords: [ __( 'recent comments' ) ],\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\n\t\t// TODO: Use consistent values across the app;\n\t\t// see: https://github.com/WordPress/gutenberg/issues/7908.\n\t\tif ( [ 'left', 'center', 'right', 'wide', 'full' ].includes( align ) ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\treturn null;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { isUndefined, pickBy } from 'lodash';\nimport moment from 'moment';\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 { 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\treturn (\n\t\t\t<Fragment>\n\t\t\t\t{ inspectorControls }\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t\t<Toolbar controls={ layoutControls } />\n\t\t\t\t</BlockControls>\n\t\t\t\t<ul\n\t\t\t\t\tclassName={ classnames( this.props.className, {\n\t\t\t\t\t\t'is-grid': postLayout === 'grid',\n\t\t\t\t\t\t[ `columns-${ columns }` ]: postLayout === 'grid',\n\t\t\t\t\t} ) }\n\t\t\t\t>\n\t\t\t\t\t{ displayPosts.map( ( post, i ) =>\n\t\t\t\t\t\t<li key={ i }>\n\t\t\t\t\t\t\t<a href={ post.link } target=\"_blank\">{ decodeEntities( post.title.rendered.trim() ) || __( '(Untitled)' ) }</a>\n\t\t\t\t\t\t\t{ displayPostDate && post.date_gmt &&\n\t\t\t\t\t\t\t\t<time dateTime={ moment( post.date_gmt ).utc().format() } className={ `${ this.props.className }__post-date` }>\n\t\t\t\t\t\t\t\t\t{ moment( post.date_gmt ).local().format( 'MMMM DD, Y' ) }\n\t\t\t\t\t\t\t\t</time>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</li>\n\t\t\t\t\t) }\n\t\t\t\t</ul>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withSelect( ( select, props ) => {\n\tconst { postsToShow, order, orderBy, categories } = props.attributes;\n\tconst { getEntityRecords } = select( 'core' );\n\tconst latestPostsQuery = pickBy( {\n\t\tcategories,\n\t\torder,\n\t\torderby: orderBy,\n\t\tper_page: postsToShow,\n\t}, ( value ) => ! isUndefined( value ) );\n\tconst categoriesListQuery = {\n\t\tper_page: 100,\n\t};\n\treturn {\n\t\tlatestPosts: getEntityRecords( 'postType', 'post', latestPostsQuery ),\n\t\tcategoriesList: getEntityRecords( 'taxonomy', 'category', categoriesListQuery ),\n\t};\n} )( LatestPostsEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/latest-posts';\n\nexport const settings = {\n\ttitle: __( 'Latest Posts' ),\n\n\tdescription: __( 'Display a list of your most recent posts.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><rect x=\"11\" y=\"7\" width=\"6\" height=\"2\" /><rect x=\"11\" y=\"11\" width=\"6\" height=\"2\" /><rect x=\"11\" y=\"15\" width=\"6\" height=\"2\" /><rect x=\"7\" y=\"7\" width=\"2\" height=\"2\" /><rect x=\"7\" y=\"11\" width=\"2\" height=\"2\" /><rect x=\"7\" y=\"15\" width=\"2\" height=\"2\" /><path d=\"M20.1,3H3.9C3.4,3,3,3.4,3,3.9v16.2C3,20.5,3.4,21,3.9,21h16.2c0.4,0,0.9-0.5,0.9-0.9V3.9C21,3.4,20.5,3,20.1,3z M19,19H5V5h14V19z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tkeywords: [ __( 'recent posts' ) ],\n\n\tsupports: {\n\t\thtml: false,\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { align } = attributes;\n\t\tif ( 'left' === align || 'right' === align || 'wide' === align || 'full' === align ) {\n\t\t\treturn { 'data-align': align };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave() {\n\t\treturn null;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { find, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { Component, Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tcreateBlock,\n\tgetPhrasingContentSchema,\n\tgetBlockAttributes,\n\tgetBlockType,\n} from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tRichText,\n} from '@wordpress/editor';\nimport { replace, join, split, create, toHTMLString } from '@wordpress/rich-text';\n\nconst listContentSchema = {\n\t...getPhrasingContentSchema(),\n\tul: {},\n\tol: { attributes: [ 'type' ] },\n};\n\n// Recursion is needed.\n// Possible: ul > li > ul.\n// Impossible: ul > ul.\n[ 'ul', 'ol' ].forEach( ( tag ) => {\n\tlistContentSchema[ tag ].children = {\n\t\tli: {\n\t\t\tchildren: listContentSchema,\n\t\t},\n\t};\n} );\n\nconst supports = {\n\tclassName: false,\n};\n\nconst schema = {\n\tordered: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tvalues: {\n\t\tsource: 'html',\n\t\tselector: 'ol,ul',\n\t\tmultiline: 'li',\n\t},\n};\n\nexport const name = 'core/list';\n\nexport const settings = {\n\ttitle: __( 'List' ),\n\tdescription: __( 'Numbers, bullets, up to you. Add a list of items.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M9 19h12v-2H9v2zm0-6h12v-2H9v2zm0-8v2h12V5H9zm-4-.5c-.828 0-1.5.672-1.5 1.5S4.172 7.5 5 7.5 6.5 6.828 6.5 6 5.828 4.5 5 4.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5zm0 6c-.828 0-1.5.672-1.5 1.5s.672 1.5 1.5 1.5 1.5-.672 1.5-1.5-.672-1.5-1.5-1.5z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'bullet list' ), __( 'ordered list' ), __( 'numbered list' ) ],\n\n\tattributes: schema,\n\n\tsupports,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( blockAttributes ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tvalues: toHTMLString( join( blockAttributes.map( ( { content } ) =>\n\t\t\t\t\t\t\treplace( create( { html: content } ), /\\n/g, '\\u2028' )\n\t\t\t\t\t\t), '\\u2028' ), 'li' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/quote' ],\n\t\t\t\ttransform: ( { value } ) => {\n\t\t\t\t\treturn createBlock( 'core/list', {\n\t\t\t\t\t\tvalues: value,\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: content,\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: content,\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( { values } ) =>\n\t\t\t\t\tsplit( create( { html: values, multilineTag: 'li' } ), '\\u2028' )\n\t\t\t\t\t\t.map( ( piece ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: toHTMLString( piece ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/quote' ],\n\t\t\t\ttransform: ( { values } ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: values,\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 * 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';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/more';\n\nexport const settings = {\n\ttitle: _x( 'More', 'block name' ),\n\n\tdescription: __( 'Want to show only part of this post on your blogs home page? Insert a \"More\" block where you want the split.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M2 9v2h19V9H2zm0 6h5v-2H2v2zm7 0h5v-2H9v2zm7 0h5v-2h-5v2z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t\tmultiple: false,\n\t},\n\n\tattributes: {\n\t\tcustomText: {\n\t\t\ttype: 'string',\n\t\t},\n\t\tnoTeaser: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tschema: {\n\t\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t\t},\n\t\t\t\tisMatch: ( node ) => node.dataset && node.dataset.block === 'core/more',\n\t\t\t\ttransform( node ) {\n\t\t\t\t\tconst { customText, noTeaser } = node.dataset;\n\t\t\t\t\tconst attrs = {};\n\t\t\t\t\t// Don't copy unless defined and not an empty string\n\t\t\t\t\tif ( customText ) {\n\t\t\t\t\t\tattrs.customText = customText;\n\t\t\t\t\t}\n\t\t\t\t\t// Special handling for boolean\n\t\t\t\t\tif ( noTeaser === '' ) {\n\t\t\t\t\t\tattrs.noTeaser = true;\n\t\t\t\t\t}\n\t\t\t\t\treturn createBlock( 'core/more', attrs );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { customText, noTeaser } = attributes;\n\n\t\tconst moreTag = customText ?\n\t\t\t`<!--more ${ customText }-->` :\n\t\t\t'<!--more-->';\n\n\t\tconst noTeaserTag = noTeaser ?\n\t\t\t'<!--noteaser-->' :\n\t\t\t'';\n\n\t\treturn (\n\t\t\t<RawHTML>\n\t\t\t\t{ compact( [ moreTag, noTeaserTag ] ).join( '\\n' ) }\n\t\t\t</RawHTML>\n\t\t);\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RawHTML } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const name = 'core/nextpage';\n\nexport const settings = {\n\ttitle: __( 'Page break' ),\n\n\tdescription: __( 'This block allows you to set break points on your post. Visitors of your blog are then presented with content split into multiple pages.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><g><path d=\"M9 12h6v-2H9zm-7 0h5v-2H2zm15 0h5v-2h-5zm3 2v2l-6 6H6a2 2 0 0 1-2-2v-6h2v6h6v-4a2 2 0 0 1 2-2h6zM4 8V4a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v4h-2V4H6v4z\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tkeywords: [ __( 'next page' ), __( 'pagination' ) ],\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tattributes: {},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tschema: {\n\t\t\t\t\t'wp-block': { attributes: [ 'data-block' ] },\n\t\t\t\t},\n\t\t\t\tisMatch: ( node ) => node.dataset && node.dataset.block === 'core/nextpage',\n\t\t\t\ttransform() {\n\t\t\t\t\treturn createBlock( 'core/nextpage', {} );\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit() {\n\t\treturn (\n\t\t\t<div className=\"wp-block-nextpage\">\n\t\t\t\t<span>{ __( 'Page break' ) }</span>\n\t\t\t</div>\n\t\t);\n\t},\n\n\tsave() {\n\t\treturn (\n\t\t\t<RawHTML>\n\t\t\t\t{ '<!--nextpage-->' }\n\t\t\t</RawHTML>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport {\n\tPanelBody,\n\tToggleControl,\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';\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} = 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} = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<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} }\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] )( 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';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst supports = {\n\tclassName: false,\n};\n\nconst schema = {\n\tcontent: {\n\t\tsource: 'html',\n\t\tselector: 'p',\n\t\tdefault: '',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n\tdropCap: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tplaceholder: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n\tbackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tcustomBackgroundColor: {\n\t\ttype: 'string',\n\t},\n\tfontSize: {\n\t\ttype: 'string',\n\t},\n\tcustomFontSize: {\n\t\ttype: 'number',\n\t},\n};\n\nexport const name = 'core/paragraph';\n\nexport const settings = {\n\ttitle: __( 'Paragraph' ),\n\n\tdescription: __( 'Add some basic text.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M11 5v7H9.5C7.6 12 6 10.4 6 8.5S7.6 5 9.5 5H11m8-2H9.5C6.5 3 4 5.5 4 8.5S6.5 14 9.5 14H11v7h2V5h2v16h2V5h2V3z\" /></svg>,\n\n\tcategory: 'common',\n\n\tkeywords: [ __( 'text' ) ],\n\n\tsupports,\n\n\tattributes: schema,\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\t// Paragraph is a fallback and should be matched last.\n\t\t\t\tpriority: 20,\n\t\t\t\tselector: 'p',\n\t\t\t\tschema: {\n\t\t\t\t\tp: {\n\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tdeprecated: [\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...schema,\n\t\t\t\twidth: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst {\n\t\t\t\t\twidth,\n\t\t\t\t\talign,\n\t\t\t\t\tcontent,\n\t\t\t\t\tdropCap,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tcustomBackgroundColor,\n\t\t\t\t\tcustomTextColor,\n\t\t\t\t\tfontSize,\n\t\t\t\t\tcustomFontSize,\n\t\t\t\t} = attributes;\n\n\t\t\t\tconst textClass = getColorClassName( 'color', textColor );\n\t\t\t\tconst backgroundClass = getColorClassName( 'background-color', backgroundColor );\n\t\t\t\tconst fontSizeClass = fontSize && `is-${ fontSize }-text`;\n\n\t\t\t\tconst className = classnames( {\n\t\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t\t'has-background': backgroundColor || customBackgroundColor,\n\t\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t\t[ fontSizeClass ]: fontSizeClass,\n\t\t\t\t\t[ textClass ]: textClass,\n\t\t\t\t\t[ backgroundClass ]: backgroundClass,\n\t\t\t\t} );\n\n\t\t\t\tconst styles = {\n\t\t\t\t\tbackgroundColor: backgroundClass ? undefined : customBackgroundColor,\n\t\t\t\t\tcolor: textClass ? undefined : customTextColor,\n\t\t\t\t\tfontSize: fontSizeClass ? undefined : customFontSize,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t};\n\n\t\t\t\treturn (\n\t\t\t\t\t<RichText.Content\n\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\tstyle={ styles }\n\t\t\t\t\t\tclassName={ className ? className : undefined }\n\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t/>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: omit( {\n\t\t\t\t...schema,\n\t\t\t\tfontSize: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t},\n\t\t\t}, 'customFontSize', 'customTextColor', 'customBackgroundColor' ),\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { width, align, content, dropCap, backgroundColor, textColor, fontSize } = attributes;\n\t\t\t\tconst className = classnames( {\n\t\t\t\t\t[ `align${ width }` ]: width,\n\t\t\t\t\t'has-background': backgroundColor,\n\t\t\t\t\t'has-drop-cap': dropCap,\n\t\t\t\t} );\n\t\t\t\tconst styles = {\n\t\t\t\t\tbackgroundColor: backgroundColor,\n\t\t\t\t\tcolor: textColor,\n\t\t\t\t\tfontSize: fontSize,\n\t\t\t\t\ttextAlign: align,\n\t\t\t\t};\n\n\t\t\t\treturn <p style={ styles } className={ className ? className : undefined }>{ content }</p>;\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\treturn omit( {\n\t\t\t\t\t...attributes,\n\t\t\t\t\tcustomFontSize: isFinite( attributes.fontSize ) ? attributes.fontSize : undefined,\n\t\t\t\t\tcustomTextColor: attributes.textColor && '#' === attributes.textColor[ 0 ] ? attributes.textColor : undefined,\n\t\t\t\t\tcustomBackgroundColor: attributes.backgroundColor && '#' === attributes.backgroundColor[ 0 ] ? attributes.backgroundColor : undefined,\n\t\t\t\t}, [ 'fontSize', 'textColor', 'backgroundColor' ] );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tsupports,\n\t\t\tattributes: {\n\t\t\t\t...schema,\n\t\t\t\tcontent: {\n\t\t\t\t\ttype: 'string',\n\t\t\t\t\tsource: 'html',\n\t\t\t\t},\n\t\t\t},\n\t\t\tsave( { attributes } ) {\n\t\t\t\treturn <RawHTML>{ attributes.content }</RawHTML>;\n\t\t\t},\n\t\t\tmigrate( attributes ) {\n\t\t\t\treturn attributes;\n\t\t\t},\n\t\t},\n\t],\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { width } = attributes;\n\t\tif ( [ 'wide', 'full', 'left', 'right' ].indexOf( width ) !== -1 ) {\n\t\t\treturn { 'data-align': width };\n\t\t}\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst {\n\t\t\talign,\n\t\t\tcontent,\n\t\t\tdropCap,\n\t\t\tbackgroundColor,\n\t\t\ttextColor,\n\t\t\tcustomBackgroundColor,\n\t\t\tcustomTextColor,\n\t\t\tfontSize,\n\t\t\tcustomFontSize,\n\t\t} = 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/>\n\t\t);\n\t},\n};\n","/**\n * WordPress\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock, getPhrasingContentSchema } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\n\nexport const name = 'core/preformatted';\n\nexport const settings = {\n\ttitle: __( 'Preformatted' ),\n\n\tdescription: __( 'Add text that respects your spacing and tabs, and also allows styling.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><path d=\"M20,4H4C2.9,4,2,4.9,2,6v12c0,1.1,0.9,2,2,2h16c1.1,0,2-0.9,2-2V6C22,4.9,21.1,4,20,4z M20,18H4V6h16V18z\" /><rect x=\"6\" y=\"10\" width=\"2\" height=\"2\" /><rect x=\"6\" y=\"14\" width=\"8\" height=\"2\" /><rect x=\"16\" y=\"14\" width=\"2\" height=\"2\" /><rect x=\"10\" y=\"10\" width=\"8\" height=\"2\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/code', 'core/paragraph' ],\n\t\t\t\ttransform: ( { content } ) =>\n\t\t\t\t\tcreateBlock( 'core/preformatted', {\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t} ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tisMatch: ( node ) => (\n\t\t\t\t\tnode.nodeName === 'PRE' &&\n\t\t\t\t\t! (\n\t\t\t\t\t\tnode.children.length === 1 &&\n\t\t\t\t\t\tnode.firstChild.nodeName === 'CODE'\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t\tschema: {\n\t\t\t\t\tpre: {\n\t\t\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, mergeBlocks, setAttributes, className } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tvalue={ content }\n\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t} );\n\t\t\t\t} }\n\t\t\t\tplaceholder={ __( 'Write preformatted text…' ) }\n\t\t\t\twrapperClassName={ className }\n\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t/>\n\t\t);\n\t},\n\n\tsave( { attributes } ) {\n\t\tconst { content } = attributes;\n\n\t\treturn <RichText.Content tagName=\"pre\" value={ content } />;\n\t},\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tComponent,\n\tFragment,\n} from '@wordpress/element';\nimport {\n\tRichText,\n\tContrastChecker,\n\tInspectorControls,\n\twithColors,\n\tPanelColorSettings,\n} from '@wordpress/editor';\n\nexport const SOLID_COLOR_STYLE_NAME = 'solid-color';\nexport const SOLID_COLOR_CLASS = `is-style-${ SOLID_COLOR_STYLE_NAME }`;\n\nclass PullQuoteEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.wasTextColorAutomaticallyComputed = false;\n\t\tthis.pullQuoteMainColorSetter = this.pullQuoteMainColorSetter.bind( this );\n\t\tthis.pullQuoteTextColorSetter = this.pullQuoteTextColorSetter.bind( this );\n\t}\n\n\tpullQuoteMainColorSetter( colorValue ) {\n\t\tconst { colorUtils, textColor, setTextColor, setMainColor } = this.props;\n\t\tsetMainColor( colorValue );\n\t\tif ( ! textColor.color || this.wasTextColorAutomaticallyComputed ) {\n\t\t\tthis.wasTextColorAutomaticallyComputed = true;\n\t\t\tsetTextColor( colorUtils.getMostReadableColor( colorValue ) );\n\t\t}\n\t}\n\n\tpullQuoteTextColorSetter( colorValue ) {\n\t\tconst { setTextColor } = this.props;\n\t\tsetTextColor( colorValue );\n\t\tthis.wasTextColorAutomaticallyComputed = false;\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tattributes,\n\t\t\tmainColor,\n\t\t\ttextColor,\n\t\t\tsetAttributes,\n\t\t\tisSelected,\n\t\t\tclassName,\n\t\t} = this.props;\n\n\t\tconst { value, citation } = attributes;\n\n\t\tconst isSolidColorStyle = includes( className, SOLID_COLOR_CLASS );\n\t\tconst figureStyle = isSolidColorStyle ?\n\t\t\t{ backgroundColor: mainColor.color } :\n\t\t\t{ borderColor: mainColor.color };\n\t\tconst blockquoteStyle = {\n\t\t\tcolor: textColor.color,\n\t\t};\n\t\tconst blockquoteClasses = textColor.color ? classnames( 'has-text-color', {\n\t\t\t[ textColor.class ]: textColor.class,\n\t\t} ) : undefined;\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<figure style={ figureStyle } className={ classnames(\n\t\t\t\t\tclassName, {\n\t\t\t\t\t\t[ mainColor.class ]: isSolidColorStyle && mainColor.class,\n\t\t\t\t\t} ) }>\n\t\t\t\t\t<blockquote style={ blockquoteStyle } className={ blockquoteClasses }>\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\tmultiline=\"p\"\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t( nextValue ) => setAttributes( {\n\t\t\t\t\t\t\t\t\tvalue: nextValue,\n\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t/* translators: the text of the quotation */\n\t\t\t\t\t\t\tplaceholder={ __( 'Write quote…' ) }\n\t\t\t\t\t\t\twrapperClassName=\"block-library-pullquote__content\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{ ( ! RichText.isEmpty( citation ) || isSelected ) && (\n\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\tvalue={ citation }\n\t\t\t\t\t\t\t\t/* translators: the individual or entity quoted */\n\t\t\t\t\t\t\t\tplaceholder={ __( 'Write citation…' ) }\n\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t( nextCitation ) => setAttributes( {\n\t\t\t\t\t\t\t\t\t\tcitation: nextCitation,\n\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName=\"wp-block-pullquote__citation\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</blockquote>\n\t\t\t\t</figure>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelColorSettings\n\t\t\t\t\t\ttitle={ __( 'Color Settings' ) }\n\t\t\t\t\t\tcolorSettings={ [\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: mainColor.color,\n\t\t\t\t\t\t\t\tonChange: this.pullQuoteMainColorSetter,\n\t\t\t\t\t\t\t\tlabel: __( 'Main Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: textColor.color,\n\t\t\t\t\t\t\t\tonChange: this.pullQuoteTextColorSetter,\n\t\t\t\t\t\t\t\tlabel: __( 'Text Color' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isSolidColorStyle && (\n\t\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\t\ttextColor: textColor.color,\n\t\t\t\t\t\t\t\t\tbackgroundColor: mainColor.color,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t</PanelColorSettings>\n\t\t\t\t</InspectorControls>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default withColors( { mainColor: 'background-color', textColor: 'color' } )(\n\tPullQuoteEdit\n);\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { get, includes } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tgetColorClassName,\n\tRichText,\n\tgetColorObjectByAttributeValues,\n} from '@wordpress/editor';\nimport {\n\tselect,\n} from '@wordpress/data';\n\nimport {\n\tdefault as edit,\n\tSOLID_COLOR_STYLE_NAME,\n\tSOLID_COLOR_CLASS,\n} from './edit';\n\nconst blockAttributes = {\n\tvalue: {\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t},\n\tmainColor: {\n\t\ttype: 'string',\n\t},\n\tcustomMainColor: {\n\t\ttype: 'string',\n\t},\n\ttextColor: {\n\t\ttype: 'string',\n\t},\n\tcustomTextColor: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/pullquote';\n\nexport const settings = {\n\n\ttitle: __( 'Pullquote' ),\n\n\tdescription: __( 'Highlight a quote from your post or page by displaying it as a graphic element.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M0,0h24v24H0V0z\" fill=\"none\" /><polygon points=\"21 18 2 18 2 20 21 20\" /><path d=\"m19 10v4h-15v-4h15m1-2h-17c-0.55 0-1 0.45-1 1v6c0 0.55 0.45 1 1 1h17c0.55 0 1-0.45 1-1v-6c0-0.55-0.45-1-1-1z\" /><polygon points=\"21 4 2 4 2 6 21 6\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tattributes: blockAttributes,\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Regular' ), isDefault: true },\n\t\t{ name: SOLID_COLOR_STYLE_NAME, label: __( 'Solid Color' ) },\n\t],\n\n\tsupports: {\n\t\talign: [ 'left', 'right', 'wide', 'full' ],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { mainColor, customMainColor, textColor, customTextColor, value, citation, className } = attributes;\n\t\tconst isSolidColorStyle = includes( className, SOLID_COLOR_CLASS );\n\n\t\tlet figureClass, figureStyles;\n\t\t// Is solid color style\n\t\tif ( isSolidColorStyle ) {\n\t\t\tfigureClass = getColorClassName( 'background-color', mainColor );\n\t\t\tif ( ! figureClass ) {\n\t\t\t\tfigureStyles = {\n\t\t\t\t\tbackgroundColor: customMainColor,\n\t\t\t\t};\n\t\t\t}\n\t\t// Is normal style and a custom color is being used ( we can set a style directly with its value)\n\t\t} else if ( customMainColor ) {\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: customMainColor,\n\t\t\t};\n\t\t// Is normal style and a named color is being used, we need to retrieve the color value to set the style,\n\t\t// as there is no expectation that themes create classes that set border colors.\n\t\t} else if ( mainColor ) {\n\t\t\tconst colors = get( select( 'core/editor' ).getEditorSettings(), [ 'colors' ], [] );\n\t\t\tconst colorObject = getColorObjectByAttributeValues( colors, mainColor );\n\t\t\tfigureStyles = {\n\t\t\t\tborderColor: colorObject.color,\n\t\t\t};\n\t\t}\n\n\t\tconst blockquoteTextColorClass = getColorClassName( 'color', textColor );\n\t\tconst blockquoteClasses = textColor || customTextColor ? classnames( 'has-text-color', {\n\t\t\t[ blockquoteTextColorClass ]: blockquoteTextColorClass,\n\t\t} ) : undefined;\n\t\tconst blockquoteStyle = blockquoteTextColorClass ? undefined : { color: customTextColor };\n\t\treturn (\n\t\t\t<figure className={ figureClass } style={ figureStyles }>\n\t\t\t\t<blockquote className={ blockquoteClasses } style={ blockquoteStyle } >\n\t\t\t\t\t<RichText.Content value={ value } multiline=\"p\" />\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=\"p\" />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t\t</blockquote>\n\t\t\t);\n\t\t},\n\t}, {\n\t\tattributes: {\n\t\t\t...blockAttributes,\n\t\t\tcitation: {\n\t\t\t\tsource: 'html',\n\t\t\t\tselector: 'footer',\n\t\t\t},\n\t\t\talign: {\n\t\t\t\ttype: 'string',\n\t\t\t\tdefault: 'none',\n\t\t\t},\n\t\t},\n\n\t\tsave( { attributes } ) {\n\t\t\tconst { value, citation, align } = attributes;\n\n\t\t\treturn (\n\t\t\t\t<blockquote className={ `align${ align }` }>\n\t\t\t\t\t<RichText.Content value={ value } />\n\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"footer\" value={ citation } /> }\n\t\t\t\t</blockquote>\n\t\t\t);\n\t\t},\n\t} ],\n};\n","/**\n * External dependencies\n */\nimport { omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock, getPhrasingContentSchema } from '@wordpress/blocks';\nimport {\n\tBlockControls,\n\tAlignmentToolbar,\n\tRichText,\n} from '@wordpress/editor';\nimport { join, split, create, toHTMLString } from '@wordpress/rich-text';\n\nconst blockAttributes = {\n\tvalue: {\n\t\tsource: 'html',\n\t\tselector: 'blockquote',\n\t\tmultiline: 'p',\n\t},\n\tcitation: {\n\t\tsource: 'html',\n\t\tselector: 'cite',\n\t},\n\talign: {\n\t\ttype: 'string',\n\t},\n};\n\nexport const name = 'core/quote';\n\nexport const settings = {\n\ttitle: __( 'Quote' ),\n\tdescription: __( 'Maybe someone else said it better -- add some quoted text.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M19 18h-6l2-4h-2V6h8v7l-2 5zm-2-2l2-3V8h-4v4h4l-2 4zm-8 2H3l2-4H3V6h8v7l-2 5zm-2-2l2-3V8H5v4h4l-2 4z\" /></g></svg>,\n\tcategory: 'common',\n\tkeywords: [ __( 'blockquote' ) ],\n\n\tattributes: blockAttributes,\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Regular' ), isDefault: true },\n\t\t{ name: 'large', label: __( 'Large' ) },\n\t],\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tisMultiBlock: true,\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: toHTMLString( join( attributes.map( ( { content } ) =>\n\t\t\t\t\t\t\tcreate( { html: content } )\n\t\t\t\t\t\t), '\\u2028' ), 'p' ),\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { content } ) => {\n\t\t\t\t\treturn createBlock( 'core/quote', {\n\t\t\t\t\t\tvalue: content,\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/quote', {\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\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 } ) =>\n\t\t\t\t\tsplit( create( { html: value, multilineTag: 'p' } ), '\\u2028' )\n\t\t\t\t\t\t.map( ( piece ) =>\n\t\t\t\t\t\t\tcreateBlock( 'core/paragraph', {\n\t\t\t\t\t\t\t\tcontent: toHTMLString( piece ),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/heading' ],\n\t\t\t\ttransform: ( { value, citation, ...attrs } ) => {\n\t\t\t\t\t// If there is no quote content, use the citation as the\n\t\t\t\t\t// content of the resulting heading. A nonexistent citation\n\t\t\t\t\t// will result in an empty heading.\n\t\t\t\t\tif ( value === '<p></p>' ) {\n\t\t\t\t\t\treturn createBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent: citation,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\tconst pieces = split( create( { html: value, multilineTag: 'p' } ), '\\u2028' );\n\t\t\t\t\tconst quotePieces = pieces.slice( 1 );\n\n\t\t\t\t\treturn [\n\t\t\t\t\t\tcreateBlock( 'core/heading', {\n\t\t\t\t\t\t\tcontent: toHTMLString( pieces[ 0 ] ),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t\tcreateBlock( 'core/quote', {\n\t\t\t\t\t\t\t...attrs,\n\t\t\t\t\t\t\tcitation,\n\t\t\t\t\t\t\tvalue: toHTMLString( quotePieces.length ? join( pieces.slice( 1 ), '\\u2028' ) : create(), 'p' ),\n\t\t\t\t\t\t} ),\n\t\t\t\t\t];\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, isSelected, mergeBlocks, onReplace, className } ) {\n\t\tconst { align, value, citation } = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<blockquote className={ className } style={ { textAlign: align } }>\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tmultiline=\"p\"\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=\"p\" 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, attributesToMerge ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\tvalue: attributes.value + attributesToMerge.value,\n\t\t\tcitation: attributes.citation + attributesToMerge.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=\"p\" value={ value } />\n\t\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"cite\" value={ citation } /> }\n\t\t\t\t\t</blockquote>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\tattributes: {\n\t\t\t\t...blockAttributes,\n\t\t\t\tcitation: {\n\t\t\t\t\tsource: 'html',\n\t\t\t\t\tselector: 'footer',\n\t\t\t\t},\n\t\t\t\tstyle: {\n\t\t\t\t\ttype: 'number',\n\t\t\t\t\tdefault: 1,\n\t\t\t\t},\n\t\t\t},\n\n\t\t\tsave( { attributes } ) {\n\t\t\t\tconst { align, value, citation, style } = attributes;\n\n\t\t\t\treturn (\n\t\t\t\t\t<blockquote\n\t\t\t\t\t\tclassName={ `blocks-quote-style-${ style }` }\n\t\t\t\t\t\tstyle={ { textAlign: align ? align : null } }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content multiline=\"p\" value={ value } />\n\t\t\t\t\t\t{ ! RichText.isEmpty( citation ) && <RichText.Content tagName=\"footer\" value={ citation } /> }\n\t\t\t\t\t</blockquote>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { createBlock } from '@wordpress/blocks';\n\nexport const name = 'core/separator';\n\nexport const settings = {\n\ttitle: __( 'Separator' ),\n\n\tdescription: __( 'Insert a horizontal line where you want to create a break between ideas.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M19 13H5v-2h14v2z\" /></svg>,\n\n\tcategory: 'layout',\n\n\tkeywords: [ __( 'horizontal-line' ), 'hr', __( 'divider' ) ],\n\n\tstyles: [\n\t\t{ name: 'default', label: __( 'Short Line' ), isDefault: true },\n\t\t{ name: 'wide', label: __( 'Wide Line' ) },\n\t\t{ name: 'dots', label: __( 'Dots' ) },\n\t],\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'pattern',\n\t\t\t\ttrigger: 'enter',\n\t\t\t\tregExp: /^-{3,}$/,\n\t\t\t\ttransform: () => createBlock( 'core/separator' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'hr',\n\t\t\t\tschema: {\n\t\t\t\t\thr: {},\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { className } ) {\n\t\treturn <hr className={ className } />;\n\t},\n\n\tsave() {\n\t\treturn <hr />;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { removep, autop } from '@wordpress/autop';\nimport { RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { Dashicon } from '@wordpress/components';\nimport { PlainText } from '@wordpress/editor';\nimport { withInstanceId } from '@wordpress/compose';\n\nexport const name = 'core/shortcode';\n\nexport const settings = {\n\ttitle: __( 'Shortcode' ),\n\n\tdescription: __( 'Add a shortcode -- a WordPress-specific snippet of code written between square brackets.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M8.5,21.4l1.9,0.5l5.2-19.3l-1.9-0.5L8.5,21.4z M3,19h4v-2H5V7h2V5H3V19z M17,5v2h2v10h-2v2h4V5H17z\" /></svg>,\n\n\tcategory: 'widgets',\n\n\tattributes: {\n\t\ttext: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'text',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'shortcode',\n\t\t\t\t// Per \"Shortcode names should be all lowercase and use all\n\t\t\t\t// letters, but numbers and underscores should work fine too.\n\t\t\t\t// Be wary of using hyphens (dashes), you'll be better off not\n\t\t\t\t// using them.\" in https://codex.wordpress.org/Shortcode_API\n\t\t\t\t// Require that the first character be a letter. This notably\n\t\t\t\t// prevents footnote markings ([1]) from being caught as\n\t\t\t\t// shortcodes.\n\t\t\t\ttag: '[a-z][a-z0-9_-]*',\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tshortcode: ( attrs, { content } ) => {\n\t\t\t\t\t\t\treturn removep( autop( content ) );\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tpriority: 20,\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\tclassName: false,\n\t\thtml: false,\n\t},\n\n\tedit: withInstanceId(\n\t\t( { attributes, setAttributes, instanceId } ) => {\n\t\t\tconst inputId = `blocks-shortcode-input-${ instanceId }`;\n\n\t\t\treturn (\n\t\t\t\t<div className=\"wp-block-shortcode\">\n\t\t\t\t\t<label htmlFor={ inputId }>\n\t\t\t\t\t\t<Dashicon icon=\"shortcode\" />\n\t\t\t\t\t\t{ __( 'Shortcode' ) }\n\t\t\t\t\t</label>\n\t\t\t\t\t<PlainText\n\t\t\t\t\t\tclassName=\"input-control\"\n\t\t\t\t\t\tid={ inputId }\n\t\t\t\t\t\tvalue={ attributes.text }\n\t\t\t\t\t\tplaceholder={ __( 'Write shortcode here…' ) }\n\t\t\t\t\t\tonChange={ ( text ) => setAttributes( { text } ) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t);\n\t\t}\n\t),\n\n\tsave( { attributes } ) {\n\t\treturn <RawHTML>{ attributes.text }</RawHTML>;\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress\n */\nimport { Fragment } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { InspectorControls } from '@wordpress/editor';\nimport { BaseControl, PanelBody, ResizableBox } from '@wordpress/components';\nimport { withInstanceId } from '@wordpress/compose';\n\nexport const name = 'core/spacer';\n\nexport const settings = {\n\ttitle: __( 'Spacer' ),\n\n\tdescription: __( 'Add an element with empty space and custom height.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><g><path d=\"M13 4v2h3.59L6 16.59V13H4v7h7v-2H7.41L18 7.41V11h2V4h-7\" /></g></svg>,\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\theight: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 100,\n\t\t},\n\t},\n\n\tedit: withInstanceId(\n\t\t( { attributes, isSelected, setAttributes, toggleSelection, instanceId } ) => {\n\t\t\tconst { height } = attributes;\n\t\t\tconst id = `block-spacer-height-input-${ instanceId }`;\n\n\t\t\treturn (\n\t\t\t\t<Fragment>\n\t\t\t\t\t<ResizableBox\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'block-library-spacer__resize-container',\n\t\t\t\t\t\t\t{ 'is-selected': isSelected }\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tsize={ {\n\t\t\t\t\t\t\theight,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tminHeight=\"20\"\n\t\t\t\t\t\tenable={ {\n\t\t\t\t\t\t\ttop: false,\n\t\t\t\t\t\t\tright: false,\n\t\t\t\t\t\t\tbottom: true,\n\t\t\t\t\t\t\tleft: false,\n\t\t\t\t\t\t\ttopRight: false,\n\t\t\t\t\t\t\tbottomRight: false,\n\t\t\t\t\t\t\tbottomLeft: false,\n\t\t\t\t\t\t\ttopLeft: false,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\theight: parseInt( height + delta.height, 10 ),\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonResizeStart={ () => {\n\t\t\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t\t<InspectorControls>\n\t\t\t\t\t\t<PanelBody title={ __( 'Spacer Settings' ) }>\n\t\t\t\t\t\t\t<BaseControl label={ __( 'Height in pixels' ) } id={ id }>\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\tid={ id }\n\t\t\t\t\t\t\t\t\tonChange={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\theight: parseInt( event.target.value, 10 ),\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tvalue={ height }\n\t\t\t\t\t\t\t\t\tmin=\"20\"\n\t\t\t\t\t\t\t\t\tstep=\"10\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</InspectorControls>\n\t\t\t\t</Fragment>\n\t\t\t);\n\t\t}\n\t),\n\n\tsave( { attributes } ) {\n\t\treturn <div style={ { height: attributes.height } } aria-hidden />;\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n} from '@wordpress/editor';\n\nexport const name = 'core/subhead';\n\nexport const settings = {\n\ttitle: __( 'Subheading (deprecated)' ),\n\n\tdescription: __( 'This block is deprecated. Please use the Paragraph block instead.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><path d=\"M7.1 6l-.5 3h4.5L9.4 19h3l1.8-10h4.5l.5-3H7.1z\" /></svg>,\n\n\tcategory: 'common',\n\n\tsupports: {\n\t\t// Hide from inserter as this block is deprecated.\n\t\tinserter: false,\n\t\tmultiple: false,\n\t},\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'p',\n\t\t},\n\t\talign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, className } ) {\n\t\tconst { align, content, placeholder } = attributes;\n\n\t\tdeprecated( 'The Subheading block', {\n\t\t\talternative: 'the Paragraph block',\n\t\t\tplugin: 'Gutenberg',\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ align }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { align: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tplaceholder={ placeholder || __( 'Write subheading…' ) }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes, className } ) {\n\t\tconst { align, content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"p\"\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ { textAlign: align } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { Fragment, Component } from '@wordpress/element';\nimport { InspectorControls, BlockControls, RichText } from '@wordpress/editor';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tButton,\n\tToolbar,\n\tDropdownMenu,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport {\n\tcreateTable,\n\tupdateCellContent,\n\tinsertRow,\n\tdeleteRow,\n\tinsertColumn,\n\tdeleteColumn,\n} from './state';\n\nexport default class TableEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\n\t\tthis.onCreateTable = this.onCreateTable.bind( this );\n\t\tthis.onChangeFixedLayout = this.onChangeFixedLayout.bind( this );\n\t\tthis.onChange = this.onChange.bind( this );\n\t\tthis.onChangeInitialColumnCount = this.onChangeInitialColumnCount.bind( this );\n\t\tthis.onChangeInitialRowCount = this.onChangeInitialRowCount.bind( this );\n\t\tthis.renderSection = this.renderSection.bind( this );\n\t\tthis.getTableControls = this.getTableControls.bind( this );\n\t\tthis.onInsertRow = this.onInsertRow.bind( this );\n\t\tthis.onInsertRowBefore = this.onInsertRowBefore.bind( this );\n\t\tthis.onInsertRowAfter = this.onInsertRowAfter.bind( this );\n\t\tthis.onDeleteRow = this.onDeleteRow.bind( this );\n\t\tthis.onInsertColumn = this.onInsertColumn.bind( this );\n\t\tthis.onInsertColumnBefore = this.onInsertColumnBefore.bind( this );\n\t\tthis.onInsertColumnAfter = this.onInsertColumnAfter.bind( this );\n\t\tthis.onDeleteColumn = this.onDeleteColumn.bind( this );\n\n\t\tthis.state = {\n\t\t\tinitialRowCount: 2,\n\t\t\tinitialColumnCount: 2,\n\t\t\tselectedCell: null,\n\t\t};\n\t}\n\n\t/**\n\t * Updates the initial column count used for table creation.\n\t *\n\t * @param {number} initialColumnCount New initial column count.\n\t */\n\tonChangeInitialColumnCount( initialColumnCount ) {\n\t\tthis.setState( { initialColumnCount } );\n\t}\n\n\t/**\n\t * Updates the initial row count used for table creation.\n\t *\n\t * @param {number} initialRowCount New initial row count.\n\t */\n\tonChangeInitialRowCount( initialRowCount ) {\n\t\tthis.setState( { initialRowCount } );\n\t}\n\n\t/**\n\t * Creates a table based on dimensions in local state.\n\t */\n\tonCreateTable() {\n\t\tconst { setAttributes } = this.props;\n\t\tlet { initialRowCount, initialColumnCount } = this.state;\n\n\t\tinitialRowCount = parseInt( initialRowCount, 10 ) || 2;\n\t\tinitialColumnCount = parseInt( initialColumnCount, 10 ) || 2;\n\n\t\tsetAttributes( createTable( {\n\t\t\trowCount: initialRowCount,\n\t\t\tcolumnCount: initialColumnCount,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Toggles whether the table has a fixed layout or not.\n\t */\n\tonChangeFixedLayout() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { hasFixedLayout } = attributes;\n\n\t\tsetAttributes( { hasFixedLayout: ! hasFixedLayout } );\n\t}\n\n\t/**\n\t * Changes the content of the currently selected cell.\n\t *\n\t * @param {Array} content A RichText content value.\n\t */\n\tonChange( content ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex, columnIndex } = selectedCell;\n\n\t\tsetAttributes( updateCellContent( attributes, {\n\t\t\tsection,\n\t\t\trowIndex,\n\t\t\tcolumnIndex,\n\t\t\tcontent,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row at the currently selected row index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected row index at which to insert.\n\t */\n\tonInsertRow( delta ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertRow( attributes, {\n\t\t\tsection,\n\t\t\trowIndex: rowIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a row before the currently selected row.\n\t */\n\tonInsertRowBefore() {\n\t\tthis.onInsertRow( 0 );\n\t}\n\n\t/**\n\t * Inserts a row after the currently selected row.\n\t */\n\tonInsertRowAfter() {\n\t\tthis.onInsertRow( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected row.\n\t */\n\tonDeleteRow() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, rowIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteRow( attributes, { section, rowIndex } ) );\n\t}\n\n\t/**\n\t * Inserts a column at the currently selected column index, plus `delta`.\n\t *\n\t * @param {number} delta Offset for selected column index at which to insert.\n\t */\n\tonInsertColumn( delta = 0 ) {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( insertColumn( attributes, {\n\t\t\tsection,\n\t\t\tcolumnIndex: columnIndex + delta,\n\t\t} ) );\n\t}\n\n\t/**\n\t * Inserts a column before the currently selected column.\n\t */\n\tonInsertColumnBefore() {\n\t\tthis.onInsertColumn( 0 );\n\t}\n\n\t/**\n\t * Inserts a column after the currently selected column.\n\t */\n\tonInsertColumnAfter() {\n\t\tthis.onInsertColumn( 1 );\n\t}\n\n\t/**\n\t * Deletes the currently selected column.\n\t */\n\tonDeleteColumn() {\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! selectedCell ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { section, columnIndex } = selectedCell;\n\n\t\tthis.setState( { selectedCell: null } );\n\t\tsetAttributes( deleteColumn( attributes, { section, columnIndex } ) );\n\t}\n\n\t/**\n\t * Creates an onFocus handler for a specified cell.\n\t *\n\t * @param {Object} selectedCell Object with `section`, `rowIndex`, and\n\t * `columnIndex` properties.\n\t *\n\t * @return {Function} Function to call on focus.\n\t */\n\tcreateOnFocus( selectedCell ) {\n\t\treturn () => {\n\t\t\tthis.setState( { selectedCell } );\n\t\t};\n\t}\n\n\t/**\n\t * Gets the table controls to display in the block toolbar.\n\t *\n\t * @return {Array} Table controls.\n\t */\n\tgetTableControls() {\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn [\n\t\t\t{\n\t\t\t\ticon: 'table-row-before',\n\t\t\t\ttitle: __( 'Add Row Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-after',\n\t\t\t\ttitle: __( 'Add Row After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertRowAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-row-delete',\n\t\t\t\ttitle: __( 'Delete Row' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteRow,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-before',\n\t\t\t\ttitle: __( 'Add Column Before' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnBefore,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-after',\n\t\t\t\ttitle: __( 'Add Column After' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onInsertColumnAfter,\n\t\t\t},\n\t\t\t{\n\t\t\t\ticon: 'table-col-delete',\n\t\t\t\ttitle: __( 'Delete Column' ),\n\t\t\t\tisDisabled: ! selectedCell,\n\t\t\t\tonClick: this.onDeleteColumn,\n\t\t\t},\n\t\t];\n\t}\n\n\t/**\n\t * Renders a table section.\n\t *\n\t * @param {string} options.type Section type: head, body, or foot.\n\t * @param {Array} options.rows The rows to render.\n\t *\n\t * @return {Object} React element for the section.\n\t */\n\trenderSection( { type, rows } ) {\n\t\tif ( ! rows.length ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst Tag = `t${ type }`;\n\t\tconst { selectedCell } = this.state;\n\n\t\treturn (\n\t\t\t<Tag>\n\t\t\t\t{ rows.map( ( { cells }, rowIndex ) =>\n\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t{ cells.map( ( { content, tag: CellTag }, columnIndex ) => {\n\t\t\t\t\t\t\tconst isSelected = selectedCell && (\n\t\t\t\t\t\t\t\ttype === selectedCell.section &&\n\t\t\t\t\t\t\t\trowIndex === selectedCell.rowIndex &&\n\t\t\t\t\t\t\t\tcolumnIndex === selectedCell.columnIndex\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tconst cell = {\n\t\t\t\t\t\t\t\tsection: type,\n\t\t\t\t\t\t\t\trowIndex,\n\t\t\t\t\t\t\t\tcolumnIndex,\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tconst classes = classnames( {\n\t\t\t\t\t\t\t\t'is-selected': isSelected,\n\t\t\t\t\t\t\t} );\n\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t<CellTag key={ columnIndex } className={ classes }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\tclassName=\"wp-block-table__cell-content\"\n\t\t\t\t\t\t\t\t\t\tvalue={ content }\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChange }\n\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ this.createOnFocus( cell ) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</CellTag>\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t</tr>\n\t\t\t\t) }\n\t\t\t</Tag>\n\t\t);\n\t}\n\n\tcomponentDidUpdate() {\n\t\tconst { isSelected } = this.props;\n\t\tconst { selectedCell } = this.state;\n\n\t\tif ( ! isSelected && selectedCell ) {\n\t\t\tthis.setState( { selectedCell: null } );\n\t\t}\n\t}\n\n\trender() {\n\t\tconst { attributes, className } = this.props;\n\t\tconst { initialRowCount, initialColumnCount } = this.state;\n\t\tconst { hasFixedLayout, head, body, foot } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\t\tconst Section = this.renderSection;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn (\n\t\t\t\t<form onSubmit={ this.onCreateTable }>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Column Count' ) }\n\t\t\t\t\t\tvalue={ initialColumnCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialColumnCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\tlabel={ __( 'Row Count' ) }\n\t\t\t\t\t\tvalue={ initialRowCount }\n\t\t\t\t\t\tonChange={ this.onChangeInitialRowCount }\n\t\t\t\t\t\tmin=\"1\"\n\t\t\t\t\t/>\n\t\t\t\t\t<Button isPrimary type=\"submit\">{ __( 'Create' ) }</Button>\n\t\t\t\t</form>\n\t\t\t);\n\t\t}\n\n\t\tconst classes = classnames( className, {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon=\"editor-table\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit Table' ) }\n\t\t\t\t\t\t\tcontrols={ this.getTableControls() }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Table Settings' ) } className=\"blocks-table-settings\">\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Fixed width table cells' ) }\n\t\t\t\t\t\t\tchecked={ !! hasFixedLayout }\n\t\t\t\t\t\t\tonChange={ this.onChangeFixedLayout }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<table className={ classes }>\n\t\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t\t</table>\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n","/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getPhrasingContentSchema } from '@wordpress/blocks';\nimport { RichText } from '@wordpress/editor';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nconst tableContentPasteSchema = {\n\ttr: {\n\t\tchildren: {\n\t\t\tth: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t\ttd: {\n\t\t\t\tchildren: getPhrasingContentSchema(),\n\t\t\t},\n\t\t},\n\t},\n};\n\nconst tablePasteSchema = {\n\ttable: {\n\t\tchildren: {\n\t\t\tthead: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t\ttfoot: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t\ttbody: {\n\t\t\t\tchildren: tableContentPasteSchema,\n\t\t\t},\n\t\t},\n\t},\n};\n\nfunction getTableSectionAttributeSchema( section ) {\n\treturn {\n\t\ttype: 'array',\n\t\tdefault: [],\n\t\tsource: 'query',\n\t\tselector: `t${ section } tr`,\n\t\tquery: {\n\t\t\tcells: {\n\t\t\t\ttype: 'array',\n\t\t\t\tdefault: [],\n\t\t\t\tsource: 'query',\n\t\t\t\tselector: 'td,th',\n\t\t\t\tquery: {\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\tsource: 'html',\n\t\t\t\t\t},\n\t\t\t\t\ttag: {\n\t\t\t\t\t\ttype: 'string',\n\t\t\t\t\t\tdefault: 'td',\n\t\t\t\t\t\tsource: 'tag',\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t};\n}\n\nexport const name = 'core/table';\n\nexport const settings = {\n\ttitle: __( 'Table' ),\n\tdescription: __( 'Insert a table -- perfect for sharing charts and data.' ),\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><g><path d=\"M20 3H5L3 5v14l2 2h15l2-2V5l-2-2zm0 2v3H5V5h15zm-5 14h-5v-9h5v9zM5 10h3v9H5v-9zm12 9v-9h3v9h-3z\" /></g></svg>,\n\tcategory: 'formatting',\n\n\tattributes: {\n\t\thasFixedLayout: {\n\t\t\ttype: 'boolean',\n\t\t\tdefault: false,\n\t\t},\n\t\thead: getTableSectionAttributeSchema( 'head' ),\n\t\tbody: getTableSectionAttributeSchema( 'body' ),\n\t\tfoot: getTableSectionAttributeSchema( 'foot' ),\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'raw',\n\t\t\t\tselector: 'table',\n\t\t\t\tschema: tablePasteSchema,\n\t\t\t},\n\t\t],\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { hasFixedLayout, head, body, foot } = attributes;\n\t\tconst isEmpty = ! head.length && ! body.length && ! foot.length;\n\n\t\tif ( isEmpty ) {\n\t\t\treturn null;\n\t\t}\n\n\t\tconst classes = classnames( {\n\t\t\t'has-fixed-layout': hasFixedLayout,\n\t\t} );\n\n\t\tconst Section = ( { type, rows } ) => {\n\t\t\tif ( ! rows.length ) {\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tconst Tag = `t${ type }`;\n\n\t\t\treturn (\n\t\t\t\t<Tag>\n\t\t\t\t\t{ rows.map( ( { cells }, rowIndex ) =>\n\t\t\t\t\t\t<tr key={ rowIndex }>\n\t\t\t\t\t\t\t{ cells.map( ( { content, tag }, cellIndex ) =>\n\t\t\t\t\t\t\t\t<RichText.Content tagName={ tag } value={ content } key={ cellIndex } />\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</tr>\n\t\t\t\t\t) }\n\t\t\t\t</Tag>\n\t\t\t);\n\t\t};\n\n\t\treturn (\n\t\t\t<table className={ classes }>\n\t\t\t\t<Section type=\"head\" rows={ head } />\n\t\t\t\t<Section type=\"body\" rows={ body } />\n\t\t\t\t<Section type=\"foot\" rows={ foot } />\n\t\t\t</table>\n\t\t);\n\t},\n};\n","/**\n * External dependencies\n */\nimport { times } from 'lodash';\n\n/**\n * Creates a table state.\n *\n * @param {number} options.rowCount Row count for the table to create.\n * @param {number} options.columnCount Column count for the table to create.\n *\n * @return {Object} New table state.\n */\nexport function createTable( {\n\trowCount,\n\tcolumnCount,\n} ) {\n\treturn {\n\t\tbody: times( rowCount, () => ( {\n\t\t\tcells: times( columnCount, () => ( {\n\t\t\t\tcontent: '',\n\t\t\t\ttag: 'td',\n\t\t\t} ) ),\n\t\t} ) ),\n\t};\n}\n\n/**\n * Updates cell content in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section of the cell to update.\n * @param {number} options.rowIndex Row index of the cell to update.\n * @param {number} options.columnIndex Column index of the cell to update.\n * @param {Array} options.content Content to set for the cell.\n *\n * @return {Object} New table state.\n */\nexport function updateCellContent( state, {\n\tsection,\n\trowIndex,\n\tcolumnIndex,\n\tcontent,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row, currentRowIndex ) => {\n\t\t\tif ( currentRowIndex !== rowIndex ) {\n\t\t\t\treturn row;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tcells: row.cells.map( ( cell, currentColumnIndex ) => {\n\t\t\t\t\tif ( currentColumnIndex !== columnIndex ) {\n\t\t\t\t\t\treturn cell;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...cell,\n\t\t\t\t\t\tcontent,\n\t\t\t\t\t};\n\t\t\t\t} ),\n\t\t\t};\n\t\t} ),\n\t};\n}\n\n/**\n * Inserts a row in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to insert the row.\n * @param {number} options.rowIndex Row index at which to insert the row.\n *\n * @return {Object} New table state.\n */\nexport function insertRow( state, {\n\tsection,\n\trowIndex,\n} ) {\n\tconst cellCount = state[ section ][ 0 ].cells.length;\n\n\treturn {\n\t\t[ section ]: [\n\t\t\t...state[ section ].slice( 0, rowIndex ),\n\t\t\t{\n\t\t\t\tcells: times( cellCount, () => ( {\n\t\t\t\t\tcontent: '',\n\t\t\t\t\ttag: 'td',\n\t\t\t\t} ) ),\n\t\t\t},\n\t\t\t...state[ section ].slice( rowIndex ),\n\t\t],\n\t};\n}\n\n/**\n * Deletes a row from the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to delete the row.\n * @param {number} options.rowIndex Row index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteRow( state, {\n\tsection,\n\trowIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].filter( ( row, index ) => index !== rowIndex ),\n\t};\n}\n\n/**\n * Inserts a column in the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to insert the column.\n * @param {number} options.columnIndex Column index at which to insert the column.\n *\n * @return {Object} New table state.\n */\nexport function insertColumn( state, {\n\tsection,\n\tcolumnIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row ) => ( {\n\t\t\tcells: [\n\t\t\t\t...row.cells.slice( 0, columnIndex ),\n\t\t\t\t{\n\t\t\t\t\tcontent: '',\n\t\t\t\t\ttag: 'td',\n\t\t\t\t},\n\t\t\t\t...row.cells.slice( columnIndex ),\n\t\t\t],\n\t\t} ) ),\n\t};\n}\n\n/**\n * Deletes a column from the table state.\n *\n * @param {Object} state Current table state.\n * @param {string} options.section Section in which to delete the column.\n * @param {number} options.columnIndex Column index to delete.\n *\n * @return {Object} New table state.\n */\nexport function deleteColumn( state, {\n\tsection,\n\tcolumnIndex,\n} ) {\n\treturn {\n\t\t[ section ]: state[ section ].map( ( row ) => ( {\n\t\t\tcells: row.cells.filter( ( cell, index ) => index !== columnIndex ),\n\t\t} ) ).filter( ( row ) => row.cells.length ),\n\t};\n}\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { InnerBlocks } from '@wordpress/editor';\n\nexport const name = 'core/template';\n\nexport const settings = {\n\ttitle: __( 'Reusable Template' ),\n\n\tcategory: 'reusable',\n\n\tdescription: __( 'Template block used as a container.' ),\n\n\ticon: <svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\"><rect x=\"0\" fill=\"none\" width=\"24\" height=\"24\" /><g><path d=\"M19 3H5c-1.105 0-2 .895-2 2v14c0 1.105.895 2 2 2h14c1.105 0 2-.895 2-2V5c0-1.105-.895-2-2-2zM6 6h5v5H6V6zm4.5 13C9.12 19 8 17.88 8 16.5S9.12 14 10.5 14s2.5 1.12 2.5 2.5-1.12 2.5-2.5 2.5zm3-6l3-5 3 5h-6z\" /></g></svg>,\n\n\tsupports: {\n\t\tcustomClassName: false,\n\t\thtml: false,\n\t\tinserter: false,\n\t},\n\n\tedit() {\n\t\treturn <InnerBlocks />;\n\t},\n\n\tsave() {\n\t\treturn <InnerBlocks.Content />;\n\t},\n};\n","/**\n * External dependencies\n */\nimport { get, times } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { createBlock } from '@wordpress/blocks';\nimport { __ } from '@wordpress/i18n';\nimport { PanelBody, RangeControl } from '@wordpress/components';\nimport { Fragment } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tBlockAlignmentToolbar,\n\tInspectorControls,\n\tRichText,\n} from '@wordpress/editor';\nimport deprecated from '@wordpress/deprecated';\nimport { create } from '@wordpress/rich-text';\n\nexport const name = 'core/text-columns';\n\nexport const settings = {\n\t// Disable insertion as this block is deprecated and ultimately replaced by the Columns block.\n\tsupports: {\n\t\tinserter: false,\n\t},\n\n\ttitle: __( 'Text Columns (deprecated)' ),\n\n\tdescription: __( 'This block is deprecated. Please use the Columns block instead.' ),\n\n\ticon: 'columns',\n\n\tcategory: 'layout',\n\n\tattributes: {\n\t\tcontent: {\n\t\t\ttype: 'array',\n\t\t\tsource: 'query',\n\t\t\tselector: 'p',\n\t\t\tquery: {\n\t\t\t\tchildren: {\n\t\t\t\t\tsource: 'html',\n\t\t\t\t},\n\t\t\t},\n\t\t\tdefault: [\n\t\t\t\t{\n\t\t\t\t\tchildren: create(),\n\t\t\t\t},\n\t\t\t\t{\n\t\t\t\t\tchildren: create(),\n\t\t\t\t},\n\t\t\t],\n\t\t},\n\t\tcolumns: {\n\t\t\ttype: 'number',\n\t\t\tdefault: 2,\n\t\t},\n\t\twidth: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/columns' ],\n\t\t\t\ttransform: ( { className, columns, content, width } ) => (\n\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t'core/columns',\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\talign: ( 'wide' === width || 'full' === width ) ? width : undefined,\n\t\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t\tcolumns,\n\t\t\t\t\t\t},\n\t\t\t\t\t\tcontent.map( ( { children } ) =>\n\t\t\t\t\t\t\tcreateBlock(\n\t\t\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\t\t[ createBlock( 'core/paragraph', { content: children } ) ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t),\n\t\t\t},\n\t\t],\n\t},\n\n\tgetEditWrapperProps( attributes ) {\n\t\tconst { width } = attributes;\n\t\tif ( 'wide' === width || 'full' === width ) {\n\t\t\treturn { 'data-align': width };\n\t\t}\n\t},\n\n\tedit: ( ( { attributes, setAttributes, className } ) => {\n\t\tconst { width, content, columns } = attributes;\n\n\t\tdeprecated( 'The Text Columns block', {\n\t\t\talternative: 'the Columns block',\n\t\t\tplugin: 'Gutenberg',\n\t\t} );\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<BlockAlignmentToolbar\n\t\t\t\t\t\tvalue={ width }\n\t\t\t\t\t\tonChange={ ( nextWidth ) => setAttributes( { width: nextWidth } ) }\n\t\t\t\t\t\tcontrols={ [ 'center', 'wide', 'full' ] }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody>\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={ columns }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { columns: value } ) }\n\t\t\t\t\t\t\tmin={ 2 }\n\t\t\t\t\t\t\tmax={ 4 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<div className={ `${ className } align${ width } columns-${ columns }` }>\n\t\t\t\t\t{ times( columns, ( index ) => {\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<div className=\"wp-block-column\" key={ `column-${ index }` }>\n\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\tvalue={ get( content, [ index, 'children' ] ) }\n\t\t\t\t\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\tcontent: [\n\t\t\t\t\t\t\t\t\t\t\t\t...content.slice( 0, index ),\n\t\t\t\t\t\t\t\t\t\t\t\t{ children: nextContent },\n\t\t\t\t\t\t\t\t\t\t\t\t...content.slice( index + 1 ),\n\t\t\t\t\t\t\t\t\t\t\t],\n\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\tplaceholder={ __( 'New Column' ) }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t);\n\t\t\t\t\t} ) }\n\t\t\t\t</div>\n\t\t\t</Fragment>\n\t\t);\n\t} ),\n\n\tsave( { attributes } ) {\n\t\tconst { width, content, columns } = attributes;\n\t\treturn (\n\t\t\t<div className={ `align${ width } columns-${ columns }` }>\n\t\t\t\t{ times( columns, ( index ) =>\n\t\t\t\t\t<div className=\"wp-block-column\" key={ `column-${ index }` }>\n\t\t\t\t\t\t<RichText.Content tagName=\"p\" value={ get( content, [ index, 'children' ] ) } />\n\t\t\t\t\t</div>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t);\n\t},\n};\n","/**\n * WordPress\n */\nimport { __ } from '@wordpress/i18n';\nimport { Fragment } from '@wordpress/element';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tRichText,\n\tBlockControls,\n\tAlignmentToolbar,\n} from '@wordpress/editor';\n\nexport const name = 'core/verse';\n\nexport const settings = {\n\ttitle: __( 'Verse' ),\n\n\tdescription: __( 'A block for haiku? Why not? Blocks for all the things! (See what we did here?)' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M3 17v4h4l11-11-4-4L3 17zm3 2H5v-1l9-9 1 1-9 9zM21 6l-3-3h-1l-2 2 4 4 2-2V6z\" /></svg>,\n\n\tcategory: 'formatting',\n\n\tkeywords: [ __( 'poetry' ) ],\n\n\tattributes: {\n\t\tcontent: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'pre',\n\t\t},\n\t\ttextAlign: {\n\t\t\ttype: 'string',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/verse', attributes ),\n\t\t\t},\n\t\t],\n\t\tto: [\n\t\t\t{\n\t\t\t\ttype: 'block',\n\t\t\t\tblocks: [ 'core/paragraph' ],\n\t\t\t\ttransform: ( attributes ) =>\n\t\t\t\t\tcreateBlock( 'core/paragraph', attributes ),\n\t\t\t},\n\t\t],\n\t},\n\n\tedit( { attributes, setAttributes, className, mergeBlocks } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<AlignmentToolbar\n\t\t\t\t\t\tvalue={ textAlign }\n\t\t\t\t\t\tonChange={ ( nextAlign ) => {\n\t\t\t\t\t\t\tsetAttributes( { textAlign: nextAlign } );\n\t\t\t\t\t\t} }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"pre\"\n\t\t\t\t\tvalue={ content }\n\t\t\t\t\tonChange={ ( nextContent ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tcontent: nextContent,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\tstyle={ { textAlign: textAlign } }\n\t\t\t\t\tplaceholder={ __( 'Write…' ) }\n\t\t\t\t\twrapperClassName={ className }\n\t\t\t\t\tonMerge={ mergeBlocks }\n\t\t\t\t/>\n\t\t\t</Fragment>\n\t\t);\n\t},\n\n\tsave( { attributes, className } ) {\n\t\tconst { textAlign, content } = attributes;\n\n\t\treturn (\n\t\t\t<RichText.Content\n\t\t\t\ttagName=\"pre\"\n\t\t\t\tclassName={ className }\n\t\t\t\tstyle={ { textAlign: textAlign } }\n\t\t\t\tvalue={ content }\n\t\t\t/>\n\t\t);\n\t},\n\n\tmerge( attributes, attributesToMerge ) {\n\t\treturn {\n\t\t\tcontent: attributes.content + attributesToMerge.content,\n\t\t};\n\t},\n};\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tIconButton,\n\tPanelBody,\n\tSelectControl,\n\tToolbar,\n\tToggleControl,\n\twithNotices,\n} from '@wordpress/components';\nimport { Component, Fragment, createRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tRichText,\n\tmediaUpload,\n} from '@wordpress/editor';\nimport { getBlobByURL } from '@wordpress/blob';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\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.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 && src.indexOf( 'blob:' ) === 0 ) {\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\t}\n\n\trender() {\n\t\tconst {\n\t\t\tautoplay,\n\t\t\tcaption,\n\t\t\tcontrols,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tposter,\n\t\t\tpreload,\n\t\t\tsrc,\n\t\t} = this.props.attributes;\n\t\tconst { setAttributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { editing } = this.state;\n\t\tconst switchToEditing = () => {\n\t\t\tthis.setState( { editing: true } );\n\t\t};\n\t\tconst onSelectVideo = ( media ) => {\n\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t// in this case there was an error and we should continue in the editing state\n\t\t\t\t// previous attributes should be removed because they may be temporary blob urls\n\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\tswitchToEditing();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// sets the block's attribute and updates the edit component from the\n\t\t\t// selected media, then switches off the editing UI\n\t\t\tsetAttributes( { src: media.url, id: media.id } );\n\t\t\tthis.setState( { src: media.url, editing: false } );\n\t\t};\n\n\t\tif ( editing ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon=\"media-video\"\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'Video' ),\n\t\t\t\t\t\tname: __( 'a video' ),\n\t\t\t\t\t} }\n\t\t\t\t\tclassName={ className }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ this.onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ this.props.attributes }\n\t\t\t\t\tnotices={ noticeUI }\n\t\t\t\t\tonError={ noticeOperations.createErrorNotice }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\t/* eslint-disable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t\treturn (\n\t\t\t<Fragment>\n\t\t\t\t<BlockControls>\n\t\t\t\t\t<Toolbar>\n\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\tclassName=\"components-icon-button components-toolbar__control\"\n\t\t\t\t\t\t\tlabel={ __( 'Edit video' ) }\n\t\t\t\t\t\t\tonClick={ switchToEditing }\n\t\t\t\t\t\t\ticon=\"edit\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Toolbar>\n\t\t\t\t</BlockControls>\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Video Settings' ) }>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Loop' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'loop' ) }\n\t\t\t\t\t\t\tchecked={ loop }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Muted' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'muted' ) }\n\t\t\t\t\t\t\tchecked={ muted }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\tlabel={ __( 'Playback Controls' ) }\n\t\t\t\t\t\t\tonChange={ this.toggleAttribute( 'controls' ) }\n\t\t\t\t\t\t\tchecked={ controls }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\tlabel={ __( 'Preload' ) }\n\t\t\t\t\t\t\tvalue={ preload }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { preload: value } ) }\n\t\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t\t{ value: 'none', label: __( 'None' ) },\n\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\tclassName=\"editor-video-poster-control\"\n\t\t\t\t\t\t\tlabel={ __( 'Poster Image' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select Poster Image' ) }\n\t\t\t\t\t\t\t\tonSelect={ this.onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button isDefault onClick={ open }>\n\t\t\t\t\t\t\t\t\t\t{ ! this.props.attributes.poster ? __( 'Select Poster Image' ) : __( 'Replace image' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t{ !! this.props.attributes.poster &&\n\t\t\t\t\t\t\t\t<Button onClick={ this.onRemovePoster } isLink isDestructive>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove Poster Image' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t\t<figure className={ className }>\n\t\t\t\t\t{ /*\n\t\t\t\t\t\tDisable the video tag so the user clicking on it won't play the\n\t\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t\t*/ }\n\t\t\t\t\t<Disabled>\n\t\t\t\t\t\t<video\n\t\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\t\tref={ this.videoPlayer }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</Disabled>\n\t\t\t\t\t{ ( ! RichText.isEmpty( caption ) || isSelected ) && (\n\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\ttagName=\"figcaption\"\n\t\t\t\t\t\t\tplaceholder={ __( 'Write caption…' ) }\n\t\t\t\t\t\t\tvalue={ caption }\n\t\t\t\t\t\t\tonChange={ ( value ) => setAttributes( { caption: value } ) }\n\t\t\t\t\t\t\tinlineToolbar\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</figure>\n\t\t\t</Fragment>\n\t\t);\n\t\t/* eslint-enable jsx-a11y/no-static-element-interactions, jsx-a11y/onclick-has-role, jsx-a11y/click-events-have-key-events */\n\t}\n}\n\nexport default withNotices( VideoEdit );\n","/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { RichText } from '@wordpress/editor';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\n\n/**\n * Internal dependencies\n */\nimport edit from './edit';\n\nexport const name = 'core/video';\n\nexport const settings = {\n\ttitle: __( 'Video' ),\n\n\tdescription: __( 'Embed a video file and a simple video player.' ),\n\n\ticon: <svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path fill=\"none\" d=\"M0 0h24v24H0V0z\" /><path d=\"M4 6l2 4h14v8H4V6m18-2h-4l2 4h-3l-2-4h-2l2 4h-3l-2-4H8l2 4H7L5 4H4L2 6v12l2 2h16l2-2V4z\" /></svg>,\n\n\tkeywords: [ __( 'movie' ) ],\n\n\tcategory: 'common',\n\n\tattributes: {\n\t\tautoplay: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'autoplay',\n\t\t},\n\t\tcaption: {\n\t\t\tsource: 'html',\n\t\t\tselector: 'figcaption',\n\t\t},\n\t\tcontrols: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'controls',\n\t\t\tdefault: true,\n\t\t},\n\t\tid: {\n\t\t\ttype: 'number',\n\t\t},\n\t\tloop: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'loop',\n\t\t},\n\t\tmuted: {\n\t\t\ttype: 'boolean',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'muted',\n\t\t},\n\t\tposter: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'poster',\n\t\t},\n\t\tpreload: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'preload',\n\t\t\tdefault: 'metadata',\n\t\t},\n\t\tsrc: {\n\t\t\ttype: 'string',\n\t\t\tsource: 'attribute',\n\t\t\tselector: 'video',\n\t\t\tattribute: 'src',\n\t\t},\n\t},\n\n\ttransforms: {\n\t\tfrom: [\n\t\t\t{\n\t\t\t\ttype: 'files',\n\t\t\t\tisMatch( files ) {\n\t\t\t\t\treturn files.length === 1 && files[ 0 ].type.indexOf( 'video/' ) === 0;\n\t\t\t\t},\n\t\t\t\ttransform( files ) {\n\t\t\t\t\tconst file = files[ 0 ];\n\t\t\t\t\t// We don't need to upload the media directly here\n\t\t\t\t\t// It's already done as part of the `componentDidMount`\n\t\t\t\t\t// in the video block\n\t\t\t\t\tconst block = createBlock( 'core/video', {\n\t\t\t\t\t\tsrc: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t\treturn block;\n\t\t\t\t},\n\t\t\t},\n\t\t],\n\t},\n\n\tsupports: {\n\t\talign: true,\n\t},\n\n\tedit,\n\n\tsave( { attributes } ) {\n\t\tconst { autoplay, caption, controls, loop, muted, poster, preload, src } = attributes;\n\t\treturn (\n\t\t\t<figure>\n\t\t\t\t{ src && (\n\t\t\t\t\t<video\n\t\t\t\t\t\tautoPlay={ autoplay }\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tloop={ loop }\n\t\t\t\t\t\tmuted={ muted }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tpreload={ preload !== 'metadata' ? preload : undefined }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! RichText.isEmpty( caption ) && (\n\t\t\t\t\t<RichText.Content tagName=\"figcaption\" value={ caption } />\n\t\t\t\t) }\n\t\t\t</figure>\n\t\t);\n\t},\n};\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar classNames = (function () {\n\t\t// don't inherit from Object so we can skip hasOwnProperty check later\n\t\t// http://stackoverflow.com/questions/15518328/creating-js-object-with-object-createnull#answer-21079232\n\t\tfunction StorageObject() {}\n\t\tStorageObject.prototype = Object.create(null);\n\n\t\tfunction _parseArray (resultSet, array) {\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\t_parse(resultSet, array[i]);\n\t\t\t}\n\t\t}\n\n\t\tvar hasOwn = {}.hasOwnProperty;\n\n\t\tfunction _parseNumber (resultSet, num) {\n\t\t\tresultSet[num] = true;\n\t\t}\n\n\t\tfunction _parseObject (resultSet, object) {\n\t\t\tfor (var k in object) {\n\t\t\t\tif (hasOwn.call(object, k)) {\n\t\t\t\t\t// set value to false instead of deleting it to avoid changing object structure\n\t\t\t\t\t// https://www.smashingmagazine.com/2012/11/writing-fast-memory-efficient-javascript/#de-referencing-misconceptions\n\t\t\t\t\tresultSet[k] = !!object[k];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tvar SPACE = /\\s+/;\n\t\tfunction _parseString (resultSet, str) {\n\t\t\tvar array = str.split(SPACE);\n\t\t\tvar length = array.length;\n\n\t\t\tfor (var i = 0; i < length; ++i) {\n\t\t\t\tresultSet[array[i]] = true;\n\t\t\t}\n\t\t}\n\n\t\tfunction _parse (resultSet, arg) {\n\t\t\tif (!arg) return;\n\t\t\tvar argType = typeof arg;\n\n\t\t\t// 'foo bar'\n\t\t\tif (argType === 'string') {\n\t\t\t\t_parseString(resultSet, arg);\n\n\t\t\t// ['foo', 'bar', ...]\n\t\t\t} else if (Array.isArray(arg)) {\n\t\t\t\t_parseArray(resultSet, arg);\n\n\t\t\t// { 'foo': true, ... }\n\t\t\t} else if (argType === 'object') {\n\t\t\t\t_parseObject(resultSet, arg);\n\n\t\t\t// '130'\n\t\t\t} else if (argType === 'number') {\n\t\t\t\t_parseNumber(resultSet, arg);\n\t\t\t}\n\t\t}\n\n\t\tfunction _classNames () {\n\t\t\t// don't leak arguments\n\t\t\t// https://github.com/petkaantonov/bluebird/wiki/Optimization-killers#32-leaking-arguments\n\t\t\tvar len = arguments.length;\n\t\t\tvar args = Array(len);\n\t\t\tfor (var i = 0; i < len; i++) {\n\t\t\t\targs[i] = arguments[i];\n\t\t\t}\n\n\t\t\tvar classSet = new StorageObject();\n\t\t\t_parseArray(classSet, args);\n\n\t\t\tvar list = [];\n\n\t\t\tfor (var k in classSet) {\n\t\t\t\tif (classSet[k]) {\n\t\t\t\t\tlist.push(k)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn list.join(' ');\n\t\t}\n\n\t\treturn _classNames;\n\t})();\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","/*!\n Copyright (c) 2017 Jed Watson.\n Licensed under the MIT License (MIT), see\n http://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = [];\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (!arg) continue;\n\n\t\t\tvar argType = typeof arg;\n\n\t\t\tif (argType === 'string' || argType === 'number') {\n\t\t\t\tclasses.push(arg);\n\t\t\t} else if (Array.isArray(arg) && arg.length) {\n\t\t\t\tvar inner = classNames.apply(null, arg);\n\t\t\t\tif (inner) {\n\t\t\t\t\tclasses.push(inner);\n\t\t\t\t}\n\t\t\t} else if (argType === 'object') {\n\t\t\t\tfor (var key in arg) {\n\t\t\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\t\t\tclasses.push(key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\treturn classes.join(' ');\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","module.exports = function memize( fn, options ) {\n\tvar size = 0,\n\t\tmaxSize, head, tail;\n\n\tif ( options && options.maxSize ) {\n\t\tmaxSize = options.maxSize;\n\t}\n\n\tfunction memoized( /* ...args */ ) {\n\t\tvar node = head,\n\t\t\tlen = arguments.length,\n\t\t\targs, i;\n\n\t\tsearchCache: while ( node ) {\n\t\t\t// Perform a shallow equality test to confirm that whether the node\n\t\t\t// under test is a candidate for the arguments passed. Two arrays\n\t\t\t// are shallowly equal if their length matches and each entry is\n\t\t\t// strictly equal between the two sets. Avoid abstracting to a\n\t\t\t// function which could incur an arguments leaking deoptimization.\n\n\t\t\t// Check whether node arguments match arguments length\n\t\t\tif ( node.args.length !== arguments.length ) {\n\t\t\t\tnode = node.next;\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Check whether node arguments match arguments values\n\t\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\t\tif ( node.args[ i ] !== arguments[ i ] ) {\n\t\t\t\t\tnode = node.next;\n\t\t\t\t\tcontinue searchCache;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// At this point we can assume we've found a match\n\n\t\t\t// Surface matched node to head if not already\n\t\t\tif ( node !== head ) {\n\t\t\t\t// As tail, shift to previous. Must only shift if not also\n\t\t\t\t// head, since if both head and tail, there is no previous.\n\t\t\t\tif ( node === tail ) {\n\t\t\t\t\ttail = node.prev;\n\t\t\t\t}\n\n\t\t\t\t// Adjust siblings to point to each other. If node was tail,\n\t\t\t\t// this also handles new tail's empty `next` assignment.\n\t\t\t\tnode.prev.next = node.next;\n\t\t\t\tif ( node.next ) {\n\t\t\t\t\tnode.next.prev = node.prev;\n\t\t\t\t}\n\n\t\t\t\tnode.next = head;\n\t\t\t\tnode.prev = null;\n\t\t\t\thead.prev = node;\n\t\t\t\thead = node;\n\t\t\t}\n\n\t\t\t// Return immediately\n\t\t\treturn node.val;\n\t\t}\n\n\t\t// No cached value found. Continue to insertion phase:\n\n\t\t// Create a copy of arguments (avoid leaking deoptimization)\n\t\targs = new Array( len );\n\t\tfor ( i = 0; i < len; i++ ) {\n\t\t\targs[ i ] = arguments[ i ];\n\t\t}\n\n\t\tnode = {\n\t\t\targs: args,\n\n\t\t\t// Generate the result from original function\n\t\t\tval: fn.apply( null, args )\n\t\t};\n\n\t\t// Don't need to check whether node is already head, since it would\n\t\t// have been returned above already if it was\n\n\t\t// Shift existing head down list\n\t\tif ( head ) {\n\t\t\thead.prev = node;\n\t\t\tnode.next = head;\n\t\t} else {\n\t\t\t// If no head, follows that there's no tail (at initial or reset)\n\t\t\ttail = node;\n\t\t}\n\n\t\t// Trim tail if we're reached max size and are pending cache insertion\n\t\tif ( size === maxSize ) {\n\t\t\ttail = tail.prev;\n\t\t\ttail.next = null;\n\t\t} else {\n\t\t\tsize++;\n\t\t}\n\n\t\thead = node;\n\n\t\treturn node.val;\n\t}\n\n\tmemoized.clear = function() {\n\t\thead = null;\n\t\ttail = null;\n\t\tsize = 0;\n\t};\n\n\tif ( process.env.NODE_ENV === 'test' ) {\n\t\t// Cache is not exposed in the public API, but used in tests to ensure\n\t\t// expected list progression\n\t\tmemoized.getCache = function() {\n\t\t\treturn [ head, tail, size ];\n\t\t};\n\t}\n\n\treturn memoized;\n};\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's <n,i> state to <m,0>,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see <https://mathiasbynens.be/notes/javascript-encoding>\n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return map(objectKeys(obj), function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (isArray(obj[k])) {\n return map(obj[k], function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n\nfunction map (xs, f) {\n if (xs.map) return xs.map(f);\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n res.push(f(xs[i], i));\n }\n return res;\n}\n\nvar objectKeys = Object.keys || function (obj) {\n var res = [];\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) res.push(key);\n }\n return res;\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar punycode = require('punycode');\nvar util = require('./util');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // Special case for a simple path URL\n simplePathPattern = /^(\\/\\/?(?!\\/)[^\\?\\s]*)(\\?[^\\s]*)?$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && util.isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!util.isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n // Copy chrome, IE, opera backslash-handling behavior.\n // Back slashes before the query string get converted to forward slashes\n // See: https://code.google.com/p/chromium/issues/detail?id=25916\n var queryIndex = url.indexOf('?'),\n splitter =\n (queryIndex !== -1 && queryIndex < url.indexOf('#')) ? '?' : '#',\n uSplit = url.split(splitter),\n slashRegex = /\\\\/g;\n uSplit[0] = uSplit[0].replace(slashRegex, '/');\n url = uSplit.join(splitter);\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n if (!slashesDenoteHost && url.split('#').length === 1) {\n // Try fast path regexp\n var simplePath = simplePathPattern.exec(rest);\n if (simplePath) {\n this.path = rest;\n this.href = rest;\n this.pathname = simplePath[1];\n if (simplePath[2]) {\n this.search = simplePath[2];\n if (parseQueryString) {\n this.query = querystring.parse(this.search.substr(1));\n } else {\n this.query = this.search.substr(1);\n }\n } else if (parseQueryString) {\n this.search = '';\n this.query = {};\n }\n return this;\n }\n }\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a punycoded representation of \"domain\".\n // It only converts parts of the domain name that\n // have non-ASCII characters, i.e. it doesn't matter if\n // you call it with a domain that already is ASCII-only.\n this.hostname = punycode.toASCII(this.hostname);\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n if (rest.indexOf(ae) === -1)\n continue;\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (util.isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n util.isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (util.isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n var tkeys = Object.keys(this);\n for (var tk = 0; tk < tkeys.length; tk++) {\n var tkey = tkeys[tk];\n result[tkey] = this[tkey];\n }\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n var rkeys = Object.keys(relative);\n for (var rk = 0; rk < rkeys.length; rk++) {\n var rkey = rkeys[rk];\n if (rkey !== 'protocol')\n result[rkey] = relative[rkey];\n }\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n var keys = Object.keys(relative);\n for (var v = 0; v < keys.length; v++) {\n var k = keys[v];\n result[k] = relative[k];\n }\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!util.isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host || srcPath.length > 1) &&\n (last === '.' || last === '..') || last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last === '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especially happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!util.isNull(result.pathname) || !util.isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n","'use strict';\n\nmodule.exports = {\n isString: function(arg) {\n return typeof(arg) === 'string';\n },\n isObject: function(arg) {\n return typeof(arg) === 'object' && arg !== null;\n },\n isNull: function(arg) {\n return arg === null;\n },\n isNullOrUndefined: function(arg) {\n return arg == null;\n }\n};\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\tmodule.deprecate = function() {};\n\t\tmodule.paths = [];\n\t\t// module.parent = undefined by default\n\t\tif (!module.children) module.children = [];\n\t\tObject.defineProperty(module, \"loaded\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.l;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(module, \"id\", {\n\t\t\tenumerable: true,\n\t\t\tget: function() {\n\t\t\t\treturn module.i;\n\t\t\t}\n\t\t});\n\t\tmodule.webpackPolyfill = 1;\n\t}\n\treturn module;\n};\n","(function() { module.exports = this[\"wp\"][\"autop\"]; }());","(function() { module.exports = this[\"wp\"][\"blob\"]; }());","(function() { module.exports = this[\"wp\"][\"blocks\"]; }());","(function() { module.exports = this[\"wp\"][\"components\"]; }());","(function() { module.exports = this[\"wp\"][\"compose\"]; }());","(function() { module.exports = this[\"wp\"][\"coreData\"]; }());","(function() { module.exports = this[\"wp\"][\"data\"]; }());","(function() { module.exports = this[\"wp\"][\"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\"]; }());","(function() { module.exports = this[\"moment\"]; }());"],"sourceRoot":""}