36 lines
2.4 KiB
TypeScript
36 lines
2.4 KiB
TypeScript
/** jz-* 自訂元素名(皆含連字號,合法 custom element,預設 inline)。 */
|
|
export type JzTag = "jz-hws" | "jz-char" | "jz-inner" | "jz-cs" | "jz-jinze" | "jz-orphan" | "jz-em" | "jz-ruby" | "jz-rb" | "jz-rt";
|
|
type JzKind = "wrap";
|
|
export interface CreateOptions {
|
|
/** 追加之 class(空白分隔或陣列)。 */
|
|
classes?: string | string[];
|
|
/** 文本內容。 */
|
|
text?: string;
|
|
}
|
|
/** 完成受控解包後登記;只接受真實、已移除且空的受管產物。 */
|
|
export declare function recordUnwrappedParent(el: Element, parent: Node, ownedElements: WeakSet<Element>): void;
|
|
/** 其他 pass/實例合法撤回來源包裹後,搬移記錄沿受控解包鏈查詢現父。 */
|
|
export declare function resolveUnwrappedParent(parent: Node): Node | null;
|
|
/** 造一個帶 pass 標記之 jz-* 元素。 */
|
|
export declare function createJz(ownedElements: WeakSet<Element>, tag: JzTag, pass: string, kind: JzKind, opts?: CreateOptions): HTMLElement;
|
|
/** 記錄後寫屬性;同實例重寫時仍保留最初原值。 */
|
|
export declare function setOwnedAttribute(el: Element, name: string, value: string, owner: object): void;
|
|
/** 僅當 DOM 仍是本實例最後寫入之值時還原;外部變更時 fail closed。 */
|
|
export declare function revertOwnedAttribute(el: Element, name: string, owner: object): void;
|
|
/** 還原 owner 於 root 本身或子樹寫入之指定屬性,包括已被外部刪除者。 */
|
|
export declare function revertOwnedAttributes(root: Element, name: string, owner: object): void;
|
|
/**
|
|
* 還原某 pass 之全部產物(I6)。以 data-jz 定址,逆文件序處理(先內層後
|
|
* 外層),wrap 解包,最後 normalize 受影響父節點合併文本。
|
|
*
|
|
* splitoff(克隆切分之邊界詞元,見 core/split.ts)須在 wrap 全部解包**之後**才併回:
|
|
* 否則其前兄弟可能仍是 wrap 殼(如 jz-jinze)而非原元素。故主迴圈跳過 splitoff,於
|
|
* 解包後第二階段以文件序逐一併回前兄弟(同標籤元素),還原為單一元素(I6 一致)。
|
|
*/
|
|
export declare function revertPass(pass: string, root: ParentNode, ownedElements: WeakSet<Element>): void;
|
|
/** 讀取 jz-char 之 bd-* 子類(無則 null)。 */
|
|
export declare function bdClassOf(el: Element): string | null;
|
|
/** 該元素是否為某/任一 pass 之 jz 產物。 */
|
|
export declare function isJz(node: Node | null, pass?: string): boolean;
|
|
export {};
|