@wordpress/block-library 7.6.0 → 7.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +2 -0
- package/build/button/deprecated.js +175 -35
- package/build/button/deprecated.js.map +1 -1
- package/build/button/edit.js +1 -1
- package/build/button/edit.js.map +1 -1
- package/build/button/save.js +1 -1
- package/build/button/save.js.map +1 -1
- package/build/columns/index.js +3 -1
- package/build/columns/index.js.map +1 -1
- package/build/cover/deprecated.js +212 -207
- package/build/cover/deprecated.js.map +1 -1
- package/build/cover/edit/index.js +13 -3
- package/build/cover/edit/index.js.map +1 -1
- package/build/cover/save.js +18 -5
- package/build/cover/save.js.map +1 -1
- package/build/cover/shared.js +14 -17
- package/build/cover/shared.js.map +1 -1
- package/build/file/edit.js +1 -1
- package/build/file/edit.js.map +1 -1
- package/build/file/save.js +9 -1
- package/build/file/save.js.map +1 -1
- package/build/gallery/gap-styles.js +14 -4
- package/build/gallery/gap-styles.js.map +1 -1
- package/build/gallery/index.js +1 -1
- package/build/image/edit.js +5 -59
- package/build/image/edit.js.map +1 -1
- package/build/image/edit.native.js +56 -3
- package/build/image/edit.native.js.map +1 -1
- package/build/image/image.js +3 -13
- package/build/image/image.js.map +1 -1
- package/build/list-item/hooks/use-split.js +17 -3
- package/build/list-item/hooks/use-split.js.map +1 -1
- package/build/navigation-link/edit.js +31 -5
- package/build/navigation-link/edit.js.map +1 -1
- package/build/post-author-name/index.js +3 -0
- package/build/post-author-name/index.js.map +1 -1
- package/build/post-author-name/transforms.js +41 -0
- package/build/post-author-name/transforms.js.map +1 -0
- package/build/post-comments-form/form.js +11 -1
- package/build/post-comments-form/form.js.map +1 -1
- package/build/post-date/edit.js +13 -7
- package/build/post-date/edit.js.map +1 -1
- package/build/search/edit.js +1 -1
- package/build/search/edit.js.map +1 -1
- package/build/search/index.js +4 -0
- package/build/search/index.js.map +1 -1
- package/build/shortcode/edit.native.js +16 -13
- package/build/shortcode/edit.native.js.map +1 -1
- package/build/social-links/edit.js +2 -2
- package/build/social-links/edit.js.map +1 -1
- package/build/table-of-contents/edit.js +11 -3
- package/build/table-of-contents/edit.js.map +1 -1
- package/build-module/button/deprecated.js +175 -35
- package/build-module/button/deprecated.js.map +1 -1
- package/build-module/button/edit.js +2 -2
- package/build-module/button/edit.js.map +1 -1
- package/build-module/button/save.js +2 -2
- package/build-module/button/save.js.map +1 -1
- package/build-module/columns/index.js +3 -1
- package/build-module/columns/index.js.map +1 -1
- package/build-module/cover/deprecated.js +206 -198
- package/build-module/cover/deprecated.js.map +1 -1
- package/build-module/cover/edit/index.js +14 -4
- package/build-module/cover/edit/index.js.map +1 -1
- package/build-module/cover/save.js +19 -6
- package/build-module/cover/save.js.map +1 -1
- package/build-module/cover/shared.js +11 -12
- package/build-module/cover/shared.js.map +1 -1
- package/build-module/file/edit.js +2 -2
- package/build-module/file/edit.js.map +1 -1
- package/build-module/file/save.js +7 -2
- package/build-module/file/save.js.map +1 -1
- package/build-module/gallery/gap-styles.js +14 -4
- package/build-module/gallery/gap-styles.js.map +1 -1
- package/build-module/gallery/index.js +1 -1
- package/build-module/image/edit.js +5 -56
- package/build-module/image/edit.js.map +1 -1
- package/build-module/image/edit.native.js +57 -5
- package/build-module/image/edit.native.js.map +1 -1
- package/build-module/image/image.js +4 -14
- package/build-module/image/image.js.map +1 -1
- package/build-module/list-item/hooks/use-split.js +19 -5
- package/build-module/list-item/hooks/use-split.js.map +1 -1
- package/build-module/navigation-link/edit.js +31 -6
- package/build-module/navigation-link/edit.js.map +1 -1
- package/build-module/post-author-name/index.js +2 -0
- package/build-module/post-author-name/index.js.map +1 -1
- package/build-module/post-author-name/transforms.js +32 -0
- package/build-module/post-author-name/transforms.js.map +1 -0
- package/build-module/post-comments-form/form.js +7 -1
- package/build-module/post-comments-form/form.js.map +1 -1
- package/build-module/post-date/edit.js +15 -9
- package/build-module/post-date/edit.js.map +1 -1
- package/build-module/search/edit.js +2 -2
- package/build-module/search/edit.js.map +1 -1
- package/build-module/search/index.js +4 -0
- package/build-module/search/index.js.map +1 -1
- package/build-module/shortcode/edit.native.js +17 -13
- package/build-module/shortcode/edit.native.js.map +1 -1
- package/build-module/social-links/edit.js +2 -2
- package/build-module/social-links/edit.js.map +1 -1
- package/build-module/table-of-contents/edit.js +12 -4
- package/build-module/table-of-contents/edit.js.map +1 -1
- package/build-style/cover/style-rtl.css +32 -23
- package/build-style/cover/style.css +32 -23
- package/build-style/site-logo/style-rtl.css +4 -0
- package/build-style/site-logo/style.css +4 -0
- package/build-style/style-rtl.css +36 -23
- package/build-style/style.css +36 -23
- package/package.json +28 -28
- package/src/button/deprecated.js +145 -0
- package/src/button/edit.js +3 -1
- package/src/button/save.js +3 -1
- package/src/buttons/test/__snapshots__/edit.native.js.snap +1 -1
- package/src/buttons/test/edit.native.js +1 -1
- package/src/columns/block.json +3 -1
- package/src/cover/deprecated.js +230 -183
- package/src/cover/edit/index.js +25 -13
- package/src/cover/save.js +26 -13
- package/src/cover/shared.js +5 -7
- package/src/cover/style.scss +27 -22
- package/src/file/edit.js +5 -1
- package/src/file/save.js +14 -2
- package/src/gallery/block.json +1 -1
- package/src/gallery/gap-styles.js +21 -6
- package/src/gallery/index.php +23 -12
- package/src/image/edit.js +1 -53
- package/src/image/edit.native.js +65 -3
- package/src/image/image.js +2 -11
- package/src/image/styles.native.scss +11 -0
- package/src/list-item/hooks/use-split.js +18 -9
- package/src/navigation-link/edit.js +35 -5
- package/src/navigation-link/test/edit.js +0 -20
- package/src/post-author/index.php +3 -2
- package/src/post-author-name/index.js +2 -0
- package/src/post-author-name/index.php +1 -1
- package/src/post-author-name/transforms.js +25 -0
- package/src/post-comments/index.php +1 -1
- package/src/post-comments-form/form.js +11 -1
- package/src/post-comments-form/index.php +1 -1
- package/src/post-date/edit.js +4 -3
- package/src/query-pagination/index.php +0 -1
- package/src/search/block.json +4 -0
- package/src/search/edit.js +3 -1
- package/src/search/index.php +28 -15
- package/src/shortcode/edit.native.js +29 -15
- package/src/shortcode/style.native.scss +11 -4
- package/src/shortcode/test/__snapshots__/edit.native.js.snap +9 -0
- package/src/shortcode/test/edit.native.js +58 -40
- package/src/site-logo/style.scss +6 -0
- package/src/social-links/edit.js +11 -10
- package/src/table-of-contents/edit.js +19 -6
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["classnames","useBlockProps","BlockControls","InspectorControls","RichText","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","store","blockEditorStore","useDispatch","useSelect","useEffect","ToolbarDropdownMenu","ToolbarGroup","Button","ButtonGroup","ToolbarButton","ResizableBox","PanelBody","BaseControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalUnitControl","UnitControl","useInstanceId","Icon","search","__","__unstableStripHTML","stripHTML","buttonOnly","buttonOutside","buttonInside","noButton","buttonWithIcon","toggleLabel","PC_WIDTH_DEFAULT","PX_WIDTH_DEFAULT","MIN_WIDTH","MIN_WIDTH_UNIT","DEFAULT_INNER_PADDING","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","unitControlInstanceId","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","units","availableUnits","defaultValues","px","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","onClick","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","event","target","value","renderButton","buttonClasses","buttonStyles","html","controls","newWidth","filteredWidth","parseInt","newUnit","maxWidth","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tstore as blockEditorStore,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tuseEffect( () => {\n\t\tif ( ! insertedInNavigationBlock ) return;\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}, [ insertedInNavigationBlock ] );\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className\n\t\t);\n\t\tconst textFieldStyles = isButtonPositionInside\n\t\t\t? { borderRadius }\n\t\t\t: borderProps.style;\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t`${ widthValue }%` ===\n\t\t\t\t\t\t\t\t\t\t\t`${ width }${ widthUnit }`\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst {\n\t\t\t\t\ttopLeft,\n\t\t\t\t\ttopRight,\n\t\t\t\t\tbottomLeft,\n\t\t\t\t\tbottomRight,\n\t\t\t\t} = borderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName=\"wp-block-search__label\"\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside || isButtonPositionOutside ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasOnlyButton && renderButton() }\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/search/edit.js"],"names":["classnames","useBlockProps","BlockControls","InspectorControls","RichText","__experimentalUseBorderProps","useBorderProps","__experimentalUseColorProps","useColorProps","store","blockEditorStore","__experimentalElementButtonClassName","useDispatch","useSelect","useEffect","ToolbarDropdownMenu","ToolbarGroup","Button","ButtonGroup","ToolbarButton","ResizableBox","PanelBody","BaseControl","__experimentalUseCustomUnits","useCustomUnits","__experimentalUnitControl","UnitControl","useInstanceId","Icon","search","__","__unstableStripHTML","stripHTML","buttonOnly","buttonOutside","buttonInside","noButton","buttonWithIcon","toggleLabel","PC_WIDTH_DEFAULT","PX_WIDTH_DEFAULT","MIN_WIDTH","MIN_WIDTH_UNIT","DEFAULT_INNER_PADDING","SearchEdit","className","attributes","setAttributes","toggleSelection","isSelected","clientId","label","showLabel","placeholder","width","widthUnit","align","buttonText","buttonPosition","buttonUseIcon","style","insertedInNavigationBlock","select","getBlockParentsByBlockName","wasBlockJustInserted","length","__unstableMarkNextChangeAsNotPersistent","borderRadius","border","radius","borderProps","colorProps","unitControlInstanceId","unitControlInputId","isButtonPositionInside","isButtonPositionOutside","hasNoButton","hasOnlyButton","units","availableUnits","defaultValues","px","getBlockClassNames","undefined","buttonPositionControls","role","title","isActive","icon","onClick","getButtonPositionIcon","getResizableSides","right","left","renderTextField","textFieldClasses","textFieldStyles","event","target","value","renderButton","buttonClasses","buttonStyles","html","controls","newWidth","filteredWidth","parseInt","newUnit","maxWidth","map","widthValue","padBorderRadius","getWrapperStyles","styles","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","isNonZeroBorderRadius","topLeft","topRight","bottomLeft","bottomRight","Number","isInteger","blockProps","direction","elt","offsetWidth","delta"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tuseBlockProps,\n\tBlockControls,\n\tInspectorControls,\n\tRichText,\n\t__experimentalUseBorderProps as useBorderProps,\n\t__experimentalUseColorProps as useColorProps,\n\tstore as blockEditorStore,\n\t__experimentalElementButtonClassName,\n} from '@wordpress/block-editor';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { useEffect } from '@wordpress/element';\nimport {\n\tToolbarDropdownMenu,\n\tToolbarGroup,\n\tButton,\n\tButtonGroup,\n\tToolbarButton,\n\tResizableBox,\n\tPanelBody,\n\tBaseControl,\n\t__experimentalUseCustomUnits as useCustomUnits,\n\t__experimentalUnitControl as UnitControl,\n} from '@wordpress/components';\nimport { useInstanceId } from '@wordpress/compose';\nimport { Icon, search } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\n\n/**\n * Internal dependencies\n */\nimport {\n\tbuttonOnly,\n\tbuttonOutside,\n\tbuttonInside,\n\tnoButton,\n\tbuttonWithIcon,\n\ttoggleLabel,\n} from './icons';\nimport {\n\tPC_WIDTH_DEFAULT,\n\tPX_WIDTH_DEFAULT,\n\tMIN_WIDTH,\n\tMIN_WIDTH_UNIT,\n} from './utils.js';\n\n// Used to calculate border radius adjustment to avoid \"fat\" corners when\n// button is placed inside wrapper.\nconst DEFAULT_INNER_PADDING = '4px';\n\nexport default function SearchEdit( {\n\tclassName,\n\tattributes,\n\tsetAttributes,\n\ttoggleSelection,\n\tisSelected,\n\tclientId,\n} ) {\n\tconst {\n\t\tlabel,\n\t\tshowLabel,\n\t\tplaceholder,\n\t\twidth,\n\t\twidthUnit,\n\t\talign,\n\t\tbuttonText,\n\t\tbuttonPosition,\n\t\tbuttonUseIcon,\n\t\tstyle,\n\t} = attributes;\n\n\tconst insertedInNavigationBlock = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockParentsByBlockName, wasBlockJustInserted } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\treturn (\n\t\t\t\t!! getBlockParentsByBlockName( clientId, 'core/navigation' )\n\t\t\t\t\t?.length && wasBlockJustInserted( clientId )\n\t\t\t);\n\t\t},\n\t\t[ clientId ]\n\t);\n\tconst { __unstableMarkNextChangeAsNotPersistent } = useDispatch(\n\t\tblockEditorStore\n\t);\n\tuseEffect( () => {\n\t\tif ( ! insertedInNavigationBlock ) return;\n\t\t// This side-effect should not create an undo level.\n\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\tsetAttributes( {\n\t\t\tshowLabel: false,\n\t\t\tbuttonUseIcon: true,\n\t\t\tbuttonPosition: 'button-inside',\n\t\t} );\n\t}, [ insertedInNavigationBlock ] );\n\tconst borderRadius = style?.border?.radius;\n\tconst borderProps = useBorderProps( attributes );\n\n\t// Check for old deprecated numerical border radius. Done as a separate\n\t// check so that a borderRadius style won't overwrite the longhand\n\t// per-corner styles.\n\tif ( typeof borderRadius === 'number' ) {\n\t\tborderProps.style.borderRadius = `${ borderRadius }px`;\n\t}\n\n\tconst colorProps = useColorProps( attributes );\n\tconst unitControlInstanceId = useInstanceId( UnitControl );\n\tconst unitControlInputId = `wp-block-search__width-${ unitControlInstanceId }`;\n\tconst isButtonPositionInside = 'button-inside' === buttonPosition;\n\tconst isButtonPositionOutside = 'button-outside' === buttonPosition;\n\tconst hasNoButton = 'no-button' === buttonPosition;\n\tconst hasOnlyButton = 'button-only' === buttonPosition;\n\n\tconst units = useCustomUnits( {\n\t\tavailableUnits: [ '%', 'px' ],\n\t\tdefaultValues: { '%': PC_WIDTH_DEFAULT, px: PX_WIDTH_DEFAULT },\n\t} );\n\n\tconst getBlockClassNames = () => {\n\t\treturn classnames(\n\t\t\tclassName,\n\t\t\tisButtonPositionInside\n\t\t\t\t? 'wp-block-search__button-inside'\n\t\t\t\t: undefined,\n\t\t\tisButtonPositionOutside\n\t\t\t\t? 'wp-block-search__button-outside'\n\t\t\t\t: undefined,\n\t\t\thasNoButton ? 'wp-block-search__no-button' : undefined,\n\t\t\thasOnlyButton ? 'wp-block-search__button-only' : undefined,\n\t\t\t! buttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__text-button'\n\t\t\t\t: undefined,\n\t\t\tbuttonUseIcon && ! hasNoButton\n\t\t\t\t? 'wp-block-search__icon-button'\n\t\t\t\t: undefined\n\t\t);\n\t};\n\n\tconst buttonPositionControls = [\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button outside' ),\n\t\t\tisActive: buttonPosition === 'button-outside',\n\t\t\ticon: buttonOutside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-outside',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'Button inside' ),\n\t\t\tisActive: buttonPosition === 'button-inside',\n\t\t\ticon: buttonInside,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'button-inside',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t\t{\n\t\t\trole: 'menuitemradio',\n\t\t\ttitle: __( 'No button' ),\n\t\t\tisActive: buttonPosition === 'no-button',\n\t\t\ticon: noButton,\n\t\t\tonClick: () => {\n\t\t\t\tsetAttributes( {\n\t\t\t\t\tbuttonPosition: 'no-button',\n\t\t\t\t} );\n\t\t\t},\n\t\t},\n\t];\n\n\tconst getButtonPositionIcon = () => {\n\t\tswitch ( buttonPosition ) {\n\t\t\tcase 'button-inside':\n\t\t\t\treturn buttonInside;\n\t\t\tcase 'button-outside':\n\t\t\t\treturn buttonOutside;\n\t\t\tcase 'no-button':\n\t\t\t\treturn noButton;\n\t\t\tcase 'button-only':\n\t\t\t\treturn buttonOnly;\n\t\t}\n\t};\n\n\tconst getResizableSides = () => {\n\t\tif ( hasOnlyButton ) {\n\t\t\treturn {};\n\t\t}\n\n\t\treturn {\n\t\t\tright: align !== 'right',\n\t\t\tleft: align === 'right',\n\t\t};\n\t};\n\n\tconst renderTextField = () => {\n\t\t// If the input is inside the wrapper, the wrapper gets the border color styles/classes, not the input control.\n\t\tconst textFieldClasses = classnames(\n\t\t\t'wp-block-search__input',\n\t\t\tisButtonPositionInside ? undefined : borderProps.className\n\t\t);\n\t\tconst textFieldStyles = isButtonPositionInside\n\t\t\t? { borderRadius }\n\t\t\t: borderProps.style;\n\n\t\treturn (\n\t\t\t<input\n\t\t\t\ttype=\"search\"\n\t\t\t\tclassName={ textFieldClasses }\n\t\t\t\tstyle={ textFieldStyles }\n\t\t\t\taria-label={ __( 'Optional placeholder text' ) }\n\t\t\t\t// We hide the placeholder field's placeholder when there is a value. This\n\t\t\t\t// stops screen readers from reading the placeholder field's placeholder\n\t\t\t\t// which is confusing.\n\t\t\t\tplaceholder={\n\t\t\t\t\tplaceholder ? undefined : __( 'Optional placeholder…' )\n\t\t\t\t}\n\t\t\t\tvalue={ placeholder }\n\t\t\t\tonChange={ ( event ) =>\n\t\t\t\t\tsetAttributes( { placeholder: event.target.value } )\n\t\t\t\t}\n\t\t\t/>\n\t\t);\n\t};\n\n\tconst renderButton = () => {\n\t\t// If the button is inside the wrapper, the wrapper gets the border color styles/classes, not the button.\n\t\tconst buttonClasses = classnames(\n\t\t\t'wp-block-search__button',\n\t\t\tcolorProps.className,\n\t\t\tisButtonPositionInside ? undefined : borderProps.className,\n\t\t\tbuttonUseIcon ? 'has-icon' : undefined,\n\t\t\t__experimentalElementButtonClassName\n\t\t);\n\t\tconst buttonStyles = {\n\t\t\t...colorProps.style,\n\t\t\t...( isButtonPositionInside\n\t\t\t\t? { borderRadius }\n\t\t\t\t: borderProps.style ),\n\t\t};\n\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ buttonUseIcon && (\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={\n\t\t\t\t\t\t\tbuttonText\n\t\t\t\t\t\t\t\t? stripHTML( buttonText )\n\t\t\t\t\t\t\t\t: __( 'Search' )\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t<Icon icon={ search } />\n\t\t\t\t\t</button>\n\t\t\t\t) }\n\n\t\t\t\t{ ! buttonUseIcon && (\n\t\t\t\t\t<RichText\n\t\t\t\t\t\tclassName={ buttonClasses }\n\t\t\t\t\t\tstyle={ buttonStyles }\n\t\t\t\t\t\taria-label={ __( 'Button text' ) }\n\t\t\t\t\t\tplaceholder={ __( 'Add button text…' ) }\n\t\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\t\tvalue={ buttonText }\n\t\t\t\t\t\tonChange={ ( html ) =>\n\t\t\t\t\t\t\tsetAttributes( { buttonText: html } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</>\n\t\t);\n\t};\n\n\tconst controls = (\n\t\t<>\n\t\t\t<BlockControls>\n\t\t\t\t<ToolbarGroup>\n\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\ttitle={ __( 'Toggle search label' ) }\n\t\t\t\t\t\ticon={ toggleLabel }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\tshowLabel: ! showLabel,\n\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tclassName={ showLabel ? 'is-pressed' : undefined }\n\t\t\t\t\t/>\n\t\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\t\ticon={ getButtonPositionIcon() }\n\t\t\t\t\t\tlabel={ __( 'Change button position' ) }\n\t\t\t\t\t\tcontrols={ buttonPositionControls }\n\t\t\t\t\t/>\n\t\t\t\t\t{ ! hasNoButton && (\n\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\ttitle={ __( 'Use button with icon' ) }\n\t\t\t\t\t\t\ticon={ buttonWithIcon }\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\tbuttonUseIcon: ! buttonUseIcon,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\tbuttonUseIcon ? 'is-pressed' : undefined\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</ToolbarGroup>\n\t\t\t</BlockControls>\n\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Display Settings' ) }>\n\t\t\t\t\t<BaseControl\n\t\t\t\t\t\tlabel={ __( 'Width' ) }\n\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t>\n\t\t\t\t\t\t<UnitControl\n\t\t\t\t\t\t\tid={ unitControlInputId }\n\t\t\t\t\t\t\tmin={ `${ MIN_WIDTH }${ MIN_WIDTH_UNIT }` }\n\t\t\t\t\t\t\tonChange={ ( newWidth ) => {\n\t\t\t\t\t\t\t\tconst filteredWidth =\n\t\t\t\t\t\t\t\t\twidthUnit === '%' &&\n\t\t\t\t\t\t\t\t\tparseInt( newWidth, 10 ) > 100\n\t\t\t\t\t\t\t\t\t\t? 100\n\t\t\t\t\t\t\t\t\t\t: newWidth;\n\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth: parseInt( filteredWidth, 10 ),\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tonUnitChange={ ( newUnit ) => {\n\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\twidth:\n\t\t\t\t\t\t\t\t\t\t'%' === newUnit\n\t\t\t\t\t\t\t\t\t\t\t? PC_WIDTH_DEFAULT\n\t\t\t\t\t\t\t\t\t\t\t: PX_WIDTH_DEFAULT,\n\t\t\t\t\t\t\t\t\twidthUnit: newUnit,\n\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tstyle={ { maxWidth: 80 } }\n\t\t\t\t\t\t\tvalue={ `${ width }${ widthUnit }` }\n\t\t\t\t\t\t\tunits={ units }\n\t\t\t\t\t\t/>\n\n\t\t\t\t\t\t<ButtonGroup\n\t\t\t\t\t\t\tclassName=\"wp-block-search__components-button-group\"\n\t\t\t\t\t\t\taria-label={ __( 'Percentage Width' ) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ [ 25, 50, 75, 100 ].map( ( widthValue ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tkey={ widthValue }\n\t\t\t\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\t\t\t\tvariant={\n\t\t\t\t\t\t\t\t\t\t\t`${ widthValue }%` ===\n\t\t\t\t\t\t\t\t\t\t\t`${ width }${ widthUnit }`\n\t\t\t\t\t\t\t\t\t\t\t\t? 'primary'\n\t\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\twidth: widthValue,\n\t\t\t\t\t\t\t\t\t\t\t\twidthUnit: '%',\n\t\t\t\t\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ widthValue }%\n\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</ButtonGroup>\n\t\t\t\t\t</BaseControl>\n\t\t\t\t</PanelBody>\n\t\t\t</InspectorControls>\n\t\t</>\n\t);\n\n\tconst padBorderRadius = ( radius ) =>\n\t\tradius ? `calc(${ radius } + ${ DEFAULT_INNER_PADDING })` : undefined;\n\n\tconst getWrapperStyles = () => {\n\t\tconst styles = isButtonPositionInside\n\t\t\t? borderProps.style\n\t\t\t: {\n\t\t\t\t\tborderRadius: borderProps.style?.borderRadius,\n\t\t\t\t\tborderTopLeftRadius: borderProps.style?.borderTopLeftRadius,\n\t\t\t\t\tborderTopRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderTopRightRadius,\n\t\t\t\t\tborderBottomLeftRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomLeftRadius,\n\t\t\t\t\tborderBottomRightRadius:\n\t\t\t\t\t\tborderProps.style?.borderBottomRightRadius,\n\t\t\t };\n\n\t\tconst isNonZeroBorderRadius =\n\t\t\tborderRadius !== undefined && parseInt( borderRadius, 10 ) !== 0;\n\n\t\tif ( isButtonPositionInside && isNonZeroBorderRadius ) {\n\t\t\t// We have button inside wrapper and a border radius value to apply.\n\t\t\t// Add default padding so we don't get \"fat\" corners.\n\t\t\t//\n\t\t\t// CSS calc() is used here to support non-pixel units. The inline\n\t\t\t// style using calc() will only apply if both values have units.\n\n\t\t\tif ( typeof borderRadius === 'object' ) {\n\t\t\t\t// Individual corner border radii present.\n\t\t\t\tconst {\n\t\t\t\t\ttopLeft,\n\t\t\t\t\ttopRight,\n\t\t\t\t\tbottomLeft,\n\t\t\t\t\tbottomRight,\n\t\t\t\t} = borderRadius;\n\n\t\t\t\treturn {\n\t\t\t\t\t...styles,\n\t\t\t\t\tborderTopLeftRadius: padBorderRadius( topLeft ),\n\t\t\t\t\tborderTopRightRadius: padBorderRadius( topRight ),\n\t\t\t\t\tborderBottomLeftRadius: padBorderRadius( bottomLeft ),\n\t\t\t\t\tborderBottomRightRadius: padBorderRadius( bottomRight ),\n\t\t\t\t};\n\t\t\t}\n\n\t\t\t// The inline style using calc() will only apply if both values\n\t\t\t// supplied to calc() have units. Deprecated block's may have\n\t\t\t// unitless integer.\n\t\t\tconst radius = Number.isInteger( borderRadius )\n\t\t\t\t? `${ borderRadius }px`\n\t\t\t\t: borderRadius;\n\n\t\t\tstyles.borderRadius = `calc(${ radius } + ${ DEFAULT_INNER_PADDING })`;\n\t\t}\n\n\t\treturn styles;\n\t};\n\n\tconst blockProps = useBlockProps( {\n\t\tclassName: getBlockClassNames(),\n\t} );\n\n\treturn (\n\t\t<div { ...blockProps }>\n\t\t\t{ controls }\n\n\t\t\t{ showLabel && (\n\t\t\t\t<RichText\n\t\t\t\t\tclassName=\"wp-block-search__label\"\n\t\t\t\t\taria-label={ __( 'Label text' ) }\n\t\t\t\t\tplaceholder={ __( 'Add label…' ) }\n\t\t\t\t\twithoutInteractiveFormatting\n\t\t\t\t\tvalue={ label }\n\t\t\t\t\tonChange={ ( html ) => setAttributes( { label: html } ) }\n\t\t\t\t/>\n\t\t\t) }\n\n\t\t\t<ResizableBox\n\t\t\t\tsize={ {\n\t\t\t\t\twidth: `${ width }${ widthUnit }`,\n\t\t\t\t} }\n\t\t\t\tclassName={ classnames(\n\t\t\t\t\t'wp-block-search__inside-wrapper',\n\t\t\t\t\tisButtonPositionInside ? borderProps.className : undefined\n\t\t\t\t) }\n\t\t\t\tstyle={ getWrapperStyles() }\n\t\t\t\tminWidth={ MIN_WIDTH }\n\t\t\t\tenable={ getResizableSides() }\n\t\t\t\tonResizeStart={ ( event, direction, elt ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( elt.offsetWidth, 10 ),\n\t\t\t\t\t\twidthUnit: 'px',\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( false );\n\t\t\t\t} }\n\t\t\t\tonResizeStop={ ( event, direction, elt, delta ) => {\n\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\twidth: parseInt( width + delta.width, 10 ),\n\t\t\t\t\t} );\n\t\t\t\t\ttoggleSelection( true );\n\t\t\t\t} }\n\t\t\t\tshowHandle={ isSelected }\n\t\t\t>\n\t\t\t\t{ ( isButtonPositionInside || isButtonPositionOutside ) && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ renderTextField() }\n\t\t\t\t\t\t{ renderButton() }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\n\t\t\t\t{ hasOnlyButton && renderButton() }\n\t\t\t\t{ hasNoButton && renderTextField() }\n\t\t\t</ResizableBox>\n\t\t</div>\n\t);\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["search","icon","edit","variations","name","metadata","settings","example"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/search/index.js"],"names":["search","icon","edit","variations","name","metadata","settings","example"],"mappings":"AAAA;AACA;AACA;AACA,SAASA,MAAM,IAAIC,IAAnB,QAA+B,kBAA/B;AAEA;AACA;AACA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,OAAOC,IAAP,MAAiB,QAAjB;AACA,OAAOC,UAAP,MAAuB,cAAvB;AAEA,MAAM;AAAEC,EAAAA;AAAF,IAAWC,QAAjB;AAEA,SAASA,QAAT,EAAmBD,IAAnB;AAEA,OAAO,MAAME,QAAQ,GAAG;AACvBL,EAAAA,IADuB;AAEvBM,EAAAA,OAAO,EAAE,EAFc;AAGvBJ,EAAAA,UAHuB;AAIvBD,EAAAA;AAJuB,CAAjB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { search as icon } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport metadata from './block.json';\nimport edit from './edit';\nimport variations from './variations';\n\nconst { name } = metadata;\n\nexport { metadata, name };\n\nexport const settings = {\n\ticon,\n\texample: {},\n\tvariations,\n\tedit,\n};\n"]}
|
|
@@ -11,6 +11,7 @@ import { View, Text } from 'react-native';
|
|
|
11
11
|
import { __ } from '@wordpress/i18n';
|
|
12
12
|
import { PlainText } from '@wordpress/block-editor';
|
|
13
13
|
import { withPreferredColorScheme } from '@wordpress/compose';
|
|
14
|
+
import { useCallback } from '@wordpress/element';
|
|
14
15
|
/**
|
|
15
16
|
* Internal dependencies
|
|
16
17
|
*/
|
|
@@ -22,30 +23,33 @@ export function ShortcodeEdit(props) {
|
|
|
22
23
|
setAttributes,
|
|
23
24
|
onFocus,
|
|
24
25
|
onBlur,
|
|
25
|
-
getStylesFromColorScheme
|
|
26
|
+
getStylesFromColorScheme,
|
|
27
|
+
blockWidth
|
|
26
28
|
} = props;
|
|
27
29
|
const titleStyle = getStylesFromColorScheme(styles.blockTitle, styles.blockTitleDark);
|
|
30
|
+
const shortcodeContainerStyle = getStylesFromColorScheme(styles.blockShortcodeContainer, styles.blockShortcodeContainerDark);
|
|
28
31
|
const shortcodeStyle = getStylesFromColorScheme(styles.blockShortcode, styles.blockShortcodeDark);
|
|
29
32
|
const placeholderStyle = getStylesFromColorScheme(styles.placeholder, styles.placeholderDark);
|
|
33
|
+
const maxWidth = blockWidth - shortcodeContainerStyle.paddingLeft + shortcodeContainerStyle.paddingRight;
|
|
34
|
+
const onChange = useCallback(text => setAttributes({
|
|
35
|
+
text
|
|
36
|
+
}), [setAttributes]);
|
|
30
37
|
return createElement(View, null, createElement(Text, {
|
|
31
38
|
style: titleStyle
|
|
32
|
-
}, __('Shortcode')), createElement(
|
|
39
|
+
}, __('Shortcode')), createElement(View, {
|
|
40
|
+
style: shortcodeContainerStyle
|
|
41
|
+
}, createElement(PlainText, {
|
|
42
|
+
__experimentalVersion: 2,
|
|
33
43
|
value: attributes.text,
|
|
34
44
|
style: shortcodeStyle,
|
|
35
|
-
|
|
36
|
-
underlineColorAndroid: "transparent",
|
|
37
|
-
onChange: text => setAttributes({
|
|
38
|
-
text
|
|
39
|
-
}),
|
|
45
|
+
onChange: onChange,
|
|
40
46
|
placeholder: __('Add a shortcode…'),
|
|
41
|
-
"aria-label": __('Shortcode'),
|
|
42
|
-
isSelected: props.isSelected,
|
|
43
47
|
onFocus: onFocus,
|
|
44
48
|
onBlur: onBlur,
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}));
|
|
49
|
+
placeholderTextColor: placeholderStyle.color,
|
|
50
|
+
maxWidth: maxWidth,
|
|
51
|
+
disableAutocorrection: true
|
|
52
|
+
})));
|
|
49
53
|
}
|
|
50
54
|
export default withPreferredColorScheme(ShortcodeEdit);
|
|
51
55
|
//# sourceMappingURL=edit.native.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/shortcode/edit.native.js"],"names":["View","Text","__","PlainText","withPreferredColorScheme","styles","ShortcodeEdit","props","attributes","setAttributes","onFocus","onBlur","getStylesFromColorScheme","titleStyle","blockTitle","blockTitleDark","shortcodeStyle","blockShortcode","blockShortcodeDark","placeholderStyle","placeholder","placeholderDark","
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/shortcode/edit.native.js"],"names":["View","Text","__","PlainText","withPreferredColorScheme","useCallback","styles","ShortcodeEdit","props","attributes","setAttributes","onFocus","onBlur","getStylesFromColorScheme","blockWidth","titleStyle","blockTitle","blockTitleDark","shortcodeContainerStyle","blockShortcodeContainer","blockShortcodeContainerDark","shortcodeStyle","blockShortcode","blockShortcodeDark","placeholderStyle","placeholder","placeholderDark","maxWidth","paddingLeft","paddingRight","onChange","text","color"],"mappings":";;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,IAAf,QAA2B,cAA3B;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AACA,SAASC,SAAT,QAA0B,yBAA1B;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AACA,SAASC,WAAT,QAA4B,oBAA5B;AAEA;AACA;AACA;;AAEA,OAAOC,MAAP,MAAmB,cAAnB;AAEA,OAAO,SAASC,aAAT,CAAwBC,KAAxB,EAAgC;AACtC,QAAM;AACLC,IAAAA,UADK;AAELC,IAAAA,aAFK;AAGLC,IAAAA,OAHK;AAILC,IAAAA,MAJK;AAKLC,IAAAA,wBALK;AAMLC,IAAAA;AANK,MAOFN,KAPJ;AAQA,QAAMO,UAAU,GAAGF,wBAAwB,CAC1CP,MAAM,CAACU,UADmC,EAE1CV,MAAM,CAACW,cAFmC,CAA3C;AAIA,QAAMC,uBAAuB,GAAGL,wBAAwB,CACvDP,MAAM,CAACa,uBADgD,EAEvDb,MAAM,CAACc,2BAFgD,CAAxD;AAIA,QAAMC,cAAc,GAAGR,wBAAwB,CAC9CP,MAAM,CAACgB,cADuC,EAE9ChB,MAAM,CAACiB,kBAFuC,CAA/C;AAIA,QAAMC,gBAAgB,GAAGX,wBAAwB,CAChDP,MAAM,CAACmB,WADyC,EAEhDnB,MAAM,CAACoB,eAFyC,CAAjD;AAKA,QAAMC,QAAQ,GACbb,UAAU,GACVI,uBAAuB,CAACU,WADxB,GAEAV,uBAAuB,CAACW,YAHzB;AAKA,QAAMC,QAAQ,GAAGzB,WAAW,CAAI0B,IAAF,IAAYrB,aAAa,CAAE;AAAEqB,IAAAA;AAAF,GAAF,CAA3B,EAAyC,CACpErB,aADoE,CAAzC,CAA5B;AAIA,SACC,cAAC,IAAD,QACC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGK;AAAd,KAA6Bb,EAAE,CAAE,WAAF,CAA/B,CADD,EAEC,cAAC,IAAD;AAAM,IAAA,KAAK,EAAGgB;AAAd,KACC,cAAC,SAAD;AACC,IAAA,qBAAqB,EAAG,CADzB;AAEC,IAAA,KAAK,EAAGT,UAAU,CAACsB,IAFpB;AAGC,IAAA,KAAK,EAAGV,cAHT;AAIC,IAAA,QAAQ,EAAGS,QAJZ;AAKC,IAAA,WAAW,EAAG5B,EAAE,CAAE,kBAAF,CALjB;AAMC,IAAA,OAAO,EAAGS,OANX;AAOC,IAAA,MAAM,EAAGC,MAPV;AAQC,IAAA,oBAAoB,EAAGY,gBAAgB,CAACQ,KARzC;AASC,IAAA,QAAQ,EAAGL,QATZ;AAUC,IAAA,qBAAqB;AAVtB,IADD,CAFD,CADD;AAmBA;AAED,eAAevB,wBAAwB,CAAEG,aAAF,CAAvC","sourcesContent":["/**\n * External dependencies\n */\nimport { View, Text } from 'react-native';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { PlainText } from '@wordpress/block-editor';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { useCallback } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport styles from './style.scss';\n\nexport function ShortcodeEdit( props ) {\n\tconst {\n\t\tattributes,\n\t\tsetAttributes,\n\t\tonFocus,\n\t\tonBlur,\n\t\tgetStylesFromColorScheme,\n\t\tblockWidth,\n\t} = props;\n\tconst titleStyle = getStylesFromColorScheme(\n\t\tstyles.blockTitle,\n\t\tstyles.blockTitleDark\n\t);\n\tconst shortcodeContainerStyle = getStylesFromColorScheme(\n\t\tstyles.blockShortcodeContainer,\n\t\tstyles.blockShortcodeContainerDark\n\t);\n\tconst shortcodeStyle = getStylesFromColorScheme(\n\t\tstyles.blockShortcode,\n\t\tstyles.blockShortcodeDark\n\t);\n\tconst placeholderStyle = getStylesFromColorScheme(\n\t\tstyles.placeholder,\n\t\tstyles.placeholderDark\n\t);\n\n\tconst maxWidth =\n\t\tblockWidth -\n\t\tshortcodeContainerStyle.paddingLeft +\n\t\tshortcodeContainerStyle.paddingRight;\n\n\tconst onChange = useCallback( ( text ) => setAttributes( { text } ), [\n\t\tsetAttributes,\n\t] );\n\n\treturn (\n\t\t<View>\n\t\t\t<Text style={ titleStyle }>{ __( 'Shortcode' ) }</Text>\n\t\t\t<View style={ shortcodeContainerStyle }>\n\t\t\t\t<PlainText\n\t\t\t\t\t__experimentalVersion={ 2 }\n\t\t\t\t\tvalue={ attributes.text }\n\t\t\t\t\tstyle={ shortcodeStyle }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\tplaceholder={ __( 'Add a shortcode…' ) }\n\t\t\t\t\tonFocus={ onFocus }\n\t\t\t\t\tonBlur={ onBlur }\n\t\t\t\t\tplaceholderTextColor={ placeholderStyle.color }\n\t\t\t\t\tmaxWidth={ maxWidth }\n\t\t\t\t\tdisableAutocorrection\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</View>\n\t);\n}\n\nexport default withPreferredColorScheme( ShortcodeEdit );\n"]}
|
|
@@ -183,11 +183,11 @@ export function SocialLinksEdit(props) {
|
|
|
183
183
|
__experimentalIsRenderedInSidebar: true,
|
|
184
184
|
title: __('Color'),
|
|
185
185
|
colorSettings: colorSettings
|
|
186
|
-
}
|
|
186
|
+
}, !logosOnly && createElement(ContrastChecker, {
|
|
187
187
|
textColor: iconColorValue,
|
|
188
188
|
backgroundColor: iconBackgroundColorValue,
|
|
189
189
|
isLargeText: false
|
|
190
|
-
})), createElement("ul", innerBlocksProps));
|
|
190
|
+
}))), createElement("ul", innerBlocksProps));
|
|
191
191
|
}
|
|
192
192
|
const iconColorAttributes = {
|
|
193
193
|
iconColor: 'icon-color',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/social-links/edit.js"],"names":["classNames","getBlockSupport","Fragment","useEffect","useRef","BlockControls","useInnerBlocksProps","useBlockProps","InspectorControls","ContrastChecker","PanelColorSettings","withColors","MenuGroup","MenuItem","PanelBody","ToggleControl","ToolbarDropdownMenu","__","check","ALLOWED_BLOCKS","sizeOptions","name","value","getDefaultBlockLayout","blockTypeOrName","layoutBlockSupportConfig","default","SocialLinksEdit","props","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","customIconBackgroundColor","iconColorValue","openInNewTab","showLabels","size","layout","usedLayout","logosOnly","className","includes","backgroundBackup","current","undefined","SocialPlaceholder","SelectedSocialPlaceholder","color","blockProps","innerBlocksProps","allowedBlocks","placeholder","templateLock","__experimentalAppenderTagName","__experimentalLayout","POPOVER_PROPS","position","colorSettings","onChange","colorValue","label","push","onClose","map","entry","textColor","backgroundColor","iconColorAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { Fragment, useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\tPanelColorSettings,\n\twithColors,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPanelBody,\n\tToggleControl,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\n\nconst ALLOWED_BLOCKS = [ 'core/social-link' ];\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nconst getDefaultBlockLayout = ( blockTypeOrName ) => {\n\tconst layoutBlockSupportConfig = getBlockSupport(\n\t\tblockTypeOrName,\n\t\t'__experimentalLayout'\n\t);\n\treturn layoutBlockSupportConfig?.default;\n};\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tname,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\tcustomIconBackgroundColor,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t\tlayout,\n\t} = attributes;\n\tconst usedLayout = layout || getDefaultBlockLayout( name );\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tconst backgroundBackup = useRef( {} );\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tbackgroundBackup.current = {\n\t\t\t\ticonBackgroundColor,\n\t\t\t\ticonBackgroundColorValue,\n\t\t\t\tcustomIconBackgroundColor,\n\t\t\t};\n\t\t\tsetAttributes( {\n\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( { ...backgroundBackup.current } );\n\t\t}\n\t}, [ logosOnly ] );\n\n\tconst SocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-placeholder\">\n\t\t\t<div className=\"wp-block-social-links__social-placeholder-icons\">\n\t\t\t\t<div className=\"wp-social-link wp-social-link-twitter\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-facebook\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-instagram\"></div>\n\t\t\t</div>\n\t\t</li>\n\t);\n\n\tconst SelectedSocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-prompt\">\n\t\t\t{ __( 'Click plus to add' ) }\n\t\t</li>\n\t);\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = classNames( size, {\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tplaceholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,\n\t\ttemplateLock: false,\n\t\t__experimentalAppenderTagName: 'li',\n\t\t__experimentalLayout: usedLayout,\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\n\t};\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: entry.value,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: ! openInNewTab } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show labels' ) }\n\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tcolorSettings={ colorSettings }\n\t\t\t\t/>\n\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</InspectorControls>\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</Fragment>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/social-links/edit.js"],"names":["classNames","getBlockSupport","Fragment","useEffect","useRef","BlockControls","useInnerBlocksProps","useBlockProps","InspectorControls","ContrastChecker","PanelColorSettings","withColors","MenuGroup","MenuItem","PanelBody","ToggleControl","ToolbarDropdownMenu","__","check","ALLOWED_BLOCKS","sizeOptions","name","value","getDefaultBlockLayout","blockTypeOrName","layoutBlockSupportConfig","default","SocialLinksEdit","props","attributes","iconBackgroundColor","iconColor","isSelected","setAttributes","setIconBackgroundColor","setIconColor","iconBackgroundColorValue","customIconBackgroundColor","iconColorValue","openInNewTab","showLabels","size","layout","usedLayout","logosOnly","className","includes","backgroundBackup","current","undefined","SocialPlaceholder","SelectedSocialPlaceholder","color","blockProps","innerBlocksProps","allowedBlocks","placeholder","templateLock","__experimentalAppenderTagName","__experimentalLayout","POPOVER_PROPS","position","colorSettings","onChange","colorValue","label","push","onClose","map","entry","textColor","backgroundColor","iconColorAttributes"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classNames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { getBlockSupport } from '@wordpress/blocks';\nimport { Fragment, useEffect, useRef } from '@wordpress/element';\nimport {\n\tBlockControls,\n\tuseInnerBlocksProps,\n\tuseBlockProps,\n\tInspectorControls,\n\tContrastChecker,\n\tPanelColorSettings,\n\twithColors,\n} from '@wordpress/block-editor';\nimport {\n\tMenuGroup,\n\tMenuItem,\n\tPanelBody,\n\tToggleControl,\n\tToolbarDropdownMenu,\n} from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { check } from '@wordpress/icons';\n\nconst ALLOWED_BLOCKS = [ 'core/social-link' ];\n\nconst sizeOptions = [\n\t{ name: __( 'Small' ), value: 'has-small-icon-size' },\n\t{ name: __( 'Normal' ), value: 'has-normal-icon-size' },\n\t{ name: __( 'Large' ), value: 'has-large-icon-size' },\n\t{ name: __( 'Huge' ), value: 'has-huge-icon-size' },\n];\n\nconst getDefaultBlockLayout = ( blockTypeOrName ) => {\n\tconst layoutBlockSupportConfig = getBlockSupport(\n\t\tblockTypeOrName,\n\t\t'__experimentalLayout'\n\t);\n\treturn layoutBlockSupportConfig?.default;\n};\n\nexport function SocialLinksEdit( props ) {\n\tconst {\n\t\tname,\n\t\tattributes,\n\t\ticonBackgroundColor,\n\t\ticonColor,\n\t\tisSelected,\n\t\tsetAttributes,\n\t\tsetIconBackgroundColor,\n\t\tsetIconColor,\n\t} = props;\n\n\tconst {\n\t\ticonBackgroundColorValue,\n\t\tcustomIconBackgroundColor,\n\t\ticonColorValue,\n\t\topenInNewTab,\n\t\tshowLabels,\n\t\tsize,\n\t\tlayout,\n\t} = attributes;\n\tconst usedLayout = layout || getDefaultBlockLayout( name );\n\n\tconst logosOnly = attributes.className?.includes( 'is-style-logos-only' );\n\n\t// Remove icon background color when logos only style is selected or\n\t// restore it when any other style is selected.\n\tconst backgroundBackup = useRef( {} );\n\tuseEffect( () => {\n\t\tif ( logosOnly ) {\n\t\t\tbackgroundBackup.current = {\n\t\t\t\ticonBackgroundColor,\n\t\t\t\ticonBackgroundColorValue,\n\t\t\t\tcustomIconBackgroundColor,\n\t\t\t};\n\t\t\tsetAttributes( {\n\t\t\t\ticonBackgroundColor: undefined,\n\t\t\t\tcustomIconBackgroundColor: undefined,\n\t\t\t\ticonBackgroundColorValue: undefined,\n\t\t\t} );\n\t\t} else {\n\t\t\tsetAttributes( { ...backgroundBackup.current } );\n\t\t}\n\t}, [ logosOnly ] );\n\n\tconst SocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-placeholder\">\n\t\t\t<div className=\"wp-block-social-links__social-placeholder-icons\">\n\t\t\t\t<div className=\"wp-social-link wp-social-link-twitter\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-facebook\"></div>\n\t\t\t\t<div className=\"wp-social-link wp-social-link-instagram\"></div>\n\t\t\t</div>\n\t\t</li>\n\t);\n\n\tconst SelectedSocialPlaceholder = (\n\t\t<li className=\"wp-block-social-links__social-prompt\">\n\t\t\t{ __( 'Click plus to add' ) }\n\t\t</li>\n\t);\n\n\t// Fallback color values are used maintain selections in case switching\n\t// themes and named colors in palette do not match.\n\tconst className = classNames( size, {\n\t\t'has-icon-color': iconColor.color || iconColorValue,\n\t\t'has-icon-background-color':\n\t\t\ticonBackgroundColor.color || iconBackgroundColorValue,\n\t} );\n\n\tconst blockProps = useBlockProps( { className } );\n\tconst innerBlocksProps = useInnerBlocksProps( blockProps, {\n\t\tallowedBlocks: ALLOWED_BLOCKS,\n\t\tplaceholder: isSelected ? SelectedSocialPlaceholder : SocialPlaceholder,\n\t\ttemplateLock: false,\n\t\t__experimentalAppenderTagName: 'li',\n\t\t__experimentalLayout: usedLayout,\n\t} );\n\n\tconst POPOVER_PROPS = {\n\t\tposition: 'bottom right',\n\t};\n\n\tconst colorSettings = [\n\t\t{\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconColor.color || iconColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconColor( colorValue );\n\t\t\t\tsetAttributes( { iconColorValue: colorValue } );\n\t\t\t},\n\t\t\tlabel: __( 'Icon color' ),\n\t\t},\n\t];\n\n\tif ( ! logosOnly ) {\n\t\tcolorSettings.push( {\n\t\t\t// Use custom attribute as fallback to prevent loss of named color selection when\n\t\t\t// switching themes to a new theme that does not have a matching named color.\n\t\t\tvalue: iconBackgroundColor.color || iconBackgroundColorValue,\n\t\t\tonChange: ( colorValue ) => {\n\t\t\t\tsetIconBackgroundColor( colorValue );\n\t\t\t\tsetAttributes( {\n\t\t\t\t\ticonBackgroundColorValue: colorValue,\n\t\t\t\t} );\n\t\t\t},\n\t\t\tlabel: __( 'Icon background' ),\n\t\t} );\n\t}\n\n\treturn (\n\t\t<Fragment>\n\t\t\t<BlockControls group=\"other\">\n\t\t\t\t<ToolbarDropdownMenu\n\t\t\t\t\tlabel={ __( 'Size' ) }\n\t\t\t\t\ttext={ __( 'Size' ) }\n\t\t\t\t\ticon={ null }\n\t\t\t\t\tpopoverProps={ POPOVER_PROPS }\n\t\t\t\t>\n\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t<MenuGroup>\n\t\t\t\t\t\t\t{ sizeOptions.map( ( entry ) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t<MenuItem\n\t\t\t\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\t\t\t\t( size === entry.value ||\n\t\t\t\t\t\t\t\t\t\t\t\t( ! size &&\n\t\t\t\t\t\t\t\t\t\t\t\t\tentry.value ===\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t'has-normal-icon-size' ) ) &&\n\t\t\t\t\t\t\t\t\t\t\tcheck\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tisSelected={ size === entry.value }\n\t\t\t\t\t\t\t\t\t\tkey={ entry.value }\n\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\tsetAttributes( {\n\t\t\t\t\t\t\t\t\t\t\t\tsize: entry.value,\n\t\t\t\t\t\t\t\t\t\t\t} );\n\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t\t\t\t\t\trole=\"menuitemradio\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ entry.name }\n\t\t\t\t\t\t\t\t\t</MenuItem>\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t} ) }\n\t\t\t\t\t\t</MenuGroup>\n\t\t\t\t\t) }\n\t\t\t\t</ToolbarDropdownMenu>\n\t\t\t</BlockControls>\n\t\t\t<InspectorControls>\n\t\t\t\t<PanelBody title={ __( 'Link settings' ) }>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Open links in new tab' ) }\n\t\t\t\t\t\tchecked={ openInNewTab }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { openInNewTab: ! openInNewTab } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\tlabel={ __( 'Show labels' ) }\n\t\t\t\t\t\tchecked={ showLabels }\n\t\t\t\t\t\tonChange={ () =>\n\t\t\t\t\t\t\tsetAttributes( { showLabels: ! showLabels } )\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t\t<PanelColorSettings\n\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\ttitle={ __( 'Color' ) }\n\t\t\t\t\tcolorSettings={ colorSettings }\n\t\t\t\t>\n\t\t\t\t\t{ ! logosOnly && (\n\t\t\t\t\t\t<ContrastChecker\n\t\t\t\t\t\t\t{ ...{\n\t\t\t\t\t\t\t\ttextColor: iconColorValue,\n\t\t\t\t\t\t\t\tbackgroundColor: iconBackgroundColorValue,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\tisLargeText={ false }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</PanelColorSettings>\n\t\t\t</InspectorControls>\n\t\t\t<ul { ...innerBlocksProps } />\n\t\t</Fragment>\n\t);\n}\n\nconst iconColorAttributes = {\n\ticonColor: 'icon-color',\n\ticonBackgroundColor: 'icon-background-color',\n};\n\nexport default withColors( iconColorAttributes )( SocialLinksEdit );\n"]}
|
|
@@ -9,7 +9,7 @@ import { isEqual } from 'lodash';
|
|
|
9
9
|
*/
|
|
10
10
|
|
|
11
11
|
import { BlockControls, BlockIcon, InspectorControls, store as blockEditorStore, useBlockProps } from '@wordpress/block-editor';
|
|
12
|
-
import { createBlock
|
|
12
|
+
import { createBlock } from '@wordpress/blocks';
|
|
13
13
|
import { PanelBody, Placeholder, ToggleControl, ToolbarButton, ToolbarGroup } from '@wordpress/components';
|
|
14
14
|
import { useDisabled } from '@wordpress/compose';
|
|
15
15
|
import { useDispatch, useSelect } from '@wordpress/data';
|
|
@@ -50,7 +50,14 @@ export default function TableOfContentsEdit(_ref) {
|
|
|
50
50
|
} = _ref;
|
|
51
51
|
const blockProps = useBlockProps();
|
|
52
52
|
const disabledRef = useDisabled();
|
|
53
|
-
const
|
|
53
|
+
const canInsertList = useSelect(select => {
|
|
54
|
+
const {
|
|
55
|
+
getBlockRootClientId,
|
|
56
|
+
canInsertBlockType
|
|
57
|
+
} = select(blockEditorStore);
|
|
58
|
+
const rootClientId = getBlockRootClientId(clientId);
|
|
59
|
+
return canInsertBlockType('core/list', rootClientId);
|
|
60
|
+
}, [clientId]);
|
|
54
61
|
const {
|
|
55
62
|
__unstableMarkNextChangeAsNotPersistent,
|
|
56
63
|
replaceBlocks
|
|
@@ -157,7 +164,8 @@ export default function TableOfContentsEdit(_ref) {
|
|
|
157
164
|
const canBeLinked = typeof headingPageLink === 'string' && typeof headingAttributes.anchor === 'string' && headingAttributes.anchor !== '';
|
|
158
165
|
|
|
159
166
|
_latestHeadings.push({
|
|
160
|
-
|
|
167
|
+
// Convert line breaks to spaces, and get rid of HTML tags in the headings.
|
|
168
|
+
content: stripHTML(headingAttributes.content.replace(/(<br *\/?>)+/g, ' ')),
|
|
161
169
|
level: headingAttributes.level,
|
|
162
170
|
link: canBeLinked ? `${headingPageLink}#${headingAttributes.anchor}` : null
|
|
163
171
|
});
|
|
@@ -183,7 +191,7 @@ export default function TableOfContentsEdit(_ref) {
|
|
|
183
191
|
}
|
|
184
192
|
}, [latestHeadings]);
|
|
185
193
|
const headingTree = linearToNestedHeadingList(headings);
|
|
186
|
-
const toolbarControls =
|
|
194
|
+
const toolbarControls = canInsertList && createElement(BlockControls, null, createElement(ToolbarGroup, null, createElement(ToolbarButton, {
|
|
187
195
|
onClick: () => replaceBlocks(clientId, createBlock('core/list', {
|
|
188
196
|
ordered: true,
|
|
189
197
|
values: renderToString(createElement(TableOfContentsList, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["isEqual","BlockControls","BlockIcon","InspectorControls","store","blockEditorStore","useBlockProps","createBlock","blocksStore","PanelBody","Placeholder","ToggleControl","ToolbarButton","ToolbarGroup","useDisabled","useDispatch","useSelect","__unstableStripHTML","stripHTML","renderToString","useEffect","__","addQueryArgs","removeQueryArgs","icon","TableOfContentsList","linearToNestedHeadingList","TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","disabledRef","listBlockExists","select","getBlockType","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock, store as blocksStore } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDisabled } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\tconst disabledRef = useDisabled();\n\n\tconst listBlockExists = useSelect(\n\t\t( select ) => !! select( blocksStore ).getBlockType( 'core/list' ),\n\t\t[]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t} = useDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes = getBlockAttributes(\n\t\t\t\t\t\t\tblockClientId\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\tcontent: stripHTML( headingAttributes.content ),\n\t\t\t\t\t\t\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( isEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = listBlockExists && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel=\"Table of Contents\"\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol ref={ disabledRef }>\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["@wordpress/block-library/src/table-of-contents/edit.js"],"names":["isEqual","BlockControls","BlockIcon","InspectorControls","store","blockEditorStore","useBlockProps","createBlock","PanelBody","Placeholder","ToggleControl","ToolbarButton","ToolbarGroup","useDisabled","useDispatch","useSelect","__unstableStripHTML","stripHTML","renderToString","useEffect","__","addQueryArgs","removeQueryArgs","icon","TableOfContentsList","linearToNestedHeadingList","TableOfContentsEdit","attributes","headings","onlyIncludeCurrentPage","clientId","setAttributes","blockProps","disabledRef","canInsertList","select","getBlockRootClientId","canInsertBlockType","rootClientId","__unstableMarkNextChangeAsNotPersistent","replaceBlocks","latestHeadings","getBlockAttributes","getBlockName","getClientIdsWithDescendants","__experimentalGetGlobalBlocksByName","getGlobalBlocksByName","editorSelectors","pageBreakClientIds","isPaginated","length","allBlockClientIds","tocPage","tocIndex","indexOf","blockIndex","blockClientId","entries","_latestHeadings","headingPage","permalink","getPermalink","headingPageLink","page","blockName","headingAttributes","canBeLinked","anchor","push","content","replace","level","link","headingTree","toolbarControls","ordered","values","inspectorControls","value"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tBlockControls,\n\tBlockIcon,\n\tInspectorControls,\n\tstore as blockEditorStore,\n\tuseBlockProps,\n} from '@wordpress/block-editor';\nimport { createBlock } from '@wordpress/blocks';\nimport {\n\tPanelBody,\n\tPlaceholder,\n\tToggleControl,\n\tToolbarButton,\n\tToolbarGroup,\n} from '@wordpress/components';\nimport { useDisabled } from '@wordpress/compose';\nimport { useDispatch, useSelect } from '@wordpress/data';\nimport { __unstableStripHTML as stripHTML } from '@wordpress/dom';\nimport { renderToString, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { addQueryArgs, removeQueryArgs } from '@wordpress/url';\n\n/**\n * Internal dependencies\n */\nimport icon from './icon';\nimport TableOfContentsList from './list';\nimport { linearToNestedHeadingList } from './utils';\n\n/** @typedef {import('./utils').HeadingData} HeadingData */\n\n/**\n * Table of Contents block edit component.\n *\n * @param {Object} props The props.\n * @param {Object} props.attributes The block attributes.\n * @param {HeadingData[]} props.attributes.headings A list of data for each heading in the post.\n * @param {boolean} props.attributes.onlyIncludeCurrentPage Whether to only include headings from the current page (if the post is paginated).\n * @param {string} props.clientId\n * @param {(attributes: Object) => void} props.setAttributes\n *\n * @return {WPComponent} The component.\n */\nexport default function TableOfContentsEdit( {\n\tattributes: { headings = [], onlyIncludeCurrentPage },\n\tclientId,\n\tsetAttributes,\n} ) {\n\tconst blockProps = useBlockProps();\n\tconst disabledRef = useDisabled();\n\n\tconst canInsertList = useSelect(\n\t\t( select ) => {\n\t\t\tconst { getBlockRootClientId, canInsertBlockType } = select(\n\t\t\t\tblockEditorStore\n\t\t\t);\n\t\t\tconst rootClientId = getBlockRootClientId( clientId );\n\n\t\t\treturn canInsertBlockType( 'core/list', rootClientId );\n\t\t},\n\t\t[ clientId ]\n\t);\n\n\tconst {\n\t\t__unstableMarkNextChangeAsNotPersistent,\n\t\treplaceBlocks,\n\t} = useDispatch( blockEditorStore );\n\n\t/**\n\t * The latest heading data, or null if the new data deeply equals the saved\n\t * headings attribute.\n\t *\n\t * Since useSelect forces a re-render when its return value is shallowly\n\t * inequal to its prior call, we would be re-rendering this block every time\n\t * the stores change, even if the latest headings were deeply equal to the\n\t * ones saved in the block attributes.\n\t *\n\t * By returning null when they're equal, we reduce that to 2 renders: one\n\t * when there are new latest headings (and so it returns them), and one when\n\t * they haven't changed (so it returns null). As long as the latest heading\n\t * data remains the same, further calls of the useSelect callback will\n\t * continue to return null, thus preventing any forced re-renders.\n\t */\n\tconst latestHeadings = useSelect(\n\t\t( select ) => {\n\t\t\tconst {\n\t\t\t\tgetBlockAttributes,\n\t\t\t\tgetBlockName,\n\t\t\t\tgetClientIdsWithDescendants,\n\t\t\t\t__experimentalGetGlobalBlocksByName: getGlobalBlocksByName,\n\t\t\t} = select( blockEditorStore );\n\n\t\t\t// FIXME: @wordpress/block-library should not depend on @wordpress/editor.\n\t\t\t// Blocks can be loaded into a *non-post* block editor, so to avoid\n\t\t\t// declaring @wordpress/editor as a dependency, we must access its\n\t\t\t// store by string. When the store is not available, editorSelectors\n\t\t\t// will be null, and the block's saved markup will lack permalinks.\n\t\t\t// eslint-disable-next-line @wordpress/data-no-store-string-literals\n\t\t\tconst editorSelectors = select( 'core/editor' );\n\n\t\t\tconst pageBreakClientIds = getGlobalBlocksByName( 'core/nextpage' );\n\n\t\t\tconst isPaginated = pageBreakClientIds.length !== 0;\n\n\t\t\t// Get the client ids of all blocks in the editor.\n\t\t\tconst allBlockClientIds = getClientIdsWithDescendants();\n\n\t\t\t// If onlyIncludeCurrentPage is true, calculate the page (of a paginated post) this block is part of, so we know which headings to include; otherwise, skip the calculation.\n\t\t\tlet tocPage = 1;\n\n\t\t\tif ( isPaginated && onlyIncludeCurrentPage ) {\n\t\t\t\t// We can't use getBlockIndex because it only returns the index\n\t\t\t\t// relative to sibling blocks.\n\t\t\t\tconst tocIndex = allBlockClientIds.indexOf( clientId );\n\n\t\t\t\tfor ( const [\n\t\t\t\t\tblockIndex,\n\t\t\t\t\tblockClientId,\n\t\t\t\t] of allBlockClientIds.entries() ) {\n\t\t\t\t\t// If we've reached blocks after the Table of Contents, we've\n\t\t\t\t\t// finished calculating which page the block is on.\n\t\t\t\t\tif ( blockIndex >= tocIndex ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t\tif ( getBlockName( blockClientId ) === 'core/nextpage' ) {\n\t\t\t\t\t\ttocPage++;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst _latestHeadings = [];\n\n\t\t\t/** The page (of a paginated post) a heading will be part of. */\n\t\t\tlet headingPage = 1;\n\n\t\t\t/**\n\t\t\t * A permalink to the current post. If the core/editor store is\n\t\t\t * unavailable, this variable will be null.\n\t\t\t */\n\t\t\tconst permalink = editorSelectors?.getPermalink() ?? null;\n\n\t\t\tlet headingPageLink = null;\n\n\t\t\t// If the core/editor store is available, we can add permalinks to the\n\t\t\t// generated table of contents.\n\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\theadingPageLink = isPaginated\n\t\t\t\t\t? addQueryArgs( permalink, { page: headingPage } )\n\t\t\t\t\t: permalink;\n\t\t\t}\n\n\t\t\tfor ( const blockClientId of allBlockClientIds ) {\n\t\t\t\tconst blockName = getBlockName( blockClientId );\n\t\t\t\tif ( blockName === 'core/nextpage' ) {\n\t\t\t\t\theadingPage++;\n\n\t\t\t\t\t// If we're only including headings from the current page (of\n\t\t\t\t\t// a paginated post), then exit the loop if we've reached the\n\t\t\t\t\t// pages after the one with the Table of Contents block.\n\t\t\t\t\tif ( onlyIncludeCurrentPage && headingPage > tocPage ) {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( typeof permalink === 'string' ) {\n\t\t\t\t\t\theadingPageLink = addQueryArgs(\n\t\t\t\t\t\t\tremoveQueryArgs( permalink, [ 'page' ] ),\n\t\t\t\t\t\t\t{ page: headingPage }\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If we're including all headings or we've reached headings on\n\t\t\t\t// the same page as the Table of Contents block, add them to the\n\t\t\t\t// list.\n\t\t\t\telse if (\n\t\t\t\t\t! onlyIncludeCurrentPage ||\n\t\t\t\t\theadingPage === tocPage\n\t\t\t\t) {\n\t\t\t\t\tif ( blockName === 'core/heading' ) {\n\t\t\t\t\t\tconst headingAttributes = getBlockAttributes(\n\t\t\t\t\t\t\tblockClientId\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tconst canBeLinked =\n\t\t\t\t\t\t\ttypeof headingPageLink === 'string' &&\n\t\t\t\t\t\t\ttypeof headingAttributes.anchor === 'string' &&\n\t\t\t\t\t\t\theadingAttributes.anchor !== '';\n\n\t\t\t\t\t\t_latestHeadings.push( {\n\t\t\t\t\t\t\t// Convert line breaks to spaces, and get rid of HTML tags in the headings.\n\t\t\t\t\t\t\tcontent: stripHTML(\n\t\t\t\t\t\t\t\theadingAttributes.content.replace(\n\t\t\t\t\t\t\t\t\t/(<br *\\/?>)+/g,\n\t\t\t\t\t\t\t\t\t' '\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\tlevel: headingAttributes.level,\n\t\t\t\t\t\t\tlink: canBeLinked\n\t\t\t\t\t\t\t\t? `${ headingPageLink }#${ headingAttributes.anchor }`\n\t\t\t\t\t\t\t\t: null,\n\t\t\t\t\t\t} );\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif ( isEqual( headings, _latestHeadings ) ) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\treturn _latestHeadings;\n\t\t},\n\t\t[ clientId, onlyIncludeCurrentPage, headings ]\n\t);\n\n\tuseEffect( () => {\n\t\tif ( latestHeadings !== null ) {\n\t\t\t// This is required to keep undo working and not create 2 undo steps\n\t\t\t// for each heading change.\n\t\t\t__unstableMarkNextChangeAsNotPersistent();\n\t\t\tsetAttributes( { headings: latestHeadings } );\n\t\t}\n\t}, [ latestHeadings ] );\n\n\tconst headingTree = linearToNestedHeadingList( headings );\n\n\tconst toolbarControls = canInsertList && (\n\t\t<BlockControls>\n\t\t\t<ToolbarGroup>\n\t\t\t\t<ToolbarButton\n\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\treplaceBlocks(\n\t\t\t\t\t\t\tclientId,\n\t\t\t\t\t\t\tcreateBlock( 'core/list', {\n\t\t\t\t\t\t\t\tordered: true,\n\t\t\t\t\t\t\t\tvalues: renderToString(\n\t\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\t\tnestedHeadingList={ headingTree }\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t} )\n\t\t\t\t\t\t)\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t{ __( 'Convert to static list' ) }\n\t\t\t\t</ToolbarButton>\n\t\t\t</ToolbarGroup>\n\t\t</BlockControls>\n\t);\n\n\tconst inspectorControls = (\n\t\t<InspectorControls>\n\t\t\t<PanelBody title={ __( 'Settings' ) }>\n\t\t\t\t<ToggleControl\n\t\t\t\t\tlabel={ __( 'Only include current page' ) }\n\t\t\t\t\tchecked={ onlyIncludeCurrentPage }\n\t\t\t\t\tonChange={ ( value ) =>\n\t\t\t\t\t\tsetAttributes( { onlyIncludeCurrentPage: value } )\n\t\t\t\t\t}\n\t\t\t\t\thelp={\n\t\t\t\t\t\tonlyIncludeCurrentPage\n\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t'Only including headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t'Toggle to only include headings from the current page (if the post is paginated).'\n\t\t\t\t\t\t\t )\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t</InspectorControls>\n\t);\n\n\t// If there are no headings or the only heading is empty.\n\t// Note that the toolbar controls are intentionally omitted since the\n\t// \"Convert to static list\" option is useless to the placeholder state.\n\tif ( headings.length === 0 ) {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t<div { ...blockProps }>\n\t\t\t\t\t<Placeholder\n\t\t\t\t\t\ticon={ <BlockIcon icon={ icon } /> }\n\t\t\t\t\t\tlabel=\"Table of Contents\"\n\t\t\t\t\t\tinstructions={ __(\n\t\t\t\t\t\t\t'Start adding Heading blocks to create a table of contents. Headings with HTML anchors will be linked here.'\n\t\t\t\t\t\t) }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t\t{ inspectorControls }\n\t\t\t</>\n\t\t);\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<nav { ...blockProps }>\n\t\t\t\t<ol ref={ disabledRef }>\n\t\t\t\t\t<TableOfContentsList nestedHeadingList={ headingTree } />\n\t\t\t\t</ol>\n\t\t\t</nav>\n\t\t\t{ toolbarControls }\n\t\t\t{ inspectorControls }\n\t\t</>\n\t);\n}\n"]}
|
|
@@ -97,27 +97,6 @@
|
|
|
97
97
|
* - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545
|
|
98
98
|
*/
|
|
99
99
|
}
|
|
100
|
-
.wp-block-cover-image.has-parallax,
|
|
101
|
-
.wp-block-cover.has-parallax {
|
|
102
|
-
background-attachment: fixed;
|
|
103
|
-
}
|
|
104
|
-
@supports (-webkit-touch-callout: inherit) {
|
|
105
|
-
.wp-block-cover-image.has-parallax,
|
|
106
|
-
.wp-block-cover.has-parallax {
|
|
107
|
-
background-attachment: scroll;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
@media (prefers-reduced-motion: reduce) {
|
|
111
|
-
.wp-block-cover-image.has-parallax,
|
|
112
|
-
.wp-block-cover.has-parallax {
|
|
113
|
-
background-attachment: scroll;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
.wp-block-cover-image.is-repeated,
|
|
117
|
-
.wp-block-cover.is-repeated {
|
|
118
|
-
background-repeat: repeat;
|
|
119
|
-
background-size: auto;
|
|
120
|
-
}
|
|
121
100
|
.wp-block-cover-image.has-background-dim:not([class*=-background-color]),
|
|
122
101
|
.wp-block-cover-image .has-background-dim:not([class*=-background-color]),
|
|
123
102
|
.wp-block-cover.has-background-dim:not([class*=-background-color]),
|
|
@@ -394,9 +373,9 @@
|
|
|
394
373
|
margin: 0;
|
|
395
374
|
width: auto;
|
|
396
375
|
}
|
|
397
|
-
.wp-block-cover-image
|
|
376
|
+
.wp-block-cover-image .wp-block-cover__image-background,
|
|
398
377
|
.wp-block-cover-image video.wp-block-cover__video-background,
|
|
399
|
-
.wp-block-cover
|
|
378
|
+
.wp-block-cover .wp-block-cover__image-background,
|
|
400
379
|
.wp-block-cover video.wp-block-cover__video-background {
|
|
401
380
|
position: absolute;
|
|
402
381
|
top: 0;
|
|
@@ -416,6 +395,36 @@
|
|
|
416
395
|
box-shadow: none;
|
|
417
396
|
}
|
|
418
397
|
|
|
398
|
+
.wp-block-cover-image.has-parallax,
|
|
399
|
+
.wp-block-cover.has-parallax,
|
|
400
|
+
.wp-block-cover__image-background.has-parallax,
|
|
401
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
402
|
+
background-attachment: fixed;
|
|
403
|
+
}
|
|
404
|
+
@supports (-webkit-overflow-scrolling: touch) {
|
|
405
|
+
.wp-block-cover-image.has-parallax,
|
|
406
|
+
.wp-block-cover.has-parallax,
|
|
407
|
+
.wp-block-cover__image-background.has-parallax,
|
|
408
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
409
|
+
background-attachment: scroll;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
@media (prefers-reduced-motion: reduce) {
|
|
413
|
+
.wp-block-cover-image.has-parallax,
|
|
414
|
+
.wp-block-cover.has-parallax,
|
|
415
|
+
.wp-block-cover__image-background.has-parallax,
|
|
416
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
417
|
+
background-attachment: scroll;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
.wp-block-cover-image.is-repeated,
|
|
421
|
+
.wp-block-cover.is-repeated,
|
|
422
|
+
.wp-block-cover__image-background.is-repeated,
|
|
423
|
+
video.wp-block-cover__video-background.is-repeated {
|
|
424
|
+
background-repeat: repeat;
|
|
425
|
+
background-size: auto;
|
|
426
|
+
}
|
|
427
|
+
|
|
419
428
|
.wp-block-cover__video-background {
|
|
420
429
|
z-index: 0;
|
|
421
430
|
}
|
|
@@ -97,27 +97,6 @@
|
|
|
97
97
|
* - Issue with alternative fix: https://github.com/WordPress/gutenberg/issues/26545
|
|
98
98
|
*/
|
|
99
99
|
}
|
|
100
|
-
.wp-block-cover-image.has-parallax,
|
|
101
|
-
.wp-block-cover.has-parallax {
|
|
102
|
-
background-attachment: fixed;
|
|
103
|
-
}
|
|
104
|
-
@supports (-webkit-touch-callout: inherit) {
|
|
105
|
-
.wp-block-cover-image.has-parallax,
|
|
106
|
-
.wp-block-cover.has-parallax {
|
|
107
|
-
background-attachment: scroll;
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
@media (prefers-reduced-motion: reduce) {
|
|
111
|
-
.wp-block-cover-image.has-parallax,
|
|
112
|
-
.wp-block-cover.has-parallax {
|
|
113
|
-
background-attachment: scroll;
|
|
114
|
-
}
|
|
115
|
-
}
|
|
116
|
-
.wp-block-cover-image.is-repeated,
|
|
117
|
-
.wp-block-cover.is-repeated {
|
|
118
|
-
background-repeat: repeat;
|
|
119
|
-
background-size: auto;
|
|
120
|
-
}
|
|
121
100
|
.wp-block-cover-image.has-background-dim:not([class*=-background-color]),
|
|
122
101
|
.wp-block-cover-image .has-background-dim:not([class*=-background-color]),
|
|
123
102
|
.wp-block-cover.has-background-dim:not([class*=-background-color]),
|
|
@@ -394,9 +373,9 @@
|
|
|
394
373
|
margin: 0;
|
|
395
374
|
width: auto;
|
|
396
375
|
}
|
|
397
|
-
.wp-block-cover-image
|
|
376
|
+
.wp-block-cover-image .wp-block-cover__image-background,
|
|
398
377
|
.wp-block-cover-image video.wp-block-cover__video-background,
|
|
399
|
-
.wp-block-cover
|
|
378
|
+
.wp-block-cover .wp-block-cover__image-background,
|
|
400
379
|
.wp-block-cover video.wp-block-cover__video-background {
|
|
401
380
|
position: absolute;
|
|
402
381
|
top: 0;
|
|
@@ -416,6 +395,36 @@
|
|
|
416
395
|
box-shadow: none;
|
|
417
396
|
}
|
|
418
397
|
|
|
398
|
+
.wp-block-cover-image.has-parallax,
|
|
399
|
+
.wp-block-cover.has-parallax,
|
|
400
|
+
.wp-block-cover__image-background.has-parallax,
|
|
401
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
402
|
+
background-attachment: fixed;
|
|
403
|
+
}
|
|
404
|
+
@supports (-webkit-overflow-scrolling: touch) {
|
|
405
|
+
.wp-block-cover-image.has-parallax,
|
|
406
|
+
.wp-block-cover.has-parallax,
|
|
407
|
+
.wp-block-cover__image-background.has-parallax,
|
|
408
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
409
|
+
background-attachment: scroll;
|
|
410
|
+
}
|
|
411
|
+
}
|
|
412
|
+
@media (prefers-reduced-motion: reduce) {
|
|
413
|
+
.wp-block-cover-image.has-parallax,
|
|
414
|
+
.wp-block-cover.has-parallax,
|
|
415
|
+
.wp-block-cover__image-background.has-parallax,
|
|
416
|
+
video.wp-block-cover__video-background.has-parallax {
|
|
417
|
+
background-attachment: scroll;
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
.wp-block-cover-image.is-repeated,
|
|
421
|
+
.wp-block-cover.is-repeated,
|
|
422
|
+
.wp-block-cover__image-background.is-repeated,
|
|
423
|
+
video.wp-block-cover__video-background.is-repeated {
|
|
424
|
+
background-repeat: repeat;
|
|
425
|
+
background-size: auto;
|
|
426
|
+
}
|
|
427
|
+
|
|
419
428
|
.wp-block-cover__video-background {
|
|
420
429
|
z-index: 0;
|
|
421
430
|
}
|