UNPKG

16 kBSource Map (JSON)View Raw
1{"version":3,"sources":["@wordpress/block-library/src/video/edit.js"],"names":["ALLOWED_MEDIA_TYPES","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","arguments","state","editing","props","attributes","src","videoPlayer","posterImageButton","toggleAttribute","bind","onSelectURL","onSelectPoster","onRemovePoster","noticeOperations","setAttributes","id","file","filesList","onFileChange","url","onError","message","setState","createErrorNotice","allowedTypes","prevProps","poster","current","load","attribute","newValue","newSrc","embedBlock","undefined","onReplace","image","focus","autoplay","caption","controls","loop","muted","preload","isSelected","className","noticeUI","switchToEditing","onSelectVideo","media","icon","value","label","open","RichText","isEmpty","Component"],"mappings":";;;;;;;;;AAyBA;;;;;;;;;;;;;;;;;;AAtBA;;AACA;;AAWA;;AASA;;AAEA;;AAKA;;AACA;;AAhCA;;;;AA4BA;;;AAMA,IAAMA,mBAAmB,GAAG,CAAE,OAAF,CAA5B;AACA,IAAMC,gCAAgC,GAAG,CAAE,OAAF,CAAzC;;IAEMC,S;;;;;AACL,uBAAc;AAAA;;AAAA;AACb,gHAAUC,SAAV,GADa,CAEb;AACA;;AACA,UAAKC,KAAL,GAAa;AACZC,MAAAA,OAAO,EAAE,CAAE,MAAKC,KAAL,CAAWC,UAAX,CAAsBC;AADrB,KAAb;AAIA,UAAKC,WAAL,GAAmB,yBAAnB;AACA,UAAKC,iBAAL,GAAyB,yBAAzB;AACA,UAAKC,eAAL,GAAuB,MAAKA,eAAL,CAAqBC,IAArB,mFAAvB;AACA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBD,IAAjB,mFAAnB;AACA,UAAKE,cAAL,GAAsB,MAAKA,cAAL,CAAoBF,IAApB,mFAAtB;AACA,UAAKG,cAAL,GAAsB,MAAKA,cAAL,CAAoBH,IAApB,mFAAtB;AAba;AAcb;;;;wCAEmB;AAAA;;AAAA,wBACqC,KAAKN,KAD1C;AAAA,UACXC,UADW,eACXA,UADW;AAAA,UACCS,gBADD,eACCA,gBADD;AAAA,UACmBC,aADnB,eACmBA,aADnB;AAAA,UAEXC,EAFW,GAEMX,UAFN,CAEXW,EAFW;AAAA,4BAEMX,UAFN,CAEPC,GAFO;AAAA,UAEPA,GAFO,gCAED,EAFC;;AAGnB,UAAK,CAAEU,EAAF,IAAQ,qBAAWV,GAAX,CAAb,EAAgC;AAC/B,YAAMW,IAAI,GAAG,wBAAcX,GAAd,CAAb;;AACA,YAAKW,IAAL,EAAY;AACX,mCAAa;AACZC,YAAAA,SAAS,EAAE,CAAED,IAAF,CADC;AAEZE,YAAAA,YAAY,EAAE,4BAAmB;AAAA;AAAA,kBAAbC,GAAa,YAAbA,GAAa;;AAChCL,cAAAA,aAAa,CAAE;AAAET,gBAAAA,GAAG,EAAEc;AAAP,eAAF,CAAb;AACA,aAJW;AAKZC,YAAAA,OAAO,EAAE,iBAAEC,OAAF,EAAe;AACvB,cAAA,MAAI,CAACC,QAAL,CAAe;AAAEpB,gBAAAA,OAAO,EAAE;AAAX,eAAf;;AACAW,cAAAA,gBAAgB,CAACU,iBAAjB,CAAoCF,OAApC;AACA,aARW;AASZG,YAAAA,YAAY,EAAE3B;AATF,WAAb;AAWA;AACD;AACD;;;uCAEmB4B,S,EAAY;AAC/B,UAAK,KAAKtB,KAAL,CAAWC,UAAX,CAAsBsB,MAAtB,KAAiCD,SAAS,CAACrB,UAAV,CAAqBsB,MAA3D,EAAoE;AACnE,aAAKpB,WAAL,CAAiBqB,OAAjB,CAAyBC,IAAzB;AACA;AACD;;;oCAEgBC,S,EAAY;AAAA;;AAC5B,aAAO,UAAEC,QAAF,EAAgB;AACtB,QAAA,MAAI,CAAC3B,KAAL,CAAWW,aAAX,mCAA8Be,SAA9B,EAA2CC,QAA3C;AACA,OAFD;AAGA;;;gCAEYC,M,EAAS;AAAA,yBACiB,KAAK5B,KADtB;AAAA,UACbC,UADa,gBACbA,UADa;AAAA,UACDU,aADC,gBACDA,aADC;AAAA,UAEbT,GAFa,GAELD,UAFK,CAEbC,GAFa,EAIrB;AACA;;AACA,UAAK0B,MAAM,KAAK1B,GAAhB,EAAsB;AACrB;AACA,YAAM2B,UAAU,GAAG,oCAClB;AAAE5B,UAAAA,UAAU,EAAE;AAAEe,YAAAA,GAAG,EAAEY;AAAP;AAAd,SADkB,CAAnB;;AAGA,YAAKE,SAAS,KAAKD,UAAnB,EAAgC;AAC/B,eAAK7B,KAAL,CAAW+B,SAAX,CAAsBF,UAAtB;AACA;AACA;;AACDlB,QAAAA,aAAa,CAAE;AAAET,UAAAA,GAAG,EAAE0B,MAAP;AAAehB,UAAAA,EAAE,EAAEkB;AAAnB,SAAF,CAAb;AACA;;AAED,WAAKX,QAAL,CAAe;AAAEpB,QAAAA,OAAO,EAAE;AAAX,OAAf;AACA;;;mCAEeiC,K,EAAQ;AAAA,UACfrB,aADe,GACG,KAAKX,KADR,CACfW,aADe;AAEvBA,MAAAA,aAAa,CAAE;AAAEY,QAAAA,MAAM,EAAES,KAAK,CAAChB;AAAhB,OAAF,CAAb;AACA;;;qCAEgB;AAAA,UACRL,aADQ,GACU,KAAKX,KADf,CACRW,aADQ;AAEhBA,MAAAA,aAAa,CAAE;AAAEY,QAAAA,MAAM,EAAE;AAAV,OAAF,CAAb,CAFgB,CAIhB;;AACA,WAAKnB,iBAAL,CAAuBoB,OAAvB,CAA+BS,KAA/B;AACA;;;6BAEQ;AAAA;;AAAA,kCAUJ,KAAKjC,KAAL,CAAWC,UAVP;AAAA,UAEPiC,QAFO,yBAEPA,QAFO;AAAA,UAGPC,OAHO,yBAGPA,OAHO;AAAA,UAIPC,QAJO,yBAIPA,QAJO;AAAA,UAKPC,IALO,yBAKPA,IALO;AAAA,UAMPC,KANO,yBAMPA,KANO;AAAA,UAOPf,MAPO,yBAOPA,MAPO;AAAA,UAQPgB,OARO,yBAQPA,OARO;AAAA,UASPrC,GATO,yBASPA,GATO;AAAA,yBAWqE,KAAKF,KAX1E;AAAA,UAWAW,aAXA,gBAWAA,aAXA;AAAA,UAWe6B,UAXf,gBAWeA,UAXf;AAAA,UAW2BC,SAX3B,gBAW2BA,SAX3B;AAAA,UAWsC/B,gBAXtC,gBAWsCA,gBAXtC;AAAA,UAWwDgC,QAXxD,gBAWwDA,QAXxD;AAAA,UAYA3C,OAZA,GAYY,KAAKD,KAZjB,CAYAC,OAZA;;AAaR,UAAM4C,eAAe,GAAG,SAAlBA,eAAkB,GAAM;AAC7B,QAAA,MAAI,CAACxB,QAAL,CAAe;AAAEpB,UAAAA,OAAO,EAAE;AAAX,SAAf;AACA,OAFD;;AAGA,UAAM6C,aAAa,GAAG,SAAhBA,aAAgB,CAAEC,KAAF,EAAa;AAClC,YAAK,CAAEA,KAAF,IAAW,CAAEA,KAAK,CAAC7B,GAAxB,EAA8B;AAC7B;AACA;AACAL,UAAAA,aAAa,CAAE;AAAET,YAAAA,GAAG,EAAE4B,SAAP;AAAkBlB,YAAAA,EAAE,EAAEkB;AAAtB,WAAF,CAAb;AACAa,UAAAA,eAAe;AACf;AACA,SAPiC,CAQlC;AACA;;;AACAhC,QAAAA,aAAa,CAAE;AAAET,UAAAA,GAAG,EAAE2C,KAAK,CAAC7B,GAAb;AAAkBJ,UAAAA,EAAE,EAAEiC,KAAK,CAACjC;AAA5B,SAAF,CAAb;;AACA,QAAA,MAAI,CAACO,QAAL,CAAe;AAAEjB,UAAAA,GAAG,EAAE2C,KAAK,CAAC7B,GAAb;AAAkBjB,UAAAA,OAAO,EAAE;AAA3B,SAAf;AACA,OAZD;;AAcA,UAAKA,OAAL,EAAe;AACd,eACC,4BAAC,6BAAD;AACC,UAAA,IAAI,EAAG,4BAAC,sBAAD;AAAW,YAAA,IAAI,EAAG+C;AAAlB,YADR;AAEC,UAAA,SAAS,EAAGL,SAFb;AAGC,UAAA,QAAQ,EAAGG,aAHZ;AAIC,UAAA,WAAW,EAAG,KAAKrC,WAJpB;AAKC,UAAA,MAAM,EAAC,SALR;AAMC,UAAA,YAAY,EAAGb,mBANhB;AAOC,UAAA,KAAK,EAAG,KAAKM,KAAL,CAAWC,UAPpB;AAQC,UAAA,OAAO,EAAGyC,QARX;AASC,UAAA,OAAO,EAAGhC,gBAAgB,CAACU;AAT5B,UADD;AAaA;AAED;;;AACA,aACC,4BAAC,iBAAD,QACC,4BAAC,0BAAD,QACC,4BAAC,mBAAD,QACC,4BAAC,sBAAD;AACC,QAAA,SAAS,EAAC,oDADX;AAEC,QAAA,KAAK,EAAG,cAAI,YAAJ,CAFT;AAGC,QAAA,OAAO,EAAGuB,eAHX;AAIC,QAAA,IAAI,EAAC;AAJN,QADD,CADD,CADD,EAWC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,QAAA,KAAK,EAAG,cAAI,gBAAJ;AAAnB,SACC,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAG,cAAI,UAAJ,CADT;AAEC,QAAA,QAAQ,EAAG,KAAKtC,eAAL,CAAsB,UAAtB,CAFZ;AAGC,QAAA,OAAO,EAAG6B;AAHX,QADD,EAMC,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAG,cAAI,MAAJ,CADT;AAEC,QAAA,QAAQ,EAAG,KAAK7B,eAAL,CAAsB,MAAtB,CAFZ;AAGC,QAAA,OAAO,EAAGgC;AAHX,QAND,EAWC,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,QAAA,QAAQ,EAAG,KAAKhC,eAAL,CAAsB,OAAtB,CAFZ;AAGC,QAAA,OAAO,EAAGiC;AAHX,QAXD,EAgBC,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAG,cAAI,mBAAJ,CADT;AAEC,QAAA,QAAQ,EAAG,KAAKjC,eAAL,CAAsB,UAAtB,CAFZ;AAGC,QAAA,OAAO,EAAG+B;AAHX,QAhBD,EAqBC,4BAAC,yBAAD;AACC,QAAA,KAAK,EAAG,cAAI,SAAJ,CADT;AAEC,QAAA,KAAK,EAAGG,OAFT;AAGC,QAAA,QAAQ,EAAG,kBAAEQ,KAAF;AAAA,iBAAapC,aAAa,CAAE;AAAE4B,YAAAA,OAAO,EAAEQ;AAAX,WAAF,CAA1B;AAAA,SAHZ;AAIC,QAAA,OAAO,EAAG,CACT;AAAEA,UAAAA,KAAK,EAAE,MAAT;AAAiBC,UAAAA,KAAK,EAAE,cAAI,MAAJ;AAAxB,SADS,EAET;AAAED,UAAAA,KAAK,EAAE,UAAT;AAAqBC,UAAAA,KAAK,EAAE,cAAI,UAAJ;AAA5B,SAFS,EAGT;AAAED,UAAAA,KAAK,EAAE,MAAT;AAAiBC,UAAAA,KAAK,EAAE,cAAI,MAAJ;AAAxB,SAHS;AAJX,QArBD,EA+BC,4BAAC,6BAAD,QACC,4BAAC,uBAAD;AACC,QAAA,SAAS,EAAC,6BADX;AAEC,QAAA,KAAK,EAAG,cAAI,cAAJ;AAFT,SAIC,4BAAC,wBAAD;AACC,QAAA,KAAK,EAAG,cAAI,qBAAJ,CADT;AAEC,QAAA,QAAQ,EAAG,KAAKxC,cAFjB;AAGC,QAAA,YAAY,EAAGb,gCAHhB;AAIC,QAAA,MAAM,EAAG;AAAA,cAAIsD,IAAJ,SAAIA,IAAJ;AAAA,iBACR,4BAAC,kBAAD;AACC,YAAA,SAAS,MADV;AAEC,YAAA,OAAO,EAAGA,IAFX;AAGC,YAAA,GAAG,EAAG,MAAI,CAAC7C;AAHZ,aAKG,CAAE,MAAI,CAACJ,KAAL,CAAWC,UAAX,CAAsBsB,MAAxB,GAAiC,cAAI,qBAAJ,CAAjC,GAA+D,cAAI,eAAJ,CALlE,CADQ;AAAA;AAJV,QAJD,EAkBG,CAAC,CAAE,KAAKvB,KAAL,CAAWC,UAAX,CAAsBsB,MAAzB,IACD,4BAAC,kBAAD;AAAQ,QAAA,OAAO,EAAG,KAAKd,cAAvB;AAAwC,QAAA,MAAM,MAA9C;AAA+C,QAAA,aAAa;AAA5D,SACG,cAAI,qBAAJ,CADH,CAnBF,CADD,CA/BD,CADD,CAXD,EAuEC;AAAQ,QAAA,SAAS,EAAGgC;AAApB,SAKC,4BAAC,oBAAD,QACC;AACC,QAAA,QAAQ,EAAGL,QADZ;AAEC,QAAA,MAAM,EAAGb,MAFV;AAGC,QAAA,GAAG,EAAGrB,GAHP;AAIC,QAAA,GAAG,EAAG,KAAKC;AAJZ,QADD,CALD,EAaG,CAAE,CAAE+C,sBAASC,OAAT,CAAkBhB,OAAlB,CAAF,IAAiCK,UAAnC,KACD,4BAAC,qBAAD;AACC,QAAA,OAAO,EAAC,YADT;AAEC,QAAA,WAAW,EAAG,cAAI,gBAAJ,CAFf;AAGC,QAAA,KAAK,EAAGL,OAHT;AAIC,QAAA,QAAQ,EAAG,kBAAEY,KAAF;AAAA,iBAAapC,aAAa,CAAE;AAAEwB,YAAAA,OAAO,EAAEY;AAAX,WAAF,CAA1B;AAAA,SAJZ;AAKC,QAAA,aAAa;AALd,QAdF,CAvED,CADD;AAiGA;AACA;;;EArOsBK,kB;;eAwOT,6BAAaxD,SAAb,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tIconButton,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tToolbar,\n\twithNotices,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tRichText,\n} from '@wordpress/block-editor';\nimport { mediaUpload } from '@wordpress/editor';\nimport { Component, Fragment, createRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport icon from './icon';\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nclass VideoEdit extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\t// edit component has its own src in the state so it can be edited\n\t\t// without setting the actual value outside of the edit UI\n\t\tthis.state = {\n\t\t\tediting: ! this.props.attributes.src,\n\t\t};\n\n\t\tthis.videoPlayer = createRef();\n\t\tthis.posterImageButton = createRef();\n\t\tthis.toggleAttribute = this.toggleAttribute.bind( this );\n\t\tthis.onSelectURL = this.onSelectURL.bind( this );\n\t\tthis.onSelectPoster = this.onSelectPoster.bind( this );\n\t\tthis.onRemovePoster = this.onRemovePoster.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, noticeOperations, setAttributes } = this.props;\n\t\tconst { id, src = '' } = attributes;\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ { url } ] ) => {\n\t\t\t\t\t\tsetAttributes( { src: url } );\n\t\t\t\t\t},\n\t\t\t\t\tonError: ( message ) => {\n\t\t\t\t\t\tthis.setState( { editing: true } );\n\t\t\t\t\t\tnoticeOperations.createErrorNotice( message );\n\t\t\t\t\t},\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif ( this.props.attributes.poster !== prevProps.attributes.poster ) {\n\t\t\tthis.videoPlayer.current.load();\n\t\t}\n\t}\n\n\ttoggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tthis.props.setAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tonSelectURL( newSrc ) {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { src } = attributes;\n\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock(\n\t\t\t\t{ attributes: { url: newSrc } }\n\t\t\t);\n\t\t\tif ( undefined !== embedBlock ) {\n\t\t\t\tthis.props.onReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\n\t\tthis.setState( { editing: false } );\n\t}\n\n\tonSelectPoster( image ) {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tonRemovePoster() {\n\t\tconst { setAttributes } = this.props;\n\t\tsetAttributes( { poster: '' } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tthis.posterImageButton.current.focus();\n\t}\n\n\trender() {\n\t\tconst {\n\t\t\tautoplay,\n\t\t\tcaption,\n\t\t\tcontrols,\n\t\t\tloop,\n\t\t\tmuted,\n\t\t\tposter,\n\t\t\tpreload,\n\t\t\tsrc,\n\t\t} = this.props.attributes;\n\t\tconst { setAttributes, isSelected, className, noticeOperations, noticeUI } = this.props;\n\t\tconst { editing } = this.state;\n\t\tconst switchToEditing = () => {\n\t\t\tthis.setState( { editing: true } );\n\t\t};\n\t\tconst onSelectVideo = ( media ) => {\n\t\t\tif ( ! media || ! media.url ) {\n\t\t\t\t// in this case there was an error and we should continue in the editing state\n\t\t\t\t// previous attributes should be removed because they may be temporary blob urls\n\t\t\t\tsetAttributes( { src: undefined, id: undefined } );\n\t\t\t\tswitchToEditing();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// sets the block's attribute and updates the edit component from the\n\t\t\t// selected media, then switches off the editing UI\n\t\t\tsetAttributes( { src: media.url, id: media.id } );\n\t\t\tthis.setState( { src: media.url, editing: false } );\n\t\t};\n\n\t\tif ( editing ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\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<MediaUploadCheck>\n\t\t\t\t\t\t\t<BaseControl\n\t\t\t\t\t\t\t\tclassName=\"editor-video-poster-control\"\n\t\t\t\t\t\t\t\tlabel={ __( 'Poster Image' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\t\ttitle={ __( 'Select Poster Image' ) }\n\t\t\t\t\t\t\t\t\tonSelect={ this.onSelectPoster }\n\t\t\t\t\t\t\t\t\tallowedTypes={ VIDEO_POSTER_ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tisDefault\n\t\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\t\tref={ this.posterImageButton }\n\t\t\t\t\t\t\t\t\t\t>\n\t\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\t</Button>\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{ !! this.props.attributes.poster &&\n\t\t\t\t\t\t\t\t\t<Button onClick={ this.onRemovePoster } isLink isDestructive>\n\t\t\t\t\t\t\t\t\t\t{ __( 'Remove Poster 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</BaseControl>\n\t\t\t\t\t\t</MediaUploadCheck>\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"]}
\No newline at end of file