UNPKG

11.3 kBSource Map (JSON)View Raw
1{"version":3,"sources":["@wordpress/block-library/src/block/edit.js"],"names":["ReusableBlockEdit","reusableBlock","arguments","startEditing","bind","stopEditing","setAttributes","setTitle","save","isTemporary","state","isEditing","title","changedAttributes","props","fetchReusableBlock","setState","attributes","prevState","onUpdateTitle","updateAttributes","block","onSave","clientId","isSelected","isFetching","isSaving","canUpdateBlock","element","name","noop","Component","select","ownProps","getReusableBlock","__experimentalGetReusableBlock","isFetchingReusableBlock","__experimentalIsFetchingReusableBlock","isSavingReusableBlock","__experimentalIsSavingReusableBlock","canUser","getBlock","ref","dispatch","fetchReusableBlocks","__experimentalFetchReusableBlocks","updateReusableBlockTitle","__experimentalUpdateReusableBlockTitle","saveReusableBlock","__experimentalSaveReusableBlock","updateBlockAttributes"],"mappings":";;;;;;;;;AAQA;;;;;;;;;;;;;;;;;;AALA;;AAMA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AAnBA;;;;AAKA;;;;AAUA;;;IAMMA,iB;;;;;AACL,mCAAiC;AAAA;;AAAA,QAAlBC,aAAkB,QAAlBA,aAAkB;AAAA;AAChC,wHAAUC,SAAV;AAEA,UAAKC,YAAL,GAAoB,MAAKA,YAAL,CAAkBC,IAAlB,mFAApB;AACA,UAAKC,WAAL,GAAmB,MAAKA,WAAL,CAAiBD,IAAjB,mFAAnB;AACA,UAAKE,aAAL,GAAqB,MAAKA,aAAL,CAAmBF,IAAnB,mFAArB;AACA,UAAKG,QAAL,GAAgB,MAAKA,QAAL,CAAcH,IAAd,mFAAhB;AACA,UAAKI,IAAL,GAAY,MAAKA,IAAL,CAAUJ,IAAV,mFAAZ;;AAEA,QAAKH,aAAa,IAAIA,aAAa,CAACQ,WAApC,EAAkD;AACjD;AACA,YAAKC,KAAL,GAAa;AACZC,QAAAA,SAAS,EAAE,IADC;AAEZC,QAAAA,KAAK,EAAEX,aAAa,CAACW,KAFT;AAGZC,QAAAA,iBAAiB,EAAE;AAHP,OAAb;AAKA,KAPD,MAOO;AACN;AACA,YAAKH,KAAL,GAAa;AACZC,QAAAA,SAAS,EAAE,KADC;AAEZC,QAAAA,KAAK,EAAE,IAFK;AAGZC,QAAAA,iBAAiB,EAAE;AAHP,OAAb;AAKA;;AAvB+B;AAwBhC;;;;wCAEmB;AACnB,UAAK,CAAE,KAAKC,KAAL,CAAWb,aAAlB,EAAkC;AACjC,aAAKa,KAAL,CAAWC,kBAAX;AACA;AACD;;;mCAEc;AAAA,UACNd,aADM,GACY,KAAKa,KADjB,CACNb,aADM;AAGd,WAAKe,QAAL,CAAe;AACdL,QAAAA,SAAS,EAAE,IADG;AAEdC,QAAAA,KAAK,EAAEX,aAAa,CAACW,KAFP;AAGdC,QAAAA,iBAAiB,EAAE;AAHL,OAAf;AAKA;;;kCAEa;AACb,WAAKG,QAAL,CAAe;AACdL,QAAAA,SAAS,EAAE,KADG;AAEdC,QAAAA,KAAK,EAAE,IAFO;AAGdC,QAAAA,iBAAiB,EAAE;AAHL,OAAf;AAKA;;;kCAEcI,U,EAAa;AAC3B,WAAKD,QAAL,CAAe,UAAEE,SAAF,EAAiB;AAC/B,YAAKA,SAAS,CAACL,iBAAV,KAAgC,IAArC,EAA4C;AAC3C,iBAAO;AAAEA,YAAAA,iBAAiB,kCAAOK,SAAS,CAACL,iBAAjB,EAAuCI,UAAvC;AAAnB,WAAP;AACA;AACD,OAJD;AAKA;;;6BAESL,K,EAAQ;AACjB,WAAKI,QAAL,CAAe;AAAEJ,QAAAA,KAAK,EAALA;AAAF,OAAf;AACA;;;2BAEM;AAAA,wBACoE,KAAKE,KADzE;AAAA,UACEb,aADF,eACEA,aADF;AAAA,UACiBkB,aADjB,eACiBA,aADjB;AAAA,UACgCC,gBADhC,eACgCA,gBADhC;AAAA,UACkDC,KADlD,eACkDA,KADlD;AAAA,UACyDC,MADzD,eACyDA,MADzD;AAAA,wBAE+B,KAAKZ,KAFpC;AAAA,UAEEE,KAFF,eAEEA,KAFF;AAAA,UAESC,iBAFT,eAESA,iBAFT;;AAIN,UAAKD,KAAK,KAAKX,aAAa,CAACW,KAA7B,EAAqC;AACpCO,QAAAA,aAAa,CAAEP,KAAF,CAAb;AACA;;AAEDQ,MAAAA,gBAAgB,CAAEC,KAAK,CAACE,QAAR,EAAkBV,iBAAlB,CAAhB;AACAS,MAAAA,MAAM;AAEN,WAAKjB,WAAL;AACA;;;6BAEQ;AAAA,yBAC2E,KAAKS,KADhF;AAAA,UACAU,UADA,gBACAA,UADA;AAAA,UACYvB,aADZ,gBACYA,aADZ;AAAA,UAC2BoB,KAD3B,gBAC2BA,KAD3B;AAAA,UACkCI,UADlC,gBACkCA,UADlC;AAAA,UAC8CC,QAD9C,gBAC8CA,QAD9C;AAAA,UACwDC,cADxD,gBACwDA,cADxD;AAAA,yBAEwC,KAAKjB,KAF7C;AAAA,UAEAC,SAFA,gBAEAA,SAFA;AAAA,UAEWC,KAFX,gBAEWA,KAFX;AAAA,UAEkBC,iBAFlB,gBAEkBA,iBAFlB;;AAIR,UAAK,CAAEZ,aAAF,IAAmBwB,UAAxB,EAAqC;AACpC,eAAO,4BAAC,uBAAD,QAAa,4BAAC,mBAAD,OAAb,CAAP;AACA;;AAED,UAAK,CAAExB,aAAF,IAAmB,CAAEoB,KAA1B,EAAkC;AACjC,eAAO,4BAAC,uBAAD,QAAe,cAAI,2CAAJ,CAAf,CAAP;AACA;;AAED,UAAIO,OAAO,GACV,4BAAC,sBAAD,6BACM,KAAKd,KADX;AAEC,QAAA,UAAU,EAAGH,SAAS,IAAIa,UAF3B;AAGC,QAAA,QAAQ,EAAGH,KAAK,CAACE,QAHlB;AAIC,QAAA,IAAI,EAAGF,KAAK,CAACQ,IAJd;AAKC,QAAA,UAAU,kCAAQR,KAAK,CAACJ,UAAd,EAA6BJ,iBAA7B,CALX;AAMC,QAAA,aAAa,EAAGF,SAAS,GAAG,KAAKL,aAAR,GAAwBwB;AANlD,SADD;;AAWA,UAAK,CAAEnB,SAAP,EAAmB;AAClBiB,QAAAA,OAAO,GAAG,4BAAC,oBAAD,QAAYA,OAAZ,CAAV;AACA;;AAED,aACC,4BAAC,iBAAD,QACG,CAAEJ,UAAU,IAAIb,SAAhB,KACD,4BAAC,kBAAD;AACC,QAAA,SAAS,EAAGA,SADb;AAEC,QAAA,KAAK,EAAGC,KAAK,KAAK,IAAV,GAAiBA,KAAjB,GAAyBX,aAAa,CAACW,KAFhD;AAGC,QAAA,QAAQ,EAAGc,QAAQ,IAAI,CAAEzB,aAAa,CAACQ,WAHxC;AAIC,QAAA,cAAc,EAAG,CAAEkB,cAJpB;AAKC,QAAA,MAAM,EAAG,KAAKxB,YALf;AAMC,QAAA,aAAa,EAAG,KAAKI,QANtB;AAOC,QAAA,MAAM,EAAG,KAAKC,IAPf;AAQC,QAAA,QAAQ,EAAG,KAAKH;AARjB,QAFF,EAaG,CAAEmB,UAAF,IAAgB,CAAEb,SAAlB,IAA+B,4BAAC,kBAAD;AAAwB,QAAA,KAAK,EAAGV,aAAa,CAACW;AAA9C,QAblC,EAcGgB,OAdH,CADD;AAkBA;;;EA1H8BG,kB;;eA6HjB,sBAAS,CACvB,sBAAY,UAAEC,MAAF,EAAUC,QAAV,EAAwB;AAAA,gBAK/BD,MAAM,CAAE,aAAF,CALyB;AAAA,MAEFE,gBAFE,WAElCC,8BAFkC;AAAA,MAGKC,uBAHL,WAGlCC,qCAHkC;AAAA,MAIGC,qBAJH,WAIlCC,mCAJkC;;AAAA,iBAMfP,MAAM,CAAE,MAAF,CANS;AAAA,MAM3BQ,OAN2B,YAM3BA,OAN2B;;AAAA,iBAS/BR,MAAM,CAAE,mBAAF,CATyB;AAAA,MAQlCS,QARkC,YAQlCA,QARkC;;AAAA,MAU3BC,GAV2B,GAUnBT,QAAQ,CAAChB,UAVU,CAU3ByB,GAV2B;AAWnC,MAAMzC,aAAa,GAAGiC,gBAAgB,CAAEQ,GAAF,CAAtC;AAEA,SAAO;AACNzC,IAAAA,aAAa,EAAbA,aADM;AAENwB,IAAAA,UAAU,EAAEW,uBAAuB,CAAEM,GAAF,CAF7B;AAGNhB,IAAAA,QAAQ,EAAEY,qBAAqB,CAAEI,GAAF,CAHzB;AAINrB,IAAAA,KAAK,EAAEpB,aAAa,GAAGwC,QAAQ,CAAExC,aAAa,CAACsB,QAAhB,CAAX,GAAwC,IAJtD;AAKNI,IAAAA,cAAc,EAAE,CAAC,CAAE1B,aAAH,IAAoB,CAAEA,aAAa,CAACQ,WAApC,IAAmD,CAAC,CAAE+B,OAAO,CAAE,QAAF,EAAY,QAAZ,EAAsBE,GAAtB;AALvE,GAAP;AAOA,CApBD,CADuB,EAsBvB,wBAAc,UAAEC,QAAF,EAAYV,QAAZ,EAA0B;AAAA,kBAKnCU,QAAQ,CAAE,aAAF,CAL2B;AAAA,MAEHC,mBAFG,aAEtCC,iCAFsC;AAAA,MAGEC,wBAHF,aAGtCC,sCAHsC;AAAA,MAILC,iBAJK,aAItCC,+BAJsC;;AAAA,mBAQnCN,QAAQ,CAAE,mBAAF,CAR2B;AAAA,MAOtCO,qBAPsC,cAOtCA,qBAPsC;;AAAA,MAS/BR,GAT+B,GASvBT,QAAQ,CAAChB,UATc,CAS/ByB,GAT+B;AAWvC,SAAO;AACN3B,IAAAA,kBAAkB,EAAE,qBAAS6B,mBAAT,EAA8BF,GAA9B,CADd;AAENtB,IAAAA,gBAAgB,EAAE8B,qBAFZ;AAGN/B,IAAAA,aAAa,EAAE,qBAAS2B,wBAAT,EAAmCJ,GAAnC,CAHT;AAINpB,IAAAA,MAAM,EAAE,qBAAS0B,iBAAT,EAA4BN,GAA5B;AAJF,GAAP;AAMA,CAjBD,CAtBuB,CAAT,EAwCV1C,iBAxCU,C","sourcesContent":["/**\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/block-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, canUpdateBlock } = 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\tisEditDisabled={ ! canUpdateBlock }\n\t\t\t\t\t\tonEdit={ this.startEditing }\n\t\t\t\t\t\tonChangeTitle={ this.setTitle }\n\t\t\t\t\t\tonSave={ this.save }\n\t\t\t\t\t\tonCancel={ this.stopEditing }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ ! isSelected && ! isEditing && <ReusableBlockIndicator title={ reusableBlock.title } /> }\n\t\t\t\t{ element }\n\t\t\t</Fragment>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, ownProps ) => {\n\t\tconst {\n\t\t\t__experimentalGetReusableBlock: getReusableBlock,\n\t\t\t__experimentalIsFetchingReusableBlock: isFetchingReusableBlock,\n\t\t\t__experimentalIsSavingReusableBlock: isSavingReusableBlock,\n\t\t} = select( 'core/editor' );\n\t\tconst { canUser } = select( 'core' );\n\t\tconst {\n\t\t\tgetBlock,\n\t\t} = select( 'core/block-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\tcanUpdateBlock: !! reusableBlock && ! reusableBlock.isTemporary && !! canUser( 'update', 'blocks', ref ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch, ownProps ) => {\n\t\tconst {\n\t\t\t__experimentalFetchReusableBlocks: fetchReusableBlocks,\n\t\t\t__experimentalUpdateReusableBlockTitle: updateReusableBlockTitle,\n\t\t\t__experimentalSaveReusableBlock: saveReusableBlock,\n\t\t} = dispatch( 'core/editor' );\n\t\tconst {\n\t\t\tupdateBlockAttributes,\n\t\t} = dispatch( 'core/block-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"]}
\No newline at end of file