sk-front-lib 0.17.57 → 0.17.58

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.
@@ -13,6 +13,7 @@ export var SkPaymentStatus;
13
13
  SkPaymentStatus["Kakao"] = "KAKAO";
14
14
  SkPaymentStatus["Payco"] = "PAYCO";
15
15
  SkPaymentStatus["Toss"] = "TOSS";
16
+ SkPaymentStatus["Vbank"] = "VBANK";
16
17
  })(SkPaymentStatus || (SkPaymentStatus = {}));
17
18
  export function getSkPaymentStatusText(status) {
18
19
  switch (status) {
@@ -29,8 +30,44 @@ export function getSkPaymentStatusText(status) {
29
30
  case SkPaymentStatus.Naver:
30
31
  case SkPaymentStatus.NaverPG:
31
32
  return '네이버페이';
33
+ case SkPaymentStatus.Vbank:
34
+ // Plan SC-B / FR-04 — PG 브랜드 노출 제거 (vbank-payment-phase3, develop_admin 포팅)
35
+ return '가상계좌';
32
36
  default:
33
37
  return status;
34
38
  }
35
39
  }
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9tb2RlbC9zcmMvbGliL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQiwrQkFBbUIsQ0FBQTtJQUNuQixnQ0FBb0IsQ0FBQTtBQUN4QixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQVNYO0FBVEQsV0FBWSxlQUFlO0lBQ3ZCLHdDQUFxQixDQUFBO0lBQ3JCLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLHVDQUFvQixDQUFBO0lBQ3BCLGtDQUFlLENBQUE7SUFDZixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtBQUNqQixDQUFDLEVBVFcsZUFBZSxLQUFmLGVBQWUsUUFTMUI7QUFxQkQsTUFBTSxVQUFVLHNCQUFzQixDQUFDLE1BQXVCO0lBQzFELFFBQVEsTUFBTSxFQUFFO1FBQ1osS0FBSyxlQUFlLENBQUMsUUFBUTtZQUN6QixPQUFPLE9BQU8sQ0FBQztRQUNuQixLQUFLLGVBQWUsQ0FBQyxJQUFJO1lBQ3JCLE9BQU8sZUFBZSxDQUFDO1FBQzNCLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxlQUFlLENBQUM7UUFDM0IsS0FBSyxlQUFlLENBQUMsS0FBSztZQUN0QixPQUFPLE9BQU8sQ0FBQztRQUNuQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sT0FBTyxDQUFDO1FBQ25CLEtBQUssZUFBZSxDQUFDLEtBQUssQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxPQUFPO1lBQ3hCLE9BQU8sT0FBTyxDQUFDO1FBQ25CO1lBQ0ksT0FBTyxNQUFNLENBQUM7S0FDckI7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gU2tQZ1R5cGUge1xuICAgIE5pY2VQYXkgPSAnTklDRVBBWScsXG4gICAgVG9zc1BheW1lbnQgPSAnVE9TUydcbn1cblxuZXhwb3J0IGVudW0gU2tQYXltZW50U3RhdHVzIHtcbiAgICBUcmFuc2ZlciA9ICdUUkFOU0ZFUicsICAgICAgICAgIC8vIOustO2GteyepSDsnoXquIhcbiAgICBDYXJkID0gJ0NBUkQnLCAgICAgICAgICAgICAgICAgIC8vIOydvOuwmCDsubTrk5zqsrDsoJxcbiAgICBDYXJkMiA9ICdDQVJEMicsICAgICAgICAgICAgICAgIC8vIOustOydtOyekCDtlaDrtoAg7Lm065Oc6rKw7KCcXG4gICAgTmF2ZXIgPSAnTkFWRVInLCAgICAgICAgICAgICAgICAvLyDrhKTsnbTrsoQg7Y6Y7J20ICjso7zrrLjtmJUpXG4gICAgTmF2ZXJQRyA9ICdOQVZFUl9QRycsICAgICAgICAgICAvLyDrhKTsnbTrsoQg7Y6Y7J20ICjqsrDsoJztmJUpXG4gICAgS2FrYW8gPSAnS0FLQU8nLCAgICAgICAgICAgICAgICAvLyDsubTsubTsmKQg7Y6Y7J20XG4gICAgUGF5Y28gPSAnUEFZQ08nLCAgICAgICAgICAgICAgICAvLyDtjpjsnbTsvZRcbiAgICBUb3NzID0gJ1RPU1MnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVNrUGF5bWVudCB7XG4gICAgaWQ/OiBzdHJpbmc7XG4gICAgdHlwZT86IFNrUGF5bWVudFN0YXR1cztcbiAgICBwZ1R5cGU/OiBTa1BnVHlwZTtcbiAgICB0eElkPzogc3RyaW5nO1xuICAgIHJlc3BvbnNlQ29kZT86IHN0cmluZztcbiAgICByZXNwb25zZU1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgY2FuY2VsQ29kZT86IHN0cmluZztcbiAgICBjYW5jZWxNZXNzYWdlPzogc3RyaW5nO1xuICAgIHBhaWRQcmljZT86IG51bWJlcjtcbiAgICBiYW5rZXI/OiBzdHJpbmc7XG4gICAgYmFua0V4cGlyZURhdGU/OiBzdHJpbmc7XG4gICAgY2FyZE5hbWU/OiBzdHJpbmc7XG4gICAgY2FyZFF1b3RhPzogc3RyaW5nO1xuICAgIHJhd1Jlc3BvbnNlPzogc3RyaW5nO1xuICAgIHJhd0NhbmNlbFJlc3BvbnNlPzogc3RyaW5nO1xuICAgIHBhaWREYXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2tQYXltZW50U3RhdHVzVGV4dChzdGF0dXM6IFNrUGF5bWVudFN0YXR1cykge1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLlRyYW5zZmVyOlxuICAgICAgICAgICAgcmV0dXJuICfrrLTthrXsnqXsnoXquIgnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5DYXJkOlxuICAgICAgICAgICAgcmV0dXJuICfsubTrk5zqsrDsoJwgKOydvOuwmCDrrLTsnbTsnpApJztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuQ2FyZDI6XG4gICAgICAgICAgICByZXR1cm4gJ+y5tOuTnOqysOygnCAo67aE64u0IOustOydtOyekCknO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5LYWthbzpcbiAgICAgICAgICAgIHJldHVybiAn7Lm07Lm07Jik7Y6Y7J20JztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuUGF5Y286XG4gICAgICAgICAgICByZXR1cm4gJ1BBWUNPJztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuTmF2ZXI6XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLk5hdmVyUEc6XG4gICAgICAgICAgICByZXR1cm4gJ+uEpOydtOuyhO2OmOydtCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbn1cbiJdfQ==
40
+ /**
41
+ * Design Ref: §3.1 — 가상계좌(VBANK) 은행코드 → 은행명 매핑.
42
+ * Plan SC-G: sk-api VbankBankCodeMap.MAP과 14개 엔트리 정합 유지.
43
+ *
44
+ * MUST sync with: sk-api/src/main/java/works/skullacy/api/domain/commerce/payment/util/VbankBankCodeMap.java
45
+ * sk-front-lib develop branch payment.ts (양쪽 dual-branch 동일 14개)
46
+ * Drift check: gap-detector rule — Object.keys(VBANK_BANK_CODE_MAP).length === 14
47
+ */
48
+ export const VBANK_BANK_CODE_MAP = Object.freeze({
49
+ '03': 'IBK기업은행',
50
+ '06': 'KB국민은행',
51
+ '07': 'Sh수협은행',
52
+ '11': 'NH농협은행',
53
+ '20': '우리은행',
54
+ '31': 'iM뱅크(대구)',
55
+ '32': '부산은행',
56
+ '34': '광주은행',
57
+ '37': '전북은행',
58
+ '39': '경남은행',
59
+ '45': '새마을금고',
60
+ '71': '우체국예금보험',
61
+ '81': '하나은행',
62
+ '88': '신한은행', // 금결원 088
63
+ });
64
+ /**
65
+ * VBANK 은행코드를 은행명으로 변환. 알 수 없는 코드는 null 반환.
66
+ * (백엔드 toName은 fallback으로 code 자체 반환 — 프론트는 표시 제어 용이성을 위해 null. Design §3.1 Note 참조)
67
+ */
68
+ export function getVbankBankName(code) {
69
+ if (!code)
70
+ return null;
71
+ return VBANK_BANK_CODE_MAP[code] ?? null;
72
+ }
73
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3NrLWZyb250LWxpYi9tb2RlbC9zcmMvbGliL3BheW1lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksUUFHWDtBQUhELFdBQVksUUFBUTtJQUNoQiwrQkFBbUIsQ0FBQTtJQUNuQixnQ0FBb0IsQ0FBQTtBQUN4QixDQUFDLEVBSFcsUUFBUSxLQUFSLFFBQVEsUUFHbkI7QUFFRCxNQUFNLENBQU4sSUFBWSxlQVVYO0FBVkQsV0FBWSxlQUFlO0lBQ3ZCLHdDQUFxQixDQUFBO0lBQ3JCLGdDQUFhLENBQUE7SUFDYixrQ0FBZSxDQUFBO0lBQ2Ysa0NBQWUsQ0FBQTtJQUNmLHVDQUFvQixDQUFBO0lBQ3BCLGtDQUFlLENBQUE7SUFDZixrQ0FBZSxDQUFBO0lBQ2YsZ0NBQWEsQ0FBQTtJQUNiLGtDQUFlLENBQUE7QUFDbkIsQ0FBQyxFQVZXLGVBQWUsS0FBZixlQUFlLFFBVTFCO0FBd0JELE1BQU0sVUFBVSxzQkFBc0IsQ0FBQyxNQUF1QjtJQUMxRCxRQUFRLE1BQU0sRUFBRTtRQUNaLEtBQUssZUFBZSxDQUFDLFFBQVE7WUFDekIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsSUFBSTtZQUNyQixPQUFPLGVBQWUsQ0FBQztRQUMzQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLE9BQU8sZUFBZSxDQUFDO1FBQzNCLEtBQUssZUFBZSxDQUFDLEtBQUs7WUFDdEIsT0FBTyxPQUFPLENBQUM7UUFDbkIsS0FBSyxlQUFlLENBQUMsS0FBSztZQUN0QixPQUFPLE9BQU8sQ0FBQztRQUNuQixLQUFLLGVBQWUsQ0FBQyxLQUFLLENBQUM7UUFDM0IsS0FBSyxlQUFlLENBQUMsT0FBTztZQUN4QixPQUFPLE9BQU8sQ0FBQztRQUNuQixLQUFLLGVBQWUsQ0FBQyxLQUFLO1lBQ3RCLDRFQUE0RTtZQUM1RSxPQUFPLE1BQU0sQ0FBQztRQUNsQjtZQUNJLE9BQU8sTUFBTSxDQUFDO0tBQ3JCO0FBQ0wsQ0FBQztBQUVEOzs7Ozs7O0dBT0c7QUFDSCxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBcUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUMvRSxJQUFJLEVBQUUsU0FBUztJQUNmLElBQUksRUFBRSxRQUFRO0lBQ2QsSUFBSSxFQUFFLFFBQVE7SUFDZCxJQUFJLEVBQUUsUUFBUTtJQUNkLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLFVBQVU7SUFDaEIsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUksRUFBRSxNQUFNO0lBQ1osSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsT0FBTztJQUNiLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSSxFQUFFLE1BQU07SUFDWixJQUFJLEVBQUUsTUFBTSxFQUFhLFVBQVU7Q0FDdEMsQ0FBQyxDQUFDO0FBRUg7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLGdCQUFnQixDQUFDLElBQStCO0lBQzVELElBQUksQ0FBQyxJQUFJO1FBQUUsT0FBTyxJQUFJLENBQUM7SUFDdkIsT0FBTyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUM7QUFDN0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIFNrUGdUeXBlIHtcbiAgICBOaWNlUGF5ID0gJ05JQ0VQQVknLFxuICAgIFRvc3NQYXltZW50ID0gJ1RPU1MnXG59XG5cbmV4cG9ydCBlbnVtIFNrUGF5bWVudFN0YXR1cyB7XG4gICAgVHJhbnNmZXIgPSAnVFJBTlNGRVInLCAgICAgICAgICAvLyDrrLTthrXsnqUg7J6F6riIXG4gICAgQ2FyZCA9ICdDQVJEJywgICAgICAgICAgICAgICAgICAvLyDsnbzrsJgg7Lm065Oc6rKw7KCcXG4gICAgQ2FyZDIgPSAnQ0FSRDInLCAgICAgICAgICAgICAgICAvLyDrrLTsnbTsnpAg7ZWg67aAIOy5tOuTnOqysOygnFxuICAgIE5hdmVyID0gJ05BVkVSJywgICAgICAgICAgICAgICAgLy8g64Sk7J2067KEIO2OmOydtCAo7KO866y47ZiVKVxuICAgIE5hdmVyUEcgPSAnTkFWRVJfUEcnLCAgICAgICAgICAgLy8g64Sk7J2067KEIO2OmOydtCAo6rKw7KCc7ZiVKVxuICAgIEtha2FvID0gJ0tBS0FPJywgICAgICAgICAgICAgICAgLy8g7Lm07Lm07JikIO2OmOydtFxuICAgIFBheWNvID0gJ1BBWUNPJywgICAgICAgICAgICAgICAgLy8g7Y6Y7J207L2UXG4gICAgVG9zcyA9ICdUT1NTJywgICAgICAgICAgICAgICAgICAvLyDthqDsiqQg7Y6Y7J20XG4gICAgVmJhbmsgPSAnVkJBTksnLCAgICAgICAgICAgICAgICAvLyDqsIDsg4Hqs4TsoowgKO2GoOyKpCkg4oCUIFBsYW4gRlItMDIgKHZiYW5rLXBheW1lbnQtcGhhc2UxIO2PrO2MhSlcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJU2tQYXltZW50IHtcbiAgICBpZD86IHN0cmluZztcbiAgICB0eXBlPzogU2tQYXltZW50U3RhdHVzO1xuICAgIHBnVHlwZT86IFNrUGdUeXBlO1xuICAgIHR4SWQ/OiBzdHJpbmc7XG4gICAgcmVzcG9uc2VDb2RlPzogc3RyaW5nO1xuICAgIHJlc3BvbnNlTWVzc2FnZT86IHN0cmluZztcbiAgICBjYW5jZWxDb2RlPzogc3RyaW5nO1xuICAgIGNhbmNlbE1lc3NhZ2U/OiBzdHJpbmc7XG4gICAgcGFpZFByaWNlPzogbnVtYmVyO1xuICAgIGJhbmtlcj86IHN0cmluZztcbiAgICBiYW5rRXhwaXJlRGF0ZT86IHN0cmluZztcbiAgICBjYXJkTmFtZT86IHN0cmluZztcbiAgICBjYXJkUXVvdGE/OiBzdHJpbmc7XG4gICAgLy8gRGVzaWduIFJlZjogwqczLjMg4oCUIFZCQU5LIOyghOyaqSDtlYTrk5wgKFBsYW4gRlItMDMsIHZiYW5rLXBheW1lbnQtcGhhc2UxIO2PrO2MhSlcbiAgICB2YmFua0FjY291bnQ/OiBzdHJpbmc7XG4gICAgdmJhbmtDb2RlPzogc3RyaW5nO1xuICAgIHJhd1Jlc3BvbnNlPzogc3RyaW5nO1xuICAgIHJhd0NhbmNlbFJlc3BvbnNlPzogc3RyaW5nO1xuICAgIHBhaWREYXRlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U2tQYXltZW50U3RhdHVzVGV4dChzdGF0dXM6IFNrUGF5bWVudFN0YXR1cykge1xuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLlRyYW5zZmVyOlxuICAgICAgICAgICAgcmV0dXJuICfrrLTthrXsnqXsnoXquIgnO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5DYXJkOlxuICAgICAgICAgICAgcmV0dXJuICfsubTrk5zqsrDsoJwgKOydvOuwmCDrrLTsnbTsnpApJztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuQ2FyZDI6XG4gICAgICAgICAgICByZXR1cm4gJ+y5tOuTnOqysOygnCAo67aE64u0IOustOydtOyekCknO1xuICAgICAgICBjYXNlIFNrUGF5bWVudFN0YXR1cy5LYWthbzpcbiAgICAgICAgICAgIHJldHVybiAn7Lm07Lm07Jik7Y6Y7J20JztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuUGF5Y286XG4gICAgICAgICAgICByZXR1cm4gJ1BBWUNPJztcbiAgICAgICAgY2FzZSBTa1BheW1lbnRTdGF0dXMuTmF2ZXI6XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLk5hdmVyUEc6XG4gICAgICAgICAgICByZXR1cm4gJ+uEpOydtOuyhO2OmOydtCc7XG4gICAgICAgIGNhc2UgU2tQYXltZW50U3RhdHVzLlZiYW5rOlxuICAgICAgICAgICAgLy8gUGxhbiBTQy1CIC8gRlItMDQg4oCUIFBHIOu4jOuenOuTnCDrhbjstpwg7KCc6rGwICh2YmFuay1wYXltZW50LXBoYXNlMywgZGV2ZWxvcF9hZG1pbiDtj6ztjIUpXG4gICAgICAgICAgICByZXR1cm4gJ+qwgOyDgeqzhOyijCc7XG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICByZXR1cm4gc3RhdHVzO1xuICAgIH1cbn1cblxuLyoqXG4gKiBEZXNpZ24gUmVmOiDCpzMuMSDigJQg6rCA7IOB6rOE7KKMKFZCQU5LKSDsnYDtlonsvZTrk5wg4oaSIOydgO2WieuqhSDrp6TtlZEuXG4gKiBQbGFuIFNDLUc6IHNrLWFwaSBWYmFua0JhbmtDb2RlTWFwLk1BUOqzvCAxNOqwnCDsl5Ttirjrpqwg7KCV7ZWpIOycoOyngC5cbiAqXG4gKiBNVVNUIHN5bmMgd2l0aDogc2stYXBpL3NyYy9tYWluL2phdmEvd29ya3Mvc2t1bGxhY3kvYXBpL2RvbWFpbi9jb21tZXJjZS9wYXltZW50L3V0aWwvVmJhbmtCYW5rQ29kZU1hcC5qYXZhXG4gKiAgICAgICAgICAgICAgICAgc2stZnJvbnQtbGliIGRldmVsb3AgYnJhbmNoIHBheW1lbnQudHMgKOyWkeyqvSBkdWFsLWJyYW5jaCDrj5nsnbwgMTTqsJwpXG4gKiBEcmlmdCBjaGVjazogICAgZ2FwLWRldGVjdG9yIHJ1bGUg4oCUIE9iamVjdC5rZXlzKFZCQU5LX0JBTktfQ09ERV9NQVApLmxlbmd0aCA9PT0gMTRcbiAqL1xuZXhwb3J0IGNvbnN0IFZCQU5LX0JBTktfQ09ERV9NQVA6IFJlYWRvbmx5PFJlY29yZDxzdHJpbmcsIHN0cmluZz4+ID0gT2JqZWN0LmZyZWV6ZSh7XG4gICAgJzAzJzogJ0lCS+q4sOyXheydgO2WiScsICAgICAgICAgLy8g6riI6rKw7JuQIDAwM1xuICAgICcwNic6ICdLQuq1reuvvOydgO2WiScsICAgICAgICAgIC8vIOq4iOqysOybkCAwMDRcbiAgICAnMDcnOiAnU2jsiJjtmJHsnYDtloknLCAgICAgICAgICAvLyDquIjqsrDsm5AgMDA3XG4gICAgJzExJzogJ05I64aN7ZiR7J2A7ZaJJywgICAgICAgICAgLy8g6riI6rKw7JuQIDAxMVxuICAgICcyMCc6ICfsmrDrpqzsnYDtloknLCAgICAgICAgICAgIC8vIOq4iOqysOybkCAwMjBcbiAgICAnMzEnOiAnaU3rsYXtgawo64yA6rWsKScsICAgICAgICAvLyDquIjqsrDsm5AgMDMxXG4gICAgJzMyJzogJ+u2gOyCsOydgO2WiScsICAgICAgICAgICAgLy8g6riI6rKw7JuQIDAzMlxuICAgICczNCc6ICfqtJHso7zsnYDtloknLCAgICAgICAgICAgIC8vIOq4iOqysOybkCAwMzRcbiAgICAnMzcnOiAn7KCE67aB7J2A7ZaJJywgICAgICAgICAgICAvLyDquIjqsrDsm5AgMDM3XG4gICAgJzM5JzogJ+qyveuCqOydgO2WiScsICAgICAgICAgICAgLy8g6riI6rKw7JuQIDAzOVxuICAgICc0NSc6ICfsg4jrp4jsnYTquIjqs6AnLCAgICAgICAgICAvLyDquIjqsrDsm5AgMDQ1XG4gICAgJzcxJzogJ+yasOyytOq1reyYiOq4iOuztO2XmCcsICAgICAgLy8g6riI6rKw7JuQIDA3MVxuICAgICc4MSc6ICftlZjrgpjsnYDtloknLCAgICAgICAgICAgIC8vIOq4iOqysOybkCAwODFcbiAgICAnODgnOiAn7Iug7ZWc7J2A7ZaJJywgICAgICAgICAgICAvLyDquIjqsrDsm5AgMDg4XG59KTtcblxuLyoqXG4gKiBWQkFOSyDsnYDtlonsvZTrk5zrpbwg7J2A7ZaJ66qF7Jy866GcIOuzgO2ZmC4g7JWMIOyImCDsl4bripQg7L2U65Oc64qUIG51bGwg67CY7ZmYLlxuICogKOuwseyXlOuTnCB0b05hbWXsnYAgZmFsbGJhY2vsnLzroZwgY29kZSDsnpDssrQg67CY7ZmYIOKAlCDtlITroaDtirjripQg7ZGc7IucIOygnOyWtCDsmqnsnbTshLHsnYQg7JyE7ZW0IG51bGwuIERlc2lnbiDCpzMuMSBOb3RlIOywuOyhsClcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFZiYW5rQmFua05hbWUoY29kZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghY29kZSkgcmV0dXJuIG51bGw7XG4gICAgcmV0dXJuIFZCQU5LX0JBTktfQ09ERV9NQVBbY29kZV0gPz8gbnVsbDtcbn1cbiJdfQ==
@@ -762,6 +762,7 @@ var SkPaymentStatus;
762
762
  SkPaymentStatus["Kakao"] = "KAKAO";
763
763
  SkPaymentStatus["Payco"] = "PAYCO";
764
764
  SkPaymentStatus["Toss"] = "TOSS";
765
+ SkPaymentStatus["Vbank"] = "VBANK";
765
766
  })(SkPaymentStatus || (SkPaymentStatus = {}));
