UNPKG

@wordpress/block-library

Version:
8 lines (7 loc) 6.75 kB
{ "version": 3, "sources": ["../../src/table-of-contents/deprecated.jsx"], "sourcesContent": ["import { useBlockProps } from '@wordpress/block-editor';\n\nconst ENTRY_CLASS_NAME = 'wp-block-table-of-contents__entry';\n\nconst attributes = {\n\theadings: {\n\t\ttype: 'array',\n\t\titems: {\n\t\t\ttype: 'object',\n\t\t},\n\t\tdefault: [],\n\t},\n\tonlyIncludeCurrentPage: {\n\t\ttype: 'boolean',\n\t\tdefault: false,\n\t},\n\tmaxLevel: {\n\t\ttype: 'number',\n\t},\n\tordered: {\n\t\ttype: 'boolean',\n\t\tdefault: true,\n\t},\n};\n\nconst supports = {\n\tanchor: true,\n\tariaLabel: true,\n\thtml: false,\n\tcolor: {\n\t\ttext: true,\n\t\tbackground: true,\n\t\tgradients: true,\n\t\tlink: true,\n\t},\n\tspacing: {\n\t\tmargin: true,\n\t\tpadding: true,\n\t},\n\ttypography: {\n\t\tfontSize: true,\n\t\tlineHeight: true,\n\t\t__experimentalFontFamily: true,\n\t\t__experimentalFontWeight: true,\n\t\t__experimentalFontStyle: true,\n\t\t__experimentalTextTransform: true,\n\t\t__experimentalTextDecoration: true,\n\t\t__experimentalLetterSpacing: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tfontSize: true,\n\t\t},\n\t},\n\tinteractivity: {\n\t\tclientNavigation: true,\n\t},\n\t__experimentalBorder: {\n\t\tradius: true,\n\t\tcolor: true,\n\t\twidth: true,\n\t\tstyle: true,\n\t\t__experimentalDefaultControls: {\n\t\t\tradius: true,\n\t\t\tcolor: true,\n\t\t\twidth: true,\n\t\t\tstyle: true,\n\t\t},\n\t},\n};\n\nfunction linearToNestedHeadingList( headingList ) {\n\tconst nestedHeadingList = [];\n\n\theadingList.forEach( ( heading, key ) => {\n\t\tif ( heading.content === '' ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( heading.level === headingList[ 0 ].level ) {\n\t\t\tif ( headingList[ key + 1 ]?.level > heading.level ) {\n\t\t\t\tlet endOfSlice = headingList.length;\n\t\t\t\tfor ( let i = key + 1; i < headingList.length; i++ ) {\n\t\t\t\t\tif ( headingList[ i ].level === heading.level ) {\n\t\t\t\t\t\tendOfSlice = i;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tnestedHeadingList.push( {\n\t\t\t\t\theading,\n\t\t\t\t\tchildren: linearToNestedHeadingList(\n\t\t\t\t\t\theadingList.slice( key + 1, endOfSlice )\n\t\t\t\t\t),\n\t\t\t\t} );\n\t\t\t} else {\n\t\t\t\tnestedHeadingList.push( {\n\t\t\t\t\theading,\n\t\t\t\t\tchildren: null,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t} );\n\n\treturn nestedHeadingList;\n}\n\nfunction TableOfContentsList( { nestedHeadingList, ordered = true } ) {\n\treturn (\n\t\t<>\n\t\t\t{ nestedHeadingList.map( ( node, index ) => {\n\t\t\t\tconst { content, link } = node.heading;\n\n\t\t\t\tconst entry = link ? (\n\t\t\t\t\t<a className={ ENTRY_CLASS_NAME } href={ link }>\n\t\t\t\t\t\t{ content }\n\t\t\t\t\t</a>\n\t\t\t\t) : (\n\t\t\t\t\t<span className={ ENTRY_CLASS_NAME }>{ content }</span>\n\t\t\t\t);\n\n\t\t\t\tconst NestedListTag = ordered ? 'ol' : 'ul';\n\n\t\t\t\treturn (\n\t\t\t\t\t<li key={ index }>\n\t\t\t\t\t\t{ entry }\n\t\t\t\t\t\t{ node.children ? (\n\t\t\t\t\t\t\t<NestedListTag>\n\t\t\t\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\t\t\t\tnestedHeadingList={ node.children }\n\t\t\t\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</NestedListTag>\n\t\t\t\t\t\t) : null }\n\t\t\t\t\t</li>\n\t\t\t\t);\n\t\t\t} ) }\n\t\t</>\n\t);\n}\n\nconst hasOwn = ( object, key ) =>\n\tObject.prototype.hasOwnProperty.call( object, key );\n\nconst v1 = {\n\tattributes,\n\tsupports,\n\tisEligible: ( blockAttributes, innerBlocks, { blockNode } = {} ) => {\n\t\treturn (\n\t\t\thasOwn( blockAttributes, 'headings' ) ||\n\t\t\tblockNode?.innerHTML?.includes( 'wp-block-table-of-contents' )\n\t\t);\n\t},\n\tmigrate: ( { headings, ...persistentAttributes } ) => persistentAttributes,\n\tsave( { attributes: { headings = [], ordered = true } } ) {\n\t\tif ( headings.length === 0 ) {\n\t\t\treturn null;\n\t\t}\n\t\tconst ListTag = ordered ? 'ol' : 'ul';\n\t\treturn (\n\t\t\t<nav { ...useBlockProps.save() }>\n\t\t\t\t<ListTag>\n\t\t\t\t\t<TableOfContentsList\n\t\t\t\t\t\tnestedHeadingList={ linearToNestedHeadingList(\n\t\t\t\t\t\t\theadings\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tordered={ ordered }\n\t\t\t\t\t/>\n\t\t\t\t</ListTag>\n\t\t\t</nav>\n\t\t);\n\t},\n};\n\nexport default [ v1 ];\n"], "mappings": "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", "names": [] }