sales-frontend-bridge 0.0.40 → 0.0.42

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
@@ -1710,7 +1710,8 @@ var NativeBridgeCore = class extends CommonBridgeCore {
1710
1710
  return;
1711
1711
  }
1712
1712
  if (platform === "ios-webview") {
1713
- window.webkit?.messageHandlers?.[this.callBridgeName]?.postMessage(JSON.stringify(command));
1713
+ const message = salesFrontendUtils.isFpPlannerApp() ? { ...command, service: "native" } : command;
1714
+ window.webkit?.messageHandlers?.[this.callBridgeName]?.postMessage(JSON.stringify(message));
1714
1715
  return;
1715
1716
  }
1716
1717
  console.warn(
@@ -2187,10 +2188,10 @@ var NativeBridgeOz = class extends CommonBridge {
2187
2188
  return this.core.callToTarget("hideMissingFieldWarning");
2188
2189
  }
2189
2190
  /**
2190
- * 미입력 서식 Alert 표시하기
2191
+ * Alert 표시하기
2191
2192
  */
2192
- async showMissingAlert() {
2193
- return this.core.callToTarget("showMissingAlert");
2193
+ async showAlert(options) {
2194
+ return this.core.callToTarget("showAlert", options);
2194
2195
  }
2195
2196
  // TODO: 필요 플러그인들 추가
2196
2197
  };
@@ -2215,25 +2216,24 @@ var commentPenGreen = [...commentPenDefaultParam, `comment.highlightpen_color=81
2215
2216
  var commentPenEraser = [`comment.selectedpen=eraser`];
2216
2217
 
2217
2218
  // src/oz/constant/oz-param.ts
2218
- var commonOzParam = [
2219
- `information.debug = true`,
2219
+ var informationOzParam = [
2220
+ // 뷰어 콘솔 로그 정보의 수준(Level)을 설정합니다. - 뷰어 수행에 필요한 디버깅용 메시지를 자바 콘솔에 출력
2221
+ `information.debug = true`
2222
+ ];
2223
+ var globalOzParam = [
2224
+ // 다중 보고서 호출 시 부모 보고서의 파라미터 값을 자식 보고서가 상속받을지 여부를 설정합니다.
2220
2225
  `global.inheritparameter=true`,
2221
- `global.concatpage=true`,
2226
+ // 멀티 보고서를 하나의 보고서처럼 사용할지 여부를 설정합니다.
2227
+ `global.concatpage=true`
2228
+ // 멀티 보고서를 하나의 보고서처럼 설정한 경우 각각의 보고서별로 페이지 번호를 부여할지 여부를 설정합니다.
2222
2229
  // `global.eachpagenumberatconcatpage=true`,
2230
+ ];
2231
+ var eformOzParam = [
2223
2232
  `eform.signpad_type=embedded`,
2224
2233
  // `eform.signpad_type=keypad`,
2225
2234
  `eform.show_prev_next_input=true`,
2226
2235
  // `eform.signpad_prev_next_iconposition=sign_top_left`,
2227
2236
  `eform.signpad_prev_next_iconposition=sign_top`,
2228
- `eform.inputcomponent_toolbar_button_json=${JSON.stringify({
2229
- // 서명패드 버튼 배열 수정
2230
- "all": {
2231
- // 왼쪽에 [이전, 창닫기]
2232
- "left_align": "prev,ok",
2233
- // 오른쪽에 [다시쓰기, 성명,서명 불러오기, 다음]
2234
- "right_align": "clear,reusablesign,next"
2235
- }
2236
- })}`,
2237
2237
  `eform.signpad_show_draw_erase_button=false`,
2238
2238
  `eform.signpad_viewtype=keepratioandfittoframe`,
2239
2239
  `eform.radiobutton_type=ensurevisible_at_prev_next`,
@@ -2241,9 +2241,19 @@ var commonOzParam = [
2241
2241
  `eform.prev_next_required_rule=required_only`,
2242
2242
  `eform.prev_next_navigation_rule=required_only`,
2243
2243
  `eform.prev_next_constraint_rule=empty_only`,
2244
+ `eform.imagepicker_camera_iconposition = camera_top`,
2245
+ `eform.inputeventcommand=true`,
2244
2246
  // 서명 입력 중간중간에 onValueChanged가 호출 / 디폴트는 입력끝나고 창이 닫힐때 호출
2245
2247
  `eform.onvaluechanged_callrule_json=${JSON.stringify({ signpad: "changed" })}`,
2246
- `viewer.pagenavigate_by_prev_next=true`,
2248
+ `eform.inputcomponent_toolbar_button_json=${JSON.stringify({
2249
+ // 서명패드 버튼 배열 수정
2250
+ "all": {
2251
+ // 왼쪽에 [이전, 창닫기]
2252
+ "left_align": "prev,ok",
2253
+ // 오른쪽에 [다시쓰기, 성명,서명 불러오기, 다음]
2254
+ "right_align": "clear,reusablesign,next"
2255
+ }
2256
+ })}`,
2247
2257
  `eform.imagepicker_id_info=${JSON.stringify({
2248
2258
  ids: [
2249
2259
  {
@@ -2298,9 +2308,10 @@ var commonOzParam = [
2298
2308
  { 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" }] }
2299
2309
  ],
2300
2310
  choice: { title: "\uC2E0\uBD84\uC99D\uC744 \uC120\uD0DD\uD558\uC138\uC694.", items: "1,2,3,4,5" }
2301
- })}`,
2302
- `eform.imagepicker_camera_iconposition = camera_top`,
2303
- `eform.inputeventcommand=true`,
2311
+ })}`
2312
+ ];
2313
+ var viewerOzPram = [
2314
+ `viewer.pagenavigate_by_prev_next=true`,
2304
2315
  // `viewer.zoombymouse=false`,
2305
2316
  `viewer.pagedisplay=singlepagecontinuous`,
2306
2317
  `viewer.usetoolbar=false`,
@@ -2314,9 +2325,19 @@ var commonOzParam = [
2314
2325
  `viewer.exportcommand=true`,
2315
2326
  `viewer.errorcommand=true`,
2316
2327
  `viewer.reportchangecommand=true`,
2317
- `viewer.pagebindcommandinterval=500`,
2328
+ `viewer.pagebindcommandinterval=500`
2329
+ ];
2330
+ var ozdOzParam = [
2331
+ // connection.args=key=value로 넘기는 정보들은 ozr에서만 유효하나 ozd에서도 유효하도록 허용
2318
2332
  `ozd.allowreplaceformparam=true`
2319
2333
  ];
2334
+ var commonOzParam = [
2335
+ ...informationOzParam,
2336
+ ...globalOzParam,
2337
+ ...eformOzParam,
2338
+ ...viewerOzPram,
2339
+ ...ozdOzParam
2340
+ ];
2320
2341
 
2321
2342
  // src/oz/constant/pdf-param.ts
2322
2343
  var commonPdfExportParam = [
@@ -2336,20 +2357,19 @@ var commonPdfExportParam = [
2336
2357
  var wrapperStyle = { display: "flex", flexFlow: "column", gap: "10px" };
2337
2358
  var btnStyle = { border: "1px solid red", minHeight: "40px" };
2338
2359
  var DownloadDocumentList = [
2339
- { 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 }
2340
- // { 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 },
2341
- // { name: '[A0900]상품설명서', doc: [{ docCode: 'A0900', fileID: 'IRnk0TCNZNzt7KkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2342
- // { name: '[A1500]청약부속정보확인서', doc: [{ docCode: 'A1500', fileID: 'uw0KChCNZP1eFKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2343
- // { name: '[A2215]보험계약대출이행관리동의서', doc: [{ docCode: 'A2215', fileID: 'QIpmmaCNZRWRuKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2344
- // { name: '[A2800]계약전알릴의무', doc: [{ docCode: 'A2800', fileID: 'ZirCIiCNZRbLFKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2345
- // { name: '[A3503]청약서별지(변액용)', doc: [{ docCode: 'A3503', fileID: '7Cm2jqCNZRimXKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2346
- // { name: '[B0101]보험계약체결동의서', doc: [{ docCode: 'B0101', fileID: 'g1oZeaCNZRrGhKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2347
- // { name: '[C0400]계약체결이행동의서', doc: [{ docCode: 'C0400', fileID: 'eyBV4QCNalUwWKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2348
- // { name: '[C0401]상품소개상세동의서', doc: [{ docCode: 'C0401', fileID: 'OqBHIjCNZS1BTKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2349
- // { name: '[C1000]보험상품판매체크리스트', doc: [{ docCode: 'C1000', fileID: 'aSAXJOCNa8UgjKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2350
- // { name: '[C1300]계약체결고지의무확인서', doc: [{ docCode: 'C1300', fileID: 'uz9gVwCNZTYsUKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2351
- // { name: '[C1400]보험상품비교설명확인서', doc: [{ docCode: 'C1400', fileID: 'KFZ4kKCNZTb5CKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2352
- // { name: '[A0010]청약서', doc: [{ docCode: 'A0010', fileID: 'Fgn33vCNaUbAHKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2360
+ { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "DnDwwjCNoyKPrKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2361
+ // { name: '[A0100]비교안내확인서', doc: [{ docCode: 'A0100', fileID: 'WaFvafCNoyN9MKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2362
+ // { name: '[A0900]상품설명서', doc: [{ docCode: 'A0900', fileID: 'DYYVmcCNoyVCIKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2363
+ // { name: '[A1500]청약부속정보확인서', doc: [{ docCode: 'A1500', fileID: 's4reYCCNoyeMOKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2364
+ // { name: '[A2215]보험계약대출이행관리동의서', doc: [{ docCode: 'A2215', fileID: 'iqcUYECNoyiEmKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2365
+ // { name: '[A2800]계약전알릴의무', doc: [{ docCode: 'A2800', fileID: 'OAzjftCNoyn7MKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2366
+ // { name: '[A3503]청약서별지(변액용)', doc: [{ docCode: 'A3503', fileID: 'gG68cJCNoyvItKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2367
+ // { name: '[B0101]보험계약체결동의서', doc: [{ docCode: 'B0101', fileID: 'egYx4aCNoy7qbKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2368
+ { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", doc: [{ docCode: "C0400", fileID: "9ovagwCNoy-6DKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2369
+ // { name: '[C0401]상품소개상세동의서', doc: [{ docCode: 'C0401', fileID: 'NQHHzNCNozQD9KkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2370
+ { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", doc: [{ docCode: "C1000", fileID: "FSEeZ3CNozTrTKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
2371
+ // { name: '[C1300]계약체결고지의무확인서', doc: [{ docCode: 'C1300', fileID: 'D1MxpkCNozYJgKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2372
+ // { name: '[C1400]보험상품비교설명확인서', doc: [{ docCode: 'C1400', fileID: 'v6vgqOCNozcBkKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2353
2373
  ];
2354
2374
  var ExtraData = {
2355
2375
  // 문서코드
@@ -2755,6 +2775,8 @@ async function SignatureHandler({ type, btnID }) {
2755
2775
  }
2756
2776
  if (btnID === "signatureInProgress") {
2757
2777
  await SignatureInProgressHandler();
2778
+ } else if (btnID === "signatureInMissing") {
2779
+ await SignatureInMissingHandler();
2758
2780
  } else if (btnID === "signatureComplete") {
2759
2781
  await SignatureCompleteHandler();
2760
2782
  } else {
@@ -2767,6 +2789,20 @@ async function SignatureInProgressHandler() {
2767
2789
  await enableFocusOnValidation(reportCount);
2768
2790
  await validateAllPages(pageCount);
2769
2791
  }
2792
+ async function SignatureInMissingHandler() {
2793
+ const { data: { result } } = await Bridge.nativeOz.showAlert({
2794
+ title: "\uC785\uB825\uD558\uC9C0 \uC54A\uC740 \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4",
2795
+ message: "\uD574\uB2F9 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9\uD558\uC5EC \uC785\uB825\uC744 \uC644\uB8CC\uD574\uC8FC\uC138\uC694.",
2796
+ buttons: {
2797
+ close: true,
2798
+ main: "\uBBF8\uC785\uB825 \uD56D\uBAA9 \uC785\uB825\uD558\uAE30"
2799
+ }
2800
+ });
2801
+ if (result === "main") {
2802
+ return await SignatureInProgressHandler();
2803
+ }
2804
+ return;
2805
+ }
2770
2806
  async function SignatureCompleteHandler() {
2771
2807
  try {
2772
2808
  await Bridge.native.showLoader();
@@ -2784,7 +2820,7 @@ async function SignatureCompleteHandler() {
2784
2820
  await Bridge.nativeOz.createOzPdfViewer({ filePath });
2785
2821
  } catch (e) {
2786
2822
  if (e === "MissingAlert") {
2787
- await Bridge.nativeOz.showMissingAlert();
2823
+ await SignatureInMissingHandler();
2788
2824
  } else {
2789
2825
  alert("PDF export \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4");
2790
2826
  }
@@ -2803,6 +2839,8 @@ async function SaveTotalPdf() {
2803
2839
  );
2804
2840
  const totalPage = await getTotalPageMemo();
2805
2841
  await Bridge.nativeOz.savePdf({
2842
+ // PDF 저장은 증번폴더/파일이름.pdf로 생성
2843
+ policyNumber,
2806
2844
  param: [
2807
2845
  // 저장할 파일명 설정
2808
2846
  `pdf.filename=${"total.pdf"}`,