@wordpress/block-editor 12.12.0 → 12.13.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 +12 -10
- package/README.md +35 -3
- package/build/components/block-alignment-control/use-available-alignments.js +30 -28
- package/build/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build/components/block-list/block.native.js +4 -4
- package/build/components/block-list/block.native.js.map +1 -1
- package/build/components/block-list/layout.js +2 -3
- package/build/components/block-list/layout.js.map +1 -1
- package/build/components/border-radius-control/index.js +3 -2
- package/build/components/border-radius-control/index.js.map +1 -1
- package/build/components/color-palette/with-color-context.js +6 -6
- package/build/components/color-palette/with-color-context.js.map +1 -1
- package/build/components/colors/with-colors.js +2 -8
- package/build/components/colors/with-colors.js.map +1 -1
- package/build/components/colors-gradients/control.js +6 -7
- package/build/components/colors-gradients/control.js.map +1 -1
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -13
- package/build/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build/components/font-family/index.js +2 -3
- package/build/components/font-family/index.js.map +1 -1
- package/build/components/font-sizes/font-size-picker.js +3 -5
- package/build/components/font-sizes/font-size-picker.js.map +1 -1
- package/build/components/font-sizes/with-font-sizes.js +3 -4
- package/build/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build/components/global-styles/filters-panel.js +7 -8
- package/build/components/global-styles/filters-panel.js.map +1 -1
- package/build/components/global-styles/image-settings-panel.js +2 -2
- package/build/components/global-styles/image-settings-panel.js.map +1 -1
- package/build/components/global-styles/typography-panel.js +1 -1
- package/build/components/global-styles/typography-panel.js.map +1 -1
- package/build/components/gradients/use-gradient.js +2 -5
- package/build/components/gradients/use-gradient.js.map +1 -1
- package/build/components/height-control/index.js +3 -3
- package/build/components/height-control/index.js.map +1 -1
- package/build/components/index.js +9 -2
- package/build/components/index.js.map +1 -1
- package/build/components/index.native.js +9 -2
- package/build/components/index.native.js.map +1 -1
- package/build/components/inner-blocks/index.js +2 -2
- package/build/components/inner-blocks/index.js.map +1 -1
- package/build/components/letter-spacing-control/index.js +3 -3
- package/build/components/letter-spacing-control/index.js.map +1 -1
- package/build/components/link-control/search-item.js +11 -0
- package/build/components/link-control/search-item.js.map +1 -1
- package/build/components/link-control/search-results.js +2 -1
- package/build/components/link-control/search-results.js.map +1 -1
- package/build/components/link-control/use-search-handler.js +10 -5
- package/build/components/link-control/use-search-handler.js.map +1 -1
- package/build/components/resizable-box-popover/index.js +1 -1
- package/build/components/resizable-box-popover/index.js.map +1 -1
- package/build/components/rich-text/index.js +1 -1
- package/build/components/rich-text/index.js.map +1 -1
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -3
- package/build/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -3
- package/build/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build/components/unit-control/index.js +3 -3
- package/build/components/unit-control/index.js.map +1 -1
- package/build/components/use-block-commands/index.js +6 -1
- package/build/components/use-block-commands/index.js.map +1 -1
- package/build/components/use-settings/index.js +212 -0
- package/build/components/use-settings/index.js.map +1 -0
- package/build/hooks/align.js +51 -35
- package/build/hooks/align.js.map +1 -1
- package/build/hooks/anchor.js +37 -32
- package/build/hooks/anchor.js.map +1 -1
- package/build/hooks/background.js +4 -4
- package/build/hooks/background.js.map +1 -1
- package/build/hooks/color.js +2 -4
- package/build/hooks/color.js.map +1 -1
- package/build/hooks/duotone.js +10 -9
- package/build/hooks/duotone.js.map +1 -1
- package/build/hooks/font-size.js +4 -4
- package/build/hooks/font-size.js.map +1 -1
- package/build/hooks/layout.js +10 -11
- package/build/hooks/layout.js.map +1 -1
- package/build/hooks/line-height.js +3 -3
- package/build/hooks/line-height.js.map +1 -1
- package/build/hooks/position.js +2 -3
- package/build/hooks/position.js.map +1 -1
- package/build/hooks/use-color-props.js +3 -11
- package/build/hooks/use-color-props.js.map +1 -1
- package/build/hooks/utils.js +1 -42
- package/build/hooks/utils.js.map +1 -1
- package/build/layouts/constrained.js +3 -3
- package/build/layouts/constrained.js.map +1 -1
- package/build/utils/object.js +4 -1
- package/build/utils/object.js.map +1 -1
- package/build/utils/transform-styles/index.js +19 -24
- package/build/utils/transform-styles/index.js.map +1 -1
- package/build-module/components/block-alignment-control/use-available-alignments.js +30 -28
- package/build-module/components/block-alignment-control/use-available-alignments.js.map +1 -1
- package/build-module/components/block-list/block.native.js +4 -4
- package/build-module/components/block-list/block.native.js.map +1 -1
- package/build-module/components/block-list/layout.js +2 -2
- package/build-module/components/block-list/layout.js.map +1 -1
- package/build-module/components/border-radius-control/index.js +3 -2
- package/build-module/components/border-radius-control/index.js.map +1 -1
- package/build-module/components/color-palette/with-color-context.js +6 -5
- package/build-module/components/color-palette/with-color-context.js.map +1 -1
- package/build-module/components/colors/with-colors.js +2 -7
- package/build-module/components/colors/with-colors.js.map +1 -1
- package/build-module/components/colors-gradients/control.js +6 -7
- package/build-module/components/colors-gradients/control.js.map +1 -1
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +5 -12
- package/build-module/components/colors-gradients/use-multiple-origin-colors-and-gradients.js.map +1 -1
- package/build-module/components/font-family/index.js +2 -2
- package/build-module/components/font-family/index.js.map +1 -1
- package/build-module/components/font-sizes/font-size-picker.js +3 -4
- package/build-module/components/font-sizes/font-size-picker.js.map +1 -1
- package/build-module/components/font-sizes/with-font-sizes.js +3 -3
- package/build-module/components/font-sizes/with-font-sizes.js.map +1 -1
- package/build-module/components/global-styles/filters-panel.js +7 -8
- package/build-module/components/global-styles/filters-panel.js.map +1 -1
- package/build-module/components/global-styles/image-settings-panel.js +2 -2
- package/build-module/components/global-styles/image-settings-panel.js.map +1 -1
- package/build-module/components/global-styles/typography-panel.js +1 -1
- package/build-module/components/global-styles/typography-panel.js.map +1 -1
- package/build-module/components/gradients/use-gradient.js +2 -4
- package/build-module/components/gradients/use-gradient.js.map +1 -1
- package/build-module/components/height-control/index.js +3 -2
- package/build-module/components/height-control/index.js.map +1 -1
- package/build-module/components/index.js +1 -1
- package/build-module/components/index.js.map +1 -1
- package/build-module/components/index.native.js +1 -1
- package/build-module/components/index.native.js.map +1 -1
- package/build-module/components/inner-blocks/index.js +2 -2
- package/build-module/components/inner-blocks/index.js.map +1 -1
- package/build-module/components/letter-spacing-control/index.js +3 -2
- package/build-module/components/letter-spacing-control/index.js.map +1 -1
- package/build-module/components/link-control/search-item.js +12 -1
- package/build-module/components/link-control/search-item.js.map +1 -1
- package/build-module/components/link-control/search-results.js +2 -1
- package/build-module/components/link-control/search-results.js.map +1 -1
- package/build-module/components/link-control/use-search-handler.js +10 -5
- package/build-module/components/link-control/use-search-handler.js.map +1 -1
- package/build-module/components/resizable-box-popover/index.js +1 -1
- package/build-module/components/resizable-box-popover/index.js.map +1 -1
- package/build-module/components/rich-text/index.js +1 -1
- package/build-module/components/rich-text/index.js.map +1 -1
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js +6 -2
- package/build-module/components/spacing-sizes-control/hooks/use-spacing-sizes.js.map +1 -1
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
- package/build-module/components/spacing-sizes-control/input-controls/spacing-input-control.js.map +1 -1
- package/build-module/components/unit-control/index.js +3 -2
- package/build-module/components/unit-control/index.js.map +1 -1
- package/build-module/components/use-block-commands/index.js +5 -1
- package/build-module/components/use-block-commands/index.js.map +1 -1
- package/build-module/components/use-settings/index.js +203 -0
- package/build-module/components/use-settings/index.js.map +1 -0
- package/build-module/hooks/align.js +51 -35
- package/build-module/hooks/align.js.map +1 -1
- package/build-module/hooks/anchor.js +37 -32
- package/build-module/hooks/anchor.js.map +1 -1
- package/build-module/hooks/background.js +4 -4
- package/build-module/hooks/background.js.map +1 -1
- package/build-module/hooks/color.js +2 -4
- package/build-module/hooks/color.js.map +1 -1
- package/build-module/hooks/duotone.js +11 -10
- package/build-module/hooks/duotone.js.map +1 -1
- package/build-module/hooks/font-size.js +4 -4
- package/build-module/hooks/font-size.js.map +1 -1
- package/build-module/hooks/layout.js +10 -11
- package/build-module/hooks/layout.js.map +1 -1
- package/build-module/hooks/line-height.js +3 -3
- package/build-module/hooks/line-height.js.map +1 -1
- package/build-module/hooks/position.js +2 -3
- package/build-module/hooks/position.js.map +1 -1
- package/build-module/hooks/use-color-props.js +3 -11
- package/build-module/hooks/use-color-props.js.map +1 -1
- package/build-module/hooks/utils.js +2 -43
- package/build-module/hooks/utils.js.map +1 -1
- package/build-module/layouts/constrained.js +3 -2
- package/build-module/layouts/constrained.js.map +1 -1
- package/build-module/utils/object.js +3 -1
- package/build-module/utils/object.js.map +1 -1
- package/build-module/utils/transform-styles/index.js +20 -24
- package/build-module/utils/transform-styles/index.js.map +1 -1
- package/build-style/style-rtl.css +13 -6
- package/build-style/style.css +13 -6
- package/package.json +36 -34
- package/src/components/block-alignment-control/use-available-alignments.js +49 -34
- package/src/components/block-list/block.native.js +4 -4
- package/src/components/block-list/layout.js +2 -2
- package/src/components/block-styles/style.scss +1 -1
- package/src/components/border-radius-control/index.js +3 -2
- package/src/components/color-palette/with-color-context.js +9 -9
- package/src/components/colors/with-colors.js +6 -7
- package/src/components/colors-gradients/control.js +10 -7
- package/src/components/colors-gradients/use-multiple-origin-colors-and-gradients.js +29 -15
- package/src/components/font-family/index.js +2 -2
- package/src/components/font-sizes/font-size-picker.js +6 -4
- package/src/components/font-sizes/with-font-sizes.js +3 -5
- package/src/components/global-styles/filters-panel.js +9 -15
- package/src/components/global-styles/image-settings-panel.js +2 -2
- package/src/components/global-styles/typography-panel.js +1 -1
- package/src/components/gradients/use-gradient.js +10 -4
- package/src/components/height-control/index.js +3 -2
- package/src/components/index.js +1 -1
- package/src/components/index.native.js +1 -1
- package/src/components/inner-blocks/index.js +2 -2
- package/src/components/inserter/style.scss +9 -1
- package/src/components/letter-spacing-control/index.js +3 -2
- package/src/components/link-control/search-item.js +14 -0
- package/src/components/link-control/search-results.js +1 -0
- package/src/components/link-control/use-search-handler.js +22 -15
- package/src/components/resizable-box-popover/index.js +1 -1
- package/src/components/rich-text/index.js +1 -1
- package/src/components/spacing-sizes-control/hooks/use-spacing-sizes.js +7 -5
- package/src/components/spacing-sizes-control/input-controls/spacing-input-control.js +3 -2
- package/src/components/unit-control/index.js +3 -8
- package/src/components/use-block-commands/index.js +2 -1
- package/src/components/{use-setting → use-settings}/README.md +9 -10
- package/src/components/use-settings/index.js +272 -0
- package/src/components/{use-setting → use-settings}/test/index.js +47 -5
- package/src/hooks/align.js +79 -54
- package/src/hooks/anchor.js +75 -65
- package/src/hooks/background.js +7 -9
- package/src/hooks/color.js +7 -4
- package/src/hooks/duotone.js +24 -19
- package/src/hooks/font-size.js +4 -4
- package/src/hooks/layout.js +11 -11
- package/src/hooks/line-height.js +3 -3
- package/src/hooks/position.js +5 -3
- package/src/hooks/use-color-props.js +21 -14
- package/src/hooks/utils.js +88 -43
- package/src/layouts/constrained.js +3 -8
- package/src/utils/object.js +4 -1
- package/src/utils/test/__snapshots__/transform-styles.js.snap +103 -0
- package/src/utils/test/transform-styles.js +217 -0
- package/src/utils/transform-styles/index.js +25 -25
- package/build/components/use-setting/index.js +0 -161
- package/build/components/use-setting/index.js.map +0 -1
- package/build/utils/transform-styles/ast/index.js +0 -21
- package/build/utils/transform-styles/ast/index.js.map +0 -1
- package/build/utils/transform-styles/ast/parse.js +0 -660
- package/build/utils/transform-styles/ast/parse.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/compiler.js +0 -52
- package/build/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/compress.js +0 -178
- package/build/utils/transform-styles/ast/stringify/compress.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/identity.js +0 -207
- package/build/utils/transform-styles/ast/stringify/identity.js.map +0 -1
- package/build/utils/transform-styles/ast/stringify/index.js +0 -36
- package/build/utils/transform-styles/ast/stringify/index.js.map +0 -1
- package/build/utils/transform-styles/transforms/url-rewrite.js +0 -130
- package/build/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
- package/build/utils/transform-styles/transforms/wrap.js +0 -59
- package/build/utils/transform-styles/transforms/wrap.js.map +0 -1
- package/build/utils/transform-styles/traverse.js +0 -37
- package/build/utils/transform-styles/traverse.js.map +0 -1
- package/build-module/components/use-setting/index.js +0 -154
- package/build-module/components/use-setting/index.js.map +0 -1
- package/build-module/utils/transform-styles/ast/index.js +0 -6
- package/build-module/utils/transform-styles/ast/index.js.map +0 -1
- package/build-module/utils/transform-styles/ast/parse.js +0 -654
- package/build-module/utils/transform-styles/ast/parse.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/compiler.js +0 -49
- package/build-module/utils/transform-styles/ast/stringify/compiler.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/compress.js +0 -176
- package/build-module/utils/transform-styles/ast/stringify/compress.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/identity.js +0 -206
- package/build-module/utils/transform-styles/ast/stringify/identity.js.map +0 -1
- package/build-module/utils/transform-styles/ast/stringify/index.js +0 -29
- package/build-module/utils/transform-styles/ast/stringify/index.js.map +0 -1
- package/build-module/utils/transform-styles/transforms/url-rewrite.js +0 -123
- package/build-module/utils/transform-styles/transforms/url-rewrite.js.map +0 -1
- package/build-module/utils/transform-styles/transforms/wrap.js +0 -52
- package/build-module/utils/transform-styles/transforms/wrap.js.map +0 -1
- package/build-module/utils/transform-styles/traverse.js +0 -28
- package/build-module/utils/transform-styles/traverse.js.map +0 -1
- package/src/components/use-setting/index.js +0 -218
- package/src/utils/transform-styles/ast/index.js +0 -5
- package/src/utils/transform-styles/ast/parse.js +0 -732
- package/src/utils/transform-styles/ast/stringify/compiler.js +0 -50
- package/src/utils/transform-styles/ast/stringify/compress.js +0 -238
- package/src/utils/transform-styles/ast/stringify/identity.js +0 -286
- package/src/utils/transform-styles/ast/stringify/index.js +0 -32
- package/src/utils/transform-styles/test/__snapshots__/traverse.js.snap +0 -7
- package/src/utils/transform-styles/test/traverse.js +0 -24
- package/src/utils/transform-styles/transforms/test/__snapshots__/url-rewrite.js.snap +0 -25
- package/src/utils/transform-styles/transforms/test/__snapshots__/wrap.js.snap +0 -64
- package/src/utils/transform-styles/transforms/test/url-rewrite.js +0 -39
- package/src/utils/transform-styles/transforms/test/wrap.js +0 -95
- package/src/utils/transform-styles/transforms/url-rewrite.js +0 -139
- package/src/utils/transform-styles/transforms/wrap.js +0 -56
- package/src/utils/transform-styles/traverse.js +0 -32
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","_i18n","_icons","_styleEngine","_useSetting","_interopRequireDefault","_utils","_gap","_utils2","_definitions","_default","name","label","__","inspectorControls","DefaultLayoutInspectorControls","layout","onChange","layoutBlockSupport","wideSize","contentSize","justifyContent","allowJustification","onJustificationChange","value","justificationOptions","icon","justifyLeft","justifyCenter","justifyRight","units","useCustomUnits","availableUnits","useSetting","_react","createElement","Fragment","className","__experimentalUnitControl","labelPosition","__unstableInputWidth","nextWidth","parseFloat","Icon","positionCenter","stretchWide","__experimentalToggleGroupControl","__nextHasNoMarginBottom","map","__experimentalToggleGroupControlOptionIcon","key","toolBarControls","DefaultLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","blockGapStyleValue","getGapCSSValue","spacing","blockGap","blockGapValue","shouldSkipSerialization","top","marginLeft","marginRight","output","appendSelectors","padding","paddingValues","getCSSRules","forEach","rule","getBlockGapCSS","getOrientation","getAlignments","alignmentInfo","getAlignmentsInfo","alignments","undefined","includes","unshift","alignment","info","wide","none","exports","default"],"sources":["@wordpress/block-editor/src/layouts/constrained.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\tpositionCenter,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../components/use-setting';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: useSetting( 'spacing.units' ) || [\n\t\t\t\t'%',\n\t\t\t\t'px',\n\t\t\t\t'em',\n\t\t\t\t'rem',\n\t\t\t\t'vw',\n\t\t\t],\n\t\t} );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-hooks__layout-controls\">\n\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSize || wideSize || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcontentSize: nextWidth,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSize || contentSize || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\twideSize: nextWidth,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout = {},\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { contentSize, wideSize, justifyContent } = layout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tlet output =\n\t\t\t!! contentSize || !! wideSize\n\t\t\t\t? `\n\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t) } {\n\t\t\t\t\t\tmax-width: ${ contentSize ?? wideSize };\n\t\t\t\t\t\tmargin-left: ${ marginLeft };\n\t\t\t\t\t\tmargin-right: ${ marginRight };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideSize ?? contentSize };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( justifyContent === 'left' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t} else if ( justifyContent === 'right' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_components","require","_i18n","_icons","_styleEngine","_useSettings","_utils","_gap","_utils2","_definitions","_default","name","label","__","inspectorControls","DefaultLayoutInspectorControls","layout","onChange","layoutBlockSupport","wideSize","contentSize","justifyContent","allowJustification","onJustificationChange","value","justificationOptions","icon","justifyLeft","justifyCenter","justifyRight","availableUnits","useSettings","units","useCustomUnits","_react","createElement","Fragment","className","__experimentalUnitControl","labelPosition","__unstableInputWidth","nextWidth","parseFloat","Icon","positionCenter","stretchWide","__experimentalToggleGroupControl","__nextHasNoMarginBottom","map","__experimentalToggleGroupControlOptionIcon","key","toolBarControls","DefaultLayoutToolbarControls","getLayoutStyle","selector","style","blockName","hasBlockGapSupport","layoutDefinitions","LAYOUT_DEFINITIONS","blockGapStyleValue","getGapCSSValue","spacing","blockGap","blockGapValue","shouldSkipSerialization","top","marginLeft","marginRight","output","appendSelectors","padding","paddingValues","getCSSRules","forEach","rule","getBlockGapCSS","getOrientation","getAlignments","alignmentInfo","getAlignmentsInfo","alignments","undefined","includes","unshift","alignment","info","wide","none","exports","default"],"sources":["@wordpress/block-editor/src/layouts/constrained.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalToggleGroupControl as ToggleGroupControl,\n\t__experimentalToggleGroupControlOptionIcon as ToggleGroupControlOptionIcon,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport {\n\tIcon,\n\tpositionCenter,\n\tstretchWide,\n\tjustifyLeft,\n\tjustifyCenter,\n\tjustifyRight,\n} from '@wordpress/icons';\nimport { getCSSRules } from '@wordpress/style-engine';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../components/use-settings';\nimport { appendSelectors, getBlockGapCSS, getAlignmentsInfo } from './utils';\nimport { getGapCSSValue } from '../hooks/gap';\nimport { shouldSkipSerialization } from '../hooks/utils';\nimport { LAYOUT_DEFINITIONS } from './definitions';\n\nexport default {\n\tname: 'constrained',\n\tlabel: __( 'Constrained' ),\n\tinspectorControls: function DefaultLayoutInspectorControls( {\n\t\tlayout,\n\t\tonChange,\n\t\tlayoutBlockSupport = {},\n\t} ) {\n\t\tconst { wideSize, contentSize, justifyContent = 'center' } = layout;\n\t\tconst { allowJustification = true } = layoutBlockSupport;\n\t\tconst onJustificationChange = ( value ) => {\n\t\t\tonChange( {\n\t\t\t\t...layout,\n\t\t\t\tjustifyContent: value,\n\t\t\t} );\n\t\t};\n\t\tconst justificationOptions = [\n\t\t\t{\n\t\t\t\tvalue: 'left',\n\t\t\t\ticon: justifyLeft,\n\t\t\t\tlabel: __( 'Justify items left' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'center',\n\t\t\t\ticon: justifyCenter,\n\t\t\t\tlabel: __( 'Justify items center' ),\n\t\t\t},\n\t\t\t{\n\t\t\t\tvalue: 'right',\n\t\t\t\ticon: justifyRight,\n\t\t\t\tlabel: __( 'Justify items right' ),\n\t\t\t},\n\t\t];\n\t\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\t\tconst units = useCustomUnits( {\n\t\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\t} );\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div className=\"block-editor-hooks__layout-controls\">\n\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\tlabel={ __( 'Content' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ contentSize || wideSize || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\tcontentSize: nextWidth,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ positionCenter } />\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"block-editor-hooks__layout-controls-unit\">\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tclassName=\"block-editor-hooks__layout-controls-unit-input\"\n\t\t\t\t\t\t\tlabel={ __( 'Wide' ) }\n\t\t\t\t\t\t\tlabelPosition=\"top\"\n\t\t\t\t\t\t\t__unstableInputWidth=\"80px\"\n\t\t\t\t\t\t\tvalue={ wideSize || contentSize || '' }\n\t\t\t\t\t\t\tonChange={ ( nextWidth ) => {\n\t\t\t\t\t\t\t\tnextWidth =\n\t\t\t\t\t\t\t\t\t0 > parseFloat( nextWidth )\n\t\t\t\t\t\t\t\t\t\t? '0'\n\t\t\t\t\t\t\t\t\t\t: nextWidth;\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...layout,\n\t\t\t\t\t\t\t\t\twideSize: nextWidth,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<Icon icon={ stretchWide } />\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<p className=\"block-editor-hooks__layout-controls-helptext\">\n\t\t\t\t\t{ __(\n\t\t\t\t\t\t'Customize the width for all elements that are assigned to the center or wide columns.'\n\t\t\t\t\t) }\n\t\t\t\t</p>\n\t\t\t\t{ allowJustification && (\n\t\t\t\t\t<ToggleGroupControl\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t\tlabel={ __( 'Justification' ) }\n\t\t\t\t\t\tvalue={ justifyContent }\n\t\t\t\t\t\tonChange={ onJustificationChange }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ justificationOptions.map(\n\t\t\t\t\t\t\t( { value, icon, label } ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<ToggleGroupControlOptionIcon\n\t\t\t\t\t\t\t\t\t\tkey={ value }\n\t\t\t\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t) }\n\t\t\t\t\t</ToggleGroupControl>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t},\n\ttoolBarControls: function DefaultLayoutToolbarControls() {\n\t\treturn null;\n\t},\n\tgetLayoutStyle: function getLayoutStyle( {\n\t\tselector,\n\t\tlayout = {},\n\t\tstyle,\n\t\tblockName,\n\t\thasBlockGapSupport,\n\t\tlayoutDefinitions = LAYOUT_DEFINITIONS,\n\t} ) {\n\t\tconst { contentSize, wideSize, justifyContent } = layout;\n\t\tconst blockGapStyleValue = getGapCSSValue( style?.spacing?.blockGap );\n\n\t\t// If a block's block.json skips serialization for spacing or\n\t\t// spacing.blockGap, don't apply the user-defined value to the styles.\n\t\tlet blockGapValue = '';\n\t\tif ( ! shouldSkipSerialization( blockName, 'spacing', 'blockGap' ) ) {\n\t\t\t// If an object is provided only use the 'top' value for this kind of gap.\n\t\t\tif ( blockGapStyleValue?.top ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue?.top );\n\t\t\t} else if ( typeof blockGapStyleValue === 'string' ) {\n\t\t\t\tblockGapValue = getGapCSSValue( blockGapStyleValue );\n\t\t\t}\n\t\t}\n\n\t\tconst marginLeft =\n\t\t\tjustifyContent === 'left' ? '0 !important' : 'auto !important';\n\t\tconst marginRight =\n\t\t\tjustifyContent === 'right' ? '0 !important' : 'auto !important';\n\n\t\tlet output =\n\t\t\t!! contentSize || !! wideSize\n\t\t\t\t? `\n\t\t\t\t\t${ appendSelectors(\n\t\t\t\t\t\tselector,\n\t\t\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t\t\t) } {\n\t\t\t\t\t\tmax-width: ${ contentSize ?? wideSize };\n\t\t\t\t\t\tmargin-left: ${ marginLeft };\n\t\t\t\t\t\tmargin-right: ${ marginRight };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignwide' ) } {\n\t\t\t\t\t\tmax-width: ${ wideSize ?? contentSize };\n\t\t\t\t\t}\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmax-width: none;\n\t\t\t\t\t}\n\t\t\t\t`\n\t\t\t\t: '';\n\n\t\tif ( justifyContent === 'left' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-left: ${ marginLeft }; }`;\n\t\t} else if ( justifyContent === 'right' ) {\n\t\t\toutput += `${ appendSelectors(\n\t\t\t\tselector,\n\t\t\t\t'> :where(:not(.alignleft):not(.alignright):not(.alignfull))'\n\t\t\t) }\n\t\t\t{ margin-right: ${ marginRight }; }`;\n\t\t}\n\n\t\t// If there is custom padding, add negative margins for alignfull blocks.\n\t\tif ( style?.spacing?.padding ) {\n\t\t\t// The style object might be storing a preset so we need to make sure we get a usable value.\n\t\t\tconst paddingValues = getCSSRules( style );\n\t\t\tpaddingValues.forEach( ( rule ) => {\n\t\t\t\tif ( rule.key === 'paddingRight' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-right: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t} else if ( rule.key === 'paddingLeft' ) {\n\t\t\t\t\toutput += `\n\t\t\t\t\t${ appendSelectors( selector, '> .alignfull' ) } {\n\t\t\t\t\t\tmargin-left: calc(${ rule.value } * -1);\n\t\t\t\t\t}\n\t\t\t\t\t`;\n\t\t\t\t}\n\t\t\t} );\n\t\t}\n\n\t\t// Output blockGap styles based on rules contained in layout definitions in theme.json.\n\t\tif ( hasBlockGapSupport && blockGapValue ) {\n\t\t\toutput += getBlockGapCSS(\n\t\t\t\tselector,\n\t\t\t\tlayoutDefinitions,\n\t\t\t\t'constrained',\n\t\t\t\tblockGapValue\n\t\t\t);\n\t\t}\n\t\treturn output;\n\t},\n\tgetOrientation() {\n\t\treturn 'vertical';\n\t},\n\tgetAlignments( layout ) {\n\t\tconst alignmentInfo = getAlignmentsInfo( layout );\n\t\tif ( layout.alignments !== undefined ) {\n\t\t\tif ( ! layout.alignments.includes( 'none' ) ) {\n\t\t\t\tlayout.alignments.unshift( 'none' );\n\t\t\t}\n\t\t\treturn layout.alignments.map( ( alignment ) => ( {\n\t\t\t\tname: alignment,\n\t\t\t\tinfo: alignmentInfo[ alignment ],\n\t\t\t} ) );\n\t\t}\n\t\tconst { contentSize, wideSize } = layout;\n\n\t\tconst alignments = [\n\t\t\t{ name: 'left' },\n\t\t\t{ name: 'center' },\n\t\t\t{ name: 'right' },\n\t\t];\n\n\t\tif ( contentSize ) {\n\t\t\talignments.unshift( { name: 'full' } );\n\t\t}\n\n\t\tif ( wideSize ) {\n\t\t\talignments.unshift( { name: 'wide', info: alignmentInfo.wide } );\n\t\t}\n\n\t\talignments.unshift( { name: 'none', info: alignmentInfo.none } );\n\n\t\treturn alignments;\n\t},\n};\n"],"mappings":"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"}
|
package/build/utils/object.js
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
@@ -7,6 +8,7 @@ exports.getValueFromObjectPath = void 0;
|
|
|
7
8
|
exports.kebabCase = kebabCase;
|
|
8
9
|
exports.setImmutably = setImmutably;
|
|
9
10
|
var _changeCase = require("change-case");
|
|
11
|
+
var _memize = _interopRequireDefault(require("memize"));
|
|
10
12
|
/**
|
|
11
13
|
* External dependencies
|
|
12
14
|
*/
|
|
@@ -111,6 +113,7 @@ function setImmutably(object, path, value) {
|
|
|
111
113
|
}, newObject);
|
|
112
114
|
return newObject;
|
|
113
115
|
}
|
|
116
|
+
const stringToPath = (0, _memize.default)(path => path.split('.'));
|
|
114
117
|
|
|
115
118
|
/**
|
|
116
119
|
* Helper util to return a value from a certain path of the object.
|
|
@@ -126,7 +129,7 @@ function setImmutably(object, path, value) {
|
|
|
126
129
|
*/
|
|
127
130
|
const getValueFromObjectPath = (object, path, defaultValue) => {
|
|
128
131
|
var _value;
|
|
129
|
-
const normalizedPath = Array.isArray(path) ? path : path
|
|
132
|
+
const normalizedPath = Array.isArray(path) ? path : stringToPath(path);
|
|
130
133
|
let value = object;
|
|
131
134
|
normalizedPath.forEach(fieldName => {
|
|
132
135
|
value = value?.[fieldName];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_changeCase","require","normalizePath","path","Array","isArray","toString","kebabCase","str","input","_str$toString","replace","paramCase","splitRegexp","cloneObject","object","map","Object","fromEntries","entries","key","value","setImmutably","normalizedPath","newObject","reduce","acc","i","undefined","Number","isInteger","length","getValueFromObjectPath","defaultValue","_value","
|
|
1
|
+
{"version":3,"names":["_changeCase","require","_memize","_interopRequireDefault","normalizePath","path","Array","isArray","toString","kebabCase","str","input","_str$toString","replace","paramCase","splitRegexp","cloneObject","object","map","Object","fromEntries","entries","key","value","setImmutably","normalizedPath","newObject","reduce","acc","i","undefined","Number","isInteger","length","stringToPath","memoize","split","getValueFromObjectPath","defaultValue","_value","forEach","fieldName","exports"],"sources":["@wordpress/block-editor/src/utils/object.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { paramCase } from 'change-case';\nimport memoize from 'memize';\n\n/**\n * Converts a path to an array of its fragments.\n * Supports strings, numbers and arrays:\n *\n * 'foo' => [ 'foo' ]\n * 2 => [ '2' ]\n * [ 'foo', 'bar' ] => [ 'foo', 'bar' ]\n *\n * @param {string|number|Array} path Path\n * @return {Array} Normalized path.\n */\nfunction normalizePath( path ) {\n\tif ( Array.isArray( path ) ) {\n\t\treturn path;\n\t} else if ( typeof path === 'number' ) {\n\t\treturn [ path.toString() ];\n\t}\n\n\treturn [ path ];\n}\n\n/**\n * Converts any string to kebab case.\n * Backwards compatible with Lodash's `_.kebabCase()`.\n * Backwards compatible with `_wp_to_kebab_case()`.\n *\n * @see https://lodash.com/docs/4.17.15#kebabCase\n * @see https://developer.wordpress.org/reference/functions/_wp_to_kebab_case/\n *\n * @param {string} str String to convert.\n * @return {string} Kebab-cased string\n */\nexport function kebabCase( str ) {\n\tlet input = str;\n\tif ( typeof str !== 'string' ) {\n\t\tinput = str?.toString?.() ?? '';\n\t}\n\n\t// See https://github.com/lodash/lodash/blob/b185fcee26b2133bd071f4aaca14b455c2ed1008/lodash.js#L4970\n\tinput = input.replace( /['\\u2019]/, '' );\n\n\treturn paramCase( input, {\n\t\tsplitRegexp: [\n\t\t\t/(?!(?:1ST|2ND|3RD|[4-9]TH)(?![a-z]))([a-z0-9])([A-Z])/g, // fooBar => foo-bar, 3Bar => 3-bar\n\t\t\t/(?!(?:1st|2nd|3rd|[4-9]th)(?![a-z]))([0-9])([a-z])/g, // 3bar => 3-bar\n\t\t\t/([A-Za-z])([0-9])/g, // Foo3 => foo-3, foo3 => foo-3\n\t\t\t/([A-Z])([A-Z][a-z])/g, // FOOBar => foo-bar\n\t\t],\n\t} );\n}\n\n/**\n * Clones an object.\n * Arrays are also cloned as arrays.\n * Non-object values are returned unchanged.\n *\n * @param {*} object Object to clone.\n * @return {*} Cloned object, or original literal non-object value.\n */\nfunction cloneObject( object ) {\n\tif ( Array.isArray( object ) ) {\n\t\treturn object.map( cloneObject );\n\t}\n\n\tif ( object && typeof object === 'object' ) {\n\t\treturn {\n\t\t\t...Object.fromEntries(\n\t\t\t\tObject.entries( object ).map( ( [ key, value ] ) => [\n\t\t\t\t\tkey,\n\t\t\t\t\tcloneObject( value ),\n\t\t\t\t] )\n\t\t\t),\n\t\t};\n\t}\n\n\treturn object;\n}\n\n/**\n * Immutably sets a value inside an object. Like `lodash#set`, but returning a\n * new object. Treats nullish initial values as empty objects. Clones any\n * nested objects. Supports arrays, too.\n *\n * @param {Object} object Object to set a value in.\n * @param {number|string|Array} path Path in the object to modify.\n * @param {*} value New value to set.\n * @return {Object} Cloned object with the new value set.\n */\nexport function setImmutably( object, path, value ) {\n\tconst normalizedPath = normalizePath( path );\n\tconst newObject = object ? cloneObject( object ) : {};\n\n\tnormalizedPath.reduce( ( acc, key, i ) => {\n\t\tif ( acc[ key ] === undefined ) {\n\t\t\tif ( Number.isInteger( path[ i + 1 ] ) ) {\n\t\t\t\tacc[ key ] = [];\n\t\t\t} else {\n\t\t\t\tacc[ key ] = {};\n\t\t\t}\n\t\t}\n\t\tif ( i === normalizedPath.length - 1 ) {\n\t\t\tacc[ key ] = value;\n\t\t}\n\t\treturn acc[ key ];\n\t}, newObject );\n\n\treturn newObject;\n}\n\nconst stringToPath = memoize( ( path ) => path.split( '.' ) );\n\n/**\n * Helper util to return a value from a certain path of the object.\n * Path is specified as either:\n * - a string of properties, separated by dots, for example: \"x.y\".\n * - an array of properties, for example `[ 'x', 'y' ]`.\n * You can also specify a default value in case the result is nullish.\n *\n * @param {Object} object Input object.\n * @param {string|Array} path Path to the object property.\n * @param {*} defaultValue Default value if the value at the specified path is nullish.\n * @return {*} Value of the object property at the specified path.\n */\nexport const getValueFromObjectPath = ( object, path, defaultValue ) => {\n\tconst normalizedPath = Array.isArray( path ) ? path : stringToPath( path );\n\tlet value = object;\n\tnormalizedPath.forEach( ( fieldName ) => {\n\t\tvalue = value?.[ fieldName ];\n\t} );\n\treturn value ?? defaultValue;\n};\n"],"mappings":"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"}
|
|
@@ -5,41 +5,36 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
value: true
|
|
6
6
|
});
|
|
7
7
|
exports.default = void 0;
|
|
8
|
-
var
|
|
9
|
-
var
|
|
10
|
-
var
|
|
11
|
-
var _wrap = _interopRequireDefault(require("./transforms/wrap"));
|
|
8
|
+
var _postcss = _interopRequireDefault(require("postcss"));
|
|
9
|
+
var _postcssPrefixwrap = _interopRequireDefault(require("postcss-prefixwrap"));
|
|
10
|
+
var _postcssUrlrebase = _interopRequireDefault(require("postcss-urlrebase"));
|
|
12
11
|
/**
|
|
13
|
-
*
|
|
14
|
-
*/
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* Internal dependencies
|
|
12
|
+
* External dependencies
|
|
18
13
|
*/
|
|
19
14
|
|
|
20
15
|
/**
|
|
21
16
|
* Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.
|
|
22
17
|
*
|
|
23
|
-
* @
|
|
24
|
-
* @
|
|
18
|
+
* @typedef {Object} EditorStyle
|
|
19
|
+
* @property {string} css the CSS block(s), as a single string.
|
|
20
|
+
* @property {?string} baseURL the base URL to be used as the reference when rewritting urls.
|
|
21
|
+
* @property {?string[]} ignoredSelectors the selectors not to wrap.
|
|
22
|
+
*
|
|
23
|
+
* @param {EditorStyle[]} styles CSS rules.
|
|
24
|
+
* @param {string} wrapperSelector Wrapper selector.
|
|
25
25
|
* @return {Array} converted rules.
|
|
26
26
|
*/
|
|
27
|
-
const transformStyles = (styles,
|
|
28
|
-
return
|
|
27
|
+
const transformStyles = (styles, wrapperSelector = '') => {
|
|
28
|
+
return styles.map(({
|
|
29
29
|
css,
|
|
30
|
+
ignoredSelectors = [],
|
|
30
31
|
baseURL
|
|
31
32
|
}) => {
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
transforms.push((0, _urlRewrite.default)(baseURL));
|
|
38
|
-
}
|
|
39
|
-
if (transforms.length) {
|
|
40
|
-
return (0, _traverse.default)(css, (0, _compose.compose)(transforms));
|
|
41
|
-
}
|
|
42
|
-
return css;
|
|
33
|
+
return (0, _postcss.default)([wrapperSelector && (0, _postcssPrefixwrap.default)(wrapperSelector, {
|
|
34
|
+
ignoredSelectors: [...ignoredSelectors, wrapperSelector]
|
|
35
|
+
}), baseURL && (0, _postcssUrlrebase.default)({
|
|
36
|
+
rootUrl: baseURL
|
|
37
|
+
})].filter(Boolean)).process(css, {}).css; // use sync PostCSS API
|
|
43
38
|
});
|
|
44
39
|
};
|
|
45
40
|
var _default = transformStyles;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_postcss","_interopRequireDefault","require","_postcssPrefixwrap","_postcssUrlrebase","transformStyles","styles","wrapperSelector","map","css","ignoredSelectors","baseURL","postcss","wrap","rebaseUrl","rootUrl","filter","Boolean","process","_default","exports","default"],"sources":["@wordpress/block-editor/src/utils/transform-styles/index.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport postcss from 'postcss';\nimport wrap from 'postcss-prefixwrap';\nimport rebaseUrl from 'postcss-urlrebase';\n\n/**\n * Applies a series of CSS rule transforms to wrap selectors inside a given class and/or rewrite URLs depending on the parameters passed.\n *\n * @typedef {Object} EditorStyle\n * @property {string} css the CSS block(s), as a single string.\n * @property {?string} baseURL the base URL to be used as the reference when rewritting urls.\n * @property {?string[]} ignoredSelectors the selectors not to wrap.\n *\n * @param {EditorStyle[]} styles CSS rules.\n * @param {string} wrapperSelector Wrapper selector.\n * @return {Array} converted rules.\n */\nconst transformStyles = ( styles, wrapperSelector = '' ) => {\n\treturn styles.map( ( { css, ignoredSelectors = [], baseURL } ) => {\n\t\treturn postcss(\n\t\t\t[\n\t\t\t\twrapperSelector &&\n\t\t\t\t\twrap( wrapperSelector, {\n\t\t\t\t\t\tignoredSelectors: [\n\t\t\t\t\t\t\t...ignoredSelectors,\n\t\t\t\t\t\t\twrapperSelector,\n\t\t\t\t\t\t],\n\t\t\t\t\t} ),\n\t\t\t\tbaseURL && rebaseUrl( { rootUrl: baseURL } ),\n\t\t\t].filter( Boolean )\n\t\t).process( css, {} ).css; // use sync PostCSS API\n\t} );\n};\n\nexport default transformStyles;\n"],"mappings":";;;;;;;AAGA,IAAAA,QAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,kBAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,iBAAA,GAAAH,sBAAA,CAAAC,OAAA;AALA;AACA;AACA;;AAKA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,MAAMG,eAAe,GAAGA,CAAEC,MAAM,EAAEC,eAAe,GAAG,EAAE,KAAM;EAC3D,OAAOD,MAAM,CAACE,GAAG,CAAE,CAAE;IAAEC,GAAG;IAAEC,gBAAgB,GAAG,EAAE;IAAEC;EAAQ,CAAC,KAAM;IACjE,OAAO,IAAAC,gBAAO,EACb,CACCL,eAAe,IACd,IAAAM,0BAAI,EAAEN,eAAe,EAAE;MACtBG,gBAAgB,EAAE,CACjB,GAAGA,gBAAgB,EACnBH,eAAe;IAEjB,CAAE,CAAC,EACJI,OAAO,IAAI,IAAAG,yBAAS,EAAE;MAAEC,OAAO,EAAEJ;IAAQ,CAAE,CAAC,CAC5C,CAACK,MAAM,CAAEC,OAAQ,CACnB,CAAC,CAACC,OAAO,CAAET,GAAG,EAAE,CAAC,CAAE,CAAC,CAACA,GAAG,CAAC,CAAC;EAC3B,CAAE,CAAC;AACJ,CAAC;AAAC,IAAAU,QAAA,GAEad,eAAe;AAAAe,OAAA,CAAAC,OAAA,GAAAF,QAAA"}
|
|
@@ -17,28 +17,27 @@ export default function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
|
|
|
17
17
|
if (!controls.includes('none')) {
|
|
18
18
|
controls = ['none', ...controls];
|
|
19
19
|
}
|
|
20
|
-
const
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
};
|
|
34
|
-
}, []);
|
|
20
|
+
const isNoneOnly = controls.length === 1 && controls[0] === 'none';
|
|
21
|
+
const [wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme] = useSelect(select => {
|
|
22
|
+
var _settings$alignWide;
|
|
23
|
+
// If `isNoneOnly` is true, we'll be returning early because there is
|
|
24
|
+
// nothing to filter on an empty array. We won't need the info from
|
|
25
|
+
// the `useSelect` but we must call it anyway because Rules of Hooks.
|
|
26
|
+
// So the callback returns early to avoid block editor subscription.
|
|
27
|
+
if (isNoneOnly) {
|
|
28
|
+
return [false, false, false];
|
|
29
|
+
}
|
|
30
|
+
const settings = select(blockEditorStore).getSettings();
|
|
31
|
+
return [(_settings$alignWide = settings.alignWide) !== null && _settings$alignWide !== void 0 ? _settings$alignWide : false, settings.supportsLayout, settings.__unstableIsBlockBasedTheme];
|
|
32
|
+
}, [isNoneOnly]);
|
|
35
33
|
const layout = useLayout();
|
|
34
|
+
if (isNoneOnly) {
|
|
35
|
+
return EMPTY_ARRAY;
|
|
36
|
+
}
|
|
36
37
|
const layoutType = getLayoutType(layout?.type);
|
|
37
|
-
const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme);
|
|
38
38
|
if (themeSupportsLayout) {
|
|
39
|
-
const
|
|
40
|
-
|
|
41
|
-
}) => controls.includes(alignmentName));
|
|
39
|
+
const layoutAlignments = layoutType.getAlignments(layout, isBlockBasedTheme);
|
|
40
|
+
const alignments = layoutAlignments.filter(alignment => controls.includes(alignment.name));
|
|
42
41
|
// While we treat `none` as an alignment, we shouldn't return it if no
|
|
43
42
|
// other alignments exist.
|
|
44
43
|
if (alignments.length === 1 && alignments[0].name === 'none') {
|
|
@@ -51,20 +50,23 @@ export default function useAvailableAlignments(controls = DEFAULT_CONTROLS) {
|
|
|
51
50
|
if (layoutType.name !== 'default' && layoutType.name !== 'constrained') {
|
|
52
51
|
return EMPTY_ARRAY;
|
|
53
52
|
}
|
|
54
|
-
const {
|
|
55
|
-
alignments
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
53
|
+
const alignments = controls.filter(control => {
|
|
54
|
+
if (layout.alignments) {
|
|
55
|
+
return layout.alignments.includes(control);
|
|
56
|
+
}
|
|
57
|
+
if (!wideControlsEnabled && WIDE_CONTROLS.includes(control)) {
|
|
58
|
+
return false;
|
|
59
|
+
}
|
|
60
|
+
return DEFAULT_CONTROLS.includes(control);
|
|
61
|
+
}).map(name => ({
|
|
62
|
+
name
|
|
61
63
|
}));
|
|
62
64
|
|
|
63
65
|
// While we treat `none` as an alignment, we shouldn't return it if no
|
|
64
66
|
// other alignments exist.
|
|
65
|
-
if (
|
|
67
|
+
if (alignments.length === 1 && alignments[0].name === 'none') {
|
|
66
68
|
return EMPTY_ARRAY;
|
|
67
69
|
}
|
|
68
|
-
return
|
|
70
|
+
return alignments;
|
|
69
71
|
}
|
|
70
72
|
//# sourceMappingURL=use-available-alignments.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","wideControlsEnabled","themeSupportsLayout","isBlockBasedTheme","select","
|
|
1
|
+
{"version":3,"names":["useSelect","useLayout","store","blockEditorStore","getLayoutType","EMPTY_ARRAY","DEFAULT_CONTROLS","WIDE_CONTROLS","useAvailableAlignments","controls","includes","isNoneOnly","length","wideControlsEnabled","themeSupportsLayout","isBlockBasedTheme","select","_settings$alignWide","settings","getSettings","alignWide","supportsLayout","__unstableIsBlockBasedTheme","layout","layoutType","type","layoutAlignments","getAlignments","alignments","filter","alignment","name","control","map"],"sources":["@wordpress/block-editor/src/components/block-alignment-control/use-available-alignments.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useSelect } from '@wordpress/data';\n\n/**\n * Internal dependencies\n */\nimport { useLayout } from '../block-list/layout';\nimport { store as blockEditorStore } from '../../store';\nimport { getLayoutType } from '../../layouts';\n\nconst EMPTY_ARRAY = [];\nconst DEFAULT_CONTROLS = [ 'none', 'left', 'center', 'right', 'wide', 'full' ];\nconst WIDE_CONTROLS = [ 'wide', 'full' ];\n\nexport default function useAvailableAlignments( controls = DEFAULT_CONTROLS ) {\n\t// Always add the `none` option if not exists.\n\tif ( ! controls.includes( 'none' ) ) {\n\t\tcontrols = [ 'none', ...controls ];\n\t}\n\tconst isNoneOnly = controls.length === 1 && controls[ 0 ] === 'none';\n\n\tconst [ wideControlsEnabled, themeSupportsLayout, isBlockBasedTheme ] =\n\t\tuseSelect(\n\t\t\t( select ) => {\n\t\t\t\t// If `isNoneOnly` is true, we'll be returning early because there is\n\t\t\t\t// nothing to filter on an empty array. We won't need the info from\n\t\t\t\t// the `useSelect` but we must call it anyway because Rules of Hooks.\n\t\t\t\t// So the callback returns early to avoid block editor subscription.\n\t\t\t\tif ( isNoneOnly ) {\n\t\t\t\t\treturn [ false, false, false ];\n\t\t\t\t}\n\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\treturn [\n\t\t\t\t\tsettings.alignWide ?? false,\n\t\t\t\t\tsettings.supportsLayout,\n\t\t\t\t\tsettings.__unstableIsBlockBasedTheme,\n\t\t\t\t];\n\t\t\t},\n\t\t\t[ isNoneOnly ]\n\t\t);\n\tconst layout = useLayout();\n\n\tif ( isNoneOnly ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\tconst layoutType = getLayoutType( layout?.type );\n\n\tif ( themeSupportsLayout ) {\n\t\tconst layoutAlignments = layoutType.getAlignments(\n\t\t\tlayout,\n\t\t\tisBlockBasedTheme\n\t\t);\n\t\tconst alignments = layoutAlignments.filter( ( alignment ) =>\n\t\t\tcontrols.includes( alignment.name )\n\t\t);\n\t\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t\t// other alignments exist.\n\t\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\t\treturn EMPTY_ARRAY;\n\t\t}\n\t\treturn alignments;\n\t}\n\n\t// Starting here, it's the fallback for themes not supporting the layout config.\n\tif ( layoutType.name !== 'default' && layoutType.name !== 'constrained' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\tconst alignments = controls\n\t\t.filter( ( control ) => {\n\t\t\tif ( layout.alignments ) {\n\t\t\t\treturn layout.alignments.includes( control );\n\t\t\t}\n\n\t\t\tif ( ! wideControlsEnabled && WIDE_CONTROLS.includes( control ) ) {\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn DEFAULT_CONTROLS.includes( control );\n\t\t} )\n\t\t.map( ( name ) => ( { name } ) );\n\n\t// While we treat `none` as an alignment, we shouldn't return it if no\n\t// other alignments exist.\n\tif ( alignments.length === 1 && alignments[ 0 ].name === 'none' ) {\n\t\treturn EMPTY_ARRAY;\n\t}\n\n\treturn alignments;\n}\n"],"mappings":"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"}
|
|
@@ -22,8 +22,8 @@ import BlockInvalidWarning from './block-invalid-warning';
|
|
|
22
22
|
import BlockOutline from './block-outline';
|
|
23
23
|
import { store as blockEditorStore } from '../../store';
|
|
24
24
|
import { useLayout } from './layout';
|
|
25
|
-
import
|
|
26
|
-
const
|
|
25
|
+
import { useSettings } from '../use-settings';
|
|
26
|
+
const EMPTY_ARRAY = [];
|
|
27
27
|
|
|
28
28
|
// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.
|
|
29
29
|
const wrapperPropsCache = new WeakMap();
|
|
@@ -173,7 +173,7 @@ function BlockListBlock({
|
|
|
173
173
|
const parentLayout = useLayout() || {};
|
|
174
174
|
const defaultColors = useMobileGlobalStylesColors();
|
|
175
175
|
const globalStyle = useGlobalStyles();
|
|
176
|
-
const fontSizes =
|
|
176
|
+
const [fontSizes] = useSettings('typography.fontSizes');
|
|
177
177
|
const onRemove = useCallback(() => removeBlock(clientId), [clientId, removeBlock]);
|
|
178
178
|
const onFocus = useCallback(() => {
|
|
179
179
|
if (!isSelected) {
|
|
@@ -197,7 +197,7 @@ function BlockListBlock({
|
|
|
197
197
|
|
|
198
198
|
// Inherited styles merged with block level styles.
|
|
199
199
|
const mergedStyle = useMemo(() => {
|
|
200
|
-
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes);
|
|
200
|
+
return getMergedGlobalStyles(baseGlobalStyles, globalStyle, wrapperProps.style, attributes, defaultColors, name, fontSizes || EMPTY_ARRAY);
|
|
201
201
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
202
202
|
}, [
|
|
203
203
|
// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Pressable","View","useCallback","useMemo","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useSetting","emptyArray","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","createElement","accessibilityRole","disabled","onPress","style","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport useSetting from '../use-setting';\n\nconst emptyArray = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst fontSizes = useSetting( 'typography.fontSizes' ) || emptyArray;\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Pressable","View","useCallback","useMemo","useState","GlobalStylesContext","getMergedGlobalStyles","useMobileGlobalStylesColors","useGlobalStyles","__experimentalGetAccessibleBlockLabel","getAccessibleBlockLabel","getBlockType","getDefaultBlockName","isUnmodifiedBlock","isUnmodifiedDefaultBlock","switchToBlockType","useDispatch","useSelect","withDispatch","withSelect","compose","ifCondition","pure","BlockEdit","BlockDraggable","BlockInvalidWarning","BlockOutline","store","blockEditorStore","useLayout","useSettings","EMPTY_ARRAY","wrapperPropsCache","WeakMap","emptyObj","getWrapperProps","value","getWrapperPropsFunction","cachedValue","get","wrapperProps","set","BlockWrapper","accessibilityLabel","blockCategory","children","clientId","draggingClientId","draggingEnabled","hasInnerBlocks","isDescendentBlockSelected","isRootList","isSelected","isTouchable","marginHorizontal","marginVertical","name","onFocus","blockWrapperStyles","flex","blockWrapperStyle","accessible","createElement","accessibilityRole","disabled","onPress","style","enabled","testID","BlockListBlock","attributes","blockWidth","blockWrapperWidth","canRemove","contentStyle","isLocked","isSelectionEnabled","isStackedHorizontally","isValid","onDeleteBlock","onInsertBlocksAfter","onMerge","onReplace","parentBlockAlignment","parentWidth","rootClientId","setAttributes","toggleSelection","baseGlobalStyles","blockType","isDescendantOfParentSelected","isParentSelected","order","select","getBlockCount","getBlockHierarchyRootClientId","getBlockIndex","getBlockParents","getSelectedBlockClientId","getSettings","hasSelectedInnerBlock","currentBlockType","currentBlockCategory","category","blockOrder","descendentBlockSelected","selectedBlockClientId","parents","parentSelected","selectedParents","descendantOfParentSelected","includes","blockHasInnerBlocks","isDraggingEnabled","currentDraggingClientId","globalStylesBaseStyles","__experimentalGlobalStylesBaseStyles","removeBlock","selectBlock","initialBlockWidth","setBlockWidth","parentLayout","defaultColors","globalStyle","fontSizes","onRemove","onLayout","nativeEvent","layoutWidth","Math","floor","layout","width","getEditWrapperProps","mergedStyle","JSON","stringify","Object","fromEntries","entries","filter","key","BLOCK_STYLE_ATTRIBUTES","isFocused","Provider","insertBlocksAfter","undefined","mergeBlocks","__unstableParentLayout","keys","length","applyWithSelect","isBlockSelected","getBlockMode","getTemplateLock","__unstableGetBlockWithoutInnerBlocks","canRemoveBlock","canMoveBlock","block","templateLock","canMove","mode","applyWithDispatch","dispatch","ownProps","registry","updateBlockAttributes","insertBlocks","replaceBlocks","__unstableMarkLastChangeAsPersistent","moveBlocksToPosition","newAttributes","getMultiSelectedBlockClientIds","multiSelectedBlockClientIds","clientIds","onInsertBlocks","blocks","index","forward","getPreviousBlockClientId","getNextBlockClientId","getBlock","getBlockAttributes","getBlockName","getBlockOrder","getBlockRootClientId","canInsertBlockType","moveFirstItemUp","_clientId","changeSelection","targetRootClientId","firstClientId","batch","replacement","nextRootClientId","rootAttributes","previousRootAttributes","every","nextBlockClientId","previousBlockClientId","previousRootClientId","indexToSelect","initialPosition","selectionEnabled"],"sources":["@wordpress/block-editor/src/components/block-list/block.native.js"],"sourcesContent":["/**\n * External dependencies\n */\nimport { Pressable, View } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\nimport {\n\tGlobalStylesContext,\n\tgetMergedGlobalStyles,\n\tuseMobileGlobalStylesColors,\n\tuseGlobalStyles,\n} from '@wordpress/components';\nimport {\n\t__experimentalGetAccessibleBlockLabel as getAccessibleBlockLabel,\n\tgetBlockType,\n\tgetDefaultBlockName,\n\tisUnmodifiedBlock,\n\tisUnmodifiedDefaultBlock,\n\tswitchToBlockType,\n} from '@wordpress/blocks';\nimport {\n\tuseDispatch,\n\tuseSelect,\n\twithDispatch,\n\twithSelect,\n} from '@wordpress/data';\nimport { compose, ifCondition, pure } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport BlockEdit from '../block-edit';\nimport BlockDraggable from '../block-draggable';\nimport BlockInvalidWarning from './block-invalid-warning';\nimport BlockOutline from './block-outline';\nimport { store as blockEditorStore } from '../../store';\nimport { useLayout } from './layout';\nimport { useSettings } from '../use-settings';\n\nconst EMPTY_ARRAY = [];\n\n// Helper function to memoize the wrapperProps since getEditWrapperProps always returns a new reference.\nconst wrapperPropsCache = new WeakMap();\nconst emptyObj = {};\nfunction getWrapperProps( value, getWrapperPropsFunction ) {\n\tif ( ! getWrapperPropsFunction ) {\n\t\treturn emptyObj;\n\t}\n\tconst cachedValue = wrapperPropsCache.get( value );\n\tif ( ! cachedValue ) {\n\t\tconst wrapperProps = getWrapperPropsFunction( value );\n\t\twrapperPropsCache.set( value, wrapperProps );\n\t\treturn wrapperProps;\n\t}\n\treturn cachedValue;\n}\n\nfunction BlockWrapper( {\n\taccessibilityLabel,\n\tblockCategory,\n\tchildren,\n\tclientId,\n\tdraggingClientId,\n\tdraggingEnabled,\n\thasInnerBlocks,\n\tisDescendentBlockSelected,\n\tisRootList,\n\tisSelected,\n\tisTouchable,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonFocus,\n} ) {\n\tconst blockWrapperStyles = { flex: 1 };\n\tconst blockWrapperStyle = [\n\t\tblockWrapperStyles,\n\t\t{\n\t\t\tmarginVertical,\n\t\t\tmarginHorizontal,\n\t\t},\n\t];\n\tconst accessible = ! ( isSelected || isDescendentBlockSelected );\n\n\treturn (\n\t\t<Pressable\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\taccessibilityRole=\"button\"\n\t\t\taccessible={ accessible }\n\t\t\tdisabled={ ! isTouchable }\n\t\t\tonPress={ onFocus }\n\t\t\tstyle={ blockWrapperStyle }\n\t\t>\n\t\t\t<BlockOutline\n\t\t\t\tblockCategory={ blockCategory }\n\t\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\t\tisRootList={ isRootList }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\tname={ name }\n\t\t\t/>\n\t\t\t<BlockDraggable\n\t\t\t\tclientId={ clientId }\n\t\t\t\tdraggingClientId={ draggingClientId }\n\t\t\t\tenabled={ draggingEnabled }\n\t\t\t\ttestID=\"draggable-trigger-content\"\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</BlockDraggable>\n\t\t</Pressable>\n\t);\n}\n\nfunction BlockListBlock( {\n\tattributes,\n\tblockWidth: blockWrapperWidth,\n\tcanRemove,\n\tclientId,\n\tcontentStyle,\n\tisLocked,\n\tisSelected,\n\tisSelectionEnabled,\n\tisStackedHorizontally,\n\tisValid,\n\tmarginHorizontal,\n\tmarginVertical,\n\tname,\n\tonDeleteBlock,\n\tonInsertBlocksAfter,\n\tonMerge,\n\tonReplace,\n\tparentBlockAlignment,\n\tparentWidth,\n\trootClientId,\n\tsetAttributes,\n\ttoggleSelection,\n} ) {\n\tconst {\n\t\tbaseGlobalStyles,\n\t\tblockCategory,\n\t\tblockType,\n\t\tdraggingClientId,\n\t\tdraggingEnabled,\n\t\thasInnerBlocks,\n\t\tisDescendantOfParentSelected,\n\t\tisDescendentBlockSelected,\n\t\tisParentSelected,\n\t\torder,\n\t} = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockCount,\n\t\t\t\tgetBlockHierarchyRootClientId,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockParents,\n\t\t\t\tgetSelectedBlockClientId,\n\t\t\t\tgetSettings,\n\t\t\t\thasSelectedInnerBlock,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst currentBlockType = getBlockType( name || 'core/missing' );\n\t\t\tconst currentBlockCategory = currentBlockType?.category;\n\t\t\tconst blockOrder = getBlockIndex( clientId );\n\t\t\tconst descendentBlockSelected = hasSelectedInnerBlock(\n\t\t\t\tclientId,\n\t\t\t\ttrue\n\t\t\t);\n\t\t\tconst selectedBlockClientId = getSelectedBlockClientId();\n\n\t\t\tconst parents = getBlockParents( clientId, true );\n\t\t\tconst parentSelected =\n\t\t\t\t// Set false as a default value to prevent re-render when it's changed from null to false.\n\t\t\t\t( selectedBlockClientId || false ) &&\n\t\t\t\tselectedBlockClientId === rootClientId;\n\n\t\t\tconst selectedParents = clientId ? parents : [];\n\t\t\tconst descendantOfParentSelected =\n\t\t\t\tselectedParents.includes( rootClientId );\n\t\t\tconst blockHasInnerBlocks = getBlockCount( clientId ) > 0;\n\n\t\t\t// For blocks with inner blocks, we only enable the dragging in the nested\n\t\t\t// blocks if any of them are selected. This way we prevent the long-press\n\t\t\t// gesture from being disabled for elements within the block UI.\n\t\t\tconst isDraggingEnabled =\n\t\t\t\t! blockHasInnerBlocks ||\n\t\t\t\tisSelected ||\n\t\t\t\t! descendentBlockSelected;\n\t\t\t// Dragging nested blocks is not supported yet. For this reason, the block to be dragged\n\t\t\t// will be the top in the hierarchy.\n\t\t\tconst currentDraggingClientId =\n\t\t\t\tgetBlockHierarchyRootClientId( clientId );\n\n\t\t\tconst globalStylesBaseStyles =\n\t\t\t\tgetSettings()?.__experimentalGlobalStylesBaseStyles;\n\n\t\t\treturn {\n\t\t\t\tbaseGlobalStyles: globalStylesBaseStyles,\n\t\t\t\tblockCategory: currentBlockCategory,\n\t\t\t\tblockType: currentBlockType,\n\t\t\t\tdraggingClientId: currentDraggingClientId,\n\t\t\t\tdraggingEnabled: isDraggingEnabled,\n\t\t\t\thasInnerBlocks: blockHasInnerBlocks,\n\t\t\t\tisDescendantOfParentSelected: descendantOfParentSelected,\n\t\t\t\tisDescendentBlockSelected: descendentBlockSelected,\n\t\t\t\tisParentSelected: parentSelected,\n\t\t\t\torder: blockOrder,\n\t\t\t};\n\t\t},\n\t\t[ clientId, isSelected, name, rootClientId ]\n\t);\n\tconst { removeBlock, selectBlock } = useDispatch( blockEditorStore );\n\tconst initialBlockWidth = blockWrapperWidth - 2 * marginHorizontal;\n\tconst [ blockWidth, setBlockWidth ] = useState( initialBlockWidth );\n\tconst parentLayout = useLayout() || {};\n\tconst defaultColors = useMobileGlobalStylesColors();\n\tconst globalStyle = useGlobalStyles();\n\tconst [ fontSizes ] = useSettings( 'typography.fontSizes' );\n\n\tconst onRemove = useCallback(\n\t\t() => removeBlock( clientId ),\n\t\t[ clientId, removeBlock ]\n\t);\n\tconst onFocus = useCallback( () => {\n\t\tif ( ! isSelected ) {\n\t\t\tselectBlock( clientId );\n\t\t}\n\t}, [ selectBlock, clientId, isSelected ] );\n\n\tconst onLayout = useCallback(\n\t\t( { nativeEvent } ) => {\n\t\t\tconst layoutWidth = Math.floor( nativeEvent.layout.width );\n\n\t\t\tif ( ! blockWidth || ! layoutWidth ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( blockWidth !== layoutWidth ) {\n\t\t\t\tsetBlockWidth( layoutWidth );\n\t\t\t}\n\t\t},\n\t\t[ blockWidth, setBlockWidth ]\n\t);\n\n\t// Block level styles.\n\tconst wrapperProps = getWrapperProps(\n\t\tattributes,\n\t\tblockType.getEditWrapperProps\n\t);\n\n\t// Inherited styles merged with block level styles.\n\tconst mergedStyle = useMemo( () => {\n\t\treturn getMergedGlobalStyles(\n\t\t\tbaseGlobalStyles,\n\t\t\tglobalStyle,\n\t\t\twrapperProps.style,\n\t\t\tattributes,\n\t\t\tdefaultColors,\n\t\t\tname,\n\t\t\tfontSizes || EMPTY_ARRAY\n\t\t);\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [\n\t\t// It is crucial to keep the dependencies array minimal to prevent unnecessary calls that could negatively impact performance.\n\t\t// JSON.stringify is used for the following purposes:\n\t\t// 1. To create a single, comparable value from the globalStyle, wrapperProps.style, and attributes objects. This allows useMemo to\n\t\t// efficiently determine if a change has occurred in any of these objects.\n\t\t// 2. To filter the attributes object, ensuring that only the relevant attributes (included in\n\t\t// GlobalStylesContext.BLOCK_STYLE_ATTRIBUTES) are considered as dependencies. This reduces the likelihood of\n\t\t// unnecessary useMemo calls when other, unrelated attributes change.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( globalStyle ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify( wrapperProps.style ),\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t\tJSON.stringify(\n\t\t\tObject.fromEntries(\n\t\t\t\tObject.entries( attributes ?? {} ).filter( ( [ key ] ) =>\n\t\t\t\t\tGlobalStylesContext.BLOCK_STYLE_ATTRIBUTES.includes( key )\n\t\t\t\t)\n\t\t\t)\n\t\t),\n\t] );\n\n\tconst isFocused = isSelected || isDescendentBlockSelected;\n\tconst isTouchable =\n\t\tisSelected ||\n\t\tisDescendantOfParentSelected ||\n\t\tisParentSelected ||\n\t\t! rootClientId;\n\n\tconst accessibilityLabel = getAccessibleBlockLabel(\n\t\tblockType,\n\t\tattributes,\n\t\torder + 1\n\t);\n\n\treturn (\n\t\t<BlockWrapper\n\t\t\taccessibilityLabel={ accessibilityLabel }\n\t\t\tblockCategory={ blockCategory }\n\t\t\tclientId={ clientId }\n\t\t\tdraggingClientId={ draggingClientId }\n\t\t\tdraggingEnabled={ draggingEnabled }\n\t\t\thasInnerBlocks={ hasInnerBlocks }\n\t\t\tisDescendentBlockSelected={ isDescendentBlockSelected }\n\t\t\tisFocused={ isFocused }\n\t\t\tisRootList={ ! rootClientId }\n\t\t\tisSelected={ isSelected }\n\t\t\tisStackedHorizontally={ isStackedHorizontally }\n\t\t\tisTouchable={ isTouchable }\n\t\t\tmarginHorizontal={ marginHorizontal }\n\t\t\tmarginVertical={ marginVertical }\n\t\t\tname={ name }\n\t\t\tonFocus={ onFocus }\n\t\t>\n\t\t\t{ () =>\n\t\t\t\t! isValid ? (\n\t\t\t\t\t<BlockInvalidWarning clientId={ clientId } />\n\t\t\t\t) : (\n\t\t\t\t\t<GlobalStylesContext.Provider value={ mergedStyle }>\n\t\t\t\t\t\t<BlockEdit\n\t\t\t\t\t\t\tattributes={ attributes }\n\t\t\t\t\t\t\tblockWidth={ blockWidth }\n\t\t\t\t\t\t\tclientId={ clientId }\n\t\t\t\t\t\t\tcontentStyle={ contentStyle }\n\t\t\t\t\t\t\tinsertBlocksAfter={\n\t\t\t\t\t\t\t\tisLocked ? undefined : onInsertBlocksAfter\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\t\tisSelectionEnabled={ isSelectionEnabled }\n\t\t\t\t\t\t\tmergeBlocks={ canRemove ? onMerge : undefined }\n\t\t\t\t\t\t\tname={ name }\n\t\t\t\t\t\t\tonDeleteBlock={ onDeleteBlock }\n\t\t\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\t\t\tonRemove={ canRemove ? onRemove : undefined }\n\t\t\t\t\t\t\tonReplace={ canRemove ? onReplace : undefined }\n\t\t\t\t\t\t\tparentBlockAlignment={ parentBlockAlignment }\n\t\t\t\t\t\t\tparentWidth={ parentWidth }\n\t\t\t\t\t\t\tsetAttributes={ setAttributes }\n\t\t\t\t\t\t\tstyle={ mergedStyle }\n\t\t\t\t\t\t\ttoggleSelection={ toggleSelection }\n\t\t\t\t\t\t\t__unstableParentLayout={\n\t\t\t\t\t\t\t\tObject.keys( parentLayout ).length\n\t\t\t\t\t\t\t\t\t? parentLayout\n\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<View onLayout={ onLayout } />\n\t\t\t\t\t</GlobalStylesContext.Provider>\n\t\t\t\t)\n\t\t\t}\n\t\t</BlockWrapper>\n\t);\n}\n\nconst applyWithSelect = withSelect( ( select, { clientId, rootClientId } ) => {\n\tconst {\n\t\tisBlockSelected,\n\t\tgetBlockMode,\n\t\tisSelectionEnabled,\n\t\tgetTemplateLock,\n\t\t__unstableGetBlockWithoutInnerBlocks,\n\t\tcanRemoveBlock,\n\t\tcanMoveBlock,\n\t} = select( blockEditorStore );\n\tconst block = __unstableGetBlockWithoutInnerBlocks( clientId );\n\tconst isSelected = isBlockSelected( clientId );\n\tconst templateLock = getTemplateLock( rootClientId );\n\tconst canRemove = canRemoveBlock( clientId, rootClientId );\n\tconst canMove = canMoveBlock( clientId, rootClientId );\n\n\t// The fallback to `{}` is a temporary fix.\n\t// This function should never be called when a block is not present in\n\t// the state. It happens now because the order in withSelect rendering\n\t// is not correct.\n\tconst { name, attributes, isValid } = block || {};\n\n\t// Do not add new properties here, use `useSelect` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tmode: getBlockMode( clientId ),\n\t\tisSelectionEnabled: isSelectionEnabled(),\n\t\tisLocked: !! templateLock,\n\t\tcanRemove,\n\t\tcanMove,\n\t\t// Users of the editor.BlockListBlock filter used to be able to\n\t\t// access the block prop.\n\t\t// Ideally these blocks would rely on the clientId prop only.\n\t\t// This is kept for backward compatibility reasons.\n\t\tblock,\n\t\tname,\n\t\tattributes,\n\t\tisValid,\n\t\tisSelected,\n\t};\n} );\n\nconst applyWithDispatch = withDispatch( ( dispatch, ownProps, registry ) => {\n\tconst {\n\t\tupdateBlockAttributes,\n\t\tinsertBlocks,\n\t\tmergeBlocks,\n\t\treplaceBlocks,\n\t\ttoggleSelection,\n\t\t__unstableMarkLastChangeAsPersistent,\n\t\tmoveBlocksToPosition,\n\t\tremoveBlock,\n\t} = dispatch( blockEditorStore );\n\n\t// Do not add new properties here, use `useDispatch` instead to avoid\n\t// leaking new props to the public API (editor.BlockListBlock filter).\n\treturn {\n\t\tsetAttributes( newAttributes ) {\n\t\t\tconst { getMultiSelectedBlockClientIds } =\n\t\t\t\tregistry.select( blockEditorStore );\n\t\t\tconst multiSelectedBlockClientIds =\n\t\t\t\tgetMultiSelectedBlockClientIds();\n\t\t\tconst { clientId } = ownProps;\n\t\t\tconst clientIds = multiSelectedBlockClientIds.length\n\t\t\t\t? multiSelectedBlockClientIds\n\t\t\t\t: [ clientId ];\n\n\t\t\tupdateBlockAttributes( clientIds, newAttributes );\n\t\t},\n\t\tonInsertBlocks( blocks, index ) {\n\t\t\tconst { rootClientId } = ownProps;\n\t\t\tinsertBlocks( blocks, index, rootClientId );\n\t\t},\n\t\tonInsertBlocksAfter( blocks ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst { getBlockIndex } = registry.select( blockEditorStore );\n\t\t\tconst index = getBlockIndex( clientId );\n\t\t\tinsertBlocks( blocks, index + 1, rootClientId );\n\t\t},\n\t\tonMerge( forward ) {\n\t\t\tconst { clientId, rootClientId } = ownProps;\n\t\t\tconst {\n\t\t\t\tgetPreviousBlockClientId,\n\t\t\t\tgetNextBlockClientId,\n\t\t\t\tgetBlock,\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetBlockOrder,\n\t\t\t\tgetBlockIndex,\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tcanInsertBlockType,\n\t\t\t} = registry.select( blockEditorStore );\n\n\t\t\t/**\n\t\t\t * Moves the block with clientId up one level. If the block type\n\t\t\t * cannot be inserted at the new location, it will be attempted to\n\t\t\t * convert to the default block type.\n\t\t\t *\n\t\t\t * @param {string} _clientId The block to move.\n\t\t\t * @param {boolean} changeSelection Whether to change the selection\n\t\t\t * to the moved block.\n\t\t\t */\n\t\t\tfunction moveFirstItemUp( _clientId, changeSelection = true ) {\n\t\t\t\tconst targetRootClientId = getBlockRootClientId( _clientId );\n\t\t\t\tconst blockOrder = getBlockOrder( _clientId );\n\t\t\t\tconst [ firstClientId ] = blockOrder;\n\n\t\t\t\tif (\n\t\t\t\t\tblockOrder.length === 1 &&\n\t\t\t\t\tisUnmodifiedBlock( getBlock( firstClientId ) )\n\t\t\t\t) {\n\t\t\t\t\tremoveBlock( _clientId );\n\t\t\t\t} else {\n\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tcanInsertBlockType(\n\t\t\t\t\t\t\t\tgetBlockName( firstClientId ),\n\t\t\t\t\t\t\t\ttargetRootClientId\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t[ firstClientId ],\n\t\t\t\t\t\t\t\t_clientId,\n\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\tgetBlockIndex( _clientId )\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tconst replacement = switchToBlockType(\n\t\t\t\t\t\t\t\tgetBlock( firstClientId ),\n\t\t\t\t\t\t\t\tgetDefaultBlockName()\n\t\t\t\t\t\t\t);\n\n\t\t\t\t\t\t\tif ( replacement && replacement.length ) {\n\t\t\t\t\t\t\t\tinsertBlocks(\n\t\t\t\t\t\t\t\t\treplacement,\n\t\t\t\t\t\t\t\t\tgetBlockIndex( _clientId ),\n\t\t\t\t\t\t\t\t\ttargetRootClientId,\n\t\t\t\t\t\t\t\t\tchangeSelection\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( firstClientId, false );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t! getBlockOrder( _clientId ).length &&\n\t\t\t\t\t\t\tisUnmodifiedBlock( getBlock( _clientId ) )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tremoveBlock( _clientId, false );\n\t\t\t\t\t\t}\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// For `Delete` or forward merge, we should do the exact same thing\n\t\t\t// as `Backspace`, but from the other block.\n\t\t\tif ( forward ) {\n\t\t\t\tif ( rootClientId ) {\n\t\t\t\t\tconst nextRootClientId =\n\t\t\t\t\t\tgetNextBlockClientId( rootClientId );\n\n\t\t\t\t\tif ( nextRootClientId ) {\n\t\t\t\t\t\t// If there is a block that follows with the same parent\n\t\t\t\t\t\t// block name and the same attributes, merge the inner\n\t\t\t\t\t\t// blocks.\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( nextRootClientId )\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\t\tgetBlockAttributes( nextRootClientId );\n\n\t\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\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\tregistry.batch( () => {\n\t\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\t\tgetBlockOrder( nextRootClientId ),\n\t\t\t\t\t\t\t\t\t\tnextRootClientId,\n\t\t\t\t\t\t\t\t\t\trootClientId\n\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\tremoveBlock( nextRootClientId, false );\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tmergeBlocks( rootClientId, nextRootClientId );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tconst nextBlockClientId = getNextBlockClientId( clientId );\n\n\t\t\t\tif ( ! nextBlockClientId ) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif ( getBlockOrder( nextBlockClientId ).length ) {\n\t\t\t\t\tmoveFirstItemUp( nextBlockClientId, false );\n\t\t\t\t} else {\n\t\t\t\t\tmergeBlocks( clientId, nextBlockClientId );\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst previousBlockClientId =\n\t\t\t\t\tgetPreviousBlockClientId( clientId );\n\n\t\t\t\tif ( previousBlockClientId ) {\n\t\t\t\t\tmergeBlocks( previousBlockClientId, clientId );\n\t\t\t\t} else if ( rootClientId ) {\n\t\t\t\t\tconst previousRootClientId =\n\t\t\t\t\t\tgetPreviousBlockClientId( rootClientId );\n\n\t\t\t\t\t// If there is a preceding block with the same parent block\n\t\t\t\t\t// name and the same attributes, merge the inner blocks.\n\t\t\t\t\tif (\n\t\t\t\t\t\tpreviousRootClientId &&\n\t\t\t\t\t\tgetBlockName( rootClientId ) ===\n\t\t\t\t\t\t\tgetBlockName( previousRootClientId )\n\t\t\t\t\t) {\n\t\t\t\t\t\tconst rootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( rootClientId );\n\t\t\t\t\t\tconst previousRootAttributes =\n\t\t\t\t\t\t\tgetBlockAttributes( previousRootClientId );\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tObject.keys( rootAttributes ).every(\n\t\t\t\t\t\t\t\t( key ) =>\n\t\t\t\t\t\t\t\t\trootAttributes[ key ] ===\n\t\t\t\t\t\t\t\t\tpreviousRootAttributes[ key ]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tregistry.batch( () => {\n\t\t\t\t\t\t\t\tmoveBlocksToPosition(\n\t\t\t\t\t\t\t\t\tgetBlockOrder( rootClientId ),\n\t\t\t\t\t\t\t\t\trootClientId,\n\t\t\t\t\t\t\t\t\tpreviousRootClientId\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tremoveBlock( rootClientId, false );\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tmoveFirstItemUp( rootClientId );\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tonReplace( blocks, indexToSelect, initialPosition ) {\n\t\t\tif (\n\t\t\t\tblocks.length &&\n\t\t\t\t! isUnmodifiedDefaultBlock( blocks[ blocks.length - 1 ] )\n\t\t\t) {\n\t\t\t\t__unstableMarkLastChangeAsPersistent();\n\t\t\t}\n\t\t\treplaceBlocks(\n\t\t\t\t[ ownProps.clientId ],\n\t\t\t\tblocks,\n\t\t\t\tindexToSelect,\n\t\t\t\tinitialPosition\n\t\t\t);\n\t\t},\n\t\ttoggleSelection( selectionEnabled ) {\n\t\t\ttoggleSelection( selectionEnabled );\n\t\t},\n\t};\n} );\n\nexport default compose(\n\tpure,\n\tapplyWithSelect,\n\tapplyWithDispatch,\n\t// Block is sometimes not mounted at the right time, causing it be undefined\n\t// see issue for more info\n\t// https://github.com/WordPress/gutenberg/issues/17013\n\tifCondition( ( { block } ) => !! block )\n)( BlockListBlock );\n"],"mappings":"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"}
|
|
@@ -8,7 +8,7 @@ import { createContext, useContext } from '@wordpress/element';
|
|
|
8
8
|
* Internal dependencies
|
|
9
9
|
*/
|
|
10
10
|
import { getLayoutType } from '../../layouts';
|
|
11
|
-
import
|
|
11
|
+
import { useSettings } from '../use-settings';
|
|
12
12
|
export const defaultLayout = {
|
|
13
13
|
type: 'default'
|
|
14
14
|
};
|
|
@@ -31,7 +31,7 @@ export function LayoutStyle({
|
|
|
31
31
|
...props
|
|
32
32
|
}) {
|
|
33
33
|
const layoutType = getLayoutType(layout.type);
|
|
34
|
-
const blockGapSupport =
|
|
34
|
+
const [blockGapSupport] = useSettings('spacing.blockGap');
|
|
35
35
|
const hasBlockGapSupport = blockGapSupport !== null;
|
|
36
36
|
if (layoutType) {
|
|
37
37
|
if (css) {
|