taggedjs
Version:
tagged template reactive html
50 lines (49 loc) • 1.69 kB
TypeScript
import { State } from '../state/index.js';
import { InterpolatedTemplates } from '../interpolations/interpolations.js';
import { TemplaterResult } from './TemplaterResult.class.js';
import { TagValues } from './html.js';
import { ValueTypes } from './ValueTypes.enum.js';
import { DomMetaMap, LikeObjectChildren } from '../interpolations/optimizers/LikeObjectElement.type.js';
import { AnySupport } from './Support.class.js';
import { StringTag } from './StringTag.type.js';
export { StringTag };
export declare const variablePrefix = ":tagvar";
export declare const variableSuffix = ":";
export type EventCallback = (event: Event) => any;
export type EventMem = {
elm: Element;
callback: EventCallback;
};
export type TagMemory = {
state: State;
};
export interface TagTemplate {
interpolation: InterpolatedTemplates;
string: string;
strings: string[];
values: unknown[];
domMetaMap?: DomMetaMap;
}
export type Tag = {
values: unknown[];
tagJsType?: typeof ValueTypes.tag | typeof ValueTypes.dom;
templater?: TemplaterResult;
ownerSupport?: AnySupport;
arrayValue?: any;
};
export type KeyFunction = (arrayValue: unknown) => StringTag;
export declare function getStringTag(strings: string[], values: unknown[]): StringTag;
export type DomTag = Tag & {
children?: {
dom: LikeObjectChildren;
values: TagValues;
};
dom: LikeObjectChildren;
values: unknown[];
key: (arrayValue: unknown) => DomTag;
html: {
dom: (dom: LikeObjectChildren, // ObjectChildren
values: TagValues) => DomTag;
};
};
export declare function getDomTag(dom: LikeObjectChildren, values: unknown[]): DomTag;