@wordpress/block-library
Version:
Block library for the WordPress editor.
8 lines (7 loc) • 4.67 kB
Source Map (JSON)
{
"version": 3,
"sources": ["../../src/list/utils.js"],
"sourcesContent": ["/**\n * WordPress dependencies\n */\nimport { createBlock, rawHandler } from '@wordpress/blocks';\n\nconst LIST_STYLES = {\n\tA: 'upper-alpha',\n\ta: 'lower-alpha',\n\tI: 'upper-roman',\n\ti: 'lower-roman',\n};\n\nexport function createListBlockFromDOMElement( listElement ) {\n\tconst type = listElement.getAttribute( 'type' );\n\tconst listAttributes = {\n\t\tordered: 'OL' === listElement.tagName,\n\t\tanchor: listElement.id ? listElement.id : undefined,\n\t\tstart: listElement.getAttribute( 'start' )\n\t\t\t? parseInt( listElement.getAttribute( 'start' ), 10 )\n\t\t\t: undefined,\n\t\treversed: listElement.hasAttribute( 'reversed' ) ? true : undefined,\n\t\ttype: type && LIST_STYLES[ type ] ? LIST_STYLES[ type ] : undefined,\n\t};\n\n\tconst innerBlocks = Array.from( listElement.children ).map(\n\t\t( listItem ) => {\n\t\t\tconst children = Array.from( listItem.childNodes ).filter(\n\t\t\t\t( node ) =>\n\t\t\t\t\tnode.nodeType !== node.TEXT_NODE ||\n\t\t\t\t\tnode.textContent.trim().length !== 0\n\t\t\t);\n\t\t\tchildren.reverse();\n\t\t\tconst [ nestedList, ...nodes ] = children;\n\n\t\t\tconst hasNestedList =\n\t\t\t\tnestedList?.tagName === 'UL' || nestedList?.tagName === 'OL';\n\t\t\tif ( ! hasNestedList ) {\n\t\t\t\treturn createBlock( 'core/list-item', {\n\t\t\t\t\tcontent: listItem.innerHTML,\n\t\t\t\t} );\n\t\t\t}\n\t\t\tconst htmlNodes = nodes.map( ( node ) => {\n\t\t\t\tif ( node.nodeType === node.TEXT_NODE ) {\n\t\t\t\t\treturn node.textContent;\n\t\t\t\t}\n\t\t\t\treturn node.outerHTML;\n\t\t\t} );\n\t\t\thtmlNodes.reverse();\n\t\t\tconst childAttributes = {\n\t\t\t\tcontent: htmlNodes.join( '' ).trim(),\n\t\t\t};\n\t\t\tconst childInnerBlocks = [\n\t\t\t\tcreateListBlockFromDOMElement( nestedList ),\n\t\t\t];\n\t\t\treturn createBlock(\n\t\t\t\t'core/list-item',\n\t\t\t\tchildAttributes,\n\t\t\t\tchildInnerBlocks\n\t\t\t);\n\t\t}\n\t);\n\n\treturn createBlock( 'core/list', listAttributes, innerBlocks );\n}\n\nexport function migrateToListV2( attributes ) {\n\tconst { values, start, reversed, ordered, type, ...otherAttributes } =\n\t\tattributes;\n\n\tconst list = document.createElement( ordered ? 'ol' : 'ul' );\n\tlist.innerHTML = values;\n\tif ( start ) {\n\t\tlist.setAttribute( 'start', start );\n\t}\n\tif ( reversed ) {\n\t\tlist.setAttribute( 'reversed', true );\n\t}\n\tif ( type ) {\n\t\tlist.setAttribute( 'type', type );\n\t}\n\n\tconst [ listBlock ] = rawHandler( { HTML: list.outerHTML } );\n\n\treturn [\n\t\t{ ...otherAttributes, ...listBlock.attributes },\n\t\tlistBlock.innerBlocks,\n\t];\n}\n\nexport function migrateTypeToInlineStyle( attributes ) {\n\tconst { type } = attributes;\n\n\tif ( type && LIST_STYLES[ type ] ) {\n\t\treturn {\n\t\t\t...attributes,\n\t\t\ttype: LIST_STYLES[ type ],\n\t\t};\n\t}\n\n\treturn attributes;\n}\n"],
"mappings": ";AAGA,SAAS,aAAa,kBAAkB;AAExC,IAAM,cAAc;AAAA,EACnB,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AAAA,EACH,GAAG;AACJ;AAEO,SAAS,8BAA+B,aAAc;AAC5D,QAAM,OAAO,YAAY,aAAc,MAAO;AAC9C,QAAM,iBAAiB;AAAA,IACtB,SAAS,SAAS,YAAY;AAAA,IAC9B,QAAQ,YAAY,KAAK,YAAY,KAAK;AAAA,IAC1C,OAAO,YAAY,aAAc,OAAQ,IACtC,SAAU,YAAY,aAAc,OAAQ,GAAG,EAAG,IAClD;AAAA,IACH,UAAU,YAAY,aAAc,UAAW,IAAI,OAAO;AAAA,IAC1D,MAAM,QAAQ,YAAa,IAAK,IAAI,YAAa,IAAK,IAAI;AAAA,EAC3D;AAEA,QAAM,cAAc,MAAM,KAAM,YAAY,QAAS,EAAE;AAAA,IACtD,CAAE,aAAc;AACf,YAAM,WAAW,MAAM,KAAM,SAAS,UAAW,EAAE;AAAA,QAClD,CAAE,SACD,KAAK,aAAa,KAAK,aACvB,KAAK,YAAY,KAAK,EAAE,WAAW;AAAA,MACrC;AACA,eAAS,QAAQ;AACjB,YAAM,CAAE,YAAY,GAAG,KAAM,IAAI;AAEjC,YAAM,gBACL,YAAY,YAAY,QAAQ,YAAY,YAAY;AACzD,UAAK,CAAE,eAAgB;AACtB,eAAO,YAAa,kBAAkB;AAAA,UACrC,SAAS,SAAS;AAAA,QACnB,CAAE;AAAA,MACH;AACA,YAAM,YAAY,MAAM,IAAK,CAAE,SAAU;AACxC,YAAK,KAAK,aAAa,KAAK,WAAY;AACvC,iBAAO,KAAK;AAAA,QACb;AACA,eAAO,KAAK;AAAA,MACb,CAAE;AACF,gBAAU,QAAQ;AAClB,YAAM,kBAAkB;AAAA,QACvB,SAAS,UAAU,KAAM,EAAG,EAAE,KAAK;AAAA,MACpC;AACA,YAAM,mBAAmB;AAAA,QACxB,8BAA+B,UAAW;AAAA,MAC3C;AACA,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA;AAAA,MACD;AAAA,IACD;AAAA,EACD;AAEA,SAAO,YAAa,aAAa,gBAAgB,WAAY;AAC9D;AAEO,SAAS,gBAAiB,YAAa;AAC7C,QAAM,EAAE,QAAQ,OAAO,UAAU,SAAS,MAAM,GAAG,gBAAgB,IAClE;AAED,QAAM,OAAO,SAAS,cAAe,UAAU,OAAO,IAAK;AAC3D,OAAK,YAAY;AACjB,MAAK,OAAQ;AACZ,SAAK,aAAc,SAAS,KAAM;AAAA,EACnC;AACA,MAAK,UAAW;AACf,SAAK,aAAc,YAAY,IAAK;AAAA,EACrC;AACA,MAAK,MAAO;AACX,SAAK,aAAc,QAAQ,IAAK;AAAA,EACjC;AAEA,QAAM,CAAE,SAAU,IAAI,WAAY,EAAE,MAAM,KAAK,UAAU,CAAE;AAE3D,SAAO;AAAA,IACN,EAAE,GAAG,iBAAiB,GAAG,UAAU,WAAW;AAAA,IAC9C,UAAU;AAAA,EACX;AACD;AAEO,SAAS,yBAA0B,YAAa;AACtD,QAAM,EAAE,KAAK,IAAI;AAEjB,MAAK,QAAQ,YAAa,IAAK,GAAI;AAClC,WAAO;AAAA,MACN,GAAG;AAAA,MACH,MAAM,YAAa,IAAK;AAAA,IACzB;AAAA,EACD;AAEA,SAAO;AACR;",
"names": []
}