diff --git "a/pkg/rhwp.js" "b/pkg/rhwp.js" new file mode 100644--- /dev/null +++ "b/pkg/rhwp.js" @@ -0,0 +1,6217 @@ +/* @ts-self-types="./rhwp.d.ts" */ + +/** + * WASM에서 사용할 HWP 문서 래퍼 + * + * 도메인 로직은 `DocumentCore`에 구현되어 있으며, + * `Deref`/`DerefMut`를 통해 투명하게 접근한다. + */ +export class HwpDocument { + static __wrap(ptr) { + ptr = ptr >>> 0; + const obj = Object.create(HwpDocument.prototype); + obj.__wbg_ptr = ptr; + HwpDocumentFinalization.register(obj, obj.__wbg_ptr, obj); + return obj; + } + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + HwpDocumentFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_hwpdocument_free(ptr, 0); + } + /** + * 책갈피 추가 + * @param {number} sec + * @param {number} para + * @param {number} char_offset + * @param {string} name + * @returns {string} + */ + addBookmark(sec, para, char_offset, name) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_addBookmark(this.__wbg_ptr, sec, para, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 스타일을 적용한다 (셀 내 문단). + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} style_id + * @returns {string} + */ + applyCellStyle(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, style_id) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_applyCellStyle(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, style_id); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 글자 서식을 적용한다 (본문 문단). + * @param {number} sec_idx + * @param {number} para_idx + * @param {number} start_offset + * @param {number} end_offset + * @param {string} props_json + * @returns {string} + */ + applyCharFormat(sec_idx, para_idx, start_offset, end_offset, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_applyCharFormat(this.__wbg_ptr, sec_idx, para_idx, start_offset, end_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 글자 서식을 적용한다 (셀 내 문단). + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} start_offset + * @param {number} end_offset + * @param {string} props_json + * @returns {string} + */ + applyCharFormatInCell(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, start_offset, end_offset, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_applyCharFormatInCell(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, start_offset, end_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 머리말/꼬리말 마당(템플릿)을 적용한다. + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} template_id + * @returns {string} + */ + applyHfTemplate(section_idx, is_header, apply_to, template_id) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_applyHfTemplate(this.__wbg_ptr, section_idx, is_header, apply_to, template_id); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * @param {number} sec_idx + * @param {number} para_idx + * @param {string} props_json + * @returns {string} + */ + applyParaFormat(sec_idx, para_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_applyParaFormat(this.__wbg_ptr, sec_idx, para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 문단 서식을 적용한다 (셀 내 문단). + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {string} props_json + * @returns {string} + */ + applyParaFormatInCell(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_applyParaFormatInCell(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 머리말/꼬리말 문단에 문단 서식을 적용한다. + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {string} props_json + * @returns {string} + */ + applyParaFormatInHf(section_idx, is_header, apply_to, hf_para_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_applyParaFormatInHf(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 스타일을 적용한다 (본문 문단). + * @param {number} sec_idx + * @param {number} para_idx + * @param {number} style_id + * @returns {string} + */ + applyStyle(sec_idx, para_idx, style_id) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_applyStyle(this.__wbg_ptr, sec_idx, para_idx, style_id); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * Batch 모드를 시작한다. 이후 Command 호출 시 paginate()를 건너뛴다. + * @returns {string} + */ + beginBatch() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_beginBatch(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * Shape z-order 변경 + * operation: "front" | "back" | "forward" | "backward" + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {string} operation + * @returns {string} + */ + changeShapeZOrder(section_idx, parent_para_idx, control_idx, operation) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(operation, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_changeShapeZOrder(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 활성 필드를 해제한다 (안내문 다시 표시). + */ + clearActiveField() { + wasm.hwpdocument_clearActiveField(this.__wbg_ptr); + } + /** + * 내부 클립보드를 초기화한다. + */ + clearClipboard() { + wasm.hwpdocument_clearClipboard(this.__wbg_ptr); + } + /** + * 내부 클립보드에 컨트롤(표/그림/도형)이 포함되어 있는지 확인한다. + * @returns {boolean} + */ + clipboardHasControl() { + const ret = wasm.hwpdocument_clipboardHasControl(this.__wbg_ptr); + return ret !== 0; + } + /** + * 배포용(읽기전용) 문서를 편집 가능한 일반 문서로 변환한다. + * + * 반환값: JSON `{"ok":true,"converted":true}` 또는 `{"ok":true,"converted":false}` + * @returns {string} + */ + convertToEditable() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_convertToEditable(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 컨트롤 객체(표, 이미지, 도형)를 내부 클립보드에 복사한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {string} + */ + copyControl(section_idx, para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_copyControl(this.__wbg_ptr, section_idx, para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 선택 영역을 내부 클립보드에 복사한다. + * + * 반환값: JSON `{"ok":true,"text":""}` + * @param {number} section_idx + * @param {number} start_para_idx + * @param {number} start_char_offset + * @param {number} end_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + copySelection(section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_copySelection(this.__wbg_ptr, section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 셀 내부 선택 영역을 내부 클립보드에 복사한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} start_cell_para_idx + * @param {number} start_char_offset + * @param {number} end_cell_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + copySelectionInCell(section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_copySelectionInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 내장 템플릿에서 빈 문서를 생성한다. + * + * saved/blank2010.hwp를 WASM 바이너리에 포함하여 유효한 HWP 문서를 즉시 생성. + * DocInfo raw_stream이 온전하므로 FIX-4 워크어라운드와 호환됨. + * @returns {string} + */ + createBlankDocument() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_createBlankDocument(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 빈 문서 생성 (테스트/미리보기용) + * @returns {HwpDocument} + */ + static createEmpty() { + const ret = wasm.hwpdocument_createEmpty(); + return HwpDocument.__wrap(ret); + } + /** + * 머리말/꼬리말 생성 (빈 문단 1개 포함) + * + * 반환: JSON `{"ok":true,"kind":"header/footer","applyTo":N,...}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @returns {string} + */ + createHeaderFooter(section_idx, is_header, apply_to) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_createHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * JSON으로 지정된 번호 형식으로 Numbering 정의를 생성한다. + * + * json: {"levelFormats":["^1.","^2)",...],"numberFormats":[0,8,...],"startNumber":1} + * 반환값: Numbering ID (1-based) + * @param {string} json + * @returns {number} + */ + createNumbering(json) { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_createNumbering(this.__wbg_ptr, ptr0, len0); + return ret; + } + /** + * 커서 위치에 글상자(Rectangle + TextBox)를 삽입한다. + * + * json: `{"sectionIdx":N,"paraIdx":N,"charOffset":N,"width":N,"height":N, + * "horzOffset":N,"vertOffset":N,"treatAsChar":bool,"textWrap":"Square"}` + * 반환: JSON `{"ok":true,"paraIdx":,"controlIdx":0}` + * @param {string} json + * @returns {string} + */ + createShapeControl(json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_createShapeControl(this.__wbg_ptr, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 새 스타일을 생성한다. + * + * json: {"name":"...", "englishName":"...", "type":0, "nextStyleId":0} + * 반환값: 새 스타일 ID (0-based) + * @param {string} json + * @returns {number} + */ + createStyle(json) { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_createStyle(this.__wbg_ptr, ptr0, len0); + return ret; + } + /** + * 커서 위치에 새 표를 삽입한다. + * + * 반환: JSON `{"ok":true,"paraIdx":,"controlIdx":0}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {number} row_count + * @param {number} col_count + * @returns {string} + */ + createTable(section_idx, para_idx, char_offset, row_count, col_count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_createTable(this.__wbg_ptr, section_idx, para_idx, char_offset, row_count, col_count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 커서 위치에 표를 삽입한다 (확장, JSON 옵션). + * + * options JSON: { sectionIdx, paraIdx, charOffset, rowCount, colCount, + * treatAsChar?: bool, colWidths?: [u32, ...] } + * @param {string} options_json + * @returns {string} + */ + createTableEx(options_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(options_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_createTableEx(this.__wbg_ptr, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 책갈피 삭제 + * @param {number} sec + * @param {number} para + * @param {number} ctrl_idx + * @returns {string} + */ + deleteBookmark(sec, para, ctrl_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteBookmark(this.__wbg_ptr, sec, para, ctrl_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말을 삭제한다 (컨트롤 자체 제거). + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @returns {string} + */ + deleteHeaderFooter(section_idx, is_header, apply_to) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 그림 컨트롤을 문단에서 삭제한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + deletePictureControl(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deletePictureControl(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 본문 선택 영역을 삭제한다. + * + * 반환: JSON `{"ok":true,"paraIdx":N,"charOffset":N}` + * @param {number} section_idx + * @param {number} start_para_idx + * @param {number} start_char_offset + * @param {number} end_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + deleteRange(section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteRange(this.__wbg_ptr, section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내 선택 영역을 삭제한다. + * + * 반환: JSON `{"ok":true,"paraIdx":N,"charOffset":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} start_cell_para_idx + * @param {number} start_char_offset + * @param {number} end_cell_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + deleteRangeInCell(section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteRangeInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * Shape(글상자) 컨트롤을 문단에서 삭제한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + deleteShapeControl(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteShapeControl(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 스타일을 삭제한다. + * + * 바탕글(ID 0)은 삭제할 수 없다. + * 삭제된 스타일을 사용 중인 문단은 바탕글(ID 0)로 변경된다. + * @param {number} style_id + * @returns {boolean} + */ + deleteStyle(style_id) { + const ret = wasm.hwpdocument_deleteStyle(this.__wbg_ptr, style_id); + return ret !== 0; + } + /** + * 표에서 열을 삭제한다. + * + * 반환값: JSON `{"ok":true,"rowCount":,"colCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} col_idx + * @returns {string} + */ + deleteTableColumn(section_idx, parent_para_idx, control_idx, col_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTableColumn(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, col_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 컨트롤을 문단에서 삭제한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + deleteTableControl(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTableControl(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표에서 행을 삭제한다. + * + * 반환값: JSON `{"ok":true,"rowCount":,"colCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} row_idx + * @returns {string} + */ + deleteTableRow(section_idx, parent_para_idx, control_idx, row_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTableRow(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, row_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단에서 텍스트를 삭제한다. + * + * 삭제 후 구역을 재구성하고 재페이지네이션한다. + * 반환값: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + deleteText(section_idx, para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteText(this.__wbg_ptr, section_idx, para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 셀 내부 문단에서 텍스트를 삭제한다. + * + * 반환값: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + deleteTextInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTextInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + deleteTextInCellByPath(section_idx, parent_para_idx, path_json, char_offset, count) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_deleteTextInCellByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset, count); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 각주 내 텍스트를 삭제한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @param {number} fn_para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + deleteTextInFootnote(section_idx, para_idx, control_idx, fn_para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTextInFootnote(this.__wbg_ptr, section_idx, para_idx, control_idx, fn_para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 내 텍스트 삭제 + * + * 반환: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + deleteTextInHeaderFooter(section_idx, is_header, apply_to, hf_para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_deleteTextInHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 지정 ID의 스냅샷을 제거하여 메모리를 해제한다. + * @param {number} id + */ + discardSnapshot(id) { + wasm.hwpdocument_discardSnapshot(this.__wbg_ptr, id); + } + /** + * Batch 모드를 종료하고 누적된 이벤트를 반환한다. + * @returns {string} + */ + endBatch() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_endBatch(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 특정 문자의 글머리표 정의가 없으면 생성한다. + * + * 반환값: Bullet ID (1-based) + * @param {string} bullet_char_str + * @returns {number} + */ + ensureDefaultBullet(bullet_char_str) { + const ptr0 = passStringToWasm0(bullet_char_str, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_ensureDefaultBullet(this.__wbg_ptr, ptr0, len0); + return ret; + } + /** + * 문서에 기본 문단 번호 정의가 없으면 생성한다. + * + * 반환값: Numbering ID (1-based) + * @returns {number} + */ + ensureDefaultNumbering() { + const ret = wasm.hwpdocument_ensureDefaultNumbering(this.__wbg_ptr); + return ret; + } + /** + * 표 셀에서 계산식을 실행한다. + * + * formula: "=SUM(A1:A5)", "=A1+B2*3" 등 + * write_result: true이면 결과를 셀에 기록 + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} target_row + * @param {number} target_col + * @param {string} formula + * @param {boolean} write_result + * @returns {string} + */ + evaluateTableFormula(section_idx, parent_para_idx, control_idx, target_row, target_col, formula, write_result) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(formula, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_evaluateTableFormula(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, target_row, target_col, ptr0, len0, write_result); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 컨트롤 객체를 HTML 문자열로 변환한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {string} + */ + exportControlHtml(section_idx, para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_exportControlHtml(this.__wbg_ptr, section_idx, para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문서를 HWP 바이너리로 내보낸다. + * + * Document IR을 HWP 5.0 CFB 바이너리로 직렬화하여 반환한다. + * @returns {Uint8Array} + */ + exportHwp() { + const ret = wasm.hwpdocument_exportHwp(this.__wbg_ptr); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v1; + } + /** + * Document IR을 HWPX(ZIP+XML)로 직렬화하여 반환한다. + * @returns {Uint8Array} + */ + exportHwpx() { + const ret = wasm.hwpdocument_exportHwpx(this.__wbg_ptr); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v1; + } + /** + * 선택 영역을 HTML 문자열로 변환한다 (본문). + * @param {number} section_idx + * @param {number} start_para_idx + * @param {number} start_char_offset + * @param {number} end_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + exportSelectionHtml(section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_exportSelectionHtml(this.__wbg_ptr, section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 선택 영역을 HTML 문자열로 변환한다 (셀 내부). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} start_cell_para_idx + * @param {number} start_char_offset + * @param {number} end_cell_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + exportSelectionInCellHtml(section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_exportSelectionInCellHtml(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 커서에서 이전 방향으로 가장 가까운 선택 가능 컨트롤을 찾는다 (F11 키). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + findNearestControlBackward(section_idx, para_idx, char_offset) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_findNearestControlBackward(this.__wbg_ptr, section_idx, para_idx, char_offset); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 현재 위치 이후의 가장 가까운 선택 가능 컨트롤을 찾는다 (Shift+F11). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + findNearestControlForward(section_idx, para_idx, char_offset) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_findNearestControlForward(this.__wbg_ptr, section_idx, para_idx, char_offset); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 문서 트리에서 다음 편집 가능한 컨트롤/본문을 찾는다. + * delta=+1(앞), delta=-1(뒤). ctrl_idx=-1이면 본문 텍스트에서 출발. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} ctrl_idx + * @param {number} delta + * @returns {string} + */ + findNextEditableControl(section_idx, para_idx, ctrl_idx, delta) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_findNextEditableControl(this.__wbg_ptr, section_idx, para_idx, ctrl_idx, delta); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 글꼴 이름으로 font_id를 조회하거나 새로 생성한다. + * + * 한글(0번) 카테고리에서 이름 검색 → 없으면 7개 전체 카테고리에 신규 등록. + * 반환값: font_id (u16), 실패 시 -1 + * @param {string} name + * @returns {number} + */ + findOrCreateFontId(name) { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_findOrCreateFontId(this.__wbg_ptr, ptr0, len0); + return ret; + } + /** + * 특정 언어 카테고리에서 글꼴 이름으로 ID를 찾거나 등록한다. + * @param {number} lang + * @param {string} name + * @returns {number} + */ + findOrCreateFontIdForLang(lang, name) { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_findOrCreateFontIdForLang(this.__wbg_ptr, lang, ptr0, len0); + return ret; + } + /** + * 문서 내 모든 책갈피 목록 반환 + * @returns {string} + */ + getBookmarks() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getBookmarks(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문서에 정의된 글머리표(Bullet) 목록을 조회한다. + * + * 반환값: JSON 배열 [{ id, char }, ...] + * id는 1-based (ParaShape.numbering_id와 동일) + * @returns {string} + */ + getBulletList() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getBulletList(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 문서에 저장된 캐럿 위치를 반환한다 (문서 로딩 시 캐럿 자동 배치용). + * + * 반환: JSON `{"sectionIndex":N,"paragraphIndex":N,"charOffset":N}` + * @returns {string} + */ + getCaretPosition() { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCaretPosition(this.__wbg_ptr); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내부 문단의 글자 속성을 조회한다. + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @returns {string} + */ + getCellCharPropertiesAt(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCellCharPropertiesAt(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 셀의 행/열/병합 정보를 반환한다. + * + * 반환: JSON `{"row":N,"col":N,"rowSpan":N,"colSpan":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @returns {string} + */ + getCellInfo(section_idx, parent_para_idx, control_idx, cell_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCellInfo(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 경로 기반 셀 정보 조회 (중첩 표용). + * + * 반환: JSON `{"row":N,"col":N,"rowSpan":N,"colSpan":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {string} + */ + getCellInfoByPath(section_idx, parent_para_idx, path_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getCellInfoByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 셀 내부 문단의 문단 속성을 조회한다. + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {string} + */ + getCellParaPropertiesAt(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCellParaPropertiesAt(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 셀 내 문단 수를 반환한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @returns {number} + */ + getCellParagraphCount(section_idx, parent_para_idx, control_idx, cell_idx) { + const ret = wasm.hwpdocument_getCellParagraphCount(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 경로 기반: 셀/글상자 내 문단 수를 반환한다 (중첩 표/글상자 지원). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {number} + */ + getCellParagraphCountByPath(section_idx, parent_para_idx, path_json) { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getCellParagraphCountByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 표 셀 내 문단의 글자 수를 반환한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {number} + */ + getCellParagraphLength(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + const ret = wasm.hwpdocument_getCellParagraphLength(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 경로 기반: 셀 내 문단의 글자 수를 반환한다 (중첩 표 지원). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {number} + */ + getCellParagraphLengthByPath(section_idx, parent_para_idx, path_json) { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getCellParagraphLengthByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 셀 속성을 조회한다. + * + * 반환: JSON `{width, height, paddingLeft, paddingRight, paddingTop, paddingBottom, verticalAlign, textDirection, isHeader}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @returns {string} + */ + getCellProperties(section_idx, parent_para_idx, control_idx, cell_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCellProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내부 문단의 스타일을 조회한다. + * @param {number} sec_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {string} + */ + getCellStyleAt(sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getCellStyleAt(this.__wbg_ptr, sec_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 표 셀의 텍스트 방향을 반환한다 (0=가로, 1=세로/영문눕힘, 2=세로/영문세움). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @returns {number} + */ + getCellTextDirection(section_idx, parent_para_idx, control_idx, cell_idx) { + const ret = wasm.hwpdocument_getCellTextDirection(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 캐럿 위치의 글자 속성을 조회한다. + * + * 반환값: JSON 객체 (fontFamily, fontSize, bold, italic, underline, strikethrough, textColor 등) + * @param {number} sec_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + getCharPropertiesAt(sec_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCharPropertiesAt(this.__wbg_ptr, sec_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 누름틀 필드의 속성을 조회한다. + * + * 반환: JSON `{"ok":true,"guide":"안내문","memo":"메모","name":"이름","editable":true}` + * @param {number} field_id + * @returns {string} + */ + getClickHereProps(field_id) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getClickHereProps(this.__wbg_ptr, field_id); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 내부 클립보드의 플레인 텍스트를 반환한다. + * @returns {string} + */ + getClipboardText() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getClipboardText(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 컨트롤의 이미지 바이너리 데이터를 반환한다 (Uint8Array). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {Uint8Array} + */ + getControlImageData(section_idx, para_idx, control_idx) { + const ret = wasm.hwpdocument_getControlImageData(this.__wbg_ptr, section_idx, para_idx, control_idx); + if (ret[3]) { + throw takeFromExternrefTable0(ret[2]); + } + var v1 = getArrayU8FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 1, 1); + return v1; + } + /** + * 컨트롤의 이미지 MIME 타입을 반환한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {string} + */ + getControlImageMime(section_idx, para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getControlImageMime(this.__wbg_ptr, section_idx, para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단 내 컨트롤의 텍스트 위치 배열을 반환한다. + * @param {number} section_idx + * @param {number} para_idx + * @returns {string} + */ + getControlTextPositions(section_idx, para_idx) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getControlTextPositions(this.__wbg_ptr, section_idx, para_idx); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 커서 위치의 픽셀 좌표를 반환한다. + * + * 반환: JSON `{"pageIndex":N,"x":F,"y":F,"height":F}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + getCursorRect(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCursorRect(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 경로 기반 커서 좌표 조회 (중첩 표용). + * + * path_json: `[{"controlIndex":N,"cellIndex":N,"cellParaIndex":N}, ...]` + * 반환: JSON `{"pageIndex":N,"x":F,"y":F,"height":F}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @returns {string} + */ + getCursorRectByPath(section_idx, parent_para_idx, path_json, char_offset) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getCursorRectByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 표 셀 내부 커서 위치의 픽셀 좌표를 반환한다. + * + * 반환: JSON `{"pageIndex":N,"x":F,"y":F,"height":F}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @returns {string} + */ + getCursorRectInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCursorRectInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 각주 내 커서 렉트 계산 + * @param {number} page_num + * @param {number} footnote_index + * @param {number} fn_para_idx + * @param {number} char_offset + * @returns {string} + */ + getCursorRectInFootnote(page_num, footnote_index, fn_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCursorRectInFootnote(this.__wbg_ptr, page_num, footnote_index, fn_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 내 커서 위치의 픽셀 좌표를 반환한다. + * + * preferred_page: 선호 페이지 (더블클릭한 페이지). -1이면 첫 번째 발견 페이지 사용. + * 반환: JSON `{"pageIndex":N,"x":F,"y":F,"height":F}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {number} char_offset + * @param {number} preferred_page + * @returns {string} + */ + getCursorRectInHeaderFooter(section_idx, is_header, apply_to, hf_para_idx, char_offset, preferred_page) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getCursorRectInHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, char_offset, preferred_page); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문서 정보를 JSON 문자열로 반환한다. + * @returns {string} + */ + getDocumentInfo() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getDocumentInfo(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 현재 DPI를 반환한다. + * @returns {number} + */ + getDpi() { + const ret = wasm.hwpdocument_getDpi(this.__wbg_ptr); + return ret; + } + /** + * 수식 컨트롤의 속성을 조회한다. + * + * 반환: JSON `{ script, fontSize, color, baseline, fontName }` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {string} + */ + getEquationProperties(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getEquationProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 현재 이벤트 로그를 JSON으로 반환한다. + * @returns {string} + */ + getEventLog() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getEventLog(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 현재 대체 폰트 경로를 반환한다. + * @returns {string} + */ + getFallbackFont() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getFallbackFont(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 커서 위치의 필드 범위 정보를 조회한다 (본문 문단). + * + * 반환: `{inField, fieldId?, startCharIdx?, endCharIdx?, isGuide?, guideName?}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + getFieldInfoAt(section_idx, para_idx, char_offset) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getFieldInfoAt(this.__wbg_ptr, section_idx, para_idx, char_offset); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * path 기반: 중첩 표 셀의 필드 범위 정보를 조회한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @returns {string} + */ + getFieldInfoAtByPath(section_idx, parent_para_idx, path_json, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getFieldInfoAtByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 커서 위치의 필드 범위 정보를 조회한다 (셀/글상자 내 문단). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {boolean} is_textbox + * @returns {string} + */ + getFieldInfoAtInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getFieldInfoAtInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 문서 내 모든 필드 목록을 JSON 배열로 반환한다. + * + * 반환: `[{fieldId, fieldType, name, guide, command, value, location}]` + * @returns {string} + */ + getFieldList() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getFieldList(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * field_id로 필드 값을 조회한다. + * + * 반환: `{ok, value}` + * @param {number} field_id + * @returns {string} + */ + getFieldValue(field_id) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getFieldValue(this.__wbg_ptr, field_id); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 필드 이��으로 값을 조회한다. + * + * 반환: `{ok, fieldId, value}` + * @param {string} name + * @returns {string} + */ + getFieldValueByName(name) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getFieldValueByName(this.__wbg_ptr, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 각주 정보를 조회한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {string} + */ + getFootnoteInfo(section_idx, para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getFootnoteInfo(this.__wbg_ptr, section_idx, para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 페이지 좌표에서 양식 개체를 찾는다. + * + * 반환: `{found, sec, para, ci, formType, name, value, caption, text, bbox}` + * @param {number} page_num + * @param {number} x + * @param {number} y + * @returns {string} + */ + getFormObjectAt(page_num, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getFormObjectAt(this.__wbg_ptr, page_num, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 양식 개체 상세 정보를 반환한다 (properties 포함). + * + * 반환: `{ok, formType, name, value, text, caption, enabled, width, height, foreColor, backColor, properties}` + * @param {number} sec + * @param {number} para + * @param {number} ci + * @returns {string} + */ + getFormObjectInfo(sec, para, ci) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getFormObjectInfo(this.__wbg_ptr, sec, para, ci); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 양식 개체 값을 조회한다. + * + * 반환: `{ok, formType, name, value, text, caption, enabled}` + * @param {number} sec + * @param {number} para + * @param {number} ci + * @returns {string} + */ + getFormValue(sec, para, ci) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getFormValue(this.__wbg_ptr, sec, para, ci); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 조회 + * + * 반환: JSON `{"ok":true,"exists":true/false,...}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @returns {string} + */ + getHeaderFooter(section_idx, is_header, apply_to) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문서 전체의 머리말/꼬리말 목록을 반환한다. + * @param {number} current_section_idx + * @param {boolean} current_is_header + * @param {number} current_apply_to + * @returns {string} + */ + getHeaderFooterList(current_section_idx, current_is_header, current_apply_to) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getHeaderFooterList(this.__wbg_ptr, current_section_idx, current_is_header, current_apply_to); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 문단 정보 조회 + * + * 반환: JSON `{"ok":true,"paraCount":N,"charCount":N}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @returns {string} + */ + getHeaderFooterParaInfo(section_idx, is_header, apply_to, hf_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getHeaderFooterParaInfo(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단 내 줄 정보를 반환한다 (커서 수직 이동/Home/End용). + * + * 반환: JSON `{"lineIndex":N,"lineCount":N,"charStart":N,"charEnd":N}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + getLineInfo(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getLineInfo(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표 셀 내 문단의 줄 정보를 반환한다. + * + * 반환: JSON `{"lineIndex":N,"lineCount":N,"charStart":N,"charEnd":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @returns {string} + */ + getLineInfoInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getLineInfoInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단의 논리적 길이를 반환한다 (텍스트 문자 + 인라인 컨트롤 수). + * @param {number} section_idx + * @param {number} para_idx + * @returns {number} + */ + getLogicalLength(section_idx, para_idx) { + const ret = wasm.hwpdocument_getLogicalLength(this.__wbg_ptr, section_idx, para_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 문서에 정의된 문단 번호(Numbering) 목록을 조회한다. + * + * 반환값: JSON 배열 [{ id, levelFormats: [...] }, ...] + * id는 1-based (ParaShape.numbering_id와 동일) + * @returns {string} + */ + getNumberingList() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getNumberingList(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 컨트롤(표, 이미지 등) 레이아웃 정보를 반환한다. + * @param {number} page_num + * @returns {string} + */ + getPageControlLayout(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageControlLayout(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 구역의 용지 설정(PageDef)을 HWPUNIT 원본값으로 반환한다. + * @param {number} section_idx + * @returns {string} + */ + getPageDef(section_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageDef(this.__wbg_ptr, section_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 페이지의 각주 참조 정보 + * @param {number} page_num + * @param {number} footnote_index + * @returns {string} + */ + getPageFootnoteInfo(page_num, footnote_index) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageFootnoteInfo(this.__wbg_ptr, page_num, footnote_index); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 감추기 조회 + * @param {number} sec + * @param {number} para + * @returns {string} + */ + getPageHide(sec, para) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageHide(this.__wbg_ptr, sec, para); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 페이지 정보를 JSON 문자열로 반환한다. + * @param {number} page_num + * @returns {string} + */ + getPageInfo(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageInfo(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 위치에 해당하는 글로벌 쪽 번호 반환 + * @param {number} section_idx + * @param {number} para_idx + * @returns {string} + */ + getPageOfPosition(section_idx, para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageOfPosition(this.__wbg_ptr, section_idx, para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 페이지 렌더 트리를 JSON 문자열로 반환한다. + * @param {number} page_num + * @returns {string} + */ + getPageRenderTree(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageRenderTree(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 특정 페이지의 텍스트 레이아웃 정보를 JSON 문자열로 반환한다. + * + * 각 TextRun의 위치, 텍스트, 글자별 X 좌표 경계값을 포함한다. + * @param {number} page_num + * @returns {string} + */ + getPageTextLayout(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPageTextLayout(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 캐럿 위치의 문단 속성을 조회한다. + * + * 반환값: JSON 객체 (alignment, lineSpacing, marginLeft, marginRight, indent 등) + * @param {number} sec_idx + * @param {number} para_idx + * @returns {string} + */ + getParaPropertiesAt(sec_idx, para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getParaPropertiesAt(this.__wbg_ptr, sec_idx, para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 문단의 문단 속성을 조회한다. + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @returns {string} + */ + getParaPropertiesInHf(section_idx, is_header, apply_to, hf_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getParaPropertiesInHf(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 구역 내 문단 수를 반환한다. + * @param {number} section_idx + * @returns {number} + */ + getParagraphCount(section_idx) { + const ret = wasm.hwpdocument_getParagraphCount(this.__wbg_ptr, section_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 문단의 글자 수(char 개수)를 반환한다. + * @param {number} section_idx + * @param {number} para_idx + * @returns {number} + */ + getParagraphLength(section_idx, para_idx) { + const ret = wasm.hwpdocument_getParagraphLength(this.__wbg_ptr, section_idx, para_idx); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 그림 컨트롤의 속성을 조회한다. + * + * 반환: JSON `{ width, height, treatAsChar, ... }` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + getPictureProperties(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPictureProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 글로벌 쪽 번호에 해당하는 첫 문단 위치 반환 + * @param {number} global_page + * @returns {string} + */ + getPositionOfPage(global_page) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getPositionOfPage(this.__wbg_ptr, global_page); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 구역(Section) 수를 반환한다. + * @returns {number} + */ + getSectionCount() { + const ret = wasm.hwpdocument_getSectionCount(this.__wbg_ptr); + return ret >>> 0; + } + /** + * 구역 정의(SectionDef)를 JSON으로 반환한다. + * @param {number} section_idx + * @returns {string} + */ + getSectionDef(section_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getSectionDef(this.__wbg_ptr, section_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 본문 선택 영역의 줄별 사각형을 반환한다. + * + * 반환: JSON 배열 `[{"pageIndex":N,"x":F,"y":F,"width":F,"height":F}, ...]` + * @param {number} section_idx + * @param {number} start_para_idx + * @param {number} start_char_offset + * @param {number} end_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + getSelectionRects(section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getSelectionRects(this.__wbg_ptr, section_idx, start_para_idx, start_char_offset, end_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내 선택 영역의 줄별 사각형을 반환한다. + * + * 반환: JSON 배열 `[{"pageIndex":N,"x":F,"y":F,"width":F,"height":F}, ...]` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} start_cell_para_idx + * @param {number} start_char_offset + * @param {number} end_cell_para_idx + * @param {number} end_char_offset + * @returns {string} + */ + getSelectionRectsInCell(section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getSelectionRectsInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, start_cell_para_idx, start_char_offset, end_cell_para_idx, end_char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * Shape(글상자) 속성을 조회한다. + * + * 반환: JSON `{ width, height, treatAsChar, tbMarginLeft, ... }` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + getShapeProperties(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getShapeProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 조판부호 표시 여부를 반환한다. + * @returns {boolean} + */ + getShowControlCodes() { + const ret = wasm.hwpdocument_getShowControlCodes(this.__wbg_ptr); + return ret !== 0; + } + /** + * 투명선 표시 여부를 반환한다. + * @returns {boolean} + */ + getShowTransparentBorders() { + const ret = wasm.hwpdocument_getShowTransparentBorders(this.__wbg_ptr); + return ret !== 0; + } + /** + * 원본 파일 형식을 반환한다 ("hwp" 또는 "hwpx"). + * @returns {string} + */ + getSourceFormat() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getSourceFormat(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 특정 문단의 스타일을 조회한다. + * + * 반환값: JSON { id, name } + * @param {number} sec_idx + * @param {number} para_idx + * @returns {string} + */ + getStyleAt(sec_idx, para_idx) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getStyleAt(this.__wbg_ptr, sec_idx, para_idx); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 특정 스타일의 CharShape/ParaShape 속성을 상세 조회한다. + * + * 반환값: JSON { charProps: {...}, paraProps: {...} } + * @param {number} style_id + * @returns {string} + */ + getStyleDetail(style_id) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getStyleDetail(this.__wbg_ptr, style_id); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 문서에 정의된 스타일 목록을 조회한다. + * + * 반환값: JSON 배열 [{ id, name, englishName, type, paraShapeId, charShapeId }, ...] + * @returns {string} + */ + getStyleList() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_getStyleList(this.__wbg_ptr); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 표 전체의 바운딩박스를 반환한다. + * + * 반환: JSON `{"pageIndex":,"x":,"y":,"width":,"height":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + getTableBBox(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTableBBox(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표의 모든 셀 bbox를 반환한다 (F5 셀 선택 모드용). + * + * 반환: JSON `[{cellIdx, row, col, rowSpan, colSpan, pageIndex, x, y, w, h}, ...]` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number | null} [page_hint] + * @returns {string} + */ + getTableCellBboxes(section_idx, parent_para_idx, control_idx, page_hint) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTableCellBboxes(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, isLikeNone(page_hint) ? 0x100000001 : (page_hint) >>> 0); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 경로 기반 표 셀 바운딩박스 조회 (중첩 표용). + * + * 반환: JSON 배열 `[{"cellIdx":N,"row":N,"col":N,...,"x":F,"y":F,"w":F,"h":F}, ...]` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {string} + */ + getTableCellBboxesByPath(section_idx, parent_para_idx, path_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getTableCellBboxesByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 표의 행/열/셀 수를 반환한다. + * + * 반환: JSON `{"rowCount":N,"colCount":N,"cellCount":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + getTableDimensions(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTableDimensions(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 경로 기반 표 차원 조회 (중첩 표용). + * + * 반환: JSON `{"rowCount":N,"colCount":N,"cellCount":N}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {string} + */ + getTableDimensionsByPath(section_idx, parent_para_idx, path_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getTableDimensionsByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 표 속성을 조회한다. + * + * 반환: JSON `{cellSpacing, paddingLeft, paddingRight, paddingTop, paddingBottom, pageBreak, repeatHeader}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @returns {string} + */ + getTableProperties(section_idx, parent_para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTableProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단에 텍스트박스가 있는 Shape 컨트롤이 있으면 해당 control_index를 반환한다. + * 없으면 -1을 반환한다. + * @param {number} section_idx + * @param {number} para_idx + * @returns {number} + */ + getTextBoxControlIndex(section_idx, para_idx) { + const ret = wasm.hwpdocument_getTextBoxControlIndex(this.__wbg_ptr, section_idx, para_idx); + return ret; + } + /** + * 표 셀 내 문단에서 텍스트 부분 문자열을 반환한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + getTextInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTextInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + getTextInCellByPath(section_idx, parent_para_idx, path_json, char_offset, count) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_getTextInCellByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset, count); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 문단에서 텍스트 부분 문자열을 반환한다 (Undo용 텍스트 보존). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {number} count + * @returns {string} + */ + getTextRange(section_idx, para_idx, char_offset, count) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_getTextRange(this.__wbg_ptr, section_idx, para_idx, char_offset, count); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 선택된 개체들을 하나의 GroupShape로 묶는다. + * json: `{"sectionIdx":N, "targets":[{"paraIdx":N,"controlIdx":N},...]}` + * 반환: JSON `{"ok":true, "paraIdx":N, "controlIdx":N}` + * @param {string} json + * @returns {string} + */ + groupShapes(json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_groupShapes(this.__wbg_ptr, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 내부 클립보드에 데이터가 있는지 확인한다. + * @returns {boolean} + */ + hasInternalClipboard() { + const ret = wasm.hwpdocument_hasInternalClipboard(this.__wbg_ptr); + return ret !== 0; + } + /** + * 페이지 좌표에서 문서 위치를 찾는다. + * + * 반환: JSON `{"sectionIndex":N,"paragraphIndex":N,"charOffset":N}` + * @param {number} page_num + * @param {number} x + * @param {number} y + * @returns {string} + */ + hitTest(page_num, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_hitTest(this.__wbg_ptr, page_num, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 각주 영역 히트테스트 + * @param {number} page_num + * @param {number} x + * @param {number} y + * @returns {string} + */ + hitTestFootnote(page_num, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_hitTestFootnote(this.__wbg_ptr, page_num, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 페이지 좌표가 머리말/꼬리말 영역에 해당하는지 판별한다. + * + * 반환: JSON `{"hit":true/false,"isHeader":bool,"sectionIndex":N,"applyTo":N}` + * @param {number} page_num + * @param {number} x + * @param {number} y + * @returns {string} + */ + hitTestHeaderFooter(page_num, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_hitTestHeaderFooter(this.__wbg_ptr, page_num, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 각주 내부 텍스트 히트테스트 + * @param {number} page_num + * @param {number} x + * @param {number} y + * @returns {string} + */ + hitTestInFootnote(page_num, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_hitTestInFootnote(this.__wbg_ptr, page_num, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 내부 텍스트 히트테스트. + * + * 편집 모드에서 클릭한 좌표의 문단·문자 위치를 반환. + * 반환: JSON `{"hit":true,"paraIndex":N,"charOffset":N,"cursorRect":{...}}` + * @param {number} page_num + * @param {boolean} is_header + * @param {number} x + * @param {number} y + * @returns {string} + */ + hitTestInHeaderFooter(page_num, is_header, x, y) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_hitTestInHeaderFooter(this.__wbg_ptr, page_num, is_header, x, y); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 단 나누기 삽입 (Ctrl+Shift+Enter) + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + insertColumnBreak(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertColumnBreak(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 문단에 필드 마커를 삽입한다. + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {number} char_offset + * @param {number} field_type + * @returns {string} + */ + insertFieldInHf(section_idx, is_header, apply_to, hf_para_idx, char_offset, field_type) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertFieldInHf(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, char_offset, field_type); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 각주를 삽입한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + insertFootnote(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertFootnote(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 강제 쪽 나누기 삽입 (Ctrl+Enter) + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + insertPageBreak(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertPageBreak(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 커서 위치에 그림을 삽입한다. + * + * image_data: 이미지 바이너리 데이터 (PNG/JPG/GIF/BMP 등) + * width, height: HWPUNIT 단위 크기 + * extension: 파일 확장자 (jpg, png 등) + * + * 반환: JSON `{"ok":true,"paraIdx":,"controlIdx":0}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {Uint8Array} image_data + * @param {number} width + * @param {number} height + * @param {number} natural_width_px + * @param {number} natural_height_px + * @param {string} extension + * @param {string} description + * @returns {string} + */ + insertPicture(section_idx, para_idx, char_offset, image_data, width, height, natural_width_px, natural_height_px, extension, description) { + let deferred5_0; + let deferred5_1; + try { + const ptr0 = passArray8ToWasm0(image_data, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(extension, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(description, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertPicture(this.__wbg_ptr, section_idx, para_idx, char_offset, ptr0, len0, width, height, natural_width_px, natural_height_px, ptr1, len1, ptr2, len2); + var ptr4 = ret[0]; + var len4 = ret[1]; + if (ret[3]) { + ptr4 = 0; len4 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred5_0 = ptr4; + deferred5_1 = len4; + return getStringFromWasm0(ptr4, len4); + } finally { + wasm.__wbindgen_free(deferred5_0, deferred5_1, 1); + } + } + /** + * 표에 열을 삽입한다. + * + * 반환값: JSON `{"ok":true,"rowCount":,"colCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} col_idx + * @param {boolean} right + * @returns {string} + */ + insertTableColumn(section_idx, parent_para_idx, control_idx, col_idx, right) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertTableColumn(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, col_idx, right); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표에 행을 삽입한다. + * + * 반환값: JSON `{"ok":true,"rowCount":,"colCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} row_idx + * @param {boolean} below + * @returns {string} + */ + insertTableRow(section_idx, parent_para_idx, control_idx, row_idx, below) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_insertTableRow(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, row_idx, below); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문단에 텍스트를 삽입한다. + * + * 삽입 후 구역을 재구성하고 재페이지네이션한다. + * 반환값: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {string} text + * @returns {string} + */ + insertText(section_idx, para_idx, char_offset, text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertText(this.__wbg_ptr, section_idx, para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 표 셀 내부 문단에 텍스트를 삽입한다. + * + * 반환값: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {string} text + * @returns {string} + */ + insertTextInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertTextInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @param {string} text + * @returns {string} + */ + insertTextInCellByPath(section_idx, parent_para_idx, path_json, char_offset, text) { + let deferred4_0; + let deferred4_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertTextInCellByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset, ptr1, len1); + var ptr3 = ret[0]; + var len3 = ret[1]; + if (ret[3]) { + ptr3 = 0; len3 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred4_0 = ptr3; + deferred4_1 = len3; + return getStringFromWasm0(ptr3, len3); + } finally { + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } + } + /** + * 각주 내 텍스트를 삽입한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @param {number} fn_para_idx + * @param {number} char_offset + * @param {string} text + * @returns {string} + */ + insertTextInFootnote(section_idx, para_idx, control_idx, fn_para_idx, char_offset, text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertTextInFootnote(this.__wbg_ptr, section_idx, para_idx, control_idx, fn_para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 머리말/꼬리말 내 텍스트 삽입 + * + * 반환: JSON `{"ok":true,"charOffset":}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {number} char_offset + * @param {string} text + * @returns {string} + */ + insertTextInHeaderFooter(section_idx, is_header, apply_to, hf_para_idx, char_offset, text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertTextInHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 논리적 오프셋으로 텍스트를 삽입한다. + * + * logical_offset: 텍스트 문자 + 인라인 컨트롤을 각각 1로 세는 위치. + * 예: "abc[표]XYZ" → a(0) b(1) c(2) [표](3) X(4) Y(5) Z(6) + * logical_offset=4이면 표 뒤의 X 앞에 삽입. + * 반환값: JSON `{"ok":true,"logicalOffset":}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} logical_offset + * @param {string} text + * @returns {string} + */ + insertTextLogical(section_idx, para_idx, logical_offset, text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_insertTextLogical(this.__wbg_ptr, section_idx, para_idx, logical_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 논리적 오프셋 → 텍스트 오프셋 변환. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} logical_offset + * @returns {number} + */ + logicalToTextOffset(section_idx, para_idx, logical_offset) { + const ret = wasm.hwpdocument_logicalToTextOffset(this.__wbg_ptr, section_idx, para_idx, logical_offset); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 문단별 줄 폭 측정 진단 (WASM) + * @param {number} section_idx + * @param {number} para_idx + * @returns {string} + */ + measureWidthDiagnostic(section_idx, para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_measureWidthDiagnostic(this.__wbg_ptr, section_idx, para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 현재 문단을 이전 문단에 병합한다 (Backspace at start). + * + * para_idx의 텍스트가 para_idx-1에 결합되고 para_idx는 삭제된다. + * 반환값: JSON `{"ok":true,"paraIdx":,"charOffset":}` + * @param {number} section_idx + * @param {number} para_idx + * @returns {string} + */ + mergeParagraph(section_idx, para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_mergeParagraph(this.__wbg_ptr, section_idx, para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내부 문단을 이전 문단에 병합한다 (셀 내 Backspace at start). + * + * 반환값: JSON `{"ok":true,"cellParaIndex":,"charOffset":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {string} + */ + mergeParagraphInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_mergeParagraphInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @returns {string} + */ + mergeParagraphInCellByPath(section_idx, parent_para_idx, path_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_mergeParagraphInCellByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 각주 내 문단을 병합한다 (Backspace at start). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @param {number} fn_para_idx + * @returns {string} + */ + mergeParagraphInFootnote(section_idx, para_idx, control_idx, fn_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_mergeParagraphInFootnote(this.__wbg_ptr, section_idx, para_idx, control_idx, fn_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 내 문단 병합 (Backspace at start) + * + * 반환: JSON `{"ok":true,"hfParaIndex":,"charOffset":}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @returns {string} + */ + mergeParagraphInHeaderFooter(section_idx, is_header, apply_to, hf_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_mergeParagraphInHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표의 셀을 병합한다. + * + * 반환값: JSON `{"ok":true,"cellCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} start_row + * @param {number} start_col + * @param {number} end_row + * @param {number} end_col + * @returns {string} + */ + mergeTableCells(section_idx, parent_para_idx, control_idx, start_row, start_col, end_row, end_col) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_mergeTableCells(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, start_row, start_col, end_row, end_col); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 직선 끝점 이동 (글로벌 HWPUNIT 좌표) + * @param {number} sec + * @param {number} para + * @param {number} ci + * @param {number} sx + * @param {number} sy + * @param {number} ex + * @param {number} ey + * @returns {string} + */ + moveLineEndpoint(sec, para, ci, sx, sy, ex, ey) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_moveLineEndpoint(this.__wbg_ptr, sec, para, ci, sx, sy, ex, ey); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 표의 위치 오프셋(vertical_offset, horizontal_offset)을 이동한다. + * + * delta_h, delta_v: HWPUNIT 단위 이동량 (양수=오른쪽/아래, 음수=왼쪽/위) + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} delta_h + * @param {number} delta_v + * @returns {string} + */ + moveTableOffset(section_idx, parent_para_idx, control_idx, delta_h, delta_v) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_moveTableOffset(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, delta_h, delta_v); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 수직 커서 이동 (ArrowUp/Down) — 단일 호출로 줄/문단/표/구역 경계를 모두 처리한다. + * + * delta: -1=위, +1=아래 + * preferred_x: 이전 반환값의 preferredX (최초 이동 시 -1.0 전달) + * 셀 컨텍스트: 본문이면 모두 0xFFFFFFFF 전달 + * + * 반환: JSON `{DocumentPosition + CursorRect + preferredX}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {number} delta + * @param {number} preferred_x + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @returns {string} + */ + moveVertical(section_idx, para_idx, char_offset, delta, preferred_x, parent_para_idx, control_idx, cell_idx, cell_para_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_moveVertical(this.__wbg_ptr, section_idx, para_idx, char_offset, delta, preferred_x, parent_para_idx, control_idx, cell_idx, cell_para_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 경로 기반 수직 커서 이동 (중첩 표용). + * + * 반환: JSON `{DocumentPosition + CursorRect + preferredX}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @param {number} delta + * @param {number} preferred_x + * @returns {string} + */ + moveVerticalByPath(section_idx, parent_para_idx, path_json, char_offset, delta, preferred_x) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_moveVerticalByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset, delta, preferred_x); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 페이지 단위로 이전/다음 머리말·꼬리말로 이동한다. + * + * 반환: JSON `{"ok":true,"pageIndex":N,"sectionIdx":N,"isHeader":bool,"applyTo":N}` + * 또는 더 이상 이동할 페이지가 없으면 `{"ok":false}` + * @param {number} current_page + * @param {boolean} is_header + * @param {number} direction + * @returns {string} + */ + navigateHeaderFooterByPage(current_page, is_header, direction) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_navigateHeaderFooterByPage(this.__wbg_ptr, current_page, is_header, direction); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 문서 트리 DFS 기반 다음/이전 편집 가능 위치를 반환한다. + * context_json: NavContextEntry 배열의 JSON (빈 배열 "[]" = body) + * @param {number} sec + * @param {number} para + * @param {number} char_offset + * @param {number} delta + * @param {string} context_json + * @returns {string} + */ + navigateNextEditable(sec, para, char_offset, delta, context_json) { + let deferred2_0; + let deferred2_1; + try { + const ptr0 = passStringToWasm0(context_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_navigateNextEditable(this.__wbg_ptr, sec, para, char_offset, delta, ptr0, len0); + deferred2_0 = ret[0]; + deferred2_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * HWP 파일 바이트를 로드하여 문서 객체를 생성한다. + * @param {Uint8Array} data + */ + constructor(data) { + const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_new(ptr0, len0); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + this.__wbg_ptr = ret[0] >>> 0; + HwpDocumentFinalization.register(this, this.__wbg_ptr, this); + return this; + } + /** + * 총 페이지 수를 반환한다. + * @returns {number} + */ + pageCount() { + const ret = wasm.hwpdocument_pageCount(this.__wbg_ptr); + return ret >>> 0; + } + /** + * 내부 클립보드의 컨트롤 객체를 캐럿 위치에 붙여넣는다. + * + * 반환값: JSON `{"ok":true,"paraIdx":,"controlIdx":0}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + pasteControl(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_pasteControl(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * HTML 문자열을 파싱하여 캐럿 위치에 삽입한다 (본문). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @param {string} html + * @returns {string} + */ + pasteHtml(section_idx, para_idx, char_offset, html) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(html, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_pasteHtml(this.__wbg_ptr, section_idx, para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * HTML 문자열을 파싱하여 셀 내부 캐럿 위치에 삽입한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {string} html + * @returns {string} + */ + pasteHtmlInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, html) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(html, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_pasteHtmlInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 내부 클립보드의 내용을 캐럿 위치에 붙여넣는다 (본문 문단). + * + * 반환값: JSON `{"ok":true,"paraIdx":,"charOffset":}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + pasteInternal(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_pasteInternal(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 내부 클립보드의 내용을 표 셀 내부에 붙여넣는다. + * + * 반환값: JSON `{"ok":true,"cellParaIdx":,"charOffset":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @returns {string} + */ + pasteInternalInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_pasteInternalInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 커서 위치의 누름틀 필드를 제거한다 (본문 문단). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + removeFieldAt(section_idx, para_idx, char_offset) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_removeFieldAt(this.__wbg_ptr, section_idx, para_idx, char_offset); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 커서 위치의 누름틀 필드를 제거한다 (셀/글상자 내 문단). + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {boolean} is_textbox + * @returns {string} + */ + removeFieldAtInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox) { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.hwpdocument_removeFieldAtInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } + } + /** + * 책갈피 이름 변경 + * @param {number} sec + * @param {number} para + * @param {number} ctrl_idx + * @param {string} new_name + * @returns {string} + */ + renameBookmark(sec, para, ctrl_idx, new_name) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(new_name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_renameBookmark(this.__wbg_ptr, sec, para, ctrl_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 수식 스크립트를 SVG로 렌더링하여 반환한다 (미리보기 전용). + * + * 반환: 완전한 `` 문자열 + * @param {string} script + * @param {number} font_size_hwpunit + * @param {number} color + * @returns {string} + */ + renderEquationPreview(script, font_size_hwpunit, color) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(script, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_renderEquationPreview(this.__wbg_ptr, ptr0, len0, font_size_hwpunit, color); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 특정 페이지를 Canvas 명령 수로 반환한다. + * @param {number} page_num + * @returns {number} + */ + renderPageCanvas(page_num) { + const ret = wasm.hwpdocument_renderPageCanvas(this.__wbg_ptr, page_num); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 특정 페이지를 HTML 문자열로 렌더링한다. + * @param {number} page_num + * @returns {string} + */ + renderPageHtml(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_renderPageHtml(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 특정 페이지를 SVG 문자열로 렌더링한다. + * @param {number} page_num + * @returns {string} + */ + renderPageSvg(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_renderPageSvg(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 특정 페이지를 Canvas 2D에 직접 렌더링한다. + * + * WASM 환경에서만 사용 가능하다. Canvas 크기는 페이지 크기 × scale로 설정된다. + * scale이 0 이하이면 1.0으로 처리한다 (하위호환). + * @param {number} page_num + * @param {HTMLCanvasElement} canvas + * @param {number} scale + */ + renderPageToCanvas(page_num, canvas, scale) { + const ret = wasm.hwpdocument_renderPageToCanvas(this.__wbg_ptr, page_num, canvas, scale); + if (ret[1]) { + throw takeFromExternrefTable0(ret[0]); + } + } + /** + * 전체 치환 + * @param {string} query + * @param {string} new_text + * @param {boolean} case_sensitive + * @returns {string} + */ + replaceAll(query, new_text, case_sensitive) { + let deferred4_0; + let deferred4_1; + try { + const ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(new_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_replaceAll(this.__wbg_ptr, ptr0, len0, ptr1, len1, case_sensitive); + var ptr3 = ret[0]; + var len3 = ret[1]; + if (ret[3]) { + ptr3 = 0; len3 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred4_0 = ptr3; + deferred4_1 = len3; + return getStringFromWasm0(ptr3, len3); + } finally { + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } + } + /** + * 텍스트 치환 (단일) + * @param {number} sec + * @param {number} para + * @param {number} char_offset + * @param {number} length + * @param {string} new_text + * @returns {string} + */ + replaceText(sec, para, char_offset, length, new_text) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(new_text, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_replaceText(this.__wbg_ptr, sec, para, char_offset, length, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 여러 셀의 width/height를 한 번에 조절한다 (배치). + * + * json: `[{"cellIdx":0,"widthDelta":150},{"cellIdx":2,"heightDelta":-100}]` + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {string} json + * @returns {string} + */ + resizeTableCells(section_idx, parent_para_idx, control_idx, json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_resizeTableCells(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 지정 ID의 스냅샷으로 Document를 복원한다. + * @param {number} id + * @returns {string} + */ + restoreSnapshot(id) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_restoreSnapshot(this.__wbg_ptr, id); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * Document 스냅샷을 저장하고 ID를 반환한다. + * @returns {number} + */ + saveSnapshot() { + const ret = wasm.hwpdocument_saveSnapshot(this.__wbg_ptr); + return ret >>> 0; + } + /** + * 문서 텍스트 검색 + * @param {string} query + * @param {number} from_sec + * @param {number} from_para + * @param {number} from_char + * @param {boolean} forward + * @param {boolean} case_sensitive + * @returns {string} + */ + searchText(query, from_sec, from_para, from_char, forward, case_sensitive) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(query, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_searchText(this.__wbg_ptr, ptr0, len0, from_sec, from_para, from_char, forward, case_sensitive); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 활성 필드를 설정한다 (본문 문단 — 안내문 숨김용). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {boolean} + */ + setActiveField(section_idx, para_idx, char_offset) { + const ret = wasm.hwpdocument_setActiveField(this.__wbg_ptr, section_idx, para_idx, char_offset); + return ret !== 0; + } + /** + * path 기반: 중첩 표 셀 내 활성 필드를 설정한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @returns {boolean} + */ + setActiveFieldByPath(section_idx, parent_para_idx, path_json, char_offset) { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setActiveFieldByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset); + return ret !== 0; + } + /** + * 활성 필드를 설정한다 (셀/글상자 내 문단 — 안내문 숨김용). + * 변경이 발생하면 true를 반환한다. + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @param {boolean} is_textbox + * @returns {boolean} + */ + setActiveFieldInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox) { + const ret = wasm.hwpdocument_setActiveFieldInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset, is_textbox); + return ret !== 0; + } + /** + * 셀 속성을 수정한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {string} json + * @returns {string} + */ + setCellProperties(section_idx, parent_para_idx, control_idx, cell_idx, json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setCellProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * @param {boolean} enabled + */ + setClipEnabled(enabled) { + wasm.hwpdocument_setClipEnabled(this.__wbg_ptr, enabled); + } + /** + * 다단 설정 변경 + * column_type: 0=일반, 1=배분, 2=평행 + * same_width: 0=다른 너비, 1=같은 너비 + * @param {number} section_idx + * @param {number} column_count + * @param {number} column_type + * @param {number} same_width + * @param {number} spacing_hu + * @returns {string} + */ + setColumnDef(section_idx, column_count, column_type, same_width, spacing_hu) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_setColumnDef(this.__wbg_ptr, section_idx, column_count, column_type, same_width, spacing_hu); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * DPI를 설정한다. + * @param {number} dpi + */ + setDpi(dpi) { + wasm.hwpdocument_setDpi(this.__wbg_ptr, dpi); + } + /** + * 수식 컨트롤의 속성을 변경한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {string} props_json + * @returns {string} + */ + setEquationProperties(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setEquationProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 대체 폰트 경로를 설정한다. + * @param {string} path + */ + setFallbackFont(path) { + const ptr0 = passStringToWasm0(path, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.hwpdocument_setFallbackFont(this.__wbg_ptr, ptr0, len0); + } + /** + * field_id로 필드 값을 설정한다. + * + * 반환: `{ok, fieldId, oldValue, newValue}` + * @param {number} field_id + * @param {string} value + * @returns {string} + */ + setFieldValue(field_id, value) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setFieldValue(this.__wbg_ptr, field_id, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 필드 이름으로 값을 설정한다. + * + * 반환: `{ok, fieldId, oldValue, newValue}` + * @param {string} name + * @param {string} value + * @returns {string} + */ + setFieldValueByName(name, value) { + let deferred4_0; + let deferred4_1; + try { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(value, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setFieldValueByName(this.__wbg_ptr, ptr0, len0, ptr1, len1); + var ptr3 = ret[0]; + var len3 = ret[1]; + if (ret[3]) { + ptr3 = 0; len3 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred4_0 = ptr3; + deferred4_1 = len3; + return getStringFromWasm0(ptr3, len3); + } finally { + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } + } + /** + * 파일 이름을 설정한다 (머리말/꼬리말 필드 치환용). + * @param {string} name + */ + setFileName(name) { + const ptr0 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + wasm.hwpdocument_setFileName(this.__wbg_ptr, ptr0, len0); + } + /** + * 양식 개체 값을 설정한다. + * + * value_json: `{"value":1}` 또는 `{"text":"입력값"}` + * 반환: `{ok}` + * @param {number} sec + * @param {number} para + * @param {number} ci + * @param {string} value_json + * @returns {string} + */ + setFormValue(sec, para, ci, value_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(value_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setFormValue(this.__wbg_ptr, sec, para, ci, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 셀 내부 양식 개체 값을 설정한다. + * + * table_para: 표를 포함한 최상위 문단 인덱스 + * table_ci: 표 컨트롤 인덱스 + * cell_idx: 셀 인덱스 + * cell_para: 셀 내 문단 인덱스 + * form_ci: 셀 내 양식 컨트롤 인덱스 + * value_json: `{"value":1}` 또는 `{"text":"입력값"}` + * 반환: `{ok}` + * @param {number} sec + * @param {number} table_para + * @param {number} table_ci + * @param {number} cell_idx + * @param {number} cell_para + * @param {number} form_ci + * @param {string} value_json + * @returns {string} + */ + setFormValueInCell(sec, table_para, table_ci, cell_idx, cell_para, form_ci, value_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(value_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setFormValueInCell(this.__wbg_ptr, sec, table_para, table_ci, cell_idx, cell_para, form_ci, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 문단 서식을 적용한다 (본문 문단). + * 문단 번호 시작 방식 설정 + * @param {number} section_idx + * @param {number} para_idx + * @param {number} mode + * @param {number} start_num + * @returns {string} + */ + setNumberingRestart(section_idx, para_idx, mode, start_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_setNumberingRestart(this.__wbg_ptr, section_idx, para_idx, mode, start_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 구역의 용지 설정(PageDef)을 변경하고 재페이지네이션한다. + * @param {number} section_idx + * @param {string} json + * @returns {string} + */ + setPageDef(section_idx, json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setPageDef(this.__wbg_ptr, section_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 감추기 설정 + * @param {number} sec + * @param {number} para + * @param {boolean} hide_header + * @param {boolean} hide_footer + * @param {boolean} hide_master + * @param {boolean} hide_border + * @param {boolean} hide_fill + * @param {boolean} hide_page_num + * @returns {string} + */ + setPageHide(sec, para, hide_header, hide_footer, hide_master, hide_border, hide_fill, hide_page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_setPageHide(this.__wbg_ptr, sec, para, hide_header, hide_footer, hide_master, hide_border, hide_fill, hide_page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 그림 컨트롤의 속성을 변경한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {string} props_json + * @returns {string} + */ + setPictureProperties(section_idx, parent_para_idx, control_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setPictureProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 구역 정의(SectionDef)를 변경하고 재페이지네이션한다. + * @param {number} section_idx + * @param {string} json + * @returns {string} + */ + setSectionDef(section_idx, json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setSectionDef(this.__wbg_ptr, section_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 모든 구역의 SectionDef를 일괄 변경하고 재페이지네이션한다. + * @param {string} json + * @returns {string} + */ + setSectionDefAll(json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setSectionDefAll(this.__wbg_ptr, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * Shape(글상자) 속성을 변경한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {string} props_json + * @returns {string} + */ + setShapeProperties(section_idx, parent_para_idx, control_idx, props_json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(props_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setShapeProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 조판부호 표시 여부를 설정한다 (개체 마커 + 문단부호 포함). + * @param {boolean} enabled + */ + setShowControlCodes(enabled) { + wasm.hwpdocument_setShowControlCodes(this.__wbg_ptr, enabled); + } + /** + * 문단부호(¶) 표시 여부를 설정한다. + * @param {boolean} enabled + */ + setShowParagraphMarks(enabled) { + wasm.hwpdocument_setShowParagraphMarks(this.__wbg_ptr, enabled); + } + /** + * 투명선 표시 여부를 설정한다. + * @param {boolean} enabled + */ + setShowTransparentBorders(enabled) { + wasm.hwpdocument_setShowTransparentBorders(this.__wbg_ptr, enabled); + } + /** + * 표 속성을 수정한다. + * + * 반환: JSON `{"ok":true}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {string} json + * @returns {string} + */ + setTableProperties(section_idx, parent_para_idx, control_idx, json) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_setTableProperties(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, ptr0, len0); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 디버그 오버레이 표시 여부를 설정한다. + * @param {boolean} enabled + */ + set_debug_overlay(enabled) { + wasm.hwpdocument_set_debug_overlay(this.__wbg_ptr, enabled); + } + /** + * 캐럿 위치에서 문단을 분할한다 (Enter 키). + * + * char_offset 이후의 텍스트가 새 문단으로 이동한다. + * 반환값: JSON `{"ok":true,"paraIdx":,"charOffset":0}` + * @param {number} section_idx + * @param {number} para_idx + * @param {number} char_offset + * @returns {string} + */ + splitParagraph(section_idx, para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitParagraph(this.__wbg_ptr, section_idx, para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀 내부 문단을 분할한다 (셀 내 Enter 키). + * + * 반환값: JSON `{"ok":true,"cellParaIndex":,"charOffset":0}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} cell_idx + * @param {number} cell_para_idx + * @param {number} char_offset + * @returns {string} + */ + splitParagraphInCell(section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitParagraphInCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, cell_idx, cell_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {string} path_json + * @param {number} char_offset + * @returns {string} + */ + splitParagraphInCellByPath(section_idx, parent_para_idx, path_json, char_offset) { + let deferred3_0; + let deferred3_1; + try { + const ptr0 = passStringToWasm0(path_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_splitParagraphInCellByPath(this.__wbg_ptr, section_idx, parent_para_idx, ptr0, len0, char_offset); + var ptr2 = ret[0]; + var len2 = ret[1]; + if (ret[3]) { + ptr2 = 0; len2 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred3_0 = ptr2; + deferred3_1 = len2; + return getStringFromWasm0(ptr2, len2); + } finally { + wasm.__wbindgen_free(deferred3_0, deferred3_1, 1); + } + } + /** + * 각주 내 문단을 분할한다 (Enter). + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @param {number} fn_para_idx + * @param {number} char_offset + * @returns {string} + */ + splitParagraphInFootnote(section_idx, para_idx, control_idx, fn_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitParagraphInFootnote(this.__wbg_ptr, section_idx, para_idx, control_idx, fn_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 머리말/꼬리말 내 문단 분할 (Enter 키) + * + * 반환: JSON `{"ok":true,"hfParaIndex":,"charOffset":0}` + * @param {number} section_idx + * @param {boolean} is_header + * @param {number} apply_to + * @param {number} hf_para_idx + * @param {number} char_offset + * @returns {string} + */ + splitParagraphInHeaderFooter(section_idx, is_header, apply_to, hf_para_idx, char_offset) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitParagraphInHeaderFooter(this.__wbg_ptr, section_idx, is_header, apply_to, hf_para_idx, char_offset); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 병합된 셀을 나눈다 (split). + * + * 반환값: JSON `{"ok":true,"cellCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} row + * @param {number} col + * @returns {string} + */ + splitTableCell(section_idx, parent_para_idx, control_idx, row, col) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitTableCell(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, row, col); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 셀을 N줄 × M칸으로 분할한다. + * + * 반환값: JSON `{"ok":true,"cellCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} row + * @param {number} col + * @param {number} n_rows + * @param {number} m_cols + * @param {boolean} equal_row_height + * @param {boolean} merge_first + * @returns {string} + */ + splitTableCellInto(section_idx, parent_para_idx, control_idx, row, col, n_rows, m_cols, equal_row_height, merge_first) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitTableCellInto(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, row, col, n_rows, m_cols, equal_row_height, merge_first); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 범위 내 셀들을 각각 N줄 × M칸으로 분할한다. + * + * 반환값: JSON `{"ok":true,"cellCount":}` + * @param {number} section_idx + * @param {number} parent_para_idx + * @param {number} control_idx + * @param {number} start_row + * @param {number} start_col + * @param {number} end_row + * @param {number} end_col + * @param {number} n_rows + * @param {number} m_cols + * @param {boolean} equal_row_height + * @returns {string} + */ + splitTableCellsInRange(section_idx, parent_para_idx, control_idx, start_row, start_col, end_row, end_col, n_rows, m_cols, equal_row_height) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_splitTableCellsInRange(this.__wbg_ptr, section_idx, parent_para_idx, control_idx, start_row, start_col, end_row, end_col, n_rows, m_cols, equal_row_height); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 텍스트 오프셋 → 논리적 오프셋 변환. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} text_offset + * @returns {number} + */ + textToLogicalOffset(section_idx, para_idx, text_offset) { + const ret = wasm.hwpdocument_textToLogicalOffset(this.__wbg_ptr, section_idx, para_idx, text_offset); + if (ret[2]) { + throw takeFromExternrefTable0(ret[1]); + } + return ret[0] >>> 0; + } + /** + * 머리말/꼬리말 감추기를 토글한다 (현재 쪽만). + * + * 반환: JSON `{"hidden":true/false}` — 토글 후 상태 + * @param {number} page_index + * @param {boolean} is_header + * @returns {string} + */ + toggleHideHeaderFooter(page_index, is_header) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_toggleHideHeaderFooter(this.__wbg_ptr, page_index, is_header); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * GroupShape를 풀어 자식 개체들을 개별로 복원한다. + * @param {number} section_idx + * @param {number} para_idx + * @param {number} control_idx + * @returns {string} + */ + ungroupShape(section_idx, para_idx, control_idx) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpdocument_ungroupShape(this.__wbg_ptr, section_idx, para_idx, control_idx); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 누름틀 필드의 속성을 수정한다. + * + * 반환: JSON `{"ok":true}` 또는 `{"ok":false}` + * @param {number} field_id + * @param {string} guide + * @param {string} memo + * @param {string} name + * @param {boolean} editable + * @returns {string} + */ + updateClickHereProps(field_id, guide, memo, name, editable) { + let deferred4_0; + let deferred4_1; + try { + const ptr0 = passStringToWasm0(guide, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(memo, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ptr2 = passStringToWasm0(name, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len2 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_updateClickHereProps(this.__wbg_ptr, field_id, ptr0, len0, ptr1, len1, ptr2, len2, editable); + deferred4_0 = ret[0]; + deferred4_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred4_0, deferred4_1, 1); + } + } + /** + * 구역 내 모든 연결선의 좌표를 연결된 도형 위치에 맞게 갱신한다. + * @param {number} section_idx + */ + updateConnectorsInSection(section_idx) { + wasm.hwpdocument_updateConnectorsInSection(this.__wbg_ptr, section_idx); + } + /** + * 스타일의 메타 정보(이름/영문이름/nextStyleId)를 수정한다. + * + * json: {"name":"...", "englishName":"...", "nextStyleId":0} + * @param {number} style_id + * @param {string} json + * @returns {boolean} + */ + updateStyle(style_id, json) { + const ptr0 = passStringToWasm0(json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_updateStyle(this.__wbg_ptr, style_id, ptr0, len0); + return ret !== 0; + } + /** + * 스타일의 CharShape/ParaShape를 수정한다. + * + * charMods/paraMods는 기존 parse_char_shape_mods/parse_para_shape_mods와 동일한 JSON 형식 + * @param {number} style_id + * @param {string} char_mods_json + * @param {string} para_mods_json + * @returns {boolean} + */ + updateStyleShapes(style_id, char_mods_json, para_mods_json) { + const ptr0 = passStringToWasm0(char_mods_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len0 = WASM_VECTOR_LEN; + const ptr1 = passStringToWasm0(para_mods_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + const ret = wasm.hwpdocument_updateStyleShapes(this.__wbg_ptr, style_id, ptr0, len0, ptr1, len1); + return ret !== 0; + } +} +if (Symbol.dispose) HwpDocument.prototype[Symbol.dispose] = HwpDocument.prototype.free; + +/** + * WASM 뷰어 컨트롤러 (뷰포트 관리 + 스케줄링) + */ +export class HwpViewer { + __destroy_into_raw() { + const ptr = this.__wbg_ptr; + this.__wbg_ptr = 0; + HwpViewerFinalization.unregister(this); + return ptr; + } + free() { + const ptr = this.__destroy_into_raw(); + wasm.__wbg_hwpviewer_free(ptr, 0); + } + /** + * 뷰어 생성 + * @param {HwpDocument} document + */ + constructor(document) { + _assertClass(document, HwpDocument); + var ptr0 = document.__destroy_into_raw(); + const ret = wasm.hwpviewer_new(ptr0); + this.__wbg_ptr = ret >>> 0; + HwpViewerFinalization.register(this, this.__wbg_ptr, this); + return this; + } + /** + * 총 페이지 수 + * @returns {number} + */ + pageCount() { + const ret = wasm.hwpdocument_pageCount(this.__wbg_ptr); + return ret >>> 0; + } + /** + * 대기 중인 렌더링 작업 수 + * @returns {number} + */ + pendingTaskCount() { + const ret = wasm.hwpviewer_pendingTaskCount(this.__wbg_ptr); + return ret >>> 0; + } + /** + * 특정 페이지 HTML 렌더링 + * @param {number} page_num + * @returns {string} + */ + renderPageHtml(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpviewer_renderPageHtml(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 특정 페이지 SVG 렌더링 + * @param {number} page_num + * @returns {string} + */ + renderPageSvg(page_num) { + let deferred2_0; + let deferred2_1; + try { + const ret = wasm.hwpviewer_renderPageSvg(this.__wbg_ptr, page_num); + var ptr1 = ret[0]; + var len1 = ret[1]; + if (ret[3]) { + ptr1 = 0; len1 = 0; + throw takeFromExternrefTable0(ret[2]); + } + deferred2_0 = ptr1; + deferred2_1 = len1; + return getStringFromWasm0(ptr1, len1); + } finally { + wasm.__wbindgen_free(deferred2_0, deferred2_1, 1); + } + } + /** + * 줌 변경 + * @param {number} zoom + */ + setZoom(zoom) { + wasm.hwpviewer_setZoom(this.__wbg_ptr, zoom); + } + /** + * 뷰포트 업데이트 (스크롤/리사이즈 시 호출) + * @param {number} scroll_x + * @param {number} scroll_y + * @param {number} width + * @param {number} height + */ + updateViewport(scroll_x, scroll_y, width, height) { + wasm.hwpviewer_updateViewport(this.__wbg_ptr, scroll_x, scroll_y, width, height); + } + /** + * 현재 보이는 페이지 목록 반환 + * @returns {Uint32Array} + */ + visiblePages() { + const ret = wasm.hwpviewer_visiblePages(this.__wbg_ptr); + var v1 = getArrayU32FromWasm0(ret[0], ret[1]).slice(); + wasm.__wbindgen_free(ret[0], ret[1] * 4, 4); + return v1; + } +} +if (Symbol.dispose) HwpViewer.prototype[Symbol.dispose] = HwpViewer.prototype.free; + +/** + * HWP 파일에서 썸네일 이미지만 경량 추출 (전체 파싱 없이) + * + * 반환: JSON `{ "format": "png"|"gif", "base64": "...", "width": N, "height": N }` + * PrvImage가 없으면 `null` 반환 + * @param {Uint8Array} data + * @returns {any} + */ +export function extractThumbnail(data) { + const ptr0 = passArray8ToWasm0(data, wasm.__wbindgen_malloc); + const len0 = WASM_VECTOR_LEN; + const ret = wasm.extractThumbnail(ptr0, len0); + return ret; +} + +/** + * WASM panic hook 초기화 (한 번만 실행) + */ +export function init_panic_hook() { + wasm.init_panic_hook(); +} + +/** + * @returns {string} + */ +export function version() { + let deferred1_0; + let deferred1_1; + try { + const ret = wasm.version(); + deferred1_0 = ret[0]; + deferred1_1 = ret[1]; + return getStringFromWasm0(ret[0], ret[1]); + } finally { + wasm.__wbindgen_free(deferred1_0, deferred1_1, 1); + } +} + +function __wbg_get_imports() { + const import0 = { + __proto__: null, + __wbg___wbindgen_is_undefined_9e4d92534c42d778: function(arg0) { + const ret = arg0 === undefined; + return ret; + }, + __wbg___wbindgen_throw_be289d5034ed271b: function(arg0, arg1) { + throw new Error(getStringFromWasm0(arg0, arg1)); + }, + __wbg_addColorStop_2f80f11dfad35dec: function() { return handleError(function (arg0, arg1, arg2, arg3) { + arg0.addColorStop(arg1, getStringFromWasm0(arg2, arg3)); + }, arguments); }, + __wbg_arcTo_ddf6b8adf3bf5084: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) { + arg0.arcTo(arg1, arg2, arg3, arg4, arg5); + }, arguments); }, + __wbg_arc_60bf829e1bd2add5: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) { + arg0.arc(arg1, arg2, arg3, arg4, arg5); + }, arguments); }, + __wbg_beginPath_9873f939d695759c: function(arg0) { + arg0.beginPath(); + }, + __wbg_bezierCurveTo_38509204f815cfd5: function(arg0, arg1, arg2, arg3, arg4, arg5, arg6) { + arg0.bezierCurveTo(arg1, arg2, arg3, arg4, arg5, arg6); + }, + __wbg_call_389efe28435a9388: function() { return handleError(function (arg0, arg1) { + const ret = arg0.call(arg1); + return ret; + }, arguments); }, + __wbg_clip_f2700ac6171df6c4: function(arg0) { + arg0.clip(); + }, + __wbg_closePath_de4e48859360b1b1: function(arg0) { + arg0.closePath(); + }, + __wbg_complete_40b841a95e35ff5a: function(arg0) { + const ret = arg0.complete; + return ret; + }, + __wbg_createElement_49f60fdcaae809c8: function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.createElement(getStringFromWasm0(arg1, arg2)); + return ret; + }, arguments); }, + __wbg_createLinearGradient_b3d3d1a53abe5362: function(arg0, arg1, arg2, arg3, arg4) { + const ret = arg0.createLinearGradient(arg1, arg2, arg3, arg4); + return ret; + }, + __wbg_createPattern_c1739fd477f91847: function() { return handleError(function (arg0, arg1, arg2, arg3) { + const ret = arg0.createPattern(arg1, getStringFromWasm0(arg2, arg3)); + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, arguments); }, + __wbg_createRadialGradient_b43c38d4bed3b571: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6) { + const ret = arg0.createRadialGradient(arg1, arg2, arg3, arg4, arg5, arg6); + return ret; + }, arguments); }, + __wbg_document_ee35a3d3ae34ef6c: function(arg0) { + const ret = arg0.document; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_drawImage_c3679fd2d5c86a5f: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9) { + arg0.drawImage(arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9); + }, arguments); }, + __wbg_drawImage_ca2a49df50c3765b: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5) { + arg0.drawImage(arg1, arg2, arg3, arg4, arg5); + }, arguments); }, + __wbg_ellipse_3343f79b255f83a4: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7) { + arg0.ellipse(arg1, arg2, arg3, arg4, arg5, arg6, arg7); + }, arguments); }, + __wbg_error_7534b8e9a36f1ab4: function(arg0, arg1) { + let deferred0_0; + let deferred0_1; + try { + deferred0_0 = arg0; + deferred0_1 = arg1; + console.error(getStringFromWasm0(arg0, arg1)); + } finally { + wasm.__wbindgen_free(deferred0_0, deferred0_1, 1); + } + }, + __wbg_fillRect_d44afec47e3a3fab: function(arg0, arg1, arg2, arg3, arg4) { + arg0.fillRect(arg1, arg2, arg3, arg4); + }, + __wbg_fillText_4a931850b976cc62: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + arg0.fillText(getStringFromWasm0(arg1, arg2), arg3, arg4); + }, arguments); }, + __wbg_fill_1eb35c386c8676aa: function(arg0) { + arg0.fill(); + }, + __wbg_getContext_2a5764d48600bc43: function() { return handleError(function (arg0, arg1, arg2) { + const ret = arg0.getContext(getStringFromWasm0(arg1, arg2)); + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, arguments); }, + __wbg_height_38750dc6de41ee75: function(arg0) { + const ret = arg0.height; + return ret; + }, + __wbg_instanceof_CanvasRenderingContext2d_4bb052fd1c3d134d: function(arg0) { + let result; + try { + result = arg0 instanceof CanvasRenderingContext2D; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_instanceof_HtmlCanvasElement_3f2f6e1edb1c9792: function(arg0) { + let result; + try { + result = arg0 instanceof HTMLCanvasElement; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_instanceof_Window_ed49b2db8df90359: function(arg0) { + let result; + try { + result = arg0 instanceof Window; + } catch (_) { + result = false; + } + const ret = result; + return ret; + }, + __wbg_lineTo_c584cff6c760c4a5: function(arg0, arg1, arg2) { + arg0.lineTo(arg1, arg2); + }, + __wbg_measureTextWidth_9115df6cf4133a65: function(arg0, arg1, arg2, arg3) { + const ret = globalThis.measureTextWidth(getStringFromWasm0(arg0, arg1), getStringFromWasm0(arg2, arg3)); + return ret; + }, + __wbg_moveTo_e9190fc700d55b40: function(arg0, arg1, arg2) { + arg0.moveTo(arg1, arg2); + }, + __wbg_naturalWidth_d899aa855a564eb0: function(arg0) { + const ret = arg0.naturalWidth; + return ret; + }, + __wbg_new_3eb36ae241fe6f44: function() { + const ret = new Array(); + return ret; + }, + __wbg_new_8a6f238a6ece86ea: function() { + const ret = new Error(); + return ret; + }, + __wbg_new_ed07138f2680efbf: function() { return handleError(function () { + const ret = new Image(); + return ret; + }, arguments); }, + __wbg_new_no_args_1c7c842f08d00ebb: function(arg0, arg1) { + const ret = new Function(getStringFromWasm0(arg0, arg1)); + return ret; + }, + __wbg_push_8ffdcb2063340ba5: function(arg0, arg1) { + const ret = arg0.push(arg1); + return ret; + }, + __wbg_quadraticCurveTo_b39b7adc73767cc0: function(arg0, arg1, arg2, arg3, arg4) { + arg0.quadraticCurveTo(arg1, arg2, arg3, arg4); + }, + __wbg_rect_967665357db991e9: function(arg0, arg1, arg2, arg3, arg4) { + arg0.rect(arg1, arg2, arg3, arg4); + }, + __wbg_restore_0d233789d098ba64: function(arg0) { + arg0.restore(); + }, + __wbg_rotate_31f482965274db16: function() { return handleError(function (arg0, arg1) { + arg0.rotate(arg1); + }, arguments); }, + __wbg_save_e0cc2e58b36d33c9: function(arg0) { + arg0.save(); + }, + __wbg_scale_543277ecf8cf836b: function() { return handleError(function (arg0, arg1, arg2) { + arg0.scale(arg1, arg2); + }, arguments); }, + __wbg_setLineDash_ecf27050368658c9: function() { return handleError(function (arg0, arg1) { + arg0.setLineDash(arg1); + }, arguments); }, + __wbg_set_fillStyle_783d3f7489475421: function(arg0, arg1, arg2) { + arg0.fillStyle = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_fillStyle_9bd3ccbe7ecf6c2a: function(arg0, arg1) { + arg0.fillStyle = arg1; + }, + __wbg_set_fillStyle_f3cda410d17e5cd2: function(arg0, arg1) { + arg0.fillStyle = arg1; + }, + __wbg_set_font_575685c8f7e56957: function(arg0, arg1, arg2) { + arg0.font = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_globalAlpha_c32898c5532572f4: function(arg0, arg1) { + arg0.globalAlpha = arg1; + }, + __wbg_set_height_f21f985387070100: function(arg0, arg1) { + arg0.height = arg1 >>> 0; + }, + __wbg_set_lineCap_59a017de1ad2b0be: function(arg0, arg1, arg2) { + arg0.lineCap = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_lineWidth_89fa506592f5b994: function(arg0, arg1) { + arg0.lineWidth = arg1; + }, + __wbg_set_shadowBlur_8aa041f690cac8d0: function(arg0, arg1) { + arg0.shadowBlur = arg1; + }, + __wbg_set_shadowColor_cd8db5e06be21e95: function(arg0, arg1, arg2) { + arg0.shadowColor = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_shadowOffsetX_b7f3141c508230dc: function(arg0, arg1) { + arg0.shadowOffsetX = arg1; + }, + __wbg_set_shadowOffsetY_beb753d9e6d4a3ea: function(arg0, arg1) { + arg0.shadowOffsetY = arg1; + }, + __wbg_set_src_55abd261cc86df86: function(arg0, arg1, arg2) { + arg0.src = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_strokeStyle_087121ed5350b038: function(arg0, arg1, arg2) { + arg0.strokeStyle = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_textAlign_cdfa5b9f1c14f5c6: function(arg0, arg1, arg2) { + arg0.textAlign = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_textBaseline_c7ec6538cc52b073: function(arg0, arg1, arg2) { + arg0.textBaseline = getStringFromWasm0(arg1, arg2); + }, + __wbg_set_width_d60bc4f2f20c56a4: function(arg0, arg1) { + arg0.width = arg1 >>> 0; + }, + __wbg_stack_0ed75d68575b0f3c: function(arg0, arg1) { + const ret = arg1.stack; + const ptr1 = passStringToWasm0(ret, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc); + const len1 = WASM_VECTOR_LEN; + getDataViewMemory0().setInt32(arg0 + 4 * 1, len1, true); + getDataViewMemory0().setInt32(arg0 + 4 * 0, ptr1, true); + }, + __wbg_static_accessor_GLOBAL_12837167ad935116: function() { + const ret = typeof global === 'undefined' ? null : global; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_GLOBAL_THIS_e628e89ab3b1c95f: function() { + const ret = typeof globalThis === 'undefined' ? null : globalThis; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_SELF_a621d3dfbb60d0ce: function() { + const ret = typeof self === 'undefined' ? null : self; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_static_accessor_WINDOW_f8727f0cf888e0bd: function() { + const ret = typeof window === 'undefined' ? null : window; + return isLikeNone(ret) ? 0 : addToExternrefTable0(ret); + }, + __wbg_strokeRect_4da24de25ed7fbaf: function(arg0, arg1, arg2, arg3, arg4) { + arg0.strokeRect(arg1, arg2, arg3, arg4); + }, + __wbg_strokeText_477071174dda8ce7: function() { return handleError(function (arg0, arg1, arg2, arg3, arg4) { + arg0.strokeText(getStringFromWasm0(arg1, arg2), arg3, arg4); + }, arguments); }, + __wbg_stroke_240ea7f2407d73c0: function(arg0) { + arg0.stroke(); + }, + __wbg_translate_3aa10730376a8c06: function() { return handleError(function (arg0, arg1, arg2) { + arg0.translate(arg1, arg2); + }, arguments); }, + __wbg_width_5f66bde2e810fbde: function(arg0) { + const ret = arg0.width; + return ret; + }, + __wbindgen_cast_0000000000000001: function(arg0) { + // Cast intrinsic for `F64 -> Externref`. + const ret = arg0; + return ret; + }, + __wbindgen_cast_0000000000000002: function(arg0, arg1) { + // Cast intrinsic for `Ref(String) -> Externref`. + const ret = getStringFromWasm0(arg0, arg1); + return ret; + }, + __wbindgen_init_externref_table: function() { + const table = wasm.__wbindgen_externrefs; + const offset = table.grow(4); + table.set(0, undefined); + table.set(offset + 0, undefined); + table.set(offset + 1, null); + table.set(offset + 2, true); + table.set(offset + 3, false); + }, + }; + return { + __proto__: null, + "./rhwp_bg.js": import0, + }; +} + +const HwpDocumentFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_hwpdocument_free(ptr >>> 0, 1)); +const HwpViewerFinalization = (typeof FinalizationRegistry === 'undefined') + ? { register: () => {}, unregister: () => {} } + : new FinalizationRegistry(ptr => wasm.__wbg_hwpviewer_free(ptr >>> 0, 1)); + +function addToExternrefTable0(obj) { + const idx = wasm.__externref_table_alloc(); + wasm.__wbindgen_externrefs.set(idx, obj); + return idx; +} + +function _assertClass(instance, klass) { + if (!(instance instanceof klass)) { + throw new Error(`expected instance of ${klass.name}`); + } +} + +function getArrayU32FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint32ArrayMemory0().subarray(ptr / 4, ptr / 4 + len); +} + +function getArrayU8FromWasm0(ptr, len) { + ptr = ptr >>> 0; + return getUint8ArrayMemory0().subarray(ptr / 1, ptr / 1 + len); +} + +let cachedDataViewMemory0 = null; +function getDataViewMemory0() { + if (cachedDataViewMemory0 === null || cachedDataViewMemory0.buffer.detached === true || (cachedDataViewMemory0.buffer.detached === undefined && cachedDataViewMemory0.buffer !== wasm.memory.buffer)) { + cachedDataViewMemory0 = new DataView(wasm.memory.buffer); + } + return cachedDataViewMemory0; +} + +function getStringFromWasm0(ptr, len) { + ptr = ptr >>> 0; + return decodeText(ptr, len); +} + +let cachedUint32ArrayMemory0 = null; +function getUint32ArrayMemory0() { + if (cachedUint32ArrayMemory0 === null || cachedUint32ArrayMemory0.byteLength === 0) { + cachedUint32ArrayMemory0 = new Uint32Array(wasm.memory.buffer); + } + return cachedUint32ArrayMemory0; +} + +let cachedUint8ArrayMemory0 = null; +function getUint8ArrayMemory0() { + if (cachedUint8ArrayMemory0 === null || cachedUint8ArrayMemory0.byteLength === 0) { + cachedUint8ArrayMemory0 = new Uint8Array(wasm.memory.buffer); + } + return cachedUint8ArrayMemory0; +} + +function handleError(f, args) { + try { + return f.apply(this, args); + } catch (e) { + const idx = addToExternrefTable0(e); + wasm.__wbindgen_exn_store(idx); + } +} + +function isLikeNone(x) { + return x === undefined || x === null; +} + +function passArray8ToWasm0(arg, malloc) { + const ptr = malloc(arg.length * 1, 1) >>> 0; + getUint8ArrayMemory0().set(arg, ptr / 1); + WASM_VECTOR_LEN = arg.length; + return ptr; +} + +function passStringToWasm0(arg, malloc, realloc) { + if (realloc === undefined) { + const buf = cachedTextEncoder.encode(arg); + const ptr = malloc(buf.length, 1) >>> 0; + getUint8ArrayMemory0().subarray(ptr, ptr + buf.length).set(buf); + WASM_VECTOR_LEN = buf.length; + return ptr; + } + + let len = arg.length; + let ptr = malloc(len, 1) >>> 0; + + const mem = getUint8ArrayMemory0(); + + let offset = 0; + + for (; offset < len; offset++) { + const code = arg.charCodeAt(offset); + if (code > 0x7F) break; + mem[ptr + offset] = code; + } + if (offset !== len) { + if (offset !== 0) { + arg = arg.slice(offset); + } + ptr = realloc(ptr, len, len = offset + arg.length * 3, 1) >>> 0; + const view = getUint8ArrayMemory0().subarray(ptr + offset, ptr + len); + const ret = cachedTextEncoder.encodeInto(arg, view); + + offset += ret.written; + ptr = realloc(ptr, len, offset, 1) >>> 0; + } + + WASM_VECTOR_LEN = offset; + return ptr; +} + +function takeFromExternrefTable0(idx) { + const value = wasm.__wbindgen_externrefs.get(idx); + wasm.__externref_table_dealloc(idx); + return value; +} + +let cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); +cachedTextDecoder.decode(); +const MAX_SAFARI_DECODE_BYTES = 2146435072; +let numBytesDecoded = 0; +function decodeText(ptr, len) { + numBytesDecoded += len; + if (numBytesDecoded >= MAX_SAFARI_DECODE_BYTES) { + cachedTextDecoder = new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }); + cachedTextDecoder.decode(); + numBytesDecoded = len; + } + return cachedTextDecoder.decode(getUint8ArrayMemory0().subarray(ptr, ptr + len)); +} + +const cachedTextEncoder = new TextEncoder(); + +if (!('encodeInto' in cachedTextEncoder)) { + cachedTextEncoder.encodeInto = function (arg, view) { + const buf = cachedTextEncoder.encode(arg); + view.set(buf); + return { + read: arg.length, + written: buf.length + }; + }; +} + +let WASM_VECTOR_LEN = 0; + +let wasmModule, wasm; +function __wbg_finalize_init(instance, module) { + wasm = instance.exports; + wasmModule = module; + cachedDataViewMemory0 = null; + cachedUint32ArrayMemory0 = null; + cachedUint8ArrayMemory0 = null; + wasm.__wbindgen_start(); + return wasm; +} + +async function __wbg_load(module, imports) { + if (typeof Response === 'function' && module instanceof Response) { + if (typeof WebAssembly.instantiateStreaming === 'function') { + try { + return await WebAssembly.instantiateStreaming(module, imports); + } catch (e) { + const validResponse = module.ok && expectedResponseType(module.type); + + if (validResponse && module.headers.get('Content-Type') !== 'application/wasm') { + console.warn("`WebAssembly.instantiateStreaming` failed because your server does not serve Wasm with `application/wasm` MIME type. Falling back to `WebAssembly.instantiate` which is slower. Original error:\n", e); + + } else { throw e; } + } + } + + const bytes = await module.arrayBuffer(); + return await WebAssembly.instantiate(bytes, imports); + } else { + const instance = await WebAssembly.instantiate(module, imports); + + if (instance instanceof WebAssembly.Instance) { + return { instance, module }; + } else { + return instance; + } + } + + function expectedResponseType(type) { + switch (type) { + case 'basic': case 'cors': case 'default': return true; + } + return false; + } +} + +function initSync(module) { + if (wasm !== undefined) return wasm; + + + if (module !== undefined) { + if (Object.getPrototypeOf(module) === Object.prototype) { + ({module} = module) + } else { + console.warn('using deprecated parameters for `initSync()`; pass a single object instead') + } + } + + const imports = __wbg_get_imports(); + if (!(module instanceof WebAssembly.Module)) { + module = new WebAssembly.Module(module); + } + const instance = new WebAssembly.Instance(module, imports); + return __wbg_finalize_init(instance, module); +} + +async function __wbg_init(module_or_path) { + if (wasm !== undefined) return wasm; + + + if (module_or_path !== undefined) { + if (Object.getPrototypeOf(module_or_path) === Object.prototype) { + ({module_or_path} = module_or_path) + } else { + console.warn('using deprecated parameters for the initialization function; pass a single object instead') + } + } + + if (module_or_path === undefined) { + module_or_path = new URL('rhwp_bg.wasm', import.meta.url); + } + const imports = __wbg_get_imports(); + + if (typeof module_or_path === 'string' || (typeof Request === 'function' && module_or_path instanceof Request) || (typeof URL === 'function' && module_or_path instanceof URL)) { + module_or_path = fetch(module_or_path); + } + + const { instance, module } = await __wbg_load(await module_or_path, imports); + + return __wbg_finalize_init(instance, module); +} + +export { initSync, __wbg_init as default };