'use strict';


/**
 * @author schukai GmbH
 */

export {
    DEFAULT_THEME,
    ATTRIBUTE_PREFIX,
    ATTRIBUTE_OPTIONS,
    ATTRIBUTE_OPTIONS_SELECTOR,
    ATTRIBUTE_THEME_PREFIX,
    ATTRIBUTE_THEME_NAME,
    ATTRIBUTE_UPDATER_ATTRIBUTES,
    ATTRIBUTE_UPDATER_SELECT_THIS,
    ATTRIBUTE_UPDATER_REPLACE,
    ATTRIBUTE_UPDATER_INSERT,
    ATTRIBUTE_UPDATER_INSERT_REFERENCE,
    ATTRIBUTE_UPDATER_REMOVE,
    ATTRIBUTE_UPDATER_BIND,
    ATTRIBUTE_TEMPLATE_PREFIX,
    ATTRIBUTE_ROLE,
    ATTRIBUTE_DISABLED,
    ATTRIBUTE_VALUE,
    ATTRIBUTE_OBJECTLINK,
    ATTRIBUTE_ERRORMESSAGE,
    TAG_SCRIPT,
    TAG_STYLE,
    TAG_LINK,
    ATTRIBUTE_ID,
    ATTRIBUTE_CLASS,
    ATTRIBUTE_TITLE,
    ATTRIBUTE_SRC,
    ATTRIBUTE_HREF,
    ATTRIBUTE_TYPE,
    ATTRIBUTE_NONCE,
    ATTRIBUTE_TRANSLATE,
    ATTRIBUTE_TABINDEX,
    ATTRIBUTE_SPELLCHECK,
    ATTRIBUTE_SLOT,
    ATTRIBUTE_PART,
    ATTRIBUTE_LANG,
    ATTRIBUTE_ITEMTYPE,
    ATTRIBUTE_ITEMSCOPE,
    ATTRIBUTE_ITEMREF,
    ATTRIBUTE_ITEMID,
    ATTRIBUTE_ITEMPROP,
    ATTRIBUTE_IS,
    ATTRIBUTE_INPUTMODE,
    ATTRIBUTE_ACCESSKEY,
    ATTRIBUTE_AUTOCAPITALIZE,
    ATTRIBUTE_AUTOFOCUS,
    ATTRIBUTE_CONTENTEDITABLE,
    ATTRIBUTE_DIR,
    ATTRIBUTE_DRAGGABLE,
    ATTRIBUTE_ENTERKEYHINT,
    ATTRIBUTE_EXPORTPARTS,
    ATTRIBUTE_HIDDEN,
    objectUpdaterLinkSymbol,

}

/**
 * default theme
 * @memberOf Monster.DOM
 * @type {string}
 */
const DEFAULT_THEME = 'monster';

/**
 * @memberOf Monster.DOM
 * @since 1.8.0
 * @type {string}
 */
const ATTRIBUTE_PREFIX = 'data-monster-';

/**
 * This is the name of the attribute to pass options to a control
 *
 * @memberOf Monster.DOM
 * @since 1.8.0
 * @type {string}
 */
const ATTRIBUTE_OPTIONS = ATTRIBUTE_PREFIX + 'options';

/**
 * This is the name of the attribute to pass options to a control
 *
 * @memberOf Monster.DOM
 * @since 1.30.0
 * @type {string}
 */
const ATTRIBUTE_OPTIONS_SELECTOR = ATTRIBUTE_PREFIX + 'options-selector';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_THEME_PREFIX = ATTRIBUTE_PREFIX + 'theme-';

/**
 * @memberOf Monster.DOM
 * @type {string}
 */
const ATTRIBUTE_THEME_NAME = ATTRIBUTE_THEME_PREFIX + 'name';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_UPDATER_ATTRIBUTES = ATTRIBUTE_PREFIX + 'attributes';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.27.1
 */
const ATTRIBUTE_UPDATER_SELECT_THIS = ATTRIBUTE_PREFIX + 'select-this';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_UPDATER_REPLACE = ATTRIBUTE_PREFIX + 'replace';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_UPDATER_INSERT = ATTRIBUTE_PREFIX + 'insert';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_UPDATER_INSERT_REFERENCE = ATTRIBUTE_PREFIX + 'insert-reference';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.8.0
 */
const ATTRIBUTE_UPDATER_REMOVE = ATTRIBUTE_PREFIX + 'remove';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.9.0
 */
const ATTRIBUTE_UPDATER_BIND = ATTRIBUTE_PREFIX + 'bind';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.27.0
 */
const ATTRIBUTE_TEMPLATE_PREFIX = ATTRIBUTE_PREFIX + 'template-prefix';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.14.0
 */
const ATTRIBUTE_ROLE = ATTRIBUTE_PREFIX + 'role';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.24.0
 */
const ATTRIBUTE_DISABLED = 'disabled';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.24.0
 */
const ATTRIBUTE_VALUE = 'value';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.9.0
 */
const ATTRIBUTE_OBJECTLINK = ATTRIBUTE_PREFIX + 'objectlink';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.24.0
 */
const ATTRIBUTE_ERRORMESSAGE = ATTRIBUTE_PREFIX + 'error';

/**
 * @memberOf Monster.DOM
 * @type {symbol}
 * @since 1.24.0
 */
const objectUpdaterLinkSymbol = Symbol('monsterUpdater');

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const TAG_SCRIPT = 'script';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const TAG_STYLE = 'style';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const TAG_LINK = 'link';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */

const ATTRIBUTE_ID = 'id';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */

const ATTRIBUTE_CLASS = 'class';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_TITLE = 'title';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_SRC = 'src';
/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_HREF = 'href';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_TYPE = 'type';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_NONCE = 'nonce';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_TRANSLATE = 'translate';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_TABINDEX = 'tabindex';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_SPELLCHECK = 'spellcheck';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_SLOT = 'slot';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_PART = 'part';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_LANG = 'lang';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ITEMTYPE = 'itemtype';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ITEMSCOPE = 'itemscope';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ITEMREF = 'itemref';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ITEMID = 'itemid';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ITEMPROP = 'itemprop';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_IS = 'is';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_INPUTMODE = 'inputmode';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ACCESSKEY = 'accesskey';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_AUTOCAPITALIZE = 'autocapitalize';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_AUTOFOCUS = 'autofocus';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_CONTENTEDITABLE = 'contenteditable';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_DIR = 'dir';

/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_DRAGGABLE = 'draggable';


/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_ENTERKEYHINT = 'enterkeyhint';
/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_EXPORTPARTS = 'exportparts';
/**
 * @memberOf Monster.DOM
 * @type {string}
 * @since 1.25.0
 */
const ATTRIBUTE_HIDDEN = 'hidden';