@wordpress/block-library 8.10.0 → 8.11.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 +2 -0
- package/build/block/edit.native.js +17 -10
- package/build/block/edit.native.js.map +1 -1
- package/build/code/index.js +1 -0
- package/build/code/index.js.map +1 -1
- package/build/column/index.js +1 -1
- package/build/columns/transforms.js +1 -5
- package/build/columns/transforms.js.map +1 -1
- package/build/cover/edit/resizable-cover-popover.js +3 -3
- package/build/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build/file/interactivity.js +19 -0
- package/build/file/interactivity.js.map +1 -0
- package/build/file/{utils.js → utils/index.js} +1 -1
- package/build/file/utils/index.js.map +1 -0
- package/build/freeform/modal.js +20 -17
- package/build/freeform/modal.js.map +1 -1
- package/build/gallery/v1/edit.js +1 -7
- package/build/gallery/v1/edit.js.map +1 -1
- package/build/gallery/v1/gallery-image.native.js +1 -3
- package/build/gallery/v1/gallery-image.native.js.map +1 -1
- package/build/group/transforms.js +0 -5
- package/build/group/transforms.js.map +1 -1
- package/build/image/deprecated.js +2 -4
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.js +13 -11
- package/build/image/edit.js.map +1 -1
- package/build/image/image.js +7 -12
- package/build/image/image.js.map +1 -1
- package/build/image/index.js +3 -0
- package/build/image/index.js.map +1 -1
- package/build/image/interactivity.js +102 -0
- package/build/image/interactivity.js.map +1 -0
- package/build/image/save.js +2 -4
- package/build/image/save.js.map +1 -1
- package/build/image/utils.js +10 -18
- package/build/image/utils.js.map +1 -1
- package/build/latest-posts/edit.native.js +1 -3
- package/build/latest-posts/edit.native.js.map +1 -1
- package/build/list/edit.js +1 -1
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.native.js +1 -1
- package/build/list-item/edit.native.js.map +1 -1
- package/build/list-item/transforms.js +4 -1
- package/build/list-item/transforms.js.map +1 -1
- package/build/media-text/deprecated.js +4 -6
- package/build/media-text/deprecated.js.map +1 -1
- package/build/media-text/edit.js +13 -11
- package/build/media-text/edit.js.map +1 -1
- package/build/media-text/media-container.js +3 -3
- package/build/media-text/media-container.js.map +1 -1
- package/build/media-text/save.js +1 -3
- package/build/media-text/save.js.map +1 -1
- package/build/navigation/constants.js +3 -1
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/inner-blocks.js +1 -0
- package/build/navigation/edit/inner-blocks.js.map +1 -1
- package/build/navigation/edit/leaf-more-menu.js +148 -0
- package/build/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build/navigation/edit/menu-inspector-controls.js +53 -8
- package/build/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build/navigation/edit/navigation-menu-delete-control.js +6 -6
- package/build/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build/navigation/edit/unsaved-inner-blocks.js +8 -19
- package/build/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build/navigation/interactivity.js +24 -6
- package/build/navigation/interactivity.js.map +1 -1
- package/build/navigation-link/edit.js +6 -4
- package/build/navigation-link/edit.js.map +1 -1
- package/build/navigation-link/update-attributes.js +5 -5
- package/build/navigation-link/update-attributes.js.map +1 -1
- package/build/navigation-submenu/edit.js +6 -4
- package/build/navigation-submenu/edit.js.map +1 -1
- package/build/pattern/edit.js +42 -8
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/index.js +12 -5
- package/build/pattern/index.js.map +1 -1
- package/build/pattern/v1/edit.js +57 -0
- package/build/pattern/v1/edit.js.map +1 -0
- package/build/post-title/edit.js +10 -3
- package/build/post-title/edit.js.map +1 -1
- package/build/quote/transforms.js +9 -12
- package/build/quote/transforms.js.map +1 -1
- package/build/social-link/edit.js +21 -4
- package/build/social-link/edit.js.map +1 -1
- package/build/template-part/edit/index.js +1 -7
- package/build/template-part/edit/index.js.map +1 -1
- package/build/template-part/edit/utils/hooks.js +2 -2
- package/build/template-part/edit/utils/hooks.js.map +1 -1
- package/build/utils/interactivity/directives.js +50 -22
- package/build/utils/interactivity/directives.js.map +1 -1
- package/build/utils/interactivity/hooks.js +76 -12
- package/build/utils/interactivity/hooks.js.map +1 -1
- package/build/utils/interactivity/portals.js +108 -0
- package/build/utils/interactivity/portals.js.map +1 -0
- package/build-module/block/edit.native.js +7 -1
- package/build-module/block/edit.native.js.map +1 -1
- package/build-module/code/index.js +1 -0
- package/build-module/code/index.js.map +1 -1
- package/build-module/column/index.js +1 -1
- package/build-module/columns/transforms.js +1 -5
- package/build-module/columns/transforms.js.map +1 -1
- package/build-module/cover/edit/resizable-cover-popover.js +3 -3
- package/build-module/cover/edit/resizable-cover-popover.js.map +1 -1
- package/build-module/file/interactivity.js +15 -0
- package/build-module/file/interactivity.js.map +1 -0
- package/build-module/file/{utils.js → utils/index.js} +1 -1
- package/build-module/file/utils/index.js.map +1 -0
- package/build-module/freeform/modal.js +19 -18
- package/build-module/freeform/modal.js.map +1 -1
- package/build-module/gallery/v1/edit.js +1 -6
- package/build-module/gallery/v1/edit.js.map +1 -1
- package/build-module/gallery/v1/gallery-image.native.js +1 -2
- package/build-module/gallery/v1/gallery-image.native.js.map +1 -1
- package/build-module/group/transforms.js +0 -5
- package/build-module/group/transforms.js.map +1 -1
- package/build-module/image/deprecated.js +2 -3
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.js +12 -11
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/image.js +7 -11
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/index.js +3 -0
- package/build-module/image/index.js.map +1 -1
- package/build-module/image/interactivity.js +99 -0
- package/build-module/image/interactivity.js.map +1 -0
- package/build-module/image/save.js +2 -3
- package/build-module/image/save.js.map +1 -1
- package/build-module/image/utils.js +10 -17
- package/build-module/image/utils.js.map +1 -1
- package/build-module/latest-posts/edit.native.js +1 -2
- package/build-module/latest-posts/edit.native.js.map +1 -1
- package/build-module/list/edit.js +1 -1
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.native.js +1 -1
- package/build-module/list-item/edit.native.js.map +1 -1
- package/build-module/list-item/transforms.js +5 -2
- package/build-module/list-item/transforms.js.map +1 -1
- package/build-module/media-text/deprecated.js +4 -5
- package/build-module/media-text/deprecated.js.map +1 -1
- package/build-module/media-text/edit.js +13 -12
- package/build-module/media-text/edit.js.map +1 -1
- package/build-module/media-text/media-container.js +3 -3
- package/build-module/media-text/media-container.js.map +1 -1
- package/build-module/media-text/save.js +1 -2
- package/build-module/media-text/save.js.map +1 -1
- package/build-module/navigation/constants.js +1 -0
- package/build-module/navigation/constants.js.map +1 -1
- package/build-module/navigation/edit/inner-blocks.js +2 -1
- package/build-module/navigation/edit/inner-blocks.js.map +1 -1
- package/build-module/navigation/edit/leaf-more-menu.js +132 -0
- package/build-module/navigation/edit/leaf-more-menu.js.map +1 -0
- package/build-module/navigation/edit/menu-inspector-controls.js +52 -9
- package/build-module/navigation/edit/menu-inspector-controls.js.map +1 -1
- package/build-module/navigation/edit/navigation-menu-delete-control.js +7 -7
- package/build-module/navigation/edit/navigation-menu-delete-control.js.map +1 -1
- package/build-module/navigation/edit/unsaved-inner-blocks.js +8 -16
- package/build-module/navigation/edit/unsaved-inner-blocks.js.map +1 -1
- package/build-module/navigation/interactivity.js +24 -6
- package/build-module/navigation/interactivity.js.map +1 -1
- package/build-module/navigation-link/edit.js +6 -4
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/navigation-link/update-attributes.js +4 -4
- package/build-module/navigation-link/update-attributes.js.map +1 -1
- package/build-module/navigation-submenu/edit.js +6 -4
- package/build-module/navigation-submenu/edit.js.map +1 -1
- package/build-module/pattern/edit.js +42 -9
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/pattern/index.js +12 -3
- package/build-module/pattern/index.js.map +1 -1
- package/build-module/pattern/v1/edit.js +48 -0
- package/build-module/pattern/v1/edit.js.map +1 -0
- package/build-module/post-title/edit.js +10 -3
- package/build-module/post-title/edit.js.map +1 -1
- package/build-module/quote/transforms.js +9 -12
- package/build-module/quote/transforms.js.map +1 -1
- package/build-module/social-link/edit.js +20 -5
- package/build-module/social-link/edit.js.map +1 -1
- package/build-module/template-part/edit/index.js +1 -6
- package/build-module/template-part/edit/index.js.map +1 -1
- package/build-module/template-part/edit/utils/hooks.js +1 -1
- package/build-module/template-part/edit/utils/hooks.js.map +1 -1
- package/build-module/utils/interactivity/directives.js +49 -22
- package/build-module/utils/interactivity/directives.js.map +1 -1
- package/build-module/utils/interactivity/hooks.js +77 -13
- package/build-module/utils/interactivity/hooks.js.map +1 -1
- package/build-module/utils/interactivity/portals.js +100 -0
- package/build-module/utils/interactivity/portals.js.map +1 -0
- package/build-style/common-rtl.css +1 -1
- package/build-style/common.css +1 -1
- package/build-style/cover/style-rtl.css +1 -2
- package/build-style/cover/style.css +1 -2
- package/build-style/editor-rtl.css +68 -0
- package/build-style/editor.css +68 -0
- package/build-style/file/editor-rtl.css +3 -0
- package/build-style/file/editor.css +3 -0
- package/build-style/freeform/editor-rtl.css +29 -0
- package/build-style/freeform/editor.css +29 -0
- package/build-style/gallery/style-rtl.css +2 -4
- package/build-style/gallery/style.css +2 -4
- package/build-style/image/style-rtl.css +98 -0
- package/build-style/image/style.css +98 -0
- package/build-style/navigation/editor-rtl.css +36 -0
- package/build-style/navigation/editor.css +36 -0
- package/build-style/post-comments-form/style-rtl.css +1 -1
- package/build-style/post-comments-form/style.css +1 -1
- package/build-style/style-rtl.css +103 -9
- package/build-style/style.css +103 -9
- package/build-style/video/style-rtl.css +1 -2
- package/build-style/video/style.css +1 -2
- package/package.json +32 -32
- package/src/block/edit.native.js +18 -4
- package/src/buttons/test/edit.native.js +0 -9
- package/src/code/block.json +1 -0
- package/src/column/block.json +1 -1
- package/src/columns/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/columns/test/transforms.native.js +3 -5
- package/src/columns/transforms.js +2 -8
- package/src/comments/index.php +1 -6
- package/src/cover/edit/resizable-cover-popover.js +2 -1
- package/src/file/editor.scss +4 -0
- package/src/file/interactivity.js +15 -0
- package/src/freeform/editor.scss +45 -0
- package/src/freeform/modal.js +22 -19
- package/src/gallery/v1/edit.js +1 -6
- package/src/gallery/v1/gallery-image.native.js +1 -2
- package/src/group/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/group/test/transforms.native.js +3 -5
- package/src/group/transforms.js +0 -7
- package/src/image/block.json +3 -0
- package/src/image/deprecated.js +2 -3
- package/src/image/edit.js +18 -18
- package/src/image/image.js +8 -11
- package/src/image/index.php +75 -2
- package/src/image/interactivity.js +113 -0
- package/src/image/save.js +4 -3
- package/src/image/style.scss +113 -0
- package/src/image/utils.js +11 -18
- package/src/latest-posts/edit.native.js +1 -4
- package/src/list/edit.js +1 -1
- package/src/list/test/edit.native.js +80 -1
- package/src/list-item/edit.native.js +1 -1
- package/src/list-item/transforms.js +4 -2
- package/src/media-text/deprecated.js +4 -5
- package/src/media-text/edit.js +12 -10
- package/src/media-text/media-container.js +3 -3
- package/src/media-text/save.js +1 -2
- package/src/navigation/constants.js +5 -0
- package/src/navigation/edit/inner-blocks.js +6 -1
- package/src/navigation/edit/leaf-more-menu.js +170 -0
- package/src/navigation/edit/menu-inspector-controls.js +78 -10
- package/src/navigation/edit/navigation-menu-delete-control.js +29 -29
- package/src/navigation/edit/unsaved-inner-blocks.js +11 -24
- package/src/navigation/editor.scss +10 -0
- package/src/navigation/index.php +4 -1
- package/src/navigation/interactivity.js +9 -2
- package/src/navigation-link/edit.js +8 -2
- package/src/navigation-link/update-attributes.js +2 -2
- package/src/navigation-submenu/edit.js +8 -2
- package/src/pattern/block.json +4 -0
- package/src/pattern/edit.js +53 -16
- package/src/pattern/index.js +5 -4
- package/src/pattern/index.php +14 -1
- package/src/pattern/v1/edit.js +57 -0
- package/src/post-comments-form/style.scss +3 -1
- package/src/post-title/edit.js +50 -44
- package/src/quote/test/__snapshots__/transforms.native.js.snap +1 -1
- package/src/quote/test/transforms.native.js +3 -5
- package/src/quote/transforms.js +9 -13
- package/src/social-link/edit.js +51 -26
- package/src/template-part/edit/index.js +4 -6
- package/src/template-part/edit/utils/hooks.js +1 -1
- package/src/template-part/index.php +2 -2
- package/src/utils/interactivity/directives.js +27 -6
- package/src/utils/interactivity/hooks.js +83 -14
- package/src/utils/interactivity/portals.js +98 -0
- package/build/file/utils.js.map +0 -1
- package/build-module/file/utils.js.map +0 -1
- /package/src/file/{utils.js → utils/index.js} +0 -0
package/CHANGELOG.md
CHANGED
|
@@ -27,9 +27,11 @@ var _icons = require("@wordpress/icons");
|
|
|
27
27
|
|
|
28
28
|
var _reusableBlocks = require("@wordpress/reusable-blocks");
|
|
29
29
|
|
|
30
|
+
var _editor = require("@wordpress/editor");
|
|
31
|
+
|
|
30
32
|
var _notices = require("@wordpress/notices");
|
|
31
33
|
|
|
32
|
-
var
|
|
34
|
+
var _editor2 = _interopRequireDefault(require("./editor.scss"));
|
|
33
35
|
|
|
34
36
|
var _editTitle = _interopRequireDefault(require("./edit-title"));
|
|
35
37
|
|
|
@@ -54,12 +56,12 @@ function ReusableBlockEdit(_ref) {
|
|
|
54
56
|
} = _ref;
|
|
55
57
|
const hasAlreadyRendered = (0, _blockEditor.__experimentalUseHasRecursion)(ref);
|
|
56
58
|
const [showHelp, setShowHelp] = (0, _element.useState)(false);
|
|
57
|
-
const infoTextStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
58
|
-
const infoTitleStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
59
|
-
const infoSheetIconStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
60
|
-
const infoDescriptionStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
61
|
-
const actionButtonStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
62
|
-
const spinnerStyle = (0, _compose.usePreferredColorSchemeStyle)(
|
|
59
|
+
const infoTextStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.infoText, _editor2.default.infoTextDark);
|
|
60
|
+
const infoTitleStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.infoTitle, _editor2.default.infoTitleDark);
|
|
61
|
+
const infoSheetIconStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.infoSheetIcon, _editor2.default.infoSheetIconDark);
|
|
62
|
+
const infoDescriptionStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.infoDescription, _editor2.default.infoDescriptionDark);
|
|
63
|
+
const actionButtonStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.actionButton, _editor2.default.actionButtonDark);
|
|
64
|
+
const spinnerStyle = (0, _compose.usePreferredColorSchemeStyle)(_editor2.default.spinner, _editor2.default.spinnerDark);
|
|
63
65
|
const {
|
|
64
66
|
hasResolved,
|
|
65
67
|
isEditing,
|
|
@@ -78,6 +80,7 @@ function ReusableBlockEdit(_ref) {
|
|
|
78
80
|
innerBlockCount: getBlockCount(clientId)
|
|
79
81
|
};
|
|
80
82
|
}, [ref, clientId]);
|
|
83
|
+
const hostAppNamespace = (0, _data.useSelect)(select => select(_editor.store).getEditorSettings().hostAppNamespace, []);
|
|
81
84
|
const {
|
|
82
85
|
createSuccessNotice
|
|
83
86
|
} = (0, _data.useDispatch)(_notices.store);
|
|
@@ -114,17 +117,21 @@ function ReusableBlockEdit(_ref) {
|
|
|
114
117
|
}, [title, clientId]);
|
|
115
118
|
|
|
116
119
|
function renderSheet() {
|
|
117
|
-
const infoTitle = _reactNative.Platform.OS === 'android' ? (0, _i18n.
|
|
120
|
+
const infoTitle = _reactNative.Platform.OS === 'android' ? (0, _i18n.sprintf)(
|
|
121
|
+
/* translators: %s: name of the host app (e.g. WordPress) */
|
|
122
|
+
(0, _i18n.__)('Editing reusable blocks is not yet supported on %s for Android'), hostAppNamespace) : (0, _i18n.sprintf)(
|
|
123
|
+
/* translators: %s: name of the host app (e.g. WordPress) */
|
|
124
|
+
(0, _i18n.__)('Editing reusable blocks is not yet supported on %s for iOS'), hostAppNamespace);
|
|
118
125
|
return (0, _element.createElement)(_components.BottomSheet, {
|
|
119
126
|
isVisible: showHelp,
|
|
120
127
|
hideHeader: true,
|
|
121
128
|
onClose: closeSheet
|
|
122
129
|
}, (0, _element.createElement)(_reactNative.View, {
|
|
123
|
-
style:
|
|
130
|
+
style: _editor2.default.infoContainer
|
|
124
131
|
}, (0, _element.createElement)(_components.Icon, {
|
|
125
132
|
icon: _icons.help,
|
|
126
133
|
color: infoSheetIconStyle.color,
|
|
127
|
-
size:
|
|
134
|
+
size: _editor2.default.infoSheetIcon.size
|
|
128
135
|
}), (0, _element.createElement)(_reactNative.Text, {
|
|
129
136
|
style: [infoTextStyle, infoTitleStyle]
|
|
130
137
|
}, infoTitle), (0, _element.createElement)(_reactNative.Text, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/block/edit.native.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","isSelected","hasAlreadyRendered","showHelp","setShowHelp","infoTextStyle","styles","infoText","infoTextDark","infoTitleStyle","infoTitle","infoTitleDark","infoSheetIconStyle","infoSheetIcon","infoSheetIconDark","infoDescriptionStyle","infoDescription","infoDescriptionDark","actionButtonStyle","actionButton","actionButtonDark","spinnerStyle","spinner","spinnerDark","hasResolved","isEditing","isMissing","innerBlockCount","select","persistedBlock","coreStore","getEntityRecord","hasResolvedBlock","hasFinishedResolution","getBlockCount","blockEditorStore","reusableBlocksStore","__experimentalIsEditingReusableBlock","createSuccessNotice","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","clearSelectedBlock","blocks","onInput","onChange","id","title","openSheet","closeSheet","onConvertToRegularBlocks","successNotice","setImmediate","renderSheet","Platform","OS","infoContainer","help","color","size","element"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tPlatform,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBottomSheet,\n\tIcon,\n\tDisabled,\n\tTextControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { help } from '@wordpress/icons';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport EditTitle from './edit-title';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tisSelected,\n} ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tconst [ showHelp, setShowHelp ] = useState( false );\n\tconst infoTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoText,\n\t\tstyles.infoTextDark\n\t);\n\tconst infoTitleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoTitle,\n\t\tstyles.infoTitleDark\n\t);\n\tconst infoSheetIconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoSheetIcon,\n\t\tstyles.infoSheetIconDark\n\t);\n\tconst infoDescriptionStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoDescription,\n\t\tstyles.infoDescriptionDark\n\t);\n\tconst actionButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.actionButton,\n\t\tstyles.actionButtonDark\n\t);\n\tconst spinnerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.spinner,\n\t\tstyles.spinnerDark\n\t);\n\n\tconst { hasResolved, isEditing, isMissing, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst persistedBlock = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\tref\n\t\t\t);\n\t\t\tconst hasResolvedBlock = select( coreStore ).hasFinishedResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\t[ 'postType', 'wp_block', ref ]\n\t\t\t);\n\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasResolved: hasResolvedBlock,\n\t\t\t\tisEditing:\n\t\t\t\t\tselect(\n\t\t\t\t\t\treusableBlocksStore\n\t\t\t\t\t).__experimentalIsEditingReusableBlock( clientId ),\n\t\t\t\tisMissing: hasResolvedBlock && ! persistedBlock,\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ ref, clientId ]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title ] = useEntityProp( 'postType', 'wp_block', 'title', ref );\n\n\tfunction openSheet() {\n\t\tsetShowHelp( true );\n\t}\n\n\tfunction closeSheet() {\n\t\tsetShowHelp( false );\n\t}\n\n\tconst onConvertToRegularBlocks = useCallback( () => {\n\t\tconst successNotice =\n\t\t\tinnerBlockCount > 1\n\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular block' );\n\t\tcreateSuccessNotice( sprintf( successNotice, title ) );\n\n\t\tclearSelectedBlock();\n\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t// to prevent issues related to undo/redo actions.\n\t\tsetImmediate( () => convertBlockToStatic( clientId ) );\n\t}, [ title, clientId ] );\n\n\tfunction renderSheet() {\n\t\tconst infoTitle =\n\t\t\tPlatform.OS === 'android'\n\t\t\t\t? __(\n\t\t\t\t\t\t'Editing reusable blocks is not yet supported on WordPress for Android'\n\t\t\t\t )\n\t\t\t\t: __(\n\t\t\t\t\t\t'Editing reusable blocks is not yet supported on WordPress for iOS'\n\t\t\t\t );\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ showHelp }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ closeSheet }\n\t\t\t>\n\t\t\t\t<View style={ styles.infoContainer }>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ help }\n\t\t\t\t\t\tcolor={ infoSheetIconStyle.color }\n\t\t\t\t\t\tsize={ styles.infoSheetIcon.size }\n\t\t\t\t\t/>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoTitleStyle ] }>\n\t\t\t\t\t\t{ infoTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoDescriptionStyle ] }>\n\t\t\t\t\t\t{ innerBlockCount > 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit these blocks separately by tapping “Convert to regular blocks”.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit this block separately by tapping “Convert to regular block”.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t\t\t\t: __( 'Convert to regular block' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tseparatorType=\"topFullWidth\"\n\t\t\t\t\t\tonPress={ onConvertToRegularBlocks }\n\t\t\t\t\t\tlabelStyle={ actionButtonStyle }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<View style={ spinnerStyle }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tlet element = (\n\t\t<InnerBlocks\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ onChange }\n\t\t\tonInput={ onInput }\n\t\t/>\n\t);\n\n\tif ( ! isEditing ) {\n\t\telement = <Disabled>{ element }</Disabled>;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ __( 'Help button' ) }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityHint={ __( 'Tap here to show help' ) }\n\t\t\t\tonPress={ openSheet }\n\t\t\t>\n\t\t\t\t<View>\n\t\t\t\t\t{ isSelected && <EditTitle title={ title } /> }\n\t\t\t\t\t{ element }\n\t\t\t\t\t{ renderSheet() }\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</RecursionProvider>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/block/edit.native.js"],"names":["ReusableBlockEdit","attributes","ref","clientId","isSelected","hasAlreadyRendered","showHelp","setShowHelp","infoTextStyle","styles","infoText","infoTextDark","infoTitleStyle","infoTitle","infoTitleDark","infoSheetIconStyle","infoSheetIcon","infoSheetIconDark","infoDescriptionStyle","infoDescription","infoDescriptionDark","actionButtonStyle","actionButton","actionButtonDark","spinnerStyle","spinner","spinnerDark","hasResolved","isEditing","isMissing","innerBlockCount","select","persistedBlock","coreStore","getEntityRecord","hasResolvedBlock","hasFinishedResolution","getBlockCount","blockEditorStore","reusableBlocksStore","__experimentalIsEditingReusableBlock","hostAppNamespace","editorStore","getEditorSettings","createSuccessNotice","noticesStore","__experimentalConvertBlockToStatic","convertBlockToStatic","clearSelectedBlock","blocks","onInput","onChange","id","title","openSheet","closeSheet","onConvertToRegularBlocks","successNotice","setImmediate","renderSheet","Platform","OS","infoContainer","help","color","size","element"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tActivityIndicator,\n\tPlatform,\n\tText,\n\tTouchableWithoutFeedback,\n\tView,\n} from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useCallback } from '@wordpress/element';\nimport {\n\tuseEntityBlockEditor,\n\tuseEntityProp,\n\tstore as coreStore,\n} from '@wordpress/core-data';\nimport {\n\tBottomSheet,\n\tIcon,\n\tDisabled,\n\tTextControl,\n} from '@wordpress/components';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\t__experimentalRecursionProvider as RecursionProvider,\n\t__experimentalUseHasRecursion as useHasRecursion,\n\tInnerBlocks,\n\tWarning,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { usePreferredColorSchemeStyle } from '@wordpress/compose';\nimport { help } from '@wordpress/icons';\nimport { store as reusableBlocksStore } from '@wordpress/reusable-blocks';\nimport { store as editorStore } from '@wordpress/editor';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport styles from './editor.scss';\nimport EditTitle from './edit-title';\n\nexport default function ReusableBlockEdit( {\n\tattributes: { ref },\n\tclientId,\n\tisSelected,\n} ) {\n\tconst hasAlreadyRendered = useHasRecursion( ref );\n\n\tconst [ showHelp, setShowHelp ] = useState( false );\n\tconst infoTextStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoText,\n\t\tstyles.infoTextDark\n\t);\n\tconst infoTitleStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoTitle,\n\t\tstyles.infoTitleDark\n\t);\n\tconst infoSheetIconStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoSheetIcon,\n\t\tstyles.infoSheetIconDark\n\t);\n\tconst infoDescriptionStyle = usePreferredColorSchemeStyle(\n\t\tstyles.infoDescription,\n\t\tstyles.infoDescriptionDark\n\t);\n\tconst actionButtonStyle = usePreferredColorSchemeStyle(\n\t\tstyles.actionButton,\n\t\tstyles.actionButtonDark\n\t);\n\tconst spinnerStyle = usePreferredColorSchemeStyle(\n\t\tstyles.spinner,\n\t\tstyles.spinnerDark\n\t);\n\n\tconst { hasResolved, isEditing, isMissing, innerBlockCount } = useSelect(\n\t\t( select ) => {\n\t\t\tconst persistedBlock = select( coreStore ).getEntityRecord(\n\t\t\t\t'postType',\n\t\t\t\t'wp_block',\n\t\t\t\tref\n\t\t\t);\n\t\t\tconst hasResolvedBlock = select( coreStore ).hasFinishedResolution(\n\t\t\t\t'getEntityRecord',\n\t\t\t\t[ 'postType', 'wp_block', ref ]\n\t\t\t);\n\n\t\t\tconst { getBlockCount } = select( blockEditorStore );\n\n\t\t\treturn {\n\t\t\t\thasResolved: hasResolvedBlock,\n\t\t\t\tisEditing:\n\t\t\t\t\tselect(\n\t\t\t\t\t\treusableBlocksStore\n\t\t\t\t\t).__experimentalIsEditingReusableBlock( clientId ),\n\t\t\t\tisMissing: hasResolvedBlock && ! persistedBlock,\n\t\t\t\tinnerBlockCount: getBlockCount( clientId ),\n\t\t\t};\n\t\t},\n\t\t[ ref, clientId ]\n\t);\n\tconst hostAppNamespace = useSelect(\n\t\t( select ) =>\n\t\t\tselect( editorStore ).getEditorSettings().hostAppNamespace,\n\t\t[]\n\t);\n\n\tconst { createSuccessNotice } = useDispatch( noticesStore );\n\tconst { __experimentalConvertBlockToStatic: convertBlockToStatic } =\n\t\tuseDispatch( reusableBlocksStore );\n\tconst { clearSelectedBlock } = useDispatch( blockEditorStore );\n\n\tconst [ blocks, onInput, onChange ] = useEntityBlockEditor(\n\t\t'postType',\n\t\t'wp_block',\n\t\t{ id: ref }\n\t);\n\n\tconst [ title ] = useEntityProp( 'postType', 'wp_block', 'title', ref );\n\n\tfunction openSheet() {\n\t\tsetShowHelp( true );\n\t}\n\n\tfunction closeSheet() {\n\t\tsetShowHelp( false );\n\t}\n\n\tconst onConvertToRegularBlocks = useCallback( () => {\n\t\tconst successNotice =\n\t\t\tinnerBlockCount > 1\n\t\t\t\t? /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular blocks' )\n\t\t\t\t: /* translators: %s: name of the reusable block */\n\t\t\t\t __( '%s converted to regular block' );\n\t\tcreateSuccessNotice( sprintf( successNotice, title ) );\n\n\t\tclearSelectedBlock();\n\t\t// Convert action is executed at the end of the current JavaScript execution block\n\t\t// to prevent issues related to undo/redo actions.\n\t\tsetImmediate( () => convertBlockToStatic( clientId ) );\n\t}, [ title, clientId ] );\n\n\tfunction renderSheet() {\n\t\tconst infoTitle =\n\t\t\tPlatform.OS === 'android'\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for Android'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t/* translators: %s: name of the host app (e.g. WordPress) */\n\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t'Editing reusable blocks is not yet supported on %s for iOS'\n\t\t\t\t\t\t),\n\t\t\t\t\t\thostAppNamespace\n\t\t\t\t );\n\n\t\treturn (\n\t\t\t<BottomSheet\n\t\t\t\tisVisible={ showHelp }\n\t\t\t\thideHeader\n\t\t\t\tonClose={ closeSheet }\n\t\t\t>\n\t\t\t\t<View style={ styles.infoContainer }>\n\t\t\t\t\t<Icon\n\t\t\t\t\t\ticon={ help }\n\t\t\t\t\t\tcolor={ infoSheetIconStyle.color }\n\t\t\t\t\t\tsize={ styles.infoSheetIcon.size }\n\t\t\t\t\t/>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoTitleStyle ] }>\n\t\t\t\t\t\t{ infoTitle }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<Text style={ [ infoTextStyle, infoDescriptionStyle ] }>\n\t\t\t\t\t\t{ innerBlockCount > 1\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit these blocks separately by tapping “Convert to regular blocks”.'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Alternatively, you can detach and edit this block separately by tapping “Convert to regular block”.'\n\t\t\t\t\t\t\t ) }\n\t\t\t\t\t</Text>\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\tinnerBlockCount > 1\n\t\t\t\t\t\t\t\t? __( 'Convert to regular blocks' )\n\t\t\t\t\t\t\t\t: __( 'Convert to regular block' )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tseparatorType=\"topFullWidth\"\n\t\t\t\t\t\tonPress={ onConvertToRegularBlocks }\n\t\t\t\t\t\tlabelStyle={ actionButtonStyle }\n\t\t\t\t\t/>\n\t\t\t\t</View>\n\t\t\t</BottomSheet>\n\t\t);\n\t}\n\n\tif ( hasAlreadyRendered ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block cannot be rendered inside itself.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( isMissing ) {\n\t\treturn (\n\t\t\t<Warning\n\t\t\t\tmessage={ __( 'Block has been deleted or is unavailable.' ) }\n\t\t\t/>\n\t\t);\n\t}\n\n\tif ( ! hasResolved ) {\n\t\treturn (\n\t\t\t<View style={ spinnerStyle }>\n\t\t\t\t<ActivityIndicator animating />\n\t\t\t</View>\n\t\t);\n\t}\n\n\tlet element = (\n\t\t<InnerBlocks\n\t\t\tvalue={ blocks }\n\t\t\tonChange={ onChange }\n\t\t\tonInput={ onInput }\n\t\t/>\n\t);\n\n\tif ( ! isEditing ) {\n\t\telement = <Disabled>{ element }</Disabled>;\n\t}\n\n\treturn (\n\t\t<RecursionProvider uniqueId={ ref }>\n\t\t\t<TouchableWithoutFeedback\n\t\t\t\tdisabled={ ! isSelected }\n\t\t\t\taccessibilityLabel={ __( 'Help button' ) }\n\t\t\t\taccessibilityRole={ 'button' }\n\t\t\t\taccessibilityHint={ __( 'Tap here to show help' ) }\n\t\t\t\tonPress={ openSheet }\n\t\t\t>\n\t\t\t\t<View>\n\t\t\t\t\t{ isSelected && <EditTitle title={ title } /> }\n\t\t\t\t\t{ element }\n\t\t\t\t\t{ renderSheet() }\n\t\t\t\t</View>\n\t\t\t</TouchableWithoutFeedback>\n\t\t</RecursionProvider>\n\t);\n}\n"]}
|
package/build/code/index.js
CHANGED
package/build/code/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/code/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","transforms","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAIA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/code/index.js"],"names":["name","metadata","settings","icon","example","attributes","content","transforms","edit","save","init"],"mappings":";;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AAEA;;AACA;;AAbA;AACA;AACA;;AAIA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,MAAM;AAAEA,EAAAA;AAAF,IAAWC,QAAjB;;AAIO,MAAMC,QAAQ,GAAG;AACvBC,EAAAA,IAAI,EAAJA,WADuB;AAEvBC,EAAAA,OAAO,EAAE;AACRC,IAAAA,UAAU,EAAE;AACX;AACA;AACAC,MAAAA,OAAO,EAAE,cACR,yLADQ;AAGT;;AANW;AADJ,GAFc;AAYvBC,EAAAA,UAAU,EAAVA,mBAZuB;AAavBC,EAAAA,IAAI,EAAJA,aAbuB;AAcvBC,EAAAA,IAAI,EAAJA;AAduB,CAAjB;;;AAiBA,MAAMC,IAAI,GAAG,MAAM,wBAAW;AAAEV,EAAAA,IAAF;AAAQC,EAAAA,QAAR;AAAkBC,EAAAA;AAAlB,CAAX,CAAnB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { code as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport initBlock from '../utils/init-block';\nimport edit from './edit';\nimport metadata from './block.json';\nimport save from './save';\nimport transforms from './transforms';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {\n\t\tattributes: {\n\t\t\t/* eslint-disable @wordpress/i18n-no-collapsible-whitespace */\n\t\t\t// translators: Preserve \\n markers for line breaks\n\t\t\tcontent: __(\n\t\t\t\t'// A “block” is the abstract term used\\n// to describe units of markup that\\n// when composed together, form the\\n// content or layout of a page.\\nregisterBlockType( name, settings );'\n\t\t\t),\n\t\t\t/* eslint-enable @wordpress/i18n-no-collapsible-whitespace */\n\t\t},\n\t},\n\ttransforms,\n\tedit,\n\tsave,\n};\n\nexport const init = () => initBlock( { name, metadata, settings } );\n"]}
|
package/build/column/index.js
CHANGED
|
@@ -110,11 +110,7 @@ const transforms = {
|
|
|
110
110
|
}, (0, _blocks.createBlocksFromInnerBlocksTemplate)(innerBlocksTemplate));
|
|
111
111
|
}
|
|
112
112
|
}],
|
|
113
|
-
|
|
114
|
-
type: 'block',
|
|
115
|
-
blocks: ['*'],
|
|
116
|
-
transform: (attributes, innerBlocks) => innerBlocks.flatMap(innerBlock => innerBlock.innerBlocks)
|
|
117
|
-
}]
|
|
113
|
+
ungroup: (attributes, innerBlocks) => innerBlocks.flatMap(innerBlock => innerBlock.innerBlocks)
|
|
118
114
|
};
|
|
119
115
|
var _default = transforms;
|
|
120
116
|
exports.default = _default;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/columns/transforms.js"],"names":["MAXIMUM_SELECTED_BLOCKS","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","columnWidth","length","toFixed","innerBlocksTemplate","map","name","attributes","innerBlocks","width","isMatch","selectedBlocksLength","priority","transform","align","backgroundColor","textColor","style","mediaAlt","alt","mediaId","id","mediaPosition","mediaSizeSlug","sizeSlug","mediaType","mediaUrl","url","mediaWidth","verticalAlignment","media","imageAttrs","linkAttrs","href","linkClass","linkDestination","linkTarget","rel","src","reverse","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/columns/transforms.js"],"names":["MAXIMUM_SELECTED_BLOCKS","transforms","from","type","isMultiBlock","blocks","__experimentalConvert","columnWidth","length","toFixed","innerBlocksTemplate","map","name","attributes","innerBlocks","width","isMatch","selectedBlocksLength","priority","transform","align","backgroundColor","textColor","style","mediaAlt","alt","mediaId","id","mediaPosition","mediaSizeSlug","sizeSlug","mediaType","mediaUrl","url","mediaWidth","verticalAlignment","media","imageAttrs","linkAttrs","href","linkClass","linkDestination","linkTarget","rel","src","reverse","ungroup","flatMap","innerBlock"],"mappings":";;;;;;;AAGA;;AAHA;AACA;AACA;AAMA,MAAMA,uBAAuB,GAAG,CAAhC;AAEA,MAAMC,UAAU,GAAG;AAClBC,EAAAA,IAAI,EAAE,CACL;AACCC,IAAAA,IAAI,EAAE,OADP;AAECC,IAAAA,YAAY,EAAE,IAFf;AAGCC,IAAAA,MAAM,EAAE,CAAE,GAAF,CAHT;AAICC,IAAAA,qBAAqB,EAAID,MAAF,IAAc;AACpC,YAAME,WAAW,GAAG,CAAC,CAAE,MAAMF,MAAM,CAACG,MAAf,EAAwBC,OAAxB,CAAiC,CAAjC,CAArB;AACA,YAAMC,mBAAmB,GAAGL,MAAM,CAACM,GAAP,CAC3B;AAAA,YAAE;AAAEC,UAAAA,IAAF;AAAQC,UAAAA,UAAR;AAAoBC,UAAAA;AAApB,SAAF;AAAA,eAAyC,CACxC,aADwC,EAExC;AAAEC,UAAAA,KAAK,EAAG,GAAGR,WAAa;AAA1B,SAFwC,EAGxC,CAAE,CAAEK,IAAF,EAAQ,EAAE,GAAGC;AAAL,SAAR,EAA2BC,WAA3B,CAAF,CAHwC,CAAzC;AAAA,OAD2B,CAA5B;AAOA,aAAO,yBACN,cADM,EAEN,EAFM,EAGN,iDAAqCJ,mBAArC,CAHM,CAAP;AAKA,KAlBF;AAmBCM,IAAAA,OAAO,EAAE,QAAoCX,MAApC,KAAgD;AAAA,UAA9C;AAAEG,QAAAA,MAAM,EAAES;AAAV,OAA8C;;AACxD;AACA;AACA;AACA;AACA,UACCZ,MAAM,CAACG,MAAP,KAAkB,CAAlB,IACAH,MAAM,CAAE,CAAF,CAAN,CAAYO,IAAZ,KAAqB,cAFtB,EAGE;AACD,eAAO,KAAP;AACA;;AAED,aACCK,oBAAoB,IACpBA,oBAAoB,IAAIjB,uBAFzB;AAIA;AAnCF,GADK,EAsCL;AACCG,IAAAA,IAAI,EAAE,OADP;AAECE,IAAAA,MAAM,EAAE,CAAE,iBAAF,CAFT;AAGCa,IAAAA,QAAQ,EAAE,CAHX;AAICC,IAAAA,SAAS,EAAE,CAAEN,UAAF,EAAcC,WAAd,KAA+B;AACzC,YAAM;AACLM,QAAAA,KADK;AAELC,QAAAA,eAFK;AAGLC,QAAAA,SAHK;AAILC,QAAAA,KAJK;AAKLC,QAAAA,QAAQ,EAAEC,GALL;AAMLC,QAAAA,OAAO,EAAEC,EANJ;AAOLC,QAAAA,aAPK;AAQLC,QAAAA,aAAa,EAAEC,QARV;AASLC,QAAAA,SATK;AAULC,QAAAA,QAAQ,EAAEC,GAVL;AAWLC,QAAAA,UAXK;AAYLC,QAAAA;AAZK,UAaFtB,UAbJ;AAcA,UAAIuB,KAAJ;;AACA,UAAKL,SAAS,KAAK,OAAd,IAAyB,CAAEA,SAAhC,EAA4C;AAC3C,cAAMM,UAAU,GAAG;AAAEV,UAAAA,EAAF;AAAMF,UAAAA,GAAN;AAAWQ,UAAAA,GAAX;AAAgBH,UAAAA;AAAhB,SAAnB;AACA,cAAMQ,SAAS,GAAG;AACjBC,UAAAA,IAAI,EAAE1B,UAAU,CAAC0B,IADA;AAEjBC,UAAAA,SAAS,EAAE3B,UAAU,CAAC2B,SAFL;AAGjBC,UAAAA,eAAe,EAAE5B,UAAU,CAAC4B,eAHX;AAIjBC,UAAAA,UAAU,EAAE7B,UAAU,CAAC6B,UAJN;AAKjBC,UAAAA,GAAG,EAAE9B,UAAU,CAAC8B;AALC,SAAlB;AAOAP,QAAAA,KAAK,GAAG,CAAE,YAAF,EAAgB,EAAE,GAAGC,UAAL;AAAiB,aAAGC;AAApB,SAAhB,CAAR;AACA,OAVD,MAUO;AACNF,QAAAA,KAAK,GAAG,CAAE,YAAF,EAAgB;AAAET,UAAAA,EAAF;AAAMiB,UAAAA,GAAG,EAAEX;AAAX,SAAhB,CAAR;AACA;;AACD,YAAMvB,mBAAmB,GAAG,CAC3B,CAAE,aAAF,EAAiB;AAAEK,QAAAA,KAAK,EAAG,GAAGmB,UAAY;AAAzB,OAAjB,EAAgD,CAAEE,KAAF,CAAhD,CAD2B,EAE3B,CACC,aADD,EAEC;AAAErB,QAAAA,KAAK,EAAG,GAAG,MAAMmB,UAAY;AAA/B,OAFD,EAGCpB,WAHD,CAF2B,CAA5B;;AAQA,UAAKc,aAAa,KAAK,OAAvB,EAAiC;AAChClB,QAAAA,mBAAmB,CAACmC,OAApB;AACA;;AACD,aAAO,yBACN,cADM,EAEN;AACCzB,QAAAA,KADD;AAECC,QAAAA,eAFD;AAGCC,QAAAA,SAHD;AAICC,QAAAA,KAJD;AAKCY,QAAAA;AALD,OAFM,EASN,iDAAqCzB,mBAArC,CATM,CAAP;AAWA;AAvDF,GAtCK,CADY;AAiGlBoC,EAAAA,OAAO,EAAE,CAAEjC,UAAF,EAAcC,WAAd,KACRA,WAAW,CAACiC,OAAZ,CAAuBC,UAAF,IAAkBA,UAAU,CAAClC,WAAlD;AAlGiB,CAAnB;eAqGeb,U","sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tcreateBlock,\n\tcreateBlocksFromInnerBlocksTemplate,\n} from '@wordpress/blocks';\n\nconst MAXIMUM_SELECTED_BLOCKS = 6;\n\nconst transforms = {\n\tfrom: [\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tisMultiBlock: true,\n\t\t\tblocks: [ '*' ],\n\t\t\t__experimentalConvert: ( blocks ) => {\n\t\t\t\tconst columnWidth = +( 100 / blocks.length ).toFixed( 2 );\n\t\t\t\tconst innerBlocksTemplate = blocks.map(\n\t\t\t\t\t( { name, attributes, innerBlocks } ) => [\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ columnWidth }%` },\n\t\t\t\t\t\t[ [ name, { ...attributes }, innerBlocks ] ],\n\t\t\t\t\t]\n\t\t\t\t);\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t\tisMatch: ( { length: selectedBlocksLength }, blocks ) => {\n\t\t\t\t// If a user is trying to transform a single Columns block, skip\n\t\t\t\t// the transformation. Enabling this functiontionality creates\n\t\t\t\t// nested Columns blocks resulting in an unintuitive user experience.\n\t\t\t\t// Multiple Columns blocks can still be transformed.\n\t\t\t\tif (\n\t\t\t\t\tblocks.length === 1 &&\n\t\t\t\t\tblocks[ 0 ].name === 'core/columns'\n\t\t\t\t) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn (\n\t\t\t\t\tselectedBlocksLength &&\n\t\t\t\t\tselectedBlocksLength <= MAXIMUM_SELECTED_BLOCKS\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\ttype: 'block',\n\t\t\tblocks: [ 'core/media-text' ],\n\t\t\tpriority: 1,\n\t\t\ttransform: ( attributes, innerBlocks ) => {\n\t\t\t\tconst {\n\t\t\t\t\talign,\n\t\t\t\t\tbackgroundColor,\n\t\t\t\t\ttextColor,\n\t\t\t\t\tstyle,\n\t\t\t\t\tmediaAlt: alt,\n\t\t\t\t\tmediaId: id,\n\t\t\t\t\tmediaPosition,\n\t\t\t\t\tmediaSizeSlug: sizeSlug,\n\t\t\t\t\tmediaType,\n\t\t\t\t\tmediaUrl: url,\n\t\t\t\t\tmediaWidth,\n\t\t\t\t\tverticalAlignment,\n\t\t\t\t} = attributes;\n\t\t\t\tlet media;\n\t\t\t\tif ( mediaType === 'image' || ! mediaType ) {\n\t\t\t\t\tconst imageAttrs = { id, alt, url, sizeSlug };\n\t\t\t\t\tconst linkAttrs = {\n\t\t\t\t\t\thref: attributes.href,\n\t\t\t\t\t\tlinkClass: attributes.linkClass,\n\t\t\t\t\t\tlinkDestination: attributes.linkDestination,\n\t\t\t\t\t\tlinkTarget: attributes.linkTarget,\n\t\t\t\t\t\trel: attributes.rel,\n\t\t\t\t\t};\n\t\t\t\t\tmedia = [ 'core/image', { ...imageAttrs, ...linkAttrs } ];\n\t\t\t\t} else {\n\t\t\t\t\tmedia = [ 'core/video', { id, src: url } ];\n\t\t\t\t}\n\t\t\t\tconst innerBlocksTemplate = [\n\t\t\t\t\t[ 'core/column', { width: `${ mediaWidth }%` }, [ media ] ],\n\t\t\t\t\t[\n\t\t\t\t\t\t'core/column',\n\t\t\t\t\t\t{ width: `${ 100 - mediaWidth }%` },\n\t\t\t\t\t\tinnerBlocks,\n\t\t\t\t\t],\n\t\t\t\t];\n\t\t\t\tif ( mediaPosition === 'right' ) {\n\t\t\t\t\tinnerBlocksTemplate.reverse();\n\t\t\t\t}\n\t\t\t\treturn createBlock(\n\t\t\t\t\t'core/columns',\n\t\t\t\t\t{\n\t\t\t\t\t\talign,\n\t\t\t\t\t\tbackgroundColor,\n\t\t\t\t\t\ttextColor,\n\t\t\t\t\t\tstyle,\n\t\t\t\t\t\tverticalAlignment,\n\t\t\t\t\t},\n\t\t\t\t\tcreateBlocksFromInnerBlocksTemplate( innerBlocksTemplate )\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t],\n\tungroup: ( attributes, innerBlocks ) =>\n\t\tinnerBlocks.flatMap( ( innerBlock ) => innerBlock.innerBlocks ),\n};\n\nexport default transforms;\n"]}
|
|
@@ -38,6 +38,9 @@ const RESIZABLE_BOX_ENABLE_OPTION = {
|
|
|
38
38
|
bottomLeft: false,
|
|
39
39
|
topLeft: false
|
|
40
40
|
};
|
|
41
|
+
const {
|
|
42
|
+
ResizableBoxPopover
|
|
43
|
+
} = (0, _privateApis.unlock)(_blockEditor.privateApis);
|
|
41
44
|
|
|
42
45
|
function ResizableCoverPopover(_ref) {
|
|
43
46
|
let {
|
|
@@ -52,9 +55,6 @@ function ResizableCoverPopover(_ref) {
|
|
|
52
55
|
width,
|
|
53
56
|
...props
|
|
54
57
|
} = _ref;
|
|
55
|
-
const {
|
|
56
|
-
ResizableBoxPopover
|
|
57
|
-
} = (0, _privateApis.unlock)(_blockEditor.privateApis);
|
|
58
58
|
const [isResizing, setIsResizing] = (0, _element.useState)(false);
|
|
59
59
|
const dimensions = (0, _element.useMemo)(() => ({
|
|
60
60
|
height,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/cover/edit/resizable-cover-popover.js"],"names":["RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableCoverPopover","className","height","minHeight","onResize","onResizeStart","onResizeStop","showHandle","size","width","props","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/cover/edit/resizable-cover-popover.js"],"names":["RESIZABLE_BOX_ENABLE_OPTION","top","right","bottom","left","topRight","bottomRight","bottomLeft","topLeft","ResizableBoxPopover","blockEditorPrivateApis","ResizableCoverPopover","className","height","minHeight","onResize","onResizeStart","onResizeStop","showHandle","size","width","props","isResizing","setIsResizing","dimensions","resizableBoxProps","enable","_event","_direction","elt","clientHeight","__experimentalShowTooltip","__experimentalTooltipProps","axis","position","isVisible"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AAMA;;AAKA;;AAdA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAGA,MAAMA,2BAA2B,GAAG;AACnCC,EAAAA,GAAG,EAAE,KAD8B;AAEnCC,EAAAA,KAAK,EAAE,KAF4B;AAGnCC,EAAAA,MAAM,EAAE,IAH2B;AAInCC,EAAAA,IAAI,EAAE,KAJ6B;AAKnCC,EAAAA,QAAQ,EAAE,KALyB;AAMnCC,EAAAA,WAAW,EAAE,KANsB;AAOnCC,EAAAA,UAAU,EAAE,KAPuB;AAQnCC,EAAAA,OAAO,EAAE;AAR0B,CAApC;AAWA,MAAM;AAAEC,EAAAA;AAAF,IAA0B,yBAAQC,wBAAR,CAAhC;;AAEe,SAASC,qBAAT,OAWX;AAAA,MAX2C;AAC9CC,IAAAA,SAD8C;AAE9CC,IAAAA,MAF8C;AAG9CC,IAAAA,SAH8C;AAI9CC,IAAAA,QAJ8C;AAK9CC,IAAAA,aAL8C;AAM9CC,IAAAA,YAN8C;AAO9CC,IAAAA,UAP8C;AAQ9CC,IAAAA,IAR8C;AAS9CC,IAAAA,KAT8C;AAU9C,OAAGC;AAV2C,GAW3C;AACH,QAAM,CAAEC,UAAF,EAAcC,aAAd,IAAgC,uBAAU,KAAV,CAAtC;AACA,QAAMC,UAAU,GAAG,sBAClB,OAAQ;AAAEX,IAAAA,MAAF;AAAUC,IAAAA,SAAV;AAAqBM,IAAAA;AAArB,GAAR,CADkB,EAElB,CAAEN,SAAF,EAAaD,MAAb,EAAqBO,KAArB,CAFkB,CAAnB;AAKA,QAAMK,iBAAiB,GAAG;AACzBb,IAAAA,SAAS,EAAE,yBAAYA,SAAZ,EAAuB;AAAE,qBAAeU;AAAjB,KAAvB,CADc;AAEzBI,IAAAA,MAAM,EAAE1B,2BAFiB;AAGzBgB,IAAAA,aAAa,EAAE,CAAEW,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC7Cb,MAAAA,aAAa,CAAEa,GAAG,CAACC,YAAN,CAAb;AACAf,MAAAA,QAAQ,CAAEc,GAAG,CAACC,YAAN,CAAR;AACA,KANwB;AAOzBf,IAAAA,QAAQ,EAAE,CAAEY,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AACxCd,MAAAA,QAAQ,CAAEc,GAAG,CAACC,YAAN,CAAR;;AACA,UAAK,CAAER,UAAP,EAAoB;AACnBC,QAAAA,aAAa,CAAE,IAAF,CAAb;AACA;AACD,KAZwB;AAazBN,IAAAA,YAAY,EAAE,CAAEU,MAAF,EAAUC,UAAV,EAAsBC,GAAtB,KAA+B;AAC5CZ,MAAAA,YAAY,CAAEY,GAAG,CAACC,YAAN,CAAZ;AACAP,MAAAA,aAAa,CAAE,KAAF,CAAb;AACA,KAhBwB;AAiBzBL,IAAAA,UAjByB;AAkBzBC,IAAAA,IAlByB;AAmBzBY,IAAAA,yBAAyB,EAAE,IAnBF;AAoBzBC,IAAAA,0BAA0B,EAAE;AAC3BC,MAAAA,IAAI,EAAE,GADqB;AAE3BC,MAAAA,QAAQ,EAAE,QAFiB;AAG3BC,MAAAA,SAAS,EAAEb;AAHgB;AApBH,GAA1B;AA2BA,SACC,4BAAC,mBAAD;AACC,IAAA,SAAS,EAAC,4CADX;AAEC,IAAA,qBAAqB,EAAGE,UAFzB;AAGC,IAAA,iBAAiB,EAAGC;AAHrB,KAIMJ,KAJN,EADD;AAQA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { privateApis as blockEditorPrivateApis } from '@wordpress/block-editor';\n\n/**\n * Internal dependencies\n */\nimport { unlock } from '../../private-apis';\n\nconst RESIZABLE_BOX_ENABLE_OPTION = {\n\ttop: false,\n\tright: false,\n\tbottom: true,\n\tleft: false,\n\ttopRight: false,\n\tbottomRight: false,\n\tbottomLeft: false,\n\ttopLeft: false,\n};\n\nconst { ResizableBoxPopover } = unlock( blockEditorPrivateApis );\n\nexport default function ResizableCoverPopover( {\n\tclassName,\n\theight,\n\tminHeight,\n\tonResize,\n\tonResizeStart,\n\tonResizeStop,\n\tshowHandle,\n\tsize,\n\twidth,\n\t...props\n} ) {\n\tconst [ isResizing, setIsResizing ] = useState( false );\n\tconst dimensions = useMemo(\n\t\t() => ( { height, minHeight, width } ),\n\t\t[ minHeight, height, width ]\n\t);\n\n\tconst resizableBoxProps = {\n\t\tclassName: classnames( className, { 'is-resizing': isResizing } ),\n\t\tenable: RESIZABLE_BOX_ENABLE_OPTION,\n\t\tonResizeStart: ( _event, _direction, elt ) => {\n\t\t\tonResizeStart( elt.clientHeight );\n\t\t\tonResize( elt.clientHeight );\n\t\t},\n\t\tonResize: ( _event, _direction, elt ) => {\n\t\t\tonResize( elt.clientHeight );\n\t\t\tif ( ! isResizing ) {\n\t\t\t\tsetIsResizing( true );\n\t\t\t}\n\t\t},\n\t\tonResizeStop: ( _event, _direction, elt ) => {\n\t\t\tonResizeStop( elt.clientHeight );\n\t\t\tsetIsResizing( false );\n\t\t},\n\t\tshowHandle,\n\t\tsize,\n\t\t__experimentalShowTooltip: true,\n\t\t__experimentalTooltipProps: {\n\t\t\taxis: 'y',\n\t\t\tposition: 'bottom',\n\t\t\tisVisible: isResizing,\n\t\t},\n\t};\n\n\treturn (\n\t\t<ResizableBoxPopover\n\t\t\tclassName=\"block-library-cover__resizable-box-popover\"\n\t\t\t__unstableRefreshSize={ dimensions }\n\t\t\tresizableBoxProps={ resizableBoxProps }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interactivity = require("../utils/interactivity");
|
|
4
|
+
|
|
5
|
+
var _utils = require("./utils");
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal dependencies
|
|
9
|
+
*/
|
|
10
|
+
(0, _interactivity.store)({
|
|
11
|
+
selectors: {
|
|
12
|
+
core: {
|
|
13
|
+
file: {
|
|
14
|
+
hasPdfPreview: _utils.browserSupportsPdfs
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
});
|
|
19
|
+
//# sourceMappingURL=interactivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/file/interactivity.js"],"names":["selectors","core","file","hasPdfPreview"],"mappings":";;AAGA;;AACA;;AAJA;AACA;AACA;AAIA,0BAAO;AACNA,EAAAA,SAAS,EAAE;AACVC,IAAAA,IAAI,EAAE;AACLC,MAAAA,IAAI,EAAE;AACLC,QAAAA,aAAa,EAAbA;AADK;AADD;AADI;AADL,CAAP","sourcesContent":["/**\n * Internal dependencies\n */\nimport { store } from '../utils/interactivity';\nimport { browserSupportsPdfs as hasPdfPreview } from './utils';\n\nstore( {\n\tselectors: {\n\t\tcore: {\n\t\t\tfile: {\n\t\t\t\thasPdfPreview,\n\t\t\t},\n\t\t},\n\t},\n} );\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/file/utils/index.js"],"names":["browserSupportsPdfs","window","navigator","userAgent","indexOf","maxTouchPoints","ActiveXObject","createActiveXObject","type","ax","e","undefined","hidePdfEmbedsOnUnsupportedBrowsers","embeds","document","getElementsByClassName","Array","from","forEach","embed","style","display"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMA,mBAAmB,GAAG,MAAM;AACxC;AACA,MAAKC,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,OAA3B,CAAoC,MAApC,IAA+C,CAAC,CAArD,EAAyD;AACxD,WAAO,KAAP;AACA,GAJuC,CAMxC;;;AACA,MAAKH,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,OAA3B,CAAoC,SAApC,IAAkD,CAAC,CAAxD,EAA4D;AAC3D,WAAO,KAAP;AACA,GATuC,CAWxC;;;AACA,MACCH,MAAM,CAACC,SAAP,CAAiBC,SAAjB,CAA2BC,OAA3B,CAAoC,WAApC,IAAoD,CAAC,CAArD,IACAH,MAAM,CAACC,SAAP,CAAiBG,cADjB,IAEAJ,MAAM,CAACC,SAAP,CAAiBG,cAAjB,GAAkC,CAHnC,EAIE;AACD,WAAO,KAAP;AACA,GAlBuC,CAoBxC;;;AACA,MACC,CAAC,EAAIJ,MAAM,CAACK,aAAP,IAAwB,mBAAmBL,MAA/C,CAAD,IACA,EACCM,mBAAmB,CAAE,aAAF,CAAnB,IACAA,mBAAmB,CAAE,aAAF,CAFpB,CAFD,EAME;AACD,WAAO,KAAP;AACA;;AAED,SAAO,IAAP;AACA,CAhCM;AAkCP;AACA;AACA;AACA;AACA;AACA;AACA;;;;;AACA,MAAMA,mBAAmB,GAAKC,IAAF,IAAY;AACvC,MAAIC,EAAJ;;AACA,MAAI;AACHA,IAAAA,EAAE,GAAG,IAAIR,MAAM,CAACK,aAAX,CAA0BE,IAA1B,CAAL;AACA,GAFD,CAEE,OAAQE,CAAR,EAAY;AACbD,IAAAA,EAAE,GAAGE,SAAL;AACA;;AACD,SAAOF,EAAP;AACA,CARD;AAUA;AACA;AACA;AACA;;;AACO,MAAMG,kCAAkC,GAAG,MAAM;AACvD,MAAK,CAAEZ,mBAAmB,EAA1B,EAA+B;AAC9B,UAAMa,MAAM,GAAGC,QAAQ,CAACC,sBAAT,CACd,sBADc,CAAf;AAGAC,IAAAA,KAAK,CAACC,IAAN,CAAYJ,MAAZ,EAAqBK,OAArB,CAAgCC,KAAF,IAAa;AAC1CA,MAAAA,KAAK,CAACC,KAAN,CAAYC,OAAZ,GAAsB,MAAtB;AACA,KAFD;AAGA;AACD,CATM","sourcesContent":["/**\n * Uses a combination of user agent matching and feature detection to determine whether\n * the current browser supports rendering PDFs inline.\n *\n * @return {boolean} Whether or not the browser supports inline PDFs.\n */\nexport const browserSupportsPdfs = () => {\n\t// Most mobile devices include \"Mobi\" in their UA.\n\tif ( window.navigator.userAgent.indexOf( 'Mobi' ) > -1 ) {\n\t\treturn false;\n\t}\n\n\t// Android tablets are the noteable exception.\n\tif ( window.navigator.userAgent.indexOf( 'Android' ) > -1 ) {\n\t\treturn false;\n\t}\n\n\t// iPad pretends to be a Mac.\n\tif (\n\t\twindow.navigator.userAgent.indexOf( 'Macintosh' ) > -1 &&\n\t\twindow.navigator.maxTouchPoints &&\n\t\twindow.navigator.maxTouchPoints > 2\n\t) {\n\t\treturn false;\n\t}\n\n\t// IE only supports PDFs when there's an ActiveX object available for it.\n\tif (\n\t\t!! ( window.ActiveXObject || 'ActiveXObject' in window ) &&\n\t\t! (\n\t\t\tcreateActiveXObject( 'AcroPDF.PDF' ) ||\n\t\t\tcreateActiveXObject( 'PDF.PdfCtrl' )\n\t\t)\n\t) {\n\t\treturn false;\n\t}\n\n\treturn true;\n};\n\n/**\n * Helper function for creating ActiveX objects, catching any errors that are thrown\n * when it's generated.\n *\n * @param {string} type The name of the ActiveX object to create.\n * @return {window.ActiveXObject|undefined} The generated ActiveXObject, or null if it failed.\n */\nconst createActiveXObject = ( type ) => {\n\tlet ax;\n\ttry {\n\t\tax = new window.ActiveXObject( type );\n\t} catch ( e ) {\n\t\tax = undefined;\n\t}\n\treturn ax;\n};\n\n/**\n * Hides all .wp-block-file__embed elements on the document. This function is only intended\n * to be run on the front-end, it may have weird side effects running in the block editor.\n */\nexport const hidePdfEmbedsOnUnsupportedBrowsers = () => {\n\tif ( ! browserSupportsPdfs() ) {\n\t\tconst embeds = document.getElementsByClassName(\n\t\t\t'wp-block-file__embed'\n\t\t);\n\t\tArray.from( embeds ).forEach( ( embed ) => {\n\t\t\tembed.style.display = 'none';\n\t\t} );\n\t}\n};\n"]}
|
package/build/freeform/modal.js
CHANGED
|
@@ -32,7 +32,6 @@ function ClassicEdit(props) {
|
|
|
32
32
|
});
|
|
33
33
|
window.wp.oldEditor.initialize(props.id, {
|
|
34
34
|
tinymce: { ...settings,
|
|
35
|
-
height: 500,
|
|
36
35
|
|
|
37
36
|
setup(editor) {
|
|
38
37
|
editor.on('init', () => {
|
|
@@ -68,20 +67,27 @@ function ModalEdit(props) {
|
|
|
68
67
|
} = props;
|
|
69
68
|
const [isOpen, setOpen] = (0, _element.useState)(false);
|
|
70
69
|
const id = `editor-${clientId}`;
|
|
71
|
-
|
|
70
|
+
|
|
71
|
+
const onClose = () => content ? setOpen(false) : onReplace([]);
|
|
72
|
+
|
|
72
73
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.BlockControls, null, (0, _element.createElement)(_components.ToolbarGroup, null, (0, _element.createElement)(_components.ToolbarButton, {
|
|
73
74
|
onClick: () => setOpen(true)
|
|
74
|
-
},
|
|
75
|
-
title:
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
}
|
|
83
|
-
|
|
84
|
-
|
|
75
|
+
}, (0, _i18n.__)('Edit')))), content && (0, _element.createElement)(_element.RawHTML, null, content), (isOpen || !content) && (0, _element.createElement)(_components.Modal, {
|
|
76
|
+
title: (0, _i18n.__)('Classic Editor'),
|
|
77
|
+
onRequestClose: onClose,
|
|
78
|
+
shouldCloseOnClickOutside: false,
|
|
79
|
+
overlayClassName: "block-editor-freeform-modal"
|
|
80
|
+
}, (0, _element.createElement)(ClassicEdit, {
|
|
81
|
+
id: id,
|
|
82
|
+
defaultValue: content
|
|
83
|
+
}), (0, _element.createElement)(_components.Flex, {
|
|
84
|
+
className: "block-editor-freeform-modal__actions",
|
|
85
|
+
justify: "flex-end",
|
|
86
|
+
expanded: false
|
|
87
|
+
}, (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
88
|
+
variant: "tertiary",
|
|
89
|
+
onClick: onClose
|
|
90
|
+
}, (0, _i18n.__)('Cancel'))), (0, _element.createElement)(_components.FlexItem, null, (0, _element.createElement)(_components.Button, {
|
|
85
91
|
variant: "primary",
|
|
86
92
|
onClick: () => {
|
|
87
93
|
setAttributes({
|
|
@@ -89,9 +95,6 @@ function ModalEdit(props) {
|
|
|
89
95
|
});
|
|
90
96
|
setOpen(false);
|
|
91
97
|
}
|
|
92
|
-
}, (0, _i18n.__)('Save'))))
|
|
93
|
-
id: id,
|
|
94
|
-
defaultValue: content
|
|
95
|
-
})));
|
|
98
|
+
}, (0, _i18n.__)('Save'))))));
|
|
96
99
|
}
|
|
97
100
|
//# sourceMappingURL=modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/freeform/modal.js"],"names":["ClassicEdit","props","styles","select","store","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/freeform/modal.js"],"names":["ClassicEdit","props","styles","select","store","getSettings","baseURL","suffix","settings","window","wpEditorL10n","tinymce","EditorManager","overrideDefaults","base_url","wp","oldEditor","initialize","id","setup","editor","on","doc","getDoc","forEach","css","styleEl","createElement","innerHTML","head","appendChild","remove","ModalEdit","clientId","attributes","content","setAttributes","onReplace","isOpen","setOpen","onClose","getContent"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { BlockControls, store } from '@wordpress/block-editor';\nimport {\n\tToolbarGroup,\n\tToolbarButton,\n\tModal,\n\tButton,\n\tFlex,\n\tFlexItem,\n} from '@wordpress/components';\nimport { useEffect, useState, RawHTML } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { useSelect } from '@wordpress/data';\n\nfunction ClassicEdit( props ) {\n\tconst styles = useSelect(\n\t\t( select ) => select( store ).getSettings().styles\n\t);\n\tuseEffect( () => {\n\t\tconst { baseURL, suffix, settings } = window.wpEditorL10n.tinymce;\n\n\t\twindow.tinymce.EditorManager.overrideDefaults( {\n\t\t\tbase_url: baseURL,\n\t\t\tsuffix,\n\t\t} );\n\n\t\twindow.wp.oldEditor.initialize( props.id, {\n\t\t\ttinymce: {\n\t\t\t\t...settings,\n\t\t\t\tsetup( editor ) {\n\t\t\t\t\teditor.on( 'init', () => {\n\t\t\t\t\t\tconst doc = editor.getDoc();\n\t\t\t\t\t\tstyles.forEach( ( { css } ) => {\n\t\t\t\t\t\t\tconst styleEl = doc.createElement( 'style' );\n\t\t\t\t\t\t\tstyleEl.innerHTML = css;\n\t\t\t\t\t\t\tdoc.head.appendChild( styleEl );\n\t\t\t\t\t\t} );\n\t\t\t\t\t} );\n\t\t\t\t},\n\t\t\t},\n\t\t} );\n\n\t\treturn () => {\n\t\t\twindow.wp.oldEditor.remove( props.id );\n\t\t};\n\t}, [] );\n\n\treturn <textarea { ...props } />;\n}\n\nexport default function ModalEdit( props ) {\n\tconst {\n\t\tclientId,\n\t\tattributes: { content },\n\t\tsetAttributes,\n\t\tonReplace,\n\t} = props;\n\tconst [ isOpen, setOpen ] = useState( false );\n\tconst id = `editor-${ clientId }`;\n\n\tconst onClose = () => ( content ? setOpen( false ) : onReplace( [] ) );\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton onClick={ () => setOpen( true ) }>\n\t\t\t\t\t\t{ __( 'Edit' ) }\n\t\t\t\t\t</ToolbarButton>\n\t\t\t\t</ToolbarGroup>\n\t\t\t</BlockControls>\n\t\t\t{ content && <RawHTML>{ content }</RawHTML> }\n\t\t\t{ ( isOpen || ! content ) && (\n\t\t\t\t<Modal\n\t\t\t\t\ttitle={ __( 'Classic Editor' ) }\n\t\t\t\t\tonRequestClose={ onClose }\n\t\t\t\t\tshouldCloseOnClickOutside={ false }\n\t\t\t\t\toverlayClassName=\"block-editor-freeform-modal\"\n\t\t\t\t>\n\t\t\t\t\t<ClassicEdit id={ id } defaultValue={ content } />\n\t\t\t\t\t<Flex\n\t\t\t\t\t\tclassName=\"block-editor-freeform-modal__actions\"\n\t\t\t\t\t\tjustify=\"flex-end\"\n\t\t\t\t\t\texpanded={ false }\n\t\t\t\t\t>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button variant=\"tertiary\" onClick={ onClose }>\n\t\t\t\t\t\t\t\t{ __( 'Cancel' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\tcontent:\n\t\t\t\t\t\t\t\t\t\t\twindow.wp.oldEditor.getContent(\n\t\t\t\t\t\t\t\t\t\t\t\tid\n\t\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\tsetOpen( false );\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Save' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FlexItem>\n\t\t\t\t\t</Flex>\n\t\t\t\t</Modal>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
|
package/build/gallery/v1/edit.js
CHANGED
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
var _compose = require("@wordpress/compose");
|
|
17
15
|
|
|
18
16
|
var _components = require("@wordpress/components");
|
|
@@ -41,10 +39,6 @@ var _gallery = _interopRequireDefault(require("./gallery"));
|
|
|
41
39
|
|
|
42
40
|
var _constants = require("./constants");
|
|
43
41
|
|
|
44
|
-
/**
|
|
45
|
-
* External dependencies
|
|
46
|
-
*/
|
|
47
|
-
|
|
48
42
|
/**
|
|
49
43
|
* WordPress dependencies
|
|
50
44
|
*/
|
|
@@ -420,7 +414,7 @@ function GalleryEdit(props) {
|
|
|
420
414
|
}
|
|
421
415
|
|
|
422
416
|
const imageSizeOptions = getImagesSizeOptions();
|
|
423
|
-
const shouldShowSizeOptions = hasImages &&
|
|
417
|
+
const shouldShowSizeOptions = hasImages && imageSizeOptions.length > 0;
|
|
424
418
|
return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_blockEditor.InspectorControls, null, (0, _element.createElement)(_components.PanelBody, {
|
|
425
419
|
title: (0, _i18n.__)('Settings')
|
|
426
420
|
}, images.length > 1 && (0, _element.createElement)(_components.RangeControl, (0, _extends2.default)({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","coreStore","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","sharedIcon","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","withNotices","isNarrow"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\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{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = image?.sizes?.[ size.slug ]?.url;\n\t\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\t\timage?.media_details?.sizes?.[ size.slug ]\n\t\t\t\t\t\t\t\t?.source_url;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\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 getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url =\n\t\t\t\tresizedImages[ parseInt( image.id, 10 ) ]?.[ newSizeSlug ];\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// 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\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && ! isEmpty( imageSizeOptions );\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={ columns }\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/>\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' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\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/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\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={ __( 'Image size' ) }\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/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/gallery/v1/edit.js"],"names":["MAX_COLUMNS","linkOptions","value","LINK_DESTINATION_ATTACHMENT","label","LINK_DESTINATION_MEDIA","LINK_DESTINATION_NONE","ALLOWED_MEDIA_TYPES","PLACEHOLDER_TEXT","Platform","select","web","native","MOBILE_CONTROL_PROPS_RANGE_CONTROL","type","GalleryEdit","props","attributes","clientId","isSelected","noticeUI","noticeOperations","onFocus","columns","imageCrop","images","linkTo","sizeSlug","selectedImage","setSelectedImage","attachmentCaptions","setAttachmentCaptions","__unstableMarkNextChangeAsNotPersistent","blockEditorStore","imageSizes","mediaUpload","getMedia","wasBlockJustInserted","settings","getSettings","coreStore","resizedImages","ids","reduce","currentResizedImages","id","image","sizes","currentSizes","size","defaultUrl","slug","url","mediaDetailsUrl","media_details","source_url","parseInt","onFocusGalleryCaption","setAttributes","newAttrs","Error","map","onSelectImage","index","onDeselectImage","onMove","oldIndex","newIndex","newImages","splice","onMoveForward","length","onMoveBackward","onRemoveImage","filter","img","i","Math","min","selectCaption","newImage","newImageId","toString","currentImage","find","currentImageCaption","caption","attachment","onSelectImages","onUploadError","message","removeAllNotices","createErrorNotice","setLinkTo","setColumnsNumber","toggleImageCrop","getImageCropHelp","checked","setImageAttributes","newAttributes","slice","getImagesSizeOptions","resizedImageSizes","Object","values","some","name","updateImagesSize","newSizeSlug","updatedImages","OS","every","filesList","forEach","onFileChange","allowedTypes","window","wp","media","view","defaultProps","link","hasImages","hasImageIds","mediaPlaceholder","sharedIcon","title","instructions","undefined","blockProps","imageSizeOptions","shouldShowSizeOptions","withNotices","isNarrow"],"mappings":";;;;;;;;;AAiBA;;;;AAdA;;AACA;;AAOA;;AAOA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AAhCA;AACA;AACA;;AAuBA;AACA;AACA;AAWA,MAAMA,WAAW,GAAG,CAApB;AACA,MAAMC,WAAW,GAAG,CACnB;AAAEC,EAAAA,KAAK,EAAEC,sCAAT;AAAsCC,EAAAA,KAAK,EAAE,cAAI,iBAAJ;AAA7C,CADmB,EAEnB;AAAEF,EAAAA,KAAK,EAAEG,iCAAT;AAAiCD,EAAAA,KAAK,EAAE,cAAI,YAAJ;AAAxC,CAFmB,EAGnB;AAAEF,EAAAA,KAAK,EAAEI,gCAAT;AAAgCF,EAAAA,KAAK,EAAE,cAAI,MAAJ;AAAvC,CAHmB,CAApB;AAKA,MAAMG,mBAAmB,GAAG,CAAE,OAAF,CAA5B;;AAEA,MAAMC,gBAAgB,GAAGC,kBAASC,MAAT,CAAiB;AACzCC,EAAAA,GAAG,EAAE,cACJ,iEADI,CADoC;AAIzCC,EAAAA,MAAM,EAAE,cAAI,WAAJ;AAJiC,CAAjB,CAAzB;;AAOA,MAAMC,kCAAkC,GAAGJ,kBAASC,MAAT,CAAiB;AAC3DC,EAAAA,GAAG,EAAE,EADsD;AAE3DC,EAAAA,MAAM,EAAE;AAAEE,IAAAA,IAAI,EAAE;AAAR;AAFmD,CAAjB,CAA3C;;AAKA,SAASC,WAAT,CAAsBC,KAAtB,EAA8B;AAC7B,QAAM;AACLC,IAAAA,UADK;AAELC,IAAAA,QAFK;AAGLC,IAAAA,UAHK;AAILC,IAAAA,QAJK;AAKLC,IAAAA,gBALK;AAMLC,IAAAA;AANK,MAOFN,KAPJ;AAQA,QAAM;AACLO,IAAAA,OAAO,GAAG,wCAAwBN,UAAxB,CADL;AAELO,IAAAA,SAFK;AAGLC,IAAAA,MAHK;AAILC,IAAAA,MAJK;AAKLC,IAAAA;AALK,MAMFV,UANJ;AAOA,QAAM,CAAEW,aAAF,EAAiBC,gBAAjB,IAAsC,wBAA5C;AACA,QAAM,CAAEC,kBAAF,EAAsBC,qBAAtB,IAAgD,wBAAtD;AACA,QAAM;AAAEC,IAAAA;AAAF,MACL,uBAAaC,kBAAb,CADD;AAGA,QAAM;AAAEC,IAAAA,UAAF;AAAcC,IAAAA,WAAd;AAA2BC,IAAAA,QAA3B;AAAqCC,IAAAA;AAArC,MACL,qBAAa3B,MAAF,IAAc;AACxB,UAAM4B,QAAQ,GAAG5B,MAAM,CAAEuB,kBAAF,CAAN,CAA2BM,WAA3B,EAAjB;AAEA,WAAO;AACNL,MAAAA,UAAU,EAAEI,QAAQ,CAACJ,UADf;AAENC,MAAAA,WAAW,EAAEG,QAAQ,CAACH,WAFhB;AAGNC,MAAAA,QAAQ,EAAE1B,MAAM,CAAE8B,eAAF,CAAN,CAAoBJ,QAHxB;AAINC,MAAAA,oBAAoB,EAAE3B,MAAM,CAC3BuB,kBAD2B,CAAN,CAEpBI,oBAFoB,CAEEnB,QAFF,EAEY,eAFZ;AAJhB,KAAP;AAQA,GAXD,CADD;AAcA,QAAMuB,aAAa,GAAG,sBAAS,MAAM;AACpC,QAAKtB,UAAL,EAAkB;AAAA;;AACjB,aAAO,oBAAEF,UAAU,CAACyB,GAAb,6DAAoB,EAApB,EAAyBC,MAAzB,CACN,CAAEC,oBAAF,EAAwBC,EAAxB,KAAgC;AAC/B,YAAK,CAAEA,EAAP,EAAY;AACX,iBAAOD,oBAAP;AACA;;AACD,cAAME,KAAK,GAAGV,QAAQ,CAAES,EAAF,CAAtB;AACA,cAAME,KAAK,GAAGb,UAAU,CAACS,MAAX,CAAmB,CAAEK,YAAF,EAAgBC,IAAhB,KAA0B;AAAA;;AAC1D,gBAAMC,UAAU,GAAGJ,KAAH,aAAGA,KAAH,uCAAGA,KAAK,CAAEC,KAAV,0EAAG,aAAgBE,IAAI,CAACE,IAArB,CAAH,0DAAG,sBAA6BC,GAAhD;AACA,gBAAMC,eAAe,GACpBP,KADoB,aACpBA,KADoB,+CACpBA,KAAK,CAAEQ,aADa,kFACpB,qBAAsBP,KADF,oFACpB,sBAA+BE,IAAI,CAACE,IAApC,CADoB,2DACpB,uBACGI,UAFJ;AAGA,iBAAO,EACN,GAAGP,YADG;AAEN,aAAEC,IAAI,CAACE,IAAP,GAAeD,UAAU,IAAIG;AAFvB,WAAP;AAIA,SATa,EASX,EATW,CAAd;AAUA,eAAO,EACN,GAAGT,oBADG;AAEN,WAAEY,QAAQ,CAAEX,EAAF,EAAM,EAAN,CAAV,GAAwBE;AAFlB,SAAP;AAIA,OApBK,EAqBN,EArBM,CAAP;AAuBA;;AACD,WAAO,EAAP;AACA,GA3BqB,EA2BnB,CAAE5B,UAAF,EAAcF,UAAU,CAACyB,GAAzB,EAA8BR,UAA9B,CA3BmB,CAAtB;;AA6BA,WAASuB,qBAAT,GAAiC;AAChC5B,IAAAA,gBAAgB;AAChB;;AAED,WAAS6B,aAAT,CAAwBC,QAAxB,EAAmC;AAClC,QAAKA,QAAQ,CAACjB,GAAd,EAAoB;AACnB,YAAM,IAAIkB,KAAJ,CACL,iHADK,CAAN;AAGA;;AAED,QAAKD,QAAQ,CAAClC,MAAd,EAAuB;AACtBkC,MAAAA,QAAQ,GAAG,EACV,GAAGA,QADO;AAEV;AACA;AACAjB,QAAAA,GAAG,EAAEiB,QAAQ,CAAClC,MAAT,CAAgBoC,GAAhB,CAAqB;AAAA,cAAE;AAAEhB,YAAAA;AAAF,WAAF;AAAA,iBAAcW,QAAQ,CAAEX,EAAF,EAAM,EAAN,CAAtB;AAAA,SAArB;AAJK,OAAX;AAMA;;AAED7B,IAAAA,KAAK,CAAC0C,aAAN,CAAqBC,QAArB;AACA;;AAED,WAASG,aAAT,CAAwBC,KAAxB,EAAgC;AAC/B,WAAO,MAAM;AACZlC,MAAAA,gBAAgB,CAAEkC,KAAF,CAAhB;AACA,KAFD;AAGA;;AAED,WAASC,eAAT,GAA2B;AAC1B,WAAO,MAAM;AACZnC,MAAAA,gBAAgB;AAChB,KAFD;AAGA;;AAED,WAASoC,MAAT,CAAiBC,QAAjB,EAA2BC,QAA3B,EAAsC;AACrC,UAAMC,SAAS,GAAG,CAAE,GAAG3C,MAAL,CAAlB;AACA2C,IAAAA,SAAS,CAACC,MAAV,CAAkBF,QAAlB,EAA4B,CAA5B,EAA+B1C,MAAM,CAAEyC,QAAF,CAArC;AACAE,IAAAA,SAAS,CAACC,MAAV,CAAkBH,QAAlB,EAA4B,CAA5B,EAA+BzC,MAAM,CAAE0C,QAAF,CAArC;AACAtC,IAAAA,gBAAgB,CAAEsC,QAAF,CAAhB;AACAT,IAAAA,aAAa,CAAE;AAAEjC,MAAAA,MAAM,EAAE2C;AAAV,KAAF,CAAb;AACA;;AAED,WAASE,aAAT,CAAwBJ,QAAxB,EAAmC;AAClC,WAAO,MAAM;AACZ,UAAKA,QAAQ,KAAKzC,MAAM,CAAC8C,MAAP,GAAgB,CAAlC,EAAsC;AACrC;AACA;;AACDN,MAAAA,MAAM,CAAEC,QAAF,EAAYA,QAAQ,GAAG,CAAvB,CAAN;AACA,KALD;AAMA;;AAED,WAASM,cAAT,CAAyBN,QAAzB,EAAoC;AACnC,WAAO,MAAM;AACZ,UAAKA,QAAQ,KAAK,CAAlB,EAAsB;AACrB;AACA;;AACDD,MAAAA,MAAM,CAAEC,QAAF,EAAYA,QAAQ,GAAG,CAAvB,CAAN;AACA,KALD;AAMA;;AAED,WAASO,aAAT,CAAwBV,KAAxB,EAAgC;AAC/B,WAAO,MAAM;AACZ,YAAMK,SAAS,GAAG3C,MAAM,CAACiD,MAAP,CAAe,CAAEC,GAAF,EAAOC,CAAP,KAAcb,KAAK,KAAKa,CAAvC,CAAlB;AACA/C,MAAAA,gBAAgB;AAChB6B,MAAAA,aAAa,CAAE;AACdjC,QAAAA,MAAM,EAAE2C,SADM;AAEd7C,QAAAA,OAAO,EAAEN,UAAU,CAACM,OAAX,GACNsD,IAAI,CAACC,GAAL,CAAUV,SAAS,CAACG,MAApB,EAA4BtD,UAAU,CAACM,OAAvC,CADM,GAENN,UAAU,CAACM;AAJA,OAAF,CAAb;AAMA,KATD;AAUA;;AAED,WAASwD,aAAT,CAAwBC,QAAxB,EAAmC;AAClC;AACA;AACA;AACA,UAAMC,UAAU,GAAGD,QAAQ,CAACnC,EAAT,CAAYqC,QAAZ,EAAnB;AACA,UAAMC,YAAY,GAAG1D,MAAM,CAAC2D,IAAP,CAAa;AAAA,UAAE;AAAEvC,QAAAA;AAAF,OAAF;AAAA,aAAcA,EAAE,KAAKoC,UAArB;AAAA,KAAb,CAArB;AACA,UAAMI,mBAAmB,GAAGF,YAAY,GACrCA,YAAY,CAACG,OADwB,GAErCN,QAAQ,CAACM,OAFZ;;AAIA,QAAK,CAAExD,kBAAP,EAA4B;AAC3B,aAAOuD,mBAAP;AACA;;AAED,UAAME,UAAU,GAAGzD,kBAAkB,CAACsD,IAAnB,CAClB;AAAA,UAAE;AAAEvC,QAAAA;AAAF,OAAF;AAAA,aAAcA,EAAE,KAAKoC,UAArB;AAAA,KADkB,CAAnB,CAdkC,CAkBlC;;AACA,QAAKM,UAAU,IAAIA,UAAU,CAACD,OAAX,KAAuBN,QAAQ,CAACM,OAAnD,EAA6D;AAC5D,aAAON,QAAQ,CAACM,OAAhB;AACA;;AAED,WAAOD,mBAAP;AACA;;AAED,WAASG,cAAT,CAAyBpB,SAAzB,EAAqC;AACpCrC,IAAAA,qBAAqB,CACpBqC,SAAS,CAACP,GAAV,CAAiBmB,QAAF,KAAkB;AAChC;AACA;AACAnC,MAAAA,EAAE,EAAEmC,QAAQ,CAACnC,EAAT,CAAYqC,QAAZ,EAH4B;AAIhCI,MAAAA,OAAO,EAAEN,QAAQ,CAACM;AAJc,KAAlB,CAAf,CADoB,CAArB;AAQA5B,IAAAA,aAAa,CAAE;AACdjC,MAAAA,MAAM,EAAE2C,SAAS,CAACP,GAAV,CAAiBmB,QAAF,KAAkB,EACxC,GAAG,oCAAwBA,QAAxB,EAAkCrD,QAAlC,CADqC;AAExC2D,QAAAA,OAAO,EAAEP,aAAa,CAAEC,QAAF,EAAYvD,MAAZ,EAAoBK,kBAApB,CAFkB;AAGxC;AACA;AACA;AACAe,QAAAA,EAAE,EAAEmC,QAAQ,CAACnC,EAAT,CAAYqC,QAAZ;AANoC,OAAlB,CAAf,CADM;AASd3D,MAAAA,OAAO,EAAEN,UAAU,CAACM,OAAX,GACNsD,IAAI,CAACC,GAAL,CAAUV,SAAS,CAACG,MAApB,EAA4BtD,UAAU,CAACM,OAAvC,CADM,GAENN,UAAU,CAACM;AAXA,KAAF,CAAb;AAaA;;AAED,WAASkE,aAAT,CAAwBC,OAAxB,EAAkC;AACjCrE,IAAAA,gBAAgB,CAACsE,gBAAjB;AACAtE,IAAAA,gBAAgB,CAACuE,iBAAjB,CAAoCF,OAApC;AACA;;AAED,WAASG,SAAT,CAAoB3F,KAApB,EAA4B;AAC3BwD,IAAAA,aAAa,CAAE;AAAEhC,MAAAA,MAAM,EAAExB;AAAV,KAAF,CAAb;AACA;;AAED,WAAS4F,gBAAT,CAA2B5F,KAA3B,EAAmC;AAClCwD,IAAAA,aAAa,CAAE;AAAEnC,MAAAA,OAAO,EAAErB;AAAX,KAAF,CAAb;AACA;;AAED,WAAS6F,eAAT,GAA2B;AAC1BrC,IAAAA,aAAa,CAAE;AAAElC,MAAAA,SAAS,EAAE,CAAEA;AAAf,KAAF,CAAb;AACA;;AAED,WAASwE,gBAAT,CAA2BC,OAA3B,EAAqC;AACpC,WAAOA,OAAO,GACX,cAAI,kCAAJ,CADW,GAEX,cAAI,6BAAJ,CAFH;AAGA;;AAED,WAASC,kBAAT,CAA6BnC,KAA7B,EAAoCoC,aAApC,EAAoD;AACnD,QAAK,CAAE1E,MAAM,CAAEsC,KAAF,CAAb,EAAyB;AACxB;AACA;;AAEDL,IAAAA,aAAa,CAAE;AACdjC,MAAAA,MAAM,EAAE,CACP,GAAGA,MAAM,CAAC2E,KAAP,CAAc,CAAd,EAAiBrC,KAAjB,CADI,EAEP,EACC,GAAGtC,MAAM,CAAEsC,KAAF,CADV;AAEC,WAAGoC;AAFJ,OAFO,EAMP,GAAG1E,MAAM,CAAC2E,KAAP,CAAcrC,KAAK,GAAG,CAAtB,CANI;AADM,KAAF,CAAb;AAUA;;AAED,WAASsC,oBAAT,GAAgC;AAC/B,UAAMC,iBAAiB,GAAGC,MAAM,CAACC,MAAP,CAAe/D,aAAf,CAA1B;AACA,WAAOP,UAAU,CACfwC,MADK,CACG;AAAA,UAAE;AAAEvB,QAAAA;AAAF,OAAF;AAAA,aACRmD,iBAAiB,CAACG,IAAlB,CAA0B1D,KAAF,IAAaA,KAAK,CAAEI,IAAF,CAA1C,CADQ;AAAA,KADH,EAILU,GAJK,CAIA;AAAA,UAAE;AAAE6C,QAAAA,IAAF;AAAQvD,QAAAA;AAAR,OAAF;AAAA,aAAwB;AAAEjD,QAAAA,KAAK,EAAEiD,IAAT;AAAe/C,QAAAA,KAAK,EAAEsG;AAAtB,OAAxB;AAAA,KAJA,CAAP;AAKA;;AAED,WAASC,gBAAT,CAA2BC,WAA3B,EAAyC;AACxC,UAAMC,aAAa,GAAG,CAAEpF,MAAF,aAAEA,MAAF,cAAEA,MAAF,GAAY,EAAZ,EAAiBoC,GAAjB,CAAwBf,KAAF,IAAa;AAAA;;AACxD,UAAK,CAAEA,KAAK,CAACD,EAAb,EAAkB;AACjB,eAAOC,KAAP;AACA;;AACD,YAAMM,GAAG,4BACRX,aAAa,CAAEe,QAAQ,CAAEV,KAAK,CAACD,EAAR,EAAY,EAAZ,CAAV,CADL,0DACR,sBAA6C+D,WAA7C,CADD;AAEA,aAAO,EACN,GAAG9D,KADG;AAEN,YAAKM,GAAG,IAAI;AAAEA,UAAAA;AAAF,SAAZ;AAFM,OAAP;AAIA,KAVqB,CAAtB;AAYAM,IAAAA,aAAa,CAAE;AAAEjC,MAAAA,MAAM,EAAEoF,aAAV;AAAyBlF,MAAAA,QAAQ,EAAEiF;AAAnC,KAAF,CAAb;AACA;;AAED,0BAAW,MAAM;AAChB,QACCnG,kBAASqG,EAAT,KAAgB,KAAhB,IACArF,MADA,IAEAA,MAAM,CAAC8C,MAAP,GAAgB,CAFhB,IAGA9C,MAAM,CAACsF,KAAP,CAAc;AAAA,UAAE;AAAE3D,QAAAA;AAAF,OAAF;AAAA,aAAe,qBAAWA,GAAX,CAAf;AAAA,KAAd,CAJD,EAKE;AACD,YAAM4D,SAAS,GAAGvF,MAAM,CAACoC,GAAP,CAAY;AAAA,YAAE;AAAET,UAAAA;AAAF,SAAF;AAAA,eAAe,wBAAcA,GAAd,CAAf;AAAA,OAAZ,CAAlB;AACA3B,MAAAA,MAAM,CAACwF,OAAP,CAAgB;AAAA,YAAE;AAAE7D,UAAAA;AAAF,SAAF;AAAA,eAAe,yBAAeA,GAAf,CAAf;AAAA,OAAhB;AACAjB,MAAAA,WAAW,CAAE;AACZ6E,QAAAA,SADY;AAEZE,QAAAA,YAAY,EAAE1B,cAFF;AAGZ2B,QAAAA,YAAY,EAAE,CAAE,OAAF;AAHF,OAAF,CAAX;AAKA;AACD,GAfD,EAeG,EAfH;AAiBA,0BAAW,MAAM;AAChB;AACA,QAAK,CAAEhG,UAAP,EAAoB;AACnBU,MAAAA,gBAAgB;AAChB;AACD,GALD,EAKG,CAAEV,UAAF,CALH;AAOA,0BAAW,MAAM;AAChB;AACA;AACA,QAAK,CAAEO,MAAP,EAAgB;AAAA;;AACfM,MAAAA,uCAAuC;;AACvC0B,MAAAA,aAAa,CAAE;AACdhC,QAAAA,MAAM,EACL,YAAA0F,MAAM,UAAN,wDAAQC,EAAR,8EAAYC,KAAZ,+FAAmBC,IAAnB,0GAAyBjF,QAAzB,4GAAmCkF,YAAnC,kFAAiDC,IAAjD,KACAnH;AAHa,OAAF,CAAb;AAKA;AACD,GAXD,EAWG,CAAEoB,MAAF,CAXH;AAaA,QAAMgG,SAAS,GAAG,CAAC,CAAEjG,MAAM,CAAC8C,MAA5B;AACA,QAAMoD,WAAW,GAAGD,SAAS,IAAIjG,MAAM,CAACgF,IAAP,CAAe3D,KAAF,IAAa,CAAC,CAAEA,KAAK,CAACD,EAAnC,CAAjC;AAEA,QAAM+E,gBAAgB,GACrB,4BAAC,6BAAD;AACC,IAAA,YAAY,EAAGD,WADhB;AAEC,IAAA,UAAU,EAAGD,SAFd;AAGC,IAAA,mBAAmB,EAAGA,SAAS,IAAI,CAAEvG,UAHtC;AAIC,IAAA,IAAI,EAAG,CAAEuG,SAAF,IAAeG,sBAJvB;AAKC,IAAA,MAAM,EAAG;AACRC,MAAAA,KAAK,EAAE,CAAEJ,SAAF,IAAe,cAAI,SAAJ,CADd;AAERK,MAAAA,YAAY,EAAE,CAAEL,SAAF,IAAelH;AAFrB,KALV;AASC,IAAA,QAAQ,EAAGgF,cATZ;AAUC,IAAA,MAAM,EAAC,SAVR;AAWC,IAAA,YAAY,EAAGjF,mBAXhB;AAYC,IAAA,QAAQ,MAZT;AAaC,IAAA,KAAK,EAAGoH,WAAW,GAAGlG,MAAH,GAAY,EAbhC;AAcC,IAAA,OAAO,EAAGgE,aAdX;AAeC,IAAA,OAAO,EAAGiC,SAAS,GAAGM,SAAH,GAAe5G,QAfnC;AAgBC,IAAA,OAAO,EAAGE,OAhBX;AAiBC,IAAA,mBAAmB,EAClB,CAAEoG,SAAF,IAAevG,UAAf,IAA6BkB;AAlB/B,IADD;AAwBA,QAAM4F,UAAU,GAAG,iCAAnB;;AAEA,MAAK,CAAEP,SAAP,EAAmB;AAClB,WAAO,4BAAC,gBAAD,EAAWO,UAAX,EAA0BL,gBAA1B,CAAP;AACA;;AAED,QAAMM,gBAAgB,GAAG7B,oBAAoB,EAA7C;AACA,QAAM8B,qBAAqB,GAAGT,SAAS,IAAIQ,gBAAgB,CAAC3D,MAAjB,GAA0B,CAArE;AAEA,SACC,qDACC,4BAAC,8BAAD,QACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,UAAJ;AAAnB,KACG9C,MAAM,CAAC8C,MAAP,GAAgB,CAAhB,IACD,4BAAC,wBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,KAAK,EAAGhD,OAHT;AAIC,IAAA,QAAQ,EAAGuE,gBAJZ;AAKC,IAAA,GAAG,EAAG,CALP;AAMC,IAAA,GAAG,EAAGjB,IAAI,CAACC,GAAL,CAAU9E,WAAV,EAAuByB,MAAM,CAAC8C,MAA9B;AANP,KAOM1D,kCAPN;AAQC,IAAA,QAAQ;AART,KAFF,EAaC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,aAAJ,CAFT;AAGC,IAAA,OAAO,EAAG,CAAC,CAAEW,SAHd;AAIC,IAAA,QAAQ,EAAGuE,eAJZ;AAKC,IAAA,IAAI,EAAGC;AALR,IAbD,EAoBC,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,SAAJ,CAFT;AAGC,IAAA,KAAK,EAAGtE,MAHT;AAIC,IAAA,QAAQ,EAAGmE,SAJZ;AAKC,IAAA,OAAO,EAAG5F,WALX;AAMC,IAAA,gBAAgB,EAAG;AANpB,IApBD,EA4BGkI,qBAAqB,IACtB,4BAAC,yBAAD;AACC,IAAA,uBAAuB,MADxB;AAEC,IAAA,KAAK,EAAG,cAAI,YAAJ,CAFT;AAGC,IAAA,KAAK,EAAGxG,QAHT;AAIC,IAAA,OAAO,EAAGuG,gBAJX;AAKC,IAAA,QAAQ,EAAGvB,gBALZ;AAMC,IAAA,gBAAgB,EAAG;AANpB,IA7BF,CADD,CADD,EA0CGvF,QA1CH,EA2CC,4BAAC,gBAAD,6BACMJ,KADN;AAEC,IAAA,aAAa,EAAGY,aAFjB;AAGC,IAAA,gBAAgB,EAAGgG,gBAHpB;AAIC,IAAA,cAAc,EAAGpD,cAJlB;AAKC,IAAA,aAAa,EAAGF,aALjB;AAMC,IAAA,aAAa,EAAGG,aANjB;AAOC,IAAA,aAAa,EAAGX,aAPjB;AAQC,IAAA,eAAe,EAAGE,eARnB;AASC,IAAA,oBAAoB,EAAGkC,kBATxB;AAUC,IAAA,UAAU,EAAG+B,UAVd,CAWC;AAXD;AAYC,IAAA,qBAAqB,EAAGxE;AAZzB,KA3CD,CADD;AA4DA;;eAEc,sBAAS,CACvB2E,uBADuB,EAEvB,iCAAmB;AAAEC,EAAAA,QAAQ,EAAE;AAAZ,CAAnB,CAFuB,CAAT,EAGVtH,WAHU,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport {\n\tPanelBody,\n\tSelectControl,\n\tToggleControl,\n\twithNotices,\n\tRangeControl,\n} from '@wordpress/components';\nimport {\n\tMediaPlaceholder,\n\tInspectorControls,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { Platform, useEffect, useState, useMemo } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { getBlobByURL, isBlobURL, revokeBlobURL } from '@wordpress/blob';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { withViewportMatch } from '@wordpress/viewport';\nimport { View } from '@wordpress/primitives';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Internal dependencies\n */\nimport { sharedIcon } from '../shared-icon';\nimport { pickRelevantMediaFiles } from './shared';\nimport { defaultColumnsNumberV1 } from '../deprecated';\nimport Gallery from './gallery';\nimport {\n\tLINK_DESTINATION_ATTACHMENT,\n\tLINK_DESTINATION_MEDIA,\n\tLINK_DESTINATION_NONE,\n} from './constants';\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{ value: LINK_DESTINATION_NONE, label: __( 'None' ) },\n];\nconst ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nconst PLACEHOLDER_TEXT = Platform.select( {\n\tweb: __(\n\t\t'Drag images, upload new ones or select files from your library.'\n\t),\n\tnative: __( 'ADD MEDIA' ),\n} );\n\nconst MOBILE_CONTROL_PROPS_RANGE_CONTROL = Platform.select( {\n\tweb: {},\n\tnative: { type: 'stepper' },\n} );\n\nfunction GalleryEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tclientId,\n\t\tisSelected,\n\t\tnoticeUI,\n\t\tnoticeOperations,\n\t\tonFocus,\n\t} = props;\n\tconst {\n\t\tcolumns = defaultColumnsNumberV1( attributes ),\n\t\timageCrop,\n\t\timages,\n\t\tlinkTo,\n\t\tsizeSlug,\n\t} = attributes;\n\tconst [ selectedImage, setSelectedImage ] = useState();\n\tconst [ attachmentCaptions, setAttachmentCaptions ] = useState();\n\tconst { __unstableMarkNextChangeAsNotPersistent } =\n\t\tuseDispatch( blockEditorStore );\n\n\tconst { imageSizes, mediaUpload, getMedia, wasBlockJustInserted } =\n\t\tuseSelect( ( select ) => {\n\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\n\t\t\treturn {\n\t\t\t\timageSizes: settings.imageSizes,\n\t\t\t\tmediaUpload: settings.mediaUpload,\n\t\t\t\tgetMedia: select( coreStore ).getMedia,\n\t\t\t\twasBlockJustInserted: select(\n\t\t\t\t\tblockEditorStore\n\t\t\t\t).wasBlockJustInserted( clientId, 'inserter_menu' ),\n\t\t\t};\n\t\t} );\n\n\tconst resizedImages = useMemo( () => {\n\t\tif ( isSelected ) {\n\t\t\treturn ( attributes.ids ?? [] ).reduce(\n\t\t\t\t( currentResizedImages, id ) => {\n\t\t\t\t\tif ( ! id ) {\n\t\t\t\t\t\treturn currentResizedImages;\n\t\t\t\t\t}\n\t\t\t\t\tconst image = getMedia( id );\n\t\t\t\t\tconst sizes = imageSizes.reduce( ( currentSizes, size ) => {\n\t\t\t\t\t\tconst defaultUrl = image?.sizes?.[ size.slug ]?.url;\n\t\t\t\t\t\tconst mediaDetailsUrl =\n\t\t\t\t\t\t\timage?.media_details?.sizes?.[ size.slug ]\n\t\t\t\t\t\t\t\t?.source_url;\n\t\t\t\t\t\treturn {\n\t\t\t\t\t\t\t...currentSizes,\n\t\t\t\t\t\t\t[ size.slug ]: defaultUrl || mediaDetailsUrl,\n\t\t\t\t\t\t};\n\t\t\t\t\t}, {} );\n\t\t\t\t\treturn {\n\t\t\t\t\t\t...currentResizedImages,\n\t\t\t\t\t\t[ parseInt( id, 10 ) ]: sizes,\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t}\n\t\treturn {};\n\t}, [ isSelected, attributes.ids, imageSizes ] );\n\n\tfunction onFocusGalleryCaption() {\n\t\tsetSelectedImage();\n\t}\n\n\tfunction setAttributes( newAttrs ) {\n\t\tif ( newAttrs.ids ) {\n\t\t\tthrow new Error(\n\t\t\t\t'The \"ids\" attribute should not be changed directly. It is managed automatically when \"images\" attribute changes'\n\t\t\t);\n\t\t}\n\n\t\tif ( newAttrs.images ) {\n\t\t\tnewAttrs = {\n\t\t\t\t...newAttrs,\n\t\t\t\t// Unlike images[ n ].id which is a string, always ensure the\n\t\t\t\t// ids array contains numbers as per its attribute type.\n\t\t\t\tids: newAttrs.images.map( ( { id } ) => parseInt( id, 10 ) ),\n\t\t\t};\n\t\t}\n\n\t\tprops.setAttributes( newAttrs );\n\t}\n\n\tfunction onSelectImage( index ) {\n\t\treturn () => {\n\t\t\tsetSelectedImage( index );\n\t\t};\n\t}\n\n\tfunction onDeselectImage() {\n\t\treturn () => {\n\t\t\tsetSelectedImage();\n\t\t};\n\t}\n\n\tfunction onMove( oldIndex, newIndex ) {\n\t\tconst newImages = [ ...images ];\n\t\tnewImages.splice( newIndex, 1, images[ oldIndex ] );\n\t\tnewImages.splice( oldIndex, 1, images[ newIndex ] );\n\t\tsetSelectedImage( newIndex );\n\t\tsetAttributes( { images: newImages } );\n\t}\n\n\tfunction onMoveForward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === images.length - 1 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex + 1 );\n\t\t};\n\t}\n\n\tfunction onMoveBackward( oldIndex ) {\n\t\treturn () => {\n\t\t\tif ( oldIndex === 0 ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tonMove( oldIndex, oldIndex - 1 );\n\t\t};\n\t}\n\n\tfunction onRemoveImage( index ) {\n\t\treturn () => {\n\t\t\tconst newImages = images.filter( ( img, i ) => index !== i );\n\t\t\tsetSelectedImage();\n\t\t\tsetAttributes( {\n\t\t\t\timages: newImages,\n\t\t\t\tcolumns: attributes.columns\n\t\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t\t: attributes.columns,\n\t\t\t} );\n\t\t};\n\t}\n\n\tfunction selectCaption( newImage ) {\n\t\t// The image id in both the images and attachmentCaptions arrays is a\n\t\t// string, so ensure comparison works correctly by converting the\n\t\t// newImage.id to a string.\n\t\tconst newImageId = newImage.id.toString();\n\t\tconst currentImage = images.find( ( { id } ) => id === newImageId );\n\t\tconst currentImageCaption = currentImage\n\t\t\t? currentImage.caption\n\t\t\t: newImage.caption;\n\n\t\tif ( ! attachmentCaptions ) {\n\t\t\treturn currentImageCaption;\n\t\t}\n\n\t\tconst attachment = attachmentCaptions.find(\n\t\t\t( { id } ) => id === newImageId\n\t\t);\n\n\t\t// If the attachment caption is updated.\n\t\tif ( attachment && attachment.caption !== newImage.caption ) {\n\t\t\treturn newImage.caption;\n\t\t}\n\n\t\treturn currentImageCaption;\n\t}\n\n\tfunction onSelectImages( newImages ) {\n\t\tsetAttachmentCaptions(\n\t\t\tnewImages.map( ( newImage ) => ( {\n\t\t\t\t// Store the attachmentCaption id as a string for consistency\n\t\t\t\t// with the type of the id in the images attribute.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t\tcaption: newImage.caption,\n\t\t\t} ) )\n\t\t);\n\t\tsetAttributes( {\n\t\t\timages: newImages.map( ( newImage ) => ( {\n\t\t\t\t...pickRelevantMediaFiles( newImage, sizeSlug ),\n\t\t\t\tcaption: selectCaption( newImage, images, attachmentCaptions ),\n\t\t\t\t// The id value is stored in a data attribute, so when the\n\t\t\t\t// block is parsed it's converted to a string. Converting\n\t\t\t\t// to a string here ensures it's type is consistent.\n\t\t\t\tid: newImage.id.toString(),\n\t\t\t} ) ),\n\t\t\tcolumns: attributes.columns\n\t\t\t\t? Math.min( newImages.length, attributes.columns )\n\t\t\t\t: attributes.columns,\n\t\t} );\n\t}\n\n\tfunction onUploadError( message ) {\n\t\tnoticeOperations.removeAllNotices();\n\t\tnoticeOperations.createErrorNotice( message );\n\t}\n\n\tfunction setLinkTo( value ) {\n\t\tsetAttributes( { linkTo: value } );\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 getImageCropHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Thumbnails are cropped to align.' )\n\t\t\t: __( 'Thumbnails are not cropped.' );\n\t}\n\n\tfunction setImageAttributes( index, newAttributes ) {\n\t\tif ( ! images[ index ] ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( {\n\t\t\timages: [\n\t\t\t\t...images.slice( 0, index ),\n\t\t\t\t{\n\t\t\t\t\t...images[ index ],\n\t\t\t\t\t...newAttributes,\n\t\t\t\t},\n\t\t\t\t...images.slice( index + 1 ),\n\t\t\t],\n\t\t} );\n\t}\n\n\tfunction getImagesSizeOptions() {\n\t\tconst resizedImageSizes = Object.values( resizedImages );\n\t\treturn imageSizes\n\t\t\t.filter( ( { slug } ) =>\n\t\t\t\tresizedImageSizes.some( ( sizes ) => sizes[ slug ] )\n\t\t\t)\n\t\t\t.map( ( { name, slug } ) => ( { value: slug, label: name } ) );\n\t}\n\n\tfunction updateImagesSize( newSizeSlug ) {\n\t\tconst updatedImages = ( images ?? [] ).map( ( image ) => {\n\t\t\tif ( ! image.id ) {\n\t\t\t\treturn image;\n\t\t\t}\n\t\t\tconst url =\n\t\t\t\tresizedImages[ parseInt( image.id, 10 ) ]?.[ newSizeSlug ];\n\t\t\treturn {\n\t\t\t\t...image,\n\t\t\t\t...( url && { url } ),\n\t\t\t};\n\t\t} );\n\n\t\tsetAttributes( { images: updatedImages, sizeSlug: newSizeSlug } );\n\t}\n\n\tuseEffect( () => {\n\t\tif (\n\t\t\tPlatform.OS === 'web' &&\n\t\t\timages &&\n\t\t\timages.length > 0 &&\n\t\t\timages.every( ( { url } ) => isBlobURL( url ) )\n\t\t) {\n\t\t\tconst filesList = images.map( ( { url } ) => getBlobByURL( url ) );\n\t\t\timages.forEach( ( { url } ) => revokeBlobURL( url ) );\n\t\t\tmediaUpload( {\n\t\t\t\tfilesList,\n\t\t\t\tonFileChange: onSelectImages,\n\t\t\t\tallowedTypes: [ 'image' ],\n\t\t\t} );\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Deselect images when deselecting the block.\n\t\tif ( ! isSelected ) {\n\t\t\tsetSelectedImage();\n\t\t}\n\t}, [ isSelected ] );\n\n\tuseEffect( () => {\n\t\t// linkTo attribute must be saved so blocks don't break when changing\n\t\t// 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\n\tconst mediaPlaceholder = (\n\t\t<MediaPlaceholder\n\t\t\taddToGallery={ hasImageIds }\n\t\t\tisAppender={ hasImages }\n\t\t\tdisableMediaButtons={ hasImages && ! isSelected }\n\t\t\ticon={ ! hasImages && sharedIcon }\n\t\t\tlabels={ {\n\t\t\t\ttitle: ! hasImages && __( 'Gallery' ),\n\t\t\t\tinstructions: ! hasImages && PLACEHOLDER_TEXT,\n\t\t\t} }\n\t\t\tonSelect={ onSelectImages }\n\t\t\taccept=\"image/*\"\n\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\tmultiple\n\t\t\tvalue={ hasImageIds ? images : {} }\n\t\t\tonError={ onUploadError }\n\t\t\tnotices={ hasImages ? undefined : noticeUI }\n\t\t\tonFocus={ onFocus }\n\t\t\tautoOpenMediaUpload={\n\t\t\t\t! hasImages && isSelected && wasBlockJustInserted\n\t\t\t}\n\t\t/>\n\t);\n\n\tconst blockProps = useBlockProps();\n\n\tif ( ! hasImages ) {\n\t\treturn <View { ...blockProps }>{ mediaPlaceholder }</View>;\n\t}\n\n\tconst imageSizeOptions = getImagesSizeOptions();\n\tconst shouldShowSizeOptions = hasImages && imageSizeOptions.length > 0;\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={ columns }\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/>\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' ) }\n\t\t\t\t\t\tchecked={ !! imageCrop }\n\t\t\t\t\t\tonChange={ toggleImageCrop }\n\t\t\t\t\t\thelp={ getImageCropHelp }\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/>\n\t\t\t\t\t{ shouldShowSizeOptions && (\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={ __( 'Image size' ) }\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/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t{ noticeUI }\n\t\t\t<Gallery\n\t\t\t\t{ ...props }\n\t\t\t\tselectedImage={ selectedImage }\n\t\t\t\tmediaPlaceholder={ mediaPlaceholder }\n\t\t\t\tonMoveBackward={ onMoveBackward }\n\t\t\t\tonMoveForward={ onMoveForward }\n\t\t\t\tonRemoveImage={ onRemoveImage }\n\t\t\t\tonSelectImage={ onSelectImage }\n\t\t\t\tonDeselectImage={ onDeselectImage }\n\t\t\t\tonSetImageAttributes={ setImageAttributes }\n\t\t\t\tblockProps={ blockProps }\n\t\t\t\t// This prop is used by gallery.native.js.\n\t\t\t\tonFocusGalleryCaption={ onFocusGalleryCaption }\n\t\t\t/>\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithNotices,\n\twithViewportMatch( { isNarrow: '< small' } ),\n] )( GalleryEdit );\n"]}
|
|
@@ -11,8 +11,6 @@ var _element = require("@wordpress/element");
|
|
|
11
11
|
|
|
12
12
|
var _reactNative = require("react-native");
|
|
13
13
|
|
|
14
|
-
var _lodash = require("lodash");
|
|
15
|
-
|
|
16
14
|
var _reactNativeBridge = require("@wordpress/react-native-bridge");
|
|
17
15
|
|
|
18
16
|
var _components = require("@wordpress/components");
|
|
@@ -311,7 +309,7 @@ class GalleryImage extends _element.Component {
|
|
|
311
309
|
caption,
|
|
312
310
|
'aria-label': ariaLabel
|
|
313
311
|
} = this.props;
|
|
314
|
-
return
|
|
312
|
+
return !caption ? ariaLabel : ariaLabel + '. ' + (0, _i18n.sprintf)(
|
|
315
313
|
/* translators: accessibility text. %s: image caption. */
|
|
316
314
|
(0, _i18n.__)('Image caption. %s'), caption);
|
|
317
315
|
}
|