@wordpress/media-utils 4.38.0 → 4.39.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
+ ## 4.39.0 (2023-12-13)
6
+
5
7
  ## 4.38.0 (2023-11-29)
6
8
 
7
9
  ## 4.37.0 (2023-11-16)
@@ -194,44 +194,13 @@ const getAttachmentsCollection = ids => {
194
194
  });
195
195
  };
196
196
  class MediaUpload extends _element.Component {
197
- constructor({
198
- allowedTypes,
199
- gallery = false,
200
- unstableFeaturedImageFlow = false,
201
- modalClass,
202
- multiple = false,
203
- title = (0, _i18n.__)('Select or Upload Media')
204
- }) {
197
+ constructor() {
205
198
  super(...arguments);
206
199
  this.openModal = this.openModal.bind(this);
207
200
  this.onOpen = this.onOpen.bind(this);
208
201
  this.onSelect = this.onSelect.bind(this);
209
202
  this.onUpdate = this.onUpdate.bind(this);
210
203
  this.onClose = this.onClose.bind(this);
211
- const {
212
- wp
213
- } = window;
214
- if (gallery) {
215
- this.buildAndSetGalleryFrame();
216
- } else {
217
- const frameConfig = {
218
- title,
219
- multiple
220
- };
221
- if (!!allowedTypes) {
222
- frameConfig.library = {
223
- type: allowedTypes
224
- };
225
- }
226
- this.frame = wp.media(frameConfig);
227
- }
228
- if (modalClass) {
229
- this.frame.$el.addClass(modalClass);
230
- }
231
- if (unstableFeaturedImageFlow) {
232
- this.buildAndSetFeatureImageFrame();
233
- }
234
- this.initializeListeners();
235
204
  }
236
205
  initializeListeners() {
237
206
  // When an image is selected in the media frame...
@@ -317,7 +286,7 @@ class MediaUpload extends _element.Component {
317
286
  wp.media.frame = this.frame;
318
287
  }
319
288
  componentWillUnmount() {
320
- this.frame.remove();
289
+ this.frame?.remove();
321
290
  }
322
291
  onUpdate(selections) {
323
292
  const {
@@ -407,9 +376,38 @@ class MediaUpload extends _element.Component {
407
376
  }
408
377
  }
409
378
  openModal() {
410
- if (this.props.gallery) {
379
+ const {
380
+ allowedTypes,
381
+ gallery = false,
382
+ unstableFeaturedImageFlow = false,
383
+ modalClass,
384
+ multiple = false,
385
+ title = (0, _i18n.__)('Select or Upload Media')
386
+ } = this.props;
387
+ const {
388
+ wp
389
+ } = window;
390
+ if (gallery) {
411
391
  this.buildAndSetGalleryFrame();
392
+ } else {
393
+ const frameConfig = {
394
+ title,
395
+ multiple
396
+ };
397
+ if (!!allowedTypes) {
398
+ frameConfig.library = {
399
+ type: allowedTypes
400
+ };
401
+ }
402
+ this.frame = wp.media(frameConfig);
403
+ }
404
+ if (modalClass) {
405
+ this.frame.$el.addClass(modalClass);
406
+ }
407
+ if (unstableFeaturedImageFlow) {
408
+ this.buildAndSetFeatureImageFrame();
412
409
  }
410
+ this.initializeListeners();
413
411
  this.frame.open();
414
412
  }
415
413
  render() {
@@ -1 +1 @@
1
- {"version":3,"names":["_element","require","_i18n","DEFAULT_EMPTY_GALLERY","getFeaturedImageMediaFrame","wp","window","media","view","MediaFrame","Select","extend","featuredImageToolbar","toolbar","createSelectToolbar","text","l10n","setFeaturedImage","state","options","editState","selection","get","EditImage","model","single","controller","render","content","set","loadEditor","createStates","on","states","add","FeaturedImage","editImage","getGalleryDetailsMediaFrame","Post","galleryToolbar","editing","Toolbar","items","insert","style","updateGallery","insertGallery","priority","requires","library","click","close","trigger","setState","reset","Library","id","title","createGalleryTitle","filterable","multiple","editable","query","type","GalleryEdit","menu","displaySettings","GalleryAdd","slimImageObject","img","attrSet","reduce","result","key","hasOwnProperty","getAttachmentsCollection","ids","order","orderby","post__in","posts_per_page","MediaUpload","Component","constructor","allowedTypes","gallery","unstableFeaturedImageFlow","modalClass","__","arguments","openModal","bind","onOpen","onSelect","onUpdate","onClose","buildAndSetGalleryFrame","frameConfig","frame","$el","addClass","buildAndSetFeatureImageFrame","initializeListeners","addToGallery","value","props","lastGalleryValue","remove","currentState","length","GalleryDetailsMediaFrame","attachments","Selection","models","toJSON","mimeType","featuredImageFrame","componentWillUnmount","selections","selectedImages","map","attachment","updateCollection","mode","hasMedia","Array","isArray","isGallery","valueArray","forEach","more","done","frameContent","collection","toArray","mirroring","_hasMore","open","_default","exports","default"],"sources":["@wordpress/media-utils/src/components/media-upload/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst DEFAULT_EMPTY_GALLERY = [];\n\n/**\n * Prepares the Featured Image toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Select} The default media workflow.\n */\nconst getFeaturedImageMediaFrame = () => {\n\tconst { wp } = window;\n\n\treturn wp.media.view.MediaFrame.Select.extend( {\n\t\t/**\n\t\t * Enables the Set Featured Image Button.\n\t\t *\n\t\t * @param {Object} toolbar toolbar for featured image state\n\t\t * @return {void}\n\t\t */\n\t\tfeaturedImageToolbar( toolbar ) {\n\t\t\tthis.createSelectToolbar( toolbar, {\n\t\t\t\ttext: wp.media.view.l10n.setFeaturedImage,\n\t\t\t\tstate: this.options.state,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'featured-image' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on(\n\t\t\t\t'toolbar:create:featured-image',\n\t\t\t\tthis.featuredImageToolbar,\n\t\t\t\tthis\n\t\t\t);\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.FeaturedImage(),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n/**\n * Prepares the Gallery toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Post} The default media workflow.\n */\nconst getGalleryDetailsMediaFrame = () => {\n\tconst { wp } = window;\n\t/**\n\t * Custom gallery details frame.\n\t *\n\t * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js\n\t * @class GalleryDetailsMediaFrame\n\t * @class\n\t */\n\treturn wp.media.view.MediaFrame.Post.extend( {\n\t\t/**\n\t\t * Set up gallery toolbar.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tgalleryToolbar() {\n\t\t\tconst editing = this.state().get( 'editing' );\n\t\t\tthis.toolbar.set(\n\t\t\t\tnew wp.media.view.Toolbar( {\n\t\t\t\t\tcontroller: this,\n\t\t\t\t\titems: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tstyle: 'primary',\n\t\t\t\t\t\t\ttext: editing\n\t\t\t\t\t\t\t\t? wp.media.view.l10n.updateGallery\n\t\t\t\t\t\t\t\t: wp.media.view.l10n.insertGallery,\n\t\t\t\t\t\t\tpriority: 80,\n\t\t\t\t\t\t\trequires: { library: true },\n\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * @fires wp.media.controller.State#update\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tclick() {\n\t\t\t\t\t\t\t\tconst controller = this.controller,\n\t\t\t\t\t\t\t\t\tstate = controller.state();\n\n\t\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\t\tstate.trigger(\n\t\t\t\t\t\t\t\t\t'update',\n\t\t\t\t\t\t\t\t\tstate.get( 'library' )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Restore and reset the default state.\n\t\t\t\t\t\t\t\tcontroller.setState( controller.options.state );\n\t\t\t\t\t\t\t\tcontroller.reset();\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\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'gallery' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on( 'toolbar:create:main-gallery', this.galleryToolbar, this );\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.Library( {\n\t\t\t\t\tid: 'gallery',\n\t\t\t\t\ttitle: wp.media.view.l10n.createGalleryTitle,\n\t\t\t\t\tpriority: 40,\n\t\t\t\t\ttoolbar: 'main-gallery',\n\t\t\t\t\tfilterable: 'uploaded',\n\t\t\t\t\tmultiple: 'add',\n\t\t\t\t\teditable: false,\n\n\t\t\t\t\tlibrary: wp.media.query( {\n\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t...this.options.library,\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryEdit( {\n\t\t\t\t\tlibrary: this.options.selection,\n\t\t\t\t\tediting: this.options.editing,\n\t\t\t\t\tmenu: 'gallery',\n\t\t\t\t\tdisplaySettings: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryAdd(),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n// The media library image object contains numerous attributes\n// we only need this set to display the image in the library.\nconst slimImageObject = ( img ) => {\n\tconst attrSet = [\n\t\t'sizes',\n\t\t'mime',\n\t\t'type',\n\t\t'subtype',\n\t\t'id',\n\t\t'url',\n\t\t'alt',\n\t\t'link',\n\t\t'caption',\n\t];\n\treturn attrSet.reduce( ( result, key ) => {\n\t\tif ( img?.hasOwnProperty( key ) ) {\n\t\t\tresult[ key ] = img[ key ];\n\t\t}\n\t\treturn result;\n\t}, {} );\n};\n\nconst getAttachmentsCollection = ( ids ) => {\n\tconst { wp } = window;\n\n\treturn wp.media.query( {\n\t\torder: 'ASC',\n\t\torderby: 'post__in',\n\t\tpost__in: ids,\n\t\tposts_per_page: -1,\n\t\tquery: true,\n\t\ttype: 'image',\n\t} );\n};\n\nclass MediaUpload extends Component {\n\tconstructor( {\n\t\tallowedTypes,\n\t\tgallery = false,\n\t\tunstableFeaturedImageFlow = false,\n\t\tmodalClass,\n\t\tmultiple = false,\n\t\ttitle = __( 'Select or Upload Media' ),\n\t} ) {\n\t\tsuper( ...arguments );\n\t\tthis.openModal = this.openModal.bind( this );\n\t\tthis.onOpen = this.onOpen.bind( this );\n\t\tthis.onSelect = this.onSelect.bind( this );\n\t\tthis.onUpdate = this.onUpdate.bind( this );\n\t\tthis.onClose = this.onClose.bind( this );\n\n\t\tconst { wp } = window;\n\n\t\tif ( gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t} else {\n\t\t\tconst frameConfig = {\n\t\t\t\ttitle,\n\t\t\t\tmultiple,\n\t\t\t};\n\t\t\tif ( !! allowedTypes ) {\n\t\t\t\tframeConfig.library = { type: allowedTypes };\n\t\t\t}\n\n\t\t\tthis.frame = wp.media( frameConfig );\n\t\t}\n\n\t\tif ( modalClass ) {\n\t\t\tthis.frame.$el.addClass( modalClass );\n\t\t}\n\n\t\tif ( unstableFeaturedImageFlow ) {\n\t\t\tthis.buildAndSetFeatureImageFrame();\n\t\t}\n\t\tthis.initializeListeners();\n\t}\n\n\tinitializeListeners() {\n\t\t// When an image is selected in the media frame...\n\t\tthis.frame.on( 'select', this.onSelect );\n\t\tthis.frame.on( 'update', this.onUpdate );\n\t\tthis.frame.on( 'open', this.onOpen );\n\t\tthis.frame.on( 'close', this.onClose );\n\t}\n\n\t/**\n\t * Sets the Gallery frame and initializes listeners.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetGalleryFrame() {\n\t\tconst {\n\t\t\taddToGallery = false,\n\t\t\tallowedTypes,\n\t\t\tmultiple = false,\n\t\t\tvalue = DEFAULT_EMPTY_GALLERY,\n\t\t} = this.props;\n\n\t\t// If the value did not changed there is no need to rebuild the frame,\n\t\t// we can continue to use the existing one.\n\t\tif ( value === this.lastGalleryValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { wp } = window;\n\n\t\tthis.lastGalleryValue = value;\n\n\t\t// If a frame already existed remove it.\n\t\tif ( this.frame ) {\n\t\t\tthis.frame.remove();\n\t\t}\n\t\tlet currentState;\n\t\tif ( addToGallery ) {\n\t\t\tcurrentState = 'gallery-library';\n\t\t} else {\n\t\t\tcurrentState = value && value.length ? 'gallery-edit' : 'gallery';\n\t\t}\n\t\tif ( ! this.GalleryDetailsMediaFrame ) {\n\t\t\tthis.GalleryDetailsMediaFrame = getGalleryDetailsMediaFrame();\n\t\t}\n\t\tconst attachments = getAttachmentsCollection( value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t\tmultiple,\n\t\t} );\n\t\tthis.frame = new this.GalleryDetailsMediaFrame( {\n\t\t\tmimeType: allowedTypes,\n\t\t\tstate: currentState,\n\t\t\tmultiple,\n\t\t\tselection,\n\t\t\tediting: value && value.length ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t\tthis.initializeListeners();\n\t}\n\n\t/**\n\t * Initializes the Media Library requirements for the featured image flow.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetFeatureImageFrame() {\n\t\tconst { wp } = window;\n\t\tconst featuredImageFrame = getFeaturedImageMediaFrame();\n\t\tconst attachments = getAttachmentsCollection( this.props.value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t} );\n\t\tthis.frame = new featuredImageFrame( {\n\t\t\tmimeType: this.props.allowedTypes,\n\t\t\tstate: 'featured-image',\n\t\t\tmultiple: this.props.multiple,\n\t\t\tselection,\n\t\t\tediting: this.props.value ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.frame.remove();\n\t}\n\n\tonUpdate( selections ) {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\tconst state = this.frame.state();\n\t\tconst selectedImages = selections || state.get( 'selection' );\n\n\t\tif ( ! selectedImages || ! selectedImages.models.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( multiple ) {\n\t\t\tonSelect(\n\t\t\t\tselectedImages.models.map( ( model ) =>\n\t\t\t\t\tslimImageObject( model.toJSON() )\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tonSelect( slimImageObject( selectedImages.models[ 0 ].toJSON() ) );\n\t\t}\n\t}\n\n\tonSelect() {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\t// Get media attachment details from the frame state.\n\t\tconst attachment = this.frame.state().get( 'selection' ).toJSON();\n\t\tonSelect( multiple ? attachment : attachment[ 0 ] );\n\t}\n\n\tonOpen() {\n\t\tconst { wp } = window;\n\t\tconst { value } = this.props;\n\t\tthis.updateCollection();\n\n\t\t//Handle active tab in media model on model open.\n\t\tif ( this.props.mode ) {\n\t\t\tthis.frame.content.mode( this.props.mode );\n\t\t}\n\n\t\t// Handle both this.props.value being either (number[]) multiple ids\n\t\t// (for galleries) or a (number) singular id (e.g. image block).\n\t\tconst hasMedia = Array.isArray( value ) ? !! value?.length : !! value;\n\n\t\tif ( ! hasMedia ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isGallery = this.props.gallery;\n\t\tconst selection = this.frame.state().get( 'selection' );\n\t\tconst valueArray = Array.isArray( value ) ? value : [ value ];\n\n\t\tif ( ! isGallery ) {\n\t\t\tvalueArray.forEach( ( id ) => {\n\t\t\t\tselection.add( wp.media.attachment( id ) );\n\t\t\t} );\n\t\t}\n\n\t\t// Load the images so they are available in the media modal.\n\t\tconst attachments = getAttachmentsCollection( valueArray );\n\n\t\t// Once attachments are loaded, set the current selection.\n\t\tattachments.more().done( function () {\n\t\t\tif ( isGallery && attachments?.models?.length ) {\n\t\t\t\tselection.add( attachments.models );\n\t\t\t}\n\t\t} );\n\t}\n\n\tonClose() {\n\t\tconst { onClose } = this.props;\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tupdateCollection() {\n\t\tconst frameContent = this.frame.content.get();\n\t\tif ( frameContent && frameContent.collection ) {\n\t\t\tconst collection = frameContent.collection;\n\n\t\t\t// Clean all attachments we have in memory.\n\t\t\tcollection\n\t\t\t\t.toArray()\n\t\t\t\t.forEach( ( model ) => model.trigger( 'destroy', model ) );\n\n\t\t\t// Reset has more flag, if library had small amount of items all items may have been loaded before.\n\t\t\tcollection.mirroring._hasMore = true;\n\n\t\t\t// Request items.\n\t\t\tcollection.more();\n\t\t}\n\t}\n\n\topenModal() {\n\t\tif ( this.props.gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t}\n\t\tthis.frame.open();\n\t}\n\n\trender() {\n\t\treturn this.props.render( { open: this.openModal } );\n\t}\n}\n\nexport default MediaUpload;\n"],"mappings":";;;;;;AAGA,IAAAA,QAAA,GAAAC,OAAA;AACA,IAAAC,KAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AAIA,MAAME,qBAAqB,GAAG,EAAE;;AAEhC;AACA;AACA;AACA;AACA;AACA,MAAMC,0BAA0B,GAAGA,CAAA,KAAM;EACxC,MAAM;IAAEC;EAAG,CAAC,GAAGC,MAAM;EAErB,OAAOD,EAAE,CAACE,KAAK,CAACC,IAAI,CAACC,UAAU,CAACC,MAAM,CAACC,MAAM,CAAE;IAC9C;AACF;AACA;AACA;AACA;AACA;IACEC,oBAAoBA,CAAEC,OAAO,EAAG;MAC/B,IAAI,CAACC,mBAAmB,CAAED,OAAO,EAAE;QAClCE,IAAI,EAAEV,EAAE,CAACE,KAAK,CAACC,IAAI,CAACQ,IAAI,CAACC,gBAAgB;QACzCC,KAAK,EAAE,IAAI,CAACC,OAAO,CAACD;MACrB,CAAE,CAAC;IACJ,CAAC;IAED;AACF;AACA;AACA;AACA;IACEE,SAASA,CAAA,EAAG;MACX,MAAMC,SAAS,GAAG,IAAI,CAACH,KAAK,CAAE,gBAAiB,CAAC,CAACI,GAAG,CAAE,WAAY,CAAC;MACnE,MAAMd,IAAI,GAAG,IAAIH,EAAE,CAACE,KAAK,CAACC,IAAI,CAACe,SAAS,CAAE;QACzCC,KAAK,EAAEH,SAAS,CAACI,MAAM,CAAC,CAAC;QACzBC,UAAU,EAAE;MACb,CAAE,CAAC,CAACC,MAAM,CAAC,CAAC;;MAEZ;MACA,IAAI,CAACC,OAAO,CAACC,GAAG,CAAErB,IAAK,CAAC;;MAExB;MACAA,IAAI,CAACsB,UAAU,CAAC,CAAC;IAClB,CAAC;IAED;AACF;AACA;AACA;AACA;IACEC,YAAY,EAAE,SAASA,YAAYA,CAAA,EAAG;MACrC,IAAI,CAACC,EAAE,CACN,+BAA+B,EAC/B,IAAI,CAACpB,oBAAoB,EACzB,IACD,CAAC;MACD,IAAI,CAACoB,EAAE,CAAE,2BAA2B,EAAE,IAAI,CAACZ,SAAS,EAAE,IAAK,CAAC;MAE5D,IAAI,CAACa,MAAM,CAACC,GAAG,CAAE,CAChB,IAAI7B,EAAE,CAACE,KAAK,CAACmB,UAAU,CAACS,aAAa,CAAC,CAAC,EACvC,IAAI9B,EAAE,CAACE,KAAK,CAACmB,UAAU,CAACH,SAAS,CAAE;QAClCC,KAAK,EAAE,IAAI,CAACL,OAAO,CAACiB;MACrB,CAAE,CAAC,CACF,CAAC;IACJ;EACD,CAAE,CAAC;AACJ,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA,MAAMC,2BAA2B,GAAGA,CAAA,KAAM;EACzC,MAAM;IAAEhC;EAAG,CAAC,GAAGC,MAAM;EACrB;AACD;AACA;AACA;AACA;AACA;AACA;EACC,OAAOD,EAAE,CAACE,KAAK,CAACC,IAAI,CAACC,UAAU,CAAC6B,IAAI,CAAC3B,MAAM,CAAE;IAC5C;AACF;AACA;AACA;AACA;IACE4B,cAAcA,CAAA,EAAG;MAChB,MAAMC,OAAO,GAAG,IAAI,CAACtB,KAAK,CAAC,CAAC,CAACI,GAAG,CAAE,SAAU,CAAC;MAC7C,IAAI,CAACT,OAAO,CAACgB,GAAG,CACf,IAAIxB,EAAE,CAACE,KAAK,CAACC,IAAI,CAACiC,OAAO,CAAE;QAC1Bf,UAAU,EAAE,IAAI;QAChBgB,KAAK,EAAE;UACNC,MAAM,EAAE;YACPC,KAAK,EAAE,SAAS;YAChB7B,IAAI,EAAEyB,OAAO,GACVnC,EAAE,CAACE,KAAK,CAACC,IAAI,CAACQ,IAAI,CAAC6B,aAAa,GAChCxC,EAAE,CAACE,KAAK,CAACC,IAAI,CAACQ,IAAI,CAAC8B,aAAa;YACnCC,QAAQ,EAAE,EAAE;YACZC,QAAQ,EAAE;cAAEC,OAAO,EAAE;YAAK,CAAC;YAE3B;AACP;AACA;YACOC,KAAKA,CAAA,EAAG;cACP,MAAMxB,UAAU,GAAG,IAAI,CAACA,UAAU;gBACjCR,KAAK,GAAGQ,UAAU,CAACR,KAAK,CAAC,CAAC;cAE3BQ,UAAU,CAACyB,KAAK,CAAC,CAAC;cAClBjC,KAAK,CAACkC,OAAO,CACZ,QAAQ,EACRlC,KAAK,CAACI,GAAG,CAAE,SAAU,CACtB,CAAC;;cAED;cACAI,UAAU,CAAC2B,QAAQ,CAAE3B,UAAU,CAACP,OAAO,CAACD,KAAM,CAAC;cAC/CQ,UAAU,CAAC4B,KAAK,CAAC,CAAC;YACnB;UACD;QACD;MACD,CAAE,CACH,CAAC;IACF,CAAC;IAED;AACF;AACA;AACA;AACA;IACElC,SAASA,CAAA,EAAG;MACX,MAAMC,SAAS,GAAG,IAAI,CAACH,KAAK,CAAE,SAAU,CAAC,CAACI,GAAG,CAAE,WAAY,CAAC;MAC5D,MAAMd,IAAI,GAAG,IAAIH,EAAE,CAACE,KAAK,CAACC,IAAI,CAACe,SAAS,CAAE;QACzCC,KAAK,EAAEH,SAAS,CAACI,MAAM,CAAC,CAAC;QACzBC,UAAU,EAAE;MACb,CAAE,CAAC,CAACC,MAAM,CAAC,CAAC;;MAEZ;MACA,IAAI,CAACC,OAAO,CAACC,GAAG,CAAErB,IAAK,CAAC;;MAExB;MACAA,IAAI,CAACsB,UAAU,CAAC,CAAC;IAClB,CAAC;IAED;AACF;AACA;AACA;AACA;IACEC,YAAY,EAAE,SAASA,YAAYA,CAAA,EAAG;MACrC,IAAI,CAACC,EAAE,CAAE,6BAA6B,EAAE,IAAI,CAACO,cAAc,EAAE,IAAK,CAAC;MACnE,IAAI,CAACP,EAAE,CAAE,2BAA2B,EAAE,IAAI,CAACZ,SAAS,EAAE,IAAK,CAAC;MAE5D,IAAI,CAACa,MAAM,CAACC,GAAG,CAAE,CAChB,IAAI7B,EAAE,CAACE,KAAK,CAACmB,UAAU,CAAC6B,OAAO,CAAE;QAChCC,EAAE,EAAE,SAAS;QACbC,KAAK,EAAEpD,EAAE,CAACE,KAAK,CAACC,IAAI,CAACQ,IAAI,CAAC0C,kBAAkB;QAC5CX,QAAQ,EAAE,EAAE;QACZlC,OAAO,EAAE,cAAc;QACvB8C,UAAU,EAAE,UAAU;QACtBC,QAAQ,EAAE,KAAK;QACfC,QAAQ,EAAE,KAAK;QAEfZ,OAAO,EAAE5C,EAAE,CAACE,KAAK,CAACuD,KAAK,CAAE;UACxBC,IAAI,EAAE,OAAO;UACb,GAAG,IAAI,CAAC5C,OAAO,CAAC8B;QACjB,CAAE;MACH,CAAE,CAAC,EACH,IAAI5C,EAAE,CAACE,KAAK,CAACmB,UAAU,CAACH,SAAS,CAAE;QAClCC,KAAK,EAAE,IAAI,CAACL,OAAO,CAACiB;MACrB,CAAE,CAAC,EAEH,IAAI/B,EAAE,CAACE,KAAK,CAACmB,UAAU,CAACsC,WAAW,CAAE;QACpCf,OAAO,EAAE,IAAI,CAAC9B,OAAO,CAACE,SAAS;QAC/BmB,OAAO,EAAE,IAAI,CAACrB,OAAO,CAACqB,OAAO;QAC7ByB,IAAI,EAAE,SAAS;QACfC,eAAe,EAAE,KAAK;QACtBN,QAAQ,EAAE;MACX,CAAE,CAAC,EAEH,IAAIvD,EAAE,CAACE,KAAK,CAACmB,UAAU,CAACyC,UAAU,CAAC,CAAC,CACnC,CAAC;IACJ;EACD,CAAE,CAAC;AACJ,CAAC;;AAED;AACA;AACA,MAAMC,eAAe,GAAKC,GAAG,IAAM;EAClC,MAAMC,OAAO,GAAG,CACf,OAAO,EACP,MAAM,EACN,MAAM,EACN,SAAS,EACT,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,SAAS,CACT;EACD,OAAOA,OAAO,CAACC,MAAM,CAAE,CAAEC,MAAM,EAAEC,GAAG,KAAM;IACzC,IAAKJ,GAAG,EAAEK,cAAc,CAAED,GAAI,CAAC,EAAG;MACjCD,MAAM,CAAEC,GAAG,CAAE,GAAGJ,GAAG,CAAEI,GAAG,CAAE;IAC3B;IACA,OAAOD,MAAM;EACd,CAAC,EAAE,CAAC,CAAE,CAAC;AACR,CAAC;AAED,MAAMG,wBAAwB,GAAKC,GAAG,IAAM;EAC3C,MAAM;IAAEvE;EAAG,CAAC,GAAGC,MAAM;EAErB,OAAOD,EAAE,CAACE,KAAK,CAACuD,KAAK,CAAE;IACtBe,KAAK,EAAE,KAAK;IACZC,OAAO,EAAE,UAAU;IACnBC,QAAQ,EAAEH,GAAG;IACbI,cAAc,EAAE,CAAC,CAAC;IAClBlB,KAAK,EAAE,IAAI;IACXC,IAAI,EAAE;EACP,CAAE,CAAC;AACJ,CAAC;AAED,MAAMkB,WAAW,SAASC,kBAAS,CAAC;EACnCC,WAAWA,CAAE;IACZC,YAAY;IACZC,OAAO,GAAG,KAAK;IACfC,yBAAyB,GAAG,KAAK;IACjCC,UAAU;IACV3B,QAAQ,GAAG,KAAK;IAChBH,KAAK,GAAG,IAAA+B,QAAE,EAAE,wBAAyB;EACtC,CAAC,EAAG;IACH,KAAK,CAAE,GAAGC,SAAU,CAAC;IACrB,IAAI,CAACC,SAAS,GAAG,IAAI,CAACA,SAAS,CAACC,IAAI,CAAE,IAAK,CAAC;IAC5C,IAAI,CAACC,MAAM,GAAG,IAAI,CAACA,MAAM,CAACD,IAAI,CAAE,IAAK,CAAC;IACtC,IAAI,CAACE,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACF,IAAI,CAAE,IAAK,CAAC;IAC1C,IAAI,CAACG,QAAQ,GAAG,IAAI,CAACA,QAAQ,CAACH,IAAI,CAAE,IAAK,CAAC;IAC1C,IAAI,CAACI,OAAO,GAAG,IAAI,CAACA,OAAO,CAACJ,IAAI,CAAE,IAAK,CAAC;IAExC,MAAM;MAAEtF;IAAG,CAAC,GAAGC,MAAM;IAErB,IAAK+E,OAAO,EAAG;MACd,IAAI,CAACW,uBAAuB,CAAC,CAAC;IAC/B,CAAC,MAAM;MACN,MAAMC,WAAW,GAAG;QACnBxC,KAAK;QACLG;MACD,CAAC;MACD,IAAK,CAAC,CAAEwB,YAAY,EAAG;QACtBa,WAAW,CAAChD,OAAO,GAAG;UAAEc,IAAI,EAAEqB;QAAa,CAAC;MAC7C;MAEA,IAAI,CAACc,KAAK,GAAG7F,EAAE,CAACE,KAAK,CAAE0F,WAAY,CAAC;IACrC;IAEA,IAAKV,UAAU,EAAG;MACjB,IAAI,CAACW,KAAK,CAACC,GAAG,CAACC,QAAQ,CAAEb,UAAW,CAAC;IACtC;IAEA,IAAKD,yBAAyB,EAAG;MAChC,IAAI,CAACe,4BAA4B,CAAC,CAAC;IACpC;IACA,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC3B;EAEAA,mBAAmBA,CAAA,EAAG;IACrB;IACA,IAAI,CAACJ,KAAK,CAAClE,EAAE,CAAE,QAAQ,EAAE,IAAI,CAAC6D,QAAS,CAAC;IACxC,IAAI,CAACK,KAAK,CAAClE,EAAE,CAAE,QAAQ,EAAE,IAAI,CAAC8D,QAAS,CAAC;IACxC,IAAI,CAACI,KAAK,CAAClE,EAAE,CAAE,MAAM,EAAE,IAAI,CAAC4D,MAAO,CAAC;IACpC,IAAI,CAACM,KAAK,CAAClE,EAAE,CAAE,OAAO,EAAE,IAAI,CAAC+D,OAAQ,CAAC;EACvC;;EAEA;AACD;AACA;AACA;AACA;EACCC,uBAAuBA,CAAA,EAAG;IACzB,MAAM;MACLO,YAAY,GAAG,KAAK;MACpBnB,YAAY;MACZxB,QAAQ,GAAG,KAAK;MAChB4C,KAAK,GAAGrG;IACT,CAAC,GAAG,IAAI,CAACsG,KAAK;;IAEd;IACA;IACA,IAAKD,KAAK,KAAK,IAAI,CAACE,gBAAgB,EAAG;MACtC;IACD;IAEA,MAAM;MAAErG;IAAG,CAAC,GAAGC,MAAM;IAErB,IAAI,CAACoG,gBAAgB,GAAGF,KAAK;;IAE7B;IACA,IAAK,IAAI,CAACN,KAAK,EAAG;MACjB,IAAI,CAACA,KAAK,CAACS,MAAM,CAAC,CAAC;IACpB;IACA,IAAIC,YAAY;IAChB,IAAKL,YAAY,EAAG;MACnBK,YAAY,GAAG,iBAAiB;IACjC,CAAC,MAAM;MACNA,YAAY,GAAGJ,KAAK,IAAIA,KAAK,CAACK,MAAM,GAAG,cAAc,GAAG,SAAS;IAClE;IACA,IAAK,CAAE,IAAI,CAACC,wBAAwB,EAAG;MACtC,IAAI,CAACA,wBAAwB,GAAGzE,2BAA2B,CAAC,CAAC;IAC9D;IACA,MAAM0E,WAAW,GAAGpC,wBAAwB,CAAE6B,KAAM,CAAC;IACrD,MAAMnF,SAAS,GAAG,IAAIhB,EAAE,CAACE,KAAK,CAACiB,KAAK,CAACwF,SAAS,CAAED,WAAW,CAACE,MAAM,EAAE;MACnER,KAAK,EAAEM,WAAW,CAACN,KAAK,CAACS,MAAM,CAAC,CAAC;MACjCtD;IACD,CAAE,CAAC;IACH,IAAI,CAACsC,KAAK,GAAG,IAAI,IAAI,CAACY,wBAAwB,CAAE;MAC/CK,QAAQ,EAAE/B,YAAY;MACtBlE,KAAK,EAAE0F,YAAY;MACnBhD,QAAQ;MACRvC,SAAS;MACTmB,OAAO,EAAEgE,KAAK,IAAIA,KAAK,CAACK,MAAM,GAAG,IAAI,GAAG;IACzC,CAAE,CAAC;IACHxG,EAAE,CAACE,KAAK,CAAC2F,KAAK,GAAG,IAAI,CAACA,KAAK;IAC3B,IAAI,CAACI,mBAAmB,CAAC,CAAC;EAC3B;;EAEA;AACD;AACA;AACA;AACA;EACCD,4BAA4BA,CAAA,EAAG;IAC9B,MAAM;MAAEhG;IAAG,CAAC,GAAGC,MAAM;IACrB,MAAM8G,kBAAkB,GAAGhH,0BAA0B,CAAC,CAAC;IACvD,MAAM2G,WAAW,GAAGpC,wBAAwB,CAAE,IAAI,CAAC8B,KAAK,CAACD,KAAM,CAAC;IAChE,MAAMnF,SAAS,GAAG,IAAIhB,EAAE,CAACE,KAAK,CAACiB,KAAK,CAACwF,SAAS,CAAED,WAAW,CAACE,MAAM,EAAE;MACnER,KAAK,EAAEM,WAAW,CAACN,KAAK,CAACS,MAAM,CAAC;IACjC,CAAE,CAAC;IACH,IAAI,CAAChB,KAAK,GAAG,IAAIkB,kBAAkB,CAAE;MACpCD,QAAQ,EAAE,IAAI,CAACV,KAAK,CAACrB,YAAY;MACjClE,KAAK,EAAE,gBAAgB;MACvB0C,QAAQ,EAAE,IAAI,CAAC6C,KAAK,CAAC7C,QAAQ;MAC7BvC,SAAS;MACTmB,OAAO,EAAE,IAAI,CAACiE,KAAK,CAACD,KAAK,GAAG,IAAI,GAAG;IACpC,CAAE,CAAC;IACHnG,EAAE,CAACE,KAAK,CAAC2F,KAAK,GAAG,IAAI,CAACA,KAAK;EAC5B;EAEAmB,oBAAoBA,CAAA,EAAG;IACtB,IAAI,CAACnB,KAAK,CAACS,MAAM,CAAC,CAAC;EACpB;EAEAb,QAAQA,CAAEwB,UAAU,EAAG;IACtB,MAAM;MAAEzB,QAAQ;MAAEjC,QAAQ,GAAG;IAAM,CAAC,GAAG,IAAI,CAAC6C,KAAK;IACjD,MAAMvF,KAAK,GAAG,IAAI,CAACgF,KAAK,CAAChF,KAAK,CAAC,CAAC;IAChC,MAAMqG,cAAc,GAAGD,UAAU,IAAIpG,KAAK,CAACI,GAAG,CAAE,WAAY,CAAC;IAE7D,IAAK,CAAEiG,cAAc,IAAI,CAAEA,cAAc,CAACN,MAAM,CAACJ,MAAM,EAAG;MACzD;IACD;IAEA,IAAKjD,QAAQ,EAAG;MACfiC,QAAQ,CACP0B,cAAc,CAACN,MAAM,CAACO,GAAG,CAAIhG,KAAK,IACjC4C,eAAe,CAAE5C,KAAK,CAAC0F,MAAM,CAAC,CAAE,CACjC,CACD,CAAC;IACF,CAAC,MAAM;MACNrB,QAAQ,CAAEzB,eAAe,CAAEmD,cAAc,CAACN,MAAM,CAAE,CAAC,CAAE,CAACC,MAAM,CAAC,CAAE,CAAE,CAAC;IACnE;EACD;EAEArB,QAAQA,CAAA,EAAG;IACV,MAAM;MAAEA,QAAQ;MAAEjC,QAAQ,GAAG;IAAM,CAAC,GAAG,IAAI,CAAC6C,KAAK;IACjD;IACA,MAAMgB,UAAU,GAAG,IAAI,CAACvB,KAAK,CAAChF,KAAK,CAAC,CAAC,CAACI,GAAG,CAAE,WAAY,CAAC,CAAC4F,MAAM,CAAC,CAAC;IACjErB,QAAQ,CAAEjC,QAAQ,GAAG6D,UAAU,GAAGA,UAAU,CAAE,CAAC,CAAG,CAAC;EACpD;EAEA7B,MAAMA,CAAA,EAAG;IACR,MAAM;MAAEvF;IAAG,CAAC,GAAGC,MAAM;IACrB,MAAM;MAAEkG;IAAM,CAAC,GAAG,IAAI,CAACC,KAAK;IAC5B,IAAI,CAACiB,gBAAgB,CAAC,CAAC;;IAEvB;IACA,IAAK,IAAI,CAACjB,KAAK,CAACkB,IAAI,EAAG;MACtB,IAAI,CAACzB,KAAK,CAACtE,OAAO,CAAC+F,IAAI,CAAE,IAAI,CAAClB,KAAK,CAACkB,IAAK,CAAC;IAC3C;;IAEA;IACA;IACA,MAAMC,QAAQ,GAAGC,KAAK,CAACC,OAAO,CAAEtB,KAAM,CAAC,GAAG,CAAC,CAAEA,KAAK,EAAEK,MAAM,GAAG,CAAC,CAAEL,KAAK;IAErE,IAAK,CAAEoB,QAAQ,EAAG;MACjB;IACD;IAEA,MAAMG,SAAS,GAAG,IAAI,CAACtB,KAAK,CAACpB,OAAO;IACpC,MAAMhE,SAAS,GAAG,IAAI,CAAC6E,KAAK,CAAChF,KAAK,CAAC,CAAC,CAACI,GAAG,CAAE,WAAY,CAAC;IACvD,MAAM0G,UAAU,GAAGH,KAAK,CAACC,OAAO,CAAEtB,KAAM,CAAC,GAAGA,KAAK,GAAG,CAAEA,KAAK,CAAE;IAE7D,IAAK,CAAEuB,SAAS,EAAG;MAClBC,UAAU,CAACC,OAAO,CAAIzE,EAAE,IAAM;QAC7BnC,SAAS,CAACa,GAAG,CAAE7B,EAAE,CAACE,KAAK,CAACkH,UAAU,CAAEjE,EAAG,CAAE,CAAC;MAC3C,CAAE,CAAC;IACJ;;IAEA;IACA,MAAMuD,WAAW,GAAGpC,wBAAwB,CAAEqD,UAAW,CAAC;;IAE1D;IACAjB,WAAW,CAACmB,IAAI,CAAC,CAAC,CAACC,IAAI,CAAE,YAAY;MACpC,IAAKJ,SAAS,IAAIhB,WAAW,EAAEE,MAAM,EAAEJ,MAAM,EAAG;QAC/CxF,SAAS,CAACa,GAAG,CAAE6E,WAAW,CAACE,MAAO,CAAC;MACpC;IACD,CAAE,CAAC;EACJ;EAEAlB,OAAOA,CAAA,EAAG;IACT,MAAM;MAAEA;IAAQ,CAAC,GAAG,IAAI,CAACU,KAAK;IAE9B,IAAKV,OAAO,EAAG;MACdA,OAAO,CAAC,CAAC;IACV;EACD;EAEA2B,gBAAgBA,CAAA,EAAG;IAClB,MAAMU,YAAY,GAAG,IAAI,CAAClC,KAAK,CAACtE,OAAO,CAACN,GAAG,CAAC,CAAC;IAC7C,IAAK8G,YAAY,IAAIA,YAAY,CAACC,UAAU,EAAG;MAC9C,MAAMA,UAAU,GAAGD,YAAY,CAACC,UAAU;;MAE1C;MACAA,UAAU,CACRC,OAAO,CAAC,CAAC,CACTL,OAAO,CAAIzG,KAAK,IAAMA,KAAK,CAAC4B,OAAO,CAAE,SAAS,EAAE5B,KAAM,CAAE,CAAC;;MAE3D;MACA6G,UAAU,CAACE,SAAS,CAACC,QAAQ,GAAG,IAAI;;MAEpC;MACAH,UAAU,CAACH,IAAI,CAAC,CAAC;IAClB;EACD;EAEAxC,SAASA,CAAA,EAAG;IACX,IAAK,IAAI,CAACe,KAAK,CAACpB,OAAO,EAAG;MACzB,IAAI,CAACW,uBAAuB,CAAC,CAAC;IAC/B;IACA,IAAI,CAACE,KAAK,CAACuC,IAAI,CAAC,CAAC;EAClB;EAEA9G,MAAMA,CAAA,EAAG;IACR,OAAO,IAAI,CAAC8E,KAAK,CAAC9E,MAAM,CAAE;MAAE8G,IAAI,EAAE,IAAI,CAAC/C;IAAU,CAAE,CAAC;EACrD;AACD;AAAC,IAAAgD,QAAA,GAEczD,WAAW;AAAA0D,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
1
+ {"version":3,"names":["_element","require","_i18n","DEFAULT_EMPTY_GALLERY","getFeaturedImageMediaFrame","wp","window","media","view","MediaFrame","Select","extend","featuredImageToolbar","toolbar","createSelectToolbar","text","l10n","setFeaturedImage","state","options","editState","selection","get","EditImage","model","single","controller","render","content","set","loadEditor","createStates","on","states","add","FeaturedImage","editImage","getGalleryDetailsMediaFrame","Post","galleryToolbar","editing","Toolbar","items","insert","style","updateGallery","insertGallery","priority","requires","library","click","close","trigger","setState","reset","Library","id","title","createGalleryTitle","filterable","multiple","editable","query","type","GalleryEdit","menu","displaySettings","GalleryAdd","slimImageObject","img","attrSet","reduce","result","key","hasOwnProperty","getAttachmentsCollection","ids","order","orderby","post__in","posts_per_page","MediaUpload","Component","constructor","arguments","openModal","bind","onOpen","onSelect","onUpdate","onClose","initializeListeners","frame","buildAndSetGalleryFrame","addToGallery","allowedTypes","value","props","lastGalleryValue","remove","currentState","length","GalleryDetailsMediaFrame","attachments","Selection","models","toJSON","mimeType","buildAndSetFeatureImageFrame","featuredImageFrame","componentWillUnmount","selections","selectedImages","map","attachment","updateCollection","mode","hasMedia","Array","isArray","isGallery","gallery","valueArray","forEach","more","done","frameContent","collection","toArray","mirroring","_hasMore","unstableFeaturedImageFlow","modalClass","__","frameConfig","$el","addClass","open","_default","exports","default"],"sources":["@wordpress/media-utils/src/components/media-upload/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst DEFAULT_EMPTY_GALLERY = [];\n\n/**\n * Prepares the Featured Image toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Select} The default media workflow.\n */\nconst getFeaturedImageMediaFrame = () => {\n\tconst { wp } = window;\n\n\treturn wp.media.view.MediaFrame.Select.extend( {\n\t\t/**\n\t\t * Enables the Set Featured Image Button.\n\t\t *\n\t\t * @param {Object} toolbar toolbar for featured image state\n\t\t * @return {void}\n\t\t */\n\t\tfeaturedImageToolbar( toolbar ) {\n\t\t\tthis.createSelectToolbar( toolbar, {\n\t\t\t\ttext: wp.media.view.l10n.setFeaturedImage,\n\t\t\t\tstate: this.options.state,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'featured-image' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on(\n\t\t\t\t'toolbar:create:featured-image',\n\t\t\t\tthis.featuredImageToolbar,\n\t\t\t\tthis\n\t\t\t);\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.FeaturedImage(),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n/**\n * Prepares the Gallery toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Post} The default media workflow.\n */\nconst getGalleryDetailsMediaFrame = () => {\n\tconst { wp } = window;\n\t/**\n\t * Custom gallery details frame.\n\t *\n\t * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js\n\t * @class GalleryDetailsMediaFrame\n\t * @class\n\t */\n\treturn wp.media.view.MediaFrame.Post.extend( {\n\t\t/**\n\t\t * Set up gallery toolbar.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tgalleryToolbar() {\n\t\t\tconst editing = this.state().get( 'editing' );\n\t\t\tthis.toolbar.set(\n\t\t\t\tnew wp.media.view.Toolbar( {\n\t\t\t\t\tcontroller: this,\n\t\t\t\t\titems: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tstyle: 'primary',\n\t\t\t\t\t\t\ttext: editing\n\t\t\t\t\t\t\t\t? wp.media.view.l10n.updateGallery\n\t\t\t\t\t\t\t\t: wp.media.view.l10n.insertGallery,\n\t\t\t\t\t\t\tpriority: 80,\n\t\t\t\t\t\t\trequires: { library: true },\n\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * @fires wp.media.controller.State#update\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tclick() {\n\t\t\t\t\t\t\t\tconst controller = this.controller,\n\t\t\t\t\t\t\t\t\tstate = controller.state();\n\n\t\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\t\tstate.trigger(\n\t\t\t\t\t\t\t\t\t'update',\n\t\t\t\t\t\t\t\t\tstate.get( 'library' )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Restore and reset the default state.\n\t\t\t\t\t\t\t\tcontroller.setState( controller.options.state );\n\t\t\t\t\t\t\t\tcontroller.reset();\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\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'gallery' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on( 'toolbar:create:main-gallery', this.galleryToolbar, this );\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.Library( {\n\t\t\t\t\tid: 'gallery',\n\t\t\t\t\ttitle: wp.media.view.l10n.createGalleryTitle,\n\t\t\t\t\tpriority: 40,\n\t\t\t\t\ttoolbar: 'main-gallery',\n\t\t\t\t\tfilterable: 'uploaded',\n\t\t\t\t\tmultiple: 'add',\n\t\t\t\t\teditable: false,\n\n\t\t\t\t\tlibrary: wp.media.query( {\n\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t...this.options.library,\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryEdit( {\n\t\t\t\t\tlibrary: this.options.selection,\n\t\t\t\t\tediting: this.options.editing,\n\t\t\t\t\tmenu: 'gallery',\n\t\t\t\t\tdisplaySettings: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryAdd(),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n// The media library image object contains numerous attributes\n// we only need this set to display the image in the library.\nconst slimImageObject = ( img ) => {\n\tconst attrSet = [\n\t\t'sizes',\n\t\t'mime',\n\t\t'type',\n\t\t'subtype',\n\t\t'id',\n\t\t'url',\n\t\t'alt',\n\t\t'link',\n\t\t'caption',\n\t];\n\treturn attrSet.reduce( ( result, key ) => {\n\t\tif ( img?.hasOwnProperty( key ) ) {\n\t\t\tresult[ key ] = img[ key ];\n\t\t}\n\t\treturn result;\n\t}, {} );\n};\n\nconst getAttachmentsCollection = ( ids ) => {\n\tconst { wp } = window;\n\n\treturn wp.media.query( {\n\t\torder: 'ASC',\n\t\torderby: 'post__in',\n\t\tpost__in: ids,\n\t\tposts_per_page: -1,\n\t\tquery: true,\n\t\ttype: 'image',\n\t} );\n};\n\nclass MediaUpload extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.openModal = this.openModal.bind( this );\n\t\tthis.onOpen = this.onOpen.bind( this );\n\t\tthis.onSelect = this.onSelect.bind( this );\n\t\tthis.onUpdate = this.onUpdate.bind( this );\n\t\tthis.onClose = this.onClose.bind( this );\n\t}\n\n\tinitializeListeners() {\n\t\t// When an image is selected in the media frame...\n\t\tthis.frame.on( 'select', this.onSelect );\n\t\tthis.frame.on( 'update', this.onUpdate );\n\t\tthis.frame.on( 'open', this.onOpen );\n\t\tthis.frame.on( 'close', this.onClose );\n\t}\n\n\t/**\n\t * Sets the Gallery frame and initializes listeners.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetGalleryFrame() {\n\t\tconst {\n\t\t\taddToGallery = false,\n\t\t\tallowedTypes,\n\t\t\tmultiple = false,\n\t\t\tvalue = DEFAULT_EMPTY_GALLERY,\n\t\t} = this.props;\n\n\t\t// If the value did not changed there is no need to rebuild the frame,\n\t\t// we can continue to use the existing one.\n\t\tif ( value === this.lastGalleryValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { wp } = window;\n\n\t\tthis.lastGalleryValue = value;\n\n\t\t// If a frame already existed remove it.\n\t\tif ( this.frame ) {\n\t\t\tthis.frame.remove();\n\t\t}\n\t\tlet currentState;\n\t\tif ( addToGallery ) {\n\t\t\tcurrentState = 'gallery-library';\n\t\t} else {\n\t\t\tcurrentState = value && value.length ? 'gallery-edit' : 'gallery';\n\t\t}\n\t\tif ( ! this.GalleryDetailsMediaFrame ) {\n\t\t\tthis.GalleryDetailsMediaFrame = getGalleryDetailsMediaFrame();\n\t\t}\n\t\tconst attachments = getAttachmentsCollection( value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t\tmultiple,\n\t\t} );\n\t\tthis.frame = new this.GalleryDetailsMediaFrame( {\n\t\t\tmimeType: allowedTypes,\n\t\t\tstate: currentState,\n\t\t\tmultiple,\n\t\t\tselection,\n\t\t\tediting: value && value.length ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t\tthis.initializeListeners();\n\t}\n\n\t/**\n\t * Initializes the Media Library requirements for the featured image flow.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetFeatureImageFrame() {\n\t\tconst { wp } = window;\n\t\tconst featuredImageFrame = getFeaturedImageMediaFrame();\n\t\tconst attachments = getAttachmentsCollection( this.props.value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t} );\n\t\tthis.frame = new featuredImageFrame( {\n\t\t\tmimeType: this.props.allowedTypes,\n\t\t\tstate: 'featured-image',\n\t\t\tmultiple: this.props.multiple,\n\t\t\tselection,\n\t\t\tediting: this.props.value ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.frame?.remove();\n\t}\n\n\tonUpdate( selections ) {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\tconst state = this.frame.state();\n\t\tconst selectedImages = selections || state.get( 'selection' );\n\n\t\tif ( ! selectedImages || ! selectedImages.models.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( multiple ) {\n\t\t\tonSelect(\n\t\t\t\tselectedImages.models.map( ( model ) =>\n\t\t\t\t\tslimImageObject( model.toJSON() )\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tonSelect( slimImageObject( selectedImages.models[ 0 ].toJSON() ) );\n\t\t}\n\t}\n\n\tonSelect() {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\t// Get media attachment details from the frame state.\n\t\tconst attachment = this.frame.state().get( 'selection' ).toJSON();\n\t\tonSelect( multiple ? attachment : attachment[ 0 ] );\n\t}\n\n\tonOpen() {\n\t\tconst { wp } = window;\n\t\tconst { value } = this.props;\n\t\tthis.updateCollection();\n\n\t\t//Handle active tab in media model on model open.\n\t\tif ( this.props.mode ) {\n\t\t\tthis.frame.content.mode( this.props.mode );\n\t\t}\n\n\t\t// Handle both this.props.value being either (number[]) multiple ids\n\t\t// (for galleries) or a (number) singular id (e.g. image block).\n\t\tconst hasMedia = Array.isArray( value ) ? !! value?.length : !! value;\n\n\t\tif ( ! hasMedia ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isGallery = this.props.gallery;\n\t\tconst selection = this.frame.state().get( 'selection' );\n\t\tconst valueArray = Array.isArray( value ) ? value : [ value ];\n\n\t\tif ( ! isGallery ) {\n\t\t\tvalueArray.forEach( ( id ) => {\n\t\t\t\tselection.add( wp.media.attachment( id ) );\n\t\t\t} );\n\t\t}\n\n\t\t// Load the images so they are available in the media modal.\n\t\tconst attachments = getAttachmentsCollection( valueArray );\n\n\t\t// Once attachments are loaded, set the current selection.\n\t\tattachments.more().done( function () {\n\t\t\tif ( isGallery && attachments?.models?.length ) {\n\t\t\t\tselection.add( attachments.models );\n\t\t\t}\n\t\t} );\n\t}\n\n\tonClose() {\n\t\tconst { onClose } = this.props;\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tupdateCollection() {\n\t\tconst frameContent = this.frame.content.get();\n\t\tif ( frameContent && frameContent.collection ) {\n\t\t\tconst collection = frameContent.collection;\n\n\t\t\t// Clean all attachments we have in memory.\n\t\t\tcollection\n\t\t\t\t.toArray()\n\t\t\t\t.forEach( ( model ) => model.trigger( 'destroy', model ) );\n\n\t\t\t// Reset has more flag, if library had small amount of items all items may have been loaded before.\n\t\t\tcollection.mirroring._hasMore = true;\n\n\t\t\t// Request items.\n\t\t\tcollection.more();\n\t\t}\n\t}\n\n\topenModal() {\n\t\tconst {\n\t\t\tallowedTypes,\n\t\t\tgallery = false,\n\t\t\tunstableFeaturedImageFlow = false,\n\t\t\tmodalClass,\n\t\t\tmultiple = false,\n\t\t\ttitle = __( 'Select or Upload Media' ),\n\t\t} = this.props;\n\t\tconst { wp } = window;\n\n\t\tif ( gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t} else {\n\t\t\tconst frameConfig = {\n\t\t\t\ttitle,\n\t\t\t\tmultiple,\n\t\t\t};\n\t\t\tif ( !! allowedTypes ) {\n\t\t\t\tframeConfig.library = { type: allowedTypes };\n\t\t\t}\n\n\t\t\tthis.frame = wp.media( frameConfig );\n\t\t}\n\n\t\tif ( modalClass ) {\n\t\t\tthis.frame.$el.addClass( modalClass );\n\t\t}\n\n\t\tif ( unstableFeaturedImageFlow ) {\n\t\t\tthis.buildAndSetFeatureImageFrame();\n\t\t}\n\t\tthis.initializeListeners();\n\t\tthis.frame.open();\n\t}\n\n\trender() {\n\t\treturn this.props.render( { open: this.openModal } );\n\t}\n}\n\nexport default MediaUpload;\n"],"mappings":"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"}
@@ -187,44 +187,13 @@ const getAttachmentsCollection = ids => {
187
187
  });
188
188
  };
189
189
  class MediaUpload extends Component {
190
- constructor({
191
- allowedTypes,
192
- gallery = false,
193
- unstableFeaturedImageFlow = false,
194
- modalClass,
195
- multiple = false,
196
- title = __('Select or Upload Media')
197
- }) {
190
+ constructor() {
198
191
  super(...arguments);
199
192
  this.openModal = this.openModal.bind(this);
200
193
  this.onOpen = this.onOpen.bind(this);
201
194
  this.onSelect = this.onSelect.bind(this);
202
195
  this.onUpdate = this.onUpdate.bind(this);
203
196
  this.onClose = this.onClose.bind(this);
204
- const {
205
- wp
206
- } = window;
207
- if (gallery) {
208
- this.buildAndSetGalleryFrame();
209
- } else {
210
- const frameConfig = {
211
- title,
212
- multiple
213
- };
214
- if (!!allowedTypes) {
215
- frameConfig.library = {
216
- type: allowedTypes
217
- };
218
- }
219
- this.frame = wp.media(frameConfig);
220
- }
221
- if (modalClass) {
222
- this.frame.$el.addClass(modalClass);
223
- }
224
- if (unstableFeaturedImageFlow) {
225
- this.buildAndSetFeatureImageFrame();
226
- }
227
- this.initializeListeners();
228
197
  }
229
198
  initializeListeners() {
230
199
  // When an image is selected in the media frame...
@@ -310,7 +279,7 @@ class MediaUpload extends Component {
310
279
  wp.media.frame = this.frame;
311
280
  }
312
281
  componentWillUnmount() {
313
- this.frame.remove();
282
+ this.frame?.remove();
314
283
  }
315
284
  onUpdate(selections) {
316
285
  const {
@@ -400,9 +369,38 @@ class MediaUpload extends Component {
400
369
  }
401
370
  }
402
371
  openModal() {
403
- if (this.props.gallery) {
372
+ const {
373
+ allowedTypes,
374
+ gallery = false,
375
+ unstableFeaturedImageFlow = false,
376
+ modalClass,
377
+ multiple = false,
378
+ title = __('Select or Upload Media')
379
+ } = this.props;
380
+ const {
381
+ wp
382
+ } = window;
383
+ if (gallery) {
404
384
  this.buildAndSetGalleryFrame();
385
+ } else {
386
+ const frameConfig = {
387
+ title,
388
+ multiple
389
+ };
390
+ if (!!allowedTypes) {
391
+ frameConfig.library = {
392
+ type: allowedTypes
393
+ };
394
+ }
395
+ this.frame = wp.media(frameConfig);
396
+ }
397
+ if (modalClass) {
398
+ this.frame.$el.addClass(modalClass);
399
+ }
400
+ if (unstableFeaturedImageFlow) {
401
+ this.buildAndSetFeatureImageFrame();
405
402
  }
403
+ this.initializeListeners();
406
404
  this.frame.open();
407
405
  }
408
406
  render() {
@@ -1 +1 @@
1
- {"version":3,"names":["Component","__","DEFAULT_EMPTY_GALLERY","getFeaturedImageMediaFrame","wp","window","media","view","MediaFrame","Select","extend","featuredImageToolbar","toolbar","createSelectToolbar","text","l10n","setFeaturedImage","state","options","editState","selection","get","EditImage","model","single","controller","render","content","set","loadEditor","createStates","on","states","add","FeaturedImage","editImage","getGalleryDetailsMediaFrame","Post","galleryToolbar","editing","Toolbar","items","insert","style","updateGallery","insertGallery","priority","requires","library","click","close","trigger","setState","reset","Library","id","title","createGalleryTitle","filterable","multiple","editable","query","type","GalleryEdit","menu","displaySettings","GalleryAdd","slimImageObject","img","attrSet","reduce","result","key","hasOwnProperty","getAttachmentsCollection","ids","order","orderby","post__in","posts_per_page","MediaUpload","constructor","allowedTypes","gallery","unstableFeaturedImageFlow","modalClass","arguments","openModal","bind","onOpen","onSelect","onUpdate","onClose","buildAndSetGalleryFrame","frameConfig","frame","$el","addClass","buildAndSetFeatureImageFrame","initializeListeners","addToGallery","value","props","lastGalleryValue","remove","currentState","length","GalleryDetailsMediaFrame","attachments","Selection","models","toJSON","mimeType","featuredImageFrame","componentWillUnmount","selections","selectedImages","map","attachment","updateCollection","mode","hasMedia","Array","isArray","isGallery","valueArray","forEach","more","done","frameContent","collection","toArray","mirroring","_hasMore","open"],"sources":["@wordpress/media-utils/src/components/media-upload/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst DEFAULT_EMPTY_GALLERY = [];\n\n/**\n * Prepares the Featured Image toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Select} The default media workflow.\n */\nconst getFeaturedImageMediaFrame = () => {\n\tconst { wp } = window;\n\n\treturn wp.media.view.MediaFrame.Select.extend( {\n\t\t/**\n\t\t * Enables the Set Featured Image Button.\n\t\t *\n\t\t * @param {Object} toolbar toolbar for featured image state\n\t\t * @return {void}\n\t\t */\n\t\tfeaturedImageToolbar( toolbar ) {\n\t\t\tthis.createSelectToolbar( toolbar, {\n\t\t\t\ttext: wp.media.view.l10n.setFeaturedImage,\n\t\t\t\tstate: this.options.state,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'featured-image' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on(\n\t\t\t\t'toolbar:create:featured-image',\n\t\t\t\tthis.featuredImageToolbar,\n\t\t\t\tthis\n\t\t\t);\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.FeaturedImage(),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n/**\n * Prepares the Gallery toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Post} The default media workflow.\n */\nconst getGalleryDetailsMediaFrame = () => {\n\tconst { wp } = window;\n\t/**\n\t * Custom gallery details frame.\n\t *\n\t * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js\n\t * @class GalleryDetailsMediaFrame\n\t * @class\n\t */\n\treturn wp.media.view.MediaFrame.Post.extend( {\n\t\t/**\n\t\t * Set up gallery toolbar.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tgalleryToolbar() {\n\t\t\tconst editing = this.state().get( 'editing' );\n\t\t\tthis.toolbar.set(\n\t\t\t\tnew wp.media.view.Toolbar( {\n\t\t\t\t\tcontroller: this,\n\t\t\t\t\titems: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tstyle: 'primary',\n\t\t\t\t\t\t\ttext: editing\n\t\t\t\t\t\t\t\t? wp.media.view.l10n.updateGallery\n\t\t\t\t\t\t\t\t: wp.media.view.l10n.insertGallery,\n\t\t\t\t\t\t\tpriority: 80,\n\t\t\t\t\t\t\trequires: { library: true },\n\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * @fires wp.media.controller.State#update\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tclick() {\n\t\t\t\t\t\t\t\tconst controller = this.controller,\n\t\t\t\t\t\t\t\t\tstate = controller.state();\n\n\t\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\t\tstate.trigger(\n\t\t\t\t\t\t\t\t\t'update',\n\t\t\t\t\t\t\t\t\tstate.get( 'library' )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Restore and reset the default state.\n\t\t\t\t\t\t\t\tcontroller.setState( controller.options.state );\n\t\t\t\t\t\t\t\tcontroller.reset();\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\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'gallery' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on( 'toolbar:create:main-gallery', this.galleryToolbar, this );\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.Library( {\n\t\t\t\t\tid: 'gallery',\n\t\t\t\t\ttitle: wp.media.view.l10n.createGalleryTitle,\n\t\t\t\t\tpriority: 40,\n\t\t\t\t\ttoolbar: 'main-gallery',\n\t\t\t\t\tfilterable: 'uploaded',\n\t\t\t\t\tmultiple: 'add',\n\t\t\t\t\teditable: false,\n\n\t\t\t\t\tlibrary: wp.media.query( {\n\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t...this.options.library,\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryEdit( {\n\t\t\t\t\tlibrary: this.options.selection,\n\t\t\t\t\tediting: this.options.editing,\n\t\t\t\t\tmenu: 'gallery',\n\t\t\t\t\tdisplaySettings: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryAdd(),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n// The media library image object contains numerous attributes\n// we only need this set to display the image in the library.\nconst slimImageObject = ( img ) => {\n\tconst attrSet = [\n\t\t'sizes',\n\t\t'mime',\n\t\t'type',\n\t\t'subtype',\n\t\t'id',\n\t\t'url',\n\t\t'alt',\n\t\t'link',\n\t\t'caption',\n\t];\n\treturn attrSet.reduce( ( result, key ) => {\n\t\tif ( img?.hasOwnProperty( key ) ) {\n\t\t\tresult[ key ] = img[ key ];\n\t\t}\n\t\treturn result;\n\t}, {} );\n};\n\nconst getAttachmentsCollection = ( ids ) => {\n\tconst { wp } = window;\n\n\treturn wp.media.query( {\n\t\torder: 'ASC',\n\t\torderby: 'post__in',\n\t\tpost__in: ids,\n\t\tposts_per_page: -1,\n\t\tquery: true,\n\t\ttype: 'image',\n\t} );\n};\n\nclass MediaUpload extends Component {\n\tconstructor( {\n\t\tallowedTypes,\n\t\tgallery = false,\n\t\tunstableFeaturedImageFlow = false,\n\t\tmodalClass,\n\t\tmultiple = false,\n\t\ttitle = __( 'Select or Upload Media' ),\n\t} ) {\n\t\tsuper( ...arguments );\n\t\tthis.openModal = this.openModal.bind( this );\n\t\tthis.onOpen = this.onOpen.bind( this );\n\t\tthis.onSelect = this.onSelect.bind( this );\n\t\tthis.onUpdate = this.onUpdate.bind( this );\n\t\tthis.onClose = this.onClose.bind( this );\n\n\t\tconst { wp } = window;\n\n\t\tif ( gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t} else {\n\t\t\tconst frameConfig = {\n\t\t\t\ttitle,\n\t\t\t\tmultiple,\n\t\t\t};\n\t\t\tif ( !! allowedTypes ) {\n\t\t\t\tframeConfig.library = { type: allowedTypes };\n\t\t\t}\n\n\t\t\tthis.frame = wp.media( frameConfig );\n\t\t}\n\n\t\tif ( modalClass ) {\n\t\t\tthis.frame.$el.addClass( modalClass );\n\t\t}\n\n\t\tif ( unstableFeaturedImageFlow ) {\n\t\t\tthis.buildAndSetFeatureImageFrame();\n\t\t}\n\t\tthis.initializeListeners();\n\t}\n\n\tinitializeListeners() {\n\t\t// When an image is selected in the media frame...\n\t\tthis.frame.on( 'select', this.onSelect );\n\t\tthis.frame.on( 'update', this.onUpdate );\n\t\tthis.frame.on( 'open', this.onOpen );\n\t\tthis.frame.on( 'close', this.onClose );\n\t}\n\n\t/**\n\t * Sets the Gallery frame and initializes listeners.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetGalleryFrame() {\n\t\tconst {\n\t\t\taddToGallery = false,\n\t\t\tallowedTypes,\n\t\t\tmultiple = false,\n\t\t\tvalue = DEFAULT_EMPTY_GALLERY,\n\t\t} = this.props;\n\n\t\t// If the value did not changed there is no need to rebuild the frame,\n\t\t// we can continue to use the existing one.\n\t\tif ( value === this.lastGalleryValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { wp } = window;\n\n\t\tthis.lastGalleryValue = value;\n\n\t\t// If a frame already existed remove it.\n\t\tif ( this.frame ) {\n\t\t\tthis.frame.remove();\n\t\t}\n\t\tlet currentState;\n\t\tif ( addToGallery ) {\n\t\t\tcurrentState = 'gallery-library';\n\t\t} else {\n\t\t\tcurrentState = value && value.length ? 'gallery-edit' : 'gallery';\n\t\t}\n\t\tif ( ! this.GalleryDetailsMediaFrame ) {\n\t\t\tthis.GalleryDetailsMediaFrame = getGalleryDetailsMediaFrame();\n\t\t}\n\t\tconst attachments = getAttachmentsCollection( value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t\tmultiple,\n\t\t} );\n\t\tthis.frame = new this.GalleryDetailsMediaFrame( {\n\t\t\tmimeType: allowedTypes,\n\t\t\tstate: currentState,\n\t\t\tmultiple,\n\t\t\tselection,\n\t\t\tediting: value && value.length ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t\tthis.initializeListeners();\n\t}\n\n\t/**\n\t * Initializes the Media Library requirements for the featured image flow.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetFeatureImageFrame() {\n\t\tconst { wp } = window;\n\t\tconst featuredImageFrame = getFeaturedImageMediaFrame();\n\t\tconst attachments = getAttachmentsCollection( this.props.value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t} );\n\t\tthis.frame = new featuredImageFrame( {\n\t\t\tmimeType: this.props.allowedTypes,\n\t\t\tstate: 'featured-image',\n\t\t\tmultiple: this.props.multiple,\n\t\t\tselection,\n\t\t\tediting: this.props.value ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.frame.remove();\n\t}\n\n\tonUpdate( selections ) {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\tconst state = this.frame.state();\n\t\tconst selectedImages = selections || state.get( 'selection' );\n\n\t\tif ( ! selectedImages || ! selectedImages.models.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( multiple ) {\n\t\t\tonSelect(\n\t\t\t\tselectedImages.models.map( ( model ) =>\n\t\t\t\t\tslimImageObject( model.toJSON() )\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tonSelect( slimImageObject( selectedImages.models[ 0 ].toJSON() ) );\n\t\t}\n\t}\n\n\tonSelect() {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\t// Get media attachment details from the frame state.\n\t\tconst attachment = this.frame.state().get( 'selection' ).toJSON();\n\t\tonSelect( multiple ? attachment : attachment[ 0 ] );\n\t}\n\n\tonOpen() {\n\t\tconst { wp } = window;\n\t\tconst { value } = this.props;\n\t\tthis.updateCollection();\n\n\t\t//Handle active tab in media model on model open.\n\t\tif ( this.props.mode ) {\n\t\t\tthis.frame.content.mode( this.props.mode );\n\t\t}\n\n\t\t// Handle both this.props.value being either (number[]) multiple ids\n\t\t// (for galleries) or a (number) singular id (e.g. image block).\n\t\tconst hasMedia = Array.isArray( value ) ? !! value?.length : !! value;\n\n\t\tif ( ! hasMedia ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isGallery = this.props.gallery;\n\t\tconst selection = this.frame.state().get( 'selection' );\n\t\tconst valueArray = Array.isArray( value ) ? value : [ value ];\n\n\t\tif ( ! isGallery ) {\n\t\t\tvalueArray.forEach( ( id ) => {\n\t\t\t\tselection.add( wp.media.attachment( id ) );\n\t\t\t} );\n\t\t}\n\n\t\t// Load the images so they are available in the media modal.\n\t\tconst attachments = getAttachmentsCollection( valueArray );\n\n\t\t// Once attachments are loaded, set the current selection.\n\t\tattachments.more().done( function () {\n\t\t\tif ( isGallery && attachments?.models?.length ) {\n\t\t\t\tselection.add( attachments.models );\n\t\t\t}\n\t\t} );\n\t}\n\n\tonClose() {\n\t\tconst { onClose } = this.props;\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tupdateCollection() {\n\t\tconst frameContent = this.frame.content.get();\n\t\tif ( frameContent && frameContent.collection ) {\n\t\t\tconst collection = frameContent.collection;\n\n\t\t\t// Clean all attachments we have in memory.\n\t\t\tcollection\n\t\t\t\t.toArray()\n\t\t\t\t.forEach( ( model ) => model.trigger( 'destroy', model ) );\n\n\t\t\t// Reset has more flag, if library had small amount of items all items may have been loaded before.\n\t\t\tcollection.mirroring._hasMore = true;\n\n\t\t\t// Request items.\n\t\t\tcollection.more();\n\t\t}\n\t}\n\n\topenModal() {\n\t\tif ( this.props.gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t}\n\t\tthis.frame.open();\n\t}\n\n\trender() {\n\t\treturn this.props.render( { open: this.openModal } );\n\t}\n}\n\nexport default MediaUpload;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Component","__","DEFAULT_EMPTY_GALLERY","getFeaturedImageMediaFrame","wp","window","media","view","MediaFrame","Select","extend","featuredImageToolbar","toolbar","createSelectToolbar","text","l10n","setFeaturedImage","state","options","editState","selection","get","EditImage","model","single","controller","render","content","set","loadEditor","createStates","on","states","add","FeaturedImage","editImage","getGalleryDetailsMediaFrame","Post","galleryToolbar","editing","Toolbar","items","insert","style","updateGallery","insertGallery","priority","requires","library","click","close","trigger","setState","reset","Library","id","title","createGalleryTitle","filterable","multiple","editable","query","type","GalleryEdit","menu","displaySettings","GalleryAdd","slimImageObject","img","attrSet","reduce","result","key","hasOwnProperty","getAttachmentsCollection","ids","order","orderby","post__in","posts_per_page","MediaUpload","constructor","arguments","openModal","bind","onOpen","onSelect","onUpdate","onClose","initializeListeners","frame","buildAndSetGalleryFrame","addToGallery","allowedTypes","value","props","lastGalleryValue","remove","currentState","length","GalleryDetailsMediaFrame","attachments","Selection","models","toJSON","mimeType","buildAndSetFeatureImageFrame","featuredImageFrame","componentWillUnmount","selections","selectedImages","map","attachment","updateCollection","mode","hasMedia","Array","isArray","isGallery","gallery","valueArray","forEach","more","done","frameContent","collection","toArray","mirroring","_hasMore","unstableFeaturedImageFlow","modalClass","frameConfig","$el","addClass","open"],"sources":["@wordpress/media-utils/src/components/media-upload/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { Component } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\nconst DEFAULT_EMPTY_GALLERY = [];\n\n/**\n * Prepares the Featured Image toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Select} The default media workflow.\n */\nconst getFeaturedImageMediaFrame = () => {\n\tconst { wp } = window;\n\n\treturn wp.media.view.MediaFrame.Select.extend( {\n\t\t/**\n\t\t * Enables the Set Featured Image Button.\n\t\t *\n\t\t * @param {Object} toolbar toolbar for featured image state\n\t\t * @return {void}\n\t\t */\n\t\tfeaturedImageToolbar( toolbar ) {\n\t\t\tthis.createSelectToolbar( toolbar, {\n\t\t\t\ttext: wp.media.view.l10n.setFeaturedImage,\n\t\t\t\tstate: this.options.state,\n\t\t\t} );\n\t\t},\n\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'featured-image' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on(\n\t\t\t\t'toolbar:create:featured-image',\n\t\t\t\tthis.featuredImageToolbar,\n\t\t\t\tthis\n\t\t\t);\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.FeaturedImage(),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n/**\n * Prepares the Gallery toolbars and frames.\n *\n * @return {window.wp.media.view.MediaFrame.Post} The default media workflow.\n */\nconst getGalleryDetailsMediaFrame = () => {\n\tconst { wp } = window;\n\t/**\n\t * Custom gallery details frame.\n\t *\n\t * @see https://github.com/xwp/wp-core-media-widgets/blob/905edbccfc2a623b73a93dac803c5335519d7837/wp-admin/js/widgets/media-gallery-widget.js\n\t * @class GalleryDetailsMediaFrame\n\t * @class\n\t */\n\treturn wp.media.view.MediaFrame.Post.extend( {\n\t\t/**\n\t\t * Set up gallery toolbar.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tgalleryToolbar() {\n\t\t\tconst editing = this.state().get( 'editing' );\n\t\t\tthis.toolbar.set(\n\t\t\t\tnew wp.media.view.Toolbar( {\n\t\t\t\t\tcontroller: this,\n\t\t\t\t\titems: {\n\t\t\t\t\t\tinsert: {\n\t\t\t\t\t\t\tstyle: 'primary',\n\t\t\t\t\t\t\ttext: editing\n\t\t\t\t\t\t\t\t? wp.media.view.l10n.updateGallery\n\t\t\t\t\t\t\t\t: wp.media.view.l10n.insertGallery,\n\t\t\t\t\t\t\tpriority: 80,\n\t\t\t\t\t\t\trequires: { library: true },\n\n\t\t\t\t\t\t\t/**\n\t\t\t\t\t\t\t * @fires wp.media.controller.State#update\n\t\t\t\t\t\t\t */\n\t\t\t\t\t\t\tclick() {\n\t\t\t\t\t\t\t\tconst controller = this.controller,\n\t\t\t\t\t\t\t\t\tstate = controller.state();\n\n\t\t\t\t\t\t\t\tcontroller.close();\n\t\t\t\t\t\t\t\tstate.trigger(\n\t\t\t\t\t\t\t\t\t'update',\n\t\t\t\t\t\t\t\t\tstate.get( 'library' )\n\t\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\t\t// Restore and reset the default state.\n\t\t\t\t\t\t\t\tcontroller.setState( controller.options.state );\n\t\t\t\t\t\t\t\tcontroller.reset();\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\n\t\t/**\n\t\t * Handle the edit state requirements of selected media item.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\teditState() {\n\t\t\tconst selection = this.state( 'gallery' ).get( 'selection' );\n\t\t\tconst view = new wp.media.view.EditImage( {\n\t\t\t\tmodel: selection.single(),\n\t\t\t\tcontroller: this,\n\t\t\t} ).render();\n\n\t\t\t// Set the view to the EditImage frame using the selected image.\n\t\t\tthis.content.set( view );\n\n\t\t\t// After bringing in the frame, load the actual editor via an ajax call.\n\t\t\tview.loadEditor();\n\t\t},\n\n\t\t/**\n\t\t * Create the default states.\n\t\t *\n\t\t * @return {void}\n\t\t */\n\t\tcreateStates: function createStates() {\n\t\t\tthis.on( 'toolbar:create:main-gallery', this.galleryToolbar, this );\n\t\t\tthis.on( 'content:render:edit-image', this.editState, this );\n\n\t\t\tthis.states.add( [\n\t\t\t\tnew wp.media.controller.Library( {\n\t\t\t\t\tid: 'gallery',\n\t\t\t\t\ttitle: wp.media.view.l10n.createGalleryTitle,\n\t\t\t\t\tpriority: 40,\n\t\t\t\t\ttoolbar: 'main-gallery',\n\t\t\t\t\tfilterable: 'uploaded',\n\t\t\t\t\tmultiple: 'add',\n\t\t\t\t\teditable: false,\n\n\t\t\t\t\tlibrary: wp.media.query( {\n\t\t\t\t\t\ttype: 'image',\n\t\t\t\t\t\t...this.options.library,\n\t\t\t\t\t} ),\n\t\t\t\t} ),\n\t\t\t\tnew wp.media.controller.EditImage( {\n\t\t\t\t\tmodel: this.options.editImage,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryEdit( {\n\t\t\t\t\tlibrary: this.options.selection,\n\t\t\t\t\tediting: this.options.editing,\n\t\t\t\t\tmenu: 'gallery',\n\t\t\t\t\tdisplaySettings: false,\n\t\t\t\t\tmultiple: true,\n\t\t\t\t} ),\n\n\t\t\t\tnew wp.media.controller.GalleryAdd(),\n\t\t\t] );\n\t\t},\n\t} );\n};\n\n// The media library image object contains numerous attributes\n// we only need this set to display the image in the library.\nconst slimImageObject = ( img ) => {\n\tconst attrSet = [\n\t\t'sizes',\n\t\t'mime',\n\t\t'type',\n\t\t'subtype',\n\t\t'id',\n\t\t'url',\n\t\t'alt',\n\t\t'link',\n\t\t'caption',\n\t];\n\treturn attrSet.reduce( ( result, key ) => {\n\t\tif ( img?.hasOwnProperty( key ) ) {\n\t\t\tresult[ key ] = img[ key ];\n\t\t}\n\t\treturn result;\n\t}, {} );\n};\n\nconst getAttachmentsCollection = ( ids ) => {\n\tconst { wp } = window;\n\n\treturn wp.media.query( {\n\t\torder: 'ASC',\n\t\torderby: 'post__in',\n\t\tpost__in: ids,\n\t\tposts_per_page: -1,\n\t\tquery: true,\n\t\ttype: 'image',\n\t} );\n};\n\nclass MediaUpload extends Component {\n\tconstructor() {\n\t\tsuper( ...arguments );\n\t\tthis.openModal = this.openModal.bind( this );\n\t\tthis.onOpen = this.onOpen.bind( this );\n\t\tthis.onSelect = this.onSelect.bind( this );\n\t\tthis.onUpdate = this.onUpdate.bind( this );\n\t\tthis.onClose = this.onClose.bind( this );\n\t}\n\n\tinitializeListeners() {\n\t\t// When an image is selected in the media frame...\n\t\tthis.frame.on( 'select', this.onSelect );\n\t\tthis.frame.on( 'update', this.onUpdate );\n\t\tthis.frame.on( 'open', this.onOpen );\n\t\tthis.frame.on( 'close', this.onClose );\n\t}\n\n\t/**\n\t * Sets the Gallery frame and initializes listeners.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetGalleryFrame() {\n\t\tconst {\n\t\t\taddToGallery = false,\n\t\t\tallowedTypes,\n\t\t\tmultiple = false,\n\t\t\tvalue = DEFAULT_EMPTY_GALLERY,\n\t\t} = this.props;\n\n\t\t// If the value did not changed there is no need to rebuild the frame,\n\t\t// we can continue to use the existing one.\n\t\tif ( value === this.lastGalleryValue ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { wp } = window;\n\n\t\tthis.lastGalleryValue = value;\n\n\t\t// If a frame already existed remove it.\n\t\tif ( this.frame ) {\n\t\t\tthis.frame.remove();\n\t\t}\n\t\tlet currentState;\n\t\tif ( addToGallery ) {\n\t\t\tcurrentState = 'gallery-library';\n\t\t} else {\n\t\t\tcurrentState = value && value.length ? 'gallery-edit' : 'gallery';\n\t\t}\n\t\tif ( ! this.GalleryDetailsMediaFrame ) {\n\t\t\tthis.GalleryDetailsMediaFrame = getGalleryDetailsMediaFrame();\n\t\t}\n\t\tconst attachments = getAttachmentsCollection( value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t\tmultiple,\n\t\t} );\n\t\tthis.frame = new this.GalleryDetailsMediaFrame( {\n\t\t\tmimeType: allowedTypes,\n\t\t\tstate: currentState,\n\t\t\tmultiple,\n\t\t\tselection,\n\t\t\tediting: value && value.length ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t\tthis.initializeListeners();\n\t}\n\n\t/**\n\t * Initializes the Media Library requirements for the featured image flow.\n\t *\n\t * @return {void}\n\t */\n\tbuildAndSetFeatureImageFrame() {\n\t\tconst { wp } = window;\n\t\tconst featuredImageFrame = getFeaturedImageMediaFrame();\n\t\tconst attachments = getAttachmentsCollection( this.props.value );\n\t\tconst selection = new wp.media.model.Selection( attachments.models, {\n\t\t\tprops: attachments.props.toJSON(),\n\t\t} );\n\t\tthis.frame = new featuredImageFrame( {\n\t\t\tmimeType: this.props.allowedTypes,\n\t\t\tstate: 'featured-image',\n\t\t\tmultiple: this.props.multiple,\n\t\t\tselection,\n\t\t\tediting: this.props.value ? true : false,\n\t\t} );\n\t\twp.media.frame = this.frame;\n\t}\n\n\tcomponentWillUnmount() {\n\t\tthis.frame?.remove();\n\t}\n\n\tonUpdate( selections ) {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\tconst state = this.frame.state();\n\t\tconst selectedImages = selections || state.get( 'selection' );\n\n\t\tif ( ! selectedImages || ! selectedImages.models.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( multiple ) {\n\t\t\tonSelect(\n\t\t\t\tselectedImages.models.map( ( model ) =>\n\t\t\t\t\tslimImageObject( model.toJSON() )\n\t\t\t\t)\n\t\t\t);\n\t\t} else {\n\t\t\tonSelect( slimImageObject( selectedImages.models[ 0 ].toJSON() ) );\n\t\t}\n\t}\n\n\tonSelect() {\n\t\tconst { onSelect, multiple = false } = this.props;\n\t\t// Get media attachment details from the frame state.\n\t\tconst attachment = this.frame.state().get( 'selection' ).toJSON();\n\t\tonSelect( multiple ? attachment : attachment[ 0 ] );\n\t}\n\n\tonOpen() {\n\t\tconst { wp } = window;\n\t\tconst { value } = this.props;\n\t\tthis.updateCollection();\n\n\t\t//Handle active tab in media model on model open.\n\t\tif ( this.props.mode ) {\n\t\t\tthis.frame.content.mode( this.props.mode );\n\t\t}\n\n\t\t// Handle both this.props.value being either (number[]) multiple ids\n\t\t// (for galleries) or a (number) singular id (e.g. image block).\n\t\tconst hasMedia = Array.isArray( value ) ? !! value?.length : !! value;\n\n\t\tif ( ! hasMedia ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst isGallery = this.props.gallery;\n\t\tconst selection = this.frame.state().get( 'selection' );\n\t\tconst valueArray = Array.isArray( value ) ? value : [ value ];\n\n\t\tif ( ! isGallery ) {\n\t\t\tvalueArray.forEach( ( id ) => {\n\t\t\t\tselection.add( wp.media.attachment( id ) );\n\t\t\t} );\n\t\t}\n\n\t\t// Load the images so they are available in the media modal.\n\t\tconst attachments = getAttachmentsCollection( valueArray );\n\n\t\t// Once attachments are loaded, set the current selection.\n\t\tattachments.more().done( function () {\n\t\t\tif ( isGallery && attachments?.models?.length ) {\n\t\t\t\tselection.add( attachments.models );\n\t\t\t}\n\t\t} );\n\t}\n\n\tonClose() {\n\t\tconst { onClose } = this.props;\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}\n\n\tupdateCollection() {\n\t\tconst frameContent = this.frame.content.get();\n\t\tif ( frameContent && frameContent.collection ) {\n\t\t\tconst collection = frameContent.collection;\n\n\t\t\t// Clean all attachments we have in memory.\n\t\t\tcollection\n\t\t\t\t.toArray()\n\t\t\t\t.forEach( ( model ) => model.trigger( 'destroy', model ) );\n\n\t\t\t// Reset has more flag, if library had small amount of items all items may have been loaded before.\n\t\t\tcollection.mirroring._hasMore = true;\n\n\t\t\t// Request items.\n\t\t\tcollection.more();\n\t\t}\n\t}\n\n\topenModal() {\n\t\tconst {\n\t\t\tallowedTypes,\n\t\t\tgallery = false,\n\t\t\tunstableFeaturedImageFlow = false,\n\t\t\tmodalClass,\n\t\t\tmultiple = false,\n\t\t\ttitle = __( 'Select or Upload Media' ),\n\t\t} = this.props;\n\t\tconst { wp } = window;\n\n\t\tif ( gallery ) {\n\t\t\tthis.buildAndSetGalleryFrame();\n\t\t} else {\n\t\t\tconst frameConfig = {\n\t\t\t\ttitle,\n\t\t\t\tmultiple,\n\t\t\t};\n\t\t\tif ( !! allowedTypes ) {\n\t\t\t\tframeConfig.library = { type: allowedTypes };\n\t\t\t}\n\n\t\t\tthis.frame = wp.media( frameConfig );\n\t\t}\n\n\t\tif ( modalClass ) {\n\t\t\tthis.frame.$el.addClass( modalClass );\n\t\t}\n\n\t\tif ( unstableFeaturedImageFlow ) {\n\t\t\tthis.buildAndSetFeatureImageFrame();\n\t\t}\n\t\tthis.initializeListeners();\n\t\tthis.frame.open();\n\t}\n\n\trender() {\n\t\treturn this.props.render( { open: this.openModal } );\n\t}\n}\n\nexport default MediaUpload;\n"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wordpress/media-utils",
3
- "version": "4.38.0",
3
+ "version": "4.39.0",
4
4
  "description": "WordPress Media Upload Utils.",
5
5
  "author": "The WordPress Contributors",
6
6
  "license": "GPL-2.0-or-later",
@@ -26,13 +26,13 @@
26
26
  "module": "build-module/index.js",
27
27
  "dependencies": {
28
28
  "@babel/runtime": "^7.16.0",
29
- "@wordpress/api-fetch": "^6.44.0",
30
- "@wordpress/blob": "^3.47.0",
31
- "@wordpress/element": "^5.24.0",
32
- "@wordpress/i18n": "^4.47.0"
29
+ "@wordpress/api-fetch": "^6.45.0",
30
+ "@wordpress/blob": "^3.48.0",
31
+ "@wordpress/element": "^5.25.0",
32
+ "@wordpress/i18n": "^4.48.0"
33
33
  },
34
34
  "publishConfig": {
35
35
  "access": "public"
36
36
  },
37
- "gitHead": "d98dff8ea96f29cfea045bf964269f46f040d539"
37
+ "gitHead": "fcf61b4beff747222c2c81d09d757ca1a0abd925"
38
38
  }
@@ -224,45 +224,13 @@ const getAttachmentsCollection = ( ids ) => {
224
224
  };
225
225
 
226
226
  class MediaUpload extends Component {
227
- constructor( {
228
- allowedTypes,
229
- gallery = false,
230
- unstableFeaturedImageFlow = false,
231
- modalClass,
232
- multiple = false,
233
- title = __( 'Select or Upload Media' ),
234
- } ) {
227
+ constructor() {
235
228
  super( ...arguments );
236
229
  this.openModal = this.openModal.bind( this );
237
230
  this.onOpen = this.onOpen.bind( this );
238
231
  this.onSelect = this.onSelect.bind( this );
239
232
  this.onUpdate = this.onUpdate.bind( this );
240
233
  this.onClose = this.onClose.bind( this );
241
-
242
- const { wp } = window;
243
-
244
- if ( gallery ) {
245
- this.buildAndSetGalleryFrame();
246
- } else {
247
- const frameConfig = {
248
- title,
249
- multiple,
250
- };
251
- if ( !! allowedTypes ) {
252
- frameConfig.library = { type: allowedTypes };
253
- }
254
-
255
- this.frame = wp.media( frameConfig );
256
- }
257
-
258
- if ( modalClass ) {
259
- this.frame.$el.addClass( modalClass );
260
- }
261
-
262
- if ( unstableFeaturedImageFlow ) {
263
- this.buildAndSetFeatureImageFrame();
264
- }
265
- this.initializeListeners();
266
234
  }
267
235
 
268
236
  initializeListeners() {
@@ -348,7 +316,7 @@ class MediaUpload extends Component {
348
316
  }
349
317
 
350
318
  componentWillUnmount() {
351
- this.frame.remove();
319
+ this.frame?.remove();
352
320
  }
353
321
 
354
322
  onUpdate( selections ) {
@@ -444,9 +412,38 @@ class MediaUpload extends Component {
444
412
  }
445
413
 
446
414
  openModal() {
447
- if ( this.props.gallery ) {
415
+ const {
416
+ allowedTypes,
417
+ gallery = false,
418
+ unstableFeaturedImageFlow = false,
419
+ modalClass,
420
+ multiple = false,
421
+ title = __( 'Select or Upload Media' ),
422
+ } = this.props;
423
+ const { wp } = window;
424
+
425
+ if ( gallery ) {
448
426
  this.buildAndSetGalleryFrame();
427
+ } else {
428
+ const frameConfig = {
429
+ title,
430
+ multiple,
431
+ };
432
+ if ( !! allowedTypes ) {
433
+ frameConfig.library = { type: allowedTypes };
434
+ }
435
+
436
+ this.frame = wp.media( frameConfig );
437
+ }
438
+
439
+ if ( modalClass ) {
440
+ this.frame.$el.addClass( modalClass );
441
+ }
442
+
443
+ if ( unstableFeaturedImageFlow ) {
444
+ this.buildAndSetFeatureImageFrame();
449
445
  }
446
+ this.initializeListeners();
450
447
  this.frame.open();
451
448
  }
452
449