// Riot.js constants that can be used across more modules

export const COMPONENTS_IMPLEMENTATION_MAP = new Map(),
  DOM_COMPONENT_INSTANCE_PROPERTY = Symbol('riot-component'),
  PLUGINS_SET = new Set(),
  IS_DIRECTIVE = 'is',
  VALUE_ATTRIBUTE = 'value',
  REF_ATTRIBUTE = 'ref',
  EVENT_ATTRIBUTE_RE = /^on/,
  MOUNT_METHOD_KEY = 'mount',
  UPDATE_METHOD_KEY = 'update',
  UNMOUNT_METHOD_KEY = 'unmount',
  SHOULD_UPDATE_KEY = 'shouldUpdate',
  ON_BEFORE_MOUNT_KEY = 'onBeforeMount',
  ON_MOUNTED_KEY = 'onMounted',
  ON_BEFORE_UPDATE_KEY = 'onBeforeUpdate',
  ON_UPDATED_KEY = 'onUpdated',
  ON_BEFORE_UNMOUNT_KEY = 'onBeforeUnmount',
  ON_UNMOUNTED_KEY = 'onUnmounted',
  PROPS_KEY = 'props',
  STATE_KEY = 'state',
  SLOTS_KEY = 'slots',
  ROOT_KEY = 'root',
  IS_PURE_SYMBOL = Symbol('pure'),
  IS_COMPONENT_UPDATING = Symbol('is_updating'),
  PARENT_KEY_SYMBOL = Symbol('parent'),
  TEMPLATE_KEY_SYMBOL = Symbol('template'),
  ROOT_ATTRIBUTES_KEY_SYMBOL = Symbol('root-attributes')
