sales-frontend-bridge 0.0.41 → 0.0.43

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1890,6 +1890,9 @@ var NativeBridge = class extends CommonBridge {
1890
1890
  async hideLoader() {
1891
1891
  return this.core.callToTarget("hideLoader");
1892
1892
  }
1893
+ async localFetchBridge(options) {
1894
+ return this.core.callToTarget("localFetchBridge", options);
1895
+ }
1893
1896
  /**
1894
1897
  * 홈 이동
1895
1898
  * @example
@@ -2188,10 +2191,10 @@ var NativeBridgeOz = class extends CommonBridge {
2188
2191
  return this.core.callToTarget("hideMissingFieldWarning");
2189
2192
  }
2190
2193
  /**
2191
- * 미입력 서식 Alert 표시하기
2194
+ * Alert 표시하기
2192
2195
  */
2193
- async showMissingAlert() {
2194
- return this.core.callToTarget("showMissingAlert");
2196
+ async showAlert(options) {
2197
+ return this.core.callToTarget("showAlert", options);
2195
2198
  }
2196
2199
  // TODO: 필요 플러그인들 추가
2197
2200
  };
@@ -2216,25 +2219,24 @@ var commentPenGreen = [...commentPenDefaultParam, `comment.highlightpen_color=81
2216
2219
  var commentPenEraser = [`comment.selectedpen=eraser`];
2217
2220
 
2218
2221
  // src/oz/constant/oz-param.ts
2219
- var commonOzParam = [
2220
- `information.debug = true`,
2222
+ var informationOzParam = [
2223
+ // 뷰어 콘솔 로그 정보의 수준(Level)을 설정합니다. - 뷰어 수행에 필요한 디버깅용 메시지를 자바 콘솔에 출력
2224
+ `information.debug = true`
2225
+ ];
2226
+ var globalOzParam = [
2227
+ // 다중 보고서 호출 시 부모 보고서의 파라미터 값을 자식 보고서가 상속받을지 여부를 설정합니다.
2221
2228
  `global.inheritparameter=true`,
2222
- `global.concatpage=true`,
2229
+ // 멀티 보고서를 하나의 보고서처럼 사용할지 여부를 설정합니다.
2230
+ `global.concatpage=true`
2231
+ // 멀티 보고서를 하나의 보고서처럼 설정한 경우 각각의 보고서별로 페이지 번호를 부여할지 여부를 설정합니다.
2223
2232
  // `global.eachpagenumberatconcatpage=true`,
2233
+ ];
2234
+ var eformOzParam = [
2224
2235
  `eform.signpad_type=embedded`,
2225
2236
  // `eform.signpad_type=keypad`,
2226
2237
  `eform.show_prev_next_input=true`,
2227
2238
  // `eform.signpad_prev_next_iconposition=sign_top_left`,
2228
2239
  `eform.signpad_prev_next_iconposition=sign_top`,
2229
- `eform.inputcomponent_toolbar_button_json=${JSON.stringify({
2230
- // 서명패드 버튼 배열 수정
2231
- "all": {
2232
- // 왼쪽에 [이전, 창닫기]
2233
- "left_align": "prev,ok",
2234
- // 오른쪽에 [다시쓰기, 성명,서명 불러오기, 다음]
2235
- "right_align": "clear,reusablesign,next"
2236
- }
2237
- })}`,
2238
2240
  `eform.signpad_show_draw_erase_button=false`,
2239
2241
  `eform.signpad_viewtype=keepratioandfittoframe`,
2240
2242
  `eform.radiobutton_type=ensurevisible_at_prev_next`,
@@ -2242,9 +2244,19 @@ var commonOzParam = [
2242
2244
  `eform.prev_next_required_rule=required_only`,
2243
2245
  `eform.prev_next_navigation_rule=required_only`,
2244
2246
  `eform.prev_next_constraint_rule=empty_only`,
2247
+ `eform.imagepicker_camera_iconposition = camera_top`,
2248
+ `eform.inputeventcommand=true`,
2245
2249
  // 서명 입력 중간중간에 onValueChanged가 호출 / 디폴트는 입력끝나고 창이 닫힐때 호출
2246
2250
  `eform.onvaluechanged_callrule_json=${JSON.stringify({ signpad: "changed" })}`,
2247
- `viewer.pagenavigate_by_prev_next=true`,
2251
+ `eform.inputcomponent_toolbar_button_json=${JSON.stringify({
2252
+ // 서명패드 버튼 배열 수정
2253
+ "all": {
2254
+ // 왼쪽에 [이전, 창닫기]
2255
+ "left_align": "prev,ok",
2256
+ // 오른쪽에 [다시쓰기, 성명,서명 불러오기, 다음]
2257
+ "right_align": "clear,reusablesign,next"
2258
+ }
2259
+ })}`,
2248
2260
  `eform.imagepicker_id_info=${JSON.stringify({
2249
2261
  ids: [
2250
2262
  {
@@ -2299,9 +2311,10 @@ var commonOzParam = [
2299
2311
  { id: "5", name: "\uC678\uAD6D\uC778\uB4F1\uB85D\uC99D \uB4B7\uBA74", size: "86x54", margin: "3", mask: [{ name: "\uC678\uAD6D\uC778", area: "0,0,0,0" }] }
2300
2312
  ],
2301
2313
  choice: { title: "\uC2E0\uBD84\uC99D\uC744 \uC120\uD0DD\uD558\uC138\uC694.", items: "1,2,3,4,5" }
2302
- })}`,
2303
- `eform.imagepicker_camera_iconposition = camera_top`,
2304
- `eform.inputeventcommand=true`,
2314
+ })}`
2315
+ ];
2316
+ var viewerOzPram = [
2317
+ `viewer.pagenavigate_by_prev_next=true`,
2305
2318
  // `viewer.zoombymouse=false`,
2306
2319
  `viewer.pagedisplay=singlepagecontinuous`,
2307
2320
  `viewer.usetoolbar=false`,
@@ -2315,9 +2328,19 @@ var commonOzParam = [
2315
2328
  `viewer.exportcommand=true`,
2316
2329
  `viewer.errorcommand=true`,
2317
2330
  `viewer.reportchangecommand=true`,
2318
- `viewer.pagebindcommandinterval=500`,
2331
+ `viewer.pagebindcommandinterval=500`
2332
+ ];
2333
+ var ozdOzParam = [
2334
+ // connection.args=key=value로 넘기는 정보들은 ozr에서만 유효하나 ozd에서도 유효하도록 허용
2319
2335
  `ozd.allowreplaceformparam=true`
2320
2336
  ];
2337
+ var commonOzParam = [
2338
+ ...informationOzParam,
2339
+ ...globalOzParam,
2340
+ ...eformOzParam,
2341
+ ...viewerOzPram,
2342
+ ...ozdOzParam
2343
+ ];
2321
2344
 
2322
2345
  // src/oz/constant/pdf-param.ts
2323
2346
  var commonPdfExportParam = [
@@ -2337,20 +2360,19 @@ var commonPdfExportParam = [
2337
2360
  var wrapperStyle = { display: "flex", flexFlow: "column", gap: "10px" };
2338
2361
  var btnStyle = { border: "1px solid red", minHeight: "40px" };
2339
2362
  var DownloadDocumentList = [
2340
- { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "Fgn33vCNaUbAHKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
2341
- // { name: '[A0100]비교안내확인서', doc: [{ docCode: 'A0100', fileID: '0IxCQWCNZNl-SKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2342
- // { name: '[A0900]상품설명서', doc: [{ docCode: 'A0900', fileID: 'IRnk0TCNZNzt7KkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2343
- // { name: '[A1500]청약부속정보확인서', doc: [{ docCode: 'A1500', fileID: 'uw0KChCNZP1eFKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2344
- // { name: '[A2215]보험계약대출이행관리동의서', doc: [{ docCode: 'A2215', fileID: 'QIpmmaCNZRWRuKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2345
- // { name: '[A2800]계약전알릴의무', doc: [{ docCode: 'A2800', fileID: 'ZirCIiCNZRbLFKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2346
- // { name: '[A3503]청약서별지(변액용)', doc: [{ docCode: 'A3503', fileID: '7Cm2jqCNZRimXKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2347
- // { name: '[B0101]보험계약체결동의서', doc: [{ docCode: 'B0101', fileID: 'g1oZeaCNZRrGhKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2348
- // { name: '[C0400]계약체결이행동의서', doc: [{ docCode: 'C0400', fileID: 'eyBV4QCNalUwWKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2349
- // { name: '[C0401]상품소개상세동의서', doc: [{ docCode: 'C0401', fileID: 'OqBHIjCNZS1BTKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2350
- // { name: '[C1000]보험상품판매체크리스트', doc: [{ docCode: 'C1000', fileID: 'aSAXJOCNa8UgjKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2351
- // { name: '[C1300]계약체결고지의무확인서', doc: [{ docCode: 'C1300', fileID: 'uz9gVwCNZTYsUKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2352
- // { name: '[C1400]보험상품비교설명확인서', doc: [{ docCode: 'C1400', fileID: 'KFZ4kKCNZTb5CKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2353
- // { name: '[A0010]청약서', doc: [{ docCode: 'A0010', fileID: 'Fgn33vCNaUbAHKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2363
+ { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "1HLqZJCNt6idLKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2364
+ { name: "[A0100]\uBE44\uAD50\uC548\uB0B4\uD655\uC778\uC11C", doc: [{ docCode: "A0100", fileID: "EAq0B3CNt6owpKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2365
+ { name: "[A0900]\uC0C1\uD488\uC124\uBA85\uC11C", doc: [{ docCode: "A0900", fileID: "dwKuNnCNvAFegKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2366
+ { name: "[A1500]\uCCAD\uC57D\uBD80\uC18D\uC815\uBCF4\uD655\uC778\uC11C", doc: [{ docCode: "A1500", fileID: "PsxOl1CNvAKxyKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2367
+ { name: "[A2215]\uBCF4\uD5D8\uACC4\uC57D\uB300\uCD9C\uC774\uD589\uAD00\uB9AC\uB3D9\uC758\uC11C", doc: [{ docCode: "A2215", fileID: "hV621tCNt6smxKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2368
+ { name: "[A2800]\uACC4\uC57D\uC804\uC54C\uB9B4\uC758\uBB34", doc: [{ docCode: "A2800", fileID: "gyQRHMCNt6voUKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2369
+ { name: "[A3503]\uCCAD\uC57D\uC11C\uBCC4\uC9C0(\uBCC0\uC561\uC6A9)", doc: [{ docCode: "A3503", fileID: "88U1i3CNt6yWQKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2370
+ { name: "[B0101]\uBCF4\uD5D8\uACC4\uC57D\uCCB4\uACB0\uB3D9\uC758\uC11C", doc: [{ docCode: "B0101", fileID: "amlL4FCNvAPmLKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2371
+ { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", doc: [{ docCode: "C0400", fileID: "K75MXgCNt65INKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2372
+ { name: "[C0401]\uC0C1\uD488\uC18C\uAC1C\uC0C1\uC138\uB3D9\uC758\uC11C", doc: [{ docCode: "C0401", fileID: "oA6EGZCNt6-9aKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2373
+ { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", doc: [{ docCode: "C1000", fileID: "0ah3K7CNt7D5PKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2374
+ { name: "[C1300]\uACC4\uC57D\uCCB4\uACB0\uACE0\uC9C0\uC758\uBB34\uD655\uC778\uC11C", doc: [{ docCode: "C1300", fileID: "wuhu3kCNt7HmEKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2375
+ { name: "[C1400]\uBCF4\uD5D8\uC0C1\uD488\uBE44\uAD50\uC124\uBA85\uD655\uC778\uC11C", doc: [{ docCode: "C1400", fileID: "gVUw81CNt7KVqKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
2354
2376
  ];
2355
2377
  var ExtraData = {
2356
2378
  // 문서코드
@@ -2756,6 +2778,8 @@ async function SignatureHandler({ type, btnID }) {
2756
2778
  }
2757
2779
  if (btnID === "signatureInProgress") {
2758
2780
  await SignatureInProgressHandler();
2781
+ } else if (btnID === "signatureInMissing") {
2782
+ await SignatureInMissingHandler();
2759
2783
  } else if (btnID === "signatureComplete") {
2760
2784
  await SignatureCompleteHandler();
2761
2785
  } else {
@@ -2768,6 +2792,20 @@ async function SignatureInProgressHandler() {
2768
2792
  await enableFocusOnValidation(reportCount);
2769
2793
  await validateAllPages(pageCount);
2770
2794
  }
2795
+ async function SignatureInMissingHandler() {
2796
+ const { data: { result } } = await Bridge.nativeOz.showAlert({
2797
+ title: "\uC785\uB825\uD558\uC9C0 \uC54A\uC740 \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4",
2798
+ message: "\uD574\uB2F9 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9\uD558\uC5EC \uC785\uB825\uC744 \uC644\uB8CC\uD574\uC8FC\uC138\uC694.",
2799
+ buttons: {
2800
+ close: true,
2801
+ main: "\uBBF8\uC785\uB825 \uD56D\uBAA9 \uC785\uB825\uD558\uAE30"
2802
+ }
2803
+ });
2804
+ if (result === "main") {
2805
+ return await SignatureInProgressHandler();
2806
+ }
2807
+ return;
2808
+ }
2771
2809
  async function SignatureCompleteHandler() {
2772
2810
  try {
2773
2811
  await Bridge.native.showLoader();
@@ -2785,7 +2823,7 @@ async function SignatureCompleteHandler() {
2785
2823
  await Bridge.nativeOz.createOzPdfViewer({ filePath });
2786
2824
  } catch (e) {
2787
2825
  if (e === "MissingAlert") {
2788
- await Bridge.nativeOz.showMissingAlert();
2826
+ await SignatureInMissingHandler();
2789
2827
  } else {
2790
2828
  alert("PDF export \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4");
2791
2829
  }
@@ -2804,6 +2842,8 @@ async function SaveTotalPdf() {
2804
2842
  );
2805
2843
  const totalPage = await getTotalPageMemo();
2806
2844
  await Bridge.nativeOz.savePdf({
2845
+ // PDF 저장은 증번폴더/파일이름.pdf로 생성
2846
+ policyNumber,
2807
2847
  param: [
2808
2848
  // 저장할 파일명 설정
2809
2849
  `pdf.filename=${"total.pdf"}`,
@@ -2827,6 +2867,74 @@ async function fetchFont() {
2827
2867
  const fontParms = Object.keys(fontMap).map((i) => `font.${i}=${fontMap[i]}`);
2828
2868
  return fontParms;
2829
2869
  }
2870
+ function base64ToBlob(base64) {
2871
+ const [meta, data] = base64.split(",");
2872
+ if (meta === void 0) {
2873
+ throw new Error(`unexpected sing image ${base64}`);
2874
+ }
2875
+ const mime = meta.match(/:(.*?);/)?.[1] || "";
2876
+ const bytes = Uint8Array.from(atob(data || base64), (c) => c.charCodeAt(0));
2877
+ return new Blob([bytes], { type: mime });
2878
+ }
2879
+ async function postFiletoDud(imageStr) {
2880
+ const formData = new FormData();
2881
+ formData.append("data", base64ToBlob(imageStr), "test.png");
2882
+ formData.append("fileIdentifierValue", "string");
2883
+ formData.append("fileExtendContent1", "string");
2884
+ formData.append("fileExtendContent2", "string");
2885
+ formData.append("preservationTerm", "1");
2886
+ formData.append("fileType", "png");
2887
+ const response = await fetch("/api/v1/post/file", {
2888
+ headers: {
2889
+ "x-channel-appversion": "3.1",
2890
+ "x-channel-carriername": "SK",
2891
+ "x-channel-deviceid": "deviceid",
2892
+ "x-channel-devicemodel": "iPHONE13",
2893
+ "x-channel-formfactor": "Phone",
2894
+ "x-channel-loginchannel": "DSP",
2895
+ "x-channel-logintype": "ONPA_PIN",
2896
+ "x-channel-networktype": "LTE",
2897
+ "x-channel-platformversion": "15.4.1",
2898
+ "x-channel-screenid": "ScreenId",
2899
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
2900
+ "x-x-channel-platformname": "IOS"
2901
+ },
2902
+ method: "POST",
2903
+ body: formData
2904
+ });
2905
+ const json = await response.json();
2906
+ return json;
2907
+ }
2908
+ async function getFileFromDud(fileMgmtId) {
2909
+ const outputType = "binary";
2910
+ const response = await fetch("/api/v1/get/file", {
2911
+ headers: {
2912
+ "content-type": "application/json",
2913
+ "x-channel-appversion": "3.1",
2914
+ "x-channel-carriername": "SK",
2915
+ "x-channel-deviceid": "deviceid",
2916
+ "x-channel-devicemodel": "iPHONE13",
2917
+ "x-channel-formfactor": "Phone",
2918
+ "x-channel-loginchannel": "DSP",
2919
+ "x-channel-logintype": "ONPA_PIN",
2920
+ "x-channel-networktype": "LTE",
2921
+ "x-channel-platformversion": "15.4.1",
2922
+ "x-channel-screenid": "ScreenId",
2923
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
2924
+ "x-x-channel-platformname": "IOS"
2925
+ },
2926
+ method: "POST",
2927
+ body: JSON.stringify({ fileMgmtId, outputType })
2928
+ });
2929
+ const blob = await response.blob();
2930
+ const base64String = await new Promise((resolve, reject) => {
2931
+ const reader = new FileReader();
2932
+ reader.onloadend = () => resolve(reader.result);
2933
+ reader.onerror = reject;
2934
+ reader.readAsDataURL(blob);
2935
+ });
2936
+ return base64String;
2937
+ }
2830
2938
 
2831
2939
  // src/oz/utils/bridge-util/create-report-util.ts
2832
2940
  async function CreateOzParam(documentList, extraData = {}) {
@@ -2926,6 +3034,22 @@ async function triggerDraftDataByIndexList(indexList) {
2926
3034
  await Bridge.nativeOz.triggerExternalEventByDocIndex({ param1: "getDraftData" /* GetDraftData */, docIndex: indexList[i] });
2927
3035
  }
2928
3036
  }
3037
+ var valueChangeDebounceMap = /* @__PURE__ */ new Map();
3038
+ function getDebouncedValueChangeHandler(docIndex, onValueChanged) {
3039
+ const DEBOUNCE_DELAY = 1e3 * 1;
3040
+ const existingHandler = valueChangeDebounceMap.get(docIndex);
3041
+ if (existingHandler) {
3042
+ return existingHandler;
3043
+ }
3044
+ const debouncedHandler = salesFrontendUtils.debounce((idx) => {
3045
+ onValueChanged(idx);
3046
+ }, DEBOUNCE_DELAY);
3047
+ valueChangeDebounceMap.set(docIndex, debouncedHandler);
3048
+ return debouncedHandler;
3049
+ }
3050
+ function clearValueChangeDebounceHandlers() {
3051
+ valueChangeDebounceMap.clear();
3052
+ }
2929
3053
  /*! Bundled license information:
2930
3054
 
2931
3055
  react/cjs/react.production.js:
@@ -2970,6 +3094,7 @@ exports.btnStyle = btnStyle;
2970
3094
  exports.categorizeByPageRange = categorizeByPageRange;
2971
3095
  exports.checkDocumentsValidityByIndex = checkDocumentsValidityByIndex;
2972
3096
  exports.checkValidPageMemo = checkValidPageMemo;
3097
+ exports.clearValueChangeDebounceHandlers = clearValueChangeDebounceHandlers;
2973
3098
  exports.commentPenEraser = commentPenEraser;
2974
3099
  exports.commentPenGreen = commentPenGreen;
2975
3100
  exports.commentPenPink = commentPenPink;
@@ -2984,13 +3109,16 @@ exports.fetchDocument = fetchDocument;
2984
3109
  exports.fetchFont = fetchFont;
2985
3110
  exports.fpInfo = fpInfo;
2986
3111
  exports.getCurrentPage = getCurrentPage;
3112
+ exports.getDebouncedValueChangeHandler = getDebouncedValueChangeHandler;
2987
3113
  exports.getDraftDataHandler = getDraftDataHandler;
3114
+ exports.getFileFromDud = getFileFromDud;
2988
3115
  exports.getFileListByGlobalIndex = getFileListByGlobalIndex;
2989
3116
  exports.getReportCountMemo = getReportCountMemo;
2990
3117
  exports.getTotalPageMemo = getTotalPageMemo;
2991
3118
  exports.getTotalPageOnAllDocuments = getTotalPageOnAllDocuments;
2992
3119
  exports.isCommentMode = isCommentMode;
2993
3120
  exports.policyNumber = policyNumber;
3121
+ exports.postFiletoDud = postFiletoDud;
2994
3122
  exports.roleCode = roleCode;
2995
3123
  exports.setCheckEform = setCheckEform;
2996
3124
  exports.setDisableCommentMode = setDisableCommentMode;