@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","_data","_element","_compose","_i18n","_icons","_useSetting","_interopRequireDefault","_store","_utils","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","getPresetValueFromCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","useSelect","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","useState","undefined","isValueSpacingPreset","previousValue","usePrevious","units","useCustomUnits","availableUnits","useSetting","currentValue","showCustomValueInSelectList","name","sprintf","__","slug","size","getSliderValueFromPreset","getCustomValueFromPreset","selectedUnit","useMemo","parseQuantityAndUnitFromRawValue","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","ALL_SIDES","includes","LABELS","typeLabel","toLowerCase","ariaLabel","trim","_react","createElement","__experimentalHStack","className","Icon","Fragment","__experimentalUnitControl","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","RangeControl","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","CustomSelectControl","find","option","selection","selectedItem","__nextUnconstrainedWidth","Button","settings","onClick","isPressed","isSmall","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport useSetting from '../../use-setting';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: useSetting( 'spacing.units' ) || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAUA,IAAAC,KAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,KAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAL,OAAA;AAKA,IAAAM,WAAA,GAAAC,sBAAA,CAAAP,OAAA;AACA,IAAAQ,MAAA,GAAAR,OAAA;AACA,IAAAS,MAAA,GAAAT,OAAA;AAxBA;AACA;AACA;;AAiBA;AACA;AACA;;AAYA,MAAMU,qBAAqB,GAAG;EAC7BC,EAAE,EAAE;IAAEC,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1B,GAAG,EAAE;IAAED,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BC,EAAE,EAAE;IAAEF,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BE,EAAE,EAAE;IAAEH,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BG,EAAE,EAAE;IAAEJ,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC3BI,EAAE,EAAE;IAAEL,GAAG,EAAE,EAAE;IAAEC,KAAK,EAAE;EAAI,CAAC;EAC3BK,GAAG,EAAE;IAAEN,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BM,GAAG,EAAE;IAAEP,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BO,GAAG,EAAE;IAAER,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BQ,GAAG,EAAE;IAAET,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BS,GAAG,EAAE;IAAEV,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BU,GAAG,EAAE;IAAEX,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BW,EAAE,EAAE;IAAEZ,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BY,GAAG,EAAE;IAAEb,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Ba,GAAG,EAAE;IAAEd,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Bc,GAAG,EAAE;IAAEf,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3Be,EAAE,EAAE;IAAEhB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC1BgB,GAAG,EAAE;IAAEjB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BiB,GAAG,EAAE;IAAElB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BkB,GAAG,EAAE;IAAEnB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC3BmB,IAAI,EAAE;IAAEpB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC5BoB,KAAK,EAAE;IAAErB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BqB,KAAK,EAAE;IAAEtB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BsB,KAAK,EAAE;IAAEvB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7BuB,IAAI,EAAE;IAAExB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC5BwB,KAAK,EAAE;IAAEzB,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7ByB,KAAK,EAAE;IAAE1B,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE,CAAC;EAC7B0B,KAAK,EAAE;IAAE3B,GAAG,EAAE,GAAG;IAAEC,KAAK,EAAE;EAAE;AAC7B,CAAC;AAEc,SAAS2B,mBAAmBA,CAAE;EAC5CC,IAAI;EACJC,OAAO,GAAG,KAAK;EACfC,kBAAkB;EAClBC,QAAQ;EACRC,UAAU;EACVC,WAAW;EACXC,eAAe,GAAG,IAAI;EACtBC,IAAI;EACJC,YAAY;EACZC,IAAI;EACJC;AACD,CAAC,EAAG;EAAA,IAAAC,qBAAA,EAAAC,sBAAA;EACH;EACAF,KAAK,GAAG,IAAAG,oCAA6B,EAAEH,KAAK,EAAEF,YAAa,CAAC;EAE5D,IAAIM,eAAe,GAAGN,YAAY;EAClC,MAAMO,gBAAgB,GAAGP,YAAY,CAACQ,MAAM,IAAI,CAAC;EAEjD,MAAMC,yBAAyB,GAAG,IAAAC,eAAS,EAAIC,MAAM,IAAM;IAC1D,MAAMC,cAAc,GAAGD,MAAM,CAAEE,YAAiB,CAAC,CAACC,WAAW,CAAC,CAAC;IAC/D,OAAOF,cAAc,EAAEH,yBAAyB;EACjD,CAAE,CAAC;EAEH,MAAM,CAAEM,sBAAsB,EAAEC,yBAAyB,CAAE,GAAG,IAAAC,iBAAQ,EACrE,CAAER,yBAAyB,IAC1BP,KAAK,KAAKgB,SAAS,IACnB,CAAE,IAAAC,2BAAoB,EAAEjB,KAAM,CAChC,CAAC;EAED,MAAMkB,aAAa,GAAG,IAAAC,oBAAW,EAAEnB,KAAM,CAAC;EAC1C,IACC,CAAC,CAAEA,KAAK,IACRkB,aAAa,KAAKlB,KAAK,IACvB,CAAE,IAAAiB,2BAAoB,EAAEjB,KAAM,CAAC,IAC/Ba,sBAAsB,KAAK,IAAI,EAC9B;IACDC,yBAAyB,CAAE,IAAK,CAAC;EAClC;EAEA,MAAMM,KAAK,GAAG,IAAAC,wCAAc,EAAE;IAC7BC,cAAc,EAAE,IAAAC,mBAAU,EAAE,eAAgB,CAAC,IAAI,CAAE,IAAI,EAAE,IAAI,EAAE,KAAK;EACrE,CAAE,CAAC;EAEH,IAAIC,YAAY,GAAG,IAAI;EAEvB,MAAMC,2BAA2B,GAChC,CAAEpB,gBAAgB,IAClB,CAAEQ,sBAAsB,IACxBb,KAAK,KAAKgB,SAAS,KACjB,CAAE,IAAAC,2BAAoB,EAAEjB,KAAM,CAAC,IAC9B,IAAAiB,2BAAoB,EAAEjB,KAAM,CAAC,IAAIT,OAAS,CAAE;EAEhD,IAAKkC,2BAA2B,EAAG;IAClCrB,eAAe,GAAG,CACjB,GAAGN,YAAY,EACf;MACC4B,IAAI,EAAE,CAAEnC,OAAO;MACZ;MACA,IAAAoC,aAAO,EAAE,IAAAC,QAAE,EAAE,aAAc,CAAC,EAAE5B,KAAM,CAAC,GACrC,IAAA4B,QAAE,EAAE,OAAQ,CAAC;MAChBC,IAAI,EAAE,QAAQ;MACdC,IAAI,EAAE9B;IACP,CAAC,CACD;IACDwB,YAAY,GAAGpB,eAAe,CAACE,MAAM,GAAG,CAAC;EAC1C,CAAC,MAAM,IAAK,CAAEf,OAAO,EAAG;IACvBiC,YAAY,GAAG,CAAEX,sBAAsB,GACpC,IAAAkB,+BAAwB,EAAE/B,KAAK,EAAEF,YAAa,CAAC,GAC/C,IAAAkC,+BAAwB,EAAEhC,KAAK,EAAEF,YAAa,CAAC;EACnD;EAEA,MAAMmC,YAAY,GACjB,IAAAC,gBAAO,EACN,MAAM,IAAAC,0DAAgC,EAAEX,YAAa,CAAC,EACtD,CAAEA,YAAY,CACf,CAAC,CAAE,CAAC,CAAE,IAAIJ,KAAK,CAAE,CAAC,CAAE,CAACpB,KAAK;EAE3B,MAAMoC,eAAe,GAAGA,CAAA,KAAM;IAC7B,IAAKpC,KAAK,KAAKgB,SAAS,EAAG;MAC1BvB,QAAQ,CAAE,GAAI,CAAC;IAChB;EACD,CAAC;EAED,MAAM4C,oBAAoB,GAAKC,QAAQ,IACtCtC,KAAK,KAAKgB,SAAS,GAAGA,SAAS,GAAGlB,YAAY,CAAEwC,QAAQ,CAAE,EAAEZ,IAAI;EAEjE,MAAMa,gBAAgB,GAAGC,UAAU,CAAEhB,YAAY,EAAE,EAAG,CAAC;EAEvD,MAAMiB,iBAAiB,GAAKC,OAAO,IAAM;IACxC,MAAMC,SAAS,GAAG,CAAEC,KAAK,CAAEJ,UAAU,CAAEE,OAAQ,CAAE,CAAC;IAClD,MAAMG,SAAS,GAAGF,SAAS,GAAGD,OAAO,GAAG1B,SAAS;IACjD,OAAO6B,SAAS;EACjB,CAAC;EAED,MAAMC,iBAAiB,GAAGA,CAAEJ,OAAO,EAAEK,WAAW,KAAM;IACrD,MAAMjB,IAAI,GAAGkB,QAAQ,CAAEN,OAAO,EAAE,EAAG,CAAC;IAEpC,IAAKK,WAAW,KAAK,YAAY,EAAG;MACnC,IAAKjB,IAAI,KAAK,CAAC,EAAG;QACjB,OAAOd,SAAS;MACjB;MACA,IAAKc,IAAI,KAAK,CAAC,EAAG;QACjB,OAAO,GAAG;MACX;IACD,CAAC,MAAM,IAAKA,IAAI,KAAK,CAAC,EAAG;MACxB,OAAO,GAAG;IACX;IACA,OAAQ,sBAAsBhC,YAAY,CAAE4C,OAAO,CAAE,EAAEb,IAAM,EAAC;EAC/D,CAAC;EAED,MAAMoB,6BAA6B,GAAKC,IAAI,IAAM;IACjDzD,QAAQ,CAAE,CAAEyD,IAAI,EAAEjB,YAAY,CAAE,CAACkB,IAAI,CAAE,EAAG,CAAE,CAAC;EAC9C,CAAC;EAED,MAAMC,cAAc,GAAG7D,OAAO,GAAG,IAAAqC,QAAE,EAAE,OAAQ,CAAC,GAAG,IAAI;EAErD,MAAMyB,OAAO,GAAGjD,eAAe,CAACkD,GAAG,CAAE,CAAExB,IAAI,EAAEyB,KAAK,MAAQ;IACzDC,GAAG,EAAED,KAAK;IACV7B,IAAI,EAAEI,IAAI,CAACJ;EACZ,CAAC,CAAG,CAAC;EAEL,MAAM+B,KAAK,GAAG3D,YAAY,CAACwD,GAAG,CAAE,CAAEI,SAAS,EAAEH,KAAK,MAAQ;IACzDvD,KAAK,EAAEuD,KAAK;IACZI,KAAK,EAAE3C;EACR,CAAC,CAAG,CAAC;EAEL,MAAM4C,SAAS,GACdC,gBAAS,CAACC,QAAQ,CAAEjE,IAAK,CAAC,IAAID,eAAe,GAAGmE,aAAM,CAAElE,IAAI,CAAE,GAAG,EAAE;EACpE,MAAMmE,SAAS,GAAGpE,eAAe,GAAGG,IAAI,EAAEkE,WAAW,CAAC,CAAC,GAAGlE,IAAI;EAE9D,MAAMmE,SAAS,GAAG,IAAAvC,aAAO;EACxB;EACA,IAAAC,QAAE,EAAE,WAAY,CAAC,EACjBgC,SAAS,EACTI,SACD,CAAC,CAACG,IAAI,CAAC,CAAC;EAER,OACC,IAAAC,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAA0H,oBAAM;IAACC,SAAS,EAAC;EAAgC,GAC/CjF,IAAI,IACL,IAAA8E,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAA4H,IAAI;IACJD,SAAS,EAAC,6BAA6B;IACvCjF,IAAI,EAAGA,IAAM;IACbwC,IAAI,EAAG;EAAI,CACX,CACD,EACCjB,sBAAsB,IACvB,IAAAuD,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAK,QAAA,QACC,IAAAL,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAA8H,yBAAW;IACX/E,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzBiF,OAAO,EAAGhF,WAAa;IACvBiF,MAAM,EAAGlF,UAAY;IACrBD,QAAQ,EAAKiD,OAAO,IACnBjD,QAAQ,CAAEgD,iBAAiB,CAAEC,OAAQ,CAAE,CACvC;IACD1C,KAAK,EAAGwB,YAAc;IACtBJ,KAAK,EAAGA,KAAO;IACfyD,GAAG,EAAGrF,kBAAoB;IAC1BsF,WAAW,EAAG1B,cAAgB;IAC9B2B,YAAY,EAAGxF,OAAS;IACxBoE,KAAK,EAAGO,SAAW;IACnBc,mBAAmB,EAAG,IAAM;IAC5BT,SAAS,EAAC,2CAA2C;IACrDzC,IAAI,EAAG;EAAoB,CAC3B,CAAC,EACF,IAAAsC,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAAqI,YAAY;IACZtF,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzBiF,OAAO,EAAGhF,WAAa;IACvBiF,MAAM,EAAGlF,UAAY;IACrBM,KAAK,EAAGuC,gBAAkB;IAC1BsC,GAAG,EAAG,CAAG;IACTpH,GAAG,GAAAwC,qBAAA,GAAG1C,qBAAqB,CAAE0E,YAAY,CAAE,EAAExE,GAAG,cAAAwC,qBAAA,cAAAA,qBAAA,GAAI,EAAI;IACxDiF,IAAI,GAAAhF,sBAAA,GACH3C,qBAAqB,CAAE0E,YAAY,CAAE,EAAEvE,KAAK,cAAAwC,sBAAA,cAAAA,sBAAA,GAAI,GAChD;IACDiF,cAAc,EAAG,KAAO;IACxB1F,QAAQ,EAAGwD,6BAA+B;IAC1CsB,SAAS,EAAC,2CAA2C;IACrDa,uBAAuB;EAAA,CACvB,CACA,CACF,EACC/E,gBAAgB,IAAI,CAAEQ,sBAAsB,IAC7C,IAAAuD,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAAqI,YAAY;IACZtF,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzB6E,SAAS,EAAC,sCAAsC;IAChDvE,KAAK,EAAGwB,YAAc;IACtB/B,QAAQ,EAAKiD,OAAO,IACnBjD,QAAQ,CAAEqD,iBAAiB,CAAEJ,OAAQ,CAAE,CACvC;IACD2C,WAAW,EAAKC,KAAK,IAAM;MAC1B;MACA;MACA,IAAKA,KAAK,EAAEC,WAAW,EAAEC,OAAO,GAAG,EAAE,EAAG;QACvCpD,eAAe,CAAC,CAAC;MAClB;IACD,CAAG;IACH+C,cAAc,EAAG,KAAO;IACxB,iBAAgB3D,YAAc;IAC9B,kBAAiB1B,YAAY,CAAE0B,YAAY,CAAE,EAAEE,IAAM;IACrD+D,oBAAoB,EAAGpD,oBAAsB;IAC7CwC,GAAG,EAAG,CAAG;IACTpH,GAAG,EAAGqC,YAAY,CAACQ,MAAM,GAAG,CAAG;IAC/BmD,KAAK,EAAGA,KAAO;IACfE,KAAK,EAAGO,SAAW;IACnBc,mBAAmB,EAAG,IAAM;IAC5BI,uBAAuB,EAAG,IAAM;IAChCT,OAAO,EAAGhF,WAAa;IACvBiF,MAAM,EAAGlF;EAAY,CACrB,CACD,EACC,CAAEW,gBAAgB,IAAI,CAAEQ,sBAAsB,IAC/C,IAAAuD,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAA8I,mBAAmB;IACnBnB,SAAS,EAAC,8CAA8C;IACxDvE,KAAK,EACJqD,OAAO,CAACsC,IAAI,CACTC,MAAM,IAAMA,MAAM,CAACpC,GAAG,KAAKhC,YAC9B,CAAC,IAAI,EAAE,CAAC;IACR;;IACD/B,QAAQ,EAAKoG,SAAS,IAAM;MAC3BpG,QAAQ,CACPqD,iBAAiB,CAChB+C,SAAS,CAACC,YAAY,CAACtC,GAAG,EAC1B,YACD,CACD,CAAC;IACF,CAAG;IACHH,OAAO,EAAGA,OAAS;IACnBM,KAAK,EAAGO,SAAW;IACnBc,mBAAmB,EAAG,IAAM;IAC5Be,wBAAwB,EAAG,IAAM;IACjCjE,IAAI,EAAG,kBAAoB;IAC3BnC,WAAW,EAAGA,WAAa;IAC3BD,UAAU,EAAGA,UAAY;IACzBiF,OAAO,EAAGhF,WAAa;IACvBiF,MAAM,EAAGlF;EAAY,CACrB,CACD,EACC,CAAEa,yBAAyB,IAC5B,IAAA6D,MAAA,CAAAC,aAAA,EAACzH,WAAA,CAAAoJ,MAAM;IACNrC,KAAK,EACJ9C,sBAAsB,GACnB,IAAAe,QAAE,EAAE,iBAAkB,CAAC,GACvB,IAAAA,QAAE,EAAE,iBAAkB,CACzB;IACDtC,IAAI,EAAG2G,eAAU;IACjBC,OAAO,EAAGA,CAAA,KAAM;MACfpF,yBAAyB,CAAE,CAAED,sBAAuB,CAAC;IACtD,CAAG;IACHsF,SAAS,EAAGtF,sBAAwB;IACpCuF,OAAO;IACP7B,SAAS,EAAC,sCAAsC;IAChD8B,QAAQ,EAAG;EAAI,CACf,CAEK,CAAC;AAEX"}
|
|
1
|
+
{"version":3,"names":["_components","require","_data","_element","_compose","_i18n","_icons","_useSettings","_store","_utils","CUSTOM_VALUE_SETTINGS","px","max","steps","vw","vh","em","rm","svw","lvw","dvw","svh","lvh","dvh","vi","svi","lvi","dvi","vb","svb","lvb","dvb","vmin","svmin","lvmin","dvmin","vmax","svmax","lvmax","dvmax","SpacingInputControl","icon","isMixed","minimumCustomValue","onChange","onMouseOut","onMouseOver","showSideInLabel","side","spacingSizes","type","value","_CUSTOM_VALUE_SETTING","_CUSTOM_VALUE_SETTING2","getPresetValueFromCustomValue","selectListSizes","showRangeControl","length","disableCustomSpacingSizes","useSelect","select","editorSettings","blockEditorStore","getSettings","showCustomValueControl","setShowCustomValueControl","useState","undefined","isValueSpacingPreset","previousValue","usePrevious","availableUnits","useSettings","units","useCustomUnits","currentValue","showCustomValueInSelectList","name","sprintf","__","slug","size","getSliderValueFromPreset","getCustomValueFromPreset","selectedUnit","useMemo","parseQuantityAndUnitFromRawValue","setInitialValue","customTooltipContent","newValue","customRangeValue","parseFloat","getNewCustomValue","newSize","isNumeric","isNaN","nextValue","getNewPresetValue","controlType","parseInt","handleCustomValueSliderChange","next","join","allPlaceholder","options","map","index","key","marks","_newValue","label","sideLabel","ALL_SIDES","includes","LABELS","typeLabel","toLowerCase","ariaLabel","trim","_react","createElement","__experimentalHStack","className","Icon","Fragment","__experimentalUnitControl","onFocus","onBlur","min","placeholder","disableUnits","hideLabelFromVision","RangeControl","step","withInputField","__nextHasNoMarginBottom","onMouseDown","event","nativeEvent","offsetX","renderTooltipContent","CustomSelectControl","find","option","selection","selectedItem","__nextUnconstrainedWidth","Button","settings","onClick","isPressed","isSmall","iconSize"],"sources":["@wordpress/block-editor/src/components/spacing-sizes-control/input-controls/spacing-input-control.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\tButton,\n\tCustomSelectControl,\n\tIcon,\n\tRangeControl,\n\t__experimentalHStack as HStack,\n\t__experimentalUnitControl as UnitControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalParseQuantityAndUnitFromRawValue as parseQuantityAndUnitFromRawValue,\n} from '@wordpress/components';\nimport { useSelect } from '@wordpress/data';\nimport { useState, useMemo } from '@wordpress/element';\nimport { usePrevious } from '@wordpress/compose';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { settings } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../../use-settings';\nimport { store as blockEditorStore } from '../../../store';\nimport {\n\tALL_SIDES,\n\tLABELS,\n\tgetSliderValueFromPreset,\n\tgetCustomValueFromPreset,\n\tgetPresetValueFromCustomValue,\n\tisValueSpacingPreset,\n} from '../utils';\n\nconst CUSTOM_VALUE_SETTINGS = {\n\tpx: { max: 300, steps: 1 },\n\t'%': { max: 100, steps: 1 },\n\tvw: { max: 100, steps: 1 },\n\tvh: { max: 100, steps: 1 },\n\tem: { max: 10, steps: 0.1 },\n\trm: { max: 10, steps: 0.1 },\n\tsvw: { max: 100, steps: 1 },\n\tlvw: { max: 100, steps: 1 },\n\tdvw: { max: 100, steps: 1 },\n\tsvh: { max: 100, steps: 1 },\n\tlvh: { max: 100, steps: 1 },\n\tdvh: { max: 100, steps: 1 },\n\tvi: { max: 100, steps: 1 },\n\tsvi: { max: 100, steps: 1 },\n\tlvi: { max: 100, steps: 1 },\n\tdvi: { max: 100, steps: 1 },\n\tvb: { max: 100, steps: 1 },\n\tsvb: { max: 100, steps: 1 },\n\tlvb: { max: 100, steps: 1 },\n\tdvb: { max: 100, steps: 1 },\n\tvmin: { max: 100, steps: 1 },\n\tsvmin: { max: 100, steps: 1 },\n\tlvmin: { max: 100, steps: 1 },\n\tdvmin: { max: 100, steps: 1 },\n\tvmax: { max: 100, steps: 1 },\n\tsvmax: { max: 100, steps: 1 },\n\tlvmax: { max: 100, steps: 1 },\n\tdvmax: { max: 100, steps: 1 },\n};\n\nexport default function SpacingInputControl( {\n\ticon,\n\tisMixed = false,\n\tminimumCustomValue,\n\tonChange,\n\tonMouseOut,\n\tonMouseOver,\n\tshowSideInLabel = true,\n\tside,\n\tspacingSizes,\n\ttype,\n\tvalue,\n} ) {\n\t// Treat value as a preset value if the passed in value matches the value of one of the spacingSizes.\n\tvalue = getPresetValueFromCustomValue( value, spacingSizes );\n\n\tlet selectListSizes = spacingSizes;\n\tconst showRangeControl = spacingSizes.length <= 8;\n\n\tconst disableCustomSpacingSizes = useSelect( ( select ) => {\n\t\tconst editorSettings = select( blockEditorStore ).getSettings();\n\t\treturn editorSettings?.disableCustomSpacingSizes;\n\t} );\n\n\tconst [ showCustomValueControl, setShowCustomValueControl ] = useState(\n\t\t! disableCustomSpacingSizes &&\n\t\t\tvalue !== undefined &&\n\t\t\t! isValueSpacingPreset( value )\n\t);\n\n\tconst previousValue = usePrevious( value );\n\tif (\n\t\t!! value &&\n\t\tpreviousValue !== value &&\n\t\t! isValueSpacingPreset( value ) &&\n\t\tshowCustomValueControl !== true\n\t) {\n\t\tsetShowCustomValueControl( true );\n\t}\n\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ 'px', 'em', 'rem' ],\n\t} );\n\n\tlet currentValue = null;\n\n\tconst showCustomValueInSelectList =\n\t\t! showRangeControl &&\n\t\t! showCustomValueControl &&\n\t\tvalue !== undefined &&\n\t\t( ! isValueSpacingPreset( value ) ||\n\t\t\t( isValueSpacingPreset( value ) && isMixed ) );\n\n\tif ( showCustomValueInSelectList ) {\n\t\tselectListSizes = [\n\t\t\t...spacingSizes,\n\t\t\t{\n\t\t\t\tname: ! isMixed\n\t\t\t\t\t? // translators: A custom measurement, eg. a number followed by a unit like 12px.\n\t\t\t\t\t sprintf( __( 'Custom (%s)' ), value )\n\t\t\t\t\t: __( 'Mixed' ),\n\t\t\t\tslug: 'custom',\n\t\t\t\tsize: value,\n\t\t\t},\n\t\t];\n\t\tcurrentValue = selectListSizes.length - 1;\n\t} else if ( ! isMixed ) {\n\t\tcurrentValue = ! showCustomValueControl\n\t\t\t? getSliderValueFromPreset( value, spacingSizes )\n\t\t\t: getCustomValueFromPreset( value, spacingSizes );\n\t}\n\n\tconst selectedUnit =\n\t\tuseMemo(\n\t\t\t() => parseQuantityAndUnitFromRawValue( currentValue ),\n\t\t\t[ currentValue ]\n\t\t)[ 1 ] || units[ 0 ].value;\n\n\tconst setInitialValue = () => {\n\t\tif ( value === undefined ) {\n\t\t\tonChange( '0' );\n\t\t}\n\t};\n\n\tconst customTooltipContent = ( newValue ) =>\n\t\tvalue === undefined ? undefined : spacingSizes[ newValue ]?.name;\n\n\tconst customRangeValue = parseFloat( currentValue, 10 );\n\n\tconst getNewCustomValue = ( newSize ) => {\n\t\tconst isNumeric = ! isNaN( parseFloat( newSize ) );\n\t\tconst nextValue = isNumeric ? newSize : undefined;\n\t\treturn nextValue;\n\t};\n\n\tconst getNewPresetValue = ( newSize, controlType ) => {\n\t\tconst size = parseInt( newSize, 10 );\n\n\t\tif ( controlType === 'selectList' ) {\n\t\t\tif ( size === 0 ) {\n\t\t\t\treturn undefined;\n\t\t\t}\n\t\t\tif ( size === 1 ) {\n\t\t\t\treturn '0';\n\t\t\t}\n\t\t} else if ( size === 0 ) {\n\t\t\treturn '0';\n\t\t}\n\t\treturn `var:preset|spacing|${ spacingSizes[ newSize ]?.slug }`;\n\t};\n\n\tconst handleCustomValueSliderChange = ( next ) => {\n\t\tonChange( [ next, selectedUnit ].join( '' ) );\n\t};\n\n\tconst allPlaceholder = isMixed ? __( 'Mixed' ) : null;\n\n\tconst options = selectListSizes.map( ( size, index ) => ( {\n\t\tkey: index,\n\t\tname: size.name,\n\t} ) );\n\n\tconst marks = spacingSizes.map( ( _newValue, index ) => ( {\n\t\tvalue: index,\n\t\tlabel: undefined,\n\t} ) );\n\n\tconst sideLabel =\n\t\tALL_SIDES.includes( side ) && showSideInLabel ? LABELS[ side ] : '';\n\tconst typeLabel = showSideInLabel ? type?.toLowerCase() : type;\n\n\tconst ariaLabel = sprintf(\n\t\t// translators: 1: The side of the block being modified (top, bottom, left, All sides etc.). 2. Type of spacing being modified (Padding, margin, etc)\n\t\t__( '%1$s %2$s' ),\n\t\tsideLabel,\n\t\ttypeLabel\n\t).trim();\n\n\treturn (\n\t\t<HStack className=\"spacing-sizes-control__wrapper\">\n\t\t\t{ icon && (\n\t\t\t\t<Icon\n\t\t\t\t\tclassName=\"spacing-sizes-control__icon\"\n\t\t\t\t\ticon={ icon }\n\t\t\t\t\tsize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ showCustomValueControl && (\n\t\t\t\t<>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\t\tonChange( getNewCustomValue( newSize ) )\n\t\t\t\t\t\t}\n\t\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\tmin={ minimumCustomValue }\n\t\t\t\t\t\tplaceholder={ allPlaceholder }\n\t\t\t\t\t\tdisableUnits={ isMixed }\n\t\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-input\"\n\t\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\t/>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t\t\tvalue={ customRangeValue }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tmax={ CUSTOM_VALUE_SETTINGS[ selectedUnit ]?.max ?? 10 }\n\t\t\t\t\t\tstep={\n\t\t\t\t\t\t\tCUSTOM_VALUE_SETTINGS[ selectedUnit ]?.steps ?? 0.1\n\t\t\t\t\t\t}\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t\tonChange={ handleCustomValueSliderChange }\n\t\t\t\t\t\tclassName=\"spacing-sizes-control__custom-value-range\"\n\t\t\t\t\t\t__nextHasNoMarginBottom\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<RangeControl\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tclassName=\"spacing-sizes-control__range-control\"\n\t\t\t\t\tvalue={ currentValue }\n\t\t\t\t\tonChange={ ( newSize ) =>\n\t\t\t\t\t\tonChange( getNewPresetValue( newSize ) )\n\t\t\t\t\t}\n\t\t\t\t\tonMouseDown={ ( event ) => {\n\t\t\t\t\t\t// If mouse down is near start of range set initial value to 0, which\n\t\t\t\t\t\t// prevents the user have to drag right then left to get 0 setting.\n\t\t\t\t\t\tif ( event?.nativeEvent?.offsetX < 35 ) {\n\t\t\t\t\t\t\tsetInitialValue();\n\t\t\t\t\t\t}\n\t\t\t\t\t} }\n\t\t\t\t\twithInputField={ false }\n\t\t\t\t\taria-valuenow={ currentValue }\n\t\t\t\t\taria-valuetext={ spacingSizes[ currentValue ]?.name }\n\t\t\t\t\trenderTooltipContent={ customTooltipContent }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tmax={ spacingSizes.length - 1 }\n\t\t\t\t\tmarks={ marks }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextHasNoMarginBottom={ true }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! showRangeControl && ! showCustomValueControl && (\n\t\t\t\t<CustomSelectControl\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-select-control\"\n\t\t\t\t\tvalue={\n\t\t\t\t\t\toptions.find(\n\t\t\t\t\t\t\t( option ) => option.key === currentValue\n\t\t\t\t\t\t) || '' // passing undefined here causes a downshift controlled/uncontrolled warning\n\t\t\t\t\t}\n\t\t\t\t\tonChange={ ( selection ) => {\n\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\tgetNewPresetValue(\n\t\t\t\t\t\t\t\tselection.selectedItem.key,\n\t\t\t\t\t\t\t\t'selectList'\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t);\n\t\t\t\t\t} }\n\t\t\t\t\toptions={ options }\n\t\t\t\t\tlabel={ ariaLabel }\n\t\t\t\t\thideLabelFromVision={ true }\n\t\t\t\t\t__nextUnconstrainedWidth={ true }\n\t\t\t\t\tsize={ '__unstable-large' }\n\t\t\t\t\tonMouseOver={ onMouseOver }\n\t\t\t\t\tonMouseOut={ onMouseOut }\n\t\t\t\t\tonFocus={ onMouseOver }\n\t\t\t\t\tonBlur={ onMouseOut }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomSpacingSizes && (\n\t\t\t\t<Button\n\t\t\t\t\tlabel={\n\t\t\t\t\t\tshowCustomValueControl\n\t\t\t\t\t\t\t? __( 'Use size preset' )\n\t\t\t\t\t\t\t: __( 'Set custom size' )\n\t\t\t\t\t}\n\t\t\t\t\ticon={ settings }\n\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\tsetShowCustomValueControl( ! showCustomValueControl );\n\t\t\t\t\t} }\n\t\t\t\t\tisPressed={ showCustomValueControl }\n\t\t\t\t\tisSmall\n\t\t\t\t\tclassName=\"spacing-sizes-control__custom-toggle\"\n\t\t\t\t\ticonSize={ 24 }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</HStack>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -1,13 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
3
|
Object.defineProperty(exports, "__esModule", {
|
|
5
4
|
value: true
|
|
6
5
|
});
|
|
7
6
|
exports.default = UnitControl;
|
|
8
7
|
var _react = require("react");
|
|
9
8
|
var _components = require("@wordpress/components");
|
|
10
|
-
var
|
|
9
|
+
var _useSettings = require("../use-settings");
|
|
11
10
|
/**
|
|
12
11
|
* WordPress dependencies
|
|
13
12
|
*/
|
|
@@ -20,8 +19,9 @@ function UnitControl({
|
|
|
20
19
|
units: unitsProp,
|
|
21
20
|
...props
|
|
22
21
|
}) {
|
|
22
|
+
const [availableUnits] = (0, _useSettings.useSettings)('spacing.units');
|
|
23
23
|
const units = (0, _components.__experimentalUseCustomUnits)({
|
|
24
|
-
availableUnits:
|
|
24
|
+
availableUnits: availableUnits || ['%', 'px', 'em', 'rem', 'vw'],
|
|
25
25
|
units: unitsProp
|
|
26
26
|
});
|
|
27
27
|
return (0, _react.createElement)(_components.__experimentalUnitControl, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_components","require","
|
|
1
|
+
{"version":3,"names":["_components","require","_useSettings","UnitControl","units","unitsProp","props","availableUnits","useSettings","useCustomUnits","_react","createElement","__experimentalUnitControl"],"sources":["@wordpress/block-editor/src/components/unit-control/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as BaseUnitControl,\n} from '@wordpress/components';\n\n/**\n * Internal dependencies\n */\nimport { useSettings } from '../use-settings';\n\nexport default function UnitControl( { units: unitsProp, ...props } ) {\n\tconst [ availableUnits ] = useSettings( 'spacing.units' );\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: availableUnits || [ '%', 'px', 'em', 'rem', 'vw' ],\n\t\tunits: unitsProp,\n\t} );\n\n\treturn <BaseUnitControl units={ units } { ...props } />;\n}\n"],"mappings":";;;;;;;AAGA,IAAAA,WAAA,GAAAC,OAAA;AAQA,IAAAC,YAAA,GAAAD,OAAA;AAXA;AACA;AACA;;AAMA;AACA;AACA;;AAGe,SAASE,WAAWA,CAAE;EAAEC,KAAK,EAAEC,SAAS;EAAE,GAAGC;AAAM,CAAC,EAAG;EACrE,MAAM,CAAEC,cAAc,CAAE,GAAG,IAAAC,wBAAW,EAAE,eAAgB,CAAC;EACzD,MAAMJ,KAAK,GAAG,IAAAK,wCAAc,EAAE;IAC7BF,cAAc,EAAEA,cAAc,IAAI,CAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,CAAE;IAClEH,KAAK,EAAEC;EACR,CAAE,CAAC;EAEH,OAAO,IAAAK,MAAA,CAAAC,aAAA,EAACX,WAAA,CAAAY,yBAAe;IAACR,KAAK,EAAGA,KAAO;IAAA,GAAME;EAAK,CAAI,CAAC;AACxD"}
|
|
@@ -1,14 +1,17 @@
|
|
|
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
|
});
|
|
6
7
|
exports.useTransformCommands = exports.useBlockCommands = void 0;
|
|
8
|
+
var _react = require("react");
|
|
7
9
|
var _i18n = require("@wordpress/i18n");
|
|
8
10
|
var _blocks = require("@wordpress/blocks");
|
|
9
11
|
var _data = require("@wordpress/data");
|
|
10
12
|
var _commands = require("@wordpress/commands");
|
|
11
13
|
var _icons = require("@wordpress/icons");
|
|
14
|
+
var _blockIcon = _interopRequireDefault(require("../block-icon"));
|
|
12
15
|
var _store = require("../../store");
|
|
13
16
|
/**
|
|
14
17
|
* WordPress dependencies
|
|
@@ -86,7 +89,9 @@ const useTransformCommands = () => {
|
|
|
86
89
|
name: 'core/block-editor/transform-to-' + name.replace('/', '-'),
|
|
87
90
|
// translators: %s: block title/name.
|
|
88
91
|
label: (0, _i18n.sprintf)((0, _i18n.__)('Transform to %s'), title),
|
|
89
|
-
icon:
|
|
92
|
+
icon: (0, _react.createElement)(_blockIcon.default, {
|
|
93
|
+
icon: icon
|
|
94
|
+
}),
|
|
90
95
|
callback: ({
|
|
91
96
|
close
|
|
92
97
|
}) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","src","callback","close","exports","useActionsCommands","canMoveBlocks","getBlockCount","setBlockMovingClientId","setNavigationMode","selectBlock","canMove","push","move","command","useQuickActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","block","hasBlockSupport","copy","add","group","ungroup","remove","useBlockCommands","useCommandLoader","hook","context"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: icon.src,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\n\tconst { getBlockRootClientId, canMoveBlocks, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setBlockMovingClientId, setNavigationMode, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nconst useQuickActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst commands = [];\n\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockQuickActions',\n\t\thook: useQuickActionsCommands,\n\t\tcontext: 'block-selection-edit',\n\t} );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["_i18n","require","_blocks","_data","_commands","_icons","_blockIcon","_interopRequireDefault","_store","useTransformCommands","clientIds","useSelect","select","getSelectedBlockClientIds","blockEditorStore","selectedBlockClientIds","blocks","getBlocksByClientId","replaceBlocks","multiSelect","useDispatch","possibleBlockTransformations","canRemove","getBlockRootClientId","getBlockTransformItems","canRemoveBlocks","rootClientId","Array","isArray","isTemplate","length","isTemplatePart","selectForMultipleBlocks","insertedBlocks","clientId","onBlockTransform","name","newBlocks","switchToBlockType","hasPossibleBlockTransformations","isLoading","commands","map","transformation","title","icon","replace","label","sprintf","__","_react","createElement","default","callback","close","exports","useActionsCommands","canMoveBlocks","getBlockCount","setBlockMovingClientId","setNavigationMode","selectBlock","canMove","push","move","command","useQuickActionsCommands","isUngroupable","isGroupable","_isUngroupable","_isGroupable","canInsertBlockType","getDefaultBlockName","getGroupingBlockName","blocksStore","removeBlocks","duplicateBlocks","insertAfterBlock","insertBeforeBlock","onGroup","groupingBlockName","onUngroup","innerBlocks","canInsertDefaultBlock","canDuplicate","every","block","hasBlockSupport","copy","add","group","ungroup","remove","useBlockCommands","useCommandLoader","hook","context"],"sources":["@wordpress/block-editor/src/components/use-block-commands/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport {\n\thasBlockSupport,\n\tstore as blocksStore,\n\tswitchToBlockType,\n\tisTemplatePart,\n} from '@wordpress/blocks';\nimport { useSelect, useDispatch } from '@wordpress/data';\nimport { useCommandLoader } from '@wordpress/commands';\nimport {\n\tcopy,\n\ttrash as remove,\n\tplus as add,\n\tgroup,\n\tungroup,\n\tmoveTo as move,\n} from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BlockIcon from '../block-icon';\nimport { store as blockEditorStore } from '../../store';\n\nexport const useTransformCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\tconst blocks = useSelect(\n\t\t( select ) =>\n\t\t\tselect( blockEditorStore ).getBlocksByClientId( clientIds ),\n\t\t[ clientIds ]\n\t);\n\tconst { replaceBlocks, multiSelect } = useDispatch( blockEditorStore );\n\tconst { possibleBlockTransformations, canRemove } = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockRootClientId,\n\t\t\t\tgetBlockTransformItems,\n\t\t\t\tcanRemoveBlocks,\n\t\t\t} = select( blockEditorStore );\n\t\t\tconst rootClientId = getBlockRootClientId(\n\t\t\t\tArray.isArray( clientIds ) ? clientIds[ 0 ] : clientIds\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tpossibleBlockTransformations: getBlockTransformItems(\n\t\t\t\t\tblocks,\n\t\t\t\t\trootClientId\n\t\t\t\t),\n\t\t\t\tcanRemove: canRemoveBlocks( clientIds, rootClientId ),\n\t\t\t};\n\t\t},\n\t\t[ clientIds, blocks ]\n\t);\n\n\tconst isTemplate = blocks.length === 1 && isTemplatePart( blocks[ 0 ] );\n\n\tfunction selectForMultipleBlocks( insertedBlocks ) {\n\t\tif ( insertedBlocks.length > 1 ) {\n\t\t\tmultiSelect(\n\t\t\t\tinsertedBlocks[ 0 ].clientId,\n\t\t\t\tinsertedBlocks[ insertedBlocks.length - 1 ].clientId\n\t\t\t);\n\t\t}\n\t}\n\n\t// Simple block tranformation based on the `Block Transforms` API.\n\tfunction onBlockTransform( name ) {\n\t\tconst newBlocks = switchToBlockType( blocks, name );\n\t\treplaceBlocks( clientIds, newBlocks );\n\t\tselectForMultipleBlocks( newBlocks );\n\t}\n\n\t/**\n\t * The `isTemplate` check is a stopgap solution here.\n\t * Ideally, the Transforms API should handle this\n\t * by allowing to exclude blocks from wildcard transformations.\n\t */\n\tconst hasPossibleBlockTransformations =\n\t\t!! possibleBlockTransformations.length && canRemove && ! isTemplate;\n\n\tif (\n\t\t! clientIds ||\n\t\tclientIds.length < 1 ||\n\t\t! hasPossibleBlockTransformations\n\t) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst commands = possibleBlockTransformations.map( ( transformation ) => {\n\t\tconst { name, title, icon } = transformation;\n\t\treturn {\n\t\t\tname: 'core/block-editor/transform-to-' + name.replace( '/', '-' ),\n\t\t\t// translators: %s: block title/name.\n\t\t\tlabel: sprintf( __( 'Transform to %s' ), title ),\n\t\t\ticon: <BlockIcon icon={ icon } />,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tonBlockTransform( name );\n\t\t\t\tclose();\n\t\t\t},\n\t\t};\n\t} );\n\n\treturn { isLoading: false, commands };\n};\n\nconst useActionsCommands = () => {\n\tconst { clientIds } = useSelect( ( select ) => {\n\t\tconst { getSelectedBlockClientIds } = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t};\n\t}, [] );\n\n\tconst { getBlockRootClientId, canMoveBlocks, getBlockCount } =\n\t\tuseSelect( blockEditorStore );\n\n\tconst { setBlockMovingClientId, setNavigationMode, selectBlock } =\n\t\tuseDispatch( blockEditorStore );\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\n\tconst canMove =\n\t\tcanMoveBlocks( clientIds, rootClientId ) &&\n\t\tgetBlockCount( rootClientId ) !== 1;\n\n\tconst commands = [];\n\n\tif ( canMove ) {\n\t\tcommands.push( {\n\t\t\tname: 'move-to',\n\t\t\tlabel: __( 'Move to' ),\n\t\t\tcallback: () => {\n\t\t\t\tsetNavigationMode( true );\n\t\t\t\tselectBlock( clientIds[ 0 ] );\n\t\t\t\tsetBlockMovingClientId( clientIds[ 0 ] );\n\t\t\t},\n\t\t\ticon: move,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nconst useQuickActionsCommands = () => {\n\tconst { clientIds, isUngroupable, isGroupable } = useSelect( ( select ) => {\n\t\tconst {\n\t\t\tgetSelectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable,\n\t\t\tisGroupable: _isGroupable,\n\t\t} = select( blockEditorStore );\n\t\tconst selectedBlockClientIds = getSelectedBlockClientIds();\n\n\t\treturn {\n\t\t\tclientIds: selectedBlockClientIds,\n\t\t\tisUngroupable: _isUngroupable(),\n\t\t\tisGroupable: _isGroupable(),\n\t\t};\n\t}, [] );\n\tconst {\n\t\tcanInsertBlockType,\n\t\tgetBlockRootClientId,\n\t\tgetBlocksByClientId,\n\t\tcanRemoveBlocks,\n\t} = useSelect( blockEditorStore );\n\tconst { getDefaultBlockName, getGroupingBlockName } =\n\t\tuseSelect( blocksStore );\n\n\tconst blocks = getBlocksByClientId( clientIds );\n\n\tconst {\n\t\tremoveBlocks,\n\t\treplaceBlocks,\n\t\tduplicateBlocks,\n\t\tinsertAfterBlock,\n\t\tinsertBeforeBlock,\n\t} = useDispatch( blockEditorStore );\n\n\tconst onGroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst groupingBlockName = getGroupingBlockName();\n\n\t\t// Activate the `transform` on `core/group` which does the conversion.\n\t\tconst newBlocks = switchToBlockType( blocks, groupingBlockName );\n\n\t\tif ( ! newBlocks ) {\n\t\t\treturn;\n\t\t}\n\t\treplaceBlocks( clientIds, newBlocks );\n\t};\n\tconst onUngroup = () => {\n\t\tif ( ! blocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst innerBlocks = blocks[ 0 ].innerBlocks;\n\n\t\tif ( ! innerBlocks.length ) {\n\t\t\treturn;\n\t\t}\n\n\t\treplaceBlocks( clientIds, innerBlocks );\n\t};\n\n\tif ( ! clientIds || clientIds.length < 1 ) {\n\t\treturn { isLoading: false, commands: [] };\n\t}\n\n\tconst rootClientId = getBlockRootClientId( clientIds[ 0 ] );\n\tconst canInsertDefaultBlock = canInsertBlockType(\n\t\tgetDefaultBlockName(),\n\t\trootClientId\n\t);\n\tconst canDuplicate = blocks.every( ( block ) => {\n\t\treturn (\n\t\t\t!! block &&\n\t\t\thasBlockSupport( block.name, 'multiple', true ) &&\n\t\t\tcanInsertBlockType( block.name, rootClientId )\n\t\t);\n\t} );\n\tconst canRemove = canRemoveBlocks( clientIds, rootClientId );\n\n\tconst commands = [];\n\n\tif ( canDuplicate ) {\n\t\tcommands.push( {\n\t\t\tname: 'duplicate',\n\t\t\tlabel: __( 'Duplicate' ),\n\t\t\tcallback: () => duplicateBlocks( clientIds, true ),\n\t\t\ticon: copy,\n\t\t} );\n\t}\n\n\tif ( canInsertDefaultBlock ) {\n\t\tcommands.push(\n\t\t\t{\n\t\t\t\tname: 'add-before',\n\t\t\t\tlabel: __( 'Add before' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ 0 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertBeforeBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t},\n\t\t\t{\n\t\t\t\tname: 'add-after',\n\t\t\t\tlabel: __( 'Add after' ),\n\t\t\t\tcallback: () => {\n\t\t\t\t\tconst clientId = Array.isArray( clientIds )\n\t\t\t\t\t\t? clientIds[ clientIds.length - 1 ]\n\t\t\t\t\t\t: clientId;\n\t\t\t\t\tinsertAfterBlock( clientId );\n\t\t\t\t},\n\t\t\t\ticon: add,\n\t\t\t}\n\t\t);\n\t}\n\n\tif ( isGroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'Group',\n\t\t\tlabel: __( 'Group' ),\n\t\t\tcallback: onGroup,\n\t\t\ticon: group,\n\t\t} );\n\t}\n\n\tif ( isUngroupable ) {\n\t\tcommands.push( {\n\t\t\tname: 'ungroup',\n\t\t\tlabel: __( 'Ungroup' ),\n\t\t\tcallback: onUngroup,\n\t\t\ticon: ungroup,\n\t\t} );\n\t}\n\n\tif ( canRemove ) {\n\t\tcommands.push( {\n\t\t\tname: 'remove',\n\t\t\tlabel: __( 'Delete' ),\n\t\t\tcallback: () => removeBlocks( clientIds, true ),\n\t\t\ticon: remove,\n\t\t} );\n\t}\n\n\treturn {\n\t\tisLoading: false,\n\t\tcommands: commands.map( ( command ) => ( {\n\t\t\t...command,\n\t\t\tname: 'core/block-editor/action-' + command.name,\n\t\t\tcallback: ( { close } ) => {\n\t\t\t\tcommand.callback();\n\t\t\t\tclose();\n\t\t\t},\n\t\t} ) ),\n\t};\n};\n\nexport const useBlockCommands = () => {\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockTransforms',\n\t\thook: useTransformCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockActions',\n\t\thook: useActionsCommands,\n\t} );\n\tuseCommandLoader( {\n\t\tname: 'core/block-editor/blockQuickActions',\n\t\thook: useQuickActionsCommands,\n\t\tcontext: 'block-selection-edit',\n\t} );\n};\n"],"mappings":"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"}
|
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useSetting = useSetting;
|
|
8
|
+
exports.useSettings = useSettings;
|
|
9
|
+
var _blocks = require("@wordpress/blocks");
|
|
10
|
+
var _data = require("@wordpress/data");
|
|
11
|
+
var _deprecated = _interopRequireDefault(require("@wordpress/deprecated"));
|
|
12
|
+
var _element = require("@wordpress/element");
|
|
13
|
+
var _hooks = require("@wordpress/hooks");
|
|
14
|
+
var _blockEdit = require("../block-edit");
|
|
15
|
+
var _store = require("../../store");
|
|
16
|
+
var _object = require("../../utils/object");
|
|
17
|
+
/**
|
|
18
|
+
* WordPress dependencies
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Internal dependencies
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
const blockedPaths = ['color', 'border', 'dimensions', 'typography', 'spacing'];
|
|
26
|
+
const deprecatedFlags = {
|
|
27
|
+
'color.palette': settings => settings.colors,
|
|
28
|
+
'color.gradients': settings => settings.gradients,
|
|
29
|
+
'color.custom': settings => settings.disableCustomColors === undefined ? undefined : !settings.disableCustomColors,
|
|
30
|
+
'color.customGradient': settings => settings.disableCustomGradients === undefined ? undefined : !settings.disableCustomGradients,
|
|
31
|
+
'typography.fontSizes': settings => settings.fontSizes,
|
|
32
|
+
'typography.customFontSize': settings => settings.disableCustomFontSizes === undefined ? undefined : !settings.disableCustomFontSizes,
|
|
33
|
+
'typography.lineHeight': settings => settings.enableCustomLineHeight,
|
|
34
|
+
'spacing.units': settings => {
|
|
35
|
+
if (settings.enableCustomUnits === undefined) {
|
|
36
|
+
return;
|
|
37
|
+
}
|
|
38
|
+
if (settings.enableCustomUnits === true) {
|
|
39
|
+
return ['px', 'em', 'rem', 'vh', 'vw', '%'];
|
|
40
|
+
}
|
|
41
|
+
return settings.enableCustomUnits;
|
|
42
|
+
},
|
|
43
|
+
'spacing.padding': settings => settings.enableCustomSpacing
|
|
44
|
+
};
|
|
45
|
+
const prefixedFlags = {
|
|
46
|
+
/*
|
|
47
|
+
* These were only available in the plugin
|
|
48
|
+
* and can be removed when the minimum WordPress version
|
|
49
|
+
* for the plugin is 5.9.
|
|
50
|
+
*/
|
|
51
|
+
'border.customColor': 'border.color',
|
|
52
|
+
'border.customStyle': 'border.style',
|
|
53
|
+
'border.customWidth': 'border.width',
|
|
54
|
+
'typography.customFontStyle': 'typography.fontStyle',
|
|
55
|
+
'typography.customFontWeight': 'typography.fontWeight',
|
|
56
|
+
'typography.customLetterSpacing': 'typography.letterSpacing',
|
|
57
|
+
'typography.customTextDecorations': 'typography.textDecoration',
|
|
58
|
+
'typography.customTextTransforms': 'typography.textTransform',
|
|
59
|
+
/*
|
|
60
|
+
* These were part of WordPress 5.8 and we need to keep them.
|
|
61
|
+
*/
|
|
62
|
+
'border.customRadius': 'border.radius',
|
|
63
|
+
'spacing.customMargin': 'spacing.margin',
|
|
64
|
+
'spacing.customPadding': 'spacing.padding',
|
|
65
|
+
'typography.customLineHeight': 'typography.lineHeight'
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* Remove `custom` prefixes for flags that did not land in 5.8.
|
|
70
|
+
*
|
|
71
|
+
* This provides continued support for `custom` prefixed properties. It will
|
|
72
|
+
* be removed once third party devs have had sufficient time to update themes,
|
|
73
|
+
* plugins, etc.
|
|
74
|
+
*
|
|
75
|
+
* @see https://github.com/WordPress/gutenberg/pull/34485
|
|
76
|
+
*
|
|
77
|
+
* @param {string} path Path to desired value in settings.
|
|
78
|
+
* @return {string} The value for defined setting.
|
|
79
|
+
*/
|
|
80
|
+
const removeCustomPrefixes = path => {
|
|
81
|
+
return prefixedFlags[path] || path;
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* For settings like `color.palette`, which have a value that is an object
|
|
86
|
+
* with `default`, `theme`, `custom`, with field values that are arrays of
|
|
87
|
+
* items, merge these three arrays into one and return it. The calculation
|
|
88
|
+
* is memoized so that identical input values produce identical output.
|
|
89
|
+
* @param {Object} value Object to merge
|
|
90
|
+
* @return {Array} Array of merged items
|
|
91
|
+
*/
|
|
92
|
+
function mergeOrigins(value) {
|
|
93
|
+
let result = mergeCache.get(value);
|
|
94
|
+
if (!result) {
|
|
95
|
+
result = ['default', 'theme', 'custom'].flatMap(key => {
|
|
96
|
+
var _value$key;
|
|
97
|
+
return (_value$key = value[key]) !== null && _value$key !== void 0 ? _value$key : [];
|
|
98
|
+
});
|
|
99
|
+
mergeCache.set(value, result);
|
|
100
|
+
}
|
|
101
|
+
return result;
|
|
102
|
+
}
|
|
103
|
+
const mergeCache = new WeakMap();
|
|
104
|
+
|
|
105
|
+
/**
|
|
106
|
+
* Hook that retrieves the given settings for the block instance in use.
|
|
107
|
+
*
|
|
108
|
+
* It looks up the settings first in the block instance hierarchy.
|
|
109
|
+
* If none are found, it'll look them up in the block editor settings.
|
|
110
|
+
*
|
|
111
|
+
* @param {string[]} paths The paths to the settings.
|
|
112
|
+
* @return {any[]} Returns the values defined for the settings.
|
|
113
|
+
* @example
|
|
114
|
+
* ```js
|
|
115
|
+
* const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
function useSettings(...paths) {
|
|
119
|
+
const {
|
|
120
|
+
name: blockName,
|
|
121
|
+
clientId = null
|
|
122
|
+
} = (0, _blockEdit.useBlockEditContext)();
|
|
123
|
+
|
|
124
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
125
|
+
paths = (0, _element.useMemo)(() => paths, paths);
|
|
126
|
+
return (0, _data.useSelect)(select => {
|
|
127
|
+
const candidates = clientId ? [clientId, ...select(_store.store).getBlockParents(clientId, /* ascending */true)].filter(candidateClientId => {
|
|
128
|
+
const candidateBlockName = select(_store.store).getBlockName(candidateClientId);
|
|
129
|
+
return (0, _blocks.hasBlockSupport)(candidateBlockName, '__experimentalSettings', false);
|
|
130
|
+
}) : [];
|
|
131
|
+
return paths.map(path => {
|
|
132
|
+
if (blockedPaths.includes(path)) {
|
|
133
|
+
// eslint-disable-next-line no-console
|
|
134
|
+
console.warn('Top level useSetting paths are disabled. Please use a subpath to query the information needed.');
|
|
135
|
+
return undefined;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
// 0. Allow third parties to filter the block's settings at runtime.
|
|
139
|
+
let result = (0, _hooks.applyFilters)('blockEditor.useSetting.before', undefined, path, clientId, blockName);
|
|
140
|
+
if (undefined !== result) {
|
|
141
|
+
return result;
|
|
142
|
+
}
|
|
143
|
+
const normalizedPath = removeCustomPrefixes(path);
|
|
144
|
+
|
|
145
|
+
// 1. Take settings from the block instance or its ancestors.
|
|
146
|
+
// Start from the current block and work our way up the ancestors.
|
|
147
|
+
for (const candidateClientId of candidates) {
|
|
148
|
+
var _getValueFromObjectPa;
|
|
149
|
+
const candidateAtts = select(_store.store).getBlockAttributes(candidateClientId);
|
|
150
|
+
result = (_getValueFromObjectPa = (0, _object.getValueFromObjectPath)(candidateAtts.settings?.blocks?.[blockName], normalizedPath)) !== null && _getValueFromObjectPa !== void 0 ? _getValueFromObjectPa : (0, _object.getValueFromObjectPath)(candidateAtts.settings, normalizedPath);
|
|
151
|
+
if (result !== undefined) {
|
|
152
|
+
// Stop the search for more distant ancestors and move on.
|
|
153
|
+
break;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
// 2. Fall back to the settings from the block editor store (__experimentalFeatures).
|
|
158
|
+
const settings = select(_store.store).getSettings();
|
|
159
|
+
if (result === undefined && blockName) {
|
|
160
|
+
result = (0, _object.getValueFromObjectPath)(settings.__experimentalFeatures?.blocks?.[blockName], normalizedPath);
|
|
161
|
+
}
|
|
162
|
+
if (result === undefined) {
|
|
163
|
+
result = (0, _object.getValueFromObjectPath)(settings.__experimentalFeatures, normalizedPath);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
// Return if the setting was found in either the block instance or the store.
|
|
167
|
+
if (result !== undefined) {
|
|
168
|
+
if (_blocks.__EXPERIMENTAL_PATHS_WITH_MERGE[normalizedPath]) {
|
|
169
|
+
return mergeOrigins(result);
|
|
170
|
+
}
|
|
171
|
+
return result;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
// 3. Otherwise, use deprecated settings.
|
|
175
|
+
const deprecatedSettingsValue = deprecatedFlags[normalizedPath]?.(settings);
|
|
176
|
+
if (deprecatedSettingsValue !== undefined) {
|
|
177
|
+
return deprecatedSettingsValue;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// 4. Fallback for typography.dropCap:
|
|
181
|
+
// This is only necessary to support typography.dropCap.
|
|
182
|
+
// when __experimentalFeatures are not present (core without plugin).
|
|
183
|
+
// To remove when __experimentalFeatures are ported to core.
|
|
184
|
+
return normalizedPath === 'typography.dropCap' ? true : undefined;
|
|
185
|
+
});
|
|
186
|
+
}, [blockName, clientId, paths]);
|
|
187
|
+
}
|
|
188
|
+
|
|
189
|
+
/**
|
|
190
|
+
* Hook that retrieves the given setting for the block instance in use.
|
|
191
|
+
*
|
|
192
|
+
* It looks up the setting first in the block instance hierarchy.
|
|
193
|
+
* If none is found, it'll look it up in the block editor settings.
|
|
194
|
+
*
|
|
195
|
+
* @param {string} path The path to the setting.
|
|
196
|
+
* @return {any} Returns the value defined for the setting.
|
|
197
|
+
* @deprecated 6.4.0 Use useSettings instead.
|
|
198
|
+
* @example
|
|
199
|
+
* ```js
|
|
200
|
+
* const isEnabled = useSetting( 'typography.dropCap' );
|
|
201
|
+
* ```
|
|
202
|
+
*/
|
|
203
|
+
function useSetting(path) {
|
|
204
|
+
(0, _deprecated.default)('wp.blockEditor.useSetting', {
|
|
205
|
+
since: '6.4',
|
|
206
|
+
alternative: 'wp.blockEditor.useSettings',
|
|
207
|
+
note: 'The new useSettings function can retrieve multiple settings at once, with better performance.'
|
|
208
|
+
});
|
|
209
|
+
const [value] = useSettings(path);
|
|
210
|
+
return value;
|
|
211
|
+
}
|
|
212
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_blocks","require","_data","_deprecated","_interopRequireDefault","_element","_hooks","_blockEdit","_store","_object","blockedPaths","deprecatedFlags","settings","colors","gradients","disableCustomColors","undefined","disableCustomGradients","fontSizes","disableCustomFontSizes","enableCustomLineHeight","enableCustomUnits","enableCustomSpacing","prefixedFlags","removeCustomPrefixes","path","mergeOrigins","value","result","mergeCache","get","flatMap","key","_value$key","set","WeakMap","useSettings","paths","name","blockName","clientId","useBlockEditContext","useMemo","useSelect","select","candidates","blockEditorStore","getBlockParents","filter","candidateClientId","candidateBlockName","getBlockName","hasBlockSupport","map","includes","console","warn","applyFilters","normalizedPath","_getValueFromObjectPa","candidateAtts","getBlockAttributes","getValueFromObjectPath","blocks","getSettings","__experimentalFeatures","PATHS_WITH_MERGE","deprecatedSettingsValue","useSetting","deprecated","since","alternative","note"],"sources":["@wordpress/block-editor/src/components/use-settings/index.js"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport {\n\t__EXPERIMENTAL_PATHS_WITH_MERGE as PATHS_WITH_MERGE,\n\thasBlockSupport,\n} from '@wordpress/blocks';\nimport { useSelect } from '@wordpress/data';\nimport deprecated from '@wordpress/deprecated';\nimport { useMemo } from '@wordpress/element';\nimport { applyFilters } from '@wordpress/hooks';\n\n/**\n * Internal dependencies\n */\nimport { useBlockEditContext } from '../block-edit';\nimport { store as blockEditorStore } from '../../store';\nimport { getValueFromObjectPath } from '../../utils/object';\n\nconst blockedPaths = [\n\t'color',\n\t'border',\n\t'dimensions',\n\t'typography',\n\t'spacing',\n];\n\nconst deprecatedFlags = {\n\t'color.palette': ( settings ) => settings.colors,\n\t'color.gradients': ( settings ) => settings.gradients,\n\t'color.custom': ( settings ) =>\n\t\tsettings.disableCustomColors === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomColors,\n\t'color.customGradient': ( settings ) =>\n\t\tsettings.disableCustomGradients === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomGradients,\n\t'typography.fontSizes': ( settings ) => settings.fontSizes,\n\t'typography.customFontSize': ( settings ) =>\n\t\tsettings.disableCustomFontSizes === undefined\n\t\t\t? undefined\n\t\t\t: ! settings.disableCustomFontSizes,\n\t'typography.lineHeight': ( settings ) => settings.enableCustomLineHeight,\n\t'spacing.units': ( settings ) => {\n\t\tif ( settings.enableCustomUnits === undefined ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( settings.enableCustomUnits === true ) {\n\t\t\treturn [ 'px', 'em', 'rem', 'vh', 'vw', '%' ];\n\t\t}\n\n\t\treturn settings.enableCustomUnits;\n\t},\n\t'spacing.padding': ( settings ) => settings.enableCustomSpacing,\n};\n\nconst prefixedFlags = {\n\t/*\n\t * These were only available in the plugin\n\t * and can be removed when the minimum WordPress version\n\t * for the plugin is 5.9.\n\t */\n\t'border.customColor': 'border.color',\n\t'border.customStyle': 'border.style',\n\t'border.customWidth': 'border.width',\n\t'typography.customFontStyle': 'typography.fontStyle',\n\t'typography.customFontWeight': 'typography.fontWeight',\n\t'typography.customLetterSpacing': 'typography.letterSpacing',\n\t'typography.customTextDecorations': 'typography.textDecoration',\n\t'typography.customTextTransforms': 'typography.textTransform',\n\t/*\n\t * These were part of WordPress 5.8 and we need to keep them.\n\t */\n\t'border.customRadius': 'border.radius',\n\t'spacing.customMargin': 'spacing.margin',\n\t'spacing.customPadding': 'spacing.padding',\n\t'typography.customLineHeight': 'typography.lineHeight',\n};\n\n/**\n * Remove `custom` prefixes for flags that did not land in 5.8.\n *\n * This provides continued support for `custom` prefixed properties. It will\n * be removed once third party devs have had sufficient time to update themes,\n * plugins, etc.\n *\n * @see https://github.com/WordPress/gutenberg/pull/34485\n *\n * @param {string} path Path to desired value in settings.\n * @return {string} The value for defined setting.\n */\nconst removeCustomPrefixes = ( path ) => {\n\treturn prefixedFlags[ path ] || path;\n};\n\n/**\n * For settings like `color.palette`, which have a value that is an object\n * with `default`, `theme`, `custom`, with field values that are arrays of\n * items, merge these three arrays into one and return it. The calculation\n * is memoized so that identical input values produce identical output.\n * @param {Object} value Object to merge\n * @return {Array} Array of merged items\n */\nfunction mergeOrigins( value ) {\n\tlet result = mergeCache.get( value );\n\tif ( ! result ) {\n\t\tresult = [ 'default', 'theme', 'custom' ].flatMap(\n\t\t\t( key ) => value[ key ] ?? []\n\t\t);\n\t\tmergeCache.set( value, result );\n\t}\n\treturn result;\n}\nconst mergeCache = new WeakMap();\n\n/**\n * Hook that retrieves the given settings for the block instance in use.\n *\n * It looks up the settings first in the block instance hierarchy.\n * If none are found, it'll look them up in the block editor settings.\n *\n * @param {string[]} paths The paths to the settings.\n * @return {any[]} Returns the values defined for the settings.\n * @example\n * ```js\n * const [ fixed, sticky ] = useSettings( 'position.fixed', 'position.sticky' );\n * ```\n */\nexport function useSettings( ...paths ) {\n\tconst { name: blockName, clientId = null } = useBlockEditContext();\n\n\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\tpaths = useMemo( () => paths, paths );\n\n\treturn useSelect(\n\t\t( select ) => {\n\t\t\tconst candidates = clientId\n\t\t\t\t? [\n\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t...select( blockEditorStore ).getBlockParents(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\t/* ascending */ true\n\t\t\t\t\t\t),\n\t\t\t\t ].filter( ( candidateClientId ) => {\n\t\t\t\t\t\tconst candidateBlockName =\n\t\t\t\t\t\t\tselect( blockEditorStore ).getBlockName(\n\t\t\t\t\t\t\t\tcandidateClientId\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\treturn hasBlockSupport(\n\t\t\t\t\t\t\tcandidateBlockName,\n\t\t\t\t\t\t\t'__experimentalSettings',\n\t\t\t\t\t\t\tfalse\n\t\t\t\t\t\t);\n\t\t\t\t } )\n\t\t\t\t: [];\n\n\t\t\treturn paths.map( ( path ) => {\n\t\t\t\tif ( blockedPaths.includes( path ) ) {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t'Top level useSetting paths are disabled. Please use a subpath to query the information needed.'\n\t\t\t\t\t);\n\t\t\t\t\treturn undefined;\n\t\t\t\t}\n\n\t\t\t\t// 0. Allow third parties to filter the block's settings at runtime.\n\t\t\t\tlet result = applyFilters(\n\t\t\t\t\t'blockEditor.useSetting.before',\n\t\t\t\t\tundefined,\n\t\t\t\t\tpath,\n\t\t\t\t\tclientId,\n\t\t\t\t\tblockName\n\t\t\t\t);\n\n\t\t\t\tif ( undefined !== result ) {\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\tconst normalizedPath = removeCustomPrefixes( path );\n\n\t\t\t\t// 1. Take settings from the block instance or its ancestors.\n\t\t\t\t// Start from the current block and work our way up the ancestors.\n\t\t\t\tfor ( const candidateClientId of candidates ) {\n\t\t\t\t\tconst candidateAtts =\n\t\t\t\t\t\tselect( blockEditorStore ).getBlockAttributes(\n\t\t\t\t\t\t\tcandidateClientId\n\t\t\t\t\t\t);\n\t\t\t\t\tresult =\n\t\t\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\t\t\tcandidateAtts.settings?.blocks?.[ blockName ],\n\t\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t\t) ??\n\t\t\t\t\t\tgetValueFromObjectPath(\n\t\t\t\t\t\t\tcandidateAtts.settings,\n\t\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t\t);\n\t\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\t\t// Stop the search for more distant ancestors and move on.\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// 2. Fall back to the settings from the block editor store (__experimentalFeatures).\n\t\t\t\tconst settings = select( blockEditorStore ).getSettings();\n\t\t\t\tif ( result === undefined && blockName ) {\n\t\t\t\t\tresult = getValueFromObjectPath(\n\t\t\t\t\t\tsettings.__experimentalFeatures?.blocks?.[ blockName ],\n\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif ( result === undefined ) {\n\t\t\t\t\tresult = getValueFromObjectPath(\n\t\t\t\t\t\tsettings.__experimentalFeatures,\n\t\t\t\t\t\tnormalizedPath\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// Return if the setting was found in either the block instance or the store.\n\t\t\t\tif ( result !== undefined ) {\n\t\t\t\t\tif ( PATHS_WITH_MERGE[ normalizedPath ] ) {\n\t\t\t\t\t\treturn mergeOrigins( result );\n\t\t\t\t\t}\n\t\t\t\t\treturn result;\n\t\t\t\t}\n\n\t\t\t\t// 3. Otherwise, use deprecated settings.\n\t\t\t\tconst deprecatedSettingsValue =\n\t\t\t\t\tdeprecatedFlags[ normalizedPath ]?.( settings );\n\t\t\t\tif ( deprecatedSettingsValue !== undefined ) {\n\t\t\t\t\treturn deprecatedSettingsValue;\n\t\t\t\t}\n\n\t\t\t\t// 4. Fallback for typography.dropCap:\n\t\t\t\t// This is only necessary to support typography.dropCap.\n\t\t\t\t// when __experimentalFeatures are not present (core without plugin).\n\t\t\t\t// To remove when __experimentalFeatures are ported to core.\n\t\t\t\treturn normalizedPath === 'typography.dropCap'\n\t\t\t\t\t? true\n\t\t\t\t\t: undefined;\n\t\t\t} );\n\t\t},\n\t\t[ blockName, clientId, paths ]\n\t);\n}\n\n/**\n * Hook that retrieves the given setting for the block instance in use.\n *\n * It looks up the setting first in the block instance hierarchy.\n * If none is found, it'll look it up in the block editor settings.\n *\n * @param {string} path The path to the setting.\n * @return {any} Returns the value defined for the setting.\n * @deprecated 6.4.0 Use useSettings instead.\n * @example\n * ```js\n * const isEnabled = useSetting( 'typography.dropCap' );\n * ```\n */\nexport function useSetting( path ) {\n\tdeprecated( 'wp.blockEditor.useSetting', {\n\t\tsince: '6.4',\n\t\talternative: 'wp.blockEditor.useSettings',\n\t\tnote: 'The new useSettings function can retrieve multiple settings at once, with better performance.',\n\t} );\n\n\tconst [ value ] = useSettings( path );\n\treturn value;\n}\n"],"mappings":"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"}
|