{
  "version": 3,
  "sources": ["../../../src/api/raw-handling/ms-list-converter.ts"],
  "sourcesContent": ["/**\n * Internal dependencies\n */\nimport { deepFilterHTML } from './utils';\nimport msListIgnore from './ms-list-ignore';\n\nfunction isList( node: Node ): boolean {\n\treturn node.nodeName === 'OL' || node.nodeName === 'UL';\n}\n\nexport default function msListConverter( node: Node, doc: Document ): void {\n\tif ( node.nodeName !== 'P' ) {\n\t\treturn;\n\t}\n\n\tconst element = node as HTMLElement;\n\tconst style = element.getAttribute( 'style' );\n\n\tif ( ! style || ! style.includes( 'mso-list' ) ) {\n\t\treturn;\n\t}\n\n\tconst prevNode = element.previousElementSibling;\n\n\t// Add new list if no previous.\n\tif ( ! prevNode || ! isList( prevNode ) ) {\n\t\t// See https://html.spec.whatwg.org/multipage/grouping-content.html#attr-ol-type.\n\t\tconst type = element.textContent!.trim().slice( 0, 1 );\n\t\tconst isNumeric = /[1iIaA]/.test( type );\n\t\tconst newListNode = doc.createElement( isNumeric ? 'ol' : 'ul' );\n\n\t\tif ( isNumeric ) {\n\t\t\tnewListNode.setAttribute( 'type', type );\n\t\t}\n\n\t\telement.parentNode!.insertBefore( newListNode, element );\n\t}\n\n\tconst listNode = element.previousElementSibling!;\n\tconst listType = listNode.nodeName;\n\tconst listItem = doc.createElement( 'li' );\n\n\tlet receivingNode: Node = listNode;\n\n\t// Add content.\n\tlistItem.innerHTML = deepFilterHTML( element.innerHTML, [ msListIgnore ] );\n\n\tconst matches = /mso-list\\s*:[^;]+level([0-9]+)/i.exec( style );\n\tlet level = matches ? parseInt( matches[ 1 ], 10 ) - 1 || 0 : 0;\n\n\t// Change pointer depending on indentation level.\n\twhile ( level-- ) {\n\t\treceivingNode = receivingNode.lastChild || receivingNode;\n\n\t\t// If it's a list, move pointer to the last item.\n\t\tif ( isList( receivingNode ) ) {\n\t\t\treceivingNode = receivingNode.lastChild || receivingNode;\n\t\t}\n\t}\n\n\t// Make sure we append to a list.\n\tif ( ! isList( receivingNode ) ) {\n\t\treceivingNode = receivingNode.appendChild(\n\t\t\tdoc.createElement( listType )\n\t\t);\n\t}\n\n\t// Append the list item to the list.\n\treceivingNode.appendChild( listItem );\n\n\t// Remove the wrapper paragraph.\n\telement.parentNode!.removeChild( element );\n}\n"],
  "mappings": ";AAGA,SAAS,sBAAsB;AAC/B,OAAO,kBAAkB;AAEzB,SAAS,OAAQ,MAAsB;AACtC,SAAO,KAAK,aAAa,QAAQ,KAAK,aAAa;AACpD;AAEe,SAAR,gBAAkC,MAAY,KAAsB;AAC1E,MAAK,KAAK,aAAa,KAAM;AAC5B;AAAA,EACD;AAEA,QAAM,UAAU;AAChB,QAAM,QAAQ,QAAQ,aAAc,OAAQ;AAE5C,MAAK,CAAE,SAAS,CAAE,MAAM,SAAU,UAAW,GAAI;AAChD;AAAA,EACD;AAEA,QAAM,WAAW,QAAQ;AAGzB,MAAK,CAAE,YAAY,CAAE,OAAQ,QAAS,GAAI;AAEzC,UAAM,OAAO,QAAQ,YAAa,KAAK,EAAE,MAAO,GAAG,CAAE;AACrD,UAAM,YAAY,UAAU,KAAM,IAAK;AACvC,UAAM,cAAc,IAAI,cAAe,YAAY,OAAO,IAAK;AAE/D,QAAK,WAAY;AAChB,kBAAY,aAAc,QAAQ,IAAK;AAAA,IACxC;AAEA,YAAQ,WAAY,aAAc,aAAa,OAAQ;AAAA,EACxD;AAEA,QAAM,WAAW,QAAQ;AACzB,QAAM,WAAW,SAAS;AAC1B,QAAM,WAAW,IAAI,cAAe,IAAK;AAEzC,MAAI,gBAAsB;AAG1B,WAAS,YAAY,eAAgB,QAAQ,WAAW,CAAE,YAAa,CAAE;AAEzE,QAAM,UAAU,kCAAkC,KAAM,KAAM;AAC9D,MAAI,QAAQ,UAAU,SAAU,QAAS,CAAE,GAAG,EAAG,IAAI,KAAK,IAAI;AAG9D,SAAQ,SAAU;AACjB,oBAAgB,cAAc,aAAa;AAG3C,QAAK,OAAQ,aAAc,GAAI;AAC9B,sBAAgB,cAAc,aAAa;AAAA,IAC5C;AAAA,EACD;AAGA,MAAK,CAAE,OAAQ,aAAc,GAAI;AAChC,oBAAgB,cAAc;AAAA,MAC7B,IAAI,cAAe,QAAS;AAAA,IAC7B;AAAA,EACD;AAGA,gBAAc,YAAa,QAAS;AAGpC,UAAQ,WAAY,YAAa,OAAQ;AAC1C;",
  "names": []
}
