sales-frontend-bridge 0.0.39 → 0.0.41

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(
@@ -2219,7 +2220,7 @@ var commonOzParam = [
2219
2220
  `information.debug = true`,
2220
2221
  `global.inheritparameter=true`,
2221
2222
  `global.concatpage=true`,
2222
- `global.eachpagenumberatconcatpage=true`,
2223
+ // `global.eachpagenumberatconcatpage=true`,
2223
2224
  `eform.signpad_type=embedded`,
2224
2225
  // `eform.signpad_type=keypad`,
2225
2226
  `eform.show_prev_next_input=true`,
@@ -2228,10 +2229,10 @@ var commonOzParam = [
2228
2229
  `eform.inputcomponent_toolbar_button_json=${JSON.stringify({
2229
2230
  // 서명패드 버튼 배열 수정
2230
2231
  "all": {
2231
- // 왼쪽에 이전, 다시쓰기 버튼
2232
- "left_align": "prev,clear",
2233
- // 오른쪽에 완료 성명,서명 불러오기, 다음
2234
- "right_align": "ok,reusablesign,next"
2232
+ // 왼쪽에 [이전, 창닫기]
2233
+ "left_align": "prev,ok",
2234
+ // 오른쪽에 [다시쓰기, 성명,서명 불러오기, 다음]
2235
+ "right_align": "clear,reusablesign,next"
2235
2236
  }
2236
2237
  })}`,
2237
2238
  `eform.signpad_show_draw_erase_button=false`,
@@ -2241,7 +2242,8 @@ var commonOzParam = [
2241
2242
  `eform.prev_next_required_rule=required_only`,
2242
2243
  `eform.prev_next_navigation_rule=required_only`,
2243
2244
  `eform.prev_next_constraint_rule=empty_only`,
2244
- // `eform.onvaluechanged_callrule_json=${JSON.stringify({ signpad: 'changed' })}`,
2245
+ // 서명 입력 중간중간에 onValueChanged가 호출 / 디폴트는 입력끝나고 창이 닫힐때 호출
2246
+ `eform.onvaluechanged_callrule_json=${JSON.stringify({ signpad: "changed" })}`,
2245
2247
  `viewer.pagenavigate_by_prev_next=true`,
2246
2248
  `eform.imagepicker_id_info=${JSON.stringify({
2247
2249
  ids: [
@@ -2313,7 +2315,8 @@ var commonOzParam = [
2313
2315
  `viewer.exportcommand=true`,
2314
2316
  `viewer.errorcommand=true`,
2315
2317
  `viewer.reportchangecommand=true`,
2316
- `viewer.pagebindcommandinterval=500`
2318
+ `viewer.pagebindcommandinterval=500`,
2319
+ `ozd.allowreplaceformparam=true`
2317
2320
  ];
2318
2321
 
2319
2322
  // src/oz/constant/pdf-param.ts
@@ -2334,19 +2337,20 @@ var commonPdfExportParam = [
2334
2337
  var wrapperStyle = { display: "flex", flexFlow: "column", gap: "10px" };
2335
2338
  var btnStyle = { border: "1px solid red", minHeight: "40px" };
2336
2339
  var DownloadDocumentList = [
2337
- { name: "[A0010]\uCCAD\uC57D\uC11C", file: ["A0010.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2338
- { name: "[A0100]\uBE44\uAD50\uC548\uB0B4\uD655\uC778\uC11C", file: ["A0100.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2339
- // { name: '[A0900]상품설명서', file: ['A0900.ozd'], complete: false, startPage: 0, endPage: 0, focus: false },
2340
- { name: "[A1500]\uCCAD\uC57D\uBD80\uC18D\uC815\uBCF4\uD655\uC778\uC11C", file: ["A1500.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2341
- { name: "[A2215]\uBCF4\uD5D8\uACC4\uC57D\uB300\uCD9C\uC774\uD589\uAD00\uB9AC\uB3D9\uC758\uC11C", file: ["A2215.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2342
- { name: "[A2800]\uACC4\uC57D\uC804\uC54C\uB9B4\uC758\uBB34", file: ["A2800.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2343
- { name: "[A3503]\uCCAD\uC57D\uC11C\uBCC4\uC9C0(\uBCC0\uC561\uC6A9)", file: ["A3503.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2344
- { name: "[B0101]\uBCF4\uD5D8\uACC4\uC57D\uCCB4\uACB0\uB3D9\uC758\uC11C", file: ["B0101.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2345
- { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", file: ["C0400.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2346
- { name: "[C0401]\uC0C1\uD488\uC18C\uAC1C\uC0C1\uC138\uB3D9\uC758\uC11C", file: ["C0401.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2347
- { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", file: ["C1000.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2348
- { name: "[C1300]\uACC4\uC57D\uCCB4\uACB0\uACE0\uC9C0\uC758\uBB34\uD655\uC778\uC11C", file: ["C1300.ozd"], complete: false, startPage: 0, endPage: 0, focus: false },
2349
- { name: "[C1400]\uBCF4\uD5D8\uC0C1\uD488\uBE44\uAD50\uC124\uBA85\uD655\uC778\uC11C", file: ["C1400.ozd"], complete: false, startPage: 0, endPage: 0, focus: false }
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 },
2350
2354
  ];
2351
2355
  var ExtraData = {
2352
2356
  // 문서코드
@@ -2359,28 +2363,30 @@ var ExtraData = {
2359
2363
  A0010_mysg_sign: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAABDElEQVR4nOzSsQkCYRgEUZXDVgTtxdDIYgR7sFkTG/iTiT4P3qtgGXa7vp+H//M5PqYnLJymB+yJWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgVjBdj9fpjcsvG7f6QkLnhWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBX8AgAA//9+7gTkg4AcBQAAAABJRU5ErkJggg=="
2360
2364
  },
2361
2365
  // 기타 공통으로 사용하지 않을 파라미터
2362
- extraParam: [`viewer.zoom=137`],
2363
- args: [`roleCd=11,21`, `ccc=ddd`]
2366
+ extraParam: [],
2367
+ // aaa=bbb
2368
+ args: []
2364
2369
  },
2365
2370
  A0900: {
2366
- args: [`roleCd=11,21`, `aaa=bbb`]
2371
+ args: []
2367
2372
  }
2368
2373
  };
2369
2374
  var policyNumber = "300034894";
2370
2375
  var fpInfo = { uniqNo: "2210000" };
2376
+ var roleCode = [`11`, `21`];
2371
2377
 
2372
2378
  // src/oz/hooks/use-document-info.tsx
2373
2379
  var import_react = __toESM(require_react());
2374
2380
  function useDocumentInfo(initialValue) {
2375
2381
  const [documentInfo, setDocumentInfo] = (0, import_react.useState)([...initialValue]);
2376
- const documentList = (0, import_react.useMemo)(() => documentInfo.map((i) => i.file).flat(1), [documentInfo]);
2382
+ const documentList = (0, import_react.useMemo)(() => documentInfo.map((i) => i.doc).flat(1), [documentInfo]);
2377
2383
  const documentIndexMap = documentList.reduce((acc, cur, index) => {
2378
- acc[cur] = index;
2384
+ acc[cur.docCode] = index;
2379
2385
  return acc;
2380
2386
  }, {});
2381
- const documentTemplateMap = (0, import_react.useMemo)(() => documentInfo.reduce((map, doc) => {
2382
- doc.file.forEach((file) => {
2383
- map[file] = { ...doc };
2387
+ const documentTemplateMap = (0, import_react.useMemo)(() => documentInfo.reduce((map, template) => {
2388
+ template.doc.forEach((ozdFile) => {
2389
+ map[ozdFile.docCode] = { ...template };
2384
2390
  });
2385
2391
  return map;
2386
2392
  }, {}), [documentInfo]);
@@ -2389,13 +2395,13 @@ function useDocumentInfo(initialValue) {
2389
2395
  return acc;
2390
2396
  }, {});
2391
2397
  const groupIndexes = (0, import_react.useMemo)(() => documentInfo.reduce((acc, item) => {
2392
- item.file.forEach((file) => {
2393
- const currentIndex = documentIndexMap[file];
2398
+ item.doc.forEach((ozdFile) => {
2399
+ const currentIndex = documentIndexMap[ozdFile.docCode];
2394
2400
  if (!acc[currentIndex]) {
2395
2401
  acc[currentIndex] = [];
2396
2402
  }
2397
- item.file.forEach((groupFile) => {
2398
- acc[currentIndex].push(documentIndexMap[groupFile]);
2403
+ item.doc.forEach((ozdFile2) => {
2404
+ acc[currentIndex].push(documentIndexMap[ozdFile2.docCode]);
2399
2405
  });
2400
2406
  });
2401
2407
  return acc;
@@ -2445,27 +2451,25 @@ var OZViewerEvent = /* @__PURE__ */ ((OZViewerEvent2) => {
2445
2451
  OZViewerEvent2["OZReportCreated"] = "OZReportCreated";
2446
2452
  return OZViewerEvent2;
2447
2453
  })(OZViewerEvent || {});
2454
+ var OZTriggerExternalEvent = /* @__PURE__ */ ((OZTriggerExternalEvent2) => {
2455
+ OZTriggerExternalEvent2["GetDraftData"] = "getDraftData";
2456
+ return OZTriggerExternalEvent2;
2457
+ })(OZTriggerExternalEvent || {});
2448
2458
 
2449
2459
  // src/oz/utils/common-util.ts
2450
2460
  function categorizeByPageRange(data, pageCounts) {
2451
- let pageStart = 1;
2452
- const result = [];
2461
+ let currentPage = 1;
2453
2462
  let pageIndex = 0;
2454
- data.forEach((item) => {
2455
- const startPage = pageStart;
2456
- let endPage = pageStart;
2457
- item.file.forEach(() => {
2458
- const pageCount = pageCounts[pageIndex];
2459
- const pageEnd = pageStart + pageCount - 1;
2460
- pageStart = pageEnd + 1;
2461
- pageIndex++;
2462
- endPage = pageEnd;
2463
- });
2464
- result.push({
2465
- ...item,
2466
- startPage,
2467
- endPage
2463
+ const result = DeepCopy(data);
2464
+ result.forEach((group) => {
2465
+ group.startPage = currentPage;
2466
+ group.doc.forEach((doc) => {
2467
+ const pageCount = pageCounts[pageIndex++];
2468
+ doc.startPage = currentPage;
2469
+ doc.endPage = currentPage + pageCount - 1;
2470
+ currentPage += pageCount;
2468
2471
  });
2472
+ group.endPage = group.doc[group.doc.length - 1].endPage;
2469
2473
  });
2470
2474
  return result;
2471
2475
  }
@@ -2481,10 +2485,10 @@ function extractFileName(filePath) {
2481
2485
  }
2482
2486
  function getFileListByGlobalIndex(index, data) {
2483
2487
  let currentIndex = 0;
2484
- for (const form of data) {
2485
- const fileCount = form.file.length;
2488
+ for (const template of data) {
2489
+ const fileCount = template.doc.length;
2486
2490
  if (index >= currentIndex && index < currentIndex + fileCount) {
2487
- return form;
2491
+ return template;
2488
2492
  }
2489
2493
  currentIndex += fileCount;
2490
2494
  }
@@ -2815,8 +2819,8 @@ async function SaveTotalPdf() {
2815
2819
 
2816
2820
  // src/oz/utils/bridge-util/fetch-util.ts
2817
2821
  async function fetchDocument(options) {
2818
- const { data } = await Bridge.native.downloadDocument({ data: options });
2819
- return data.map((i) => ({ ...i, startPage: 0, endPage: 0 }));
2822
+ const { data: result } = await Bridge.native.downloadDocument({ data: options, policyNumber, fpInfo });
2823
+ return result.data.map((i) => ({ ...i, startPage: 0, endPage: 0 }));
2820
2824
  }
2821
2825
  async function fetchFont() {
2822
2826
  const { data: fontMap } = await Bridge.native.getOzFontParam();
@@ -2831,12 +2835,12 @@ async function CreateOzParam(documentList, extraData = {}) {
2831
2835
  }
2832
2836
  const fontParms = await fetchFont();
2833
2837
  const connectionParams = documentList.map(
2834
- (file, idx) => idx === 0 ? `connection.openfile=${file}` : `child${idx}.connection.openfile=${file}`
2838
+ ({ filePath }, idx) => idx === 0 ? `connection.openfile=${filePath}` : `child${idx}.connection.openfile=${filePath}`
2835
2839
  );
2836
2840
  const childCount = documentList.length - 1;
2837
- const extraParams = documentList.map((file, idx) => {
2841
+ const extraParams = documentList.map((ozdFile, idx) => {
2838
2842
  const result = [];
2839
- const docCode = file.replace(/^.*[\\/]|(\.[^/.]+)$/g, "");
2843
+ const docCode = ozdFile.docCode.replace(/^.*[\\/]|(\.[^/.]+)$/g, "");
2840
2844
  const prefix = idx === 0 ? "" : `child${idx}.`;
2841
2845
  const data = extraData[docCode] || {};
2842
2846
  if (data.inputJson) {
@@ -2845,6 +2849,7 @@ async function CreateOzParam(documentList, extraData = {}) {
2845
2849
  const args = [
2846
2850
  // 모든서식에 공통으로 필요한 docCd param 추가
2847
2851
  `docCd=${docCode}`,
2852
+ `roleCd=11,28`,
2848
2853
  ...ensureArray(data.args)
2849
2854
  ];
2850
2855
  args.forEach((arg, idx2) => result.push(`${prefix}connection.args${idx2 + 1}=${arg}`));
@@ -2898,6 +2903,29 @@ async function getTotalPageOnAllDocuments(reportCount) {
2898
2903
  }
2899
2904
  return totalPages;
2900
2905
  }
2906
+
2907
+ // src/oz/utils/bridge-util/get-draft-data-util.ts
2908
+ async function getDraftDataHandler(rawOzRequest, documentIndexMap) {
2909
+ const parsedRequest = JSON.parse(rawOzRequest);
2910
+ const { docCd, ...signKeyMap } = parsedRequest;
2911
+ const documentIndex = documentIndexMap[docCd];
2912
+ if (documentIndex === void 0) {
2913
+ throw new Error(`Invalid document code: ${docCd}`);
2914
+ }
2915
+ const { data } = await Bridge.nativeOz.getInformation({ command: `INPUT_JSON_AT=${documentIndex}` });
2916
+ const documentJson = JSON.parse(data);
2917
+ const signDataMap = Object.keys(signKeyMap).reduce((acc, key) => {
2918
+ acc[key] = documentJson[key];
2919
+ return acc;
2920
+ }, {});
2921
+ return signDataMap;
2922
+ }
2923
+ async function triggerDraftDataByIndexList(indexList) {
2924
+ for (let i = 0; i < indexList.length; i++) {
2925
+ await sleep();
2926
+ await Bridge.nativeOz.triggerExternalEventByDocIndex({ param1: "getDraftData" /* GetDraftData */, docIndex: indexList[i] });
2927
+ }
2928
+ }
2901
2929
  /*! Bundled license information:
2902
2930
 
2903
2931
  react/cjs/react.production.js:
@@ -2931,6 +2959,7 @@ exports.CreateOzViewer = CreateOzViewer;
2931
2959
  exports.DownloadDocumentList = DownloadDocumentList;
2932
2960
  exports.ExtraData = ExtraData;
2933
2961
  exports.MovePage = MovePage;
2962
+ exports.OZTriggerExternalEvent = OZTriggerExternalEvent;
2934
2963
  exports.OZViewerEvent = OZViewerEvent;
2935
2964
  exports.PdfHandler = PdfHandler;
2936
2965
  exports.PromiseWithResolvers = PromiseWithResolvers;
@@ -2955,18 +2984,21 @@ exports.fetchDocument = fetchDocument;
2955
2984
  exports.fetchFont = fetchFont;
2956
2985
  exports.fpInfo = fpInfo;
2957
2986
  exports.getCurrentPage = getCurrentPage;
2987
+ exports.getDraftDataHandler = getDraftDataHandler;
2958
2988
  exports.getFileListByGlobalIndex = getFileListByGlobalIndex;
2959
2989
  exports.getReportCountMemo = getReportCountMemo;
2960
2990
  exports.getTotalPageMemo = getTotalPageMemo;
2961
2991
  exports.getTotalPageOnAllDocuments = getTotalPageOnAllDocuments;
2962
2992
  exports.isCommentMode = isCommentMode;
2963
2993
  exports.policyNumber = policyNumber;
2994
+ exports.roleCode = roleCode;
2964
2995
  exports.setCheckEform = setCheckEform;
2965
2996
  exports.setDisableCommentMode = setDisableCommentMode;
2966
2997
  exports.setEnableCommentMode = setEnableCommentMode;
2967
2998
  exports.sleep = sleep;
2968
2999
  exports.triggerClickOnAllDocuments = triggerClickOnAllDocuments;
2969
3000
  exports.triggerCropImageOnAllDocuments = triggerCropImageOnAllDocuments;
3001
+ exports.triggerDraftDataByIndexList = triggerDraftDataByIndexList;
2970
3002
  exports.useDocumentInfo = useDocumentInfo;
2971
3003
  exports.useOzEventListener = useOzEventListener;
2972
3004
  exports.validateAllPages = validateAllPages;