import { Express, Mode } from '../types'; import { IComponent } from './IComponent'; export interface GComponent extends IComponent { /** * the node name. * * @type {string} *@memberof GComposite */ name: string; /** * parent node. * * @type {T} *@memberof GComposite */ parent?: T; /** * add node to this component and return self. * * @param {T} node the node to add. * @returns {this} self. *@memberof GComposite */ add(node: T): this; /** * remove node from this component. * * @param {(T | string)} node * @returns {this} *@memberof GComposite */ remove(node: T | string): this; /** * find sub context via express. * * @param {(T | Express)} express * @param {Mode} [mode] * @returns {T} *@memberof GComposite */ find(express: T | Express, mode?: Mode): T; /** * filter in component. * * @param {(Express)} express * @param {Mode} [mode] * @returns {T[]} *@memberof GComposite */ filter(express: Express, mode?: Mode): T[]; /** * iteration context with express. * * @param {(Express)} express * @param {Mode} [mode] *@memberof GComposite */ each(express: Express, mode?: Mode): any; /** * trans all sub nodes. node first iteration. * * @param {(Express)} express *@memberof GComposite */ trans(express: Express): any; /** * trans all sub nodes. node last iteration. * * @param {(Express)} express *@memberof GComposite */ transAfter(express: Express): any; /** * route up iteration. * * @param {(Express)} express *@memberof GComposite */ routeUp(express: Express): any; /** * this component node equals to the node or not. * * @param {T} node * @returns {boolean} *@memberof GComposite */ equals(node: T): boolean; /** * get empty node. * * @returns {T} *@memberof GComposite */ empty(): T; /** * check this node is empty or not. * * @returns {boolean} *@memberof GComposite */ isEmpty(): boolean; }