/** * 커스텀 엘리먼트 어댑터 — `` / ``. * * 프레임워크 의존이 전혀 없는 최소 공통 분모다. Vanilla / jQuery 는 물론 * Angular 처럼 별도 컴파일러가 필요한 프레임워크도 이 엘리먼트를 통해 버전 * 제약 없이 붙을 수 있다 (`angular/` 디렉터리의 디렉티브가 이 위에 올라간다). * * Shadow DOM 을 쓰지 않는다. 에디터 스타일시트가 전역 CSS 변수 기반이라 * 그림자 경계를 두면 테마 변수와 폰트 상속이 끊긴다. * * @example * * * * * * */ import type { AerizEditor, AerizViewer, BlockSnapshot } from '@aeriz/wysiwyg'; type UploadFn = (file: File) => Promise; /** * ``. * * 문자열로 표현되는 설정은 속성(attribute), 함수/객체는 프로퍼티로 준다. * 폼 연동을 지원하는 브라우저에서는 `name` 속성을 주면 `
` 전송에 * 본문 HTML 이 함께 실린다. */ export declare class AerizEditorElement extends HTMLElement { static get observedAttributes(): string[]; /** 폼 연동 대상임을 선언. 미지원 브라우저는 이 필드를 무시한다. */ static formAssociated: boolean; /** 프로퍼티로 설정된 업로드 핸들러. 속성으로는 표현할 수 없다. */ onImageUpload: UploadFn | undefined; onFileUpload: UploadFn | undefined; private controller; private internals; /** * 아직 에디터에 반영되지 않은 **외부에서 지정한** 값. * * 반영이 끝나면 즉시 비운다. 이 값이 남아 있으면 관계없는 속성(`theme` 등) 이 * 바뀔 때마다 낡은 값이 `setHTML()` 로 다시 밀려들어가, 모든 블록 id 가 * 재발급되고 입력 중이던 캐럿이 문서 맨 앞으로 튄다. */ private pendingValue; /** 에디터가 마지막으로 보고한 본문. 폼 값과 마운트 해제 후 `value` 의 근거. */ private currentHTML; constructor(); /** 현재 본문 HTML. 설정하면 본문을 교체한다. */ get value(): string; set value(next: string); /** 코어 인스턴스. 마운트 전에는 `null`. */ get editor(): AerizEditor | null; /** 블록 상태 스냅샷. */ getBlocks(): BlockSnapshot[]; /** 본문에 캐럿을 둔다. `HTMLElement.focus()` 를 본문 쪽으로 위임한다. */ focus(): void; connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(name: string, _previous: string | null, next: string | null): void; /** * 현재 속성·프로퍼티 상태를 컨트롤러에 반영한다. * 반영 직후 pendingValue 를 비워, 다음 갱신에서 같은 값이 되살아나지 않게 한다. */ private applyProps; private buildProps; private syncFormValue; } /** `` — 읽기 전용 렌더링. */ export declare class AerizViewerElement extends HTMLElement { static get observedAttributes(): string[]; private controller; private pendingBlocks; /** 블록 상태를 직접 넣는다. `html` 속성보다 우선한다. */ get blocks(): BlockSnapshot[]; set blocks(next: BlockSnapshot[]); get viewer(): AerizViewer | null; connectedCallback(): void; disconnectedCallback(): void; attributeChangedCallback(): void; private buildProps; } /** * 커스텀 엘리먼트를 등록한다. 이미 등록된 이름은 건너뛰므로 여러 번 불러도 * 안전하다. 이름 충돌이 있는 페이지에서는 `prefix` 로 바꿀 수 있다. * * @param prefix 태그 접두사. 기본 `'aeriz'` → `` / `` */ export declare function defineAerizElements(prefix?: string): void; export {}; //# sourceMappingURL=wc.d.ts.map