sales-frontend-bridge 0.0.42 → 0.0.44

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.cjs CHANGED
@@ -1803,6 +1803,7 @@ var NativeBridge = class extends CommonBridge {
1803
1803
  createOZViewer(options) {
1804
1804
  return this.core.callToTarget(
1805
1805
  "createOZViewer",
1806
+ // delimiter 미입력시 \n 으로 기본값 처리
1806
1807
  Object.assign({ delimiter: "\n" }, options)
1807
1808
  );
1808
1809
  }
@@ -1823,34 +1824,33 @@ var NativeBridge = class extends CommonBridge {
1823
1824
  * 오즈 파라미터에서 사용할 OZD를 다운받는 브릿지입니다
1824
1825
  * @example
1825
1826
  * ```tsx
1826
- * const data = [
1827
- * { name: "문서1", file: ["doc1.ozd"], complete: true },
1828
- * { name: "문서2", file: ["doc2.ozd", "doc3.ozd"], complete: true }
1829
- * ]
1830
- * await Bridge.native.downloadDocument(data)
1831
- * ```
1832
- * returnData는 file 경로가 절대경로로 매핑되어 돌아온다
1833
- * ```json
1834
- * {
1835
- * "action":"downloadDocument",
1836
- * "data":[
1837
- * {
1838
- * "name":"aaa",
1839
- * "file":[
1840
- * "/data/user/0/com.hanwhalife.ssp.stg/files/A0010.ozd",
1841
- * "/data/user/0/com.hanwhalife.ssp.stg/files/C0401.ozd"
1842
- * ],
1843
- * "complete":false
1844
- * },
1845
- * {
1846
- * "name":"bbb",
1847
- * "file":[
1848
- * "/data/user/0/com.hanwhalife.ssp.stg/files/A1500.ozd"
1849
- * ],
1850
- * "complete":false
1851
- * }
1852
- * ]
1827
+ * const options = {
1828
+ * // 현재 증권번호
1829
+ * policyNumber: "300034894",
1830
+ * // FP 사번
1831
+ * fpInfo: { "uniqNo": "2210000" }
1832
+ * // 서식 목록들
1833
+ * data: [{
1834
+ * // 서식에 대한 정보들
1835
+ * "name": "[A0010]청약서",
1836
+ * "complete": false,
1837
+ * "startPage": 0,
1838
+ * "endPage": 0,
1839
+ * "focus": false,
1840
+ * "doc": [{
1841
+ * // 서식에 속한 OZD 파일들
1842
+ * "docCode": "A0010",
1843
+ * "fileID": "1HLqZJCNt6idLKkAA",
1844
+ * "imageFormatCode": "RT003001",
1845
+ * "imageDocumentTypeCode": "IT00",
1846
+ * // ozd 파일이 다운로드된 경로
1847
+ * "filePath": "",
1848
+ * "startPage": 0,
1849
+ * "endPage": 0
1850
+ * }]
1851
+ * }, ],
1853
1852
  * }
1853
+ * await Bridge.native.downloadDocument(options)
1854
1854
  * ```
1855
1855
  */
1856
1856
  async downloadDocument(options) {
@@ -1869,6 +1869,7 @@ var NativeBridge = class extends CommonBridge {
1869
1869
  return this.core.callToTarget("getOzFontParam");
1870
1870
  }
1871
1871
  /**
1872
+ * ### Bridge for Oz
1872
1873
  * 로더 컴포넌트 show
1873
1874
  * @example
1874
1875
  * ```tsx
@@ -1880,6 +1881,7 @@ var NativeBridge = class extends CommonBridge {
1880
1881
  return this.core.callToTarget("showLoader");
1881
1882
  }
1882
1883
  /**
1884
+ * ### Bridge for Oz
1883
1885
  * 로더 컴포넌트 hide
1884
1886
  * @example
1885
1887
  * ```tsx
@@ -1890,6 +1892,19 @@ var NativeBridge = class extends CommonBridge {
1890
1892
  async hideLoader() {
1891
1893
  return this.core.callToTarget("hideLoader");
1892
1894
  }
1895
+ /**
1896
+ * ### Bridge for Oz
1897
+ * 태블릿 로컬에 있는 파일을 fetch하기 위한 url을 만들어주는 브릿지
1898
+ *
1899
+ * 파일의 절대경로는 saveSignImg 혹은 pdfExport시 확보할수 있다
1900
+ * @example
1901
+ * ```tsx
1902
+ * await Bridge.native.localFetchBridge({filePath: "/data/0/~~~/file.ext"});
1903
+ * ```
1904
+ */
1905
+ async localFetchBridge(options) {
1906
+ return this.core.callToTarget("localFetchBridge", options);
1907
+ }
1893
1908
  /**
1894
1909
  * 홈 이동
1895
1910
  * @example
@@ -2010,8 +2025,10 @@ var NativeBridgeOz = class extends CommonBridge {
2010
2025
  * 오즈 뷰어의 정보를 가져옵니다
2011
2026
  * @example
2012
2027
  * ```tsx
2013
- * // 사용 예시
2014
- * await Bridge.native.getInformation({ command: "INPUT_JSON" });
2028
+ * // 사용 예시:
2029
+ * // OZ가 반환하는 모든 값은 문자열(string)입니다.
2030
+ * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.
2031
+ * const { data } = await Bridge.nativeOz.getInformation({ command: 'INPUT_JSON' });
2015
2032
  * ```
2016
2033
  */
2017
2034
  async getInformation(options) {
@@ -2023,7 +2040,9 @@ var NativeBridgeOz = class extends CommonBridge {
2023
2040
  * @example
2024
2041
  * ```tsx
2025
2042
  * // 사용 예시
2026
- * await Bridge.native.getGlobal({ key: "AAA" })
2043
+ * // OZ가 반환하는 모든 값은 문자열(string)입니다.
2044
+ * // 숫자도 '1', boolean도 'true' 형태로 전달됩니다.
2045
+ * await Bridge.nativeOz.getGlobal({ key: "AAA" })
2027
2046
  * ```
2028
2047
  */
2029
2048
  async getGlobal(options) {
@@ -2035,7 +2054,8 @@ var NativeBridgeOz = class extends CommonBridge {
2035
2054
  * @example
2036
2055
  * ```tsx
2037
2056
  * // 사용 예시
2038
- * Bridge.native.setGlobal({ key: "AAA", value: JSON.stringify({ aaa: 111 }) });
2057
+ * // value 자리에 string이 아닌 값을 넣어도 getGlobal시 string으로 변환되어 리턴됩니다
2058
+ * Bridge.nativeOz.setGlobal({ key: "AAA", value: "myValue" });
2039
2059
  * ```
2040
2060
  */
2041
2061
  setGlobal(options) {
@@ -2048,7 +2068,7 @@ var NativeBridgeOz = class extends CommonBridge {
2048
2068
  * ```tsx
2049
2069
  * // 사용 예시
2050
2070
  * const command = `movepage=2`;
2051
- * Bridge.native.script({ command });
2071
+ * Bridge.nativeOz.script({ command });
2052
2072
  * ```
2053
2073
  */
2054
2074
  script(options) {
@@ -2066,7 +2086,7 @@ var NativeBridgeOz = class extends CommonBridge {
2066
2086
  * const param2 = `eform.signpad_iconposition=sign_bottom`;
2067
2087
  * // param이 여러개인경우 \n으로 묶는다
2068
2088
  * const param = `${param1}\n${param2}`;
2069
- * Bridge.native.scriptEX({ command, param });
2089
+ * Bridge.nativeOz.scriptEX({ command, param });
2070
2090
  * ```
2071
2091
  */
2072
2092
  scriptEx(options) {
@@ -2078,10 +2098,12 @@ var NativeBridgeOz = class extends CommonBridge {
2078
2098
  /**
2079
2099
  * ### Bridge for Oz
2080
2100
  * 현재 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.
2101
+ * - 서명이미지 크롭
2102
+ * - 중간저장 서명이미지 추출
2081
2103
  * @example
2082
2104
  * ```tsx
2083
2105
  * // 사용 예시
2084
- * await Bridge.native.triggerExternalEvent({ param1: 'signer' });
2106
+ * await Bridge.nativeOz.triggerExternalEvent({ param1: 'signer' });
2085
2107
  * ```
2086
2108
  */
2087
2109
  async triggerExternalEvent(options) {
@@ -2093,10 +2115,12 @@ var NativeBridgeOz = class extends CommonBridge {
2093
2115
  /**
2094
2116
  * ### Bridge for Oz
2095
2117
  * 지정한 보고서의 `OnExternalEvent` 이벤트를 실행하고, `OnExternalEvent` 이벤트에서 전달한 값을 string 형태로 리턴받습니다.
2118
+ * - 서명이미지 크롭
2119
+ * - 중간저장 서명이미지 추출
2096
2120
  * @example
2097
2121
  * ```tsx
2098
2122
  * // 사용 예시
2099
- * await Bridge.native.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });
2123
+ * await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: 0, param1: 'signer' });
2100
2124
  * ```
2101
2125
  */
2102
2126
  async triggerExternalEventByDocIndex(options) {
@@ -2108,17 +2132,23 @@ var NativeBridgeOz = class extends CommonBridge {
2108
2132
  /**
2109
2133
  * ### Bridge for Oz
2110
2134
  * 서식의 진행중/완료 상태를 업데이트하는 브릿지
2135
+ * @example
2136
+ * ```tsx
2137
+ * // 사용 예시
2138
+ * await Bridge.nativeOz.updateOzDocumentStatus(document);
2139
+ * ```
2111
2140
  */
2112
2141
  async updateOzDocumentStatus(options) {
2113
2142
  return this.core.callToTarget("updateOzDocumentStatus", options);
2114
2143
  }
2115
2144
  /**
2116
2145
  * ### Bridge for Oz
2117
- * 오즈뷰어에 출력되고있는 서식을 PDF로 export
2146
+ * 오즈뷰어에 출력되고있는 서식을 PDF로 export 요청
2147
+ * export 결과는 `OZViewerEvent.OZExportCommand`로 트리거 된다
2118
2148
  * @example
2119
2149
  * ```tsx
2120
2150
  * // 사용 예시
2121
- * await Bridge.native.savePdf({ exportType: "PDF", fileName: "test.pdf", startPage: 1, endPage: 1 })
2151
+ * await Bridge.nativeOz.savePdf({ exportType: "PDF", fileName: "test.pdf", startPage: 1, endPage: 1 })
2122
2152
  * ```
2123
2153
  */
2124
2154
  async savePdf(options) {
@@ -2133,7 +2163,7 @@ var NativeBridgeOz = class extends CommonBridge {
2133
2163
  * @example
2134
2164
  * ```tsx
2135
2165
  * // 사용 예시
2136
- * await Bridge.native.saveSignImg({ exportType: "IMG", fileName: "sign.png", signImageKey: "SIGN_IMG" })
2166
+ * await Bridge.nativeOz.saveSignImg({ fileName: 'sign.png', signImageKey: 'A0010_mynm_sg', policyNumber });
2137
2167
  * ```
2138
2168
  */
2139
2169
  async saveSignImg(options) {
@@ -2145,7 +2175,7 @@ var NativeBridgeOz = class extends CommonBridge {
2145
2175
  * @example
2146
2176
  * ```tsx
2147
2177
  * // 사용 예시
2148
- * await Bridge.native.createOzPdfViewer({ filename: "total.pdf", filepaths: "/data/0/app/total.pdf", password: "" })
2178
+ * await Bridge.nativeOz.createOzPdfViewer({ filePath: "/data/0/app/total.pdf" });
2149
2179
  * ```
2150
2180
  */
2151
2181
  async createOzPdfViewer(options) {
@@ -2157,38 +2187,69 @@ var NativeBridgeOz = class extends CommonBridge {
2157
2187
  * @example
2158
2188
  * ```tsx
2159
2189
  * // 사용 예시
2160
- * await Bridge.native.hideOzPdfViewer()
2190
+ * await Bridge.nativeOz.hideOzPdfViewer()
2161
2191
  * ```
2162
2192
  */
2163
2193
  async hideOzPdfViewer() {
2164
2194
  return this.core.callToTarget("hideOzPdfViewer");
2165
2195
  }
2166
2196
  /**
2197
+ * ### Bridge for Oz
2167
2198
  * 서식 바로가기 버튼 화면에 표시하기
2199
+ * @example
2200
+ * ```tsx
2201
+ * // 사용 예시
2202
+ * await Bridge.nativeOz.showSignatureShortcut();
2168
2203
  */
2169
2204
  async showSignatureShortcut() {
2170
2205
  return this.core.callToTarget("showSignatureShortcut");
2171
2206
  }
2172
2207
  /**
2208
+ * ### Bridge for Oz
2173
2209
  * 서식 바로가기 버튼 숨기기
2210
+ * @example
2211
+ * ```tsx
2212
+ * // 사용 예시
2213
+ * await Bridge.nativeOz.hideSignatureShortcut();
2174
2214
  */
2175
2215
  async hideSignatureShortcut() {
2176
2216
  return this.core.callToTarget("hideSignatureShortcut");
2177
2217
  }
2178
2218
  /**
2219
+ * ### Bridge for Oz
2179
2220
  * 느낌표 버튼(미입력 서식 발생 알림 버튼) 화면에 표시하기
2221
+ * @example
2222
+ * ```tsx
2223
+ * // 사용 예시
2224
+ * await Bridge.nativeOz.showMissingFieldWarning();
2180
2225
  */
2181
2226
  async showMissingFieldWarning() {
2182
2227
  return this.core.callToTarget("showMissingFieldWarning");
2183
2228
  }
2184
2229
  /**
2230
+ * ### Bridge for Oz
2185
2231
  * 느낌표 버튼(미입력 서식 발생 알림 버튼) 숨기기
2232
+ * @example
2233
+ * ```tsx
2234
+ * // 사용 예시
2235
+ * await Bridge.nativeOz.hideMissingFieldWarning();
2186
2236
  */
2187
2237
  async hideMissingFieldWarning() {
2188
2238
  return this.core.callToTarget("hideMissingFieldWarning");
2189
2239
  }
2190
2240
  /**
2191
- * Alert 표시하기
2241
+ * ### Bridge for Oz
2242
+ * Alert 표시용 브릿지
2243
+ * @example
2244
+ * ```tsx
2245
+ * // 사용 예시
2246
+ * await Bridge.nativeOz.showAlert({
2247
+ * title: '모달 타이틀',
2248
+ * message: '모달 내용',
2249
+ * // 모달에 표시할 버튼들 설정
2250
+ * buttons: { close: false, main: "확인" }
2251
+ * })
2252
+ * ```
2192
2253
  */
2193
2254
  async showAlert(options) {
2194
2255
  return this.core.callToTarget("showAlert", options);
@@ -2357,19 +2418,19 @@ var commonPdfExportParam = [
2357
2418
  var wrapperStyle = { display: "flex", flexFlow: "column", gap: "10px" };
2358
2419
  var btnStyle = { border: "1px solid red", minHeight: "40px" };
2359
2420
  var DownloadDocumentList = [
2360
- { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "DnDwwjCNoyKPrKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2361
- // { name: '[A0100]비교안내확인서', doc: [{ docCode: 'A0100', fileID: 'WaFvafCNoyN9MKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2362
- // { name: '[A0900]상품설명서', doc: [{ docCode: 'A0900', fileID: 'DYYVmcCNoyVCIKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2363
- // { name: '[A1500]청약부속정보확인서', doc: [{ docCode: 'A1500', fileID: 's4reYCCNoyeMOKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2364
- // { name: '[A2215]보험계약대출이행관리동의서', doc: [{ docCode: 'A2215', fileID: 'iqcUYECNoyiEmKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2365
- // { name: '[A2800]계약전알릴의무', doc: [{ docCode: 'A2800', fileID: 'OAzjftCNoyn7MKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2366
- // { name: '[A3503]청약서별지(변액용)', doc: [{ docCode: 'A3503', fileID: 'gG68cJCNoyvItKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2367
- // { name: '[B0101]보험계약체결동의서', doc: [{ docCode: 'B0101', fileID: 'egYx4aCNoy7qbKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2368
- { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", doc: [{ docCode: "C0400", fileID: "9ovagwCNoy-6DKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2369
- // { name: '[C0401]상품소개상세동의서', doc: [{ docCode: 'C0401', fileID: 'NQHHzNCNozQD9KkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2370
- { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", doc: [{ docCode: "C1000", fileID: "FSEeZ3CNozTrTKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
2371
- // { name: '[C1300]계약체결고지의무확인서', doc: [{ docCode: 'C1300', fileID: 'D1MxpkCNozYJgKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2372
- // { name: '[C1400]보험상품비교설명확인서', doc: [{ docCode: 'C1400', fileID: 'v6vgqOCNozcBkKkAA', imageFormatCode: 'RT003001', imageDocumentTypeCode: 'IT00', filePath: '', startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2421
+ { name: "[A0010]\uCCAD\uC57D\uC11C", doc: [{ docCode: "A0010", fileID: "1HLqZJCNt6idLKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2422
+ { name: "[A0100]\uBE44\uAD50\uC548\uB0B4\uD655\uC778\uC11C", doc: [{ docCode: "A0100", fileID: "EAq0B3CNt6owpKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2423
+ { name: "[A0900]\uC0C1\uD488\uC124\uBA85\uC11C", doc: [{ docCode: "A0900", fileID: "dwKuNnCNvAFegKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2424
+ { name: "[A1500]\uCCAD\uC57D\uBD80\uC18D\uC815\uBCF4\uD655\uC778\uC11C", doc: [{ docCode: "A1500", fileID: "PsxOl1CNvAKxyKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2425
+ { name: "[A2215]\uBCF4\uD5D8\uACC4\uC57D\uB300\uCD9C\uC774\uD589\uAD00\uB9AC\uB3D9\uC758\uC11C", doc: [{ docCode: "A2215", fileID: "hV621tCNt6smxKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2426
+ { name: "[A2800]\uACC4\uC57D\uC804\uC54C\uB9B4\uC758\uBB34", doc: [{ docCode: "A2800", fileID: "gyQRHMCNt6voUKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2427
+ { name: "[A3503]\uCCAD\uC57D\uC11C\uBCC4\uC9C0(\uBCC0\uC561\uC6A9)", doc: [{ docCode: "A3503", fileID: "88U1i3CNt6yWQKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2428
+ { name: "[B0101]\uBCF4\uD5D8\uACC4\uC57D\uCCB4\uACB0\uB3D9\uC758\uC11C", doc: [{ docCode: "B0101", fileID: "amlL4FCNvAPmLKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2429
+ { name: "[C0400]\uACC4\uC57D\uCCB4\uACB0\uC774\uD589\uB3D9\uC758\uC11C", doc: [{ docCode: "C0400", fileID: "K75MXgCNt65INKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2430
+ { name: "[C0401]\uC0C1\uD488\uC18C\uAC1C\uC0C1\uC138\uB3D9\uC758\uC11C", doc: [{ docCode: "C0401", fileID: "oA6EGZCNt6-9aKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2431
+ { name: "[C1000]\uBCF4\uD5D8\uC0C1\uD488\uD310\uB9E4\uCCB4\uD06C\uB9AC\uC2A4\uD2B8", doc: [{ docCode: "C1000", fileID: "0ah3K7CNt7D5PKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2432
+ { name: "[C1300]\uACC4\uC57D\uCCB4\uACB0\uACE0\uC9C0\uC758\uBB34\uD655\uC778\uC11C", doc: [{ docCode: "C1300", fileID: "wuhu3kCNt7HmEKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false },
2433
+ { name: "[C1400]\uBCF4\uD5D8\uC0C1\uD488\uBE44\uAD50\uC124\uBA85\uD655\uC778\uC11C", doc: [{ docCode: "C1400", fileID: "gVUw81CNt7KVqKkAA", imageFormatCode: "RT003001", imageDocumentTypeCode: "IT00", filePath: "", startPage: 0, endPage: 0 }], complete: false, startPage: 0, endPage: 0, focus: false }
2373
2434
  ];
2374
2435
  var ExtraData = {
2375
2436
  // 문서코드
@@ -2392,7 +2453,7 @@ var ExtraData = {
2392
2453
  };
2393
2454
  var policyNumber = "300034894";
2394
2455
  var fpInfo = { uniqNo: "2210000" };
2395
- var roleCode = [`11`, `21`];
2456
+ var roleCode = [`11`, `28`];
2396
2457
 
2397
2458
  // src/oz/hooks/use-document-info.tsx
2398
2459
  var import_react = __toESM(require_react());
@@ -2472,6 +2533,7 @@ var OZViewerEvent = /* @__PURE__ */ ((OZViewerEvent2) => {
2472
2533
  })(OZViewerEvent || {});
2473
2534
  var OZTriggerExternalEvent = /* @__PURE__ */ ((OZTriggerExternalEvent2) => {
2474
2535
  OZTriggerExternalEvent2["GetDraftData"] = "getDraftData";
2536
+ OZTriggerExternalEvent2["CropImage"] = "cropimage";
2475
2537
  return OZTriggerExternalEvent2;
2476
2538
  })(OZTriggerExternalEvent || {});
2477
2539
 
@@ -2864,9 +2926,77 @@ async function fetchFont() {
2864
2926
  const fontParms = Object.keys(fontMap).map((i) => `font.${i}=${fontMap[i]}`);
2865
2927
  return fontParms;
2866
2928
  }
2929
+ function base64ToBlob(base64) {
2930
+ const [meta, data] = base64.split(",");
2931
+ if (meta === void 0) {
2932
+ throw new Error(`unexpected sing image ${base64}`);
2933
+ }
2934
+ const mime = meta.match(/:(.*?);/)?.[1] || "";
2935
+ const bytes = Uint8Array.from(atob(data || base64), (c) => c.charCodeAt(0));
2936
+ return new Blob([bytes], { type: mime });
2937
+ }
2938
+ async function postFiletoDud(imageStr) {
2939
+ const formData = new FormData();
2940
+ formData.append("data", base64ToBlob(imageStr), "test.png");
2941
+ formData.append("fileIdentifierValue", "string");
2942
+ formData.append("fileExtendContent1", "string");
2943
+ formData.append("fileExtendContent2", "string");
2944
+ formData.append("preservationTerm", "1");
2945
+ formData.append("fileType", "png");
2946
+ const response = await fetch("/api/v1/post/file", {
2947
+ headers: {
2948
+ "x-channel-appversion": "3.1",
2949
+ "x-channel-carriername": "SK",
2950
+ "x-channel-deviceid": "deviceid",
2951
+ "x-channel-devicemodel": "iPHONE13",
2952
+ "x-channel-formfactor": "Phone",
2953
+ "x-channel-loginchannel": "DSP",
2954
+ "x-channel-logintype": "ONPA_PIN",
2955
+ "x-channel-networktype": "LTE",
2956
+ "x-channel-platformversion": "15.4.1",
2957
+ "x-channel-screenid": "ScreenId",
2958
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
2959
+ "x-x-channel-platformname": "IOS"
2960
+ },
2961
+ method: "POST",
2962
+ body: formData
2963
+ });
2964
+ const json = await response.json();
2965
+ return json;
2966
+ }
2967
+ async function getFileFromDud(fileMgmtId) {
2968
+ const outputType = "binary";
2969
+ const response = await fetch("/api/v1/get/file", {
2970
+ headers: {
2971
+ "content-type": "application/json",
2972
+ "x-channel-appversion": "3.1",
2973
+ "x-channel-carriername": "SK",
2974
+ "x-channel-deviceid": "deviceid",
2975
+ "x-channel-devicemodel": "iPHONE13",
2976
+ "x-channel-formfactor": "Phone",
2977
+ "x-channel-loginchannel": "DSP",
2978
+ "x-channel-logintype": "ONPA_PIN",
2979
+ "x-channel-networktype": "LTE",
2980
+ "x-channel-platformversion": "15.4.1",
2981
+ "x-channel-screenid": "ScreenId",
2982
+ "x-dud-authorization": "Bearer eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJXNWRtc1g1MkVWZGV0YThJRy90YmlZY281bnVCdzRZOXhGZjlWakZzdWxnbU00YnkiLCJpYXQiOjE3NjEwNDMyNjgsImV4cCI6MTc2NjI5OTI2OH0.KDnF7ZhkmnEApGCvOcItwcHnLWe5iJu64g93GACT2yo",
2983
+ "x-x-channel-platformname": "IOS"
2984
+ },
2985
+ method: "POST",
2986
+ body: JSON.stringify({ fileMgmtId, outputType })
2987
+ });
2988
+ const blob = await response.blob();
2989
+ const base64String = await new Promise((resolve, reject) => {
2990
+ const reader = new FileReader();
2991
+ reader.onloadend = () => resolve(reader.result);
2992
+ reader.onerror = reject;
2993
+ reader.readAsDataURL(blob);
2994
+ });
2995
+ return base64String;
2996
+ }
2867
2997
 
2868
2998
  // src/oz/utils/bridge-util/create-report-util.ts
2869
- async function CreateOzParam(documentList, extraData = {}) {
2999
+ async function CreateOzParam({ documentList, extraData = {}, roleCd }) {
2870
3000
  if (documentList.length === 0) {
2871
3001
  throw new Error("\uBB38\uC11C\uBAA9\uB85D\uC774 \uBE44\uC5B4\uC788\uC2B5\uB2C8\uB2E4");
2872
3002
  }
@@ -2886,7 +3016,8 @@ async function CreateOzParam(documentList, extraData = {}) {
2886
3016
  const args = [
2887
3017
  // 모든서식에 공통으로 필요한 docCd param 추가
2888
3018
  `docCd=${docCode}`,
2889
- `roleCd=11,28`,
3019
+ // `roleCd=11,28`,
3020
+ `${roleCd}`,
2890
3021
  ...ensureArray(data.args)
2891
3022
  ];
2892
3023
  args.forEach((arg, idx2) => result.push(`${prefix}connection.args${idx2 + 1}=${arg}`));
@@ -2926,7 +3057,7 @@ async function triggerCropImageOnAllDocuments(reportCount) {
2926
3057
  const count = reportCount ?? await getReportCountMemo();
2927
3058
  for (let i = 0; i < count; i++) {
2928
3059
  await sleep();
2929
- await Bridge.nativeOz.triggerExternalEventByDocIndex({ docIndex: Number(i), param1: "cropimage" });
3060
+ await Bridge.nativeOz.triggerExternalEventByDocIndex({ param1: "cropimage" /* CropImage */, docIndex: Number(i) });
2930
3061
  }
2931
3062
  }
2932
3063
  async function getTotalPageOnAllDocuments(reportCount) {
@@ -2963,6 +3094,22 @@ async function triggerDraftDataByIndexList(indexList) {
2963
3094
  await Bridge.nativeOz.triggerExternalEventByDocIndex({ param1: "getDraftData" /* GetDraftData */, docIndex: indexList[i] });
2964
3095
  }
2965
3096
  }
3097
+ var valueChangeDebounceMap = /* @__PURE__ */ new Map();
3098
+ function getDebouncedValueChangeHandler(docIndex, onValueChanged) {
3099
+ const DEBOUNCE_DELAY = 1e3 * 1;
3100
+ const existingHandler = valueChangeDebounceMap.get(docIndex);
3101
+ if (existingHandler) {
3102
+ return existingHandler;
3103
+ }
3104
+ const debouncedHandler = salesFrontendUtils.debounce((idx) => {
3105
+ onValueChanged(idx);
3106
+ }, DEBOUNCE_DELAY);
3107
+ valueChangeDebounceMap.set(docIndex, debouncedHandler);
3108
+ return debouncedHandler;
3109
+ }
3110
+ function clearValueChangeDebounceHandlers() {
3111
+ valueChangeDebounceMap.clear();
3112
+ }
2966
3113
  /*! Bundled license information:
2967
3114
 
2968
3115
  react/cjs/react.production.js:
@@ -3007,6 +3154,7 @@ exports.btnStyle = btnStyle;
3007
3154
  exports.categorizeByPageRange = categorizeByPageRange;
3008
3155
  exports.checkDocumentsValidityByIndex = checkDocumentsValidityByIndex;
3009
3156
  exports.checkValidPageMemo = checkValidPageMemo;
3157
+ exports.clearValueChangeDebounceHandlers = clearValueChangeDebounceHandlers;
3010
3158
  exports.commentPenEraser = commentPenEraser;
3011
3159
  exports.commentPenGreen = commentPenGreen;
3012
3160
  exports.commentPenPink = commentPenPink;
@@ -3021,13 +3169,16 @@ exports.fetchDocument = fetchDocument;
3021
3169
  exports.fetchFont = fetchFont;
3022
3170
  exports.fpInfo = fpInfo;
3023
3171
  exports.getCurrentPage = getCurrentPage;
3172
+ exports.getDebouncedValueChangeHandler = getDebouncedValueChangeHandler;
3024
3173
  exports.getDraftDataHandler = getDraftDataHandler;
3174
+ exports.getFileFromDud = getFileFromDud;
3025
3175
  exports.getFileListByGlobalIndex = getFileListByGlobalIndex;
3026
3176
  exports.getReportCountMemo = getReportCountMemo;
3027
3177
  exports.getTotalPageMemo = getTotalPageMemo;
3028
3178
  exports.getTotalPageOnAllDocuments = getTotalPageOnAllDocuments;
3029
3179
  exports.isCommentMode = isCommentMode;
3030
3180
  exports.policyNumber = policyNumber;
3181
+ exports.postFiletoDud = postFiletoDud;
3031
3182
  exports.roleCode = roleCode;
3032
3183
  exports.setCheckEform = setCheckEform;
3033
3184
  exports.setDisableCommentMode = setDisableCommentMode;