sales-frontend-bridge 0.0.107 → 0.0.109
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 +22 -21
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +3 -2
- package/dist/index.d.ts +3 -2
- package/dist/index.js +22 -21
- package/dist/index.js.map +1 -1
- package/package.json +4 -4
package/dist/index.cjs
CHANGED
|
@@ -376,7 +376,8 @@ var NativeBridge = class extends CommonBridge {
|
|
|
376
376
|
* @example
|
|
377
377
|
* ```tsx
|
|
378
378
|
* // 사용 예시
|
|
379
|
-
*
|
|
379
|
+
* const ozParam = ["connection.openfile=sample.ozd"]
|
|
380
|
+
* await Bridge.native.createOZViewer({ param: ozParam.join("\n") });
|
|
380
381
|
* ```
|
|
381
382
|
*/
|
|
382
383
|
createOZViewer(options) {
|
|
@@ -392,7 +393,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
392
393
|
* @example
|
|
393
394
|
* ```tsx
|
|
394
395
|
* // 사용 예시
|
|
395
|
-
* Bridge.native.
|
|
396
|
+
* Bridge.native.hideOZViewer();
|
|
396
397
|
* ```
|
|
397
398
|
*/
|
|
398
399
|
hideOZViewer() {
|
|
@@ -432,7 +433,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
432
433
|
* await Bridge.native.downloadDocument(options)
|
|
433
434
|
* ```
|
|
434
435
|
*/
|
|
435
|
-
|
|
436
|
+
downloadDocument(options) {
|
|
436
437
|
return this.core.callToTarget("downloadDocument", options);
|
|
437
438
|
}
|
|
438
439
|
/**
|
|
@@ -444,7 +445,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
444
445
|
* await Bridge.native.getOzFontParam()
|
|
445
446
|
* ```
|
|
446
447
|
*/
|
|
447
|
-
|
|
448
|
+
getOzFontParam() {
|
|
448
449
|
return this.core.callToTarget("getOzFontParam");
|
|
449
450
|
}
|
|
450
451
|
/**
|
|
@@ -456,7 +457,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
456
457
|
* await Bridge.native.showLoader()
|
|
457
458
|
* ```
|
|
458
459
|
*/
|
|
459
|
-
|
|
460
|
+
showLoader() {
|
|
460
461
|
return this.core.callToTarget("showLoader");
|
|
461
462
|
}
|
|
462
463
|
/**
|
|
@@ -468,7 +469,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
468
469
|
* Bridge.native.hideLoader()
|
|
469
470
|
* ```
|
|
470
471
|
*/
|
|
471
|
-
|
|
472
|
+
hideLoader() {
|
|
472
473
|
return this.core.callToTarget("hideLoader");
|
|
473
474
|
}
|
|
474
475
|
/**
|
|
@@ -485,7 +486,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
485
486
|
* })
|
|
486
487
|
* ```
|
|
487
488
|
*/
|
|
488
|
-
|
|
489
|
+
showAlert(options) {
|
|
489
490
|
return this.core.callToTarget("showAlert", options);
|
|
490
491
|
}
|
|
491
492
|
/**
|
|
@@ -498,7 +499,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
498
499
|
* await Bridge.native.localFetchBridge({filePath: "/data/0/~~~/file.ext"});
|
|
499
500
|
* ```
|
|
500
501
|
*/
|
|
501
|
-
|
|
502
|
+
localFetchBridge(options) {
|
|
502
503
|
return this.core.callToTarget("localFetchBridge", options);
|
|
503
504
|
}
|
|
504
505
|
/**
|
|
@@ -510,7 +511,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
510
511
|
* await Bridge.native.contractClear({policyNumber: "300037459"});
|
|
511
512
|
* ```
|
|
512
513
|
*/
|
|
513
|
-
|
|
514
|
+
contractClear(options) {
|
|
514
515
|
return this.core.callToTarget("contractClear", options);
|
|
515
516
|
}
|
|
516
517
|
/**
|
|
@@ -740,7 +741,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
740
741
|
* const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });
|
|
741
742
|
* ```
|
|
742
743
|
*/
|
|
743
|
-
|
|
744
|
+
getInformation(options) {
|
|
744
745
|
return this.core.callToTarget("getInformation", options);
|
|
745
746
|
}
|
|
746
747
|
/**
|
|
@@ -754,7 +755,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
754
755
|
* await Bridge.nativeOz.getGlobal({ key: "AAA" })
|
|
755
756
|
* ```
|
|
756
757
|
*/
|
|
757
|
-
|
|
758
|
+
getGlobal(options) {
|
|
758
759
|
return this.core.callToTarget("getGlobal", Object.assign({ docIndex: 0 }, options));
|
|
759
760
|
}
|
|
760
761
|
/**
|
|
@@ -815,7 +816,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
815
816
|
* await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });
|
|
816
817
|
* ```
|
|
817
818
|
*/
|
|
818
|
-
|
|
819
|
+
triggerExternalEventByDocIndex(options) {
|
|
819
820
|
return this.core.callToTarget(
|
|
820
821
|
"triggerExternalEventByDocIndex",
|
|
821
822
|
Object.assign({ param1: "", param2: "", param3: "", param4: "" }, options)
|
|
@@ -830,7 +831,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
830
831
|
* await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });
|
|
831
832
|
* ```
|
|
832
833
|
*/
|
|
833
|
-
|
|
834
|
+
updateOzDocumentStatus(options) {
|
|
834
835
|
return this.core.callToTarget("updateOzDocumentStatus", options);
|
|
835
836
|
}
|
|
836
837
|
/**
|
|
@@ -854,7 +855,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
854
855
|
* });
|
|
855
856
|
* ```
|
|
856
857
|
*/
|
|
857
|
-
|
|
858
|
+
savePdf(options) {
|
|
858
859
|
return this.core.callToTarget(
|
|
859
860
|
"savePdf",
|
|
860
861
|
Object.assign({ delimiter: "\n" }, options)
|
|
@@ -869,7 +870,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
869
870
|
* await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });
|
|
870
871
|
* ```
|
|
871
872
|
*/
|
|
872
|
-
|
|
873
|
+
saveSignImg(options) {
|
|
873
874
|
return this.core.callToTarget("saveSignImg", options);
|
|
874
875
|
}
|
|
875
876
|
/**
|
|
@@ -881,7 +882,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
881
882
|
* await Bridge.nativeOz.createOzPdfViewer({ filePath: "/data/0/app/total.pdf" });
|
|
882
883
|
* ```
|
|
883
884
|
*/
|
|
884
|
-
|
|
885
|
+
createOzPdfViewer(options) {
|
|
885
886
|
return this.core.callToTarget("createOzPdfViewer", options);
|
|
886
887
|
}
|
|
887
888
|
/**
|
|
@@ -893,7 +894,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
893
894
|
* await Bridge.nativeOz.hideOzPdfViewer()
|
|
894
895
|
* ```
|
|
895
896
|
*/
|
|
896
|
-
|
|
897
|
+
hideOzPdfViewer() {
|
|
897
898
|
return this.core.callToTarget("hideOzPdfViewer");
|
|
898
899
|
}
|
|
899
900
|
/**
|
|
@@ -904,7 +905,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
904
905
|
* // 사용 예시
|
|
905
906
|
* await Bridge.nativeOz.showSignatureShortcut();
|
|
906
907
|
*/
|
|
907
|
-
|
|
908
|
+
showSignatureShortcut() {
|
|
908
909
|
return this.core.callToTarget("showSignatureShortcut");
|
|
909
910
|
}
|
|
910
911
|
/**
|
|
@@ -915,7 +916,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
915
916
|
* // 사용 예시
|
|
916
917
|
* await Bridge.nativeOz.hideSignatureShortcut();
|
|
917
918
|
*/
|
|
918
|
-
|
|
919
|
+
hideSignatureShortcut() {
|
|
919
920
|
return this.core.callToTarget("hideSignatureShortcut");
|
|
920
921
|
}
|
|
921
922
|
/**
|
|
@@ -926,7 +927,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
926
927
|
* // 사용 예시
|
|
927
928
|
* await Bridge.nativeOz.showMissingFieldWarning();
|
|
928
929
|
*/
|
|
929
|
-
|
|
930
|
+
showMissingFieldWarning() {
|
|
930
931
|
return this.core.callToTarget("showMissingFieldWarning");
|
|
931
932
|
}
|
|
932
933
|
/**
|
|
@@ -937,7 +938,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
937
938
|
* // 사용 예시
|
|
938
939
|
* await Bridge.nativeOz.hideMissingFieldWarning();
|
|
939
940
|
*/
|
|
940
|
-
|
|
941
|
+
hideMissingFieldWarning() {
|
|
941
942
|
return this.core.callToTarget("hideMissingFieldWarning");
|
|
942
943
|
}
|
|
943
944
|
// TODO: 필요 플러그인들 추가
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/common-bridge.ts","../src/common/common-bridge-core.ts","../src/iframe/core/iframe-bridge-core.ts","../src/iframe/bridge/iframe-bridge.ts","../src/native/core/native-bridge-core.ts","../src/native/bridge/native-bridge.ts","../src/native/bridge-oz/native-bridge-oz.ts","../src/bridge.ts"],"names":["isClient","getDspExecutionEnvironment","MessageEventManager","isStorybookEnv","isFpPlannerApp"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ICommonBridge } from './common-bridge.types';\n\n/**\n * Business Layer Bridge\n * 비즈니스를 호출하는(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridge implements ICommonBridge {\n protected commonHello(): void {\n console.log('commonHello');\n }\n\n abstract hello(): void;\n}\n","/**\n * Core Layer Bridge\n * Core(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridgeCore {\n /**\n * 코어에서 사용할 프로미스 ID 생성 함수\n * @returns\n */\n protected generatePromiseId(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).slice(2, 11);\n\n return `${timestamp}_${random}`;\n }\n\n /**\n * core에서 구현해야할 함수\n * @param action\n * @param options\n */\n abstract callToTarget<T>(action: string, options?: Record<string, unknown>): Promise<T>;\n}\n","import { getDspExecutionEnvironment, isClient } from 'sales-frontend-utils';\nimport { MessageEventManager } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport {\n IframeEventName,\n IframeBridgeCommand,\n IframeBridgeOptions,\n IframeBridgePromise,\n IframeBridgeResponseHandler,\n IframeBridgeResponseData\n} from './iframe-bridge-core.types';\n\n/**\n * Iframe Bridge 통신 위한 핵심 클래스\n * 담당: 부모 호출, Promise 관리\n */\nexport class IframeBridgeCore extends CommonBridgeCore {\n private pendingPromises = new Map<string, IframeBridgePromise>();\n private responseHandler?: IframeBridgeResponseHandler;\n\n constructor() {\n super();\n\n if (!isClient()) {\n return;\n }\n\n const platform = getDspExecutionEnvironment();\n if (platform !== 'iframe') {\n console.warn(`[IframeBridgeCore] iframe 환경이 아닙니다. (현재: ${platform})`);\n\n return;\n }\n\n console.log('[IframeBridgeCore] iframe 환경에서 초기화 시작');\n this.initializeIframeBridge();\n }\n\n /**\n * 사용하는 쪽에서 응답핸들러를 사용할 수 있도록 필요시, 응답 처리 핸들러 설정\n */\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.responseHandler = handler;\n }\n\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n const { promiseId, isSuccess, data } = response;\n\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n\n if (isSuccess) {\n promise.resolve(data);\n } else {\n promise.reject(new Error(data));\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * 특정 Promise 존재 여부 확인\n */\n hasPromise(promiseId: string): boolean {\n return this.pendingPromises.has(promiseId);\n }\n\n /**\n * 네이티브 통신을 위해 window.n2bridge 객체 초기화\n */\n private initializeIframeBridge(): void {\n // MessageEventManager에 핸들러 등록(영업포털-웹간 주고받기)\n MessageEventManager.getInstance().registerHandler('iframe-bridge', this.handleMessageEventResponse.bind(this));\n }\n\n /**\n * 브릿지 메시지 이벤트 핸들러\n * @param event\n */\n private handleMessageEventResponse(event: MessageEvent): void {\n const { eventName, promiseId, isSuccess, data } = event.data as IframeBridgeResponseData;\n\n console.log('[IframeBridgeCore] 메시지 받음:', { eventName, promiseId, isSuccess, data });\n\n //! 필요시 (부모 > 자식): hmpLogout(로그아웃처리), prxSessionExts(세션연장) 이벤트 구현\n // 등록된 핸들러가 있으면 실행\n if (this.responseHandler) {\n this.responseHandler({ eventName, promiseId, isSuccess, data });\n }\n\n // (부모 > 자식) 기본 Promise 처리\n if (this.pendingPromises.has(promiseId)) {\n this.handleIframeBridgePromise({ eventName, promiseId, isSuccess, data });\n }\n }\n\n /**\n * Iframe 통신\n * @param eventName\n * @param option\n * @returns\n */\n async callToTarget<T = boolean>(eventName: IframeEventName, option?: IframeBridgeOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${eventName}_${this.generatePromiseId()}`;\n\n // Promise 등록\n this.pendingPromises.set(promiseId, { resolve, reject });\n\n const { menuUrl, menuNm, ...restOption } = option ?? {};\n\n try {\n const command: IframeBridgeCommand = {\n eventName,\n promiseId,\n menuUrl,\n menuNm,\n jsonParam: { ...restOption }\n };\n\n console.log('[IframeBridgeCore callToIframe] command::', command);\n console.log('[IframeBridgeCore callToIframe] 부모 호출 직전');\n\n window.parent.postMessage(command, '*');\n\n // TODO: 부모에서 event.source.postMessage({ promiseId, isSuccess, data }); 형태로 보내줄 수 있다면 소스 삭제\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n promise.resolve(true as T);\n }\n } catch (error) {\n console.error('[IframeBridgeCore callToIframe] error::', error);\n this.pendingPromises.delete(promiseId);\n reject(error);\n }\n });\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { IframeBridgeCore } from '../core/iframe-bridge-core';\nimport { IframeBridgeResponseHandler, IframeBridgeResponseData } from '../core/iframe-bridge-core.types';\n\nimport { DspMenuWindowOpenOption, DspSimpleWindowOpen } from './iframe-bridge-options.types';\nimport { IIframeBridge } from './iframe-bridge.types';\n\n/**\n * iframe(영업포탈) 전용 Bridge\n */\nexport class IframeBridge extends CommonBridge implements IIframeBridge {\n private core: IframeBridgeCore;\n\n constructor() {\n super();\n this.core = new IframeBridgeCore();\n }\n\n // 응답 핸들러 설정\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.core.setResponseHandler(handler);\n }\n\n // Promise 직접 제어 메서드들 추가\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n return this.core.handleIframeBridgePromise(response);\n }\n\n // 유틸리티 메서드들도 추가\n hasPromise(promiseId: string): boolean {\n return this.core.hasPromise(promiseId);\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수(test)\n */\n hello(): void {\n console.log('[IframeBridge] hello');\n }\n\n /**\n * 영업포털 부모의 세션연장, 오픈되어 있는 타 시스템 세션타임 연장\n * @returns\n */\n async dspKeepCallerSession(): Promise<boolean> {\n return this.core.callToTarget('dspKeepCallerSession');\n }\n\n /**\n * 영업포털 메뉴정보에 있는 메뉴 오픈(새탭 생성)\n * @param option\n * @returns\n */\n async dspMenuWindowOpen(option: DspMenuWindowOpenOption): Promise<boolean> {\n return this.core.callToTarget('dspMenuWindowOpen', option);\n }\n\n /**\n * 영업포털 메뉴정보에 없는 메뉴를 오픈(새탭 생성 & 약속된 타켓 메뉴정보를 해당 시스템에 전달)\n * @param option\n * @returns\n */\n async dspSimpleWindowOpen(option: DspSimpleWindowOpen): Promise<boolean> {\n return this.core.callToTarget('dspSimpleWindowOpen', option);\n }\n // TODO: 필요 플러그인들 추가\n}\n","import { getDspExecutionEnvironment, isClient, isStorybookEnv, isFpPlannerApp } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport type {\n NativeBridgeCommand,\n NativeBridgePromise,\n NativeBridgeOptions,\n PromiseHandleBridge,\n CallBridge\n} from './native-bridge-core.types';\n\n/**\n * Native <-> Web 처리를 위한 핵심 클래스\n * 담당: 앱 호출, Promise 관리\n */\nexport class NativeBridgeCore<TAction extends string> extends CommonBridgeCore {\n private promiseHandleName: string;\n private callBridgeName: string;\n\n constructor(callBridgeName = 'n2Bridge', promiseHandleName = 'n2bridge') {\n super();\n\n this.callBridgeName = callBridgeName;\n this.promiseHandleName = promiseHandleName;\n\n this.initializeWindowOzBridge();\n }\n\n /**\n * Promise 관리용 브릿지 객체 가져오기 (window.n2bridge)\n */\n private getPromiseHandleBridge(): PromiseHandleBridge {\n return (window as any)[this.promiseHandleName] as PromiseHandleBridge;\n }\n\n /**\n * 앱 호출용 브릿지 객체 가져오기 (window.n2Bridge)\n */\n private getCallBridge(): CallBridge {\n return (window as any)[this.callBridgeName] as CallBridge;\n }\n\n /**\n * 네이티브 통신을 위해 window.n2OzBridge 객체 초기화\n */\n private initializeWindowOzBridge(): void {\n if (!isClient()) {\n return;\n } // SSR 환경에서는 아무것도 하지 않음\n if (!(window as any)[this.promiseHandleName]) {\n (window as any)[this.promiseHandleName] = {\n promises: {},\n resolvePromise: () => {},\n finallyResolvePromise: () => {},\n callFromNative: () => {}\n };\n }\n\n const bridge = this.getPromiseHandleBridge();\n\n // 항상 최신 함수로 업데이트\n bridge.resolvePromise = this.createResolvePromiseHandler();\n bridge.finallyResolvePromise = this.createFinallyResolvePromiseHandler();\n\n if (isStorybookEnv() && window.parent) {\n // 스토리북에서는 현재 스토리가 iframe으로 로드되므로 앱에서 부모 프레임에 브릿지를 리턴해도 자식으로 전달되도록 보정하는 코드\n (window.parent as any)[this.promiseHandleName] = bridge;\n window.parent.dispatchEvent = (...args) => window.dispatchEvent.apply(null, args);\n }\n }\n\n /**\n * Promise 처리 함수(Native에서 호출)\n * @returns\n */\n private createResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n console.log('[NativeBridgeCore resolvePromise]::', promiseId, data, error);\n\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * Promise 최종 처리 함수\n * @returns\n */\n private createFinallyResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * 네이티브 통신\n * @param action\n * @param options\n * @returns\n */\n async callToTarget<T>(action: TAction, option: NativeBridgeOptions = {}): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${action}_${this.generatePromiseId()}`;\n console.log('[NativeBridgeCore callToNative] promiseId::', promiseId);\n\n const bridge = this.getPromiseHandleBridge();\n\n // 바로 window.promiseHandler에 promises에 저장\n bridge.promises[promiseId] = {\n resolve: (value: T) => {\n resolve(value);\n },\n reject: (reason?: any) => {\n reject(reason);\n }\n };\n\n try {\n const command: NativeBridgeCommand = {\n action,\n promiseId,\n option\n };\n\n console.log('[NativeBridgeCore callToNative] command::', command);\n\n const platform = getDspExecutionEnvironment();\n\n if (platform === 'android-webview') {\n const callBridge = this.getCallBridge();\n callBridge?.callFromWeb?.(JSON.stringify(command));\n\n return;\n }\n\n if (platform === 'ios-webview') {\n const message = isFpPlannerApp()\n ? { ...command, service: 'native' } // 플래너: service 추가\n : command;\n\n (window.webkit?.messageHandlers as any)?.[this.callBridgeName]?.postMessage(JSON.stringify(message));\n\n return;\n }\n\n // 지원하지 않는 플랫폼\n console.warn(\n `[NativeBridgeCore callToNative] 현재 플랫폼(${platform})에서는 지원하지 않는 서비스(${action})입니다.`\n );\n this.cleanupPromise(promiseId);\n reject(new Error(`[NativeBridgeCore callToNative] Unsupported platform: ${platform}`));\n } catch (error) {\n console.error('[NativeBridgeCore callToNative] error::', error);\n this.cleanupPromise(promiseId);\n reject(error);\n }\n });\n }\n\n /**\n * promiseId를 초기화 해줍니다.\n * @param promiseId\n */\n private cleanupPromise(promiseId: string): void {\n const bridge = this.getPromiseHandleBridge();\n delete bridge.promises[promiseId];\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n OnAuthenticationResultRequest,\n OnAuthenticationResultResponse,\n GetAccessTokenResponse,\n GetAnalyticsUserPropertyResponse,\n GetOzFontParamResponse,\n GetAppInfoResponse,\n DocumentCaptureResponse,\n RefreshAccessTokenResponse,\n DudExternalFileUploadResponse\n} from './native-bridge-dto.types';\nimport type {\n CommonOzBridgetResponseType,\n DownloadOzdOptions,\n OpenBrowserOptions,\n CreateOZViewerOptions,\n OpenWebOptions,\n localFetchBridgeOptions,\n SetHeaderTitleOptions,\n HideHeaderOptions,\n contractClearOptions,\n SetBackNavigationEnabledOptions,\n DudExternalFileUploadOptions,\n DocumentCaptureOptions,\n ShowAlertOptions\n} from './native-bridge-options.types';\nimport type { INativeBridge, NativeAction } from './native-bridge.types';\n\n/**\n * App - Web Bridge\n */\nexport class NativeBridge extends CommonBridge implements INativeBridge {\n private core: NativeBridgeCore<NativeAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeAction>();\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * getParameterMap\n * @returns\n */\n async getParameterMap<T = any>(): Promise<T> {\n return this.core.callToTarget<T>('getParameterMap');\n }\n\n /**\n * 기능명: 본인인증 결과 정보 넘기기\n * 목적: NXL One 에서 본인인증 결과 값을 네이티브로 넘기기 위함\n * @param options\n * @returns\n */\n async onAuthenticationResult(options: OnAuthenticationResultRequest): Promise<OnAuthenticationResultResponse> {\n return this.core.callToTarget('onAuthenticationResult', options);\n }\n\n /**\n * Access Token 가져오기\n * @returns\n */\n async getAccessToken(): Promise<GetAccessTokenResponse> {\n return this.core.callToTarget('getAccessToken');\n }\n\n /**\n * ### Bridge for Oz\n * 설정한 뷰어 파라미터를 기준으로 뷰어에 새로운 보고서를 바인딩합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.createReportEx({ param: \"connection.openfile=sample.ozd\" });\n * ```\n */\n createOZViewer(options: CreateOZViewerOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>(\n 'createOZViewer',\n // delimiter 미입력시 \\n 으로 기본값 처리\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * OZ 뷰어를 닫습니다\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideViewer();\n * ```\n */\n hideOZViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOZViewer');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 OZD를 다운받는 브릿지입니다\n * @example\n * ```tsx\n * const options = {\n * // 현재 증권번호\n * policyNumber: \"300034894\",\n * // FP 사번\n * fpInfo: { \"uniqNo\": \"2210000\" }\n * // 서식 목록들\n * data: [{\n * // 서식에 대한 정보들\n * \"name\": \"[A0010]청약서\",\n * \"complete\": false,\n * \"startPage\": 0,\n * \"endPage\": 0,\n * \"focus\": false,\n * \"doc\": [{\n * // 서식에 속한 OZD 파일들\n * \"docCode\": \"A0010\",\n * \"fileID\": \"1HLqZJCNt6idLKkAA\",\n * \"imageFormatCode\": \"RT003001\",\n * \"imageDocumentTypeCode\": \"IT00\",\n * // ozd 파일이 다운로드된 경로\n * \"filePath\": \"\",\n * \"startPage\": 0,\n * \"endPage\": 0\n * }]\n * }, ],\n * }\n * await Bridge.native.downloadDocument(options)\n * ```\n */\n async downloadDocument(options: DownloadOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<DownloadOzdOptions>>('downloadDocument', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 폰트 설정들을 조회하는 브릿지입니다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.getOzFontParam()\n * ```\n */\n async getOzFontParam() {\n return this.core.callToTarget<CommonOzBridgetResponseType<GetOzFontParamResponse>>('getOzFontParam');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 show\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showLoader()\n * ```\n */\n async showLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showLoader');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideLoader()\n * ```\n */\n async hideLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideLoader');\n }\n /**\n * ### Bridge for Oz\n * Alert 표시용 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showAlert({\n * title: '모달 타이틀',\n * message: '모달 내용',\n * // 모달에 표시할 버튼들 설정\n * buttons: { close: false, main: \"확인\" }\n * })\n * ```\n */\n async showAlert(options: ShowAlertOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<keyof ShowAlertOptions[\"buttons\"]>>('showAlert', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬에 있는 파일을 fetch하기 위한 url을 만들어주는 브릿지\n *\n * 파일의 절대경로는 saveSignImg 혹은 pdfExport시 확보할수 있다\n * @example\n * ```tsx\n * await Bridge.native.localFetchBridge({filePath: \"/data/0/~~~/file.ext\"});\n * ```\n */\n async localFetchBridge(options: localFetchBridgeOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('localFetchBridge', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬의 특정 증번 폴더를 삭제한다(청약 완료 후 사용)\n *\n * @example\n * ```tsx\n * await Bridge.native.contractClear({policyNumber: \"300037459\"});\n * ```\n */\n async contractClear(options: contractClearOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('contractClear', options);\n }\n\n /**\n * 홈 이동\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.goHome()\n * ```\n */\n goHome(): Promise<string> {\n return this.core.callToTarget('goHome');\n }\n\n /**\n * 전체메뉴 열기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.showMenu()\n * ```\n */\n showMenu(): Promise<string> {\n return this.core.callToTarget('showMenu');\n }\n\n /**\n * GA4 정보 얻기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n getAnalyticsUserProperty(): Promise<GetAnalyticsUserPropertyResponse> {\n return this.core.callToTarget('getAnalyticsUserProperty');\n }\n\n /**\n *외부 브라우저 호출\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n openBrowser(options: OpenBrowserOptions): Promise<string> {\n return this.core.callToTarget('openBrowser', options);\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideWebPopup()\n * ```\n */\n hideWebPopup(): Promise<string> {\n return this.core.callToTarget('hideWebPopup');\n }\n\n /**\n * OnePass 인증\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.requestAuthentication()\n * ```\n */\n requestAuthentication(): Promise<string> {\n return this.core.callToTarget('requestAuthentication');\n }\n\n /**\n * 웹뷰 띄우기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.openWeb({ url: 'url', headerTitle: '타이틀', headerType: 'APP', removeNavStack: true });\n * ```\n */\n openWeb({ headerType = 'APP', removeNavStack = false, ...rest }: OpenWebOptions): Promise<string> {\n return this.core.callToTarget('openWeb', { headerType, removeNavStack, ...rest });\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.closeWeb()\n * ```\n */\n closeWeb(): Promise<string> {\n return this.core.callToTarget('closeWeb');\n }\n\n /**\n * 앱 종료\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.exitApp()\n * ```\n */\n exitApp(): Promise<string> {\n return this.core.callToTarget('exitApp');\n }\n\n /**\n * 앱 정보 가져오기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAppInfo()\n * ```\n */\n getAppInfo(): Promise<GetAppInfoResponse> {\n return this.core.callToTarget('getAppInfo');\n }\n\n /**\n * 네이티브 헤더 타이틀 변경\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.setHeaderTitle({ headerTitle: '타이틀명' });\n * ```\n */\n setHeaderTitle(options: SetHeaderTitleOptions): Promise<string> {\n return this.core.callToTarget('setHeaderTitle', options);\n }\n\n /**\n * 네이티브 헤더 show / hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideHeader({ hideHeader: true });\n * ```\n */\n hideHeader(options: HideHeaderOptions): Promise<string> {\n return this.core.callToTarget('hideHeader', options);\n }\n\n /**\n * 네이티브 서류첨부 시 카메라 호출\n * @example\n * ```tsx\n * // 사용 예시\n * const { uri } = await Bridge.native.documentCapture();\n * ```\n */\n documentCapture(options?: DocumentCaptureOptions): Promise<DocumentCaptureResponse> {\n return this.core.callToTarget('documentCapture', options);\n }\n\n /**\n * 뒤로가기 on/off\n * 안드로이드 백키, iOS 스와이프 백 on/off\n * 백키로 종료되지 않아야 할 화면에서 사용 (청약 최종제출 등 업로드 / 중요 데이터 처리 등)\n *\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.setBackNavigationEnabled({ enableBackNav: true });\n * ```\n */\n setBackNavigationEnabled(options: SetBackNavigationEnabledOptions): Promise<string> {\n return this.core.callToTarget('setBackNavigationEnabled', options);\n }\n\n /**\n * 401 발생 시 앱에 갱신된 토큰을 요청하여 받음\n * 갱신 요청은 정확하게 한번만 요청 해야 함\n * 웹에서 여러 API 를 병렬로 동시에 호출 하는 케이스 등 AT 갱신은 정확하게 한번만 요청 해야 함!\n * 해당 브릿지에서 오류가 발생하는 케이스는 더 이상 앱 사용 불가 케이스 > 앱에서 처리\n *\n * @example\n * ```tsx\n * // 사용 예시\n * const { accessToken, tokenType } = await Bridge.native.refreshAccessToken();\n * ```\n */\n refreshAccessToken(): Promise<RefreshAccessTokenResponse> {\n return this.core.callToTarget('refreshAccessToken');\n }\n\n /**\n * DUD 외부 파일 업로드\n *\n * 단일 파일을 네이티브 영역으로 전달하여 DUD로 업로드합니다.\n * 네이티브에서 DUD API 호출 후 응답 DTO를 가공하지 않고 그대로 반환합니다.\n *\n * @param options - 파일 경로와 요청 헤더\n * @returns DUD 파일 업로드 응답 (dudFileMgmtId 포함)\n *\n * @example\n * ```tsx\n * const result = await Bridge.native.dudExternalFileUpload({\n * filePath: \"/data/0/OZRV/3000123123/TOTAL.pdf\",\n * headers: {\n * 'x-channel-business-work-division-code': businessWorkDivisionCode,\n * Authorization: token,\n * },\n * });\n *\n * if (result.isSuccess) {\n * console.log('업로드 성공:', result.data.dudFileMgmtId);\n * }\n * ```\n */\n dudExternalFileUpload(\n options: DudExternalFileUploadOptions\n ): Promise<CommonOzBridgetResponseType<DudExternalFileUploadResponse>> {\n return this.core.callToTarget('dudExternalFileUpload', options);\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { CommonOzBridgetResponseType } from '../bridge/native-bridge-options.types';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n GetInformationOptions,\n GetGlobalOptions,\n SetGlobalOptions,\n ScriptExOptions,\n ScriptOptions,\n TriggerExternalEventByDocIndexOptions,\n SavePdfOptions,\n SaveSignImgOptions,\n UpdateOzdOptions,\n createOzPdfViewerOptions\n} from './native-bridge-oz-options.types';\nimport type { INativeBridgeOz, NativeOzAction } from './native-bridge-oz.types';\n\n/**\n * App - Web Bridge(for OZ)\n */\nexport class NativeBridgeOz extends CommonBridge implements INativeBridgeOz {\n private core: NativeBridgeCore<NativeOzAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeOzAction>('n2OzBridge', 'n2ozBridge');\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 정보를 가져옵니다\n * @example\n * ```tsx\n * // 사용 예시:\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * // 리턴값이 null이 나올수 있음\n * const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });\n * ```\n */\n async getInformation(options: GetInformationOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getInformation', options);\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 가져옵니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * await Bridge.nativeOz.getGlobal({ key: \"AAA\" })\n * ```\n */\n async getGlobal(options: GetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 설정합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // value 자리에 string이 아닌 값을 넣어도 getGlobal시 string으로 변환되어 리턴됩니다\n * Bridge.nativeOz.setGlobal({ key: \"AAA\", value: \"myValue\" });\n * ```\n */\n setGlobal(options: SetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<boolean | null>>('setGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * Bridge.nativeOz.script({ command });\n * ```\n */\n script(options: ScriptOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('script', options);\n }\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * - `param`을 통해 오즈 뷰어의 parameter를 변경할수 있습니다\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * const param1 = `eform.show_prev_next_input=true`;\n * const param2 = `eform.signpad_iconposition=sign_bottom`;\n * // param이 여러개인경우 \\n으로 묶는다\n * const param = `${param1}\\n${param2}`;\n * Bridge.nativeOz.scriptEX({ command, param });\n * ```\n */\n scriptEx(options: ScriptExOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'scriptEx',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 지정한 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.\n * - 서명이미지 크롭\n * - 중간저장 서명이미지 추출\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });\n * ```\n */\n async triggerExternalEventByDocIndex(options: TriggerExternalEventByDocIndexOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>(\n 'triggerExternalEventByDocIndex',\n Object.assign({ param1: '', param2: '', param3: '', param4: '' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 서식의 진행중/완료 상태를 업데이트하는 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });\n * ```\n */\n async updateOzDocumentStatus(options: UpdateOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('updateOzDocumentStatus', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식을 PDF로 export 요청\n * export 결과는 `OZViewerEvent.OZExportCommand`로 트리거 된다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.savePdf({\n * // PDF 저장은 증번폴더/파일이름.pdf로 생성\n * policyNumber,\n * param: [\n * // 저장할 파일명 설정\n * `pdf.filename=${fileName}.pdf`,\n * // 1페이지부터 마지막 페이지까지 저장\n * `export.pages=${startPage}-${endPage}`,\n * // 공통 PDF 내보내기 파라미터 추가\n * ...commonPdfExportParam\n * ].join('\\n')\n * });\n * ```\n */\n async savePdf(options: SavePdfOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'savePdf',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식 중 서명부분을 이미지로 export\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });\n * ```\n */\n async saveSignImg(options: SaveSignImgOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('saveSignImg', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에서 생성한 PDF를 보여주는 뷰어를 연다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.createOzPdfViewer({ filePath: \"/data/0/app/total.pdf\" });\n * ```\n */\n async createOzPdfViewer(options: createOzPdfViewerOptions) {\n // 비밀번호는 입력안하면 빈값으로 보낸다\n return this.core.callToTarget<CommonOzBridgetResponseType>('createOzPdfViewer', options);\n }\n\n /**\n * ### Bridge for Oz\n * PDF뷰어 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideOzPdfViewer()\n * ```\n */\n async hideOzPdfViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOzPdfViewer');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showSignatureShortcut();\n */\n async showSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideSignatureShortcut();\n */\n async hideSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showMissingFieldWarning();\n */\n async showMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showMissingFieldWarning');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideMissingFieldWarning();\n */\n async hideMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideMissingFieldWarning');\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { IframeBridge } from './iframe/bridge/iframe-bridge';\nimport { IframeBridgeCore } from './iframe/core/iframe-bridge-core';\nimport { NativeBridge } from './native/bridge/native-bridge';\nimport { NativeBridgeOz } from './native/bridge-oz/native-bridge-oz';\nimport { NativeBridgeCore } from './native/core/native-bridge-core';\n\nexport const Bridge = {\n native: new NativeBridge(),\n nativeOz: new NativeBridgeOz(),\n iframe: new IframeBridge(),\n nativeCore: new NativeBridgeCore(),\n iframeCore: new IframeBridgeCore()\n};\n\nexport type * from './native/bridge/native-bridge-dto.types';\nexport type * from \"./native/bridge/native-bridge-options.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-dto.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-options.types\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/common-bridge.ts","../src/common/common-bridge-core.ts","../src/iframe/core/iframe-bridge-core.ts","../src/iframe/bridge/iframe-bridge.ts","../src/native/core/native-bridge-core.ts","../src/native/bridge/native-bridge.ts","../src/native/bridge-oz/native-bridge-oz.ts","../src/bridge.ts"],"names":["isClient","getDspExecutionEnvironment","MessageEventManager","isStorybookEnv","isFpPlannerApp"],"mappings":"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","file":"index.cjs","sourcesContent":["import { ICommonBridge } from './common-bridge.types';\n\n/**\n * Business Layer Bridge\n * 비즈니스를 호출하는(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridge implements ICommonBridge {\n protected commonHello(): void {\n console.log('commonHello');\n }\n\n abstract hello(): void;\n}\n","/**\n * Core Layer Bridge\n * Core(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridgeCore {\n /**\n * 코어에서 사용할 프로미스 ID 생성 함수\n * @returns\n */\n protected generatePromiseId(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).slice(2, 11);\n\n return `${timestamp}_${random}`;\n }\n\n /**\n * core에서 구현해야할 함수\n * @param action\n * @param options\n */\n abstract callToTarget<T>(action: string, options?: Record<string, unknown>): Promise<T>;\n}\n","import { getDspExecutionEnvironment, isClient } from 'sales-frontend-utils';\nimport { MessageEventManager } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport {\n IframeEventName,\n IframeBridgeCommand,\n IframeBridgeOptions,\n IframeBridgePromise,\n IframeBridgeResponseHandler,\n IframeBridgeResponseData\n} from './iframe-bridge-core.types';\n\n/**\n * Iframe Bridge 통신 위한 핵심 클래스\n * 담당: 부모 호출, Promise 관리\n */\nexport class IframeBridgeCore extends CommonBridgeCore {\n private pendingPromises = new Map<string, IframeBridgePromise>();\n private responseHandler?: IframeBridgeResponseHandler;\n\n constructor() {\n super();\n\n if (!isClient()) {\n return;\n }\n\n const platform = getDspExecutionEnvironment();\n if (platform !== 'iframe') {\n console.warn(`[IframeBridgeCore] iframe 환경이 아닙니다. (현재: ${platform})`);\n\n return;\n }\n\n console.log('[IframeBridgeCore] iframe 환경에서 초기화 시작');\n this.initializeIframeBridge();\n }\n\n /**\n * 사용하는 쪽에서 응답핸들러를 사용할 수 있도록 필요시, 응답 처리 핸들러 설정\n */\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.responseHandler = handler;\n }\n\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n const { promiseId, isSuccess, data } = response;\n\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n\n if (isSuccess) {\n promise.resolve(data);\n } else {\n promise.reject(new Error(data));\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * 특정 Promise 존재 여부 확인\n */\n hasPromise(promiseId: string): boolean {\n return this.pendingPromises.has(promiseId);\n }\n\n /**\n * 네이티브 통신을 위해 window.n2bridge 객체 초기화\n */\n private initializeIframeBridge(): void {\n // MessageEventManager에 핸들러 등록(영업포털-웹간 주고받기)\n MessageEventManager.getInstance().registerHandler('iframe-bridge', this.handleMessageEventResponse.bind(this));\n }\n\n /**\n * 브릿지 메시지 이벤트 핸들러\n * @param event\n */\n private handleMessageEventResponse(event: MessageEvent): void {\n const { eventName, promiseId, isSuccess, data } = event.data as IframeBridgeResponseData;\n\n console.log('[IframeBridgeCore] 메시지 받음:', { eventName, promiseId, isSuccess, data });\n\n //! 필요시 (부모 > 자식): hmpLogout(로그아웃처리), prxSessionExts(세션연장) 이벤트 구현\n // 등록된 핸들러가 있으면 실행\n if (this.responseHandler) {\n this.responseHandler({ eventName, promiseId, isSuccess, data });\n }\n\n // (부모 > 자식) 기본 Promise 처리\n if (this.pendingPromises.has(promiseId)) {\n this.handleIframeBridgePromise({ eventName, promiseId, isSuccess, data });\n }\n }\n\n /**\n * Iframe 통신\n * @param eventName\n * @param option\n * @returns\n */\n async callToTarget<T = boolean>(eventName: IframeEventName, option?: IframeBridgeOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${eventName}_${this.generatePromiseId()}`;\n\n // Promise 등록\n this.pendingPromises.set(promiseId, { resolve, reject });\n\n const { menuUrl, menuNm, ...restOption } = option ?? {};\n\n try {\n const command: IframeBridgeCommand = {\n eventName,\n promiseId,\n menuUrl,\n menuNm,\n jsonParam: { ...restOption }\n };\n\n console.log('[IframeBridgeCore callToIframe] command::', command);\n console.log('[IframeBridgeCore callToIframe] 부모 호출 직전');\n\n window.parent.postMessage(command, '*');\n\n // TODO: 부모에서 event.source.postMessage({ promiseId, isSuccess, data }); 형태로 보내줄 수 있다면 소스 삭제\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n promise.resolve(true as T);\n }\n } catch (error) {\n console.error('[IframeBridgeCore callToIframe] error::', error);\n this.pendingPromises.delete(promiseId);\n reject(error);\n }\n });\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { IframeBridgeCore } from '../core/iframe-bridge-core';\nimport { IframeBridgeResponseHandler, IframeBridgeResponseData } from '../core/iframe-bridge-core.types';\n\nimport { DspMenuWindowOpenOption, DspSimpleWindowOpen } from './iframe-bridge-options.types';\nimport { IIframeBridge } from './iframe-bridge.types';\n\n/**\n * iframe(영업포탈) 전용 Bridge\n */\nexport class IframeBridge extends CommonBridge implements IIframeBridge {\n private core: IframeBridgeCore;\n\n constructor() {\n super();\n this.core = new IframeBridgeCore();\n }\n\n // 응답 핸들러 설정\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.core.setResponseHandler(handler);\n }\n\n // Promise 직접 제어 메서드들 추가\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n return this.core.handleIframeBridgePromise(response);\n }\n\n // 유틸리티 메서드들도 추가\n hasPromise(promiseId: string): boolean {\n return this.core.hasPromise(promiseId);\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수(test)\n */\n hello(): void {\n console.log('[IframeBridge] hello');\n }\n\n /**\n * 영업포털 부모의 세션연장, 오픈되어 있는 타 시스템 세션타임 연장\n * @returns\n */\n async dspKeepCallerSession(): Promise<boolean> {\n return this.core.callToTarget('dspKeepCallerSession');\n }\n\n /**\n * 영업포털 메뉴정보에 있는 메뉴 오픈(새탭 생성)\n * @param option\n * @returns\n */\n async dspMenuWindowOpen(option: DspMenuWindowOpenOption): Promise<boolean> {\n return this.core.callToTarget('dspMenuWindowOpen', option);\n }\n\n /**\n * 영업포털 메뉴정보에 없는 메뉴를 오픈(새탭 생성 & 약속된 타켓 메뉴정보를 해당 시스템에 전달)\n * @param option\n * @returns\n */\n async dspSimpleWindowOpen(option: DspSimpleWindowOpen): Promise<boolean> {\n return this.core.callToTarget('dspSimpleWindowOpen', option);\n }\n // TODO: 필요 플러그인들 추가\n}\n","import { getDspExecutionEnvironment, isClient, isStorybookEnv, isFpPlannerApp } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport type {\n NativeBridgeCommand,\n NativeBridgePromise,\n NativeBridgeOptions,\n PromiseHandleBridge,\n CallBridge\n} from './native-bridge-core.types';\n\n/**\n * Native <-> Web 처리를 위한 핵심 클래스\n * 담당: 앱 호출, Promise 관리\n */\nexport class NativeBridgeCore<TAction extends string> extends CommonBridgeCore {\n private promiseHandleName: string;\n private callBridgeName: string;\n\n constructor(callBridgeName = 'n2Bridge', promiseHandleName = 'n2bridge') {\n super();\n\n this.callBridgeName = callBridgeName;\n this.promiseHandleName = promiseHandleName;\n\n this.initializeWindowOzBridge();\n }\n\n /**\n * Promise 관리용 브릿지 객체 가져오기 (window.n2bridge)\n */\n private getPromiseHandleBridge(): PromiseHandleBridge {\n return (window as any)[this.promiseHandleName] as PromiseHandleBridge;\n }\n\n /**\n * 앱 호출용 브릿지 객체 가져오기 (window.n2Bridge)\n */\n private getCallBridge(): CallBridge {\n return (window as any)[this.callBridgeName] as CallBridge;\n }\n\n /**\n * 네이티브 통신을 위해 window.n2OzBridge 객체 초기화\n */\n private initializeWindowOzBridge(): void {\n if (!isClient()) {\n return;\n } // SSR 환경에서는 아무것도 하지 않음\n if (!(window as any)[this.promiseHandleName]) {\n (window as any)[this.promiseHandleName] = {\n promises: {},\n resolvePromise: () => {},\n finallyResolvePromise: () => {},\n callFromNative: () => {}\n };\n }\n\n const bridge = this.getPromiseHandleBridge();\n\n // 항상 최신 함수로 업데이트\n bridge.resolvePromise = this.createResolvePromiseHandler();\n bridge.finallyResolvePromise = this.createFinallyResolvePromiseHandler();\n\n if (isStorybookEnv() && window.parent) {\n // 스토리북에서는 현재 스토리가 iframe으로 로드되므로 앱에서 부모 프레임에 브릿지를 리턴해도 자식으로 전달되도록 보정하는 코드\n (window.parent as any)[this.promiseHandleName] = bridge;\n window.parent.dispatchEvent = (...args) => window.dispatchEvent.apply(null, args);\n }\n }\n\n /**\n * Promise 처리 함수(Native에서 호출)\n * @returns\n */\n private createResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n console.log('[NativeBridgeCore resolvePromise]::', promiseId, data, error);\n\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * Promise 최종 처리 함수\n * @returns\n */\n private createFinallyResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * 네이티브 통신\n * @param action\n * @param options\n * @returns\n */\n async callToTarget<T>(action: TAction, option: NativeBridgeOptions = {}): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${action}_${this.generatePromiseId()}`;\n console.log('[NativeBridgeCore callToNative] promiseId::', promiseId);\n\n const bridge = this.getPromiseHandleBridge();\n\n // 바로 window.promiseHandler에 promises에 저장\n bridge.promises[promiseId] = {\n resolve: (value: T) => {\n resolve(value);\n },\n reject: (reason?: any) => {\n reject(reason);\n }\n };\n\n try {\n const command: NativeBridgeCommand = {\n action,\n promiseId,\n option\n };\n\n console.log('[NativeBridgeCore callToNative] command::', command);\n\n const platform = getDspExecutionEnvironment();\n\n if (platform === 'android-webview') {\n const callBridge = this.getCallBridge();\n callBridge?.callFromWeb?.(JSON.stringify(command));\n\n return;\n }\n\n if (platform === 'ios-webview') {\n const message = isFpPlannerApp()\n ? { ...command, service: 'native' } // 플래너: service 추가\n : command;\n\n (window.webkit?.messageHandlers as any)?.[this.callBridgeName]?.postMessage(JSON.stringify(message));\n\n return;\n }\n\n // 지원하지 않는 플랫폼\n console.warn(\n `[NativeBridgeCore callToNative] 현재 플랫폼(${platform})에서는 지원하지 않는 서비스(${action})입니다.`\n );\n this.cleanupPromise(promiseId);\n reject(new Error(`[NativeBridgeCore callToNative] Unsupported platform: ${platform}`));\n } catch (error) {\n console.error('[NativeBridgeCore callToNative] error::', error);\n this.cleanupPromise(promiseId);\n reject(error);\n }\n });\n }\n\n /**\n * promiseId를 초기화 해줍니다.\n * @param promiseId\n */\n private cleanupPromise(promiseId: string): void {\n const bridge = this.getPromiseHandleBridge();\n delete bridge.promises[promiseId];\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n OnAuthenticationResultRequest,\n OnAuthenticationResultResponse,\n GetAccessTokenResponse,\n GetAnalyticsUserPropertyResponse,\n GetOzFontParamResponse,\n GetAppInfoResponse,\n DocumentCaptureResponse,\n RefreshAccessTokenResponse,\n DudExternalFileUploadResponse\n} from './native-bridge-dto.types';\nimport type {\n CommonOzBridgetResponseType,\n DownloadOzdOptions,\n OpenBrowserOptions,\n CreateOZViewerOptions,\n OpenWebOptions,\n localFetchBridgeOptions,\n SetHeaderTitleOptions,\n HideHeaderOptions,\n contractClearOptions,\n SetBackNavigationEnabledOptions,\n DudExternalFileUploadOptions,\n DocumentCaptureOptions,\n ShowAlertOptions\n} from './native-bridge-options.types';\nimport type { INativeBridge, NativeAction } from './native-bridge.types';\n\n/**\n * App - Web Bridge\n */\nexport class NativeBridge extends CommonBridge implements INativeBridge {\n private core: NativeBridgeCore<NativeAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeAction>();\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * getParameterMap\n * @returns\n */\n async getParameterMap<T = any>(): Promise<T> {\n return this.core.callToTarget<T>('getParameterMap');\n }\n\n /**\n * 기능명: 본인인증 결과 정보 넘기기\n * 목적: NXL One 에서 본인인증 결과 값을 네이티브로 넘기기 위함\n * @param options\n * @returns\n */\n async onAuthenticationResult(options: OnAuthenticationResultRequest): Promise<OnAuthenticationResultResponse> {\n return this.core.callToTarget('onAuthenticationResult', options);\n }\n\n /**\n * Access Token 가져오기\n * @returns\n */\n async getAccessToken(): Promise<GetAccessTokenResponse> {\n return this.core.callToTarget('getAccessToken');\n }\n\n /**\n * ### Bridge for Oz\n * 설정한 뷰어 파라미터를 기준으로 뷰어에 새로운 보고서를 바인딩합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const ozParam = [\"connection.openfile=sample.ozd\"]\n * await Bridge.native.createOZViewer({ param: ozParam.join(\"\\n\") });\n * ```\n */\n createOZViewer(options: CreateOZViewerOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>(\n 'createOZViewer',\n // delimiter 미입력시 \\n 으로 기본값 처리\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * OZ 뷰어를 닫습니다\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideOZViewer();\n * ```\n */\n hideOZViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOZViewer');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 OZD를 다운받는 브릿지입니다\n * @example\n * ```tsx\n * const options = {\n * // 현재 증권번호\n * policyNumber: \"300034894\",\n * // FP 사번\n * fpInfo: { \"uniqNo\": \"2210000\" }\n * // 서식 목록들\n * data: [{\n * // 서식에 대한 정보들\n * \"name\": \"[A0010]청약서\",\n * \"complete\": false,\n * \"startPage\": 0,\n * \"endPage\": 0,\n * \"focus\": false,\n * \"doc\": [{\n * // 서식에 속한 OZD 파일들\n * \"docCode\": \"A0010\",\n * \"fileID\": \"1HLqZJCNt6idLKkAA\",\n * \"imageFormatCode\": \"RT003001\",\n * \"imageDocumentTypeCode\": \"IT00\",\n * // ozd 파일이 다운로드된 경로\n * \"filePath\": \"\",\n * \"startPage\": 0,\n * \"endPage\": 0\n * }]\n * }, ],\n * }\n * await Bridge.native.downloadDocument(options)\n * ```\n */\n downloadDocument(options: DownloadOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<DownloadOzdOptions>>('downloadDocument', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 폰트 설정들을 조회하는 브릿지입니다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.getOzFontParam()\n * ```\n */\n getOzFontParam() {\n return this.core.callToTarget<CommonOzBridgetResponseType<GetOzFontParamResponse>>('getOzFontParam');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 show\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showLoader()\n * ```\n */\n showLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showLoader');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideLoader()\n * ```\n */\n hideLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideLoader');\n }\n /**\n * ### Bridge for Oz\n * Alert 표시용 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showAlert({\n * title: '모달 타이틀',\n * message: '모달 내용',\n * // 모달에 표시할 버튼들 설정\n * buttons: { close: false, main: \"확인\" }\n * })\n * ```\n */\n showAlert(options: ShowAlertOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<keyof ShowAlertOptions[\"buttons\"]>>('showAlert', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬에 있는 파일을 fetch하기 위한 url을 만들어주는 브릿지\n *\n * 파일의 절대경로는 saveSignImg 혹은 pdfExport시 확보할수 있다\n * @example\n * ```tsx\n * await Bridge.native.localFetchBridge({filePath: \"/data/0/~~~/file.ext\"});\n * ```\n */\n localFetchBridge(options: localFetchBridgeOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('localFetchBridge', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬의 특정 증번 폴더를 삭제한다(청약 완료 후 사용)\n *\n * @example\n * ```tsx\n * await Bridge.native.contractClear({policyNumber: \"300037459\"});\n * ```\n */\n contractClear(options: contractClearOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('contractClear', options);\n }\n\n /**\n * 홈 이동\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.goHome()\n * ```\n */\n goHome(): Promise<string> {\n return this.core.callToTarget('goHome');\n }\n\n /**\n * 전체메뉴 열기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.showMenu()\n * ```\n */\n showMenu(): Promise<string> {\n return this.core.callToTarget('showMenu');\n }\n\n /**\n * GA4 정보 얻기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n getAnalyticsUserProperty(): Promise<GetAnalyticsUserPropertyResponse> {\n return this.core.callToTarget('getAnalyticsUserProperty');\n }\n\n /**\n *외부 브라우저 호출\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n openBrowser(options: OpenBrowserOptions): Promise<string> {\n return this.core.callToTarget('openBrowser', options);\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideWebPopup()\n * ```\n */\n hideWebPopup(): Promise<string> {\n return this.core.callToTarget('hideWebPopup');\n }\n\n /**\n * OnePass 인증\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.requestAuthentication()\n * ```\n */\n requestAuthentication(): Promise<string> {\n return this.core.callToTarget('requestAuthentication');\n }\n\n /**\n * 웹뷰 띄우기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.openWeb({ url: 'url', headerTitle: '타이틀', headerType: 'APP', removeNavStack: true });\n * ```\n */\n openWeb({ headerType = 'APP', removeNavStack = false, ...rest }: OpenWebOptions): Promise<string> {\n return this.core.callToTarget('openWeb', { headerType, removeNavStack, ...rest });\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.closeWeb()\n * ```\n */\n closeWeb(): Promise<string> {\n return this.core.callToTarget('closeWeb');\n }\n\n /**\n * 앱 종료\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.exitApp()\n * ```\n */\n exitApp(): Promise<string> {\n return this.core.callToTarget('exitApp');\n }\n\n /**\n * 앱 정보 가져오기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAppInfo()\n * ```\n */\n getAppInfo(): Promise<GetAppInfoResponse> {\n return this.core.callToTarget('getAppInfo');\n }\n\n /**\n * 네이티브 헤더 타이틀 변경\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.setHeaderTitle({ headerTitle: '타이틀명' });\n * ```\n */\n setHeaderTitle(options: SetHeaderTitleOptions): Promise<string> {\n return this.core.callToTarget('setHeaderTitle', options);\n }\n\n /**\n * 네이티브 헤더 show / hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideHeader({ hideHeader: true });\n * ```\n */\n hideHeader(options: HideHeaderOptions): Promise<string> {\n return this.core.callToTarget('hideHeader', options);\n }\n\n /**\n * 네이티브 서류첨부 시 카메라 호출\n * @example\n * ```tsx\n * // 사용 예시\n * const { uri } = await Bridge.native.documentCapture();\n * ```\n */\n documentCapture(options?: DocumentCaptureOptions): Promise<DocumentCaptureResponse> {\n return this.core.callToTarget('documentCapture', options);\n }\n\n /**\n * 뒤로가기 on/off\n * 안드로이드 백키, iOS 스와이프 백 on/off\n * 백키로 종료되지 않아야 할 화면에서 사용 (청약 최종제출 등 업로드 / 중요 데이터 처리 등)\n *\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.setBackNavigationEnabled({ enableBackNav: true });\n * ```\n */\n setBackNavigationEnabled(options: SetBackNavigationEnabledOptions): Promise<string> {\n return this.core.callToTarget('setBackNavigationEnabled', options);\n }\n\n /**\n * 401 발생 시 앱에 갱신된 토큰을 요청하여 받음\n * 갱신 요청은 정확하게 한번만 요청 해야 함\n * 웹에서 여러 API 를 병렬로 동시에 호출 하는 케이스 등 AT 갱신은 정확하게 한번만 요청 해야 함!\n * 해당 브릿지에서 오류가 발생하는 케이스는 더 이상 앱 사용 불가 케이스 > 앱에서 처리\n *\n * @example\n * ```tsx\n * // 사용 예시\n * const { accessToken, tokenType } = await Bridge.native.refreshAccessToken();\n * ```\n */\n refreshAccessToken(): Promise<RefreshAccessTokenResponse> {\n return this.core.callToTarget('refreshAccessToken');\n }\n\n /**\n * DUD 외부 파일 업로드\n *\n * 단일 파일을 네이티브 영역으로 전달하여 DUD로 업로드합니다.\n * 네이티브에서 DUD API 호출 후 응답 DTO를 가공하지 않고 그대로 반환합니다.\n *\n * @param options - 파일 경로와 요청 헤더\n * @returns DUD 파일 업로드 응답 (dudFileMgmtId 포함)\n *\n * @example\n * ```tsx\n * const result = await Bridge.native.dudExternalFileUpload({\n * filePath: \"/data/0/OZRV/3000123123/TOTAL.pdf\",\n * headers: {\n * 'x-channel-business-work-division-code': businessWorkDivisionCode,\n * Authorization: token,\n * },\n * });\n *\n * if (result.isSuccess) {\n * console.log('업로드 성공:', result.data.dudFileMgmtId);\n * }\n * ```\n */\n dudExternalFileUpload(\n options: DudExternalFileUploadOptions\n ): Promise<CommonOzBridgetResponseType<DudExternalFileUploadResponse>> {\n return this.core.callToTarget('dudExternalFileUpload', options);\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { CommonOzBridgetResponseType } from '../bridge/native-bridge-options.types';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n GetInformationOptions,\n GetGlobalOptions,\n SetGlobalOptions,\n ScriptExOptions,\n ScriptOptions,\n TriggerExternalEventByDocIndexOptions,\n SavePdfOptions,\n SaveSignImgOptions,\n UpdateOzdOptions,\n createOzPdfViewerOptions\n} from './native-bridge-oz-options.types';\nimport type { INativeBridgeOz, NativeOzAction } from './native-bridge-oz.types';\n\n/**\n * App - Web Bridge(for OZ)\n */\nexport class NativeBridgeOz extends CommonBridge implements INativeBridgeOz {\n private core: NativeBridgeCore<NativeOzAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeOzAction>('n2OzBridge', 'n2ozBridge');\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 정보를 가져옵니다\n * @example\n * ```tsx\n * // 사용 예시:\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * // 리턴값이 null이 나올수 있음\n * const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });\n * ```\n */\n getInformation(options: GetInformationOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getInformation', options);\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 가져옵니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * await Bridge.nativeOz.getGlobal({ key: \"AAA\" })\n * ```\n */\n getGlobal(options: GetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 설정합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // value 자리에 string이 아닌 값을 넣어도 getGlobal시 string으로 변환되어 리턴됩니다\n * Bridge.nativeOz.setGlobal({ key: \"AAA\", value: \"myValue\" });\n * ```\n */\n setGlobal(options: SetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<boolean | null>>('setGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * Bridge.nativeOz.script({ command });\n * ```\n */\n script(options: ScriptOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('script', options);\n }\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * - `param`을 통해 오즈 뷰어의 parameter를 변경할수 있습니다\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * const param1 = `eform.show_prev_next_input=true`;\n * const param2 = `eform.signpad_iconposition=sign_bottom`;\n * // param이 여러개인경우 \\n으로 묶는다\n * const param = `${param1}\\n${param2}`;\n * Bridge.nativeOz.scriptEX({ command, param });\n * ```\n */\n scriptEx(options: ScriptExOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'scriptEx',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 지정한 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.\n * - 서명이미지 크롭\n * - 중간저장 서명이미지 추출\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });\n * ```\n */\n triggerExternalEventByDocIndex(options: TriggerExternalEventByDocIndexOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>(\n 'triggerExternalEventByDocIndex',\n Object.assign({ param1: '', param2: '', param3: '', param4: '' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 서식의 진행중/완료 상태를 업데이트하는 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });\n * ```\n */\n updateOzDocumentStatus(options: UpdateOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('updateOzDocumentStatus', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식을 PDF로 export 요청\n * export 결과는 `OZViewerEvent.OZExportCommand`로 트리거 된다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.savePdf({\n * // PDF 저장은 증번폴더/파일이름.pdf로 생성\n * policyNumber,\n * param: [\n * // 저장할 파일명 설정\n * `pdf.filename=${fileName}.pdf`,\n * // 1페이지부터 마지막 페이지까지 저장\n * `export.pages=${startPage}-${endPage}`,\n * // 공통 PDF 내보내기 파라미터 추가\n * ...commonPdfExportParam\n * ].join('\\n')\n * });\n * ```\n */\n savePdf(options: SavePdfOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'savePdf',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식 중 서명부분을 이미지로 export\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });\n * ```\n */\n saveSignImg(options: SaveSignImgOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('saveSignImg', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에서 생성한 PDF를 보여주는 뷰어를 연다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.createOzPdfViewer({ filePath: \"/data/0/app/total.pdf\" });\n * ```\n */\n createOzPdfViewer(options: createOzPdfViewerOptions) {\n // 비밀번호는 입력안하면 빈값으로 보낸다\n return this.core.callToTarget<CommonOzBridgetResponseType>('createOzPdfViewer', options);\n }\n\n /**\n * ### Bridge for Oz\n * PDF뷰어 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideOzPdfViewer()\n * ```\n */\n hideOzPdfViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOzPdfViewer');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showSignatureShortcut();\n */\n showSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideSignatureShortcut();\n */\n hideSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showMissingFieldWarning();\n */\n showMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showMissingFieldWarning');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideMissingFieldWarning();\n */\n hideMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideMissingFieldWarning');\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { IframeBridge } from './iframe/bridge/iframe-bridge';\nimport { IframeBridgeCore } from './iframe/core/iframe-bridge-core';\nimport { NativeBridge } from './native/bridge/native-bridge';\nimport { NativeBridgeOz } from './native/bridge-oz/native-bridge-oz';\nimport { NativeBridgeCore } from './native/core/native-bridge-core';\n\nexport const Bridge = {\n native: new NativeBridge(),\n nativeOz: new NativeBridgeOz(),\n iframe: new IframeBridge(),\n nativeCore: new NativeBridgeCore(),\n iframeCore: new IframeBridgeCore()\n};\n\nexport type * from './native/bridge/native-bridge-dto.types';\nexport type * from \"./native/bridge/native-bridge-options.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-dto.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-options.types\";\n"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -500,7 +500,8 @@ declare class NativeBridge extends CommonBridge implements INativeBridge {
|
|
|
500
500
|
* @example
|
|
501
501
|
* ```tsx
|
|
502
502
|
* // 사용 예시
|
|
503
|
-
*
|
|
503
|
+
* const ozParam = ["connection.openfile=sample.ozd"]
|
|
504
|
+
* await Bridge.native.createOZViewer({ param: ozParam.join("\n") });
|
|
504
505
|
* ```
|
|
505
506
|
*/
|
|
506
507
|
createOZViewer(options: CreateOZViewerOptions): Promise<CommonOzBridgetResponseType<string>>;
|
|
@@ -510,7 +511,7 @@ declare class NativeBridge extends CommonBridge implements INativeBridge {
|
|
|
510
511
|
* @example
|
|
511
512
|
* ```tsx
|
|
512
513
|
* // 사용 예시
|
|
513
|
-
* Bridge.native.
|
|
514
|
+
* Bridge.native.hideOZViewer();
|
|
514
515
|
* ```
|
|
515
516
|
*/
|
|
516
517
|
hideOZViewer(): Promise<CommonOzBridgetResponseType<string>>;
|
package/dist/index.d.ts
CHANGED
|
@@ -500,7 +500,8 @@ declare class NativeBridge extends CommonBridge implements INativeBridge {
|
|
|
500
500
|
* @example
|
|
501
501
|
* ```tsx
|
|
502
502
|
* // 사용 예시
|
|
503
|
-
*
|
|
503
|
+
* const ozParam = ["connection.openfile=sample.ozd"]
|
|
504
|
+
* await Bridge.native.createOZViewer({ param: ozParam.join("\n") });
|
|
504
505
|
* ```
|
|
505
506
|
*/
|
|
506
507
|
createOZViewer(options: CreateOZViewerOptions): Promise<CommonOzBridgetResponseType<string>>;
|
|
@@ -510,7 +511,7 @@ declare class NativeBridge extends CommonBridge implements INativeBridge {
|
|
|
510
511
|
* @example
|
|
511
512
|
* ```tsx
|
|
512
513
|
* // 사용 예시
|
|
513
|
-
* Bridge.native.
|
|
514
|
+
* Bridge.native.hideOZViewer();
|
|
514
515
|
* ```
|
|
515
516
|
*/
|
|
516
517
|
hideOZViewer(): Promise<CommonOzBridgetResponseType<string>>;
|
package/dist/index.js
CHANGED
|
@@ -374,7 +374,8 @@ var NativeBridge = class extends CommonBridge {
|
|
|
374
374
|
* @example
|
|
375
375
|
* ```tsx
|
|
376
376
|
* // 사용 예시
|
|
377
|
-
*
|
|
377
|
+
* const ozParam = ["connection.openfile=sample.ozd"]
|
|
378
|
+
* await Bridge.native.createOZViewer({ param: ozParam.join("\n") });
|
|
378
379
|
* ```
|
|
379
380
|
*/
|
|
380
381
|
createOZViewer(options) {
|
|
@@ -390,7 +391,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
390
391
|
* @example
|
|
391
392
|
* ```tsx
|
|
392
393
|
* // 사용 예시
|
|
393
|
-
* Bridge.native.
|
|
394
|
+
* Bridge.native.hideOZViewer();
|
|
394
395
|
* ```
|
|
395
396
|
*/
|
|
396
397
|
hideOZViewer() {
|
|
@@ -430,7 +431,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
430
431
|
* await Bridge.native.downloadDocument(options)
|
|
431
432
|
* ```
|
|
432
433
|
*/
|
|
433
|
-
|
|
434
|
+
downloadDocument(options) {
|
|
434
435
|
return this.core.callToTarget("downloadDocument", options);
|
|
435
436
|
}
|
|
436
437
|
/**
|
|
@@ -442,7 +443,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
442
443
|
* await Bridge.native.getOzFontParam()
|
|
443
444
|
* ```
|
|
444
445
|
*/
|
|
445
|
-
|
|
446
|
+
getOzFontParam() {
|
|
446
447
|
return this.core.callToTarget("getOzFontParam");
|
|
447
448
|
}
|
|
448
449
|
/**
|
|
@@ -454,7 +455,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
454
455
|
* await Bridge.native.showLoader()
|
|
455
456
|
* ```
|
|
456
457
|
*/
|
|
457
|
-
|
|
458
|
+
showLoader() {
|
|
458
459
|
return this.core.callToTarget("showLoader");
|
|
459
460
|
}
|
|
460
461
|
/**
|
|
@@ -466,7 +467,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
466
467
|
* Bridge.native.hideLoader()
|
|
467
468
|
* ```
|
|
468
469
|
*/
|
|
469
|
-
|
|
470
|
+
hideLoader() {
|
|
470
471
|
return this.core.callToTarget("hideLoader");
|
|
471
472
|
}
|
|
472
473
|
/**
|
|
@@ -483,7 +484,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
483
484
|
* })
|
|
484
485
|
* ```
|
|
485
486
|
*/
|
|
486
|
-
|
|
487
|
+
showAlert(options) {
|
|
487
488
|
return this.core.callToTarget("showAlert", options);
|
|
488
489
|
}
|
|
489
490
|
/**
|
|
@@ -496,7 +497,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
496
497
|
* await Bridge.native.localFetchBridge({filePath: "/data/0/~~~/file.ext"});
|
|
497
498
|
* ```
|
|
498
499
|
*/
|
|
499
|
-
|
|
500
|
+
localFetchBridge(options) {
|
|
500
501
|
return this.core.callToTarget("localFetchBridge", options);
|
|
501
502
|
}
|
|
502
503
|
/**
|
|
@@ -508,7 +509,7 @@ var NativeBridge = class extends CommonBridge {
|
|
|
508
509
|
* await Bridge.native.contractClear({policyNumber: "300037459"});
|
|
509
510
|
* ```
|
|
510
511
|
*/
|
|
511
|
-
|
|
512
|
+
contractClear(options) {
|
|
512
513
|
return this.core.callToTarget("contractClear", options);
|
|
513
514
|
}
|
|
514
515
|
/**
|
|
@@ -738,7 +739,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
738
739
|
* const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });
|
|
739
740
|
* ```
|
|
740
741
|
*/
|
|
741
|
-
|
|
742
|
+
getInformation(options) {
|
|
742
743
|
return this.core.callToTarget("getInformation", options);
|
|
743
744
|
}
|
|
744
745
|
/**
|
|
@@ -752,7 +753,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
752
753
|
* await Bridge.nativeOz.getGlobal({ key: "AAA" })
|
|
753
754
|
* ```
|
|
754
755
|
*/
|
|
755
|
-
|
|
756
|
+
getGlobal(options) {
|
|
756
757
|
return this.core.callToTarget("getGlobal", Object.assign({ docIndex: 0 }, options));
|
|
757
758
|
}
|
|
758
759
|
/**
|
|
@@ -813,7 +814,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
813
814
|
* await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });
|
|
814
815
|
* ```
|
|
815
816
|
*/
|
|
816
|
-
|
|
817
|
+
triggerExternalEventByDocIndex(options) {
|
|
817
818
|
return this.core.callToTarget(
|
|
818
819
|
"triggerExternalEventByDocIndex",
|
|
819
820
|
Object.assign({ param1: "", param2: "", param3: "", param4: "" }, options)
|
|
@@ -828,7 +829,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
828
829
|
* await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });
|
|
829
830
|
* ```
|
|
830
831
|
*/
|
|
831
|
-
|
|
832
|
+
updateOzDocumentStatus(options) {
|
|
832
833
|
return this.core.callToTarget("updateOzDocumentStatus", options);
|
|
833
834
|
}
|
|
834
835
|
/**
|
|
@@ -852,7 +853,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
852
853
|
* });
|
|
853
854
|
* ```
|
|
854
855
|
*/
|
|
855
|
-
|
|
856
|
+
savePdf(options) {
|
|
856
857
|
return this.core.callToTarget(
|
|
857
858
|
"savePdf",
|
|
858
859
|
Object.assign({ delimiter: "\n" }, options)
|
|
@@ -867,7 +868,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
867
868
|
* await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });
|
|
868
869
|
* ```
|
|
869
870
|
*/
|
|
870
|
-
|
|
871
|
+
saveSignImg(options) {
|
|
871
872
|
return this.core.callToTarget("saveSignImg", options);
|
|
872
873
|
}
|
|
873
874
|
/**
|
|
@@ -879,7 +880,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
879
880
|
* await Bridge.nativeOz.createOzPdfViewer({ filePath: "/data/0/app/total.pdf" });
|
|
880
881
|
* ```
|
|
881
882
|
*/
|
|
882
|
-
|
|
883
|
+
createOzPdfViewer(options) {
|
|
883
884
|
return this.core.callToTarget("createOzPdfViewer", options);
|
|
884
885
|
}
|
|
885
886
|
/**
|
|
@@ -891,7 +892,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
891
892
|
* await Bridge.nativeOz.hideOzPdfViewer()
|
|
892
893
|
* ```
|
|
893
894
|
*/
|
|
894
|
-
|
|
895
|
+
hideOzPdfViewer() {
|
|
895
896
|
return this.core.callToTarget("hideOzPdfViewer");
|
|
896
897
|
}
|
|
897
898
|
/**
|
|
@@ -902,7 +903,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
902
903
|
* // 사용 예시
|
|
903
904
|
* await Bridge.nativeOz.showSignatureShortcut();
|
|
904
905
|
*/
|
|
905
|
-
|
|
906
|
+
showSignatureShortcut() {
|
|
906
907
|
return this.core.callToTarget("showSignatureShortcut");
|
|
907
908
|
}
|
|
908
909
|
/**
|
|
@@ -913,7 +914,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
913
914
|
* // 사용 예시
|
|
914
915
|
* await Bridge.nativeOz.hideSignatureShortcut();
|
|
915
916
|
*/
|
|
916
|
-
|
|
917
|
+
hideSignatureShortcut() {
|
|
917
918
|
return this.core.callToTarget("hideSignatureShortcut");
|
|
918
919
|
}
|
|
919
920
|
/**
|
|
@@ -924,7 +925,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
924
925
|
* // 사용 예시
|
|
925
926
|
* await Bridge.nativeOz.showMissingFieldWarning();
|
|
926
927
|
*/
|
|
927
|
-
|
|
928
|
+
showMissingFieldWarning() {
|
|
928
929
|
return this.core.callToTarget("showMissingFieldWarning");
|
|
929
930
|
}
|
|
930
931
|
/**
|
|
@@ -935,7 +936,7 @@ var NativeBridgeOz = class extends CommonBridge {
|
|
|
935
936
|
* // 사용 예시
|
|
936
937
|
* await Bridge.nativeOz.hideMissingFieldWarning();
|
|
937
938
|
*/
|
|
938
|
-
|
|
939
|
+
hideMissingFieldWarning() {
|
|
939
940
|
return this.core.callToTarget("hideMissingFieldWarning");
|
|
940
941
|
}
|
|
941
942
|
// TODO: 필요 플러그인들 추가
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/common/common-bridge.ts","../src/common/common-bridge-core.ts","../src/iframe/core/iframe-bridge-core.ts","../src/iframe/bridge/iframe-bridge.ts","../src/native/core/native-bridge-core.ts","../src/native/bridge/native-bridge.ts","../src/native/bridge-oz/native-bridge-oz.ts","../src/bridge.ts"],"names":["isClient","getDspExecutionEnvironment"],"mappings":"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","file":"index.js","sourcesContent":["import { ICommonBridge } from './common-bridge.types';\n\n/**\n * Business Layer Bridge\n * 비즈니스를 호출하는(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridge implements ICommonBridge {\n protected commonHello(): void {\n console.log('commonHello');\n }\n\n abstract hello(): void;\n}\n","/**\n * Core Layer Bridge\n * Core(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridgeCore {\n /**\n * 코어에서 사용할 프로미스 ID 생성 함수\n * @returns\n */\n protected generatePromiseId(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).slice(2, 11);\n\n return `${timestamp}_${random}`;\n }\n\n /**\n * core에서 구현해야할 함수\n * @param action\n * @param options\n */\n abstract callToTarget<T>(action: string, options?: Record<string, unknown>): Promise<T>;\n}\n","import { getDspExecutionEnvironment, isClient } from 'sales-frontend-utils';\nimport { MessageEventManager } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport {\n IframeEventName,\n IframeBridgeCommand,\n IframeBridgeOptions,\n IframeBridgePromise,\n IframeBridgeResponseHandler,\n IframeBridgeResponseData\n} from './iframe-bridge-core.types';\n\n/**\n * Iframe Bridge 통신 위한 핵심 클래스\n * 담당: 부모 호출, Promise 관리\n */\nexport class IframeBridgeCore extends CommonBridgeCore {\n private pendingPromises = new Map<string, IframeBridgePromise>();\n private responseHandler?: IframeBridgeResponseHandler;\n\n constructor() {\n super();\n\n if (!isClient()) {\n return;\n }\n\n const platform = getDspExecutionEnvironment();\n if (platform !== 'iframe') {\n console.warn(`[IframeBridgeCore] iframe 환경이 아닙니다. (현재: ${platform})`);\n\n return;\n }\n\n console.log('[IframeBridgeCore] iframe 환경에서 초기화 시작');\n this.initializeIframeBridge();\n }\n\n /**\n * 사용하는 쪽에서 응답핸들러를 사용할 수 있도록 필요시, 응답 처리 핸들러 설정\n */\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.responseHandler = handler;\n }\n\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n const { promiseId, isSuccess, data } = response;\n\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n\n if (isSuccess) {\n promise.resolve(data);\n } else {\n promise.reject(new Error(data));\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * 특정 Promise 존재 여부 확인\n */\n hasPromise(promiseId: string): boolean {\n return this.pendingPromises.has(promiseId);\n }\n\n /**\n * 네이티브 통신을 위해 window.n2bridge 객체 초기화\n */\n private initializeIframeBridge(): void {\n // MessageEventManager에 핸들러 등록(영업포털-웹간 주고받기)\n MessageEventManager.getInstance().registerHandler('iframe-bridge', this.handleMessageEventResponse.bind(this));\n }\n\n /**\n * 브릿지 메시지 이벤트 핸들러\n * @param event\n */\n private handleMessageEventResponse(event: MessageEvent): void {\n const { eventName, promiseId, isSuccess, data } = event.data as IframeBridgeResponseData;\n\n console.log('[IframeBridgeCore] 메시지 받음:', { eventName, promiseId, isSuccess, data });\n\n //! 필요시 (부모 > 자식): hmpLogout(로그아웃처리), prxSessionExts(세션연장) 이벤트 구현\n // 등록된 핸들러가 있으면 실행\n if (this.responseHandler) {\n this.responseHandler({ eventName, promiseId, isSuccess, data });\n }\n\n // (부모 > 자식) 기본 Promise 처리\n if (this.pendingPromises.has(promiseId)) {\n this.handleIframeBridgePromise({ eventName, promiseId, isSuccess, data });\n }\n }\n\n /**\n * Iframe 통신\n * @param eventName\n * @param option\n * @returns\n */\n async callToTarget<T = boolean>(eventName: IframeEventName, option?: IframeBridgeOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${eventName}_${this.generatePromiseId()}`;\n\n // Promise 등록\n this.pendingPromises.set(promiseId, { resolve, reject });\n\n const { menuUrl, menuNm, ...restOption } = option ?? {};\n\n try {\n const command: IframeBridgeCommand = {\n eventName,\n promiseId,\n menuUrl,\n menuNm,\n jsonParam: { ...restOption }\n };\n\n console.log('[IframeBridgeCore callToIframe] command::', command);\n console.log('[IframeBridgeCore callToIframe] 부모 호출 직전');\n\n window.parent.postMessage(command, '*');\n\n // TODO: 부모에서 event.source.postMessage({ promiseId, isSuccess, data }); 형태로 보내줄 수 있다면 소스 삭제\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n promise.resolve(true as T);\n }\n } catch (error) {\n console.error('[IframeBridgeCore callToIframe] error::', error);\n this.pendingPromises.delete(promiseId);\n reject(error);\n }\n });\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { IframeBridgeCore } from '../core/iframe-bridge-core';\nimport { IframeBridgeResponseHandler, IframeBridgeResponseData } from '../core/iframe-bridge-core.types';\n\nimport { DspMenuWindowOpenOption, DspSimpleWindowOpen } from './iframe-bridge-options.types';\nimport { IIframeBridge } from './iframe-bridge.types';\n\n/**\n * iframe(영업포탈) 전용 Bridge\n */\nexport class IframeBridge extends CommonBridge implements IIframeBridge {\n private core: IframeBridgeCore;\n\n constructor() {\n super();\n this.core = new IframeBridgeCore();\n }\n\n // 응답 핸들러 설정\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.core.setResponseHandler(handler);\n }\n\n // Promise 직접 제어 메서드들 추가\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n return this.core.handleIframeBridgePromise(response);\n }\n\n // 유틸리티 메서드들도 추가\n hasPromise(promiseId: string): boolean {\n return this.core.hasPromise(promiseId);\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수(test)\n */\n hello(): void {\n console.log('[IframeBridge] hello');\n }\n\n /**\n * 영업포털 부모의 세션연장, 오픈되어 있는 타 시스템 세션타임 연장\n * @returns\n */\n async dspKeepCallerSession(): Promise<boolean> {\n return this.core.callToTarget('dspKeepCallerSession');\n }\n\n /**\n * 영업포털 메뉴정보에 있는 메뉴 오픈(새탭 생성)\n * @param option\n * @returns\n */\n async dspMenuWindowOpen(option: DspMenuWindowOpenOption): Promise<boolean> {\n return this.core.callToTarget('dspMenuWindowOpen', option);\n }\n\n /**\n * 영업포털 메뉴정보에 없는 메뉴를 오픈(새탭 생성 & 약속된 타켓 메뉴정보를 해당 시스템에 전달)\n * @param option\n * @returns\n */\n async dspSimpleWindowOpen(option: DspSimpleWindowOpen): Promise<boolean> {\n return this.core.callToTarget('dspSimpleWindowOpen', option);\n }\n // TODO: 필요 플러그인들 추가\n}\n","import { getDspExecutionEnvironment, isClient, isStorybookEnv, isFpPlannerApp } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport type {\n NativeBridgeCommand,\n NativeBridgePromise,\n NativeBridgeOptions,\n PromiseHandleBridge,\n CallBridge\n} from './native-bridge-core.types';\n\n/**\n * Native <-> Web 처리를 위한 핵심 클래스\n * 담당: 앱 호출, Promise 관리\n */\nexport class NativeBridgeCore<TAction extends string> extends CommonBridgeCore {\n private promiseHandleName: string;\n private callBridgeName: string;\n\n constructor(callBridgeName = 'n2Bridge', promiseHandleName = 'n2bridge') {\n super();\n\n this.callBridgeName = callBridgeName;\n this.promiseHandleName = promiseHandleName;\n\n this.initializeWindowOzBridge();\n }\n\n /**\n * Promise 관리용 브릿지 객체 가져오기 (window.n2bridge)\n */\n private getPromiseHandleBridge(): PromiseHandleBridge {\n return (window as any)[this.promiseHandleName] as PromiseHandleBridge;\n }\n\n /**\n * 앱 호출용 브릿지 객체 가져오기 (window.n2Bridge)\n */\n private getCallBridge(): CallBridge {\n return (window as any)[this.callBridgeName] as CallBridge;\n }\n\n /**\n * 네이티브 통신을 위해 window.n2OzBridge 객체 초기화\n */\n private initializeWindowOzBridge(): void {\n if (!isClient()) {\n return;\n } // SSR 환경에서는 아무것도 하지 않음\n if (!(window as any)[this.promiseHandleName]) {\n (window as any)[this.promiseHandleName] = {\n promises: {},\n resolvePromise: () => {},\n finallyResolvePromise: () => {},\n callFromNative: () => {}\n };\n }\n\n const bridge = this.getPromiseHandleBridge();\n\n // 항상 최신 함수로 업데이트\n bridge.resolvePromise = this.createResolvePromiseHandler();\n bridge.finallyResolvePromise = this.createFinallyResolvePromiseHandler();\n\n if (isStorybookEnv() && window.parent) {\n // 스토리북에서는 현재 스토리가 iframe으로 로드되므로 앱에서 부모 프레임에 브릿지를 리턴해도 자식으로 전달되도록 보정하는 코드\n (window.parent as any)[this.promiseHandleName] = bridge;\n window.parent.dispatchEvent = (...args) => window.dispatchEvent.apply(null, args);\n }\n }\n\n /**\n * Promise 처리 함수(Native에서 호출)\n * @returns\n */\n private createResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n console.log('[NativeBridgeCore resolvePromise]::', promiseId, data, error);\n\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * Promise 최종 처리 함수\n * @returns\n */\n private createFinallyResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * 네이티브 통신\n * @param action\n * @param options\n * @returns\n */\n async callToTarget<T>(action: TAction, option: NativeBridgeOptions = {}): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${action}_${this.generatePromiseId()}`;\n console.log('[NativeBridgeCore callToNative] promiseId::', promiseId);\n\n const bridge = this.getPromiseHandleBridge();\n\n // 바로 window.promiseHandler에 promises에 저장\n bridge.promises[promiseId] = {\n resolve: (value: T) => {\n resolve(value);\n },\n reject: (reason?: any) => {\n reject(reason);\n }\n };\n\n try {\n const command: NativeBridgeCommand = {\n action,\n promiseId,\n option\n };\n\n console.log('[NativeBridgeCore callToNative] command::', command);\n\n const platform = getDspExecutionEnvironment();\n\n if (platform === 'android-webview') {\n const callBridge = this.getCallBridge();\n callBridge?.callFromWeb?.(JSON.stringify(command));\n\n return;\n }\n\n if (platform === 'ios-webview') {\n const message = isFpPlannerApp()\n ? { ...command, service: 'native' } // 플래너: service 추가\n : command;\n\n (window.webkit?.messageHandlers as any)?.[this.callBridgeName]?.postMessage(JSON.stringify(message));\n\n return;\n }\n\n // 지원하지 않는 플랫폼\n console.warn(\n `[NativeBridgeCore callToNative] 현재 플랫폼(${platform})에서는 지원하지 않는 서비스(${action})입니다.`\n );\n this.cleanupPromise(promiseId);\n reject(new Error(`[NativeBridgeCore callToNative] Unsupported platform: ${platform}`));\n } catch (error) {\n console.error('[NativeBridgeCore callToNative] error::', error);\n this.cleanupPromise(promiseId);\n reject(error);\n }\n });\n }\n\n /**\n * promiseId를 초기화 해줍니다.\n * @param promiseId\n */\n private cleanupPromise(promiseId: string): void {\n const bridge = this.getPromiseHandleBridge();\n delete bridge.promises[promiseId];\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n OnAuthenticationResultRequest,\n OnAuthenticationResultResponse,\n GetAccessTokenResponse,\n GetAnalyticsUserPropertyResponse,\n GetOzFontParamResponse,\n GetAppInfoResponse,\n DocumentCaptureResponse,\n RefreshAccessTokenResponse,\n DudExternalFileUploadResponse\n} from './native-bridge-dto.types';\nimport type {\n CommonOzBridgetResponseType,\n DownloadOzdOptions,\n OpenBrowserOptions,\n CreateOZViewerOptions,\n OpenWebOptions,\n localFetchBridgeOptions,\n SetHeaderTitleOptions,\n HideHeaderOptions,\n contractClearOptions,\n SetBackNavigationEnabledOptions,\n DudExternalFileUploadOptions,\n DocumentCaptureOptions,\n ShowAlertOptions\n} from './native-bridge-options.types';\nimport type { INativeBridge, NativeAction } from './native-bridge.types';\n\n/**\n * App - Web Bridge\n */\nexport class NativeBridge extends CommonBridge implements INativeBridge {\n private core: NativeBridgeCore<NativeAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeAction>();\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * getParameterMap\n * @returns\n */\n async getParameterMap<T = any>(): Promise<T> {\n return this.core.callToTarget<T>('getParameterMap');\n }\n\n /**\n * 기능명: 본인인증 결과 정보 넘기기\n * 목적: NXL One 에서 본인인증 결과 값을 네이티브로 넘기기 위함\n * @param options\n * @returns\n */\n async onAuthenticationResult(options: OnAuthenticationResultRequest): Promise<OnAuthenticationResultResponse> {\n return this.core.callToTarget('onAuthenticationResult', options);\n }\n\n /**\n * Access Token 가져오기\n * @returns\n */\n async getAccessToken(): Promise<GetAccessTokenResponse> {\n return this.core.callToTarget('getAccessToken');\n }\n\n /**\n * ### Bridge for Oz\n * 설정한 뷰어 파라미터를 기준으로 뷰어에 새로운 보고서를 바인딩합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.createReportEx({ param: \"connection.openfile=sample.ozd\" });\n * ```\n */\n createOZViewer(options: CreateOZViewerOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>(\n 'createOZViewer',\n // delimiter 미입력시 \\n 으로 기본값 처리\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * OZ 뷰어를 닫습니다\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideViewer();\n * ```\n */\n hideOZViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOZViewer');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 OZD를 다운받는 브릿지입니다\n * @example\n * ```tsx\n * const options = {\n * // 현재 증권번호\n * policyNumber: \"300034894\",\n * // FP 사번\n * fpInfo: { \"uniqNo\": \"2210000\" }\n * // 서식 목록들\n * data: [{\n * // 서식에 대한 정보들\n * \"name\": \"[A0010]청약서\",\n * \"complete\": false,\n * \"startPage\": 0,\n * \"endPage\": 0,\n * \"focus\": false,\n * \"doc\": [{\n * // 서식에 속한 OZD 파일들\n * \"docCode\": \"A0010\",\n * \"fileID\": \"1HLqZJCNt6idLKkAA\",\n * \"imageFormatCode\": \"RT003001\",\n * \"imageDocumentTypeCode\": \"IT00\",\n * // ozd 파일이 다운로드된 경로\n * \"filePath\": \"\",\n * \"startPage\": 0,\n * \"endPage\": 0\n * }]\n * }, ],\n * }\n * await Bridge.native.downloadDocument(options)\n * ```\n */\n async downloadDocument(options: DownloadOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<DownloadOzdOptions>>('downloadDocument', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 폰트 설정들을 조회하는 브릿지입니다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.getOzFontParam()\n * ```\n */\n async getOzFontParam() {\n return this.core.callToTarget<CommonOzBridgetResponseType<GetOzFontParamResponse>>('getOzFontParam');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 show\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showLoader()\n * ```\n */\n async showLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showLoader');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideLoader()\n * ```\n */\n async hideLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideLoader');\n }\n /**\n * ### Bridge for Oz\n * Alert 표시용 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showAlert({\n * title: '모달 타이틀',\n * message: '모달 내용',\n * // 모달에 표시할 버튼들 설정\n * buttons: { close: false, main: \"확인\" }\n * })\n * ```\n */\n async showAlert(options: ShowAlertOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<keyof ShowAlertOptions[\"buttons\"]>>('showAlert', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬에 있는 파일을 fetch하기 위한 url을 만들어주는 브릿지\n *\n * 파일의 절대경로는 saveSignImg 혹은 pdfExport시 확보할수 있다\n * @example\n * ```tsx\n * await Bridge.native.localFetchBridge({filePath: \"/data/0/~~~/file.ext\"});\n * ```\n */\n async localFetchBridge(options: localFetchBridgeOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('localFetchBridge', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬의 특정 증번 폴더를 삭제한다(청약 완료 후 사용)\n *\n * @example\n * ```tsx\n * await Bridge.native.contractClear({policyNumber: \"300037459\"});\n * ```\n */\n async contractClear(options: contractClearOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('contractClear', options);\n }\n\n /**\n * 홈 이동\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.goHome()\n * ```\n */\n goHome(): Promise<string> {\n return this.core.callToTarget('goHome');\n }\n\n /**\n * 전체메뉴 열기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.showMenu()\n * ```\n */\n showMenu(): Promise<string> {\n return this.core.callToTarget('showMenu');\n }\n\n /**\n * GA4 정보 얻기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n getAnalyticsUserProperty(): Promise<GetAnalyticsUserPropertyResponse> {\n return this.core.callToTarget('getAnalyticsUserProperty');\n }\n\n /**\n *외부 브라우저 호출\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n openBrowser(options: OpenBrowserOptions): Promise<string> {\n return this.core.callToTarget('openBrowser', options);\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideWebPopup()\n * ```\n */\n hideWebPopup(): Promise<string> {\n return this.core.callToTarget('hideWebPopup');\n }\n\n /**\n * OnePass 인증\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.requestAuthentication()\n * ```\n */\n requestAuthentication(): Promise<string> {\n return this.core.callToTarget('requestAuthentication');\n }\n\n /**\n * 웹뷰 띄우기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.openWeb({ url: 'url', headerTitle: '타이틀', headerType: 'APP', removeNavStack: true });\n * ```\n */\n openWeb({ headerType = 'APP', removeNavStack = false, ...rest }: OpenWebOptions): Promise<string> {\n return this.core.callToTarget('openWeb', { headerType, removeNavStack, ...rest });\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.closeWeb()\n * ```\n */\n closeWeb(): Promise<string> {\n return this.core.callToTarget('closeWeb');\n }\n\n /**\n * 앱 종료\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.exitApp()\n * ```\n */\n exitApp(): Promise<string> {\n return this.core.callToTarget('exitApp');\n }\n\n /**\n * 앱 정보 가져오기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAppInfo()\n * ```\n */\n getAppInfo(): Promise<GetAppInfoResponse> {\n return this.core.callToTarget('getAppInfo');\n }\n\n /**\n * 네이티브 헤더 타이틀 변경\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.setHeaderTitle({ headerTitle: '타이틀명' });\n * ```\n */\n setHeaderTitle(options: SetHeaderTitleOptions): Promise<string> {\n return this.core.callToTarget('setHeaderTitle', options);\n }\n\n /**\n * 네이티브 헤더 show / hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideHeader({ hideHeader: true });\n * ```\n */\n hideHeader(options: HideHeaderOptions): Promise<string> {\n return this.core.callToTarget('hideHeader', options);\n }\n\n /**\n * 네이티브 서류첨부 시 카메라 호출\n * @example\n * ```tsx\n * // 사용 예시\n * const { uri } = await Bridge.native.documentCapture();\n * ```\n */\n documentCapture(options?: DocumentCaptureOptions): Promise<DocumentCaptureResponse> {\n return this.core.callToTarget('documentCapture', options);\n }\n\n /**\n * 뒤로가기 on/off\n * 안드로이드 백키, iOS 스와이프 백 on/off\n * 백키로 종료되지 않아야 할 화면에서 사용 (청약 최종제출 등 업로드 / 중요 데이터 처리 등)\n *\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.setBackNavigationEnabled({ enableBackNav: true });\n * ```\n */\n setBackNavigationEnabled(options: SetBackNavigationEnabledOptions): Promise<string> {\n return this.core.callToTarget('setBackNavigationEnabled', options);\n }\n\n /**\n * 401 발생 시 앱에 갱신된 토큰을 요청하여 받음\n * 갱신 요청은 정확하게 한번만 요청 해야 함\n * 웹에서 여러 API 를 병렬로 동시에 호출 하는 케이스 등 AT 갱신은 정확하게 한번만 요청 해야 함!\n * 해당 브릿지에서 오류가 발생하는 케이스는 더 이상 앱 사용 불가 케이스 > 앱에서 처리\n *\n * @example\n * ```tsx\n * // 사용 예시\n * const { accessToken, tokenType } = await Bridge.native.refreshAccessToken();\n * ```\n */\n refreshAccessToken(): Promise<RefreshAccessTokenResponse> {\n return this.core.callToTarget('refreshAccessToken');\n }\n\n /**\n * DUD 외부 파일 업로드\n *\n * 단일 파일을 네이티브 영역으로 전달하여 DUD로 업로드합니다.\n * 네이티브에서 DUD API 호출 후 응답 DTO를 가공하지 않고 그대로 반환합니다.\n *\n * @param options - 파일 경로와 요청 헤더\n * @returns DUD 파일 업로드 응답 (dudFileMgmtId 포함)\n *\n * @example\n * ```tsx\n * const result = await Bridge.native.dudExternalFileUpload({\n * filePath: \"/data/0/OZRV/3000123123/TOTAL.pdf\",\n * headers: {\n * 'x-channel-business-work-division-code': businessWorkDivisionCode,\n * Authorization: token,\n * },\n * });\n *\n * if (result.isSuccess) {\n * console.log('업로드 성공:', result.data.dudFileMgmtId);\n * }\n * ```\n */\n dudExternalFileUpload(\n options: DudExternalFileUploadOptions\n ): Promise<CommonOzBridgetResponseType<DudExternalFileUploadResponse>> {\n return this.core.callToTarget('dudExternalFileUpload', options);\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { CommonOzBridgetResponseType } from '../bridge/native-bridge-options.types';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n GetInformationOptions,\n GetGlobalOptions,\n SetGlobalOptions,\n ScriptExOptions,\n ScriptOptions,\n TriggerExternalEventByDocIndexOptions,\n SavePdfOptions,\n SaveSignImgOptions,\n UpdateOzdOptions,\n createOzPdfViewerOptions\n} from './native-bridge-oz-options.types';\nimport type { INativeBridgeOz, NativeOzAction } from './native-bridge-oz.types';\n\n/**\n * App - Web Bridge(for OZ)\n */\nexport class NativeBridgeOz extends CommonBridge implements INativeBridgeOz {\n private core: NativeBridgeCore<NativeOzAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeOzAction>('n2OzBridge', 'n2ozBridge');\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 정보를 가져옵니다\n * @example\n * ```tsx\n * // 사용 예시:\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * // 리턴값이 null이 나올수 있음\n * const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });\n * ```\n */\n async getInformation(options: GetInformationOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getInformation', options);\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 가져옵니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * await Bridge.nativeOz.getGlobal({ key: \"AAA\" })\n * ```\n */\n async getGlobal(options: GetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 설정합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // value 자리에 string이 아닌 값을 넣어도 getGlobal시 string으로 변환되어 리턴됩니다\n * Bridge.nativeOz.setGlobal({ key: \"AAA\", value: \"myValue\" });\n * ```\n */\n setGlobal(options: SetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<boolean | null>>('setGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * Bridge.nativeOz.script({ command });\n * ```\n */\n script(options: ScriptOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('script', options);\n }\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * - `param`을 통해 오즈 뷰어의 parameter를 변경할수 있습니다\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * const param1 = `eform.show_prev_next_input=true`;\n * const param2 = `eform.signpad_iconposition=sign_bottom`;\n * // param이 여러개인경우 \\n으로 묶는다\n * const param = `${param1}\\n${param2}`;\n * Bridge.nativeOz.scriptEX({ command, param });\n * ```\n */\n scriptEx(options: ScriptExOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'scriptEx',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 지정한 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.\n * - 서명이미지 크롭\n * - 중간저장 서명이미지 추출\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });\n * ```\n */\n async triggerExternalEventByDocIndex(options: TriggerExternalEventByDocIndexOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>(\n 'triggerExternalEventByDocIndex',\n Object.assign({ param1: '', param2: '', param3: '', param4: '' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 서식의 진행중/완료 상태를 업데이트하는 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });\n * ```\n */\n async updateOzDocumentStatus(options: UpdateOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('updateOzDocumentStatus', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식을 PDF로 export 요청\n * export 결과는 `OZViewerEvent.OZExportCommand`로 트리거 된다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.savePdf({\n * // PDF 저장은 증번폴더/파일이름.pdf로 생성\n * policyNumber,\n * param: [\n * // 저장할 파일명 설정\n * `pdf.filename=${fileName}.pdf`,\n * // 1페이지부터 마지막 페이지까지 저장\n * `export.pages=${startPage}-${endPage}`,\n * // 공통 PDF 내보내기 파라미터 추가\n * ...commonPdfExportParam\n * ].join('\\n')\n * });\n * ```\n */\n async savePdf(options: SavePdfOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'savePdf',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식 중 서명부분을 이미지로 export\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });\n * ```\n */\n async saveSignImg(options: SaveSignImgOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('saveSignImg', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에서 생성한 PDF를 보여주는 뷰어를 연다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.createOzPdfViewer({ filePath: \"/data/0/app/total.pdf\" });\n * ```\n */\n async createOzPdfViewer(options: createOzPdfViewerOptions) {\n // 비밀번호는 입력안하면 빈값으로 보낸다\n return this.core.callToTarget<CommonOzBridgetResponseType>('createOzPdfViewer', options);\n }\n\n /**\n * ### Bridge for Oz\n * PDF뷰어 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideOzPdfViewer()\n * ```\n */\n async hideOzPdfViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOzPdfViewer');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showSignatureShortcut();\n */\n async showSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideSignatureShortcut();\n */\n async hideSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showMissingFieldWarning();\n */\n async showMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showMissingFieldWarning');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideMissingFieldWarning();\n */\n async hideMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideMissingFieldWarning');\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { IframeBridge } from './iframe/bridge/iframe-bridge';\nimport { IframeBridgeCore } from './iframe/core/iframe-bridge-core';\nimport { NativeBridge } from './native/bridge/native-bridge';\nimport { NativeBridgeOz } from './native/bridge-oz/native-bridge-oz';\nimport { NativeBridgeCore } from './native/core/native-bridge-core';\n\nexport const Bridge = {\n native: new NativeBridge(),\n nativeOz: new NativeBridgeOz(),\n iframe: new IframeBridge(),\n nativeCore: new NativeBridgeCore(),\n iframeCore: new IframeBridgeCore()\n};\n\nexport type * from './native/bridge/native-bridge-dto.types';\nexport type * from \"./native/bridge/native-bridge-options.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-dto.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-options.types\";\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/common/common-bridge.ts","../src/common/common-bridge-core.ts","../src/iframe/core/iframe-bridge-core.ts","../src/iframe/bridge/iframe-bridge.ts","../src/native/core/native-bridge-core.ts","../src/native/bridge/native-bridge.ts","../src/native/bridge-oz/native-bridge-oz.ts","../src/bridge.ts"],"names":["isClient","getDspExecutionEnvironment"],"mappings":"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","file":"index.js","sourcesContent":["import { ICommonBridge } from './common-bridge.types';\n\n/**\n * Business Layer Bridge\n * 비즈니스를 호출하는(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridge implements ICommonBridge {\n protected commonHello(): void {\n console.log('commonHello');\n }\n\n abstract hello(): void;\n}\n","/**\n * Core Layer Bridge\n * Core(iframe, app)에서 구현해야할 함수 정의\n */\nexport abstract class CommonBridgeCore {\n /**\n * 코어에서 사용할 프로미스 ID 생성 함수\n * @returns\n */\n protected generatePromiseId(): string {\n const timestamp = Date.now();\n const random = Math.random().toString(36).slice(2, 11);\n\n return `${timestamp}_${random}`;\n }\n\n /**\n * core에서 구현해야할 함수\n * @param action\n * @param options\n */\n abstract callToTarget<T>(action: string, options?: Record<string, unknown>): Promise<T>;\n}\n","import { getDspExecutionEnvironment, isClient } from 'sales-frontend-utils';\nimport { MessageEventManager } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport {\n IframeEventName,\n IframeBridgeCommand,\n IframeBridgeOptions,\n IframeBridgePromise,\n IframeBridgeResponseHandler,\n IframeBridgeResponseData\n} from './iframe-bridge-core.types';\n\n/**\n * Iframe Bridge 통신 위한 핵심 클래스\n * 담당: 부모 호출, Promise 관리\n */\nexport class IframeBridgeCore extends CommonBridgeCore {\n private pendingPromises = new Map<string, IframeBridgePromise>();\n private responseHandler?: IframeBridgeResponseHandler;\n\n constructor() {\n super();\n\n if (!isClient()) {\n return;\n }\n\n const platform = getDspExecutionEnvironment();\n if (platform !== 'iframe') {\n console.warn(`[IframeBridgeCore] iframe 환경이 아닙니다. (현재: ${platform})`);\n\n return;\n }\n\n console.log('[IframeBridgeCore] iframe 환경에서 초기화 시작');\n this.initializeIframeBridge();\n }\n\n /**\n * 사용하는 쪽에서 응답핸들러를 사용할 수 있도록 필요시, 응답 처리 핸들러 설정\n */\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.responseHandler = handler;\n }\n\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n const { promiseId, isSuccess, data } = response;\n\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n\n if (isSuccess) {\n promise.resolve(data);\n } else {\n promise.reject(new Error(data));\n }\n\n return true;\n }\n\n return false;\n }\n\n /**\n * 특정 Promise 존재 여부 확인\n */\n hasPromise(promiseId: string): boolean {\n return this.pendingPromises.has(promiseId);\n }\n\n /**\n * 네이티브 통신을 위해 window.n2bridge 객체 초기화\n */\n private initializeIframeBridge(): void {\n // MessageEventManager에 핸들러 등록(영업포털-웹간 주고받기)\n MessageEventManager.getInstance().registerHandler('iframe-bridge', this.handleMessageEventResponse.bind(this));\n }\n\n /**\n * 브릿지 메시지 이벤트 핸들러\n * @param event\n */\n private handleMessageEventResponse(event: MessageEvent): void {\n const { eventName, promiseId, isSuccess, data } = event.data as IframeBridgeResponseData;\n\n console.log('[IframeBridgeCore] 메시지 받음:', { eventName, promiseId, isSuccess, data });\n\n //! 필요시 (부모 > 자식): hmpLogout(로그아웃처리), prxSessionExts(세션연장) 이벤트 구현\n // 등록된 핸들러가 있으면 실행\n if (this.responseHandler) {\n this.responseHandler({ eventName, promiseId, isSuccess, data });\n }\n\n // (부모 > 자식) 기본 Promise 처리\n if (this.pendingPromises.has(promiseId)) {\n this.handleIframeBridgePromise({ eventName, promiseId, isSuccess, data });\n }\n }\n\n /**\n * Iframe 통신\n * @param eventName\n * @param option\n * @returns\n */\n async callToTarget<T = boolean>(eventName: IframeEventName, option?: IframeBridgeOptions): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${eventName}_${this.generatePromiseId()}`;\n\n // Promise 등록\n this.pendingPromises.set(promiseId, { resolve, reject });\n\n const { menuUrl, menuNm, ...restOption } = option ?? {};\n\n try {\n const command: IframeBridgeCommand = {\n eventName,\n promiseId,\n menuUrl,\n menuNm,\n jsonParam: { ...restOption }\n };\n\n console.log('[IframeBridgeCore callToIframe] command::', command);\n console.log('[IframeBridgeCore callToIframe] 부모 호출 직전');\n\n window.parent.postMessage(command, '*');\n\n // TODO: 부모에서 event.source.postMessage({ promiseId, isSuccess, data }); 형태로 보내줄 수 있다면 소스 삭제\n const promise = this.pendingPromises.get(promiseId);\n if (promise) {\n this.pendingPromises.delete(promiseId);\n promise.resolve(true as T);\n }\n } catch (error) {\n console.error('[IframeBridgeCore callToIframe] error::', error);\n this.pendingPromises.delete(promiseId);\n reject(error);\n }\n });\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { IframeBridgeCore } from '../core/iframe-bridge-core';\nimport { IframeBridgeResponseHandler, IframeBridgeResponseData } from '../core/iframe-bridge-core.types';\n\nimport { DspMenuWindowOpenOption, DspSimpleWindowOpen } from './iframe-bridge-options.types';\nimport { IIframeBridge } from './iframe-bridge.types';\n\n/**\n * iframe(영업포탈) 전용 Bridge\n */\nexport class IframeBridge extends CommonBridge implements IIframeBridge {\n private core: IframeBridgeCore;\n\n constructor() {\n super();\n this.core = new IframeBridgeCore();\n }\n\n // 응답 핸들러 설정\n setResponseHandler(handler: IframeBridgeResponseHandler): void {\n this.core.setResponseHandler(handler);\n }\n\n // Promise 직접 제어 메서드들 추가\n handleIframeBridgePromise(response: IframeBridgeResponseData): boolean {\n return this.core.handleIframeBridgePromise(response);\n }\n\n // 유틸리티 메서드들도 추가\n hasPromise(promiseId: string): boolean {\n return this.core.hasPromise(promiseId);\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수(test)\n */\n hello(): void {\n console.log('[IframeBridge] hello');\n }\n\n /**\n * 영업포털 부모의 세션연장, 오픈되어 있는 타 시스템 세션타임 연장\n * @returns\n */\n async dspKeepCallerSession(): Promise<boolean> {\n return this.core.callToTarget('dspKeepCallerSession');\n }\n\n /**\n * 영업포털 메뉴정보에 있는 메뉴 오픈(새탭 생성)\n * @param option\n * @returns\n */\n async dspMenuWindowOpen(option: DspMenuWindowOpenOption): Promise<boolean> {\n return this.core.callToTarget('dspMenuWindowOpen', option);\n }\n\n /**\n * 영업포털 메뉴정보에 없는 메뉴를 오픈(새탭 생성 & 약속된 타켓 메뉴정보를 해당 시스템에 전달)\n * @param option\n * @returns\n */\n async dspSimpleWindowOpen(option: DspSimpleWindowOpen): Promise<boolean> {\n return this.core.callToTarget('dspSimpleWindowOpen', option);\n }\n // TODO: 필요 플러그인들 추가\n}\n","import { getDspExecutionEnvironment, isClient, isStorybookEnv, isFpPlannerApp } from 'sales-frontend-utils';\n\nimport { CommonBridgeCore } from '../../common/common-bridge-core';\n\nimport type {\n NativeBridgeCommand,\n NativeBridgePromise,\n NativeBridgeOptions,\n PromiseHandleBridge,\n CallBridge\n} from './native-bridge-core.types';\n\n/**\n * Native <-> Web 처리를 위한 핵심 클래스\n * 담당: 앱 호출, Promise 관리\n */\nexport class NativeBridgeCore<TAction extends string> extends CommonBridgeCore {\n private promiseHandleName: string;\n private callBridgeName: string;\n\n constructor(callBridgeName = 'n2Bridge', promiseHandleName = 'n2bridge') {\n super();\n\n this.callBridgeName = callBridgeName;\n this.promiseHandleName = promiseHandleName;\n\n this.initializeWindowOzBridge();\n }\n\n /**\n * Promise 관리용 브릿지 객체 가져오기 (window.n2bridge)\n */\n private getPromiseHandleBridge(): PromiseHandleBridge {\n return (window as any)[this.promiseHandleName] as PromiseHandleBridge;\n }\n\n /**\n * 앱 호출용 브릿지 객체 가져오기 (window.n2Bridge)\n */\n private getCallBridge(): CallBridge {\n return (window as any)[this.callBridgeName] as CallBridge;\n }\n\n /**\n * 네이티브 통신을 위해 window.n2OzBridge 객체 초기화\n */\n private initializeWindowOzBridge(): void {\n if (!isClient()) {\n return;\n } // SSR 환경에서는 아무것도 하지 않음\n if (!(window as any)[this.promiseHandleName]) {\n (window as any)[this.promiseHandleName] = {\n promises: {},\n resolvePromise: () => {},\n finallyResolvePromise: () => {},\n callFromNative: () => {}\n };\n }\n\n const bridge = this.getPromiseHandleBridge();\n\n // 항상 최신 함수로 업데이트\n bridge.resolvePromise = this.createResolvePromiseHandler();\n bridge.finallyResolvePromise = this.createFinallyResolvePromiseHandler();\n\n if (isStorybookEnv() && window.parent) {\n // 스토리북에서는 현재 스토리가 iframe으로 로드되므로 앱에서 부모 프레임에 브릿지를 리턴해도 자식으로 전달되도록 보정하는 코드\n (window.parent as any)[this.promiseHandleName] = bridge;\n window.parent.dispatchEvent = (...args) => window.dispatchEvent.apply(null, args);\n }\n }\n\n /**\n * Promise 처리 함수(Native에서 호출)\n * @returns\n */\n private createResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n console.log('[NativeBridgeCore resolvePromise]::', promiseId, data, error);\n\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * Promise 최종 처리 함수\n * @returns\n */\n private createFinallyResolvePromiseHandler() {\n return (promiseId: string, data?: any, error?: any) => {\n const bridge = this.getPromiseHandleBridge();\n\n const promise: NativeBridgePromise | undefined = bridge.promises[promiseId];\n if (!promise) {\n console.error('[NativeBridgeCore resolvePromise] Promise not found::', promiseId);\n\n return;\n }\n\n try {\n if (error) {\n promise.reject(error);\n this.cleanupPromise(promiseId);\n\n return;\n }\n\n promise.resolve(data);\n this.cleanupPromise(promiseId);\n } catch (err) {\n console.error('[NativeBridgeCore resolvePromise] Error handling promise::', err);\n this.cleanupPromise(promiseId);\n }\n };\n }\n\n /**\n * 네이티브 통신\n * @param action\n * @param options\n * @returns\n */\n async callToTarget<T>(action: TAction, option: NativeBridgeOptions = {}): Promise<T> {\n return new Promise<T>((resolve, reject) => {\n const promiseId = `${action}_${this.generatePromiseId()}`;\n console.log('[NativeBridgeCore callToNative] promiseId::', promiseId);\n\n const bridge = this.getPromiseHandleBridge();\n\n // 바로 window.promiseHandler에 promises에 저장\n bridge.promises[promiseId] = {\n resolve: (value: T) => {\n resolve(value);\n },\n reject: (reason?: any) => {\n reject(reason);\n }\n };\n\n try {\n const command: NativeBridgeCommand = {\n action,\n promiseId,\n option\n };\n\n console.log('[NativeBridgeCore callToNative] command::', command);\n\n const platform = getDspExecutionEnvironment();\n\n if (platform === 'android-webview') {\n const callBridge = this.getCallBridge();\n callBridge?.callFromWeb?.(JSON.stringify(command));\n\n return;\n }\n\n if (platform === 'ios-webview') {\n const message = isFpPlannerApp()\n ? { ...command, service: 'native' } // 플래너: service 추가\n : command;\n\n (window.webkit?.messageHandlers as any)?.[this.callBridgeName]?.postMessage(JSON.stringify(message));\n\n return;\n }\n\n // 지원하지 않는 플랫폼\n console.warn(\n `[NativeBridgeCore callToNative] 현재 플랫폼(${platform})에서는 지원하지 않는 서비스(${action})입니다.`\n );\n this.cleanupPromise(promiseId);\n reject(new Error(`[NativeBridgeCore callToNative] Unsupported platform: ${platform}`));\n } catch (error) {\n console.error('[NativeBridgeCore callToNative] error::', error);\n this.cleanupPromise(promiseId);\n reject(error);\n }\n });\n }\n\n /**\n * promiseId를 초기화 해줍니다.\n * @param promiseId\n */\n private cleanupPromise(promiseId: string): void {\n const bridge = this.getPromiseHandleBridge();\n delete bridge.promises[promiseId];\n }\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n OnAuthenticationResultRequest,\n OnAuthenticationResultResponse,\n GetAccessTokenResponse,\n GetAnalyticsUserPropertyResponse,\n GetOzFontParamResponse,\n GetAppInfoResponse,\n DocumentCaptureResponse,\n RefreshAccessTokenResponse,\n DudExternalFileUploadResponse\n} from './native-bridge-dto.types';\nimport type {\n CommonOzBridgetResponseType,\n DownloadOzdOptions,\n OpenBrowserOptions,\n CreateOZViewerOptions,\n OpenWebOptions,\n localFetchBridgeOptions,\n SetHeaderTitleOptions,\n HideHeaderOptions,\n contractClearOptions,\n SetBackNavigationEnabledOptions,\n DudExternalFileUploadOptions,\n DocumentCaptureOptions,\n ShowAlertOptions\n} from './native-bridge-options.types';\nimport type { INativeBridge, NativeAction } from './native-bridge.types';\n\n/**\n * App - Web Bridge\n */\nexport class NativeBridge extends CommonBridge implements INativeBridge {\n private core: NativeBridgeCore<NativeAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeAction>();\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * getParameterMap\n * @returns\n */\n async getParameterMap<T = any>(): Promise<T> {\n return this.core.callToTarget<T>('getParameterMap');\n }\n\n /**\n * 기능명: 본인인증 결과 정보 넘기기\n * 목적: NXL One 에서 본인인증 결과 값을 네이티브로 넘기기 위함\n * @param options\n * @returns\n */\n async onAuthenticationResult(options: OnAuthenticationResultRequest): Promise<OnAuthenticationResultResponse> {\n return this.core.callToTarget('onAuthenticationResult', options);\n }\n\n /**\n * Access Token 가져오기\n * @returns\n */\n async getAccessToken(): Promise<GetAccessTokenResponse> {\n return this.core.callToTarget('getAccessToken');\n }\n\n /**\n * ### Bridge for Oz\n * 설정한 뷰어 파라미터를 기준으로 뷰어에 새로운 보고서를 바인딩합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const ozParam = [\"connection.openfile=sample.ozd\"]\n * await Bridge.native.createOZViewer({ param: ozParam.join(\"\\n\") });\n * ```\n */\n createOZViewer(options: CreateOZViewerOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>(\n 'createOZViewer',\n // delimiter 미입력시 \\n 으로 기본값 처리\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * OZ 뷰어를 닫습니다\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideOZViewer();\n * ```\n */\n hideOZViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOZViewer');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 OZD를 다운받는 브릿지입니다\n * @example\n * ```tsx\n * const options = {\n * // 현재 증권번호\n * policyNumber: \"300034894\",\n * // FP 사번\n * fpInfo: { \"uniqNo\": \"2210000\" }\n * // 서식 목록들\n * data: [{\n * // 서식에 대한 정보들\n * \"name\": \"[A0010]청약서\",\n * \"complete\": false,\n * \"startPage\": 0,\n * \"endPage\": 0,\n * \"focus\": false,\n * \"doc\": [{\n * // 서식에 속한 OZD 파일들\n * \"docCode\": \"A0010\",\n * \"fileID\": \"1HLqZJCNt6idLKkAA\",\n * \"imageFormatCode\": \"RT003001\",\n * \"imageDocumentTypeCode\": \"IT00\",\n * // ozd 파일이 다운로드된 경로\n * \"filePath\": \"\",\n * \"startPage\": 0,\n * \"endPage\": 0\n * }]\n * }, ],\n * }\n * await Bridge.native.downloadDocument(options)\n * ```\n */\n downloadDocument(options: DownloadOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<DownloadOzdOptions>>('downloadDocument', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 파라미터에서 사용할 폰트 설정들을 조회하는 브릿지입니다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.getOzFontParam()\n * ```\n */\n getOzFontParam() {\n return this.core.callToTarget<CommonOzBridgetResponseType<GetOzFontParamResponse>>('getOzFontParam');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 show\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showLoader()\n * ```\n */\n showLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showLoader');\n }\n\n /**\n * ### Bridge for Oz\n * 로더 컴포넌트 hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideLoader()\n * ```\n */\n hideLoader() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideLoader');\n }\n /**\n * ### Bridge for Oz\n * Alert 표시용 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.showAlert({\n * title: '모달 타이틀',\n * message: '모달 내용',\n * // 모달에 표시할 버튼들 설정\n * buttons: { close: false, main: \"확인\" }\n * })\n * ```\n */\n showAlert(options: ShowAlertOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<keyof ShowAlertOptions[\"buttons\"]>>('showAlert', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬에 있는 파일을 fetch하기 위한 url을 만들어주는 브릿지\n *\n * 파일의 절대경로는 saveSignImg 혹은 pdfExport시 확보할수 있다\n * @example\n * ```tsx\n * await Bridge.native.localFetchBridge({filePath: \"/data/0/~~~/file.ext\"});\n * ```\n */\n localFetchBridge(options: localFetchBridgeOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('localFetchBridge', options);\n }\n\n /**\n * ### Bridge for Oz\n * 태블릿 로컬의 특정 증번 폴더를 삭제한다(청약 완료 후 사용)\n *\n * @example\n * ```tsx\n * await Bridge.native.contractClear({policyNumber: \"300037459\"});\n * ```\n */\n contractClear(options: contractClearOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('contractClear', options);\n }\n\n /**\n * 홈 이동\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.goHome()\n * ```\n */\n goHome(): Promise<string> {\n return this.core.callToTarget('goHome');\n }\n\n /**\n * 전체메뉴 열기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.showMenu()\n * ```\n */\n showMenu(): Promise<string> {\n return this.core.callToTarget('showMenu');\n }\n\n /**\n * GA4 정보 얻기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n getAnalyticsUserProperty(): Promise<GetAnalyticsUserPropertyResponse> {\n return this.core.callToTarget('getAnalyticsUserProperty');\n }\n\n /**\n *외부 브라우저 호출\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAnalyticsUserProperty()\n * ```\n */\n openBrowser(options: OpenBrowserOptions): Promise<string> {\n return this.core.callToTarget('openBrowser', options);\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideWebPopup()\n * ```\n */\n hideWebPopup(): Promise<string> {\n return this.core.callToTarget('hideWebPopup');\n }\n\n /**\n * OnePass 인증\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.requestAuthentication()\n * ```\n */\n requestAuthentication(): Promise<string> {\n return this.core.callToTarget('requestAuthentication');\n }\n\n /**\n * 웹뷰 띄우기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.openWeb({ url: 'url', headerTitle: '타이틀', headerType: 'APP', removeNavStack: true });\n * ```\n */\n openWeb({ headerType = 'APP', removeNavStack = false, ...rest }: OpenWebOptions): Promise<string> {\n return this.core.callToTarget('openWeb', { headerType, removeNavStack, ...rest });\n }\n\n /**\n * 웹뷰 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.closeWeb()\n * ```\n */\n closeWeb(): Promise<string> {\n return this.core.callToTarget('closeWeb');\n }\n\n /**\n * 앱 종료\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.exitApp()\n * ```\n */\n exitApp(): Promise<string> {\n return this.core.callToTarget('exitApp');\n }\n\n /**\n * 앱 정보 가져오기\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.getAppInfo()\n * ```\n */\n getAppInfo(): Promise<GetAppInfoResponse> {\n return this.core.callToTarget('getAppInfo');\n }\n\n /**\n * 네이티브 헤더 타이틀 변경\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.setHeaderTitle({ headerTitle: '타이틀명' });\n * ```\n */\n setHeaderTitle(options: SetHeaderTitleOptions): Promise<string> {\n return this.core.callToTarget('setHeaderTitle', options);\n }\n\n /**\n * 네이티브 헤더 show / hide\n * @example\n * ```tsx\n * // 사용 예시\n * Bridge.native.hideHeader({ hideHeader: true });\n * ```\n */\n hideHeader(options: HideHeaderOptions): Promise<string> {\n return this.core.callToTarget('hideHeader', options);\n }\n\n /**\n * 네이티브 서류첨부 시 카메라 호출\n * @example\n * ```tsx\n * // 사용 예시\n * const { uri } = await Bridge.native.documentCapture();\n * ```\n */\n documentCapture(options?: DocumentCaptureOptions): Promise<DocumentCaptureResponse> {\n return this.core.callToTarget('documentCapture', options);\n }\n\n /**\n * 뒤로가기 on/off\n * 안드로이드 백키, iOS 스와이프 백 on/off\n * 백키로 종료되지 않아야 할 화면에서 사용 (청약 최종제출 등 업로드 / 중요 데이터 처리 등)\n *\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.native.setBackNavigationEnabled({ enableBackNav: true });\n * ```\n */\n setBackNavigationEnabled(options: SetBackNavigationEnabledOptions): Promise<string> {\n return this.core.callToTarget('setBackNavigationEnabled', options);\n }\n\n /**\n * 401 발생 시 앱에 갱신된 토큰을 요청하여 받음\n * 갱신 요청은 정확하게 한번만 요청 해야 함\n * 웹에서 여러 API 를 병렬로 동시에 호출 하는 케이스 등 AT 갱신은 정확하게 한번만 요청 해야 함!\n * 해당 브릿지에서 오류가 발생하는 케이스는 더 이상 앱 사용 불가 케이스 > 앱에서 처리\n *\n * @example\n * ```tsx\n * // 사용 예시\n * const { accessToken, tokenType } = await Bridge.native.refreshAccessToken();\n * ```\n */\n refreshAccessToken(): Promise<RefreshAccessTokenResponse> {\n return this.core.callToTarget('refreshAccessToken');\n }\n\n /**\n * DUD 외부 파일 업로드\n *\n * 단일 파일을 네이티브 영역으로 전달하여 DUD로 업로드합니다.\n * 네이티브에서 DUD API 호출 후 응답 DTO를 가공하지 않고 그대로 반환합니다.\n *\n * @param options - 파일 경로와 요청 헤더\n * @returns DUD 파일 업로드 응답 (dudFileMgmtId 포함)\n *\n * @example\n * ```tsx\n * const result = await Bridge.native.dudExternalFileUpload({\n * filePath: \"/data/0/OZRV/3000123123/TOTAL.pdf\",\n * headers: {\n * 'x-channel-business-work-division-code': businessWorkDivisionCode,\n * Authorization: token,\n * },\n * });\n *\n * if (result.isSuccess) {\n * console.log('업로드 성공:', result.data.dudFileMgmtId);\n * }\n * ```\n */\n dudExternalFileUpload(\n options: DudExternalFileUploadOptions\n ): Promise<CommonOzBridgetResponseType<DudExternalFileUploadResponse>> {\n return this.core.callToTarget('dudExternalFileUpload', options);\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { CommonBridge } from '../../common/common-bridge';\nimport { CommonOzBridgetResponseType } from '../bridge/native-bridge-options.types';\nimport { NativeBridgeCore } from '../core/native-bridge-core';\n\nimport type {\n GetInformationOptions,\n GetGlobalOptions,\n SetGlobalOptions,\n ScriptExOptions,\n ScriptOptions,\n TriggerExternalEventByDocIndexOptions,\n SavePdfOptions,\n SaveSignImgOptions,\n UpdateOzdOptions,\n createOzPdfViewerOptions\n} from './native-bridge-oz-options.types';\nimport type { INativeBridgeOz, NativeOzAction } from './native-bridge-oz.types';\n\n/**\n * App - Web Bridge(for OZ)\n */\nexport class NativeBridgeOz extends CommonBridge implements INativeBridgeOz {\n private core: NativeBridgeCore<NativeOzAction>;\n\n constructor() {\n super();\n this.core = new NativeBridgeCore<NativeOzAction>('n2OzBridge', 'n2ozBridge');\n }\n\n /**\n * Iframe, App 공통으로 구현해야할 함수\n */\n hello(): void {\n console.log('[NativeBridge] hello');\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 정보를 가져옵니다\n * @example\n * ```tsx\n * // 사용 예시:\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * // 리턴값이 null이 나올수 있음\n * const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });\n * ```\n */\n getInformation(options: GetInformationOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getInformation', options);\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 가져옵니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // OZ가 반환하는 모든 값은 문자열(string)입니다.\n * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.\n * await Bridge.nativeOz.getGlobal({ key: \"AAA\" })\n * ```\n */\n getGlobal(options: GetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>('getGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 전역 변수 값을 설정합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * // value 자리에 string이 아닌 값을 넣어도 getGlobal시 string으로 변환되어 리턴됩니다\n * Bridge.nativeOz.setGlobal({ key: \"AAA\", value: \"myValue\" });\n * ```\n */\n setGlobal(options: SetGlobalOptions) {\n // docIndex 미입력시 0번째 문서로 고정\n return this.core.callToTarget<CommonOzBridgetResponseType<boolean | null>>('setGlobal', Object.assign({ docIndex: 0 }, options));\n }\n\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * Bridge.nativeOz.script({ command });\n * ```\n */\n script(options: ScriptOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('script', options);\n }\n /**\n * ### Bridge for Oz\n * 오즈 뷰어의 기능을 제어합니다.\n * - `param`을 통해 오즈 뷰어의 parameter를 변경할수 있습니다\n * @example\n * ```tsx\n * // 사용 예시\n * const command = `movepage=2`;\n * const param1 = `eform.show_prev_next_input=true`;\n * const param2 = `eform.signpad_iconposition=sign_bottom`;\n * // param이 여러개인경우 \\n으로 묶는다\n * const param = `${param1}\\n${param2}`;\n * Bridge.nativeOz.scriptEX({ command, param });\n * ```\n */\n scriptEx(options: ScriptExOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'scriptEx',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 지정한 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.\n * - 서명이미지 크롭\n * - 중간저장 서명이미지 추출\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });\n * ```\n */\n triggerExternalEventByDocIndex(options: TriggerExternalEventByDocIndexOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<string | null>>(\n 'triggerExternalEventByDocIndex',\n Object.assign({ param1: '', param2: '', param3: '', param4: '' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 서식의 진행중/완료 상태를 업데이트하는 브릿지\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.updateOzDocumentStatus({ data: documentInfo });\n * ```\n */\n updateOzDocumentStatus(options: UpdateOzdOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('updateOzDocumentStatus', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식을 PDF로 export 요청\n * export 결과는 `OZViewerEvent.OZExportCommand`로 트리거 된다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.savePdf({\n * // PDF 저장은 증번폴더/파일이름.pdf로 생성\n * policyNumber,\n * param: [\n * // 저장할 파일명 설정\n * `pdf.filename=${fileName}.pdf`,\n * // 1페이지부터 마지막 페이지까지 저장\n * `export.pages=${startPage}-${endPage}`,\n * // 공통 PDF 내보내기 파라미터 추가\n * ...commonPdfExportParam\n * ].join('\\n')\n * });\n * ```\n */\n savePdf(options: SavePdfOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType<number | null>>(\n 'savePdf',\n Object.assign({ delimiter: '\\n' }, options)\n );\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에 출력되고있는 서식 중 서명부분을 이미지로 export\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });\n * ```\n */\n saveSignImg(options: SaveSignImgOptions) {\n return this.core.callToTarget<CommonOzBridgetResponseType>('saveSignImg', options);\n }\n\n /**\n * ### Bridge for Oz\n * 오즈뷰어에서 생성한 PDF를 보여주는 뷰어를 연다\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.createOzPdfViewer({ filePath: \"/data/0/app/total.pdf\" });\n * ```\n */\n createOzPdfViewer(options: createOzPdfViewerOptions) {\n // 비밀번호는 입력안하면 빈값으로 보낸다\n return this.core.callToTarget<CommonOzBridgetResponseType>('createOzPdfViewer', options);\n }\n\n /**\n * ### Bridge for Oz\n * PDF뷰어 닫기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideOzPdfViewer()\n * ```\n */\n hideOzPdfViewer() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideOzPdfViewer');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showSignatureShortcut();\n */\n showSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 서식 바로가기 버튼 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideSignatureShortcut();\n */\n hideSignatureShortcut() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideSignatureShortcut');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 화면에 표시하기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.showMissingFieldWarning();\n */\n showMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('showMissingFieldWarning');\n }\n /**\n * ### Bridge for Oz\n * 느낌표 버튼(미입력 서식 발생 알림 버튼) 숨기기\n * @example\n * ```tsx\n * // 사용 예시\n * await Bridge.nativeOz.hideMissingFieldWarning();\n */\n hideMissingFieldWarning() {\n return this.core.callToTarget<CommonOzBridgetResponseType>('hideMissingFieldWarning');\n }\n\n // TODO: 필요 플러그인들 추가\n}\n","import { IframeBridge } from './iframe/bridge/iframe-bridge';\nimport { IframeBridgeCore } from './iframe/core/iframe-bridge-core';\nimport { NativeBridge } from './native/bridge/native-bridge';\nimport { NativeBridgeOz } from './native/bridge-oz/native-bridge-oz';\nimport { NativeBridgeCore } from './native/core/native-bridge-core';\n\nexport const Bridge = {\n native: new NativeBridge(),\n nativeOz: new NativeBridgeOz(),\n iframe: new IframeBridge(),\n nativeCore: new NativeBridgeCore(),\n iframeCore: new IframeBridgeCore()\n};\n\nexport type * from './native/bridge/native-bridge-dto.types';\nexport type * from \"./native/bridge/native-bridge-options.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-dto.types\";\nexport type * from \"./native/bridge-oz/native-bridge-oz-options.types\";\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sales-frontend-bridge",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.109",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -26,11 +26,11 @@
|
|
|
26
26
|
"@types/react-dom": "19.1.1",
|
|
27
27
|
"tsup": "^8.4.0",
|
|
28
28
|
"typescript": "5.8.2",
|
|
29
|
-
"sales-frontend-
|
|
30
|
-
"
|
|
29
|
+
"eslint-config-sales-frontend-eslint-config-v8": "^0.0.7",
|
|
30
|
+
"sales-frontend-typescript-config": "0.0.2"
|
|
31
31
|
},
|
|
32
32
|
"dependencies": {
|
|
33
|
-
"sales-frontend-utils": "0.0.
|
|
33
|
+
"sales-frontend-utils": "0.0.61"
|
|
34
34
|
},
|
|
35
35
|
"scripts": {
|
|
36
36
|
"lint": "eslint . --max-warnings 0",
|