aurelia-templating
Version:
An extensible HTML templating engine supporting databinding, custom elements, attached behaviors and more.
45 lines (32 loc) • 1.65 kB
TypeScript
import { BindingBehaviorResource, ValueConverterResource } from "aurelia-binding";
import { HtmlBehaviorResource } from "./html-behavior";
import { BehaviorInstruction } from "./instructions";
import { PassThroughSlot, ShadowSlot } from "./shadow-dom";
import { View } from "./view";
import { ViewCompiler } from "./view-compiler";
import { ViewEngineHooksResource } from "./view-engine-hooks-resource";
import { ViewResources } from "./view-resources";
import { ViewSlot } from "./view-slot";
export type ViewResourceType = HtmlBehaviorResource | ValueConverterResource | BindingBehaviorResource | ViewEngineHooksResource;
/** @internal */
export type ConstructableResourceTarget = Function & { __providerId__: number; };
export type SlotMarkedNode = Node & {
viewSlot?: ShadowSlot | PassThroughSlot | ViewSlot;
/** @internal */
auOwnerView?: View;
/** @internal */
auProjectionSource?: ViewSlot | ShadowSlot;
/** @internal */
auAssignedSlot?: ShadowSlot | PassThroughSlot;
/** @internal */
auSlotProjectFrom?: ViewSlot | ShadowSlot;
/** @internal */
auProjectionChildren?: SlotMarkedNode[];
/** @internal */
isContentProjectionSource?: boolean;
};
export type ProcessContentCallback = (viewCompiler: ViewCompiler, resources: ViewResources, node: Element, instruction: BehaviorInstruction) => boolean;
export type ProcessAttributeCallback = (compiler: ViewCompiler, resources: ViewResources, node: Element, attributes: Element['attributes'], elementInstruction: BehaviorInstruction) => void;
export type InterpolationNode = Node & {
auInterpolationTarget?: boolean;
}