package org.zwobble.mammoth.internal.styles;

import org.zwobble.mammoth.internal.styles.parsing.StyleMapParser;

import static org.zwobble.mammoth.internal.util.Lists.list;

public class DefaultStyles {
    public static final StyleMap DEFAULT_STYLE_MAP = StyleMapParser.parseStyleMappings(list(
        "p.Heading1 => h1:fresh",
        "p.Heading2 => h2:fresh",
        "p.Heading3 => h3:fresh",
        "p.Heading4 => h4:fresh",
        "p[style-name='Heading 1'] => h1:fresh",
        "p[style-name='Heading 2'] => h2:fresh",
        "p[style-name='Heading 3'] => h3:fresh",
        "p[style-name='Heading 4'] => h4:fresh",
        "p[style-name='heading 1'] => h1:fresh",
        "p[style-name='heading 2'] => h2:fresh",
        "p[style-name='heading 3'] => h3:fresh",
        "p[style-name='heading 4'] => h4:fresh",
        "p[style-name='heading 4'] => h4:fresh",

        "r[style-name='Strong'] => strong",

        "p[style-name='footnote text'] => p",
        "r[style-name='footnote reference'] =>",
        "p[style-name='endnote text'] => p",
        "r[style-name='endnote reference'] =>",
        "p[style-name='annotation text'] => p",
        "r[style-name='annotation reference'] =>",

        // LibreOffice
        "p[style-name='Footnote'] => p",
        "r[style-name='Footnote anchor'] =>",
        "p[style-name='Endnote'] => p",
        "r[style-name='Endnote anchor'] =>",

        "p:unordered-list(1) => ul > li:fresh",
        "p:unordered-list(2) => ul|ol > li > ul > li:fresh",
        "p:unordered-list(3) => ul|ol > li > ul|ol > li > ul > li:fresh",
        "p:unordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh",
        "p:unordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ul > li:fresh",
        "p:ordered-list(1) => ol > li:fresh",
        "p:ordered-list(2) => ul|ol > li > ol > li:fresh",
        "p:ordered-list(3) => ul|ol > li > ul|ol > li > ol > li:fresh",
        "p:ordered-list(4) => ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh",
        "p:ordered-list(5) => ul|ol > li > ul|ol > li > ul|ol > li > ul|ol > li > ol > li:fresh",

        "r[style-name='Hyperlink'] =>",

        "p[style-name='Normal'] => p:fresh"));
}

@@ -418,32 +418,100 @@
 4 =%3E h4:fresh%22,%0A
+        %22p.Heading5 =%3E h5:fresh%22,%0A        %22p.Heading6 =%3E h6:fresh%22,%0A
         %22p%5Bstyle
@@ -535,32 +535,32 @@
 %5D =%3E h1:fresh%22,%0A
-
         %22p%5Bstyle
@@ -682,32 +682,130 @@
 %5D =%3E h4:fresh%22,%0A
+        %22p%5Bstyle-name='Heading 5'%5D =%3E h5:fresh%22,%0A        %22p%5Bstyle-name='Heading 6'%5D =%3E h6:fresh%22,%0A
         %22p%5Bstyle
@@ -1011,33 +1011,82 @@
 me='heading 
-4
+5'%5D =%3E h5:fresh%22,%0A        %22p%5Bstyle-name='heading 6
 '%5D =%3E h
-4
+6
 :fresh%22,%0A%0A  

Add default style mappings for h5 and h6