import * as ClassList from './methods/class-list.js' import * as ContextMethods from './methods/context.js' export type Context = { getAttribute: (name: string) => any } & ( | { name: string } | { localName: string setAttribute: HTMLElement['setAttribute'] } ) export type ContextOrClassList = Context | string[] export type ContextElement = Context export { ContextMethods } export const Context = Object.assign({}, ContextMethods, { // moved here to avoid circular imports getClassList(context: ContextOrClassList, ...extraClasses: string[]): string[] { const classList = context ? Array.isArray(context) ? context : ClassList.fromClassName(ContextMethods.getClassName(context)) : [] if (extraClasses.length) return ClassList.concat(classList, extraClasses) return classList }, getDefinition(context: ContextOrClassList) { return ClassList.getDefinition(context instanceof Array ? context : Context.getClassList(context)) } })