/*************************************************************
 *
 *  Copyright (c) 2017 The MathJax Consortium
 *
 *  Licensed under the Apache License, Version 2.0 (the "License");
 *  you may not use this file except in compliance with the License.
 *  You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 *  Unless required by applicable law or agreed to in writing, software
 *  distributed under the License is distributed on an "AS IS" BASIS,
 *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 *  See the License for the specific language governing permissions and
 *  limitations under the License.
 */

/**
 * @fileoverview  An object listing all the CHTMLWrapper classes
 *
 * @author dpvc@mathjax.org (Davide Cervone)
 */

import {WrapperConstructor} from '../common/Wrapper.js';
import {CHTMLWrapper} from './Wrapper.js';
import {CHTMLmath} from './Wrappers/math.js';
import {CHTMLmi} from './Wrappers/mi.js';
import {CHTMLmo} from './Wrappers/mo.js';
import {CHTMLmn} from './Wrappers/mn.js';
import {CHTMLms} from './Wrappers/ms.js';
import {CHTMLmtext} from './Wrappers/mtext.js';
import {CHTMLmspace} from './Wrappers/mspace.js';
import {CHTMLmpadded} from './Wrappers/mpadded.js';
import {CHTMLmenclose} from './Wrappers/menclose.js';
import {CHTMLmrow, CHTMLinferredMrow} from './Wrappers/mrow.js';
import {CHTMLmfenced} from './Wrappers/mfenced.js';
import {CHTMLmfrac} from './Wrappers/mfrac.js';
import {CHTMLmsqrt} from './Wrappers/msqrt.js';
import {CHTMLmroot} from './Wrappers/mroot.js';
import {CHTMLmsub, CHTMLmsup, CHTMLmsubsup} from './Wrappers/msubsup.js';
import {CHTMLmover, CHTMLmunder, CHTMLmunderover} from './Wrappers/munderover.js';
import {CHTMLmmultiscripts} from './Wrappers/mmultiscripts.js';
import {CHTMLmtable} from './Wrappers/mtable.js';
import {CHTMLmtr, CHTMLmlabeledtr} from './Wrappers/mtr.js';
import {CHTMLmtd} from './Wrappers/mtd.js';
import {CHTMLmaction} from './Wrappers/maction.js';
import {CHTMLmglyph} from './Wrappers/mglyph.js';
import {CHTMLsemantics, CHTMLannotation, CHTMLannotationXML, CHTMLxml} from './Wrappers/semantics.js';
import {CHTMLTeXAtom} from './Wrappers/TeXAtom.js';
import {CHTMLTextNode} from './Wrappers/TextNode.js';

export const CHTMLWrappers: {[kind: string]: WrapperConstructor}  = {
    [CHTMLmath.kind]: CHTMLmath,
    [CHTMLmrow.kind]: CHTMLmrow,
    [CHTMLinferredMrow.kind]: CHTMLinferredMrow,
    [CHTMLmi.kind]: CHTMLmi,
    [CHTMLmo.kind]: CHTMLmo,
    [CHTMLmn.kind]: CHTMLmn,
    [CHTMLms.kind]: CHTMLms,
    [CHTMLmtext.kind]: CHTMLmtext,
    [CHTMLmspace.kind]: CHTMLmspace,
    [CHTMLmpadded.kind]: CHTMLmpadded,
    [CHTMLmenclose.kind]: CHTMLmenclose,
    [CHTMLmfrac.kind]: CHTMLmfrac,
    [CHTMLmsqrt.kind]: CHTMLmsqrt,
    [CHTMLmroot.kind]: CHTMLmroot,
    [CHTMLmsub.kind]: CHTMLmsub,
    [CHTMLmsup.kind]: CHTMLmsup,
    [CHTMLmsubsup.kind]: CHTMLmsubsup,
    [CHTMLmunder.kind]: CHTMLmunder,
    [CHTMLmover.kind]: CHTMLmover,
    [CHTMLmunderover.kind]: CHTMLmunderover,
    [CHTMLmmultiscripts.kind]: CHTMLmmultiscripts,
    [CHTMLmfenced.kind]: CHTMLmfenced,
    [CHTMLmtable.kind]: CHTMLmtable,
    [CHTMLmtr.kind]: CHTMLmtr,
    [CHTMLmlabeledtr.kind]: CHTMLmlabeledtr,
    [CHTMLmtd.kind]: CHTMLmtd,
    [CHTMLmaction.kind]: CHTMLmaction,
    [CHTMLmglyph.kind]: CHTMLmglyph,
    [CHTMLsemantics.kind]: CHTMLsemantics,
    [CHTMLannotation.kind]: CHTMLannotation,
    [CHTMLannotationXML.kind]: CHTMLannotationXML,
    [CHTMLxml.kind]: CHTMLxml,
    [CHTMLTeXAtom.kind]: CHTMLTeXAtom,
    [CHTMLTextNode.kind]: CHTMLTextNode,
    [CHTMLWrapper.kind]: CHTMLWrapper
};
