@wordpress/block-library 8.25.0 → 8.25.1-next.79a6196f.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/LICENSE.md +1 -1
- package/build/audio/edit.js +10 -12
- package/build/audio/edit.js.map +1 -1
- package/build/block/edit.js +81 -34
- package/build/block/edit.js.map +1 -1
- package/build/comments-title/deprecated.js +1 -1
- package/build/comments-title/index.js +1 -1
- package/build/cover/edit/inspector-controls.js +1 -1
- package/build/cover/edit/inspector-controls.js.map +1 -1
- package/build/cover/edit.native.js +1 -0
- package/build/cover/edit.native.js.map +1 -1
- package/build/embed/util.js +4 -4
- package/build/embed/util.js.map +1 -1
- package/build/file/edit.js +19 -27
- package/build/file/edit.js.map +1 -1
- package/build/gallery/edit.js +36 -17
- package/build/gallery/edit.js.map +1 -1
- package/build/gallery/gallery.js +3 -2
- package/build/gallery/gallery.js.map +1 -1
- package/build/gallery/index.js +4 -0
- package/build/gallery/index.js.map +1 -1
- package/build/gallery/transforms.js +4 -68
- package/build/gallery/transforms.js.map +1 -1
- package/build/group/index.js +5 -1
- package/build/group/index.js.map +1 -1
- package/build/image/deprecated.js +11 -0
- package/build/image/deprecated.js.map +1 -1
- package/build/image/edit.native.js +3 -0
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +22 -21
- package/build/image/image.js.map +1 -1
- package/build/image/view.js +7 -1
- package/build/image/view.js.map +1 -1
- package/build/list/edit.js +10 -15
- package/build/list/edit.js.map +1 -1
- package/build/list-item/edit.js +17 -2
- package/build/list-item/edit.js.map +1 -1
- package/build/list-item/hooks/use-enter.js +5 -3
- package/build/list-item/hooks/use-enter.js.map +1 -1
- package/build/list-item/hooks/use-enter.native.js +4 -3
- package/build/list-item/hooks/use-enter.native.js.map +1 -1
- package/build/list-item/hooks/use-indent-list-item.js +2 -3
- package/build/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-merge.js +1 -1
- package/build/list-item/hooks/use-merge.js.map +1 -1
- package/build/list-item/hooks/use-outdent-list-item.js +3 -17
- package/build/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build/list-item/hooks/use-space.js +8 -4
- package/build/list-item/hooks/use-space.js.map +1 -1
- package/build/media-text/media-container.native.js +3 -0
- package/build/media-text/media-container.native.js.map +1 -1
- package/build/navigation/constants.js +3 -1
- package/build/navigation/constants.js.map +1 -1
- package/build/navigation/edit/index.js +4 -0
- package/build/navigation/edit/index.js.map +1 -1
- package/build/navigation/view.js +25 -1
- package/build/navigation/view.js.map +1 -1
- package/build/paragraph/index.js +0 -1
- package/build/paragraph/index.js.map +1 -1
- package/build/paragraph/transforms.js +0 -1
- package/build/paragraph/transforms.js.map +1 -1
- package/build/pattern/edit.js +24 -2
- package/build/pattern/edit.js.map +1 -1
- package/build/pattern/recursion-detector.js +147 -0
- package/build/pattern/recursion-detector.js.map +1 -0
- package/build/post-featured-image/edit.js +19 -2
- package/build/post-featured-image/edit.js.map +1 -1
- package/build/post-featured-image/index.js +4 -0
- package/build/post-featured-image/index.js.map +1 -1
- package/build/query/edit/inspector-controls/index.js +3 -1
- package/build/query/edit/inspector-controls/index.js.map +1 -1
- package/build/query-pagination-numbers/index.js +1 -1
- package/build/search/edit.js +3 -5
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +0 -4
- package/build/search/index.js.map +1 -1
- package/build/site-logo/edit.js +7 -6
- package/build/site-logo/edit.js.map +1 -1
- package/build/spacer/edit.native.js +2 -2
- package/build/spacer/edit.native.js.map +1 -1
- package/build/tag-cloud/edit.js +5 -9
- package/build/tag-cloud/edit.js.map +1 -1
- package/build/utils/constants.js +16 -0
- package/build/utils/constants.js.map +1 -0
- package/build/video/edit.js +11 -8
- package/build/video/edit.js.map +1 -1
- package/build-module/audio/edit.js +10 -12
- package/build-module/audio/edit.js.map +1 -1
- package/build-module/block/edit.js +85 -38
- package/build-module/block/edit.js.map +1 -1
- package/build-module/comments-title/deprecated.js +1 -1
- package/build-module/comments-title/index.js +1 -1
- package/build-module/cover/edit/inspector-controls.js +1 -1
- package/build-module/cover/edit/inspector-controls.js.map +1 -1
- package/build-module/cover/edit.native.js +1 -0
- package/build-module/cover/edit.native.js.map +1 -1
- package/build-module/embed/util.js +4 -4
- package/build-module/embed/util.js.map +1 -1
- package/build-module/file/edit.js +19 -27
- package/build-module/file/edit.js.map +1 -1
- package/build-module/gallery/edit.js +36 -17
- package/build-module/gallery/edit.js.map +1 -1
- package/build-module/gallery/gallery.js +3 -2
- package/build-module/gallery/gallery.js.map +1 -1
- package/build-module/gallery/index.js +4 -0
- package/build-module/gallery/index.js.map +1 -1
- package/build-module/gallery/transforms.js +4 -68
- package/build-module/gallery/transforms.js.map +1 -1
- package/build-module/group/index.js +5 -1
- package/build-module/group/index.js.map +1 -1
- package/build-module/image/deprecated.js +11 -0
- package/build-module/image/deprecated.js.map +1 -1
- package/build-module/image/edit.native.js +3 -0
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +17 -16
- package/build-module/image/image.js.map +1 -1
- package/build-module/image/view.js +7 -1
- package/build-module/image/view.js.map +1 -1
- package/build-module/list/edit.js +10 -15
- package/build-module/list/edit.js.map +1 -1
- package/build-module/list-item/edit.js +18 -3
- package/build-module/list-item/edit.js.map +1 -1
- package/build-module/list-item/hooks/use-enter.js +5 -3
- package/build-module/list-item/hooks/use-enter.js.map +1 -1
- package/build-module/list-item/hooks/use-enter.native.js +4 -3
- package/build-module/list-item/hooks/use-enter.native.js.map +1 -1
- package/build-module/list-item/hooks/use-indent-list-item.js +2 -3
- package/build-module/list-item/hooks/use-indent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-merge.js +1 -1
- package/build-module/list-item/hooks/use-merge.js.map +1 -1
- package/build-module/list-item/hooks/use-outdent-list-item.js +3 -17
- package/build-module/list-item/hooks/use-outdent-list-item.js.map +1 -1
- package/build-module/list-item/hooks/use-space.js +8 -4
- package/build-module/list-item/hooks/use-space.js.map +1 -1
- package/build-module/media-text/media-container.native.js +3 -0
- package/build-module/media-text/media-container.native.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/index.js +5 -1
- package/build-module/navigation/edit/index.js.map +1 -1
- package/build-module/navigation/view.js +25 -1
- package/build-module/navigation/view.js.map +1 -1
- package/build-module/paragraph/index.js +0 -1
- package/build-module/paragraph/index.js.map +1 -1
- package/build-module/paragraph/transforms.js +0 -1
- package/build-module/paragraph/transforms.js.map +1 -1
- package/build-module/pattern/edit.js +26 -4
- package/build-module/pattern/edit.js.map +1 -1
- package/build-module/pattern/recursion-detector.js +139 -0
- package/build-module/pattern/recursion-detector.js.map +1 -0
- package/build-module/post-featured-image/edit.js +19 -2
- package/build-module/post-featured-image/edit.js.map +1 -1
- package/build-module/post-featured-image/index.js +4 -0
- package/build-module/post-featured-image/index.js.map +1 -1
- package/build-module/query/edit/inspector-controls/index.js +3 -1
- package/build-module/query/edit/inspector-controls/index.js.map +1 -1
- package/build-module/query-pagination-numbers/index.js +1 -1
- package/build-module/search/edit.js +3 -5
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +0 -4
- package/build-module/search/index.js.map +1 -1
- package/build-module/site-logo/edit.js +7 -6
- package/build-module/site-logo/edit.js.map +1 -1
- package/build-module/spacer/edit.native.js +2 -2
- package/build-module/spacer/edit.native.js.map +1 -1
- package/build-module/tag-cloud/edit.js +6 -10
- package/build-module/tag-cloud/edit.js.map +1 -1
- package/build-module/utils/constants.js +9 -0
- package/build-module/utils/constants.js.map +1 -0
- package/build-module/video/edit.js +11 -8
- package/build-module/video/edit.js.map +1 -1
- package/build-style/button/editor-rtl.css +0 -37
- package/build-style/button/editor.css +0 -37
- package/build-style/button/style-rtl.css +6 -6
- package/build-style/button/style.css +6 -6
- package/build-style/editor-rtl.css +2 -44
- package/build-style/editor.css +2 -44
- package/build-style/navigation/editor-rtl.css +2 -4
- package/build-style/navigation/editor.css +2 -4
- package/build-style/navigation/style-rtl.css +14 -18
- package/build-style/navigation/style.css +14 -18
- package/build-style/search/style-rtl.css +26 -27
- package/build-style/search/style.css +26 -27
- package/build-style/style-rtl.css +46 -51
- package/build-style/style.css +46 -51
- package/build-style/table/editor-rtl.css +0 -3
- package/build-style/table/editor.css +0 -3
- package/package.json +32 -32
- package/src/audio/edit.js +19 -19
- package/src/audio/test/__snapshots__/edit.native.js.snap +12 -0
- package/src/audio/test/edit.native.js +29 -0
- package/src/block/edit.js +120 -66
- package/src/button/editor.scss +0 -43
- package/src/button/style.scss +6 -6
- package/src/buttons/test/__snapshots__/edit.native.js.snap +6 -0
- package/src/buttons/test/edit.native.js +49 -0
- package/src/comments-title/block.json +1 -1
- package/src/cover/edit/inspector-controls.js +1 -1
- package/src/cover/edit.native.js +1 -0
- package/src/embed/util.js +2 -2
- package/src/file/edit.js +17 -24
- package/src/gallery/block.json +4 -0
- package/src/gallery/edit.js +69 -42
- package/src/gallery/gallery.js +4 -1
- package/src/gallery/index.php +15 -0
- package/src/gallery/transforms.js +2 -55
- package/src/group/block.json +5 -1
- package/src/image/deprecated.js +8 -0
- package/src/image/edit.native.js +3 -0
- package/src/image/image.js +54 -35
- package/src/image/index.php +1 -6
- package/src/image/view.js +5 -2
- package/src/list/edit.js +27 -35
- package/src/list-item/edit.js +18 -2
- package/src/list-item/hooks/use-enter.js +63 -62
- package/src/list-item/hooks/use-enter.native.js +9 -5
- package/src/list-item/hooks/use-indent-list-item.js +43 -53
- package/src/list-item/hooks/use-merge.js +1 -1
- package/src/list-item/hooks/use-outdent-list-item.js +50 -69
- package/src/list-item/hooks/use-space.js +7 -4
- package/src/media-text/media-container.native.js +3 -1
- package/src/navigation/constants.js +2 -0
- package/src/navigation/edit/index.js +11 -1
- package/src/navigation/editor.scss +1 -1
- package/src/navigation/style.scss +18 -16
- package/src/navigation/view.js +29 -3
- package/src/paragraph/block.json +0 -1
- package/src/paragraph/test/__snapshots__/edit.native.js.snap +12 -0
- package/src/paragraph/test/edit.native.js +114 -0
- package/src/pattern/edit.js +35 -3
- package/src/pattern/index.php +16 -0
- package/src/pattern/recursion-detector.js +145 -0
- package/src/pattern/test/index.js +74 -0
- package/src/post-featured-image/block.json +4 -0
- package/src/post-featured-image/edit.js +32 -1
- package/src/post-featured-image/index.php +31 -0
- package/src/query/edit/inspector-controls/index.js +2 -0
- package/src/query-pagination-numbers/block.json +1 -1
- package/src/search/block.json +0 -4
- package/src/search/edit.js +2 -8
- package/src/search/index.php +3 -7
- package/src/search/style.scss +27 -29
- package/src/site-logo/edit.js +3 -4
- package/src/social-link/index.php +1 -1
- package/src/spacer/edit.native.js +4 -2
- package/src/table/editor.scss +0 -3
- package/src/tag-cloud/edit.js +7 -7
- package/src/template-part/index.php +6 -0
- package/src/utils/constants.js +8 -0
- package/src/video/edit.js +29 -27
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_data","_i18n","_blockEditor","_serverSideRender","_interopRequireDefault","_coreData","MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomies","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","availableUnits","useSettings","units","useCustomUnits","getTaxonomyOptions","selectOption","label","__","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","parseQuantityAndUnitFromRawValue","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","_react","createElement","InspectorControls","PanelBody","title","SelectControl","__nextHasNoMarginBottom","options","onChange","selectedTaxonomy","ToggleControl","checked","RangeControl","__next40pxDefaultSize","min","max","required","Flex","FlexItem","isBlock","__experimentalUnitControl","Fragment","useBlockProps","Disabled","default","skipBlockSupportAttributes","block","_default","withSelect","select","coreStore","getTaxonomies","per_page","exports"],"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { withSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes, taxonomies } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem' ],\n\t} );\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default withSelect( ( select ) => {\n\treturn {\n\t\ttaxonomies: select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t};\n} )( TagCloudEdit );\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAYA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAF,OAAA;AACA,IAAAG,YAAA,GAAAH,OAAA;AAKA,IAAAI,iBAAA,GAAAC,sBAAA,CAAAL,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AAvBA;AACA;AACA;;AAuBA;AACA;AACA;AACA;AACA;AACA,MAAMO,QAAQ,GAAG,CAAC;;AAElB;AACA;AACA;AACA;AACA;AACA,MAAMC,QAAQ,GAAG,GAAG;AAEpB,MAAMC,aAAa,GAAG,GAAG;AACzB,MAAMC,aAAa,GAAG,GAAG;AAEzB,SAASC,YAAYA,CAAE;EAAEC,UAAU;EAAEC,aAAa;EAAEC;AAAW,CAAC,EAAG;EAClE,MAAM;IACLC,QAAQ;IACRC,aAAa;IACbC,YAAY;IACZC,gBAAgB;IAChBC;EACD,CAAC,GAAGP,UAAU;EAEd,MAAM,CAAEQ,cAAc,CAAE,GAAG,IAAAC,wBAAW,EAAE,eAAgB,CAAC;EACzD,MAAMC,KAAK,GAAG,IAAAC,wCAAc,EAAE;IAC7BH,cAAc,EAAEA,cAAc,IAAI,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EAC3D,CAAE,CAAC;EAEH,MAAMI,kBAAkB,GAAGA,CAAA,KAAM;IAChC,MAAMC,YAAY,GAAG;MACpBC,KAAK,EAAE,IAAAC,QAAE,EAAE,YAAa,CAAC;MACzBC,KAAK,EAAE,EAAE;MACTC,QAAQ,EAAE;IACX,CAAC;IACD,MAAMC,eAAe,GAAG,CAAEhB,UAAU,aAAVA,UAAU,cAAVA,UAAU,GAAI,EAAE,EACxCiB,MAAM,CAAIC,GAAG,IAAM,CAAC,CAAEA,GAAG,CAACC,UAAW,CAAC,CACtCC,GAAG,CAAIC,IAAI,IAAM;MACjB,OAAO;QACNP,KAAK,EAAEO,IAAI,CAACC,IAAI;QAChBV,KAAK,EAAES,IAAI,CAACE;MACb,CAAC;IACF,CAAE,CAAC;IAEJ,OAAO,CAAEZ,YAAY,EAAE,GAAGK,eAAe,CAAE;EAC5C,CAAC;EAED,MAAMQ,gBAAgB,GAAGA,CAAEC,aAAa,EAAEC,QAAQ,KAAM;IACvD;IACA,MAAM,CAAEC,QAAQ,EAAEC,OAAO,CAAE,GAC1B,IAAAC,0DAAgC,EAAEH,QAAS,CAAC;IAC7C,IAAK,CAAEI,MAAM,CAACC,QAAQ,CAAEJ,QAAS,CAAC,EAAG;MACpC;IACD;IACA,MAAMK,SAAS,GAAG;MAAE,CAAEP,aAAa,GAAIC;IAAS,CAAC;IACjD;IACA;IACAO,MAAM,CAACC,OAAO,CAAE;MACf9B,gBAAgB;MAChBC;IACD,CAAE,CAAC,CAAC8B,OAAO,CAAE,CAAE,CAAEC,SAAS,EAAEC,YAAY,CAAE,KAAM;MAC/C,MAAM,CAAEC,eAAe,EAAEC,WAAW,CAAE,GACrC,IAAAV,0DAAgC,EAAEQ,YAAa,CAAC;MACjD;MACA,IAAKD,SAAS,KAAKX,aAAa,IAAIc,WAAW,KAAKX,OAAO,EAAG;QAC7DI,SAAS,CAAEI,SAAS,CAAE,GAAI,GAAGE,eAAiB,GAAGV,OAAS,EAAC;MAC5D;IACD,CAAE,CAAC;IACH7B,aAAa,CAAEiC,SAAU,CAAC;EAC3B,CAAC;EAED,MAAMQ,iBAAiB,GACtB,IAAAC,MAAA,CAAAC,aAAA,EAACrD,YAAA,CAAAsD,iBAAiB,QACjB,IAAAF,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA2D,SAAS;IAACC,KAAK,EAAG,IAAAhC,QAAE,EAAE,UAAW;EAAG,GACpC,IAAA4B,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA6D,aAAa;IACbC,uBAAuB;IACvBnC,KAAK,EAAG,IAAAC,QAAE,EAAE,UAAW,CAAG;IAC1BmC,OAAO,EAAGtC,kBAAkB,CAAC,CAAG;IAChCI,KAAK,EAAGb,QAAU;IAClBgD,QAAQ,EAAKC,gBAAgB,IAC5BnD,aAAa,CAAE;MAAEE,QAAQ,EAAEiD;IAAiB,CAAE;EAC9C,CACD,CAAC,EACF,IAAAT,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAAkE,aAAa;IACbJ,uBAAuB;IACvBnC,KAAK,EAAG,IAAAC,QAAE,EAAE,kBAAmB,CAAG;IAClCuC,OAAO,EAAGlD,aAAe;IACzB+C,QAAQ,EAAGA,CAAA,KACVlD,aAAa,CAAE;MAAEG,aAAa,EAAE,CAAEA;IAAc,CAAE;EAClD,CACD,CAAC,EACF,IAAAuC,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAAoE,YAAY;IACZN,uBAAuB;IACvBO,qBAAqB;IACrB1C,KAAK,EAAG,IAAAC,QAAE,EAAE,gBAAiB,CAAG;IAChCC,KAAK,EAAGX,YAAc;IACtB8C,QAAQ,EAAKnC,KAAK,IACjBf,aAAa,CAAE;MAAEI,YAAY,EAAEW;IAAM,CAAE,CACvC;IACDyC,GAAG,EAAG9D,QAAU;IAChB+D,GAAG,EAAG9D,QAAU;IAChB+D,QAAQ;EAAA,CACR,CAAC,EACF,IAAAhB,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAAyE,IAAI,QACJ,IAAAjB,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA0E,QAAQ;IAACC,OAAO;EAAA,GAChB,IAAAnB,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA4E,yBAAW;IACXjD,KAAK,EAAG,IAAAC,QAAE,EAAE,eAAgB,CAAG;IAC/BC,KAAK,EAAGV,gBAAkB;IAC1B6C,QAAQ,EAAKnC,KAAK,IAAM;MACvBU,gBAAgB,CAAE,kBAAkB,EAAEV,KAAM,CAAC;IAC9C,CAAG;IACHN,KAAK,EAAGA,KAAO;IACf+C,GAAG,EAAG5D,aAAe;IACrB6D,GAAG,EAAG5D;EAAe,CACrB,CACQ,CAAC,EACX,IAAA6C,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA0E,QAAQ;IAACC,OAAO;EAAA,GAChB,IAAAnB,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA4E,yBAAW;IACXjD,KAAK,EAAG,IAAAC,QAAE,EAAE,cAAe,CAAG;IAC9BC,KAAK,EAAGT,eAAiB;IACzB4C,QAAQ,EAAKnC,KAAK,IAAM;MACvBU,gBAAgB,CAAE,iBAAiB,EAAEV,KAAM,CAAC;IAC7C,CAAG;IACHN,KAAK,EAAGA,KAAO;IACf+C,GAAG,EAAG5D,aAAe;IACrB6D,GAAG,EAAG5D;EAAe,CACrB,CACQ,CACL,CACI,CACO,CACnB;EAED,OACC,IAAA6C,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAqB,QAAA,QACGtB,iBAAiB,EACnB,IAAAC,MAAA,CAAAC,aAAA;IAAA,GAAU,IAAAqB,0BAAa,EAAC;EAAC,GACxB,IAAAtB,MAAA,CAAAC,aAAA,EAACzD,WAAA,CAAA+E,QAAQ,QACR,IAAAvB,MAAA,CAAAC,aAAA,EAACpD,iBAAA,CAAA2E,OAAgB;IAChBC,0BAA0B;IAC1BC,KAAK,EAAC,gBAAgB;IACtBrE,UAAU,EAAGA;EAAY,CACzB,CACQ,CACN,CACJ,CAAC;AAEL;AAAC,IAAAsE,QAAA,GAEc,IAAAC,gBAAU,EAAIC,MAAM,IAAM;EACxC,OAAO;IACNtE,UAAU,EAAEsE,MAAM,CAAEC,eAAU,CAAC,CAACC,aAAa,CAAE;MAAEC,QAAQ,EAAE,CAAC;IAAE,CAAE;EACjE,CAAC;AACF,CAAE,CAAC,CAAE5E,YAAa,CAAC;AAAA6E,OAAA,CAAAT,OAAA,GAAAG,QAAA"}
|
|
1
|
+
{"version":3,"names":["_components","require","_data","_i18n","_blockEditor","_serverSideRender","_interopRequireDefault","_coreData","MIN_TAGS","MAX_TAGS","MIN_FONT_SIZE","MAX_FONT_SIZE","TagCloudEdit","attributes","setAttributes","taxonomy","showTagCounts","numberOfTags","smallestFontSize","largestFontSize","availableUnits","useSettings","units","useCustomUnits","taxonomies","useSelect","select","coreStore","getTaxonomies","per_page","getTaxonomyOptions","selectOption","label","__","value","disabled","taxonomyOptions","filter","tax","show_cloud","map","item","slug","name","onFontSizeChange","fontSizeLabel","newValue","quantity","newUnit","parseQuantityAndUnitFromRawValue","Number","isFinite","updateObj","Object","entries","forEach","attribute","currentValue","currentQuantity","currentUnit","inspectorControls","_react","createElement","InspectorControls","PanelBody","title","SelectControl","__nextHasNoMarginBottom","options","onChange","selectedTaxonomy","ToggleControl","checked","RangeControl","__next40pxDefaultSize","min","max","required","Flex","FlexItem","isBlock","__experimentalUnitControl","Fragment","useBlockProps","Disabled","default","skipBlockSupportAttributes","block","_default","exports"],"sources":["@wordpress/block-library/src/tag-cloud/edit.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tFlex,\n\tFlexItem,\n\tPanelBody,\n\tToggleControl,\n\tSelectControl,\n\tRangeControl,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n\tDisabled,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tInspectorControls,\n\tuseBlockProps,\n\tuseSettings,\n} from '@wordpress/block-editor';\nimport ServerSideRender from '@wordpress/server-side-render';\nimport { store as coreStore } from '@wordpress/core-data';\n\n/**\n * Minimum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MIN_TAGS = 1;\n\n/**\n * Maximum number of tags a user can show using this block.\n *\n * @type {number}\n */\nconst MAX_TAGS = 100;\n\nconst MIN_FONT_SIZE = 0.1;\nconst MAX_FONT_SIZE = 100;\n\nfunction TagCloudEdit( { attributes, setAttributes } ) {\n\tconst {\n\t\ttaxonomy,\n\t\tshowTagCounts,\n\t\tnumberOfTags,\n\t\tsmallestFontSize,\n\t\tlargestFontSize,\n\t} = attributes;\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem' ],\n\t} );\n\tconst taxonomies = useSelect(\n\t\t( select ) => select( coreStore ).getTaxonomies( { per_page: -1 } ),\n\t\t[]\n\t);\n\n\tconst getTaxonomyOptions = () => {\n\t\tconst selectOption = {\n\t\t\tlabel: __( '- Select -' ),\n\t\t\tvalue: '',\n\t\t\tdisabled: true,\n\t\t};\n\t\tconst taxonomyOptions = ( taxonomies ?? [] )\n\t\t\t.filter( ( tax ) => !! tax.show_cloud )\n\t\t\t.map( ( item ) => {\n\t\t\t\treturn {\n\t\t\t\t\tvalue: item.slug,\n\t\t\t\t\tlabel: item.name,\n\t\t\t\t};\n\t\t\t} );\n\n\t\treturn [ selectOption, ...taxonomyOptions ];\n\t};\n\n\tconst onFontSizeChange = ( fontSizeLabel, newValue ) => {\n\t\t// eslint-disable-next-line @wordpress/no-unused-vars-before-return\n\t\tconst [ quantity, newUnit ] =\n\t\t\tparseQuantityAndUnitFromRawValue( newValue );\n\t\tif ( ! Number.isFinite( quantity ) ) {\n\t\t\treturn;\n\t\t}\n\t\tconst updateObj = { [ fontSizeLabel ]: newValue };\n\t\t// We need to keep in sync the `unit` changes to both `smallestFontSize`\n\t\t// and `largestFontSize` attributes.\n\t\tObject.entries( {\n\t\t\tsmallestFontSize,\n\t\t\tlargestFontSize,\n\t\t} ).forEach( ( [ attribute, currentValue ] ) => {\n\t\t\tconst [ currentQuantity, currentUnit ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( currentValue );\n\t\t\t// Only add an update if the other font size attribute has a different unit.\n\t\t\tif ( attribute !== fontSizeLabel && currentUnit !== newUnit ) {\n\t\t\t\tupdateObj[ attribute ] = `${ currentQuantity }${ newUnit }`;\n\t\t\t}\n\t\t} );\n\t\tsetAttributes( updateObj );\n\t};\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<SelectControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Taxonomy' ) }\n\t\t\t\t\toptions={ getTaxonomyOptions() }\n\t\t\t\t\tvalue={ taxonomy }\n\t\t\t\t\tonChange={ ( selectedTaxonomy ) =>\n\t\t\t\t\t\tsetAttributes( { taxonomy: selectedTaxonomy } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<ToggleControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\tlabel={ __( 'Show post counts' ) }\n\t\t\t\t\tchecked={ showTagCounts }\n\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\tsetAttributes( { showTagCounts: ! showTagCounts } )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t\t<RangeControl\n\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t__next40pxDefaultSize\n\t\t\t\t\tlabel={ __( 'Number of tags' ) }\n\t\t\t\t\tvalue={ numberOfTags }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { numberOfTags: value } )\n\t\t\t\t\t}\n\t\t\t\t\tmin={ MIN_TAGS }\n\t\t\t\t\tmax={ MAX_TAGS }\n\t\t\t\t\trequired\n\t\t\t\t/>\n\t\t\t\t<Flex>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Smallest size' ) }\n\t\t\t\t\t\t\tvalue={ smallestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'smallestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t\t<FlexItem isBlock>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tlabel={ __( 'Largest size' ) }\n\t\t\t\t\t\t\tvalue={ largestFontSize }\n\t\t\t\t\t\t\tonChange={ ( value ) => {\n\t\t\t\t\t\t\t\tonFontSizeChange( 'largestFontSize', value );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t\tmin={ MIN_FONT_SIZE }\n\t\t\t\t\t\t\tmax={ MAX_FONT_SIZE }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t</Flex>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ inspectorControls }\n\t\t\t<div { ...useBlockProps() }>\n\t\t\t\t<Disabled>\n\t\t\t\t\t<ServerSideRender\n\t\t\t\t\t\tskipBlockSupportAttributes\n\t\t\t\t\t\tblock=\"core/tag-cloud\"\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t</Disabled>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default TagCloudEdit;\n"],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.TOOLSPANEL_DROPDOWNMENU_PROPS = void 0;
|
|
7
|
+
// The following dropdown menu props aim to provide a consistent offset and
|
|
8
|
+
// placement for ToolsPanel menus for block controls to match color popovers.
|
|
9
|
+
const TOOLSPANEL_DROPDOWNMENU_PROPS = {
|
|
10
|
+
popoverProps: {
|
|
11
|
+
placement: 'left-start',
|
|
12
|
+
offset: 259 // Inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)
|
|
13
|
+
}
|
|
14
|
+
};
|
|
15
|
+
exports.TOOLSPANEL_DROPDOWNMENU_PROPS = TOOLSPANEL_DROPDOWNMENU_PROPS;
|
|
16
|
+
//# sourceMappingURL=constants.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TOOLSPANEL_DROPDOWNMENU_PROPS","popoverProps","placement","offset","exports"],"sources":["@wordpress/block-library/src/utils/constants.js"],"sourcesContent":["// The following dropdown menu props aim to provide a consistent offset and\n// placement for ToolsPanel menus for block controls to match color popovers.\nexport const TOOLSPANEL_DROPDOWNMENU_PROPS = {\n\tpopoverProps: {\n\t\tplacement: 'left-start',\n\t\toffset: 259, // Inner sidebar width (248px) - button width (24px) - border (1px) + padding (16px) + spacing (20px)\n\t},\n};\n"],"mappings":";;;;;;AAAA;AACA;AACO,MAAMA,6BAA6B,GAAG;EAC5CC,YAAY,EAAE;IACbC,SAAS,EAAE,YAAY;IACvBC,MAAM,EAAE,GAAG,CAAE;EACd;AACD,CAAC;AAACC,OAAA,CAAAJ,6BAAA,GAAAA,6BAAA"}
|
package/build/video/edit.js
CHANGED
|
@@ -46,7 +46,7 @@ const placeholder = content => {
|
|
|
46
46
|
const ALLOWED_MEDIA_TYPES = ['video'];
|
|
47
47
|
const VIDEO_POSTER_ALLOWED_MEDIA_TYPES = ['image'];
|
|
48
48
|
function VideoEdit({
|
|
49
|
-
isSelected,
|
|
49
|
+
isSelected: isSingleSelected,
|
|
50
50
|
attributes,
|
|
51
51
|
className,
|
|
52
52
|
setAttributes,
|
|
@@ -64,12 +64,14 @@ function VideoEdit({
|
|
|
64
64
|
tracks
|
|
65
65
|
} = attributes;
|
|
66
66
|
const isTemporaryVideo = !id && (0, _blob.isBlobURL)(src);
|
|
67
|
-
const
|
|
67
|
+
const {
|
|
68
|
+
getSettings
|
|
69
|
+
} = (0, _data.useSelect)(_blockEditor.store);
|
|
68
70
|
(0, _element.useEffect)(() => {
|
|
69
71
|
if (!id && (0, _blob.isBlobURL)(src)) {
|
|
70
72
|
const file = (0, _blob.getBlobByURL)(src);
|
|
71
73
|
if (file) {
|
|
72
|
-
mediaUpload({
|
|
74
|
+
getSettings().mediaUpload({
|
|
73
75
|
filesList: [file],
|
|
74
76
|
onFileChange: ([media]) => onSelectVideo(media),
|
|
75
77
|
onError: onUploadError,
|
|
@@ -170,7 +172,7 @@ function VideoEdit({
|
|
|
170
172
|
posterImageButton.current.focus();
|
|
171
173
|
}
|
|
172
174
|
const videoPosterDescription = `video-block__poster-image-description-${instanceId}`;
|
|
173
|
-
return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.BlockControls, null, (0, _react.createElement)(_tracksEditor.default, {
|
|
175
|
+
return (0, _react.createElement)(_react.Fragment, null, isSingleSelected && (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(_blockEditor.BlockControls, null, (0, _react.createElement)(_tracksEditor.default, {
|
|
174
176
|
tracks: tracks,
|
|
175
177
|
onChange: newTracks => {
|
|
176
178
|
setAttributes({
|
|
@@ -187,7 +189,7 @@ function VideoEdit({
|
|
|
187
189
|
onSelect: onSelectVideo,
|
|
188
190
|
onSelectURL: onSelectURL,
|
|
189
191
|
onError: onUploadError
|
|
190
|
-
})), (0, _react.createElement)(_blockEditor.InspectorControls, null, (0, _react.createElement)(_components.PanelBody, {
|
|
192
|
+
}))), (0, _react.createElement)(_blockEditor.InspectorControls, null, (0, _react.createElement)(_components.PanelBody, {
|
|
191
193
|
title: (0, _i18n.__)('Settings')
|
|
192
194
|
}, (0, _react.createElement)(_editCommonSettings.default, {
|
|
193
195
|
setAttributes: setAttributes,
|
|
@@ -216,7 +218,7 @@ function VideoEdit({
|
|
|
216
218
|
}, (0, _i18n.__)('Remove')))))), (0, _react.createElement)("figure", {
|
|
217
219
|
...blockProps
|
|
218
220
|
}, (0, _react.createElement)(_components.Disabled, {
|
|
219
|
-
isDisabled: !
|
|
221
|
+
isDisabled: !isSingleSelected
|
|
220
222
|
}, (0, _react.createElement)("video", {
|
|
221
223
|
controls: controls,
|
|
222
224
|
poster: poster,
|
|
@@ -227,9 +229,10 @@ function VideoEdit({
|
|
|
227
229
|
}))), isTemporaryVideo && (0, _react.createElement)(_components.Spinner, null), (0, _react.createElement)(_caption.Caption, {
|
|
228
230
|
attributes: attributes,
|
|
229
231
|
setAttributes: setAttributes,
|
|
230
|
-
isSelected:
|
|
232
|
+
isSelected: isSingleSelected,
|
|
231
233
|
insertBlocksAfter: insertBlocksAfter,
|
|
232
|
-
label: (0, _i18n.__)('Video caption text')
|
|
234
|
+
label: (0, _i18n.__)('Video caption text'),
|
|
235
|
+
showToolbarButton: isSingleSelected
|
|
233
236
|
})));
|
|
234
237
|
}
|
|
235
238
|
var _default = VideoEdit;
|
package/build/video/edit.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_components","_blockEditor","_element","_i18n","_compose","_data","_icons","_notices","_util","_editCommonSettings","_tracksEditor","_tracks","_caption","placeholder","content","_react","createElement","Placeholder","className","withIllustration","icon","label","__","instructions","ALLOWED_MEDIA_TYPES","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","attributes","setAttributes","insertBlocksAfter","onReplace","instanceId","useInstanceId","videoPlayer","useRef","posterImageButton","id","controls","poster","src","tracks","isTemporaryVideo","isBlobURL","mediaUpload","useSelect","select","blockEditorStore","getSettings","useEffect","file","getBlobByURL","filesList","onFileChange","media","onSelectVideo","onError","onUploadError","allowedTypes","current","load","url","undefined","caption","image","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","createErrorNotice","useDispatch","noticesStore","message","type","classes","classnames","blockProps","useBlockProps","MediaPlaceholder","BlockIcon","onSelect","accept","value","onSelectPoster","onRemovePoster","focus","videoPosterDescription","Fragment","BlockControls","default","onChange","newTracks","group","MediaReplaceFlow","mediaId","mediaURL","InspectorControls","PanelBody","title","MediaUploadCheck","BaseControl","VisualLabel","MediaUpload","render","open","Button","variant","onClick","ref","hidden","sprintf","Disabled","isDisabled","Spinner","Caption","_default","exports"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tSpinner,\n\tPlaceholder,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Video' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction VideoEdit( {\n\tisSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst posterImageButton = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst isTemporaryVideo = ! id && isBlobURL( src );\n\tconst mediaUpload = useSelect(\n\t\t( select ) => select( blockEditorStore ).getSettings().mediaUpload,\n\t\t[]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectVideo( media ),\n\t\t\t\t\tonError: onUploadError,\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined, poster: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryVideo,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<TracksEditor\n\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<BaseControl className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={\n\t\t\t\t\t\t\t\t\tVIDEO_POSTER_ALLOWED_MEDIA_TYPES\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tvideoPosterDescription\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ ! poster\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'The current poster image url is %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the video tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryVideo && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_classnames","_interopRequireDefault","require","_blob","_components","_blockEditor","_element","_i18n","_compose","_data","_icons","_notices","_util","_editCommonSettings","_tracksEditor","_tracks","_caption","placeholder","content","_react","createElement","Placeholder","className","withIllustration","icon","label","__","instructions","ALLOWED_MEDIA_TYPES","VIDEO_POSTER_ALLOWED_MEDIA_TYPES","VideoEdit","isSelected","isSingleSelected","attributes","setAttributes","insertBlocksAfter","onReplace","instanceId","useInstanceId","videoPlayer","useRef","posterImageButton","id","controls","poster","src","tracks","isTemporaryVideo","isBlobURL","getSettings","useSelect","blockEditorStore","useEffect","file","getBlobByURL","mediaUpload","filesList","onFileChange","media","onSelectVideo","onError","onUploadError","allowedTypes","current","load","url","undefined","caption","image","onSelectURL","newSrc","embedBlock","createUpgradedEmbedBlock","createErrorNotice","useDispatch","noticesStore","message","type","classes","classnames","blockProps","useBlockProps","MediaPlaceholder","BlockIcon","onSelect","accept","value","onSelectPoster","onRemovePoster","focus","videoPosterDescription","Fragment","BlockControls","default","onChange","newTracks","group","MediaReplaceFlow","mediaId","mediaURL","InspectorControls","PanelBody","title","MediaUploadCheck","BaseControl","VisualLabel","MediaUpload","render","open","Button","variant","onClick","ref","hidden","sprintf","Disabled","isDisabled","Spinner","Caption","showToolbarButton","_default","exports"],"sources":["@wordpress/block-library/src/video/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tBaseControl,\n\tButton,\n\tDisabled,\n\tPanelBody,\n\tSpinner,\n\tPlaceholder,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaUpload,\n\tMediaUploadCheck,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { video as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport VideoCommonSettings from './edit-common-settings';\nimport TracksEditor from './tracks-editor';\nimport Tracks from './tracks';\nimport { Caption } from '../utils/caption';\n\n// Much of this description is duplicated from MediaPlaceholder.\nconst placeholder = ( content ) => {\n\treturn (\n\t\t<Placeholder\n\t\t\tclassName=\"block-editor-media-placeholder\"\n\t\t\twithIllustration={ true }\n\t\t\ticon={ icon }\n\t\t\tlabel={ __( 'Video' ) }\n\t\t\tinstructions={ __(\n\t\t\t\t'Upload a video file, pick one from your media library, or add one with a URL.'\n\t\t\t) }\n\t\t>\n\t\t\t{ content }\n\t\t</Placeholder>\n\t);\n};\n\nconst ALLOWED_MEDIA_TYPES = [ 'video' ];\nconst VIDEO_POSTER_ALLOWED_MEDIA_TYPES = [ 'image' ];\n\nfunction VideoEdit( {\n\tisSelected: isSingleSelected,\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tinsertBlocksAfter,\n\tonReplace,\n} ) {\n\tconst instanceId = useInstanceId( VideoEdit );\n\tconst videoPlayer = useRef();\n\tconst posterImageButton = useRef();\n\tconst { id, controls, poster, src, tracks } = attributes;\n\tconst isTemporaryVideo = ! id && isBlobURL( src );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\t\t\tif ( file ) {\n\t\t\t\tgetSettings().mediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectVideo( media ),\n\t\t\t\t\tonError: onUploadError,\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tuseEffect( () => {\n\t\t// Placeholder may be rendered.\n\t\tif ( videoPlayer.current ) {\n\t\t\tvideoPlayer.current.load();\n\t\t}\n\t}, [ poster ] );\n\n\tfunction onSelectVideo( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error\n\t\t\t// previous attributes should be removed\n\t\t\t// because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tposter: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tposter:\n\t\t\t\tmedia.image?.src !== media.icon ? media.image?.src : undefined,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined, poster: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryVideo,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\tfunction onSelectPoster( image ) {\n\t\tsetAttributes( { poster: image.url } );\n\t}\n\n\tfunction onRemovePoster() {\n\t\tsetAttributes( { poster: undefined } );\n\n\t\t// Move focus back to the Media Upload button.\n\t\tposterImageButton.current.focus();\n\t}\n\n\tconst videoPosterDescription = `video-block__poster-image-description-${ instanceId }`;\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<>\n\t\t\t\t\t<BlockControls>\n\t\t\t\t\t\t<TracksEditor\n\t\t\t\t\t\t\ttracks={ tracks }\n\t\t\t\t\t\t\tonChange={ ( newTracks ) => {\n\t\t\t\t\t\t\t\tsetAttributes( { tracks: newTracks } );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\t\taccept=\"video/*\"\n\t\t\t\t\t\t\tonSelect={ onSelectVideo }\n\t\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</BlockControls>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<VideoCommonSettings\n\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t/>\n\t\t\t\t\t<MediaUploadCheck>\n\t\t\t\t\t\t<BaseControl className=\"editor-video-poster-control\">\n\t\t\t\t\t\t\t<BaseControl.VisualLabel>\n\t\t\t\t\t\t\t\t{ __( 'Poster image' ) }\n\t\t\t\t\t\t\t</BaseControl.VisualLabel>\n\t\t\t\t\t\t\t<MediaUpload\n\t\t\t\t\t\t\t\ttitle={ __( 'Select poster image' ) }\n\t\t\t\t\t\t\t\tonSelect={ onSelectPoster }\n\t\t\t\t\t\t\t\tallowedTypes={\n\t\t\t\t\t\t\t\t\tVIDEO_POSTER_ALLOWED_MEDIA_TYPES\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\trender={ ( { open } ) => (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tvariant=\"primary\"\n\t\t\t\t\t\t\t\t\t\tonClick={ open }\n\t\t\t\t\t\t\t\t\t\tref={ posterImageButton }\n\t\t\t\t\t\t\t\t\t\taria-describedby={\n\t\t\t\t\t\t\t\t\t\t\tvideoPosterDescription\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ ! poster\n\t\t\t\t\t\t\t\t\t\t\t? __( 'Select' )\n\t\t\t\t\t\t\t\t\t\t\t: __( 'Replace' ) }\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<p id={ videoPosterDescription } hidden>\n\t\t\t\t\t\t\t\t{ poster\n\t\t\t\t\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t\t\t\t\t/* translators: %s: poster image URL. */\n\t\t\t\t\t\t\t\t\t\t\t__(\n\t\t\t\t\t\t\t\t\t\t\t\t'The current poster image url is %s'\n\t\t\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t\t\t\tposter\n\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t'There is no poster image currently selected'\n\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t{ !! poster && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRemovePoster }\n\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ __( 'Remove' ) }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</BaseControl>\n\t\t\t\t\t</MediaUploadCheck>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the video tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tvideo when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<video\n\t\t\t\t\t\tcontrols={ controls }\n\t\t\t\t\t\tposter={ poster }\n\t\t\t\t\t\tsrc={ src }\n\t\t\t\t\t\tref={ videoPlayer }\n\t\t\t\t\t>\n\t\t\t\t\t\t<Tracks tracks={ tracks } />\n\t\t\t\t\t</video>\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryVideo && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Video caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default VideoEdit;\n"],"mappings":"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"}
|
|
@@ -27,7 +27,7 @@ function AudioEdit({
|
|
|
27
27
|
className,
|
|
28
28
|
setAttributes,
|
|
29
29
|
onReplace,
|
|
30
|
-
isSelected,
|
|
30
|
+
isSelected: isSingleSelected,
|
|
31
31
|
insertBlocksAfter
|
|
32
32
|
}) {
|
|
33
33
|
const {
|
|
@@ -38,17 +38,14 @@ function AudioEdit({
|
|
|
38
38
|
src
|
|
39
39
|
} = attributes;
|
|
40
40
|
const isTemporaryAudio = !id && isBlobURL(src);
|
|
41
|
-
const
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
} = select(blockEditorStore);
|
|
45
|
-
return getSettings().mediaUpload;
|
|
46
|
-
}, []);
|
|
41
|
+
const {
|
|
42
|
+
getSettings
|
|
43
|
+
} = useSelect(blockEditorStore);
|
|
47
44
|
useEffect(() => {
|
|
48
45
|
if (!id && isBlobURL(src)) {
|
|
49
46
|
const file = getBlobByURL(src);
|
|
50
47
|
if (file) {
|
|
51
|
-
mediaUpload({
|
|
48
|
+
getSettings().mediaUpload({
|
|
52
49
|
filesList: [file],
|
|
53
50
|
onFileChange: ([media]) => onSelectAudio(media),
|
|
54
51
|
onError: e => onUploadError(e),
|
|
@@ -135,7 +132,7 @@ function AudioEdit({
|
|
|
135
132
|
onError: onUploadError
|
|
136
133
|
}));
|
|
137
134
|
}
|
|
138
|
-
return createElement(Fragment, null, createElement(BlockControls, {
|
|
135
|
+
return createElement(Fragment, null, isSingleSelected && createElement(BlockControls, {
|
|
139
136
|
group: "other"
|
|
140
137
|
}, createElement(MediaReplaceFlow, {
|
|
141
138
|
mediaId: id,
|
|
@@ -183,16 +180,17 @@ function AudioEdit({
|
|
|
183
180
|
}))), createElement("figure", {
|
|
184
181
|
...blockProps
|
|
185
182
|
}, createElement(Disabled, {
|
|
186
|
-
isDisabled: !
|
|
183
|
+
isDisabled: !isSingleSelected
|
|
187
184
|
}, createElement("audio", {
|
|
188
185
|
controls: "controls",
|
|
189
186
|
src: src
|
|
190
187
|
})), isTemporaryAudio && createElement(Spinner, null), createElement(Caption, {
|
|
191
188
|
attributes: attributes,
|
|
192
189
|
setAttributes: setAttributes,
|
|
193
|
-
isSelected:
|
|
190
|
+
isSelected: isSingleSelected,
|
|
194
191
|
insertBlocksAfter: insertBlocksAfter,
|
|
195
|
-
label: __('Audio caption text')
|
|
192
|
+
label: __('Audio caption text'),
|
|
193
|
+
showToolbarButton: isSingleSelected
|
|
196
194
|
})));
|
|
197
195
|
}
|
|
198
196
|
export default AudioEdit;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["classnames","getBlobByURL","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","useEffect","__","_x","useDispatch","useSelect","audio","icon","noticesStore","createUpgradedEmbedBlock","Caption","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","insertBlocksAfter","id","autoplay","loop","preload","src","isTemporaryAudio","mediaUpload","select","getSettings","file","filesList","onFileChange","media","onSelectAudio","onError","e","onUploadError","allowedTypes","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","url","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","caption","classes","blockProps","createElement","onSelect","accept","value","Fragment","group","mediaId","mediaURL","title","__nextHasNoMarginBottom","label","onChange","help","options","isDisabled","controls"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\tconst mediaUpload = useSelect( ( select ) => {\n\t\tconst { getSettings } = select( blockEditorStore );\n\t\treturn getSettings().mediaUpload;\n\t}, [] );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tmediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectAudio( media ),\n\t\t\t\t\tonError: ( e ) => onUploadError( e ),\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\tmediaId={ id }\n\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\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={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\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={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Audio caption text' ) }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["classnames","getBlobByURL","isBlobURL","Disabled","PanelBody","SelectControl","Spinner","ToggleControl","BlockControls","BlockIcon","InspectorControls","MediaPlaceholder","MediaReplaceFlow","useBlockProps","store","blockEditorStore","useEffect","__","_x","useDispatch","useSelect","audio","icon","noticesStore","createUpgradedEmbedBlock","Caption","ALLOWED_MEDIA_TYPES","AudioEdit","attributes","className","setAttributes","onReplace","isSelected","isSingleSelected","insertBlocksAfter","id","autoplay","loop","preload","src","isTemporaryAudio","getSettings","file","mediaUpload","filesList","onFileChange","media","onSelectAudio","onError","e","onUploadError","allowedTypes","toggleAttribute","attribute","newValue","onSelectURL","newSrc","embedBlock","url","undefined","createErrorNotice","message","type","getAutoplayHelp","checked","caption","classes","blockProps","createElement","onSelect","accept","value","Fragment","group","mediaId","mediaURL","title","__nextHasNoMarginBottom","label","onChange","help","options","isDisabled","controls","showToolbarButton"],"sources":["@wordpress/block-library/src/audio/edit.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlobByURL, isBlobURL } from '@wordpress/blob';\nimport {\n\tDisabled,\n\tPanelBody,\n\tSelectControl,\n\tSpinner,\n\tToggleControl,\n} from '@wordpress/components';\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tMediaPlaceholder,\n\tMediaReplaceFlow,\n\tuseBlockProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useEffect } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { audio as icon } from '@wordpress/icons';\nimport { store as noticesStore } from '@wordpress/notices';\n\n/**\n * Internal dependencies\n */\nimport { createUpgradedEmbedBlock } from '../embed/util';\nimport { Caption } from '../utils/caption';\n\nconst ALLOWED_MEDIA_TYPES = [ 'audio' ];\n\nfunction AudioEdit( {\n\tattributes,\n\tclassName,\n\tsetAttributes,\n\tonReplace,\n\tisSelected: isSingleSelected,\n\tinsertBlocksAfter,\n} ) {\n\tconst { id, autoplay, loop, preload, src } = attributes;\n\tconst isTemporaryAudio = ! id && isBlobURL( src );\n\tconst { getSettings } = useSelect( blockEditorStore );\n\n\tuseEffect( () => {\n\t\tif ( ! id && isBlobURL( src ) ) {\n\t\t\tconst file = getBlobByURL( src );\n\n\t\t\tif ( file ) {\n\t\t\t\tgetSettings().mediaUpload( {\n\t\t\t\t\tfilesList: [ file ],\n\t\t\t\t\tonFileChange: ( [ media ] ) => onSelectAudio( media ),\n\t\t\t\t\tonError: ( e ) => onUploadError( e ),\n\t\t\t\t\tallowedTypes: ALLOWED_MEDIA_TYPES,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t}, [] );\n\n\tfunction toggleAttribute( attribute ) {\n\t\treturn ( newValue ) => {\n\t\t\tsetAttributes( { [ attribute ]: newValue } );\n\t\t};\n\t}\n\n\tfunction onSelectURL( newSrc ) {\n\t\t// Set the block's src from the edit component's state, and switch off\n\t\t// the editing UI.\n\t\tif ( newSrc !== src ) {\n\t\t\t// Check if there's an embed block that handles this URL.\n\t\t\tconst embedBlock = createUpgradedEmbedBlock( {\n\t\t\t\tattributes: { url: newSrc },\n\t\t\t} );\n\t\t\tif ( undefined !== embedBlock && onReplace ) {\n\t\t\t\tonReplace( embedBlock );\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tsetAttributes( { src: newSrc, id: undefined } );\n\t\t}\n\t}\n\n\tconst { createErrorNotice } = useDispatch( noticesStore );\n\tfunction onUploadError( message ) {\n\t\tcreateErrorNotice( message, { type: 'snackbar' } );\n\t}\n\n\tfunction getAutoplayHelp( checked ) {\n\t\treturn checked\n\t\t\t? __( 'Autoplay may cause usability issues for some users.' )\n\t\t\t: null;\n\t}\n\n\tfunction onSelectAudio( media ) {\n\t\tif ( ! media || ! media.url ) {\n\t\t\t// In this case there was an error and we should continue in the editing state\n\t\t\t// previous attributes should be removed because they may be temporary blob urls.\n\t\t\tsetAttributes( {\n\t\t\t\tsrc: undefined,\n\t\t\t\tid: undefined,\n\t\t\t\tcaption: undefined,\n\t\t\t} );\n\t\t\treturn;\n\t\t}\n\t\t// Sets the block's attribute and updates the edit component from the\n\t\t// selected media, then switches off the editing UI.\n\t\tsetAttributes( {\n\t\t\tsrc: media.url,\n\t\t\tid: media.id,\n\t\t\tcaption: media.caption,\n\t\t} );\n\t}\n\n\tconst classes = classnames( className, {\n\t\t'is-transient': isTemporaryAudio,\n\t} );\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: classes,\n\t} );\n\n\tif ( ! src ) {\n\t\treturn (\n\t\t\t<div { ...blockProps }>\n\t\t\t\t<MediaPlaceholder\n\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\tvalue={ attributes }\n\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t/>\n\t\t\t</div>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t{ isSingleSelected && (\n\t\t\t\t<BlockControls group=\"other\">\n\t\t\t\t\t<MediaReplaceFlow\n\t\t\t\t\t\tmediaId={ id }\n\t\t\t\t\t\tmediaURL={ src }\n\t\t\t\t\t\tallowedTypes={ ALLOWED_MEDIA_TYPES }\n\t\t\t\t\t\taccept=\"audio/*\"\n\t\t\t\t\t\tonSelect={ onSelectAudio }\n\t\t\t\t\t\tonSelectURL={ onSelectURL }\n\t\t\t\t\t\tonError={ onUploadError }\n\t\t\t\t\t/>\n\t\t\t\t</BlockControls>\n\t\t\t) }\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Autoplay' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'autoplay' ) }\n\t\t\t\t\t\tchecked={ autoplay }\n\t\t\t\t\t\thelp={ getAutoplayHelp }\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={ __( 'Loop' ) }\n\t\t\t\t\t\tonChange={ toggleAttribute( 'loop' ) }\n\t\t\t\t\t\tchecked={ loop }\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={ _x( 'Preload', 'noun; Audio block parameter' ) }\n\t\t\t\t\t\tvalue={ preload || '' }\n\t\t\t\t\t\t// `undefined` is required for the preload attribute to be unset.\n\t\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tpreload: value || undefined,\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t}\n\t\t\t\t\t\toptions={ [\n\t\t\t\t\t\t\t{ value: '', label: __( 'Browser default' ) },\n\t\t\t\t\t\t\t{ value: 'auto', label: __( 'Auto' ) },\n\t\t\t\t\t\t\t{ value: 'metadata', label: __( 'Metadata' ) },\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tvalue: 'none',\n\t\t\t\t\t\t\t\tlabel: _x( 'None', 'Preload value' ),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t] }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t\t<figure { ...blockProps }>\n\t\t\t\t{ /*\n\t\t\t\t\tDisable the audio tag if the block is not selected\n\t\t\t\t\tso the user clicking on it won't play the\n\t\t\t\t\tfile or change the position slider when the controls are enabled.\n\t\t\t\t*/ }\n\t\t\t\t<Disabled isDisabled={ ! isSingleSelected }>\n\t\t\t\t\t<audio controls=\"controls\" src={ src } />\n\t\t\t\t</Disabled>\n\t\t\t\t{ isTemporaryAudio && <Spinner /> }\n\t\t\t\t<Caption\n\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\tisSelected={ isSingleSelected }\n\t\t\t\t\tinsertBlocksAfter={ insertBlocksAfter }\n\t\t\t\t\tlabel={ __( 'Audio caption text' ) }\n\t\t\t\t\tshowToolbarButton={ isSingleSelected }\n\t\t\t\t/>\n\t\t\t</figure>\n\t\t</>\n\t);\n}\n\nexport default AudioEdit;\n"],"mappings":"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"}
|
|
@@ -9,11 +9,11 @@ import classnames from 'classnames';
|
|
|
9
9
|
*/
|
|
10
10
|
import { useRegistry, useSelect, useDispatch } from '@wordpress/data';
|
|
11
11
|
import { useRef, useMemo, useEffect } from '@wordpress/element';
|
|
12
|
-
import {
|
|
13
|
-
import { Placeholder, Spinner,
|
|
12
|
+
import { useEntityRecord, store as coreStore } from '@wordpress/core-data';
|
|
13
|
+
import { Placeholder, Spinner, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
14
14
|
import { __ } from '@wordpress/i18n';
|
|
15
|
-
import { useInnerBlocksProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, InnerBlocks,
|
|
16
|
-
import {
|
|
15
|
+
import { useInnerBlocksProps, __experimentalRecursionProvider as RecursionProvider, __experimentalUseHasRecursion as useHasRecursion, InnerBlocks, useBlockProps, Warning, privateApis as blockEditorPrivateApis, store as blockEditorStore, BlockControls } from '@wordpress/block-editor';
|
|
16
|
+
import { parse, cloneBlock } from '@wordpress/blocks';
|
|
17
17
|
|
|
18
18
|
/**
|
|
19
19
|
* Internal dependencies
|
|
@@ -23,10 +23,10 @@ const {
|
|
|
23
23
|
useLayoutClasses
|
|
24
24
|
} = unlock(blockEditorPrivateApis);
|
|
25
25
|
function isPartiallySynced(block) {
|
|
26
|
-
return
|
|
26
|
+
return 'core/paragraph' === block.name && !!block.attributes.metadata?.bindings && Object.values(block.attributes.metadata.bindings).some(binding => binding.source.name === 'pattern_attributes');
|
|
27
27
|
}
|
|
28
28
|
function getPartiallySyncedAttributes(block) {
|
|
29
|
-
return Object.entries(block.attributes.
|
|
29
|
+
return Object.entries(block.attributes.metadata.bindings).filter(([, binding]) => binding.source.name === 'pattern_attributes').map(([attributeKey]) => attributeKey);
|
|
30
30
|
}
|
|
31
31
|
const fullAlignments = ['full', 'wide', 'left', 'right'];
|
|
32
32
|
const useInferredLayout = (blocks, parentLayout) => {
|
|
@@ -66,9 +66,11 @@ function applyInitialOverrides(blocks, overrides = {}, defaultValues) {
|
|
|
66
66
|
...block.attributes
|
|
67
67
|
};
|
|
68
68
|
for (const attributeKey of attributes) {
|
|
69
|
-
|
|
69
|
+
var _defaultValues$blockI;
|
|
70
|
+
(_defaultValues$blockI = defaultValues[blockId]) !== null && _defaultValues$blockI !== void 0 ? _defaultValues$blockI : defaultValues[blockId] = {};
|
|
71
|
+
defaultValues[blockId][attributeKey] = block.attributes[attributeKey];
|
|
70
72
|
if (overrides[blockId]) {
|
|
71
|
-
newAttributes[attributeKey] = overrides[blockId];
|
|
73
|
+
newAttributes[attributeKey] = overrides[blockId][attributeKey];
|
|
72
74
|
}
|
|
73
75
|
}
|
|
74
76
|
return {
|
|
@@ -79,7 +81,7 @@ function applyInitialOverrides(blocks, overrides = {}, defaultValues) {
|
|
|
79
81
|
});
|
|
80
82
|
}
|
|
81
83
|
function getOverridesFromBlocks(blocks, defaultValues) {
|
|
82
|
-
/** @type {Record<string, unknown
|
|
84
|
+
/** @type {Record<string, Record<string, unknown>>} */
|
|
83
85
|
const overrides = {};
|
|
84
86
|
for (const block of blocks) {
|
|
85
87
|
Object.assign(overrides, getOverridesFromBlocks(block.innerBlocks, defaultValues));
|
|
@@ -87,13 +89,22 @@ function getOverridesFromBlocks(blocks, defaultValues) {
|
|
|
87
89
|
if (!isPartiallySynced(block) || !blockId) continue;
|
|
88
90
|
const attributes = getPartiallySyncedAttributes(block);
|
|
89
91
|
for (const attributeKey of attributes) {
|
|
90
|
-
if (block.attributes[attributeKey] !== defaultValues[blockId]) {
|
|
91
|
-
|
|
92
|
+
if (block.attributes[attributeKey] !== defaultValues[blockId][attributeKey]) {
|
|
93
|
+
var _overrides$blockId;
|
|
94
|
+
(_overrides$blockId = overrides[blockId]) !== null && _overrides$blockId !== void 0 ? _overrides$blockId : overrides[blockId] = {};
|
|
95
|
+
overrides[blockId][attributeKey] = block.attributes[attributeKey];
|
|
92
96
|
}
|
|
93
97
|
}
|
|
94
98
|
}
|
|
95
99
|
return Object.keys(overrides).length > 0 ? overrides : undefined;
|
|
96
100
|
}
|
|
101
|
+
function setBlockEditMode(setEditMode, blocks, mode) {
|
|
102
|
+
blocks.forEach(block => {
|
|
103
|
+
const editMode = mode || (isPartiallySynced(block) ? 'contentOnly' : 'disabled');
|
|
104
|
+
setEditMode(block.clientId, editMode);
|
|
105
|
+
setBlockEditMode(setEditMode, block.innerBlocks, mode);
|
|
106
|
+
});
|
|
107
|
+
}
|
|
97
108
|
export default function ReusableBlockEdit({
|
|
98
109
|
name,
|
|
99
110
|
attributes: {
|
|
@@ -101,12 +112,14 @@ export default function ReusableBlockEdit({
|
|
|
101
112
|
overrides
|
|
102
113
|
},
|
|
103
114
|
__unstableParentLayout: parentLayout,
|
|
104
|
-
clientId: patternClientId
|
|
115
|
+
clientId: patternClientId,
|
|
116
|
+
setAttributes
|
|
105
117
|
}) {
|
|
106
118
|
const registry = useRegistry();
|
|
107
119
|
const hasAlreadyRendered = useHasRecursion(ref);
|
|
108
120
|
const {
|
|
109
121
|
record,
|
|
122
|
+
editedRecord,
|
|
110
123
|
hasResolved
|
|
111
124
|
} = useEntityRecord('postType', 'wp_block', ref);
|
|
112
125
|
const isMissing = hasResolved && !record;
|
|
@@ -118,21 +131,56 @@ export default function ReusableBlockEdit({
|
|
|
118
131
|
setBlockEditingMode
|
|
119
132
|
} = useDispatch(blockEditorStore);
|
|
120
133
|
const {
|
|
121
|
-
|
|
122
|
-
} =
|
|
134
|
+
syncDerivedUpdates
|
|
135
|
+
} = unlock(useDispatch(blockEditorStore));
|
|
136
|
+
const {
|
|
137
|
+
innerBlocks,
|
|
138
|
+
userCanEdit,
|
|
139
|
+
getBlockEditingMode,
|
|
140
|
+
getPostLinkProps
|
|
141
|
+
} = useSelect(select => {
|
|
142
|
+
const {
|
|
143
|
+
canUser
|
|
144
|
+
} = select(coreStore);
|
|
145
|
+
const {
|
|
146
|
+
getBlocks,
|
|
147
|
+
getBlockEditingMode: editingMode,
|
|
148
|
+
getSettings
|
|
149
|
+
} = select(blockEditorStore);
|
|
150
|
+
const blocks = getBlocks(patternClientId);
|
|
151
|
+
const canEdit = canUser('update', 'blocks', ref);
|
|
152
|
+
|
|
153
|
+
// For editing link to the site editor if the theme and user permissions support it.
|
|
154
|
+
return {
|
|
155
|
+
innerBlocks: blocks,
|
|
156
|
+
userCanEdit: canEdit,
|
|
157
|
+
getBlockEditingMode: editingMode,
|
|
158
|
+
getPostLinkProps: getSettings().getPostLinkProps
|
|
159
|
+
};
|
|
160
|
+
}, [patternClientId, ref]);
|
|
161
|
+
const editOriginalProps = getPostLinkProps ? getPostLinkProps({
|
|
162
|
+
postId: ref,
|
|
163
|
+
postType: 'wp_block',
|
|
164
|
+
canvas: 'edit'
|
|
165
|
+
}) : {};
|
|
166
|
+
useEffect(() => setBlockEditMode(setBlockEditingMode, innerBlocks), [innerBlocks, setBlockEditingMode]);
|
|
167
|
+
|
|
168
|
+
// Apply the initial overrides from the pattern block to the inner blocks.
|
|
123
169
|
useEffect(() => {
|
|
124
|
-
|
|
125
|
-
const initialBlocks =
|
|
170
|
+
var _editedRecord$blocks$;
|
|
171
|
+
const initialBlocks = // Clone the blocks to generate new client IDs.
|
|
172
|
+
(_editedRecord$blocks$ = editedRecord.blocks?.map(block => cloneBlock(block))) !== null && _editedRecord$blocks$ !== void 0 ? _editedRecord$blocks$ : editedRecord.content && typeof editedRecord.content !== 'function' ? parse(editedRecord.content) : [];
|
|
173
|
+
defaultValuesRef.current = {};
|
|
126
174
|
const editingMode = getBlockEditingMode(patternClientId);
|
|
175
|
+
// Replace the contents of the blocks with the overrides.
|
|
127
176
|
registry.batch(() => {
|
|
128
177
|
setBlockEditingMode(patternClientId, 'default');
|
|
129
|
-
|
|
130
|
-
|
|
178
|
+
syncDerivedUpdates(() => {
|
|
179
|
+
replaceInnerBlocks(patternClientId, applyInitialOverrides(initialBlocks, initialOverrides.current, defaultValuesRef.current));
|
|
180
|
+
});
|
|
131
181
|
setBlockEditingMode(patternClientId, editingMode);
|
|
132
182
|
});
|
|
133
|
-
}, [__unstableMarkNextChangeAsNotPersistent, patternClientId,
|
|
134
|
-
const innerBlocks = useSelect(select => select(blockEditorStore).getBlocks(patternClientId), [patternClientId]);
|
|
135
|
-
const [title, setTitle] = useEntityProp('postType', 'wp_block', 'title', ref);
|
|
183
|
+
}, [__unstableMarkNextChangeAsNotPersistent, patternClientId, editedRecord, replaceInnerBlocks, registry, getBlockEditingMode, setBlockEditingMode, syncDerivedUpdates]);
|
|
136
184
|
const {
|
|
137
185
|
alignment,
|
|
138
186
|
layout
|
|
@@ -146,32 +194,34 @@ export default function ReusableBlockEdit({
|
|
|
146
194
|
})
|
|
147
195
|
});
|
|
148
196
|
const innerBlocksProps = useInnerBlocksProps(blockProps, {
|
|
197
|
+
templateLock: 'all',
|
|
149
198
|
layout,
|
|
150
199
|
renderAppender: innerBlocks?.length ? undefined : InnerBlocks.ButtonBlockAppender
|
|
151
200
|
});
|
|
152
201
|
|
|
153
|
-
// Sync the `overrides` attribute from the updated blocks.
|
|
154
|
-
// `
|
|
155
|
-
// but won't create an undo level.
|
|
156
|
-
// This can be abstracted into a `useSyncDerivedAttributes` hook if needed.
|
|
202
|
+
// Sync the `overrides` attribute from the updated blocks to the pattern block.
|
|
203
|
+
// `syncDerivedUpdates` is used here to avoid creating an additional undo level.
|
|
157
204
|
useEffect(() => {
|
|
158
205
|
const {
|
|
159
206
|
getBlocks
|
|
160
207
|
} = registry.select(blockEditorStore);
|
|
161
|
-
const {
|
|
162
|
-
syncDerivedBlockAttributes
|
|
163
|
-
} = unlock(registry.dispatch(blockEditorStore));
|
|
164
208
|
let prevBlocks = getBlocks(patternClientId);
|
|
165
209
|
return registry.subscribe(() => {
|
|
166
210
|
const blocks = getBlocks(patternClientId);
|
|
167
211
|
if (blocks !== prevBlocks) {
|
|
168
212
|
prevBlocks = blocks;
|
|
169
|
-
|
|
170
|
-
|
|
213
|
+
syncDerivedUpdates(() => {
|
|
214
|
+
setAttributes({
|
|
215
|
+
overrides: getOverridesFromBlocks(blocks, defaultValuesRef.current)
|
|
216
|
+
});
|
|
171
217
|
});
|
|
172
218
|
}
|
|
173
219
|
}, blockEditorStore);
|
|
174
|
-
}, [patternClientId, registry]);
|
|
220
|
+
}, [syncDerivedUpdates, patternClientId, registry, setAttributes]);
|
|
221
|
+
const handleEditOriginal = event => {
|
|
222
|
+
setBlockEditMode(setBlockEditingMode, innerBlocks, 'default');
|
|
223
|
+
editOriginalProps.onClick(event);
|
|
224
|
+
};
|
|
175
225
|
let children = null;
|
|
176
226
|
if (hasAlreadyRendered) {
|
|
177
227
|
children = createElement(Warning, null, __('Block cannot be rendered inside itself.'));
|
|
@@ -184,13 +234,10 @@ export default function ReusableBlockEdit({
|
|
|
184
234
|
}
|
|
185
235
|
return createElement(RecursionProvider, {
|
|
186
236
|
uniqueId: ref
|
|
187
|
-
}, createElement(
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
__nextHasNoMarginBottom: true,
|
|
192
|
-
__next40pxDefaultSize: true
|
|
193
|
-
}))), children === null ? createElement("div", {
|
|
237
|
+
}, userCanEdit && editOriginalProps && createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
238
|
+
href: editOriginalProps.href,
|
|
239
|
+
onClick: handleEditOriginal
|
|
240
|
+
}, __('Edit original')))), children === null ? createElement("div", {
|
|
194
241
|
...innerBlocksProps
|
|
195
242
|
}) : createElement("div", {
|
|
196
243
|
...blockProps
|