766
767
  function getSkPaymentStatusText(status) {
767
768
  switch (status) {
@@ -778,10 +779,47 @@ function getSkPaymentStatusText(status) {
778
779
  case SkPaymentStatus.Naver:
779
780
  case SkPaymentStatus.NaverPG:
780
781
  return '네이버페이';
782
+ case SkPaymentStatus.Vbank:
783
+ // Plan SC-B / FR-04 — PG 브랜드 노출 제거 (vbank-payment-phase3, develop_admin 포팅)
784
+ return '가상계좌';
781
785
  default:
782
786
  return status;
783
787
  }
784
788
  }
789
+ /**
790
+ * Design Ref: §3.1 — 가상계좌(VBANK) 은행코드 → 은행명 매핑.
791
+ * Plan SC-G: sk-api VbankBankCodeMap.MAP과 14개 엔트리 정합 유지.
792
+ *
793
+ * MUST sync with: sk-api/src/main/java/works/skullacy/api/domain/commerce/payment/util/VbankBankCodeMap.java
794
+ * sk-front-lib develop branch payment.ts (양쪽 dual-branch 동일 14개)
795
+ * Drift check: gap-detector rule — Object.keys(VBANK_BANK_CODE_MAP).length === 14
796
+ */
797
+ const VBANK_BANK_CODE_MAP = Object.freeze({
798
+ '03': 'IBK기업은행',
799
+ '06': 'KB국민은행',
800
+ '07': 'Sh수협은행',
801
+ '11': 'NH농협은행',
802
+ '20': '우리은행',
803
+ '31': 'iM뱅크(대구)',
804
+ '32': '부산은행',
805
+ '34': '광주은행',
806
+ '37': '전북은행',
807
+ '39': '경남은행',
808
+ '45': '새마을금고',
809
+ '71': '우체국예금보험',
810
+ '81': '하나은행',
811
+ '88': '신한은행', // 금결원 088
812
+ });
813
+ /**
814
+ * VBANK 은행코드를 은행명으로 변환. 알 수 없는 코드는 null 반환.
815
+ * (백엔드 toName은 fallback으로 code 자체 반환 — 프론트는 표시 제어 용이성을 위해 null. Design §3.1 Note 참조)
816
+ */
817
+ function getVbankBankName(code) {
818
+ var _a;
819
+ if (!code)
820
+ return null;
821
+ return (_a = VBANK_BANK_CODE_MAP[code]) !== null && _a !== void 0 ? _a : null;
822
+ }
785
823
 
786
824
  var SkShippingStatus;
787
825
  (function (SkShippingStatus) {
@@ -1169,5 +1207,5 @@ class SkMobileMainData {
1169
1207
  * Generated bundle index. Do not edit.
1170
1208
  */
1171
1209
 
1172
- export { Audit, FileType, SkAffiliateRequestStatus, SkAffiliateTargetApply, SkAffiliateTargetType, SkArticle, SkBoard, SkCart, SkCartOption, SkCategoryType, SkComment, SkContactStatus, SkContactType, SkCouponTarget, SkCouponTrigger, SkCouponType, SkDocument, SkDocumentAttachment, SkDocumentCommentChild, SkDocumentCommentParent, SkDocumentType, SkFile, SkGiftType, SkGridData, SkGridItem, SkGridItemIconData, SkGridItemImageData, SkGridItemSlideData, SkGridItemType, SkMobileMainData, SkNicePayCreditCards, SkOrderCancelType, SkOrderDetail, SkOrderDetailItem, SkOrderStatus, SkOrderType, SkPaymentStatus, SkPgType, SkPoint, SkPointType, SkProduct, SkProductAccessPolicy, SkProductBrand, SkProductCategory, SkProductImage, SkProductOptionType, SkProductPackage, SkProductStatus, SkProductStuffType, SkProductType, SkPromotion, SkPromotionAccessPolicy, SkPromotionCategory, SkPromotionGift, SkPromotionGiftGroup, SkPromotionGiftServeType, SkPromotionTarget, SkShippingMethod, SkShippingStatus, SkStore, SkTossPayCreditCards, SkUser, SkUserRoleName, SkValueType, getNicePayCreditCardTitle, getSkContactTypeText, getSkOrderCancelTypeText, getSkOrderStatusText, getSkPaymentStatusText, getSkProductAccessPolicyText, getSkProductStatusText, getSkShippingMethodText, getTossPayCreditCardTitle };
1210
+ export { Audit, FileType, SkAffiliateRequestStatus, SkAffiliateTargetApply, SkAffiliateTargetType, SkArticle, SkBoard, SkCart, SkCartOption, SkCategoryType, SkComment, SkContactStatus, SkContactType, SkCouponTarget, SkCouponTrigger, SkCouponType, SkDocument, SkDocumentAttachment, SkDocumentCommentChild, SkDocumentCommentParent, SkDocumentType, SkFile, SkGiftType, SkGridData, SkGridItem, SkGridItemIconData, SkGridItemImageData, SkGridItemSlideData, SkGridItemType, SkMobileMainData, SkNicePayCreditCards, SkOrderCancelType, SkOrderDetail, SkOrderDetailItem, SkOrderStatus, SkOrderType, SkPaymentStatus, SkPgType, SkPoint, SkPointType, SkProduct, SkProductAccessPolicy, SkProductBrand, SkProductCategory, SkProductImage, SkProductOptionType, SkProductPackage, SkProductStatus, SkProductStuffType, SkProductType, SkPromotion, SkPromotionAccessPolicy, SkPromotionCategory, SkPromotionGift, SkPromotionGiftGroup, SkPromotionGiftServeType, SkPromotionTarget, SkShippingMethod, SkShippingStatus, SkStore, SkTossPayCreditCards, SkUser, SkUserRoleName, SkValueType, VBANK_BANK_CODE_MAP, getNicePayCreditCardTitle, getSkContactTypeText, getSkOrderCancelTypeText, getSkOrderStatusText, getSkPaymentStatusText, getSkProductAccessPolicyText, getSkProductStatusText, getSkShippingMethodText, getTossPayCreditCardTitle, getVbankBankName };
1173
1211
  //# sourceMappingURL=sk-front-lib-model.mjs.map