@wordpress/block-library 8.28.5 → 8.30.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 +4 -0
- package/build/audio/edit.js +7 -17
- package/build/audio/edit.js.map +1 -1
- package/build/audio/edit.native.js.map +1 -1
- package/build/avatar/edit.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/buttons/edit.js +1 -6
- package/build/buttons/edit.js.map +1 -1
- package/build/buttons/edit.native.js +1 -7
- package/build/buttons/edit.native.js.map +1 -1
- package/build/columns/edit.js +8 -2
- package/build/columns/edit.js.map +1 -1
- package/build/comment-author-avatar/edit.js +1 -1
- package/build/comment-author-avatar/edit.js.map +1 -1
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +0 -6
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/cover/edit.native.js.map +1 -1
- package/build/details/index.js +1 -0
- package/build/details/index.js.map +1 -1
- package/build/file/deprecated.js.map +1 -1
- package/build/file/edit.js +6 -13
- package/build/file/edit.js.map +1 -1
- package/build/file/edit.native.js.map +1 -1
- package/build/file/save.js.map +1 -1
- package/build/form-input/edit.js +1 -1
- package/build/form-input/edit.js.map +1 -1
- package/build/gallery/edit.js +5 -5
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.native.js.map +1 -1
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery.native.js.map +1 -1
- package/build/group/variations.js +12 -15
- package/build/group/variations.js.map +1 -1
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js.map +1 -1
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +5 -0
- package/build/list/edit.js.map +1 -1
- package/build/list/ordered-list-settings.js +1 -1
- package/build/list/ordered-list-settings.js.map +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +1 -0
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +16 -7
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/media-text/media-container.native.js +1 -1
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation-link/link-ui.js.map +1 -1
- package/build/paragraph/edit.native.js.map +1 -1
- package/build/pattern/edit.js +23 -9
- package/build/pattern/edit.js.map +1 -1
- package/build/post-excerpt/edit.js.map +1 -1
- package/build/post-featured-image/dimension-controls.js.map +1 -1
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-navigation-link/edit.js.map +1 -1
- package/build/query/edit/pattern-selection-modal.js.map +1 -1
- package/build/query/utils.js +7 -5
- package/build/query/utils.js.map +1 -1
- package/build/query-pagination-next/edit.js.map +1 -1
- package/build/query-pagination-previous/edit.js.map +1 -1
- package/build/quote/deprecated.js +111 -12
- package/build/quote/deprecated.js.map +1 -1
- package/build/quote/edit.js +5 -5
- package/build/quote/edit.js.map +1 -1
- package/build/quote/index.js +1 -1
- package/build/quote/index.js.map +1 -1
- package/build/quote/save.js +2 -2
- package/build/quote/save.js.map +1 -1
- package/build/read-more/edit.js.map +1 -1
- package/build/search/edit.js +1 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/edit.native.js.map +1 -1
- package/build/site-logo/edit.js.map +1 -1
- package/build/site-title/{edit/index.js → edit.js} +1 -1
- package/build/site-title/edit.js.map +1 -0
- package/build/social-link/edit.js.map +1 -1
- package/build/social-links/edit.native.js.map +1 -1
- package/build/spacer/edit.js.map +1 -1
- package/build/table-of-contents/edit.js.map +1 -1
- package/build/template-part/edit/index.js +53 -1
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/selection-modal.js +2 -8
- package/build/template-part/edit/selection-modal.js.map +1 -1
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js +30 -0
- package/build/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build/utils/hooks.js +55 -4
- package/build/utils/hooks.js.map +1 -1
- package/build/video/edit-common-settings.js.map +1 -1
- package/build/video/edit.js +7 -16
- package/build/video/edit.js.map +1 -1
- package/build/video/edit.native.js +2 -7
- package/build/video/edit.native.js.map +1 -1
- package/build-module/audio/edit.js +10 -20
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/audio/edit.native.js.map +1 -1
- package/build-module/avatar/edit.js.map +1 -1
- package/build-module/button/edit.js +1 -1
- package/build-module/button/edit.js.map +1 -1
- package/build-module/buttons/edit.js +2 -7
- package/build-module/buttons/edit.js.map +1 -1
- package/build-module/buttons/edit.native.js +1 -7
- package/build-module/buttons/edit.native.js.map +1 -1
- package/build-module/columns/edit.js +8 -2
- package/build-module/columns/edit.js.map +1 -1
- package/build-module/comment-author-avatar/edit.js +1 -1
- package/build-module/comment-author-avatar/edit.js.map +1 -1
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +1 -7
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/details/index.js +1 -0
- package/build-module/details/index.js.map +1 -1
- package/build-module/file/deprecated.js.map +1 -1
- package/build-module/file/edit.js +7 -14
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/edit.native.js.map +1 -1
- package/build-module/file/save.js.map +1 -1
- package/build-module/form-input/edit.js +1 -1
- package/build-module/form-input/edit.js.map +1 -1
- package/build-module/gallery/edit.js +5 -5
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.native.js.map +1 -1
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery.native.js.map +1 -1
- package/build-module/group/variations.js +12 -15
- package/build-module/group/variations.js.map +1 -1
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js.map +1 -1
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +5 -0
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list/ordered-list-settings.js +1 -1
- package/build-module/list/ordered-list-settings.js.map +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +1 -0
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +17 -8
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/media-text/media-container.native.js +1 -1
- package/build-module/media-text/media-container.native.js.map +1 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation-link/link-ui.js.map +1 -1
- package/build-module/paragraph/edit.native.js.map +1 -1
- package/build-module/pattern/edit.js +24 -10
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/post-excerpt/edit.js.map +1 -1
- package/build-module/post-featured-image/dimension-controls.js.map +1 -1
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-navigation-link/edit.js.map +1 -1
- package/build-module/query/edit/pattern-selection-modal.js.map +1 -1
- package/build-module/query/utils.js +7 -5
- package/build-module/query/utils.js.map +1 -1
- package/build-module/query-pagination-next/edit.js.map +1 -1
- package/build-module/query-pagination-previous/edit.js.map +1 -1
- package/build-module/quote/deprecated.js +112 -13
- package/build-module/quote/deprecated.js.map +1 -1
- package/build-module/quote/edit.js +5 -5
- package/build-module/quote/edit.js.map +1 -1
- package/build-module/quote/index.js +1 -1
- package/build-module/quote/index.js.map +1 -1
- package/build-module/quote/save.js +2 -2
- package/build-module/quote/save.js.map +1 -1
- package/build-module/read-more/edit.js.map +1 -1
- package/build-module/search/edit.js +1 -1
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/edit.native.js.map +1 -1
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/site-title/{edit/index.js → edit.js} +1 -1
- package/build-module/site-title/edit.js.map +1 -0
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/social-links/edit.native.js.map +1 -1
- package/build-module/spacer/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +57 -5
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/selection-modal.js +2 -8
- package/build-module/template-part/edit/selection-modal.js.map +1 -1
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js +24 -0
- package/build-module/template-part/edit/utils/map-template-part-to-block-pattern.js.map +1 -0
- package/build-module/utils/hooks.js +54 -3
- package/build-module/utils/hooks.js.map +1 -1
- package/build-module/video/edit-common-settings.js.map +1 -1
- package/build-module/video/edit.js +10 -19
- package/build-module/video/edit.js.map +1 -1
- package/build-module/video/edit.native.js +2 -7
- package/build-module/video/edit.native.js.map +1 -1
- package/build-style/editor-rtl.css +4 -1
- package/build-style/editor.css +4 -1
- package/build-style/group/editor-rtl.css +1 -1
- package/build-style/group/editor.css +1 -1
- package/build-style/image/editor-rtl.css +3 -0
- package/build-style/image/editor.css +3 -0
- package/package.json +34 -34
- package/src/audio/edit.js +9 -19
- package/src/audio/edit.native.js +3 -3
- package/src/avatar/edit.js +1 -1
- package/src/avatar/index.php +12 -1
- package/src/block/index.php +2 -0
- package/src/button/edit.js +2 -2
- package/src/buttons/edit.js +3 -16
- package/src/buttons/edit.native.js +2 -18
- package/src/calendar/index.php +5 -0
- package/src/columns/edit.js +9 -2
- package/src/comment-author-avatar/edit.js +1 -1
- package/src/comments/index.php +2 -0
- package/src/cover/edit/index.js +2 -2
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit/resizable-cover-popover.js +1 -6
- package/src/cover/edit.native.js +1 -1
- package/src/details/block.json +1 -0
- package/src/file/deprecated.js +3 -3
- package/src/file/edit.js +8 -15
- package/src/file/edit.native.js +4 -4
- package/src/file/save.js +1 -1
- package/src/form-input/edit.js +1 -1
- package/src/gallery/edit.js +6 -12
- package/src/gallery/gallery.native.js +1 -1
- package/src/gallery/test/index.native.js +1 -1
- package/src/gallery/v1/edit.js +2 -2
- package/src/gallery/v1/gallery.native.js +1 -1
- package/src/group/editor.scss +1 -1
- package/src/group/variations.js +3 -6
- package/src/image/edit.js +1 -1
- package/src/image/edit.native.js +1 -1
- package/src/image/editor.scss +6 -0
- package/src/image/image.js +2 -2
- package/src/latest-posts/edit.native.js +1 -1
- package/src/list/edit.js +5 -0
- package/src/list/ordered-list-settings.js +1 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/hooks/use-indent-list-item.js +2 -0
- package/src/list-item/hooks/use-outdent-list-item.js +2 -0
- package/src/list-item/hooks/use-space.js +16 -9
- package/src/media-text/media-container.native.js +5 -3
- package/src/media-text/test/edit.native.js +58 -0
- package/src/missing/test/edit-integration.native.js +2 -1
- package/src/navigation/edit/index.js +1 -1
- package/src/navigation/edit/test/navigation-menu-selector.js +3 -3
- package/src/navigation/index.php +18 -13
- package/src/navigation-link/link-ui.js +2 -2
- package/src/paragraph/edit.native.js +1 -1
- package/src/paragraph/test/edit.native.js +36 -0
- package/src/pattern/edit.js +27 -10
- package/src/post-author-biography/index.php +4 -3
- package/src/post-author-name/index.php +4 -3
- package/src/post-excerpt/edit.js +1 -1
- package/src/post-featured-image/dimension-controls.js +4 -4
- package/src/post-featured-image/edit.js +1 -1
- package/src/post-navigation-link/edit.js +1 -1
- package/src/post-template/index.php +2 -0
- package/src/query/edit/pattern-selection-modal.js +1 -1
- package/src/query/utils.js +6 -4
- package/src/query-pagination-next/edit.js +1 -1
- package/src/query-pagination-previous/edit.js +1 -1
- package/src/quote/block.json +1 -1
- package/src/quote/deprecated.js +110 -15
- package/src/quote/edit.js +5 -5
- package/src/quote/save.js +2 -2
- package/src/quote/test/__snapshots__/transforms.native.js.snap +2 -2
- package/src/read-more/edit.js +1 -1
- package/src/search/edit.js +1 -1
- package/src/search/edit.native.js +4 -4
- package/src/site-logo/edit.js +1 -1
- package/src/social-link/edit.js +1 -1
- package/src/social-links/edit.native.js +1 -1
- package/src/spacer/edit.js +1 -1
- package/src/table-of-contents/edit.js +1 -1
- package/src/template-part/edit/index.js +91 -4
- package/src/template-part/edit/selection-modal.js +4 -8
- package/src/template-part/edit/utils/map-template-part-to-block-pattern.js +23 -0
- package/src/utils/hooks.js +53 -3
- package/src/video/edit-common-settings.js +1 -1
- package/src/video/edit.js +10 -18
- package/src/video/edit.native.js +5 -8
- package/src/video/test/edit.native.js +0 -14
- package/build/site-title/edit/index.js.map +0 -1
- package/build-module/site-title/edit/index.js.map +0 -1
- /package/src/site-title/{edit/index.js → edit.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","TouchableWithoutFeedback","Text","Clipboard","requestImageFailedRetryDialog","requestImageUploadCancelDialog","mediaUploadSync","BlockIcon","MediaPlaceholder","MediaUploadProgress","RichText","PlainText","BlockControls","MediaUpload","InspectorControls","MEDIA_TYPE_ANY","store","blockEditorStore","ToolbarButton","ToolbarGroup","PanelBody","ToggleControl","TextControl","SelectControl","Icon","file","icon","replace","button","external","link","warning","Component","__","_x","compose","withPreferredColorScheme","withDispatch","withSelect","getProtocol","coreStore","styles","URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","isEmpty","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","createElement","onClick","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","onChange","options","hideCancelButton","checked","disabled","labelStyle","onPress","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","style","placeholder","onTextLayout","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","accessible","testID","container","withoutInteractiveFormatting","__unstableMobileNoFocusOnMount","tagName","underlineColorAndroid","deleteEnter","textAlign","errorContainer","editable","buttonText","unstableOnFocus","onBlur","selectionColor","color","placeholderTextColor","render","wasBlockJustInserted","labels","instructions","onSelect","onFocus","allowedTypes","autoOpenMediaUpload","isReplacingMedia","select","clientId","isEditorSidebarOpened","isNotFileHref","getMedia","undefined","dispatch","openGeneralSidebar"],"sources":["@wordpress/block-library/src/file/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\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\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'Choose a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia={ true }\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["View","TouchableWithoutFeedback","Text","Clipboard","requestImageFailedRetryDialog","requestImageUploadCancelDialog","mediaUploadSync","BlockIcon","MediaPlaceholder","MediaUploadProgress","RichText","PlainText","BlockControls","MediaUpload","InspectorControls","MEDIA_TYPE_ANY","store","blockEditorStore","ToolbarButton","ToolbarGroup","PanelBody","ToggleControl","TextControl","SelectControl","Icon","file","icon","replace","button","external","link","warning","Component","__","_x","compose","withPreferredColorScheme","withDispatch","withSelect","getProtocol","coreStore","styles","URL_COPIED_NOTIFICATION_DURATION_MS","MIN_WIDTH","FileEdit","constructor","props","state","isUploadInProgress","isSidebarLinkSettings","placeholderTextWidth","maxWidth","timerRef","onLayout","bind","onSelectFile","onChangeFileName","onChangeDownloadButtonText","updateMediaProgress","finishMediaUploadWithSuccess","finishMediaUploadWithFailure","getFileComponent","onChangeDownloadButtonVisibility","onCopyURL","onChangeOpenInNewWindow","onChangeLinkDestinationOption","onShowLinkSettings","onFilePressed","mediaUploadStateReset","componentDidMount","attributes","setAttributes","downloadButtonText","isEmpty","id","url","componentWillUnmount","clearTimeout","componentDidUpdate","prevProps","isSidebarOpened","setState","media","href","fileName","title","textLinkHref","showDownloadButton","newHref","isUrlCopied","setString","setTimeout","newValue","textLinkTarget","payload","mediaUrl","mediaServerId","mediaId","openSidebar","getToolbarEditButton","open","createElement","onClick","getInspectorControls","isUploadFailed","linkDestinationOptions","value","label","attachmentPage","actionButtonStyle","getStylesFromColorScheme","actionButton","actionButtonDark","isCopyUrlDisabled","dimmedActionButtonStyle","dimmedActionButton","dimmedActionButtonDark","finalButtonStyle","onChange","options","hideCancelButton","checked","disabled","labelStyle","onPress","getStyleForAlignment","align","getFlexAlign","alignment","alignSelf","getTextAlignmentForAlignment","nativeEvent","width","layout","paddingLeft","paddingRight","defaultButton","getPlaceholderWidth","placeholderText","style","placeholder","onTextLayout","textWidth","lines","Math","min","openMediaOptions","getMediaOptions","isSelected","isButtonFocused","minWidth","onUpdateMediaProgress","onFinishMediaUploadWithSuccess","onFinishMediaUploadWithFailure","onMediaUploadStateReset","renderContent","dimmedStyle","disabledButton","errorIconStyle","Object","assign","errorIcon","uploadFailed","accessible","testID","container","withoutInteractiveFormatting","__unstableMobileNoFocusOnMount","tagName","underlineColorAndroid","deleteEnter","textAlign","errorContainer","editable","buttonText","unstableOnFocus","onBlur","selectionColor","color","placeholderTextColor","render","wasBlockJustInserted","labels","instructions","onSelect","onFocus","allowedTypes","autoOpenMediaUpload","isReplacingMedia","select","clientId","isEditorSidebarOpened","isNotFileHref","getMedia","undefined","dispatch","openGeneralSidebar"],"sources":["@wordpress/block-library/src/file/edit.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View, TouchableWithoutFeedback, Text } from 'react-native';\nimport Clipboard from '@react-native-clipboard/clipboard';\n\n/**\n * WordPress dependencies\n */\nimport {\n\trequestImageFailedRetryDialog,\n\trequestImageUploadCancelDialog,\n\tmediaUploadSync,\n} from '@wordpress/react-native-bridge';\nimport {\n\tBlockIcon,\n\tMediaPlaceholder,\n\tMediaUploadProgress,\n\tRichText,\n\tPlainText,\n\tBlockControls,\n\tMediaUpload,\n\tInspectorControls,\n\tMEDIA_TYPE_ANY,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport {\n\tToolbarButton,\n\tToolbarGroup,\n\tPanelBody,\n\tToggleControl,\n\tTextControl,\n\tSelectControl,\n\tIcon,\n} from '@wordpress/components';\nimport {\n\tfile as icon,\n\treplace,\n\tbutton,\n\texternal,\n\tlink,\n\twarning,\n} from '@wordpress/icons';\nimport { Component } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { compose, withPreferredColorScheme } from '@wordpress/compose';\nimport { withDispatch, withSelect } from '@wordpress/data';\nimport { getProtocol } from '@wordpress/url';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst URL_COPIED_NOTIFICATION_DURATION_MS = 1500;\nconst MIN_WIDTH = 40;\n\nexport class FileEdit extends Component {\n\tconstructor( props ) {\n\t\tsuper( props );\n\n\t\tthis.state = {\n\t\t\tisUploadInProgress: false,\n\t\t\tisSidebarLinkSettings: false,\n\t\t\tplaceholderTextWidth: 0,\n\t\t\tmaxWidth: 0,\n\t\t};\n\n\t\tthis.timerRef = null;\n\n\t\tthis.onLayout = this.onLayout.bind( this );\n\t\tthis.onSelectFile = this.onSelectFile.bind( this );\n\t\tthis.onChangeFileName = this.onChangeFileName.bind( this );\n\t\tthis.onChangeDownloadButtonText =\n\t\t\tthis.onChangeDownloadButtonText.bind( this );\n\t\tthis.updateMediaProgress = this.updateMediaProgress.bind( this );\n\t\tthis.finishMediaUploadWithSuccess =\n\t\t\tthis.finishMediaUploadWithSuccess.bind( this );\n\t\tthis.finishMediaUploadWithFailure =\n\t\t\tthis.finishMediaUploadWithFailure.bind( this );\n\t\tthis.getFileComponent = this.getFileComponent.bind( this );\n\t\tthis.onChangeDownloadButtonVisibility =\n\t\t\tthis.onChangeDownloadButtonVisibility.bind( this );\n\t\tthis.onCopyURL = this.onCopyURL.bind( this );\n\t\tthis.onChangeOpenInNewWindow =\n\t\t\tthis.onChangeOpenInNewWindow.bind( this );\n\n\t\tthis.onChangeLinkDestinationOption =\n\t\t\tthis.onChangeLinkDestinationOption.bind( this );\n\t\tthis.onShowLinkSettings = this.onShowLinkSettings.bind( this );\n\t\tthis.onFilePressed = this.onFilePressed.bind( this );\n\t\tthis.mediaUploadStateReset = this.mediaUploadStateReset.bind( this );\n\t}\n\n\tcomponentDidMount() {\n\t\tconst { attributes, setAttributes } = this.props;\n\t\tconst { downloadButtonText } = attributes;\n\n\t\tif ( RichText.isEmpty( downloadButtonText ) ) {\n\t\t\tsetAttributes( {\n\t\t\t\tdownloadButtonText: _x( 'Download', 'button label' ),\n\t\t\t} );\n\t\t}\n\n\t\tif (\n\t\t\tattributes.id &&\n\t\t\tattributes.url &&\n\t\t\tgetProtocol( attributes.url ) === 'file:'\n\t\t) {\n\t\t\tmediaUploadSync();\n\t\t}\n\t}\n\n\tcomponentWillUnmount() {\n\t\tclearTimeout( this.timerRef );\n\t}\n\n\tcomponentDidUpdate( prevProps ) {\n\t\tif (\n\t\t\tprevProps.isSidebarOpened &&\n\t\t\t! this.props.isSidebarOpened &&\n\t\t\tthis.state.isSidebarLinkSettings\n\t\t) {\n\t\t\tthis.setState( { isSidebarLinkSettings: false } );\n\t\t}\n\t}\n\n\tonSelectFile( media ) {\n\t\tthis.props.setAttributes( {\n\t\t\thref: media.url,\n\t\t\tfileName: media.title,\n\t\t\ttextLinkHref: media.url,\n\t\t\tid: media.id,\n\t\t} );\n\t}\n\n\tonChangeFileName( fileName ) {\n\t\tthis.props.setAttributes( { fileName } );\n\t}\n\n\tonChangeDownloadButtonText( downloadButtonText ) {\n\t\tthis.props.setAttributes( { downloadButtonText } );\n\t}\n\n\tonChangeDownloadButtonVisibility( showDownloadButton ) {\n\t\tthis.props.setAttributes( { showDownloadButton } );\n\t}\n\n\tonChangeLinkDestinationOption( newHref ) {\n\t\t// Choose Media File or Attachment Page (when file is in Media Library)\n\t\tthis.props.setAttributes( { textLinkHref: newHref } );\n\t}\n\n\tonCopyURL() {\n\t\tif ( this.state.isUrlCopied ) {\n\t\t\treturn;\n\t\t}\n\t\tconst { href } = this.props.attributes;\n\t\tClipboard.setString( href );\n\n\t\tthis.setState( { isUrlCopied: true } );\n\t\tthis.timerRef = setTimeout( () => {\n\t\t\tthis.setState( { isUrlCopied: false } );\n\t\t}, URL_COPIED_NOTIFICATION_DURATION_MS );\n\t}\n\n\tonChangeOpenInNewWindow( newValue ) {\n\t\tthis.props.setAttributes( {\n\t\t\ttextLinkTarget: newValue ? '_blank' : false,\n\t\t} );\n\t}\n\n\tupdateMediaProgress( payload ) {\n\t\tconst { setAttributes } = this.props;\n\t\tif ( payload.mediaUrl ) {\n\t\t\tsetAttributes( { url: payload.mediaUrl } );\n\t\t}\n\t\tif ( ! this.state.isUploadInProgress ) {\n\t\t\tthis.setState( { isUploadInProgress: true } );\n\t\t}\n\t}\n\n\tfinishMediaUploadWithSuccess( payload ) {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\thref: payload.mediaUrl,\n\t\t\tid: payload.mediaServerId,\n\t\t\ttextLinkHref: payload.mediaUrl,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tfinishMediaUploadWithFailure( payload ) {\n\t\tthis.props.setAttributes( { id: payload.mediaId } );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tmediaUploadStateReset() {\n\t\tconst { setAttributes } = this.props;\n\n\t\tsetAttributes( {\n\t\t\tid: null,\n\t\t\thref: null,\n\t\t\ttextLinkHref: null,\n\t\t\tfileName: null,\n\t\t} );\n\t\tthis.setState( { isUploadInProgress: false } );\n\t}\n\n\tonShowLinkSettings() {\n\t\tthis.setState(\n\t\t\t{\n\t\t\t\tisSidebarLinkSettings: true,\n\t\t\t},\n\t\t\tthis.props.openSidebar\n\t\t);\n\t}\n\n\tgetToolbarEditButton( open ) {\n\t\treturn (\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Edit file' ) }\n\t\t\t\t\t\ticon={ replace }\n\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Link To' ) }\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tonClick={ this.onShowLinkSettings }\n\t\t\t\t\t/>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t);\n\t}\n\n\tgetInspectorControls(\n\t\t{ showDownloadButton, textLinkTarget, href, textLinkHref },\n\t\tmedia,\n\t\tisUploadInProgress,\n\t\tisUploadFailed\n\t) {\n\t\tlet linkDestinationOptions = [ { value: href, label: __( 'URL' ) } ];\n\t\tconst attachmentPage = media && media.link;\n\t\tconst { isSidebarLinkSettings } = this.state;\n\n\t\tif ( attachmentPage ) {\n\t\t\tlinkDestinationOptions = [\n\t\t\t\t{ value: href, label: __( 'Media file' ) },\n\t\t\t\t{ value: attachmentPage, label: __( 'Attachment page' ) },\n\t\t\t];\n\t\t}\n\n\t\tconst actionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.actionButton,\n\t\t\tstyles.actionButtonDark\n\t\t);\n\n\t\tconst isCopyUrlDisabled = isUploadFailed || isUploadInProgress;\n\n\t\tconst dimmedActionButtonStyle = this.props.getStylesFromColorScheme(\n\t\t\tstyles.dimmedActionButton,\n\t\t\tstyles.dimmedActionButtonDark\n\t\t);\n\n\t\tconst finalButtonStyle = isCopyUrlDisabled\n\t\t\t? dimmedActionButtonStyle\n\t\t\t: actionButtonStyle;\n\n\t\treturn (\n\t\t\t<InspectorControls>\n\t\t\t\t{ isSidebarLinkSettings || (\n\t\t\t\t\t<PanelBody title={ __( 'File block settings' ) } />\n\t\t\t\t) }\n\t\t\t\t<PanelBody>\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\ticon={ link }\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ textLinkHref }\n\t\t\t\t\t\tonChange={ this.onChangeLinkDestinationOption }\n\t\t\t\t\t\toptions={ linkDestinationOptions }\n\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\ticon={ external }\n\t\t\t\t\t\tlabel={ __( 'Open in new tab' ) }\n\t\t\t\t\t\tchecked={ textLinkTarget === '_blank' }\n\t\t\t\t\t\tonChange={ this.onChangeOpenInNewWindow }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! isSidebarLinkSettings && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\ticon={ button }\n\t\t\t\t\t\t\tlabel={ __( 'Show download button' ) }\n\t\t\t\t\t\t\tchecked={ showDownloadButton }\n\t\t\t\t\t\t\tonChange={ this.onChangeDownloadButtonVisibility }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tdisabled={ isCopyUrlDisabled }\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tthis.state.isUrlCopied\n\t\t\t\t\t\t\t\t? __( 'Copied!' )\n\t\t\t\t\t\t\t\t: __( 'Copy file URL' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlabelStyle={\n\t\t\t\t\t\t\tthis.state.isUrlCopied || finalButtonStyle\n\t\t\t\t\t\t}\n\t\t\t\t\t\tonPress={ this.onCopyURL }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t);\n\t}\n\n\tgetStyleForAlignment( align ) {\n\t\tconst getFlexAlign = ( alignment ) => {\n\t\t\tswitch ( alignment ) {\n\t\t\t\tcase 'right':\n\t\t\t\t\treturn 'flex-end';\n\t\t\t\tcase 'center':\n\t\t\t\t\treturn 'center';\n\t\t\t\tdefault:\n\t\t\t\t\treturn 'flex-start';\n\t\t\t}\n\t\t};\n\t\treturn { alignSelf: getFlexAlign( align ) };\n\t}\n\n\tgetTextAlignmentForAlignment( align ) {\n\t\tswitch ( align ) {\n\t\t\tcase 'right':\n\t\t\t\treturn 'right';\n\t\t\tcase 'center':\n\t\t\t\treturn 'center';\n\t\t\tdefault:\n\t\t\t\treturn 'left';\n\t\t}\n\t}\n\n\tonFilePressed() {\n\t\tconst { attributes } = this.props;\n\n\t\tif ( this.state.isUploadInProgress ) {\n\t\t\trequestImageUploadCancelDialog( attributes.id );\n\t\t} else if (\n\t\t\tattributes.id &&\n\t\t\tgetProtocol( attributes.href ) === 'file:'\n\t\t) {\n\t\t\trequestImageFailedRetryDialog( attributes.id );\n\t\t}\n\t}\n\n\tonLayout( { nativeEvent } ) {\n\t\tconst { width } = nativeEvent.layout;\n\t\tconst { paddingLeft, paddingRight } = styles.defaultButton;\n\t\tthis.setState( {\n\t\t\tmaxWidth: width - ( paddingLeft + paddingRight ),\n\t\t} );\n\t}\n\n\t// Render `Text` with `placeholderText` styled as a placeholder\n\t// to calculate its width which then is set as a `minWidth`\n\t// This should be fixed on RNAztec level. In the mean time,\n\t// We use the same strategy implemented in Button block.\n\tgetPlaceholderWidth( placeholderText ) {\n\t\tconst { maxWidth, placeholderTextWidth } = this.state;\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tstyle={ styles.placeholder }\n\t\t\t\tonTextLayout={ ( { nativeEvent } ) => {\n\t\t\t\t\tconst textWidth =\n\t\t\t\t\t\tnativeEvent.lines[ 0 ] && nativeEvent.lines[ 0 ].width;\n\t\t\t\t\tif ( textWidth && textWidth !== placeholderTextWidth ) {\n\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\tplaceholderTextWidth: Math.min(\n\t\t\t\t\t\t\t\ttextWidth,\n\t\t\t\t\t\t\t\tmaxWidth\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\t\t{ placeholderText }\n\t\t\t</Text>\n\t\t);\n\t}\n\n\tgetFileComponent( openMediaOptions, getMediaOptions ) {\n\t\tconst { attributes, media, isSelected } = this.props;\n\t\tconst { isButtonFocused, placeholderTextWidth } = this.state;\n\n\t\tconst { fileName, downloadButtonText, id, showDownloadButton, align } =\n\t\t\tattributes;\n\n\t\tconst minWidth =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? MIN_WIDTH\n\t\t\t\t: placeholderTextWidth;\n\n\t\tconst placeholderText =\n\t\t\tisButtonFocused ||\n\t\t\t( ! isButtonFocused &&\n\t\t\t\tdownloadButtonText &&\n\t\t\t\tdownloadButtonText !== '' )\n\t\t\t\t? ''\n\t\t\t\t: __( 'Add text…' );\n\n\t\treturn (\n\t\t\t<MediaUploadProgress\n\t\t\t\tmediaId={ id }\n\t\t\t\tonUpdateMediaProgress={ this.updateMediaProgress }\n\t\t\t\tonFinishMediaUploadWithSuccess={\n\t\t\t\t\tthis.finishMediaUploadWithSuccess\n\t\t\t\t}\n\t\t\t\tonFinishMediaUploadWithFailure={\n\t\t\t\t\tthis.finishMediaUploadWithFailure\n\t\t\t\t}\n\t\t\t\tonMediaUploadStateReset={ this.mediaUploadStateReset }\n\t\t\t\trenderContent={ ( { isUploadInProgress, isUploadFailed } ) => {\n\t\t\t\t\tconst dimmedStyle =\n\t\t\t\t\t\t( this.state.isUploadInProgress || isUploadFailed ) &&\n\t\t\t\t\t\tstyles.disabledButton;\n\t\t\t\t\tconst finalButtonStyle = [\n\t\t\t\t\t\tstyles.defaultButton,\n\t\t\t\t\t\tdimmedStyle,\n\t\t\t\t\t];\n\n\t\t\t\t\tconst errorIconStyle = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tstyles.errorIcon,\n\t\t\t\t\t\tstyles.uploadFailed\n\t\t\t\t\t);\n\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<TouchableWithoutFeedback\n\t\t\t\t\t\t\taccessible={ ! isSelected }\n\t\t\t\t\t\t\tonPress={ this.onFilePressed }\n\t\t\t\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\tonLayout={ this.onLayout }\n\t\t\t\t\t\t\t\ttestID=\"file-edit-container\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ this.getPlaceholderWidth( placeholderText ) }\n\t\t\t\t\t\t\t\t{ isUploadInProgress ||\n\t\t\t\t\t\t\t\t\tthis.getToolbarEditButton(\n\t\t\t\t\t\t\t\t\t\topenMediaOptions\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ getMediaOptions() }\n\t\t\t\t\t\t\t\t{ isSelected &&\n\t\t\t\t\t\t\t\t\tthis.getInspectorControls(\n\t\t\t\t\t\t\t\t\t\tattributes,\n\t\t\t\t\t\t\t\t\t\tmedia,\n\t\t\t\t\t\t\t\t\t\tisUploadInProgress,\n\t\t\t\t\t\t\t\t\t\tisUploadFailed\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t<View style={ styles.container }>\n\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\tonChange={ this.onChangeFileName }\n\t\t\t\t\t\t\t\t\t\tplaceholder={ __( 'File name' ) }\n\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\tvalue={ fileName }\n\t\t\t\t\t\t\t\t\t\tdeleteEnter\n\t\t\t\t\t\t\t\t\t\ttextAlign={ this.getTextAlignmentForAlignment(\n\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t{ isUploadFailed && (\n\t\t\t\t\t\t\t\t\t\t<View style={ styles.errorContainer }>\n\t\t\t\t\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ warning }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ errorIconStyle }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t<PlainText\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ __( 'Error' ) }\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.uploadFailed }\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t{ showDownloadButton &&\n\t\t\t\t\t\t\t\t\tthis.state.maxWidth > 0 && (\n\t\t\t\t\t\t\t\t\t\t<View\n\t\t\t\t\t\t\t\t\t\t\tstyle={ [\n\t\t\t\t\t\t\t\t\t\t\t\tfinalButtonStyle,\n\t\t\t\t\t\t\t\t\t\t\t\tthis.getStyleForAlignment(\n\t\t\t\t\t\t\t\t\t\t\t\t\talign\n\t\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\t] }\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t<RichText\n\t\t\t\t\t\t\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\t\t\t\t\t\t\t__unstableMobileNoFocusOnMount\n\t\t\t\t\t\t\t\t\t\t\t\ttagName=\"p\"\n\t\t\t\t\t\t\t\t\t\t\t\ttextAlign=\"center\"\n\t\t\t\t\t\t\t\t\t\t\t\tminWidth={ minWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tmaxWidth={ this.state.maxWidth }\n\t\t\t\t\t\t\t\t\t\t\t\tdeleteEnter\n\t\t\t\t\t\t\t\t\t\t\t\tstyle={ styles.buttonText }\n\t\t\t\t\t\t\t\t\t\t\t\tvalue={ downloadButtonText }\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholder={ placeholderText }\n\t\t\t\t\t\t\t\t\t\t\t\tunstableOnFocus={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: true,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tonBlur={ () =>\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis.setState( {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tisButtonFocused: false,\n\t\t\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tselectionColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.buttonText.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tplaceholderTextColor={\n\t\t\t\t\t\t\t\t\t\t\t\t\tstyles.placeholderTextColor\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.color\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\tunderlineColorAndroid=\"transparent\"\n\t\t\t\t\t\t\t\t\t\t\t\tonChange={\n\t\t\t\t\t\t\t\t\t\t\t\t\tthis\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t.onChangeDownloadButtonText\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</TouchableWithoutFeedback>\n\t\t\t\t\t);\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n\n\trender() {\n\t\tconst { attributes, wasBlockJustInserted, isSelected } = this.props;\n\t\tconst { href } = attributes;\n\n\t\tif ( ! href ) {\n\t\t\treturn (\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tlabels={ {\n\t\t\t\t\t\ttitle: __( 'File' ),\n\t\t\t\t\t\tinstructions: __( 'Choose a file' ),\n\t\t\t\t\t} }\n\t\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\t\tonFocus={ this.props.onFocus }\n\t\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\t\tautoOpenMediaUpload={ isSelected && wasBlockJustInserted }\n\t\t\t\t/>\n\t\t\t);\n\t\t}\n\n\t\treturn (\n\t\t\t<MediaUpload\n\t\t\t\tallowedTypes={ [ MEDIA_TYPE_ANY ] }\n\t\t\t\tisReplacingMedia\n\t\t\t\tonSelect={ this.onSelectFile }\n\t\t\t\trender={ ( { open, getMediaOptions } ) => {\n\t\t\t\t\treturn this.getFileComponent( open, getMediaOptions );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t}\n}\n\nexport default compose( [\n\twithSelect( ( select, props ) => {\n\t\tconst { attributes, isSelected, clientId } = props;\n\t\tconst { id, href } = attributes;\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\tconst isNotFileHref = id && getProtocol( href ) !== 'file:';\n\t\treturn {\n\t\t\tmedia: isNotFileHref\n\t\t\t\t? select( coreStore ).getMedia( id )\n\t\t\t\t: undefined,\n\t\t\tisSidebarOpened: isSelected && isEditorSidebarOpened(),\n\t\t\twasBlockJustInserted: select(\n\t\t\t\tblockEditorStore\n\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t};\n\t} ),\n\twithDispatch( ( dispatch ) => {\n\t\tconst { openGeneralSidebar } = dispatch( 'core/edit-post' );\n\t\treturn {\n\t\t\topenSidebar: () => openGeneralSidebar( 'edit-post/block' ),\n\t\t};\n\t} ),\n\twithPreferredColorScheme,\n] )( FileEdit );\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","save","attributes","href","fileId","fileName","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","pdfEmbedLabel","isEmpty","toString","hasFilename","describedById","undefined","createElement","Fragment","className","data","type","style","width","height","id","target","rel","Content","value","download"],"sources":["@wordpress/block-library/src/file/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\thref,\n\t\tfileId,\n\t\tfileName,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\n\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t? 'PDF embed'\n\t\t: // To do: use toPlainText, but we need ensure it's RichTextData. See\n\t\t // https://github.com/WordPress/gutenberg/pull/56710.\n\t\t fileName.toString();\n\n\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t// Only output an `aria-describedby` when the element it's referring to is\n\t// actually rendered.\n\tconst describedById = hasFilename ? fileId : undefined;\n\n\treturn (\n\t\thref && (\n\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t{ displayPreview && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ hasFilename && (\n\t\t\t\t\t<a\n\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={\n\t\t\t\t\t\t\ttextLinkTarget ? 'noreferrer noopener' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdownload
|
|
1
|
+
{"version":3,"names":["classnames","RichText","useBlockProps","__experimentalGetElementClassName","save","attributes","href","fileId","fileName","textLinkHref","textLinkTarget","showDownloadButton","downloadButtonText","displayPreview","previewHeight","pdfEmbedLabel","isEmpty","toString","hasFilename","describedById","undefined","createElement","Fragment","className","data","type","style","width","height","id","target","rel","Content","value","download"],"sources":["@wordpress/block-library/src/file/save.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tRichText,\n\tuseBlockProps,\n\t__experimentalGetElementClassName,\n} from '@wordpress/block-editor';\n\nexport default function save( { attributes } ) {\n\tconst {\n\t\thref,\n\t\tfileId,\n\t\tfileName,\n\t\ttextLinkHref,\n\t\ttextLinkTarget,\n\t\tshowDownloadButton,\n\t\tdownloadButtonText,\n\t\tdisplayPreview,\n\t\tpreviewHeight,\n\t} = attributes;\n\n\tconst pdfEmbedLabel = RichText.isEmpty( fileName )\n\t\t? 'PDF embed'\n\t\t: // To do: use toPlainText, but we need ensure it's RichTextData. See\n\t\t // https://github.com/WordPress/gutenberg/pull/56710.\n\t\t fileName.toString();\n\n\tconst hasFilename = ! RichText.isEmpty( fileName );\n\n\t// Only output an `aria-describedby` when the element it's referring to is\n\t// actually rendered.\n\tconst describedById = hasFilename ? fileId : undefined;\n\n\treturn (\n\t\thref && (\n\t\t\t<div { ...useBlockProps.save() }>\n\t\t\t\t{ displayPreview && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<object\n\t\t\t\t\t\t\tclassName=\"wp-block-file__embed\"\n\t\t\t\t\t\t\tdata={ href }\n\t\t\t\t\t\t\ttype=\"application/pdf\"\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\twidth: '100%',\n\t\t\t\t\t\t\t\theight: `${ previewHeight }px`,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\taria-label={ pdfEmbedLabel }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\t{ hasFilename && (\n\t\t\t\t\t<a\n\t\t\t\t\t\tid={ describedById }\n\t\t\t\t\t\thref={ textLinkHref }\n\t\t\t\t\t\ttarget={ textLinkTarget }\n\t\t\t\t\t\trel={\n\t\t\t\t\t\t\ttextLinkTarget ? 'noreferrer noopener' : undefined\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ fileName } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t\t{ showDownloadButton && (\n\t\t\t\t\t<a\n\t\t\t\t\t\thref={ href }\n\t\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t\t'wp-block-file__button',\n\t\t\t\t\t\t\t__experimentalGetElementClassName( 'button' )\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tdownload\n\t\t\t\t\t\taria-describedby={ describedById }\n\t\t\t\t\t>\n\t\t\t\t\t\t<RichText.Content value={ downloadButtonText } />\n\t\t\t\t\t</a>\n\t\t\t\t) }\n\t\t\t</div>\n\t\t)\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SACCC,QAAQ,EACRC,aAAa,EACbC,iCAAiC,QAC3B,yBAAyB;AAEhC,eAAe,SAASC,IAAIA,CAAE;EAAEC;AAAW,CAAC,EAAG;EAC9C,MAAM;IACLC,IAAI;IACJC,MAAM;IACNC,QAAQ;IACRC,YAAY;IACZC,cAAc;IACdC,kBAAkB;IAClBC,kBAAkB;IAClBC,cAAc;IACdC;EACD,CAAC,GAAGT,UAAU;EAEd,MAAMU,aAAa,GAAGd,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC,GAC/C,WAAW;EACX;EACA;EACAA,QAAQ,CAACS,QAAQ,CAAC,CAAC;EAEtB,MAAMC,WAAW,GAAG,CAAEjB,QAAQ,CAACe,OAAO,CAAER,QAAS,CAAC;;EAElD;EACA;EACA,MAAMW,aAAa,GAAGD,WAAW,GAAGX,MAAM,GAAGa,SAAS;EAEtD,OACCd,IAAI,IACHe,aAAA;IAAA,GAAUnB,aAAa,CAACE,IAAI,CAAC;EAAC,GAC3BS,cAAc,IACfQ,aAAA,CAAAC,QAAA,QACCD,aAAA;IACCE,SAAS,EAAC,sBAAsB;IAChCC,IAAI,EAAGlB,IAAM;IACbmB,IAAI,EAAC,iBAAiB;IACtBC,KAAK,EAAG;MACPC,KAAK,EAAE,MAAM;MACbC,MAAM,EAAG,GAAGd,aAAe;IAC5B,CAAG;IACH,cAAaC;EAAe,CAC5B,CACA,CACF,EACCG,WAAW,IACZG,aAAA;IACCQ,EAAE,EAAGV,aAAe;IACpBb,IAAI,EAAGG,YAAc;IACrBqB,MAAM,EAAGpB,cAAgB;IACzBqB,GAAG,EACFrB,cAAc,GAAG,qBAAqB,GAAGU;EACzC,GAEDC,aAAA,CAACpB,QAAQ,CAAC+B,OAAO;IAACC,KAAK,EAAGzB;EAAU,CAAE,CACpC,CACH,EACCG,kBAAkB,IACnBU,aAAA;IACCf,IAAI,EAAGA,IAAM;IACbiB,SAAS,EAAGvB,UAAU,CACrB,uBAAuB,EACvBG,iCAAiC,CAAE,QAAS,CAC7C,CAAG;IACH+B,QAAQ;IACR,oBAAmBf;EAAe,GAElCE,aAAA,CAACpB,QAAQ,CAAC+B,OAAO;IAACC,KAAK,EAAGrB;EAAoB,CAAE,CAC9C,CAEA,CACL;AAEH"}
|
|
@@ -34,7 +34,7 @@ function InputFieldBlock({
|
|
|
34
34
|
ref.current.focus();
|
|
35
35
|
}
|
|
36
36
|
const controls = createElement(Fragment, null, 'hidden' !== type && createElement(InspectorControls, null, createElement(PanelBody, {
|
|
37
|
-
title: __('
|
|
37
|
+
title: __('Settings')
|
|
38
38
|
}, 'checkbox' !== type && createElement(CheckboxControl, {
|
|
39
39
|
label: __('Inline label'),
|
|
40
40
|
checked: inlineLabel,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","group","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( '
|
|
1
|
+
{"version":3,"names":["classNames","__","InspectorControls","RichText","useBlockProps","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","PanelBody","TextControl","CheckboxControl","useRef","InputFieldBlock","attributes","setAttributes","className","type","name","label","inlineLabel","required","placeholder","value","blockProps","ref","TagName","borderProps","colorProps","current","focus","controls","createElement","Fragment","title","checked","onChange","newVal","group","autoComplete","help","event","target","tagName","newLabel","undefined","style"],"sources":["@wordpress/block-library/src/form-input/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tRichText,\n\tuseBlockProps,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n} from '@wordpress/block-editor';\nimport { PanelBody, TextControl, CheckboxControl } from '@wordpress/components';\n\nimport { useRef } from '@wordpress/element';\n\nfunction InputFieldBlock( { attributes, setAttributes, className } ) {\n\tconst { type, name, label, inlineLabel, required, placeholder, value } =\n\t\tattributes;\n\tconst blockProps = useBlockProps();\n\tconst ref = useRef();\n\tconst TagName = type === 'textarea' ? 'textarea' : 'input';\n\n\tconst borderProps = useBorderProps( attributes );\n\tconst colorProps = useColorProps( attributes );\n\tif ( ref.current ) {\n\t\tref.current.focus();\n\t}\n\n\tconst controls = (\n\t\t<>\n\t\t\t{ 'hidden' !== type && (\n\t\t\t\t<InspectorControls>\n\t\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t\t{ 'checkbox' !== type && (\n\t\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\t\tlabel={ __( 'Inline label' ) }\n\t\t\t\t\t\t\t\tchecked={ inlineLabel }\n\t\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tinlineLabel: newVal,\n\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t<CheckboxControl\n\t\t\t\t\t\t\tlabel={ __( 'Required' ) }\n\t\t\t\t\t\t\tchecked={ required }\n\t\t\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\trequired: newVal,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</PanelBody>\n\t\t\t\t</InspectorControls>\n\t\t\t) }\n\t\t\t<InspectorControls group=\"advanced\">\n\t\t\t\t<TextControl\n\t\t\t\t\tautoComplete=\"off\"\n\t\t\t\t\tlabel={ __( 'Name' ) }\n\t\t\t\t\tvalue={ name }\n\t\t\t\t\tonChange={ ( newVal ) => {\n\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\tname: newVal,\n\t\t\t\t\t\t} );\n\t\t\t\t\t} }\n\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t'Affects the \"name\" atribute of the input element, and is used as a name for the form submission results.'\n\t\t\t\t\t) }\n\t\t\t\t/>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tif ( 'hidden' === type ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ controls }\n\t\t\t\t<input\n\t\t\t\t\ttype=\"hidden\"\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Value' ) }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { value: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\t\t\t<span\n\t\t\t\tclassName={ classNames( 'wp-block-form-input__label', {\n\t\t\t\t\t'is-label-inline': inlineLabel || 'checkbox' === type,\n\t\t\t\t} ) }\n\t\t\t>\n\t\t\t\t<RichText\n\t\t\t\t\ttagName=\"span\"\n\t\t\t\t\tclassName=\"wp-block-form-input__label-content\"\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( newLabel ) =>\n\t\t\t\t\t\tsetAttributes( { label: newLabel } )\n\t\t\t\t\t}\n\t\t\t\t\taria-label={ label ? __( 'Label' ) : __( 'Empty label' ) }\n\t\t\t\t\tdata-empty={ label ? false : true }\n\t\t\t\t\tplaceholder={ __( 'Type the label for this input' ) }\n\t\t\t\t/>\n\t\t\t\t<TagName\n\t\t\t\t\ttype={ 'textarea' === type ? undefined : type }\n\t\t\t\t\tclassName={ classNames(\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t'wp-block-form-input__input',\n\t\t\t\t\t\tcolorProps.className,\n\t\t\t\t\t\tborderProps.className\n\t\t\t\t\t) }\n\t\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t\t// which is confusing.\n\t\t\t\t\tplaceholder={\n\t\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t\t}\n\t\t\t\t\tvalue={ placeholder }\n\t\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t\t}\n\t\t\t\t\taria-required={ required }\n\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t...borderProps.style,\n\t\t\t\t\t\t...colorProps.style,\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</div>\n\t);\n}\n\nexport default InputFieldBlock;\n"],"mappings":"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"}
|
|
@@ -48,6 +48,9 @@ const PLACEHOLDER_TEXT = Platform.isNative ? __('Add media') : __('Drag images,
|
|
|
48
48
|
const MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative ? {
|
|
49
49
|
type: 'stepper'
|
|
50
50
|
} : {};
|
|
51
|
+
const DEFAULT_BLOCK = {
|
|
52
|
+
name: 'core/image'
|
|
53
|
+
};
|
|
51
54
|
const EMPTY_ARRAY = [];
|
|
52
55
|
function GalleryEdit(props) {
|
|
53
56
|
const {
|
|
@@ -81,7 +84,6 @@ function GalleryEdit(props) {
|
|
|
81
84
|
const {
|
|
82
85
|
getBlock,
|
|
83
86
|
getSettings,
|
|
84
|
-
preferredStyle,
|
|
85
87
|
innerBlockImages,
|
|
86
88
|
blockWasJustInserted,
|
|
87
89
|
multiGallerySelection
|
|
@@ -94,12 +96,10 @@ function GalleryEdit(props) {
|
|
|
94
96
|
getBlock: _getBlock,
|
|
95
97
|
wasBlockJustInserted
|
|
96
98
|
} = select(blockEditorStore);
|
|
97
|
-
const preferredStyleVariations = _getSettings().__experimentalPreferredStyleVariations;
|
|
98
99
|
const multiSelectedClientIds = getMultiSelectedBlockClientIds();
|
|
99
100
|
return {
|
|
100
101
|
getBlock: _getBlock,
|
|
101
102
|
getSettings: _getSettings,
|
|
102
|
-
preferredStyle: preferredStyleVariations?.value?.['core/image'],
|
|
103
103
|
innerBlockImages: (_getBlock$innerBlocks = _getBlock(clientId)?.innerBlocks) !== null && _getBlock$innerBlocks !== void 0 ? _getBlock$innerBlocks : EMPTY_ARRAY,
|
|
104
104
|
blockWasJustInserted: wasBlockJustInserted(clientId, 'inserter_menu'),
|
|
105
105
|
multiGallerySelection: multiSelectedClientIds.length && multiSelectedClientIds.every(_clientId => getBlockName(_clientId) === 'core/gallery')
|
|
@@ -146,8 +146,6 @@ function GalleryEdit(props) {
|
|
|
146
146
|
let newClassName;
|
|
147
147
|
if (imageAttributes.className && imageAttributes.className !== '') {
|
|
148
148
|
newClassName = imageAttributes.className;
|
|
149
|
-
} else {
|
|
150
|
-
newClassName = preferredStyle ? `is-style-${preferredStyle}` : undefined;
|
|
151
149
|
}
|
|
152
150
|
let newLinkTarget;
|
|
153
151
|
if (imageAttributes.linkTarget || imageAttributes.rel) {
|
|
@@ -355,6 +353,8 @@ function GalleryEdit(props) {
|
|
|
355
353
|
marginVertical: 0
|
|
356
354
|
};
|
|
357
355
|
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
356
|
+
defaultBlock: DEFAULT_BLOCK,
|
|
357
|
+
directInsert: true,
|
|
358
358
|
orientation: 'horizontal',
|
|
359
359
|
renderAppender: false,
|
|
360
360
|
...nativeInnerBlockProps
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","compose","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","preferredStyle","innerBlockImages","blockWasJustInserted","multiGallerySelection","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","preferredStyleVariations","__experimentalPreferredStyleVariations","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","createElement","handleUpload","icon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","orientation","renderAppender","children","hasLinkTo","Fragment","__nextHasNoMarginBottom","onChange","min","max","Math","required","__next40pxDefaultSize","help","options","hideCancelButton","checked","isWeb","VisualLabel","group","name","mediaIds","blockGap","style","spacing","isNarrow"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst EMPTY_ARRAY = [];\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tpreferredStyle,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst preferredStyleVariations =\n\t\t\t\t_getSettings().__experimentalPreferredStyleVariations;\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tpreferredStyle:\n\t\t\t\t\tpreferredStyleVariations?.value?.[ 'core/image' ],\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t} else {\n\t\t\tnewClassName = preferredStyle\n\t\t\t\t? `is-style-${ preferredStyle }`\n\t\t\t\t: undefined;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton={ true }\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple={ true }\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","compose","BaseControl","PanelBody","SelectControl","ToggleControl","RangeControl","Spinner","store","blockEditorStore","MediaPlaceholder","InspectorControls","useBlockProps","useInnerBlocksProps","BlockControls","MediaReplaceFlow","Platform","useEffect","useMemo","__","_x","sprintf","useSelect","useDispatch","withViewportMatch","View","createBlock","createBlobURL","noticesStore","sharedIcon","defaultColumnsNumber","pickRelevantMediaFiles","getHrefAndDestination","getUpdatedLinkTargetSettings","getImageSizeAttributes","Gallery","LINK_DESTINATION_ATTACHMENT","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","useImageSizes","useGetNewImages","useGetMedia","GapStyles","MAX_COLUMNS","linkOptions","value","label","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","isNative","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","DEFAULT_BLOCK","name","EMPTY_ARRAY","GalleryEdit","props","setAttributes","attributes","className","clientId","isSelected","insertBlocksAfter","isContentLocked","onFocus","columns","imageCrop","randomOrder","linkTarget","linkTo","sizeSlug","__unstableMarkNextChangeAsNotPersistent","replaceInnerBlocks","updateBlockAttributes","selectBlock","createSuccessNotice","createErrorNotice","getBlock","getSettings","innerBlockImages","blockWasJustInserted","multiGallerySelection","select","_getBlock$innerBlocks","getBlockName","getMultiSelectedBlockClientIds","_getSettings","_getBlock","wasBlockJustInserted","multiSelectedClientIds","innerBlocks","length","every","_clientId","images","map","block","id","url","fromSavedContent","Boolean","originalContent","imageData","newImages","forEach","newImage","buildImageAttributes","align","undefined","imageSizeOptions","imageAttributes","image","find","newClassName","newLinkTarget","rel","linkDestination","caption","raw","alt","alt_text","isValidFileType","file","nativeFileData","mediaTypeSelector","media_type","some","mediaType","indexOf","updateImages","selectedImages","newFileUploads","Object","prototype","toString","call","imageArray","Array","from","processedImages","filter","newOrderMap","reduce","result","index","existingImageBlocks","img","newImageList","existingImg","newBlocks","concat","sort","a","b","onUploadError","message","setLinkTo","changedAttributes","blocks","push","linkToText","linkType","setColumnsNumber","toggleImageCrop","toggleRandomOrder","toggleOpenInNewTab","openInNewTab","noticeText","updateImagesSize","newSizeSlug","imageSize","size","window","wp","media","view","settings","defaultProps","link","hasImages","hasImageIds","imagesUploading","mediaPlaceholderProps","web","addToGallery","disableMediaButtons","native","isAppender","autoOpenMediaUpload","mediaPlaceholder","createElement","handleUpload","icon","labels","title","instructions","onSelect","accept","allowedTypes","multiple","onError","blockProps","nativeInnerBlockProps","marginHorizontal","marginVertical","innerBlocksProps","defaultBlock","directInsert","orientation","renderAppender","children","hasLinkTo","Fragment","__nextHasNoMarginBottom","onChange","min","max","Math","required","__next40pxDefaultSize","help","options","hideCancelButton","checked","isWeb","VisualLabel","group","mediaIds","blockGap","style","spacing","isNarrow"],"sources":["@wordpress/block-library/src/gallery/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tBaseControl,\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\tRangeControl,\n\tSpinner,\n} from '@wordpress/components';\nimport {\n\tstore as blockEditorStore,\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tuseInnerBlocksProps,\n\tBlockControls,\n\tMediaReplaceFlow,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useMemo } from '@wordpress/element';\nimport { __, _x, sprintf } from '@wordpress/i18n';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { createBlock } from '@wordpress/blocks';\nimport { createBlobURL } from '@wordpress/blob';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from './shared-icon';\nimport { defaultColumnsNumber, pickRelevantMediaFiles } from './shared';\nimport { getHrefAndDestination } from './utils';\nimport {\n\tgetUpdatedLinkTargetSettings,\n\tgetImageSizeAttributes,\n} from '../image/utils';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\nimport useImageSizes from './use-image-sizes';\nimport useGetNewImages from './use-get-new-images';\nimport useGetMedia from './use-get-media';\nimport GapStyles from './gap-styles';\n\nconst MAX_COLUMNS = 8;\nconst linkOptions = [\n\t{ value: LINK_DESTINATION_ATTACHMENT, label: __( 'Attachment Page' ) },\n\t{ value: LINK_DESTINATION_MEDIA, label: __( 'Media File' ) },\n\t{\n\t\tvalue: LINK_DESTINATION_NONE,\n\t\tlabel: _x( 'None', 'Media item link option' ),\n\t},\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.isNative\n\t? __( 'Add media' )\n\t: __( 'Drag images, upload new ones or select files from your library.' );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.isNative\n\t? { type: 'stepper' }\n\t: {};\n\nconst DEFAULT_BLOCK = { name: 'core/image' };\nconst EMPTY_ARRAY = [];\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tsetAttributes,\n\t\tattributes,\n\t\tclassName,\n\t\tclientId,\n\t\tisSelected,\n\t\tinsertBlocksAfter,\n\t\tisContentLocked,\n\t\tonFocus,\n\t} = props;\n\n\tconst { columns, imageCrop, randomOrder, linkTarget, linkTo, sizeSlug } =\n\t\tattributes;\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceInnerBlocks,\n\t\tupdateBlockAttributes,\n\t\tselectBlock,\n\t} = useDispatch( blockEditorStore );\n\tconst { createSuccessNotice, createErrorNotice } =\n\t\tuseDispatch( noticesStore );\n\n\tconst {\n\t\tgetBlock,\n\t\tgetSettings,\n\t\tinnerBlockImages,\n\t\tblockWasJustInserted,\n\t\tmultiGallerySelection,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockName,\n\t\t\t\tgetMultiSelectedBlockClientIds,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\twasBlockJustInserted,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst multiSelectedClientIds = getMultiSelectedBlockClientIds();\n\n\t\t\treturn {\n\t\t\t\tgetBlock: _getBlock,\n\t\t\t\tgetSettings: _getSettings,\n\t\t\t\tinnerBlockImages:\n\t\t\t\t\t_getBlock( clientId )?.innerBlocks ?? EMPTY_ARRAY,\n\t\t\t\tblockWasJustInserted: wasBlockJustInserted(\n\t\t\t\t\tclientId,\n\t\t\t\t\t'inserter_menu'\n\t\t\t\t),\n\t\t\t\tmultiGallerySelection:\n\t\t\t\t\tmultiSelectedClientIds.length &&\n\t\t\t\t\tmultiSelectedClientIds.every(\n\t\t\t\t\t\t( _clientId ) =>\n\t\t\t\t\t\t\tgetBlockName( _clientId ) === 'core/gallery'\n\t\t\t\t\t),\n\t\t\t};\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst images = useMemo(\n\t\t() =>\n\t\t\tinnerBlockImages?.map( ( block ) => ( {\n\t\t\t\tclientId: block.clientId,\n\t\t\t\tid: block.attributes.id,\n\t\t\t\turl: block.attributes.url,\n\t\t\t\tattributes: block.attributes,\n\t\t\t\tfromSavedContent: Boolean( block.originalContent ),\n\t\t\t} ) ),\n\t\t[ innerBlockImages ]\n\t);\n\n\tconst imageData = useGetMedia( innerBlockImages );\n\n\tconst newImages = useGetNewImages( images, imageData );\n\n\tuseEffect( () => {\n\t\tnewImages?.forEach( ( newImage ) => {\n\t\t\t// Update the images data without creating new undo levels.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tupdateBlockAttributes( newImage.clientId, {\n\t\t\t\t...buildImageAttributes( newImage.attributes ),\n\t\t\t\tid: newImage.id,\n\t\t\t\talign: undefined,\n\t\t\t} );\n\t\t} );\n\t}, [ newImages ] );\n\n\tconst imageSizeOptions = useImageSizes(\n\t\timageData,\n\t\tisSelected,\n\t\tgetSettings\n\t);\n\n\t/**\n\t * Determines the image attributes that should be applied to an image block\n\t * after the gallery updates.\n\t *\n\t * The gallery will receive the full collection of images when a new image\n\t * is added. As a result we need to reapply the image's original settings if\n\t * it already existed in the gallery. If the image is in fact new, we need\n\t * to apply the gallery's current settings to the image.\n\t *\n\t * @param {Object} imageAttributes Media object for the actual image.\n\t * @return {Object} Attributes to set on the new image block.\n\t */\n\tfunction buildImageAttributes( imageAttributes ) {\n\t\tconst image = imageAttributes.id\n\t\t\t? imageData.find( ( { id } ) => id === imageAttributes.id )\n\t\t\t: null;\n\n\t\tlet newClassName;\n\t\tif ( imageAttributes.className && imageAttributes.className !== '' ) {\n\t\t\tnewClassName = imageAttributes.className;\n\t\t}\n\n\t\tlet newLinkTarget;\n\t\tif ( imageAttributes.linkTarget || imageAttributes.rel ) {\n\t\t\t// When transformed from image blocks, the link destination and rel attributes are inherited.\n\t\t\tnewLinkTarget = {\n\t\t\t\tlinkTarget: imageAttributes.linkTarget,\n\t\t\t\trel: imageAttributes.rel,\n\t\t\t};\n\t\t} else {\n\t\t\t// When an image is added, update the link destination and rel attributes according to the gallery settings\n\t\t\tnewLinkTarget = getUpdatedLinkTargetSettings(\n\t\t\t\tlinkTarget,\n\t\t\t\tattributes\n\t\t\t);\n\t\t}\n\n\t\treturn {\n\t\t\t...pickRelevantMediaFiles( image, sizeSlug ),\n\t\t\t...getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tlinkTo,\n\t\t\t\timageAttributes?.linkDestination\n\t\t\t),\n\t\t\t...newLinkTarget,\n\t\t\tclassName: newClassName,\n\t\t\tsizeSlug,\n\t\t\tcaption: imageAttributes.caption || image.caption?.raw,\n\t\t\talt: imageAttributes.alt || image.alt_text,\n\t\t};\n\t}\n\n\tfunction isValidFileType( file ) {\n\t\t// It's necessary to retrieve the media type from the raw image data for already-uploaded images on native.\n\t\tconst nativeFileData =\n\t\t\tPlatform.isNative && file.id\n\t\t\t\t? imageData.find( ( { id } ) => id === file.id )\n\t\t\t\t: null;\n\n\t\tconst mediaTypeSelector = nativeFileData\n\t\t\t? nativeFileData?.media_type\n\t\t\t: file.type;\n\n\t\treturn (\n\t\t\tALLOWED_MEDIA_TYPES.some(\n\t\t\t\t( mediaType ) => mediaTypeSelector?.indexOf( mediaType ) === 0\n\t\t\t) || file.url?.indexOf( 'blob:' ) === 0\n\t\t);\n\t}\n\n\tfunction updateImages( selectedImages ) {\n\t\tconst newFileUploads =\n\t\t\tObject.prototype.toString.call( selectedImages ) ===\n\t\t\t'[object FileList]';\n\n\t\tconst imageArray = newFileUploads\n\t\t\t? Array.from( selectedImages ).map( ( file ) => {\n\t\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\n\t\t\t\t\treturn file;\n\t\t\t } )\n\t\t\t: selectedImages;\n\n\t\tif ( ! imageArray.every( isValidFileType ) ) {\n\t\t\tcreateErrorNotice(\n\t\t\t\t__(\n\t\t\t\t\t'If uploading to a gallery all files need to be image formats'\n\t\t\t\t),\n\t\t\t\t{ id: 'gallery-upload-invalid-file', type: 'snackbar' }\n\t\t\t);\n\t\t}\n\n\t\tconst processedImages = imageArray\n\t\t\t.filter( ( file ) => file.url || isValidFileType( file ) )\n\t\t\t.map( ( file ) => {\n\t\t\t\tif ( ! file.url ) {\n\t\t\t\t\treturn pickRelevantMediaFiles( {\n\t\t\t\t\t\turl: createBlobURL( file ),\n\t\t\t\t\t} );\n\t\t\t\t}\n\n\t\t\t\treturn file;\n\t\t\t} );\n\n\t\t// Because we are reusing existing innerImage blocks any reordering\n\t\t// done in the media library will be lost so we need to reapply that ordering\n\t\t// once the new image blocks are merged in with existing.\n\t\tconst newOrderMap = processedImages.reduce(\n\t\t\t( result, image, index ) => (\n\t\t\t\t( result[ image.id ] = index ), result\n\t\t\t),\n\t\t\t{}\n\t\t);\n\n\t\tconst existingImageBlocks = ! newFileUploads\n\t\t\t? innerBlockImages.filter( ( block ) =>\n\t\t\t\t\tprocessedImages.find(\n\t\t\t\t\t\t( img ) => img.id === block.attributes.id\n\t\t\t\t\t)\n\t\t\t )\n\t\t\t: innerBlockImages;\n\n\t\tconst newImageList = processedImages.filter(\n\t\t\t( img ) =>\n\t\t\t\t! existingImageBlocks.find(\n\t\t\t\t\t( existingImg ) => img.id === existingImg.attributes.id\n\t\t\t\t)\n\t\t);\n\n\t\tconst newBlocks = newImageList.map( ( image ) => {\n\t\t\treturn createBlock( 'core/image', {\n\t\t\t\tid: image.id,\n\t\t\t\turl: image.url,\n\t\t\t\tcaption: image.caption,\n\t\t\t\talt: image.alt,\n\t\t\t} );\n\t\t} );\n\n\t\treplaceInnerBlocks(\n\t\t\tclientId,\n\t\t\texistingImageBlocks\n\t\t\t\t.concat( newBlocks )\n\t\t\t\t.sort(\n\t\t\t\t\t( a, b ) =>\n\t\t\t\t\t\tnewOrderMap[ a.attributes.id ] -\n\t\t\t\t\t\tnewOrderMap[ b.attributes.id ]\n\t\t\t\t)\n\t\t);\n\n\t\t// Select the first block to scroll into view when new blocks are added.\n\t\tif ( newBlocks?.length > 0 ) {\n\t\t\tselectBlock( newBlocks[ 0 ].clientId );\n\t\t}\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getHrefAndDestination(\n\t\t\t\timage,\n\t\t\t\tvalue\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst linkToText = [ ...linkOptions ].find(\n\t\t\t( linkType ) => linkType.value === value\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image links updated to: %s' ),\n\t\t\t\tlinkToText.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-linkTo',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tfunction setColumnsNumber( value ) {\n\t\tsetAttributes( { columns: value } );\n\t}\n\n\tfunction toggleImageCrop() {\n\t\tsetAttributes( { imageCrop: ! imageCrop } );\n\t}\n\n\tfunction toggleRandomOrder() {\n\t\tsetAttributes( { randomOrder: ! randomOrder } );\n\t}\n\n\tfunction toggleOpenInNewTab( openInNewTab ) {\n\t\tconst newLinkTarget = openInNewTab ? '_blank' : undefined;\n\t\tsetAttributes( { linkTarget: newLinkTarget } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tchangedAttributes[ block.clientId ] = getUpdatedLinkTargetSettings(\n\t\t\t\tnewLinkTarget,\n\t\t\t\tblock.attributes\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst noticeText = openInNewTab\n\t\t\t? __( 'All gallery images updated to open in new tab' )\n\t\t\t: __( 'All gallery images updated to not open in new tab' );\n\t\tcreateSuccessNotice( noticeText, {\n\t\t\tid: 'gallery-attributes-openInNewTab',\n\t\t\ttype: 'snackbar',\n\t\t} );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tsetAttributes( { sizeSlug: newSizeSlug } );\n\t\tconst changedAttributes = {};\n\t\tconst blocks = [];\n\t\tgetBlock( clientId ).innerBlocks.forEach( ( block ) => {\n\t\t\tblocks.push( block.clientId );\n\t\t\tconst image = block.attributes.id\n\t\t\t\t? imageData.find( ( { id } ) => id === block.attributes.id )\n\t\t\t\t: null;\n\t\t\tchangedAttributes[ block.clientId ] = getImageSizeAttributes(\n\t\t\t\timage,\n\t\t\t\tnewSizeSlug\n\t\t\t);\n\t\t} );\n\t\tupdateBlockAttributes( blocks, changedAttributes, true );\n\t\tconst imageSize = imageSizeOptions.find(\n\t\t\t( size ) => size.value === newSizeSlug\n\t\t);\n\n\t\tcreateSuccessNotice(\n\t\t\tsprintf(\n\t\t\t\t/* translators: %s: image size settings */\n\t\t\t\t__( 'All gallery image sizes updated to: %s' ),\n\t\t\t\timageSize.label\n\t\t\t),\n\t\t\t{\n\t\t\t\tid: 'gallery-attributes-sizeSlug',\n\t\t\t\ttype: 'snackbar',\n\t\t\t}\n\t\t);\n\t}\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing image_default_link_type in options.php.\n\t\tif ( ! linkTo ) {\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTo:\n\t\t\t\t\twindow?.wp?.media?.view?.settings?.defaultProps?.link ||\n\t\t\t\t\tLINK_DESTINATION_NONE,\n\t\t\t} );\n\t\t}\n\t}, [ linkTo ] );\n\n\tconst hasImages = !! images.length;\n\tconst hasImageIds = hasImages && images.some( ( image ) => !! image.id );\n\tconst imagesUploading = images.some( ( img ) =>\n\t\t! Platform.isNative\n\t\t\t? ! img.id && img.url?.indexOf( 'blob:' ) === 0\n\t\t\t: img.url?.indexOf( 'file:' ) === 0\n\t);\n\n\t// MediaPlaceholder props are different between web and native hence, we provide a platform-specific set.\n\tconst mediaPlaceholderProps = Platform.select( {\n\t\tweb: {\n\t\t\taddToGallery: false,\n\t\t\tdisableMediaButtons: imagesUploading,\n\t\t\tvalue: {},\n\t\t},\n\t\tnative: {\n\t\t\taddToGallery: hasImageIds,\n\t\t\tisAppender: hasImages,\n\t\t\tdisableMediaButtons:\n\t\t\t\t( hasImages && ! isSelected ) || imagesUploading,\n\t\t\tvalue: hasImageIds ? images : {},\n\t\t\tautoOpenMediaUpload:\n\t\t\t\t! hasImages && isSelected && blockWasJustInserted,\n\t\t\tonFocus,\n\t\t},\n\t} );\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\thandleUpload={ false }\n\t\t\ticon={ sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: __( 'Gallery' ),\n\t\t\t\tinstructions: PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ updateImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tonError={ onUploadError }\n\t\t\t{ ...mediaPlaceholderProps }\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classnames( className, 'has-nested-images' ),\n\t} );\n\n\tconst nativeInnerBlockProps = Platform.isNative && {\n\t\tmarginHorizontal: 0,\n\t\tmarginVertical: 0,\n\t};\n\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tdefaultBlock: DEFAULT_BLOCK,\n\t\tdirectInsert: true,\n\t\torientation: 'horizontal',\n\t\trenderAppender: false,\n\t\t...nativeInnerBlockProps,\n\t} );\n\n\tif ( ! hasImages ) {\n\t\treturn (\n\t\t\t<View { ...innerBlocksProps }>\n\t\t\t\t{ innerBlocksProps.children }\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t);\n\t}\n\n\tconst hasLinkTo = linkTo && linkTo !== 'none';\n\n\treturn (\n\t\t<>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t{ images.length > 1 && (\n\t\t\t\t\t\t<RangeControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Columns' ) }\n\t\t\t\t\t\t\tvalue={\n\t\t\t\t\t\t\t\tcolumns\n\t\t\t\t\t\t\t\t\t? columns\n\t\t\t\t\t\t\t\t\t: defaultColumnsNumber( images.length )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonChange={ setColumnsNumber }\n\t\t\t\t\t\t\tmin={ 1 }\n\t\t\t\t\t\t\tmax={ Math.min( MAX_COLUMNS, images.length ) }\n\t\t\t\t\t\t\t{ ...MOBILE_CONTROL_PROPS_RANGE_CONTROL }\n\t\t\t\t\t\t\trequired\n\t\t\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ imageSizeOptions?.length > 0 && (\n\t\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Resolution' ) }\n\t\t\t\t\t\t\thelp={ __(\n\t\t\t\t\t\t\t\t'Select the size of the source images.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\tvalue={ sizeSlug }\n\t\t\t\t\t\t\toptions={ imageSizeOptions }\n\t\t\t\t\t\t\tonChange={ updateImagesSize }\n\t\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t<SelectControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Link to' ) }\n\t\t\t\t\t\tvalue={ linkTo }\n\t\t\t\t\t\tonChange={ setLinkTo }\n\t\t\t\t\t\toptions={ linkOptions }\n\t\t\t\t\t\thideCancelButton\n\t\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Crop images to fit' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Randomize order' ) }\n\t\t\t\t\t\tchecked={ !! randomOrder }\n\t\t\t\t\t\tonChange={ toggleRandomOrder }\n\t\t\t\t\t/>\n\t\t\t\t\t{ hasLinkTo && (\n\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\t\tlabel={ __( 'Open images in new tab' ) }\n\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\tonChange={ toggleOpenInNewTab }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ Platform.isWeb && ! imageSizeOptions && hasImageIds && (\n\t\t\t\t\t\t<BaseControl className={ 'gallery-image-sizes' }>\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Resolution' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<View className={ 'gallery-image-sizes__loading' }>\n\t\t\t\t\t\t\t\t<Spinner />\n\t\t\t\t\t\t\t\t{ __( 'Loading options…' ) }\n\t\t\t\t\t\t\t</View>\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ Platform.isWeb && (\n\t\t\t\t<>\n\t\t\t\t\t{ ! multiGallerySelection && (\n\t\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\t\taccept=\"image/*\"\n\t\t\t\t\t\t\t\thandleUpload={ false }\n\t\t\t\t\t\t\t\tonSelect={ updateImages }\n\t\t\t\t\t\t\t\tname={ __( 'Add' ) }\n\t\t\t\t\t\t\t\tmultiple\n\t\t\t\t\t\t\t\tmediaIds={ images\n\t\t\t\t\t\t\t\t\t.filter( ( image ) => image.id )\n\t\t\t\t\t\t\t\t\t.map( ( image ) => image.id ) }\n\t\t\t\t\t\t\t\taddToGallery={ hasImageIds }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</BlockControls>\n\t\t\t\t\t) }\n\t\t\t\t\t<GapStyles\n\t\t\t\t\t\tblockGap={ attributes.style?.spacing?.blockGap }\n\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tisContentLocked={ isContentLocked }\n\t\t\t\timages={ images }\n\t\t\t\tmediaPlaceholder={\n\t\t\t\t\t! hasImages || Platform.isNative\n\t\t\t\t\t\t? mediaPlaceholder\n\t\t\t\t\t\t: undefined\n\t\t\t\t}\n\t\t\t\tblockProps={ innerBlocksProps }\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\tmultiGallerySelection={ multiGallerySelection }\n\t\t\t/>\n\t\t</>\n\t);\n}\nexport default compose( [ withViewportMatch( { isNarrow: '< small' } ) ] )(\n\tGalleryEdit\n);\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["View","defaultColumnsNumber","styles","__","sprintf","BlockCaption","RichText","useInnerBlocksProps","useState","useEffect","mediaUploadSync","WIDE_ALIGNMENTS","useResizeObserver","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","Gallery","props","isCaptionSelected","setIsCaptionSelected","resizeObserver","sizes","maxWidth","setMaxWidth","mediaPlaceholder","attributes","images","isNarrow","onBlur","insertBlocksAfter","clientId","width","align","columns","length","displayedColumns","Math","min","innerBlocksProps","contentResizeMode","orientation","renderAppender","numColumns","marginHorizontal","marginVertical","layout","type","alignments","gridProperties","parentWidth","focusGalleryCaption","isFullWidth","full","createElement","style","fullWidth","galleryAppender","isSelected","accessible","accessibilityLabelCreator","caption","isEmpty","onFocus"],"sources":["@wordpress/block-library/src/gallery/gallery.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport { defaultColumnsNumber } from './shared';\nimport styles from './gallery-styles.scss';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\tRichText,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { WIDE_ALIGNMENTS } from '@wordpress/components';\nimport { useResizeObserver } from '@wordpress/compose';\n\nconst TILE_SPACING = 8;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst {\n\t\tmediaPlaceholder,\n\t\tattributes,\n\t\timages,\n\t\tisNarrow,\n\t\tonBlur,\n\t\tinsertBlocksAfter,\n\t\tclientId,\n\t} = props;\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tif ( width ) {\n\t\t\tsetMaxWidth( width );\n\t\t}\n\t}, [ sizes ] );\n\n\tconst { align, columns = defaultColumnsNumber( images.length ) } =\n\t\tattributes;\n\n\tconst displayedColumns = Math.min(\n\t\tcolumns,\n\t\tisNarrow ? MAX_DISPLAYED_COLUMNS_NARROW : MAX_DISPLAYED_COLUMNS\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{},\n\t\t{\n\t\t\tcontentResizeMode: 'stretch',\n\t\t\torientation: 'horizontal',\n\t\t\trenderAppender: false,\n\t\t\tnumColumns: displayedColumns,\n\t\t\tmarginHorizontal: TILE_SPACING,\n\t\t\tmarginVertical: TILE_SPACING,\n\t\t\tlayout: { type: 'default', alignments: [] },\n\t\t\tgridProperties: {\n\t\t\t\tnumColumns: displayedColumns,\n\t\t\t},\n\t\t\tparentWidth: maxWidth + 2 * TILE_SPACING,\n\t\t}\n\t);\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t};\n\n\tconst isFullWidth = align === WIDE_ALIGNMENTS.alignments.full;\n\n\treturn (\n\t\t<View style={ isFullWidth && styles.fullWidth }>\n\t\t\t{ resizeObserver }\n\t\t\t<View { ...innerBlocksProps } />\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisFullWidth && styles.fullWidth,\n\t\t\t\t\tstyles.galleryAppender,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible
|
|
1
|
+
{"version":3,"names":["View","defaultColumnsNumber","styles","__","sprintf","BlockCaption","RichText","useInnerBlocksProps","useState","useEffect","mediaUploadSync","WIDE_ALIGNMENTS","useResizeObserver","TILE_SPACING","MAX_DISPLAYED_COLUMNS","MAX_DISPLAYED_COLUMNS_NARROW","Gallery","props","isCaptionSelected","setIsCaptionSelected","resizeObserver","sizes","maxWidth","setMaxWidth","mediaPlaceholder","attributes","images","isNarrow","onBlur","insertBlocksAfter","clientId","width","align","columns","length","displayedColumns","Math","min","innerBlocksProps","contentResizeMode","orientation","renderAppender","numColumns","marginHorizontal","marginVertical","layout","type","alignments","gridProperties","parentWidth","focusGalleryCaption","isFullWidth","full","createElement","style","fullWidth","galleryAppender","isSelected","accessible","accessibilityLabelCreator","caption","isEmpty","onFocus"],"sources":["@wordpress/block-library/src/gallery/gallery.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { View } from 'react-native';\n\n/**\n * Internal dependencies\n */\nimport { defaultColumnsNumber } from './shared';\nimport styles from './gallery-styles.scss';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\tBlockCaption,\n\tRichText,\n\tuseInnerBlocksProps,\n} from '@wordpress/block-editor';\nimport { useState, useEffect } from '@wordpress/element';\nimport { mediaUploadSync } from '@wordpress/react-native-bridge';\nimport { WIDE_ALIGNMENTS } from '@wordpress/components';\nimport { useResizeObserver } from '@wordpress/compose';\n\nconst TILE_SPACING = 8;\n\n// we must limit displayed columns since readable content max-width is 580px\nconst MAX_DISPLAYED_COLUMNS = 4;\nconst MAX_DISPLAYED_COLUMNS_NARROW = 2;\n\nexport const Gallery = ( props ) => {\n\tconst [ isCaptionSelected, setIsCaptionSelected ] = useState( false );\n\tconst [ resizeObserver, sizes ] = useResizeObserver();\n\tconst [ maxWidth, setMaxWidth ] = useState( 0 );\n\tuseEffect( mediaUploadSync, [] );\n\n\tconst {\n\t\tmediaPlaceholder,\n\t\tattributes,\n\t\timages,\n\t\tisNarrow,\n\t\tonBlur,\n\t\tinsertBlocksAfter,\n\t\tclientId,\n\t} = props;\n\n\tuseEffect( () => {\n\t\tconst { width } = sizes || {};\n\t\tif ( width ) {\n\t\t\tsetMaxWidth( width );\n\t\t}\n\t}, [ sizes ] );\n\n\tconst { align, columns = defaultColumnsNumber( images.length ) } =\n\t\tattributes;\n\n\tconst displayedColumns = Math.min(\n\t\tcolumns,\n\t\tisNarrow ? MAX_DISPLAYED_COLUMNS_NARROW : MAX_DISPLAYED_COLUMNS\n\t);\n\n\tconst innerBlocksProps = useInnerBlocksProps(\n\t\t{},\n\t\t{\n\t\t\tcontentResizeMode: 'stretch',\n\t\t\torientation: 'horizontal',\n\t\t\trenderAppender: false,\n\t\t\tnumColumns: displayedColumns,\n\t\t\tmarginHorizontal: TILE_SPACING,\n\t\t\tmarginVertical: TILE_SPACING,\n\t\t\tlayout: { type: 'default', alignments: [] },\n\t\t\tgridProperties: {\n\t\t\t\tnumColumns: displayedColumns,\n\t\t\t},\n\t\t\tparentWidth: maxWidth + 2 * TILE_SPACING,\n\t\t}\n\t);\n\n\tconst focusGalleryCaption = () => {\n\t\tif ( ! isCaptionSelected ) {\n\t\t\tsetIsCaptionSelected( true );\n\t\t}\n\t};\n\n\tconst isFullWidth = align === WIDE_ALIGNMENTS.alignments.full;\n\n\treturn (\n\t\t<View style={ isFullWidth && styles.fullWidth }>\n\t\t\t{ resizeObserver }\n\t\t\t<View { ...innerBlocksProps } />\n\t\t\t<View\n\t\t\t\tstyle={ [\n\t\t\t\t\tisFullWidth && styles.fullWidth,\n\t\t\t\t\tstyles.galleryAppender,\n\t\t\t\t] }\n\t\t\t>\n\t\t\t\t{ mediaPlaceholder }\n\t\t\t</View>\n\t\t\t<BlockCaption\n\t\t\t\tclientId={ clientId }\n\t\t\t\tisSelected={ isCaptionSelected }\n\t\t\t\taccessible\n\t\t\t\taccessibilityLabelCreator={ ( caption ) =>\n\t\t\t\t\tRichText.isEmpty( caption )\n\t\t\t\t\t\t? /* translators: accessibility text. Empty gallery caption. */\n\n\t\t\t\t\t\t 'Gallery caption. Empty'\n\t\t\t\t\t\t: sprintf(\n\t\t\t\t\t\t\t\t/* translators: accessibility text. %s: gallery caption. */\n\t\t\t\t\t\t\t\t__( 'Gallery caption. %s' ),\n\t\t\t\t\t\t\t\tcaption\n\t\t\t\t\t\t )\n\t\t\t\t}\n\t\t\t\tonFocus={ focusGalleryCaption }\n\t\t\t\tonBlur={ onBlur } // Always assign onBlur as props.\n\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t/>\n\t\t</View>\n\t);\n};\n\nexport default Gallery;\n"],"mappings":"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"}
|