sales-frontend-oz 0.0.17 → 0.0.18

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
@@ -151,48 +151,6 @@ var commonPdfExportParam = [
151
151
  // 폰트를 포함시킬때 사용하는 글자만 포함시킨다
152
152
  `pdf.fontembedding_subset=true`
153
153
  ];
154
-
155
- // src/oz/constant/test-data.ts
156
- var wrapperStyle = { display: "flex", flexFlow: "column", gap: "10px" };
157
- var btnStyle = { border: "1px solid red", minHeight: "40px" };
158
- var DownloadDocumentList = [
159
- { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "548PJrCOTEbtSKkAA", imageFormatCode: "RT003000", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
160
- { name: "[A0100]\uBE44\uAD50\uC548\uB0B4\uD655\uC778\uC11C", doc: [{ docCode: "A0100", fileID: "ADXS1CCOTEgGVKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT01", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
161
- { name: "[A0900]\uC0C1\uD488\uC124\uBA85\uC11C", doc: [{ docCode: "A0900", fileID: "q7jjxECOTErDoKkAA", imageFormatCode: "RT003002", imageDocumentTypeCode: "IT02", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
162
- { name: "[A1500]\uCCAD\uC57D\uBD80\uC18D\uC815\uBCF4\uD655\uC778\uC11C", doc: [{ docCode: "A1500", fileID: "PHYuIXCOTEvSIKkAA", imageFormatCode: "RT003003", imageDocumentTypeCode: "IT03", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
163
- { name: "[A2215]\uBCF4\uD5D8\uACC4\uC57D\uB300\uCD9C\uC774\uD589\uAD00\uB9AC\uB3D9\uC758\uC11C", doc: [{ docCode: "A2215", fileID: "aCLb5eCOTEyqjKkAA", imageFormatCode: "RT003004", imageDocumentTypeCode: "IT04", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
164
- { name: "[A2800]\uACC4\uC57D\uC804\uC54C\uB9B4\uC758\uBB34", doc: [{ docCode: "A2800", fileID: "Je6ZAtCOTE4rTKkAA", imageFormatCode: "RT003005", imageDocumentTypeCode: "IT05", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
165
- { name: "[A3503]\uCCAD\uC57D\uC11C\uBCC4\uC9C0(\uBCC0\uC561\uC6A9)", doc: [{ docCode: "A3503", fileID: "ApnNTbCOTE8CjKkAA", imageFormatCode: "RT003006", imageDocumentTypeCode: "IT06", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
166
- { name: "[B0101]\uBCF4\uD5D8\uACC4\uC57D\uCCB4\uACB0\uB3D9\uC758\uC11C", doc: [{ docCode: "B0101", fileID: "756qLXCOTFDYFKkAA", imageFormatCode: "RT003007", imageDocumentTypeCode: "IT07", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
167
- { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", doc: [{ docCode: "C0400", fileID: "Bg0c0HCOTFHF7KkAA", imageFormatCode: "RT003008", imageDocumentTypeCode: "IT08", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
168
- { name: "[C0401]\uC0C1\uD488\uC18C\uAC1C\uC0C1\uC138\uB3D9\uC758\uC11C", doc: [{ docCode: "C0401", fileID: "yDoJLMCOTFKKpKkAA", imageFormatCode: "RT003009", imageDocumentTypeCode: "IT09", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
169
- { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", doc: [{ docCode: "C1000", fileID: "FtAEqcCOTFOOsKkAA", imageFormatCode: "RT003010", imageDocumentTypeCode: "IT10", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
170
- { name: "[C1300]\uACC4\uC57D\uCCB4\uACB0\uACE0\uC9C0\uC758\uBB34\uD655\uC778\uC11C", doc: [{ docCode: "C1300", fileID: "TAHeCCCOTFRqrKkAA", imageFormatCode: "RT003011", imageDocumentTypeCode: "IT11", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
171
- { name: "[C1400]\uBCF4\uD5D8\uC0C1\uD488\uBE44\uAD50\uC124\uBA85\uD655\uC778\uC11C", doc: [{ docCode: "C1400", fileID: "3nLROXCOTFU1QKkAA", imageFormatCode: "RT003012", imageDocumentTypeCode: "IT12", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
172
- ];
173
- var ExtraData = {
174
- // 문서코드
175
- A0010: {
176
- // connection.inputjson으로 바인딩할 데이터
177
- inputJson: {
178
- // 계약자 성명 사인정보
179
- A0010_mynm_sg: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAABDUlEQVR4nOzSMQ0CQBQEUSAnAAU0iEAAPWKQgQU04gED10z1IXlPwWay6/78HH7P+3qZnrBxmh7wT8QKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECsQKxArECtZjvaY3bNzOx+kJG54ViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgVfAMAAP//tD4Eb/yjIncAAAAASUVORK5CYII=",
180
- // 계약자 서명 사인정보
181
- A0010_mysg_sign: "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGQAAABkCAIAAAD/gAIDAAABDElEQVR4nOzSsQkCYRgEUZXDVgTtxdDIYgR7sFkTG/iTiT4P3qtgGXa7vp+H//M5PqYnLJymB+yJWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgVjBdj9fpjcsvG7f6QkLnhWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBWIFYgViBX8AgAA//9+7gTkg4AcBQAAAABJRU5ErkJggg=="
182
- },
183
- // 기타 공통으로 사용하지 않을 파라미터
184
- extraParam: [],
185
- // aaa=bbb
186
- args: []
187
- },
188
- A0900: {
189
- args: []
190
- }
191
- };
192
- var policyNumber = "300034894";
193
- var fpInfo = { uniqNo: "2210000" };
194
- var roleCode = [`11`, `28`];
195
- var xdudheaders = `Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo`;
196
154
  function useDocumentInfo(initialValue) {
197
155
  const documentInfo = initialValue;
198
156
  const documentList = react.useMemo(() => documentInfo.map((i) => i.doc).flat(1), [documentInfo]);
@@ -267,6 +225,20 @@ var OZTriggerExternalEvent = /* @__PURE__ */ ((OZTriggerExternalEvent2) => {
267
225
  OZTriggerExternalEvent2["CropImage"] = "cropimage";
268
226
  return OZTriggerExternalEvent2;
269
227
  })(OZTriggerExternalEvent || {});
228
+ async function AlertTemporaryError() {
229
+ return await salesFrontendBridge.Bridge.nativeOz.showAlert({
230
+ title: "\uC77C\uC2DC\uC801\uC778 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4",
231
+ message: "\uBB38\uC81C\uAC00 \uC9C0\uC18D\uB420 \uACBD\uC6B0 IT\uCF5C\uC13C\uD130(1522-6379)\uB85C \uBB38\uC758\uD574\uC8FC\uC138\uC694.",
232
+ buttons: { close: false, main: "\uD655\uC778" }
233
+ });
234
+ }
235
+ async function AlertDocumentLoadError() {
236
+ return await salesFrontendBridge.Bridge.nativeOz.showAlert({
237
+ title: "\uCCAD\uC57D\uBB38\uC11C\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4",
238
+ message: "\uBB38\uC81C\uAC00 \uC9C0\uC18D\uB420 \uACBD\uC6B0 IT\uCF5C\uC13C\uD130(1522-6379)\uB85C \uBB38\uC758\uD574\uC8FC\uC138\uC694.",
239
+ buttons: { close: false, main: "\uD655\uC778" }
240
+ });
241
+ }
270
242
 
271
243
  // src/oz/utils/common-util.ts
272
244
  function categorizeByPageRange(data, pageCounts) {
@@ -324,22 +296,69 @@ function ensureArray(arg) {
324
296
  function DeepCopy(arg) {
325
297
  return JSON.parse(JSON.stringify(arg));
326
298
  }
327
- async function AlertTemporaryError() {
328
- return await salesFrontendBridge.Bridge.nativeOz.showAlert({
329
- title: "\uC77C\uC2DC\uC801\uC778 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD588\uC2B5\uB2C8\uB2E4",
330
- message: "\uBB38\uC81C\uAC00 \uC9C0\uC18D\uB420 \uACBD\uC6B0 IT\uCF5C\uC13C\uD130(1522-6379)\uB85C \uBB38\uC758\uD574\uC8FC\uC138\uC694.",
331
- buttons: { close: false, main: "\uD655\uC778" }
299
+ async function fetchDocument(args) {
300
+ const { data: result } = await salesFrontendBridge.Bridge.native.downloadDocument(args);
301
+ return result.data.map((i) => ({ ...i, startPage: 0, endPage: 0 }));
302
+ }
303
+ async function fetchFont() {
304
+ const { data: fontMap } = await salesFrontendBridge.Bridge.native.getOzFontParam();
305
+ const fontParms = Object.keys(fontMap).map((i) => `font.${i}=${fontMap[i]}`);
306
+ return fontParms;
307
+ }
308
+ async function postFiletoDud(imageStr) {
309
+ const formData = new FormData();
310
+ formData.append("data", salesFrontendUtils.base64ToFile(imageStr, "test.png"));
311
+ formData.append("fileIdentifierValue", "string");
312
+ formData.append("fileExtendContent1", "string");
313
+ formData.append("fileExtendContent2", "string");
314
+ formData.append("preservationTerm", "1");
315
+ formData.append("fileType", "png");
316
+ const response = await fetch("/api/v1/post/file", {
317
+ headers: {
318
+ "x-channel-appversion": "3.1",
319
+ "x-channel-carriername": "SK",
320
+ "x-channel-deviceid": "deviceid",
321
+ "x-channel-devicemodel": "iPHONE13",
322
+ "x-channel-formfactor": "Phone",
323
+ "x-channel-loginchannel": "DSP",
324
+ "x-channel-logintype": "ONPA_PIN",
325
+ "x-channel-networktype": "LTE",
326
+ "x-channel-platformversion": "15.4.1",
327
+ "x-channel-screenid": "ScreenId",
328
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
329
+ "x-x-channel-platformname": "IOS"
330
+ },
331
+ method: "POST",
332
+ body: formData
332
333
  });
334
+ const json = await response.json();
335
+ return json;
333
336
  }
334
- async function AlertDocumentLoadError() {
335
- return await salesFrontendBridge.Bridge.nativeOz.showAlert({
336
- title: "\uCCAD\uC57D\uBB38\uC11C\uB97C \uBD88\uB7EC\uC624\uC9C0 \uBABB\uD588\uC2B5\uB2C8\uB2E4",
337
- message: "\uBB38\uC81C\uAC00 \uC9C0\uC18D\uB420 \uACBD\uC6B0 IT\uCF5C\uC13C\uD130(1522-6379)\uB85C \uBB38\uC758\uD574\uC8FC\uC138\uC694.",
338
- buttons: { close: false, main: "\uD655\uC778" }
337
+ async function getFileFromDud(fileMgmtId) {
338
+ const outputType = "binary";
339
+ const response = await fetch("/api/v1/get/file", {
340
+ headers: {
341
+ "content-type": "application/json",
342
+ "x-channel-appversion": "3.1",
343
+ "x-channel-carriername": "SK",
344
+ "x-channel-deviceid": "deviceid",
345
+ "x-channel-devicemodel": "iPHONE13",
346
+ "x-channel-formfactor": "Phone",
347
+ "x-channel-loginchannel": "DSP",
348
+ "x-channel-logintype": "ONPA_PIN",
349
+ "x-channel-networktype": "LTE",
350
+ "x-channel-platformversion": "15.4.1",
351
+ "x-channel-screenid": "ScreenId",
352
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
353
+ "x-x-channel-platformname": "IOS"
354
+ },
355
+ method: "POST",
356
+ body: JSON.stringify({ fileMgmtId, outputType })
339
357
  });
358
+ const blob = await response.blob();
359
+ const base64String = await salesFrontendUtils.fileToBase64(blob);
360
+ return base64String;
340
361
  }
341
-
342
- // src/oz/utils/bridge-util/oz-wrapper-util.ts
343
362
  async function CreateOzViewer(ozParam) {
344
363
  const { promise, resolve, reject } = PromiseWithResolvers();
345
364
  const handleTimeout = () => {
@@ -425,338 +444,6 @@ var getReportCountMemo = (() => {
425
444
  return getReportCount;
426
445
  })();
427
446
 
428
- // src/oz/utils/bridge-util/btn-touch-event-util/category-handler.ts
429
- async function CategoryHandler(documentInfo, { type, btnID }) {
430
- if (type !== "category") {
431
- throw `Unexpected Type ${type}`;
432
- }
433
- const target = documentInfo.find((i) => i.name === btnID);
434
- if (!target) {
435
- throw `Unexpected btnID ${target}`;
436
- }
437
- await MovePage(target.startPage);
438
- }
439
- async function TopHandler({ type, btnID }) {
440
- if (type !== "top") {
441
- throw `Unexpected Type ${type}`;
442
- }
443
- if (btnID === "btnExit") {
444
- await salesFrontendBridge.Bridge.native.hideOZViewer();
445
- } else {
446
- throw `Unexpected btnID ${btnID}`;
447
- }
448
- }
449
- async function CommentHandler({ type, btnID }) {
450
- if (type !== "comment") {
451
- throw `Unexpected Type ${type}`;
452
- }
453
- if (btnID === "yellow") {
454
- await setEnableCommentMode("yellow");
455
- } else if (btnID === "pink") {
456
- await setEnableCommentMode("pink");
457
- } else if (btnID === "green") {
458
- await setEnableCommentMode("green");
459
- } else if (btnID === "eraser") {
460
- await setEnableCommentMode("eraser");
461
- } else if (btnID === "disable") {
462
- await setDisableCommentMode();
463
- } else {
464
- throw `Unexpected btnID ${btnID}`;
465
- }
466
- }
467
- async function isCommentMode() {
468
- const { data } = await salesFrontendBridge.Bridge.nativeOz.getInformation({ command: `COMMENT_MODE` });
469
- return data === "comment";
470
- }
471
- async function setCommentMode(penConfig) {
472
- const command = `mode_comment_all`;
473
- const commentEnabled = await isCommentMode();
474
- const param = [
475
- ...commentEnabled ? [] : [`viewer.screentool=comment`],
476
- ...penConfig
477
- ].join("\n");
478
- await sleep();
479
- return await salesFrontendBridge.Bridge.nativeOz.scriptEx({ command, param });
480
- }
481
- async function setEnableCommentMode(type = "yellow") {
482
- let param;
483
- if (type === "yellow") {
484
- param = commentPenYellow;
485
- } else if (type === "pink") {
486
- param = commentPenPink;
487
- } else if (type === "green") {
488
- param = commentPenGreen;
489
- } else {
490
- param = commentPenEraser;
491
- }
492
- return await setCommentMode(param);
493
- }
494
- async function setDisableCommentMode() {
495
- const command = `mode_input_all`;
496
- return await salesFrontendBridge.Bridge.nativeOz.script({ command });
497
- }
498
- async function PdfHandler({ type, btnID }) {
499
- if (type !== "pdf") {
500
- throw `Unexpected Type ${type}`;
501
- }
502
- if (btnID === "modify") {
503
- await salesFrontendBridge.Bridge.nativeOz.hideOzPdfViewer();
504
- } else if (btnID === "submit") {
505
- await salesFrontendBridge.Bridge.nativeOz.hideOzPdfViewer();
506
- await salesFrontendBridge.Bridge.native.hideOZViewer();
507
- } else {
508
- throw `Unexpected btnID ${btnID}`;
509
- }
510
- }
511
- async function setFocusOnValidation(enable, reportCount) {
512
- const count = reportCount ?? await getReportCountMemo();
513
- const expectedValue = enable ? "1" : "0";
514
- const { data: prev } = await salesFrontendBridge.Bridge.nativeOz.getGlobal({ key: "chkFlag", docIndex: 0 });
515
- if (prev === expectedValue) {
516
- return;
517
- }
518
- for (let i = 0; i < count; i++) {
519
- await sleep();
520
- await salesFrontendBridge.Bridge.nativeOz.setGlobal({ key: "chkFlag", value: expectedValue, docIndex: i });
521
- }
522
- return;
523
- }
524
- async function enableFocusOnValidation(reportCount) {
525
- return setFocusOnValidation(true, reportCount);
526
- }
527
- async function disableFocusOnValidation(reportCount) {
528
- return setFocusOnValidation(false, reportCount);
529
- }
530
- async function checkDocumentsValidityByIndex(indexList) {
531
- const VALID = "";
532
- for (let i = 0; i < indexList.length; i++) {
533
- await sleep();
534
- const command = `INVALID_INFO_JSON_AT=${indexList[i]}`;
535
- const { data } = await salesFrontendBridge.Bridge.nativeOz.getInformation({ command });
536
- if (data !== VALID) {
537
- return false;
538
- }
539
- }
540
- return true;
541
- }
542
- async function validateAllPages(pageCount) {
543
- const count = pageCount ?? await getTotalPageMemo();
544
- for (let i = 1; i <= count; i++) {
545
- await sleep();
546
- const isValid = await checkValidPageMemo(i);
547
- if (!isValid) {
548
- return false;
549
- }
550
- }
551
- return true;
552
- }
553
- var checkValidPageMemo = (() => {
554
- const cache = /* @__PURE__ */ new Map();
555
- async function checkValidPage(page) {
556
- const cached = cache.get(page);
557
- if (cached) {
558
- return cached;
559
- }
560
- const VALID = "valid";
561
- const command = `INPUT_CHECK_VALIDITY_PAGE_AT=${page}`;
562
- const promise = (async () => {
563
- try {
564
- const { data } = await salesFrontendBridge.Bridge.nativeOz.getInformation({ command });
565
- const isValid = data === VALID;
566
- if (!isValid) {
567
- cache.delete(page);
568
- }
569
- return isValid;
570
- } catch (err) {
571
- cache.delete(page);
572
- throw err;
573
- }
574
- })();
575
- cache.set(page, promise);
576
- return promise;
577
- }
578
- checkValidPage.clearCache = () => {
579
- cache.clear();
580
- };
581
- checkValidPage.clearCacheByPage = (page) => {
582
- cache.delete(page);
583
- };
584
- return checkValidPage;
585
- })();
586
-
587
- // src/oz/utils/bridge-util/btn-touch-event-util/signature-handler.ts
588
- async function SignatureHandler({ type, btnID }) {
589
- if (type !== "signature") {
590
- throw `Unexpected Type ${type}`;
591
- }
592
- if (btnID === "signatureInProgress") {
593
- await SignatureInProgressHandler();
594
- } else if (btnID === "signatureInMissing") {
595
- await SignatureInMissingHandler();
596
- } else if (btnID === "signatureComplete") {
597
- await SignatureCompleteHandler();
598
- } else {
599
- throw `Unexpected btnID ${btnID}`;
600
- }
601
- }
602
- async function SignatureInProgressHandler() {
603
- const reportCount = await getReportCountMemo();
604
- const pageCount = await getTotalPageMemo();
605
- await enableFocusOnValidation(reportCount);
606
- await validateAllPages(pageCount);
607
- }
608
- async function SignatureInMissingHandler() {
609
- const { data: result } = await salesFrontendBridge.Bridge.nativeOz.showAlert({
610
- title: "\uC785\uB825\uD558\uC9C0 \uC54A\uC740 \uD56D\uBAA9\uC774 \uC788\uC2B5\uB2C8\uB2E4",
611
- message: "\uD574\uB2F9 \uD56D\uBAA9\uC73C\uB85C \uC774\uB3D9\uD558\uC5EC \uC785\uB825\uC744 \uC644\uB8CC\uD574\uC8FC\uC138\uC694.",
612
- buttons: {
613
- close: true,
614
- main: "\uBBF8\uC785\uB825 \uD56D\uBAA9 \uC785\uB825\uD558\uAE30"
615
- }
616
- });
617
- if (result === "main") {
618
- return await SignatureInProgressHandler();
619
- }
620
- return;
621
- }
622
- async function SignatureCompleteHandler() {
623
- try {
624
- await salesFrontendBridge.Bridge.native.showLoader();
625
- checkValidPageMemo.clearCache();
626
- getReportCountMemo.clearCache();
627
- getTotalPageMemo.clearCache();
628
- const reportCount = await getReportCountMemo();
629
- const pageCount = await getTotalPageMemo();
630
- await disableFocusOnValidation(reportCount);
631
- const isAllValid = await validateAllPages(pageCount);
632
- if (!isAllValid) {
633
- throw "MissingAlert";
634
- }
635
- const filePath = await SaveTotalPdf();
636
- await salesFrontendBridge.Bridge.nativeOz.createOzPdfViewer({ filePath });
637
- } catch (e) {
638
- if (e === "MissingAlert") {
639
- await SignatureInMissingHandler();
640
- } else {
641
- alert("PDF export \uC911 \uC624\uB958\uAC00 \uBC1C\uC0DD\uD558\uC600\uC2B5\uB2C8\uB2E4");
642
- }
643
- } finally {
644
- await salesFrontendBridge.Bridge.native.hideLoader();
645
- }
646
- }
647
- async function SaveTotalPdf() {
648
- const { promise, resolve } = PromiseWithResolvers();
649
- window.addEventListener(
650
- "OZExportCommand" /* OZExportCommand */,
651
- // 이벤트를 CustomEvent로 타입 캐스팅하고, detail에서 파일 경로 추출
652
- (e) => resolve(e.detail.filepaths),
653
- // 이벤트 리스너는 한 번만 실행되도록 설정
654
- { once: true }
655
- );
656
- const totalPage = await getTotalPageMemo();
657
- await salesFrontendBridge.Bridge.nativeOz.savePdf({
658
- // PDF 저장은 증번폴더/파일이름.pdf로 생성
659
- policyNumber,
660
- param: [
661
- // 저장할 파일명 설정
662
- `pdf.filename=${"total.pdf"}`,
663
- // 1페이지부터 마지막 페이지까지 저장
664
- `export.pages=${1}-${totalPage}`,
665
- // 공통 PDF 내보내기 파라미터 추가
666
- ...commonPdfExportParam
667
- ].join("\n")
668
- });
669
- const filepath = await promise;
670
- return filepath;
671
- }
672
- async function SaveSinglePdf({ startPage, endPage, imageDocumentTypeCode }) {
673
- const { promise, resolve } = PromiseWithResolvers();
674
- window.addEventListener(
675
- "OZExportCommand" /* OZExportCommand */,
676
- // 이벤트를 CustomEvent로 타입 캐스팅하고, detail에서 파일 경로 추출
677
- (e) => resolve(e.detail.filepaths),
678
- // 이벤트 리스너는 한 번만 실행되도록 설정
679
- { once: true }
680
- );
681
- await salesFrontendBridge.Bridge.nativeOz.savePdf({
682
- // PDF 저장은 증번폴더/파일이름.pdf로 생성
683
- policyNumber,
684
- param: [
685
- // 저장할 파일명 설정
686
- `pdf.filename=${imageDocumentTypeCode}.pdf`,
687
- // 1페이지부터 마지막 페이지까지 저장
688
- `export.pages=${startPage}-${endPage}`,
689
- // 공통 PDF 내보내기 파라미터 추가
690
- ...commonPdfExportParam
691
- ].join("\n")
692
- });
693
- const filepath = await promise;
694
- return filepath;
695
- }
696
- async function fetchDocument(args) {
697
- const { data: result } = await salesFrontendBridge.Bridge.native.downloadDocument(args);
698
- return result.data.map((i) => ({ ...i, startPage: 0, endPage: 0 }));
699
- }
700
- async function fetchFont() {
701
- const { data: fontMap } = await salesFrontendBridge.Bridge.native.getOzFontParam();
702
- const fontParms = Object.keys(fontMap).map((i) => `font.${i}=${fontMap[i]}`);
703
- return fontParms;
704
- }
705
- async function postFiletoDud(imageStr) {
706
- const formData = new FormData();
707
- formData.append("data", salesFrontendUtils.base64ToFile(imageStr, "test.png"));
708
- formData.append("fileIdentifierValue", "string");
709
- formData.append("fileExtendContent1", "string");
710
- formData.append("fileExtendContent2", "string");
711
- formData.append("preservationTerm", "1");
712
- formData.append("fileType", "png");
713
- const response = await fetch("/api/v1/post/file", {
714
- headers: {
715
- "x-channel-appversion": "3.1",
716
- "x-channel-carriername": "SK",
717
- "x-channel-deviceid": "deviceid",
718
- "x-channel-devicemodel": "iPHONE13",
719
- "x-channel-formfactor": "Phone",
720
- "x-channel-loginchannel": "DSP",
721
- "x-channel-logintype": "ONPA_PIN",
722
- "x-channel-networktype": "LTE",
723
- "x-channel-platformversion": "15.4.1",
724
- "x-channel-screenid": "ScreenId",
725
- "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
726
- "x-x-channel-platformname": "IOS"
727
- },
728
- method: "POST",
729
- body: formData
730
- });
731
- const json = await response.json();
732
- return json;
733
- }
734
- async function getFileFromDud(fileMgmtId) {
735
- const outputType = "binary";
736
- const response = await fetch("/api/v1/get/file", {
737
- headers: {
738
- "content-type": "application/json",
739
- "x-channel-appversion": "3.1",
740
- "x-channel-carriername": "SK",
741
- "x-channel-deviceid": "deviceid",
742
- "x-channel-devicemodel": "iPHONE13",
743
- "x-channel-formfactor": "Phone",
744
- "x-channel-loginchannel": "DSP",
745
- "x-channel-logintype": "ONPA_PIN",
746
- "x-channel-networktype": "LTE",
747
- "x-channel-platformversion": "15.4.1",
748
- "x-channel-screenid": "ScreenId",
749
- "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
750
- "x-x-channel-platformname": "IOS"
751
- },
752
- method: "POST",
753
- body: JSON.stringify({ fileMgmtId, outputType })
754
- });
755
- const blob = await response.blob();
756
- const base64String = await salesFrontendUtils.fileToBase64(blob);
757
- return base64String;
758
- }
759
-
760
447
  // src/oz/utils/bridge-util/create-report-util.ts
761
448
  async function CreateOzParam({ documentList, extraData = {}, roleCd, jijungInfo = "" }) {
762
449
  if (documentList.length === 0) {
@@ -859,6 +546,113 @@ async function triggerDraftDataByIndexList(indexList) {
859
546
  await salesFrontendBridge.Bridge.nativeOz.triggerExternalEventByDocIndex({ param1: "getDraftData" /* GetDraftData */, docIndex: indexList[i] });
860
547
  }
861
548
  }
549
+ async function setFocusOnValidation(enable, reportCount) {
550
+ const count = reportCount ?? await getReportCountMemo();
551
+ const expectedValue = enable ? "1" : "0";
552
+ const { data: prev } = await salesFrontendBridge.Bridge.nativeOz.getGlobal({ key: "chkFlag", docIndex: 0 });
553
+ if (prev === expectedValue) {
554
+ return;
555
+ }
556
+ for (let i = 0; i < count; i++) {
557
+ await sleep();
558
+ await salesFrontendBridge.Bridge.nativeOz.setGlobal({ key: "chkFlag", value: expectedValue, docIndex: i });
559
+ }
560
+ return;
561
+ }
562
+ async function enableFocusOnValidation(reportCount) {
563
+ return setFocusOnValidation(true, reportCount);
564
+ }
565
+ async function disableFocusOnValidation(reportCount) {
566
+ return setFocusOnValidation(false, reportCount);
567
+ }
568
+ async function SaveTotalPdf(policyNumber, fileName) {
569
+ const startPage = 1;
570
+ const endPage = await getTotalPageMemo();
571
+ return await SavePdf({ policyNumber, fileName, startPage, endPage });
572
+ }
573
+ async function SaveSinglePdf(policyNumber, { startPage, endPage, docCode: fileName }) {
574
+ return await SavePdf({ policyNumber, fileName, startPage, endPage });
575
+ }
576
+ async function SavePdf({ policyNumber, fileName, startPage, endPage }) {
577
+ const { promise, resolve } = PromiseWithResolvers();
578
+ window.addEventListener(
579
+ "OZExportCommand" /* OZExportCommand */,
580
+ // 이벤트를 CustomEvent로 타입 캐스팅하고, detail에서 파일 경로 추출
581
+ (e) => resolve(e.detail.filepaths),
582
+ // 이벤트 리스너는 한 번만 실행되도록 설정
583
+ { once: true }
584
+ );
585
+ await salesFrontendBridge.Bridge.nativeOz.savePdf({
586
+ // PDF 저장은 증번폴더/파일이름.pdf로 생성
587
+ policyNumber,
588
+ param: [
589
+ // 저장할 파일명 설정
590
+ `pdf.filename=${fileName}.pdf`,
591
+ // 1페이지부터 마지막 페이지까지 저장
592
+ `export.pages=${startPage}-${endPage}`,
593
+ // 공통 PDF 내보내기 파라미터 추가
594
+ ...commonPdfExportParam
595
+ ].join("\n")
596
+ });
597
+ const filepath = await promise;
598
+ return filepath;
599
+ }
600
+ async function checkDocumentsValidityByIndex(indexList) {
601
+ const VALID = "";
602
+ for (let i = 0; i < indexList.length; i++) {
603
+ await sleep();
604
+ const command = `INVALID_INFO_JSON_AT=${indexList[i]}`;
605
+ const { data } = await salesFrontendBridge.Bridge.nativeOz.getInformation({ command });
606
+ if (data !== VALID) {
607
+ return false;
608
+ }
609
+ }
610
+ return true;
611
+ }
612
+ async function validateAllPages(pageCount) {
613
+ const count = pageCount ?? await getTotalPageMemo();
614
+ for (let i = 1; i <= count; i++) {
615
+ await sleep();
616
+ const isValid = await checkValidPageMemo(i);
617
+ if (!isValid) {
618
+ return false;
619
+ }
620
+ }
621
+ return true;
622
+ }
623
+ var checkValidPageMemo = (() => {
624
+ const cache = /* @__PURE__ */ new Map();
625
+ async function checkValidPage(page) {
626
+ const cached = cache.get(page);
627
+ if (cached) {
628
+ return cached;
629
+ }
630
+ const VALID = "valid";
631
+ const command = `INPUT_CHECK_VALIDITY_PAGE_AT=${page}`;
632
+ const promise = (async () => {
633
+ try {
634
+ const { data } = await salesFrontendBridge.Bridge.nativeOz.getInformation({ command });
635
+ const isValid = data === VALID;
636
+ if (!isValid) {
637
+ cache.delete(page);
638
+ }
639
+ return isValid;
640
+ } catch (err) {
641
+ cache.delete(page);
642
+ throw err;
643
+ }
644
+ })();
645
+ cache.set(page, promise);
646
+ return promise;
647
+ }
648
+ checkValidPage.clearCache = () => {
649
+ cache.clear();
650
+ };
651
+ checkValidPage.clearCacheByPage = (page) => {
652
+ cache.delete(page);
653
+ };
654
+ return checkValidPage;
655
+ })();
862
656
  var valueChangeDebounceMap = /* @__PURE__ */ new Map();
863
657
  function getDebouncedValueChangeHandler(docIndex, onValueChanged) {
864
658
  const DEBOUNCE_DELAY = 1e3 * 1;
@@ -878,22 +672,14 @@ function clearValueChangeDebounceHandlers() {
878
672
 
879
673
  exports.AlertDocumentLoadError = AlertDocumentLoadError;
880
674
  exports.AlertTemporaryError = AlertTemporaryError;
881
- exports.CategoryHandler = CategoryHandler;
882
- exports.CommentHandler = CommentHandler;
883
675
  exports.CreateOzParam = CreateOzParam;
884
676
  exports.CreateOzViewer = CreateOzViewer;
885
- exports.DownloadDocumentList = DownloadDocumentList;
886
- exports.ExtraData = ExtraData;
887
677
  exports.MovePage = MovePage;
888
678
  exports.OZTriggerExternalEvent = OZTriggerExternalEvent;
889
679
  exports.OZViewerEvent = OZViewerEvent;
890
- exports.PdfHandler = PdfHandler;
891
680
  exports.PromiseWithResolvers = PromiseWithResolvers;
892
681
  exports.SaveSinglePdf = SaveSinglePdf;
893
682
  exports.SaveTotalPdf = SaveTotalPdf;
894
- exports.SignatureHandler = SignatureHandler;
895
- exports.TopHandler = TopHandler;
896
- exports.btnStyle = btnStyle;
897
683
  exports.categorizeByPageRange = categorizeByPageRange;
898
684
  exports.checkDocumentsValidityByIndex = checkDocumentsValidityByIndex;
899
685
  exports.checkValidPageMemo = checkValidPageMemo;
@@ -910,7 +696,6 @@ exports.ensureArray = ensureArray;
910
696
  exports.extractFileName = extractFileName;
911
697
  exports.fetchDocument = fetchDocument;
912
698
  exports.fetchFont = fetchFont;
913
- exports.fpInfo = fpInfo;
914
699
  exports.getCurrentPage = getCurrentPage;
915
700
  exports.getDebouncedValueChangeHandler = getDebouncedValueChangeHandler;
916
701
  exports.getDraftDataHandler = getDraftDataHandler;
@@ -919,13 +704,8 @@ exports.getFileListByGlobalIndex = getFileListByGlobalIndex;
919
704
  exports.getReportCountMemo = getReportCountMemo;
920
705
  exports.getTotalPageMemo = getTotalPageMemo;
921
706
  exports.getTotalPageOnAllDocuments = getTotalPageOnAllDocuments;
922
- exports.isCommentMode = isCommentMode;
923
- exports.policyNumber = policyNumber;
924
707
  exports.postFiletoDud = postFiletoDud;
925
- exports.roleCode = roleCode;
926
708
  exports.setCheckEform = setCheckEform;
927
- exports.setDisableCommentMode = setDisableCommentMode;
928
- exports.setEnableCommentMode = setEnableCommentMode;
929
709
  exports.sleep = sleep;
930
710
  exports.triggerClickOnAllDocuments = triggerClickOnAllDocuments;
931
711
  exports.triggerCropImageOnAllDocuments = triggerCropImageOnAllDocuments;
@@ -933,7 +713,5 @@ exports.triggerDraftDataByIndexList = triggerDraftDataByIndexList;
933
713
  exports.useDocumentInfo = useDocumentInfo;
934
714
  exports.useOzEventListener = useOzEventListener;
935
715
  exports.validateAllPages = validateAllPages;
936
- exports.wrapperStyle = wrapperStyle;
937
- exports.xdudheaders = xdudheaders;
938
716
  //# sourceMappingURL=index.cjs.map
939
717
  //# sourceMappingURL=index.cjs.map