sales-frontend-bridge 0.0.39 → 0.0.40

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