@bootpay/client-js 5.0.0-beta.15 → 5.0.0-beta.17

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.es.js CHANGED
@@ -4328,7 +4328,7 @@ class BootpayPaymentEventManager extends BootpayWindowEvent {
4328
4328
  }
4329
4329
  const BootpayPaymentEvent = new BootpayPaymentEventManager();
4330
4330
  const name = "@bootpay/client-js";
4331
- const version = "5.0.0-beta.15";
4331
+ const version = "5.0.0-beta.17";
4332
4332
  const main = "dist/index.es.js";
4333
4333
  const types = "dist/src/index.d.ts";
4334
4334
  const styles = "dist/index.css";
@@ -6619,6 +6619,10 @@ class BootpayWidgetEventManager extends BootpayWindowEvent {
6619
6619
  sandbox: TemplateWidget.$widgetStore.sandbox,
6620
6620
  use_terms: TemplateWidget.$widgetStore.useTerms
6621
6621
  });
6622
+ case "bootpayRequestCurrentStores":
6623
+ return TemplateWidget.postMessage("bootpayWidgetRequestCurrentStores", response.data);
6624
+ case "bootpayWidgetResponseCurrentStores":
6625
+ return OOpayTemplate.postMessage("bootpayResponseCurrentStores", response.data);
6622
6626
  case "bootpayWidgetError":
6623
6627
  return this.reject(response);
6624
6628
  case "bootpayWidgetOOpayReload":
package/dist/index.umd.js CHANGED
@@ -1,2 +1,2 @@
1
1
  !function(){"use strict";try{if("undefined"!=typeof document){var o=document.createElement("style");o.appendChild(document.createTextNode('.bootpay-progress-background{position:fixed;display:block;background-color:transparent;inset:0;text-align:center;z-index:200000;white-space:nowrap}.bootpay-progress-background.blur-off{background-color:transparent}.bootpay-progress-background:before{display:inline-block;height:100%;content:" ";vertical-align:middle}.bootpay-progress-background .progress-message-window{display:inline-block;text-align:center;max-width:600px;border-radius:3px;width:100%;background-color:transparent;padding:0;vertical-align:middle}@media (min-width: 600px){.bootpay-progress-background .progress-message-window{padding:1rem}}.bootpay-progress-background .progress-message-window .bootpay-spinner{display:inline-block;width:50px;height:50px;border-radius:50%;border-top:2px solid rgba(255,255,255,.2);border-right:2px solid rgba(255,255,255,.2);border-bottom:2px solid rgba(255,255,255,.2);border-left:2px solid #ffffff;animation:spin 1s infinite linear}.bootpay-progress-background .progress-message-window .alfred-text{margin-top:1rem}.bootpay-progress-background .progress-message-window .alfred-text span.alfred-inner-text{font-weight:400;color:#eee}@keyframes spin{0%{transform:rotate(0);border-left:2px solid #ffffff;border-top:2px solid rgba(255,255,255,.2);border-right:2px solid rgba(255,255,255,.2);border-bottom:2px solid rgba(255,255,255,.2)}50%{transform:rotate(180deg);border-left:3px solid #ffffff;border-top:2px solid rgba(255,255,255,.4);border-right:2px solid rgba(255,255,255,.4);border-bottom:2px solid rgba(255,255,255,.4)}to{transform:rotate(360deg);border-left:2px solid #ffffff;border-top:2px solid rgba(255,255,255,.2);border-right:2px solid rgba(255,255,255,.2);border-bottom:2px solid rgba(255,255,255,.2)}}body.bootpay-open{position:fixed!important;inset:0;padding:0;margin:0;height:100vh!important;overflow:hidden!important;-webkit-overflow-scrolling:auto!important}body.bootpay-open .bootpay-payment-background{position:fixed;inset:0;display:block;text-align:center;background-color:#000000b3;z-index:9999}body.bootpay-open .bootpay-payment-background:before{display:inline-block;vertical-align:middle;height:100%;content:" "}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window{position:relative;display:inline-block;vertical-align:middle}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window.__mobile{max-width:470px;height:90%}@media (max-width: 768px){body.bootpay-open .bootpay-payment-background>.bootpay-payment-window{position:absolute;inset:0;border-radius:0!important}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window.__mobile{position:absolute;max-width:inherit;inset:0;height:100%}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>iframe{width:100%!important;height:100%!important;border-radius:0}}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close{position:absolute;display:none;top:-32px;right:4px;color:#fff;font-size:32px;text-decoration:none;outline:none;box-shadow:none;border:0;background-color:transparent}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close:before,body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close:after{width:2px!important;background-color:#fff!important}@media (max-width: 768px){body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close{top:1rem;right:16px;color:#000;padding:0}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close:before,body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>button.bootpay-payment-close:after{width:2px!important;background-color:#000!important}}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window{position:relative;width:400px;height:600px;display:none;background-color:#fff;border-radius:5px;overflow:hidden}@media (max-width: 768px){body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window{position:absolute;inset:0;width:100%;height:100%;border-radius:0}}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.header{position:absolute;left:0;right:0;top:0;height:50px;color:#333;background-color:#fff;text-align:left}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.body{position:absolute;inset:50px 0 72px;padding:1rem;text-align:left;font-size:14px}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.body>#bootpay-item-name-id{font-size:16px;color:#888;font-weight:400!important;text-align:center}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.body>#bootpay-price-id{font-size:36px;color:#333;font-weight:700;text-align:center}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.body>.agree-text{position:absolute;bottom:1rem;left:0;right:0;color:#888;font-size:14px;text-align:center}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.footer{position:absolute;left:0;right:0;bottom:0;height:72px;padding:0 1rem;margin:0}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.footer>button.bootpay-button{display:block;width:100%;padding:1rem;outline:none;border:none;background-color:#507cf3;border-radius:5px;color:#fff;font-size:16px}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.footer>button.bootpay-button:hover,body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>.bootpay-popup-window>.footer>button.bootpay-button:active{outline:none;box-shadow:none}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>iframe{width:100%;height:100%;display:none;border:0!important;outline:0!important;border-radius:0;box-shadow:none}@media (min-width: 600px){body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>iframe{width:0;height:0;border:0;outline:0;border-radius:0!important;box-shadow:none!important}}body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>iframe.rounded-iframe{border-radius:20px}@media (min-width: 600px){body.bootpay-open .bootpay-payment-background>.bootpay-payment-window>iframe.rounded-iframe{width:0;height:0;border:0;outline:0;border-radius:20px!important;box-shadow:none!important}}body.bootpay-open .bootpay-payment-background>.bootpay-confirm-window>iframe{display:none;width:1px;height:1px;background:transparent;border:0!important;outline:0!important}.bootpay-close-btn{position:absolute;box-shadow:none;background-color:#fff;outline:0;z-index:10001;right:8px;top:8px;height:21px;width:21px;border:0}@media (min-width: 600px){.bootpay-close-btn{right:4px;top:-32px;width:25px;height:25px;border:0;background:transparent}}.bootpay-close-btn.active,.bootpay-close-btn:focus{border:0;outline:0}.bootpay-close-btn:before,.bootpay-close-btn:after{position:absolute;left:8px;top:2px;content:" ";height:24px;width:1px;background-color:#333}@media (min-width: 600px){.bootpay-close-btn:before,.bootpay-close-btn:after{height:23px;top:0;width:2px;background-color:#fff}}.bootpay-close-btn:before{transform:rotate(45deg)}.bootpay-close-btn:after{transform:rotate(-45deg)}')),document.head.appendChild(o)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}}();
2
- !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Bootpay={})}(this,(function(e){"use strict";var t=(e,t,r)=>new Promise(((n,i)=>{var s=e=>{try{a(r.next(e))}catch(t){i(t)}},o=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,o);a((r=r.apply(e,t)).next())}));const r={PLATFORM:{JS:1,ANDROID:2,IOS:3,REST:4},STORAGE_PREFIX:e=>`__bootpay_track_${e}__`},n=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),i=e=>{let t=!1;return t="string"==typeof e||Array.isArray(e)?0===e.length:null==e||o(e,"object")&&e.constructor===Object&&0===Object.keys(e).length,t},s=e=>!i(e),o=(e,t)=>typeof e===t;var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var l={exports:{}};var u={exports:{}};const p=d(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var h;function m(){return h||(h=1,u.exports=(e=e||function(e,t){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),"undefined"!=typeof self&&self.crypto&&(r=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(r=globalThis.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==a&&a.crypto&&(r=a.crypto),!r)try{r=p}catch(v){}var n=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(v){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(v){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),s={},o=s.lib={},c=o.Base=function(){return{extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),d=o.WordArray=c.extend({init:function(e,r){e=this.words=e||[],this.sigBytes=r!=t?r:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var s=0;s<i;s++){var o=r[s>>>2]>>>24-s%4*8&255;t[n+s>>>2]|=o<<24-(n+s)%4*8}else for(var a=0;a<i;a+=4)t[n+a>>>2]=r[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r<e;r+=4)t.push(n());return new d.init(t,e)}}),l=s.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i++){var s=t[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((15&s).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n+=2)r[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new d.init(r,t/2)}},h=l.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i++){var s=t[i>>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new d.init(r,t)}},m=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},y=o.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=m.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r,n=this._data,i=n.words,s=n.sigBytes,o=this.blockSize,a=s/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,l=e.min(4*c,s);if(c){for(var u=0;u<c;u+=o)this._doProcessBlock(i,u);r=i.splice(0,c),n.sigBytes-=l}return new d.init(r,l)},clone:function(){var e=c.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=y.extend({cfg:c.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){y.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new f.HMAC.init(e,r).finalize(t)}}});var f=s.algo={};return s}(Math),e)),u.exports;var e}l.exports=m().enc.Utf8;const y=c(l.exports);var f={exports:{}};!function(e,t){var r;e.exports=(r=m(),function(){var e=r,t=e.lib.WordArray;function n(e,r,n){for(var i=[],s=0,o=0;o<r;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;i[s>>>2]|=a<<24-s%4*8,s++}return t.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],s=0;s<r;s+=3)for(var o=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<r;a++)i.push(n.charAt(o>>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e){var t=e.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<r.length;s++)i[r.charCodeAt(s)]=s}var o=r.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return n(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),r.enc.Base64)}(f);var v=f.exports;const g=c(v);class _{$blank(e){return i(e)}$present(e){return!this.$blank(e)}$type(e,t){return o(e,t)}$uuid(){return n()}$encrypt(e){return this.$type(e,"object")&&(e=JSON.stringify(e)),g.stringify(y.parse(e))}$decrypt(e){return y.stringify(g.parse(e))}getUserAgent(){return window.navigator.userAgent}}const w=1,b=2,$=3,E=4,P={level:$,setLogLevel(e){this.level=e},messageStringify(e,t){try{return`${e}: ${o(t,"object")?JSON.stringify(t):t}`}catch(r){console.error(`log parse error: ${r}`)}},debug(e,t){this.level<=w&&console.log(this.messageStringify(e,t))},info(e,t){this.level<=b&&console.info(this.messageStringify(e,t))},warn(e,t){this.level<=$&&console.warn(this.messageStringify(e,t))},error(e,t){this.level<=E&&console.error(this.messageStringify(e,t))}};class k extends _{constructor(){super(),this.$storage={}}get(e){let t="";try{t=window.localStorage.getItem(e)}catch(r){t=this.$storage[e]}return this.$present(t)?this.$decrypt(t):void 0}set(e,t){try{window.localStorage.setItem(e,this.$encrypt(t))}catch(r){this.$storage[e]=this.$encrypt(t)}return t}currentUserUUID(){const e=r.STORAGE_PREFIX("uuid"),t=this.get(e);return this.$blank(t)?this.set(e,this.$uuid()):t}setUUID(e){const t=r.STORAGE_PREFIX("uuid");return this.set(t,e)}getToJSON(e){const t=this.get(e);return this.$present(t)?this.caseMarshalToJson(t):t}setToJSON(e,t){return this.set(e,JSON.stringify(t)),t}caseMarshalToJson(e){try{return JSON.parse(e)}catch(t){return JSON.parse(e.replace(/\\\"/g,'"'))}}}const I=new class extends k{constructor(){super(),this.currentUserUUID()}currentSessionKey(){const e=Math.round((new Date).getTime()/1e3),t=r.STORAGE_PREFIX("session"),n=this.getToJSON(t);if(this.$blank(n)||n.time+1800<e){return this.setToJSON(t,{time:e,term:this.$blank(n)?-1:e-n.time,uuid:`${this.$uuid()}-${e}`}).uuid}return n.uuid}currentTimeTerm(){const e=r.STORAGE_PREFIX("session"),t=this.getToJSON(e);return this.$blank(t.term)?-1:t.term}currentTime(){const e=r.STORAGE_PREFIX("session"),t=this.getToJSON(e);return this.$blank(t.time)?-1:t.time}setTime(e){const t=Math.round((new Date).getTime()/1e3),n=r.STORAGE_PREFIX("session"),i=this.getToJSON(n),s=this.$blank(i)?{time:e>0?e:t,term:e>0?t-e:-1,uuid:`${this.$uuid()}-${t}`}:i;s.time=e,this.setToJSON(n,s)}generateKey(){return`${this.$uuid()}-${(new Date).getTime()}`}setUser(e){return this.set(r.STORAGE_PREFIX("user"),void 0===e?void 0:JSON.stringify(e)),e}getUser(){try{return JSON.parse(this.get(r.STORAGE_PREFIX("user")))}catch(e){return void P.error("User Storage",`사용자 정보를 추출하는데 실패하였습니다. [ ${e.message} ]`)}}},T={mode:"production",locale:"ko",isSetLocale:!1,applicationId:"",API_URL:{development:"https://dev-api.bootpay.co.kr/v2",stage:"https://stage-api.bootpay.co.kr/v2",production:"https://api.bootpay.co.kr/v2"},ANALYTICS_URL:{development:"https://dev-analytics.bootpay.co.kr",stage:"https://stage-analytics.bootpay.co.kr",production:"https://analytics.bootpay.co.kr"},DOOR_URL:{development:"https://door-dev.bootpay.co.kr",stage:"https://door-stage.bootpay.co.kr",production:"https://door.bootpay.co.kr"},WIDGET_URL:{development:"https://dev-widget.bootpay.co.kr",stage:"https://stage-widget.bootpay.co.kr",production:"https://widget.bootpay.co.kr"},sdkNames:{android:100,android_react_native:101,android_flutter:102,android_unity:103,ios:200,ios_react_native:201,ios_flutter:202,ios_unity:203,ios_objc:204,ios_swift_ui:205,mac_swift:206,mac_flutter:207},sdkVersion:"",sdkName:0,set(e){this.mode=e},setApplicationId(e){return this.applicationId=e,this.currentApplicationId(void 0)},setLocale(e){this.locale=e,this.isSetLocale=!0},currentApplicationId(e=void 0){return void 0===e?this.applicationId:e},setDevelopmentHost(e){this.API_URL.development=this.API_URL.development.replace(/dev-api.bootpay.co.kr\/v2/gi,e)},setVersion(e,t){this.sdkName=void 0===this.sdkNames[t]?0:this.sdkNames[t],this.sdkVersion=e},toApi(e){return[this.API_URL[this.mode],e].join("/")},toDoor(e){return[this.DOOR_URL[this.mode],e].join("/")},toWidget(e){return[this.WIDGET_URL[this.mode],e].join("/")},isMobile(){if("undefined"==typeof window)return!1;const e=window.navigator.userAgent||window.navigator.vendor;return/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/.test(e)},isMobileSafari(){if("undefined"==typeof window)return!1;const e=window.navigator.userAgent;return(e.match(/iPad/i)||e.match(/iPhone/i))&&!e.match(/CriOS/i)},toAnalytics(e){return[this.ANALYTICS_URL[this.mode],e].join("/")}};class S extends Error{constructor(e){super(),this.name="BootpayEventError",this.eventMessage=e}}const x={__BOOTPAY_NAMESPACE:{},isBind:!1,initialize(){this.isBind||("undefined"!=typeof window&&(window.addBootpayEventListener=this.on,window.removeBootpayEventListener=this.off,window.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),"undefined"!=typeof document&&(document.addBootpayEventListener=this.on,document.removeBootpayEventListener=this.off,document.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),"undefined"!=typeof Element&&(Element.prototype.addBootpayEventListener=this.on,Element.prototype.removeBootpayEventListener=this.off,Element.prototype.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),this.isBind=!0)},on(e,t,r=void 0){return i(x.__BOOTPAY_NAMESPACE)&&(x.__BOOTPAY_NAMESPACE={}),this.addEventListener(e.split(".")[0],t,r||!1),x.__BOOTPAY_NAMESPACE[e]=t,this},off(e){return s(x.__BOOTPAY_NAMESPACE)&&s(x.__BOOTPAY_NAMESPACE[e])&&this.removeEventListener(e.split(".")[0],x.__BOOTPAY_NAMESPACE[e]),this}};class O extends _{constructor(){super(),this.$resolve=null,this.$reject=null,x.initialize()}reject(e){null!==this.$reject&&this.$reject(e)}resolve(e){null!==this.$resolve&&this.$resolve(e)}setCallbackFunction(e,t){this.$resolve=e,this.$reject=t}parseEvent(e){let t={};if(this.$present(e)&&this.$type(e,"string")){try{t=JSON.parse(e)}catch(r){P.info("json parsing failed",`data: ${e}, message: ${A(r)} JSON 파싱 형태가 아닌 이벤트 입니다.`)}return t.bootpay_event?(delete t.bootpay_event,t):null}return null}}const A=e=>"string"==typeof e?e.toUpperCase():e instanceof Error?e.message:e;class R extends _{constructor(){super(),this.$windowId="",this.$template=""}byId(e){return document.getElementById(e)}createTemplateHtml(){if(null===this.byId(this.$windowId)){const e=document.querySelector("body");this.$present(e.className)?e.className=`${e.className} bootpay-open`:e.className="bootpay-open",document.body.insertAdjacentHTML("beforeend",this.$template)}}templateResize(e,t){const r=this.byId(e);if(void 0!==r)for(let n in Object.keys(t)){let e=Object.keys(t)[n],i=t[e];this.$present(i)&&!String(i).match(/%/)&&(e.match(/width/)||e.match(/Width/)||e.match(/height/)||e.match(/Height/))&&(i=`${String(t[e]).replace(/px/gi,"")}px`),r.style.setProperty(e,i)}}}const U=new class extends R{constructor(){super(),this.$alfredId="bootpay-alfred-progress-id",this.$alfredTextId="__alfred-text-message__"}template(e){return`\n<div class="bootpay-progress-background" id="${this.$alfredId}" style="display: none;">\n<div class="progress-message-window">\n <div class="alfred-loading">\n <div class="bootpay-spinner"></div> \n </div>\n <div class="alfred-text">\n <span class="alfred-inner-text" id="${this.$alfredTextId}">${e}</span>\n </div>\n</div> \n</div>\n `}showProgress(e){this.$present(this.byId(this.$alfredId))?this.byId(this.$alfredTextId).innerText=e:document.body.insertAdjacentHTML("beforeend",this.template(e)),this.byId(this.$alfredId).style.setProperty("display","block")}hideProgress(){try{this.byId(this.$alfredId).outerHTML=""}catch(e){}}};var D={exports:{}},B=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}},C=B,N=Object.prototype.toString,M=function(e){return function(t){var r=N.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())}}(Object.create(null));function F(e){return e=e.toLowerCase(),function(t){return M(t)===e}}function j(e){return Array.isArray(e)}function L(e){return void 0===e}var W=F("ArrayBuffer");function H(e){return null!==e&&"object"==typeof e}function q(e){if("object"!==M(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}var z=F("Date"),K=F("File"),J=F("Blob"),V=F("FileList");function Y(e){return"[object Function]"===N.call(e)}var G=F("URLSearchParams");function X(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),j(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}var Q=function(e){return function(t){return e&&t instanceof e}}("undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array)),Z={isArray:j,isArrayBuffer:W,isBuffer:function(e){return null!==e&&!L(e)&&null!==e.constructor&&!L(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){var t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||N.call(e)===t||Y(e.toString)&&e.toString()===t)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&W(e.buffer)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:H,isPlainObject:q,isUndefined:L,isDate:z,isFile:K,isBlob:J,isFunction:Y,isStream:function(e){return H(e)&&Y(e.pipe)},isURLSearchParams:G,isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:X,merge:function e(){var t={};function r(r,n){q(t[n])&&q(r)?t[n]=e(t[n],r):q(r)?t[n]=e({},r):j(r)?t[n]=r.slice():t[n]=r}for(var n=0,i=arguments.length;n<i;n++)X(arguments[n],r);return t},extend:function(e,t,r){return X(t,(function(t,n){e[n]=r&&"function"==typeof t?C(t,r):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r){var n,i,s,o={};t=t||{};do{for(i=(n=Object.getOwnPropertyNames(e)).length;i-- >0;)o[s=n[i]]||(t[s]=e[s],o[s]=!0);e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:M,kindOfTest:F,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;var t=e.length;if(L(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},isTypedArray:Q,isFileList:V},ee=Z;function te(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var re=function(e,t,r){if(!t)return e;var n;if(r)n=r(t);else if(ee.isURLSearchParams(t))n=t.toString();else{var i=[];ee.forEach(t,(function(e,t){null!=e&&(ee.isArray(e)?t+="[]":e=[e],ee.forEach(e,(function(e){ee.isDate(e)?e=e.toISOString():ee.isObject(e)&&(e=JSON.stringify(e)),i.push(te(t)+"="+te(e))})))})),n=i.join("&")}if(n){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e},ne=Z;function ie(){this.handlers=[]}ie.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},ie.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},ie.prototype.forEach=function(e){ne.forEach(this.handlers,(function(t){null!==t&&e(t)}))};var se=ie,oe=Z,ae=Z;function ce(e,t,r,n,i){Error.call(this),this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i)}ae.inherits(ce,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var de=ce.prototype,le={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(e){le[e]={value:e}})),Object.defineProperties(ce,le),Object.defineProperty(de,"isAxiosError",{value:!0}),ce.from=function(e,t,r,n,i,s){var o=Object.create(de);return ae.toFlatObject(e,o,(function(e){return e!==Error.prototype})),ce.call(o,e.message,t,r,n,i),o.name=e.name,s&&Object.assign(o,s),o};var ue=ce,pe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},he=Z;var me,ye,fe,ve,ge=function(e,t){t=t||new FormData;var r=[];function n(e){return null===e?"":he.isDate(e)?e.toISOString():he.isArrayBuffer(e)||he.isTypedArray(e)?"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}return function e(i,s){if(he.isPlainObject(i)||he.isArray(i)){if(-1!==r.indexOf(i))throw Error("Circular reference detected in "+s);r.push(i),he.forEach(i,(function(r,i){if(!he.isUndefined(r)){var o,a=s?s+"."+i:i;if(r&&!s&&"object"==typeof r)if(he.endsWith(i,"{}"))r=JSON.stringify(r);else if(he.endsWith(i,"[]")&&(o=he.toArray(r)))return void o.forEach((function(e){!he.isUndefined(e)&&t.append(a,n(e))}));e(r,a)}})),r.pop()}else t.append(s,n(i))}(e),t};var _e,we,be,$e,Ee,Pe,ke,Ie,Te,Se,xe,Oe,Ae=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)},Re=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e},Ue=function(e,t){return e&&!Ae(t)?Re(e,t):t};function De(){if(Pe)return Ee;Pe=1;var e=ue;function t(t){e.call(this,null==t?"canceled":t,e.ERR_CANCELED),this.name="CanceledError"}return Z.inherits(t,e,{__CANCEL__:!0}),Ee=t}function Be(){if(Se)return Te;Se=1;var e=Z,t=function(){if(ye)return me;ye=1;var e=ue;return me=function(t,r,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?r(new e("Request failed with status code "+n.status,[e.ERR_BAD_REQUEST,e.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}}(),r=function(){if(ve)return fe;ve=1;var e=Z;return fe=e.isStandardBrowserEnv()?function(){return{write:function(t,r,n,i,s,o){var a=[];a.push(t+"="+encodeURIComponent(r)),e.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),e.isString(i)&&a.push("path="+i),e.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()}(),n=re,i=Ue,s=function(){if(we)return _e;we=1;var e=Z,t=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];return _e=function(r){var n,i,s,o={};return r?(e.forEach(r.split("\n"),(function(r){if(s=r.indexOf(":"),n=e.trim(r.substr(0,s)).toLowerCase(),i=e.trim(r.substr(s+1)),n){if(o[n]&&t.indexOf(n)>=0)return;o[n]="set-cookie"===n?(o[n]?o[n]:[]).concat([i]):o[n]?o[n]+", "+i:i}})),o):o}}(),o=function(){if($e)return be;$e=1;var e=Z;return be=e.isStandardBrowserEnv()?function(){var t,r=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var t=e;return r&&(n.setAttribute("href",t),t=n.href),n.setAttribute("href",t),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(r){var n=e.isString(r)?i(r):r;return n.protocol===t.protocol&&n.host===t.host}}():function(){return function(){return!0}}()}(),a=pe,c=ue,d=De(),l=Ie?ke:(Ie=1,ke=function(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""});return Te=function(u){return new Promise((function(p,h){var m,y=u.data,f=u.headers,v=u.responseType;function g(){u.cancelToken&&u.cancelToken.unsubscribe(m),u.signal&&u.signal.removeEventListener("abort",m)}e.isFormData(y)&&e.isStandardBrowserEnv()&&delete f["Content-Type"];var _=new XMLHttpRequest;if(u.auth){var w=u.auth.username||"",b=u.auth.password?unescape(encodeURIComponent(u.auth.password)):"";f.Authorization="Basic "+btoa(w+":"+b)}var $=i(u.baseURL,u.url);function E(){if(_){var e="getAllResponseHeaders"in _?s(_.getAllResponseHeaders()):null,r={data:v&&"text"!==v&&"json"!==v?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:e,config:u,request:_};t((function(e){p(e),g()}),(function(e){h(e),g()}),r),_=null}}if(_.open(u.method.toUpperCase(),n($,u.params,u.paramsSerializer),!0),_.timeout=u.timeout,"onloadend"in _?_.onloadend=E:_.onreadystatechange=function(){_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))&&setTimeout(E)},_.onabort=function(){_&&(h(new c("Request aborted",c.ECONNABORTED,u,_)),_=null)},_.onerror=function(){h(new c("Network Error",c.ERR_NETWORK,u,_,_)),_=null},_.ontimeout=function(){var e=u.timeout?"timeout of "+u.timeout+"ms exceeded":"timeout exceeded",t=u.transitional||a;u.timeoutErrorMessage&&(e=u.timeoutErrorMessage),h(new c(e,t.clarifyTimeoutError?c.ETIMEDOUT:c.ECONNABORTED,u,_)),_=null},e.isStandardBrowserEnv()){var P=(u.withCredentials||o($))&&u.xsrfCookieName?r.read(u.xsrfCookieName):void 0;P&&(f[u.xsrfHeaderName]=P)}"setRequestHeader"in _&&e.forEach(f,(function(e,t){void 0===y&&"content-type"===t.toLowerCase()?delete f[t]:_.setRequestHeader(t,e)})),e.isUndefined(u.withCredentials)||(_.withCredentials=!!u.withCredentials),v&&"json"!==v&&(_.responseType=u.responseType),"function"==typeof u.onDownloadProgress&&_.addEventListener("progress",u.onDownloadProgress),"function"==typeof u.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",u.onUploadProgress),(u.cancelToken||u.signal)&&(m=function(e){_&&(h(!e||e&&e.type?new d:e),_.abort(),_=null)},u.cancelToken&&u.cancelToken.subscribe(m),u.signal&&(u.signal.aborted?m():u.signal.addEventListener("abort",m))),y||(y=null);var k=l($);k&&-1===["http","https","file"].indexOf(k)?h(new c("Unsupported protocol "+k+":",c.ERR_BAD_REQUEST,u)):_.send(y)}))}}var Ce=Z,Ne=function(e,t){oe.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))},Me=ue,Fe=ge,je={"Content-Type":"application/x-www-form-urlencoded"};function Le(e,t){!Ce.isUndefined(e)&&Ce.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var We,He={transitional:pe,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(We=Be()),We),transformRequest:[function(e,t){if(Ne(t,"Accept"),Ne(t,"Content-Type"),Ce.isFormData(e)||Ce.isArrayBuffer(e)||Ce.isBuffer(e)||Ce.isStream(e)||Ce.isFile(e)||Ce.isBlob(e))return e;if(Ce.isArrayBufferView(e))return e.buffer;if(Ce.isURLSearchParams(e))return Le(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString();var r,n=Ce.isObject(e),i=t&&t["Content-Type"];if((r=Ce.isFileList(e))||n&&"multipart/form-data"===i){var s=this.env&&this.env.FormData;return Fe(r?{"files[]":e}:e,s&&new s)}return n||"application/json"===i?(Le(t,"application/json"),function(e,t,r){if(Ce.isString(e))try{return(t||JSON.parse)(e),Ce.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||He.transitional,r=t&&t.silentJSONParsing,n=t&&t.forcedJSONParsing,i=!r&&"json"===this.responseType;if(i||n&&Ce.isString(e)&&e.length)try{return JSON.parse(e)}catch(s){if(i){if("SyntaxError"===s.name)throw Me.from(s,Me.ERR_BAD_RESPONSE,this,null,this.response);throw s}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Oe?xe:(Oe=1,xe=null)},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Ce.forEach(["delete","get","head"],(function(e){He.headers[e]={}})),Ce.forEach(["post","put","patch"],(function(e){He.headers[e]=Ce.merge(je)}));var qe,ze,Ke=He,Je=Z,Ve=Ke;function Ye(){return ze?qe:(ze=1,qe=function(e){return!(!e||!e.__CANCEL__)})}var Ge=Z,Xe=function(e,t,r){var n=this||Ve;return Je.forEach(r,(function(r){e=r.call(n,e,t)})),e},Qe=Ye(),Ze=Ke,et=De();function tt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new et}var rt,nt,it=Z,st=function(e,t){t=t||{};var r={};function n(e,t){return it.isPlainObject(e)&&it.isPlainObject(t)?it.merge(e,t):it.isPlainObject(t)?it.merge({},t):it.isArray(t)?t.slice():t}function i(r){return it.isUndefined(t[r])?it.isUndefined(e[r])?void 0:n(void 0,e[r]):n(e[r],t[r])}function s(e){if(!it.isUndefined(t[e]))return n(void 0,t[e])}function o(r){return it.isUndefined(t[r])?it.isUndefined(e[r])?void 0:n(void 0,e[r]):n(void 0,t[r])}function a(r){return r in t?n(e[r],t[r]):r in e?n(void 0,e[r]):void 0}var c={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a};return it.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,n=t(e);it.isUndefined(n)&&t!==a||(r[e]=n)})),r};function ot(){return nt?rt:(nt=1,rt={version:"0.27.2"})}var at=ot().version,ct=ue,dt={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){dt[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var lt={};dt.transitional=function(e,t,r){function n(e,t){return"[Axios v"+at+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,i,s){if(!1===e)throw new ct(n(i," has been removed"+(t?" in "+t:"")),ct.ERR_DEPRECATED);return t&&!lt[i]&&(lt[i]=!0,console.warn(n(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,i,s)}};var ut,pt,ht,mt,yt,ft,vt=Z,gt=re,_t=se,wt=function(e){return tt(e),e.headers=e.headers||{},e.data=Xe.call(e,e.data,e.headers,e.transformRequest),e.headers=Ge.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Ge.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||Ze.adapter)(e).then((function(t){return tt(e),t.data=Xe.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return Qe(t)||(tt(e),t&&t.response&&(t.response.data=Xe.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))},bt=st,$t=Ue,Et={assertOptions:function(e,t,r){if("object"!=typeof e)throw new ct("options must be an object",ct.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),i=n.length;i-- >0;){var s=n[i],o=t[s];if(o){var a=e[s],c=void 0===a||o(a,s,e);if(!0!==c)throw new ct("option "+s+" must be "+c,ct.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new ct("Unknown option "+s,ct.ERR_BAD_OPTION)}},validators:dt},Pt=Et.validators;function kt(e){this.defaults=e,this.interceptors={request:new _t,response:new _t}}kt.prototype.request=function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},(t=bt(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;void 0!==r&&Et.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var s,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!i){var a=[wt,void 0];for(Array.prototype.unshift.apply(a,n),a=a.concat(o),s=Promise.resolve(t);a.length;)s=s.then(a.shift(),a.shift());return s}for(var c=t;n.length;){var d=n.shift(),l=n.shift();try{c=d(c)}catch(u){l(u);break}}try{s=wt(c)}catch(u){return Promise.reject(u)}for(;o.length;)s=s.then(o.shift(),o.shift());return s},kt.prototype.getUri=function(e){e=bt(this.defaults,e);var t=$t(e.baseURL,e.url);return gt(t,e.params,e.paramsSerializer)},vt.forEach(["delete","get","head","options"],(function(e){kt.prototype[e]=function(t,r){return this.request(bt(r||{},{method:e,url:t,data:(r||{}).data}))}})),vt.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,i){return this.request(bt(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}kt.prototype[e]=t(),kt.prototype[e+"Form"]=t(!0)}));var It=Z,Tt=B,St=kt,xt=st;var Ot=function e(t){var r=new St(t),n=Tt(St.prototype.request,r);return It.extend(n,St.prototype,r),It.extend(n,r),n.create=function(r){return e(xt(t,r))},n}(Ke);Ot.Axios=St,Ot.CanceledError=De(),Ot.CancelToken=function(){if(pt)return ut;pt=1;var e=De();function t(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var r;this.promise=new Promise((function(e){r=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(t){n.reason||(n.reason=new e(t),r(n.reason))}))}return t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},t.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},t.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},t.source=function(){var e;return{token:new t((function(t){e=t})),cancel:e}},ut=t}(),Ot.isCancel=Ye(),Ot.VERSION=ot().version,Ot.toFormData=ge,Ot.AxiosError=ue,Ot.Cancel=Ot.CanceledError,Ot.all=function(e){return Promise.all(e)},Ot.spread=mt?ht:(mt=1,ht=function(e){return function(t){return e.apply(null,t)}}),Ot.isAxiosError=function(){if(ft)return yt;ft=1;var e=Z;return yt=function(t){return e.isObject(t)&&!0===t.isAxiosError}}(),D.exports=Ot,D.exports.default=Ot;const At=c(D.exports);var Rt,Ut={exports:{}},Dt={exports:{}};function Bt(){return Rt||(Rt=1,function(e,t){var r;e.exports=(r=m(),function(e){var t=r,n=t.lib,i=n.WordArray,s=n.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var s=this._hash.words,o=e[t+0],c=e[t+1],h=e[t+2],m=e[t+3],y=e[t+4],f=e[t+5],v=e[t+6],g=e[t+7],_=e[t+8],w=e[t+9],b=e[t+10],$=e[t+11],E=e[t+12],P=e[t+13],k=e[t+14],I=e[t+15],T=s[0],S=s[1],x=s[2],O=s[3];T=d(T,S,x,O,o,7,a[0]),O=d(O,T,S,x,c,12,a[1]),x=d(x,O,T,S,h,17,a[2]),S=d(S,x,O,T,m,22,a[3]),T=d(T,S,x,O,y,7,a[4]),O=d(O,T,S,x,f,12,a[5]),x=d(x,O,T,S,v,17,a[6]),S=d(S,x,O,T,g,22,a[7]),T=d(T,S,x,O,_,7,a[8]),O=d(O,T,S,x,w,12,a[9]),x=d(x,O,T,S,b,17,a[10]),S=d(S,x,O,T,$,22,a[11]),T=d(T,S,x,O,E,7,a[12]),O=d(O,T,S,x,P,12,a[13]),x=d(x,O,T,S,k,17,a[14]),T=l(T,S=d(S,x,O,T,I,22,a[15]),x,O,c,5,a[16]),O=l(O,T,S,x,v,9,a[17]),x=l(x,O,T,S,$,14,a[18]),S=l(S,x,O,T,o,20,a[19]),T=l(T,S,x,O,f,5,a[20]),O=l(O,T,S,x,b,9,a[21]),x=l(x,O,T,S,I,14,a[22]),S=l(S,x,O,T,y,20,a[23]),T=l(T,S,x,O,w,5,a[24]),O=l(O,T,S,x,k,9,a[25]),x=l(x,O,T,S,m,14,a[26]),S=l(S,x,O,T,_,20,a[27]),T=l(T,S,x,O,P,5,a[28]),O=l(O,T,S,x,h,9,a[29]),x=l(x,O,T,S,g,14,a[30]),T=u(T,S=l(S,x,O,T,E,20,a[31]),x,O,f,4,a[32]),O=u(O,T,S,x,_,11,a[33]),x=u(x,O,T,S,$,16,a[34]),S=u(S,x,O,T,k,23,a[35]),T=u(T,S,x,O,c,4,a[36]),O=u(O,T,S,x,y,11,a[37]),x=u(x,O,T,S,g,16,a[38]),S=u(S,x,O,T,b,23,a[39]),T=u(T,S,x,O,P,4,a[40]),O=u(O,T,S,x,o,11,a[41]),x=u(x,O,T,S,m,16,a[42]),S=u(S,x,O,T,v,23,a[43]),T=u(T,S,x,O,w,4,a[44]),O=u(O,T,S,x,E,11,a[45]),x=u(x,O,T,S,I,16,a[46]),T=p(T,S=u(S,x,O,T,h,23,a[47]),x,O,o,6,a[48]),O=p(O,T,S,x,g,10,a[49]),x=p(x,O,T,S,k,15,a[50]),S=p(S,x,O,T,f,21,a[51]),T=p(T,S,x,O,E,6,a[52]),O=p(O,T,S,x,m,10,a[53]),x=p(x,O,T,S,b,15,a[54]),S=p(S,x,O,T,c,21,a[55]),T=p(T,S,x,O,_,6,a[56]),O=p(O,T,S,x,I,10,a[57]),x=p(x,O,T,S,v,15,a[58]),S=p(S,x,O,T,P,21,a[59]),T=p(T,S,x,O,y,6,a[60]),O=p(O,T,S,x,$,10,a[61]),x=p(x,O,T,S,h,15,a[62]),S=p(S,x,O,T,w,21,a[63]),s[0]=s[0]+T|0,s[1]=s[1]+S|0,s[2]=s[2]+x|0,s[3]=s[3]+O|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var s=e.floor(n/4294967296),o=n;r[15+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),r[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,d=0;d<4;d++){var l=c[d];c[d]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});function d(e,t,r,n,i,s,o){var a=e+(t&r|~t&n)+i+o;return(a<<s|a>>>32-s)+t}function l(e,t,r,n,i,s,o){var a=e+(t&n|r&~n)+i+o;return(a<<s|a>>>32-s)+t}function u(e,t,r,n,i,s,o){var a=e+(t^r^n)+i+o;return(a<<s|a>>>32-s)+t}function p(e,t,r,n,i,s,o){var a=e+(r^(t|~n))+i+o;return(a<<s|a>>>32-s)+t}t.MD5=s._createHelper(c),t.HmacMD5=s._createHmacHelper(c)}(Math),r.MD5)}(Dt)),Dt.exports}var Ct,Nt={exports:{}},Mt={exports:{}};function Ft(){return Ct||(Ct=1,function(e,t){var r,n,i,s,o,a,c,d;e.exports=(d=m(),n=(r=d).lib,i=n.WordArray,s=n.Hasher,o=r.algo,a=[],c=o.SHA1=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],s=r[2],o=r[3],c=r[4],d=0;d<80;d++){if(d<16)a[d]=0|e[t+d];else{var l=a[d-3]^a[d-8]^a[d-14]^a[d-16];a[d]=l<<1|l>>>31}var u=(n<<5|n>>>27)+c+a[d];u+=d<20?1518500249+(i&s|~i&o):d<40?1859775393+(i^s^o):d<60?(i&s|i&o|s&o)-1894007588:(i^s^o)-899497514,c=o,o=s,s=i<<30|i>>>2,i=n,n=u}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+s|0,r[3]=r[3]+o|0,r[4]=r[4]+c|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}),r.SHA1=s._createHelper(c),r.HmacSHA1=s._createHmacHelper(c),d.SHA1)}(Mt)),Mt.exports}var jt,Lt,Wt={exports:{}};function Ht(){return Lt||(Lt=1,function(e,t){var r,n,i,s,o,a,c,d;e.exports=(d=m(),Ft(),jt||(jt=1,function(e,t){var r,n,i;e.exports=(n=(r=m()).lib.Base,i=r.enc.Utf8,void(r.algo.HMAC=n.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var s=this._oKey=t.clone(),o=this._iKey=t.clone(),a=s.words,c=o.words,d=0;d<r;d++)a[d]^=1549556828,c[d]^=909522486;s.sigBytes=o.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,r=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(r))}})))}(Wt)),Wt.exports,n=(r=d).lib,i=n.Base,s=n.WordArray,o=r.algo,a=o.MD5,c=o.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r,n=this.cfg,i=n.hasher.create(),o=s.create(),a=o.words,c=n.keySize,d=n.iterations;a.length<c;){r&&i.update(r),r=i.update(e).finalize(t),i.reset();for(var l=1;l<d;l++)r=i.finalize(r),i.reset();o.concat(r)}return o.sigBytes=4*c,o}}),r.EvpKDF=function(e,t,r){return c.create(r).compute(e,t)},d.EvpKDF)}(Nt)),Nt.exports}var qt,zt={exports:{}};!function(e,t){var r;e.exports=(r=m(),Bt(),Ht(),qt||(qt=1,function(e,t){var r;e.exports=(r=m(),Ht(),void(r.lib.Cipher||function(e){var t=r,n=t.lib,i=n.Base,s=n.WordArray,o=n.BufferedBlockAlgorithm,a=t.enc;a.Utf8;var c=a.Base64,d=t.algo.EvpKDF,l=n.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?_:v}return function(t){return{encrypt:function(r,n,i){return e(n).encrypt(t,r,n,i)},decrypt:function(r,n,i){return e(n).decrypt(t,r,n,i)}}}}()});n.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=t.mode={},p=n.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),h=u.CBC=function(){var t=p.extend();function r(t,r,n){var i,s=this._iv;s?(i=s,this._iv=e):i=this._prevBlock;for(var o=0;o<n;o++)t[r+o]^=i[o]}return t.Encryptor=t.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize;r.call(this,e,t,i),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,s=e.slice(t,t+i);n.decryptBlock(e,t),r.call(this,e,t,i),this._prevBlock=s}}),t}(),m=(t.pad={}).Pkcs7={pad:function(e,t){for(var r=4*t,n=r-e.sigBytes%r,i=n<<24|n<<16|n<<8|n,o=[],a=0;a<n;a+=4)o.push(i);var c=s.create(o,n);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};n.BlockCipher=l.extend({cfg:l.cfg.extend({mode:h,padding:m}),reset:function(){var e;l.reset.call(this);var t=this.cfg,r=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,r&&r.words):(this._mode=e.call(n,this,r&&r.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var y=n.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;return(r?s.create([1398893684,1701076831]).concat(r).concat(t):t).toString(c)},parse:function(e){var t,r=c.parse(e),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=s.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),y.create({ciphertext:r,salt:t})}},v=n.SerializableCipher=i.extend({cfg:i.extend({format:f}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),s=i.finalize(t),o=i.cfg;return y.create({ciphertext:s,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(r,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=(t.kdf={}).OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=d.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,y.create({key:i,iv:o,salt:n})}},_=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var s=v.encrypt.call(this,e,t,i.key,n);return s.mixIn(i),s},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);return n.iv=i.iv,v.decrypt.call(this,e,t,i.key,n)}})}()))}(zt)),function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],s=[],o=[],a=[],c=[],d=[],l=[],u=[],p=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var m=n^n<<1^n<<2^n<<3^n<<4;m=m>>>8^255&m^99,i[r]=m,s[m]=r;var y=e[r],f=e[y],v=e[f],g=257*e[m]^16843008*m;o[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,d[r]=g,g=16843009*v^65537*f^257*y^16843008*r,l[m]=g<<24|g>>>8,u[m]=g<<16|g>>>16,p[m]=g<<8|g>>>24,h[m]=g,r?(r=y^e[e[e[v^y]]],n^=e[e[n]]):r=n=1}}();var m=[0,1,2,4,8,16,32,64,128,27,54],y=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),s=this._keySchedule=[],o=0;o<n;o++)o<r?s[o]=t[o]:(d=s[o-1],o%r?r>6&&o%r==4&&(d=i[d>>>24]<<24|i[d>>>16&255]<<16|i[d>>>8&255]<<8|i[255&d]):(d=i[(d=d<<8|d>>>24)>>>24]<<24|i[d>>>16&255]<<16|i[d>>>8&255]<<8|i[255&d],d^=m[o/r|0]<<24),s[o]=s[o-r]^d);for(var a=this._invKeySchedule=[],c=0;c<n;c++){if(o=n-c,c%4)var d=s[o];else d=s[o-4];a[c]=c<4||o<=4?d:l[i[d>>>24]]^u[i[d>>>16&255]]^p[i[d>>>8&255]]^h[i[255&d]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,c,d,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,l,u,p,h,s),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,s,o,a){for(var c=this._nRounds,d=e[t]^r[0],l=e[t+1]^r[1],u=e[t+2]^r[2],p=e[t+3]^r[3],h=4,m=1;m<c;m++){var y=n[d>>>24]^i[l>>>16&255]^s[u>>>8&255]^o[255&p]^r[h++],f=n[l>>>24]^i[u>>>16&255]^s[p>>>8&255]^o[255&d]^r[h++],v=n[u>>>24]^i[p>>>16&255]^s[d>>>8&255]^o[255&l]^r[h++],g=n[p>>>24]^i[d>>>16&255]^s[l>>>8&255]^o[255&u]^r[h++];d=y,l=f,u=v,p=g}y=(a[d>>>24]<<24|a[l>>>16&255]<<16|a[u>>>8&255]<<8|a[255&p])^r[h++],f=(a[l>>>24]<<24|a[u>>>16&255]<<16|a[p>>>8&255]<<8|a[255&d])^r[h++],v=(a[u>>>24]<<24|a[p>>>16&255]<<16|a[d>>>8&255]<<8|a[255&l])^r[h++],g=(a[p>>>24]<<24|a[d>>>16&255]<<16|a[l>>>8&255]<<8|a[255&u])^r[h++],e[t]=y,e[t+1]=f,e[t+2]=v,e[t+3]=g},keySize:8});e.AES=t._createHelper(y)}(),r.AES)}(Ut);const Kt=c(Ut.exports);class Jt{constructor(){this.$http=At.create({timeout:6e4})}static encryptParams(e){o(e,"object")&&(e=JSON.stringify(e));let t=Kt.encrypt(e,n());return{payload:t.ciphertext.toString(g),token:`${t.key.toString(g)}##${t.iv.toString(g)}`}}static toUnderscore(e){return e.split(/(?=[A-Z])/).join("_").toLowerCase()}static toCamelcase(e){return e.replace(/(\_[a-z])/g,(function(e){return e.toUpperCase().replace(/_/g,"")}))}static objectKeyToUnderscore(e){let t;return s(e)&&(Array.isArray(e)?(t=[],e.forEach((e=>{let r={};Object.keys(e).forEach((t=>{r[this.toUnderscore(t)]=e[t]})),t.push(r)}))):(t={},Object.keys(e).forEach((r=>{t[this.toUnderscore(r)]=e[r]})))),t}static objectKeyToCamel(e){let t;return s(e)&&(Array.isArray(e)?(t=[],e.forEach((e=>{let r={};Object.keys(e).forEach((t=>{r[this.toCamelcase(t)]=e[t]})),t.push(r)}))):(t={},Object.keys(e).forEach((r=>{o(e[r],"object")&&Object.keys(e[r]).length>0?t[this.toCamelcase(r)]=this.objectKeyToCamel(e[r]):t[this.toCamelcase(r)]=e[r]})))),t}static axiosMultipayConfigure(){At.defaults.headers.common["Content-Type"]="application/json",At.defaults.headers.common.Accept="application/json",At.interceptors.request.use((e=>(s(e.data),this.isHttpBodyUsedMethod(e.method)&&(e.data=Jt.encryptParams(Jt.objectKeyToUnderscore(e.data))),void 0!==e.headers&&s(e.headers.progress)&&delete e.headers.progress,e)),(e=>Promise.reject(e))),At.interceptors.response.use((e=>e),(function(e){if(s(e.response)){let t=e.response.data;return t.status=e.response.status,Promise.reject(t)}return Promise.reject(e)}))}static isHttpBodyUsedMethod(e){return["post","put"].indexOf(e)>-1}}Jt.axiosMultipayConfigure();const Vt=new class extends Jt{constructor(){super()}pollingStatus(e,r,n,i){return t(this,null,(function*(){try{const t=yield this.$http.get([e,"s",r].join("/"),{params:{application_id:n,tk:i}});return Promise.resolve(t)}catch(t){return Promise.reject(t)}}))}};const Yt=new class extends O{constructor(){super(),this.$messageEventName="message.BootpayPaymentEvent",this.$eventPrefix="bootpay",this.$pollingInterval=void 0,this.$pollingData={applicationId:"",gatewayUrl:"",receiptId:"",transactionKey:""},this.$pollingEvent=Vt,this.pollingInterval=3e3,this.isDone=!1}bind(e,t){this.isDone=!1,this.setCallbackFunction(e,t),window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(P.debug("event received",JSON.stringify(t)),s(t))switch(P.debug("event",t),t.event){case"error":case"cancel":return this.reject({event:t.event,pg_error_code:t.pg_error_code,error_code:t.error_code,message:t.message,payload:t.payload});case"confirm":return this.resolve({event:t.event,receipt_id:t.receipt_id,gateway_url:t.gateway_url,order_id:t.order_id});case"redirect":return void location.replace(t.url);case"polling":return void 0!==this.$pollingData&&(this.$pollingData.receiptId=t.receipt_id,this.$pollingData.gatewayUrl=t.gateway_url),this.startPollingEvent();case"issued":case"done":if(!this.isDone)return this.isDone=!0,this.clearPollingEvent(),this.resolve(t);break;case"iFrameStyle":Zt.iFrameSetStyle(t.styles);break;case"windowStyle":Zt.windowStyle(t.styles);break;case"hideProgress":U.hideProgress();break;case"showProgress":U.showProgress(t.message);break;case"resize":Zt.iFrameResize(t.resizeData);break;case"hidePayment":Zt.closePopup(),Zt.hidePaymentiFrame();break;case"showPayment":Zt.showPaymentiFrame(!!this.$present(t.showCloseButton)&&t.showCloseButton);break;case"popup":Zt.createPopupButton({gatewayUrl:t.url,receiptId:t.receipt_id,name:t.name,price:t.price});break;case"close":Zt.destroy();break;default:return}}))}setDefaultPaymentData(e,t){void 0!==this.$pollingData&&(this.$pollingData.applicationId=e,this.$pollingData.transactionKey=t)}callBootpayDOMEvent(e,t=void 0){document.dispatchEvent(new CustomEvent([this.$eventPrefix,e].join(""),{detail:t}))}startPollingEvent(){this.$pollingInterval=setInterval((()=>t(this,null,(function*(){if(void 0!==this.$pollingData)try{const e=yield this.$pollingEvent.pollingStatus(this.$pollingData.gatewayUrl,this.$pollingData.receiptId,this.$pollingData.applicationId,this.$pollingData.transactionKey);let t={bootpay_event:!0,event:"",data:e.data};if(void 0!==e.data){if(P.debug("polling event",`receive data: ${JSON.stringify(t)}`),1===e.data.status)return t.event="done",window.postMessage(JSON.stringify(t),"*");if(5===e.data.status)return t.event="issued",window.postMessage(JSON.stringify(t),"*")}}catch(e){return this.reject({error_code:"RC_RECEIPT_POLLING_INVALID",message:"결제 상태 체크에 실패하였습니다."})}}))),this.pollingInterval)}clearPollingEvent(){void 0!==this.$pollingInterval&&clearInterval(this.$pollingInterval),this.$pollingInterval=void 0,this.$pollingData={applicationId:"",gatewayUrl:"",receiptId:"",transactionKey:""}}allClearEvent(){this.clearPollingEvent(),window.removeBootpayEventListener(this.$messageEventName)}},Gt="5.0.0-beta.15";const Xt=new class extends Jt{constructor(){super(),this.$session=I,this.$applicationId=void 0,this.$tk=void 0,this.$platformType=1,this.$receiptId=void 0}setTokenKey(e){this.$tk=e}setReceiptId(e){this.$receiptId=e}clearInstance(){this.$applicationId=void 0,this.$receiptId=void 0}send(e){try{if(s(this.$applicationId))return e.application_id=this.$applicationId,e.status=s(e.status)?e.status:1,e.version=Gt,e.tk=this.$tk,P.debug("send event",`${JSON.stringify(e)} 전송됨`),this.$http.post(T.toAnalytics("event"),e)}catch(t){return}}sendError(e){e.status=-1,this.send(e)}setApplicationId(e){this.$applicationId=e}sendCloseEvent(){if(!s(this.$receiptId))return P.debug("receipt_id","undefined receipt_id"),Promise.resolve();try{return this.$http.put(T.toApi(`close/${this.$receiptId}`))}catch(e){return Promise.reject(e)}}},Qt={startProgress:{PAYMENT:{ko:"결제를 시작합니다",en:"Start Payment..."},CARD_SUBSCRIPTION:{ko:"카드정기결제를 시작합니다",en:"Automatic payment will start..."},AUTH:{ko:"본인인증을 시작합니다",en:"Authentication will start..."}},popupLocaleMessage:{message:{ko:"구매 내역에 동의하면 결제를 진행해주세요",en:"If you agree with the purchase details, please proceed with the payment."},button:{ko:"결제계속하기",en:"Continue"}},popupMessage:{message:{PAYMENT:{ko:"구매 내역에 동의하면 결제를 진행해주세요",en:"If you agree with the purchase details, please proceed with the payment"},CARD_SUBSCRIPTION:{ko:'카드 자동결제에 동의하면 "계속하기" 버튼을 눌러 진행해주세요',en:'If you agree to automatic card payment, press the "Continue" button to proceed'},AUTH:{ko:'본인인증에 동의하면 "계속하기" 버튼을 눌러 진행해주세요',en:'If you agree to authenticate yourself, press the "Continue" button to proceed'}},button:{PAYMENT:{ko:"결제계속하기",en:"Continue"},CARD_SUBSCRIPTION:{ko:"계속하기",en:"Continue"},AUTH:{ko:"계속하기",en:"Continue"}}},closeMessage:{PAYMENT:{ko:"결제창을 닫았습니다",en:"Payment window is closed"},CARD_SUBSCRIPTION:{ko:"자동 결제창을 닫았습니다",en:"Automatic Payment window is closed"},AUTH:{ko:"본인인증 창을 닫았습니다",en:"Authenticate window is closed"}},confirmNotYet:{PAYMENT:{ko:"결제 승인준비가 되지 않았습니다",en:"Payment approval not ready "},CARD_SUBSCRIPTION:{ko:"자동결제 승인준비가 되지 않았습니다",en:"Automatic Payment approval not ready"},AUTH:{ko:"본인인증 승인준비가 되지 않았습니다",en:"Authenticate approval not ready"}},notSelectPayment:{ko:"어떤 방법으로 결제할지 선택해주세요",en:"Please, do select payment."},termsNotAgree:{ko:"필수 약관을 모두 동의해주세요",en:"Please agree to all required terms and conditions"},notSelectOOPay:{ko:"간편결제로 결제하려면, 등록된 카드 혹은 계좌를 선택해주세요",en:"Please select a registered card or account to pay with Easy Payment"},getLocaleMessage:(e,t)=>{const r=e.split(".").reduce(((e,t)=>e[t]),Qt);return s(r)&&s(r[t])?r[t]:r.ko}};const Zt=new class extends R{constructor(){super(),this.mode="PAYMENT",this.modeApiUrl={PAYMENT:"request/payment",CARD_SUBSCRIPTION:"request/subscribe",AUTH:"request/authentication"},this.$formId="bootpay-form",this.$iFrameId="bootpay-iframe-id",this.$windowId="bootpay-window-id",this.$paymentWindowId="bootpay-payment-window-id",this.$confirmFormId="bootpay-confirm-form-id",this.$confirmIFrame="bootpay-confirm-iframe-id",this.$popupWindow="bootpay-popup-window-id",this.$closeButton="bootpay-close-btn",this.$popupItemNameId="bootpay-item-name-id",this.$popupPriceId="bootpay-price-id",this.$popup=void 0,this.$popupWatcher=void 0,this.$popupUrl=void 0,this.$env=T,this.$template=this.template()}template(){return`\n<div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window ${T.isMobile()?"__mobile":""}" id="${this.$paymentWindowId}">\n <button class="bootpay-close-btn" id="${this.$closeButton}" style="display: none;" onclick="Bootpay.dismiss()"></button> \n <form id="${this.$formId}" method="POST">\n </form> \n <iframe id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe>\n <div class="bootpay-popup-window" id="${this.$popupWindow}">\n <div class="header">\n <button class="bootpay-close-btn" onclick="Bootpay.dismiss(true)"></button>\n </div>\n <div class="body">\n <h5 id="${this.$popupItemNameId}"></h5>\n <p class="price" id="${this.$popupPriceId}"></p> \n <div class="agree-text">${this.message("popupMessage.message")}</div>\n </div>\n <div class="footer">\n <button class="bootpay-button" onclick="Bootpay.readyToPopup()">\n ${this.message("popupMessage.button")}\n </button> \n </div>\n </div>\n </div>\n <div class="bootpay-confirm-window">\n <form id="${this.$confirmFormId}" method="POST">\n <input type="hidden" name="_method" value="put" /> \n </form>\n <iframe id="${this.$confirmIFrame}" name="${this.$confirmIFrame}"></iframe>\n </div> \n</div>\n `}templateReload(){P.debug("template reload","template reload!"),this.$template=this.template()}start(e,r="PAYMENT"){return t(this,null,(function*(){return new Promise(((t,n)=>{this.mode=r,this.templateReload(),Yt.clearPollingEvent(),Yt.bind(t,n),Yt.setDefaultPaymentData(e.application_id,e.tk),U.showProgress(this.message("startProgress")),this.createTemplateHtml();const i=Jt.encryptParams(Jt.objectKeyToUnderscore(e)),s=this.byId(this.$formId);s.innerHTML=`\n <input type="hidden" name="payload" value="${i.payload}" />\n <input type="hidden" name="token" value="${i.token}" />\n `,s.action=this.$env.toApi(this.apiUrl()),this.$present(e.extra)&&e.extra.popup,s.target=this.$iFrameId,s.submit()}))}))}setConfirmFormUrl(e){const t=this.byId(this.$confirmIFrame),r=this.byId(this.$confirmFormId);t.style.setProperty("display","block"),r.target=this.$confirmIFrame,r.action=e}confirm(){return new Promise(((e,t)=>{Yt.bind(e,t);const r=this.byId(this.$confirmFormId);if(this.$blank(r.action))throw new S({event:"error",error_code:"RC_CONFIRM_READY_NOT_YET",message:this.message("confirmNotYet")});r.submit()}))}startPaymentUrl(e,r="PAYMENT"){return t(this,null,(function*(){return new Promise(((t,n)=>{this.mode=r,this.templateReload(),Yt.clearPollingEvent(),Yt.bind(t,n),Yt.setDefaultPaymentData(null,null),U.showProgress(this.message("startProgress")),this.createTemplateHtml();const i=this.byId(this.$formId);i.method="GET",i.action=e,i.target=this.$iFrameId,i.submit()}))}))}createPopupButton(e){U.hideProgress(),this.hidePaymentiFrame(),this.showPopupMessage(e),this.$present(e.gatewayUrl)&&(this.$popupUrl=`${e.gatewayUrl}?popup=1`,Xt.setReceiptId(e.receiptId))}readyToPopup(e=void 0){this.hidePopupMessage(),this.closePopup();this.$popup=window.open(this.getPopupUrl(e),"BootPayPopupInstance","width=750,height=500,top=0,left=0,scrollbars=yes,directories=no, status=no, menubar=no, fullscreen=no"),this.$popupWatcher=setInterval((()=>t(this,null,(function*(){if(void 0===this.$popup||this.$popup.closed){try{clearInterval(this.$popupWatcher),yield Xt.sendCloseEvent()}catch(e){P.debug("popup",A(e))}return this.$popupUrl=void 0,Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:this.message("closeMessage")})}}))),500),this.bindParentEventOnPopup()}closePopup(){if(void 0!==this.$popupWatcher)try{clearInterval(this.$popupWatcher),P.debug("close popup","clear popup interval")}catch(e){P.info("clear popup watcher",A(e))}if(void 0!==this.$popup&&!this.$popup.closed)try{this.$popup.close(),P.debug("close popup","close popup instance")}catch(e){P.info("popup destroy",A(e))}}getPopupUrl(e){return this.$present(e)?e:this.$present(this.$popupUrl)?this.$popupUrl:"about:blank"}bindParentEventOnPopup(){let e="beforeunload.BootpayReloadWatcher";T.isMobileSafari()&&(e="pagehide.BootpayReloadWatcher"),window.resetBootpayEventListener(e,(()=>{if(void 0!==this.$popup&&!this.$popup.closed)try{this.$popup.close()}catch(e){P.info("popup destroy",A(e))}}))}showPaymentiFrame(e=!1){const t=this.byId(this.$iFrameId),r=this.byId(this.$closeButton);void 0!==t&&t.style.setProperty("display","block"),void 0!==r&&e&&r.style.setProperty("display","inline-block")}showPopupMessage(e){const t=this.byId(this.$popupWindow),r=this.byId(this.$popupItemNameId),n=this.byId(this.$popupPriceId);void 0!==t&&t.style.setProperty("display","block"),void 0!==r&&(r.innerText=e.name),void 0!==n&&(parseFloat(e.price)>0?n.innerText=String(e.price):n.remove())}hidePopupMessage(){this.byId(this.$popupWindow).style.setProperty("display","none")}destroy(){this.$present(document.querySelector("body").className)&&(document.querySelector("body").className=document.querySelector("body").className.replace(/bootpay-open/gi,"")),this.$present(this.byId(this.$windowId))&&(this.byId(this.$windowId).outerHTML=""),document.body.classList.remove("bootpay-open"),U.hideProgress(),this.closePopup(),Yt.allClearEvent(),Xt.clearInstance(),setTimeout((()=>Yt.callBootpayDOMEvent("close")),300)}iFrameResize(e){const t=this.byId(this.$iFrameId);if(void 0!==t)for(let r in Object.keys(e)){let n=Object.keys(e)[r],i=e[n];this.$present(i)&&!String(i).match(/%/)&&(n.match(/width/)||n.match(/Width/)||n.match(/height/)||n.match(/Height/))&&(i=`${String(e[n]).replace(/px/gi,"")}px`),String(i).match(/%/)&&!this.byId(this.$paymentWindowId).className.match(/w-100/)&&(this.byId(this.$paymentWindowId).className+=" w-100"),t.style.setProperty(n,i)}}iFrameSetStyle(e){P.debug("change style",e);const t=this.byId(this.$iFrameId);for(let n in Object.keys(e)){let i=Object.keys(e)[n];try{P.debug(i,e[i]),t.style.setProperty(i,e[i])}catch(r){P.warn("iframe style",null==r?void 0:r.message)}}}windowStyle(e){P.debug("change style",e);const t=this.byId(this.$paymentWindowId);for(let n in Object.keys(e)){let i=Object.keys(e)[n];try{P.debug(i,e[i]),t.style.setProperty(i,e[i])}catch(r){P.warn("iframe style",null==r?void 0:r.message)}}}hidePaymentiFrame(){const e=this.byId(this.$iFrameId),t=this.byId(this.$closeButton);void 0!==e&&e.style.setProperty("display","none"),void 0!==t&&t.style.setProperty("display","none")}message(e){return Qt.getLocaleMessage(`${e}.${this.mode}`,T.locale)}moveToUrl(e){const t=this.byId(this.$iFrameId);this.hidePaymentiFrame(),t.removeAttribute("style"),this.iFrameResize({width:T.isMobile()?"100%":400,height:T.isMobile()?"100%":700}),t.style.setProperty("display","block"),t.src=e}apiUrl(){return this.modeApiUrl[this.mode]}},er=class e extends _{constructor(){super(),this.$session=I,this.$logger=P,this.$event=Xt,this.platformType=r.PLATFORM.JS,this.$transactionKey="",this.extra={},this.browserBootpayFilter={instagram:/Instagram/i,kakaotalk:/KAKAOTALK/i,facebook:/FBAV/i,naver:/NAVER/i,mobile_safari:/(iPhone|iPad|iPod)/,mobile_chrome:[/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/,/Chrome/]}}requestPayment(r){return t(this,null,(function*(){var t;void 0===(null==(t=r.extra)?void 0:t.locale)||T.isSetLocale||T.setLocale(r.extra.locale),this.$event.clearInstance(),this.generateTransactionKey(),r.application_id=T.currentApplicationId(r.application_id),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(r.application_id),this.$event.send({step:"start",msg:"결제 요청 시작",request:r}),r.sdk=!0,r.platform_type=this.platformType,r.ver=Gt,r.sdk_version=T.sdkVersion,r.sdk_type=T.sdkName,r.locale=T.locale,r.price=parseFloat(String(r.price)),r.tax_free=parseFloat(String(r.tax_free)),e.invalidRequestParamsData(r),e.invalidRequestItemsData(r.items,r.price),r.uuid=this.$session.currentUserUUID(),r.sk=this.$session.currentSessionKey(),r.ti=this.$session.currentTimeTerm(),r.tk=this.$transactionKey,r.env=this.getUserDeviceEnvironment(),r.extra=this.openTypeFilter(r.extra),this.extra=r.extra;try{const e=yield Zt.start(r);return P.debug("confirm ready",e),Zt.hidePaymentiFrame(),Zt.closePopup(),-1===["done","issued"].indexOf(e.event)&&this.$event.send({step:e.event,msg:"",request:r,response:e}),Zt.setConfirmFormUrl(`${e.gateway_url}/confirm/${e.receipt_id}?application_id=${r.application_id}`),Promise.resolve(e)}catch(n){return this.eventError(n),Promise.reject(n)}}))}confirm(){return t(this,null,(function*(){try{const e=yield Zt.confirm();return Promise.resolve(e)}catch(e){return this.eventError(e),Promise.reject(e)}}))}eventDone(e,t=!0){this.$logger.debug(e.event,e),this.$event.send({step:e.event,msg:"done"===e.event?"결제완료":"가상계좌발급완료",request:{},response:e}),U.hideProgress(),this.$logger.debug("show result",this.isDisplaySuccessResult()),this.isDisplaySuccessResult()&&t?this.displayResultView(e.data.receipt_id):Zt.destroy()}eventError(e){U.hideProgress(),Zt.closePopup(),this.isDisplayErrorResult()&&"error"===e.event?this.displayResultErrorView(e):Zt.destroy(),this.$logger.debug("done failed destroy and hide","payment"),this.$event.sendError({step:this.$present(e.event)?e.event:"error",msg:e.message,trace:function(){try{return e.stack}catch(t){return!1}}()})}generateTransactionKey(){return this.$transactionKey=`${this.$uuid()}-${1e3*(new Date).getTime()}`,this.$transactionKey}requestSubscription(e){return t(this,null,(function*(){this.$event.clearInstance(),this.generateTransactionKey(),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(e.application_id),this.$event.send({step:"start",msg:"정기결제 요청 시작",request:e}),e.extra=this.openTypeFilter(e.extra);const t={application_id:e.application_id,subscription_id:e.subscription_id,pg:e.pg,method:e.method,order_name:e.order_name,price:e.price,tax_free:e.tax_free,user_token:e.user_token,metadata:e.metadata,platform_type:this.platformType,ver:Gt,sdk_version:T.sdkVersion,sdk_type:T.sdkName,locale:T.locale,sdk:!0,uuid:this.$session.currentUserUUID(),sk:this.$session.currentSessionKey(),tk:this.$transactionKey,env:this.getUserDeviceEnvironment(),user:e.user,extra:e.extra};try{const r=yield Zt.start(t,"CARD_SUBSCRIPTION");switch(P.debug("subscription success",r),this.$event.send({step:"confirm",msg:"결제승인전",request:{},response:r}),Zt.hidePaymentiFrame(),Zt.closePopup(),r.event){case"done":case"issued":break;case"confirm":Zt.setConfirmFormUrl(`${r.gateway_url}/confirm/${r.receipt_id}?application_id=${e.application_id}`)}return Promise.resolve(r)}catch(r){return this.eventError(r),Promise.reject(r)}}))}requestAuthentication(e){return t(this,null,(function*(){this.$event.clearInstance(),this.generateTransactionKey(),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(e.application_id),this.$event.send({step:"start",msg:"본인인증 요청 시작",request:e}),e.extra=this.openTypeFilter(e.extra);const t={application_id:e.application_id,authentication_id:e.authentication_id,pg:e.pg,method:this.$present(e.method)?e.method:"auth",order_name:e.order_name,platform_type:this.platformType,ver:Gt,sdk_version:T.sdkVersion,sdk_type:T.sdkName,locale:T.locale,metadata:e.metadata,sdk:!0,uuid:this.$session.currentUserUUID(),sk:this.$session.currentSessionKey(),tk:this.$transactionKey,env:this.getUserDeviceEnvironment(),user:e.user,extra:e.extra};try{const r=yield Zt.start(t,"AUTH");switch(P.debug("authentication success",r),this.$event.send({step:"confirm",msg:"본인인증 승인전",request:{},response:r}),Zt.hidePaymentiFrame(),Zt.closePopup(),r.event){case"done":case"issued":break;case"confirm":Zt.setConfirmFormUrl(`${r.gateway_url}/confirm/${r.receipt_id}?application_id=${e.application_id}`)}return Promise.resolve(r)}catch(r){return this.eventError(r),Promise.reject(r)}}))}requestPaymentUrl(e){return t(this,null,(function*(){try{const t=yield Zt.startPaymentUrl(e.url);return-1===["done","issued"].indexOf(t.event)&&this.$event.send({step:t.event,msg:"",request:{url:e.url},response:t}),Zt.setConfirmFormUrl(`${t.gateway_url}/confirm/${t.receipt_id}?application_id=${e.application_id}`),Promise.resolve(t)}catch(t){return this.eventError(t),Promise.reject(t)}}))}getUserDeviceEnvironment(){return{width:window.innerWidth,height:window.innerHeight}}isDisplaySuccessResult(){return void 0!==this.extra&&void 0!==this.extra.display_success_result&&this.extra.display_success_result}isDisplayErrorResult(){return void 0!==this.extra&&void 0!==this.extra.display_error_result&&this.extra.display_error_result}displayResultView(e){Zt.moveToUrl(T.toDoor(`result/${e}`))}displayResultErrorView(e){Zt.moveToUrl(T.toDoor(`error?error_code=${e.error_code}&pg_error_code=${e.pg_error_code}&message=${e.message}`))}openTypeFilter(e){if(this.$present(e)&&void 0!==e.browser_open_type){const t=this.getUserAgent();for(let r in e.browser_open_type){const n=e.browser_open_type[r],i=this.$present(this.browserBootpayFilter[n.browser])?this.browserBootpayFilter[n.browser]:new RegExp(`${n.browser}`);if(t.match(i)){e.open_type=n.open_type;break}}}return e}static invalidRequestParamsData(t){if(i(t))throw new S({event:"error",error_code:"NEED_MORE_PARAMS",message:"결제 요청을 위한 최소한의 결제 정보를 입력해주세요."});Object.keys(e.invalidRequestParams).forEach((r=>{const n=t[r];if(i(n))throw new S({event:"error",error_code:"INVALID_REQUEST_PARAMS",message:e.invalidRequestParams[r]})}))}static invalidRequestItemsData(e,t){if(void 0!==e&&s(e)){let r=0;if(e.forEach(((t,n)=>{if(i(t.id))throw new S({event:"error",error_code:"NEED_ITEM_ID",message:`${n+1}번째 상품 고유 ID를 입력해주세요. [ key: id ]`});if(i(t.name))throw new S({event:"error",error_code:"NEED_ITEM_NAME",message:`${n+1}번째 상품명을 입력해주세요. [ key: name ]`});if(i(t.qty))throw new S({event:"error",error_code:"NEED_ITEM_QTY",message:`${n+1}번째 상품수량을 입력해주세요. [ key: qty ]`});if(i(t.price))throw new S({event:"error",error_code:"NEED_ITEM_PRICE",message:`${n+1}번째 상품금액을 입력해주세요. [ key: price ]`});e[n].price=parseFloat(String(e[n].price)),e[n].qty=parseFloat(String(e[n].qty)),r+=e[n].price*e[n].qty})),r!==t)throw new S({event:"error",error_code:"NEED_ITEM_TOTAL_PRICE_NOT_MATCH",message:`결제 금액과 상품 수량 및 상품 금액의 총합과 일치하지 않습니다. [ 요청금액: ${t} ${typeof t}, 상품 총합계 금액: ${r} ${typeof r} ]`})}}};er.invalidRequestParams={application_id:"application_id를 입력해주세요. [ key: application_id ]",order_name:"판매할 상품명을 입력해주세요. [ key: order_name ]",price:"판매할 상품의 금액을 입력해주세요. [ key: price ]",order_id:"가맹점에서 설정할 주문 ID를 입력해주세요. [ key: order_id ]"};let tr=er;const rr=new tr;const nr=new class extends Jt{constructor(){super(),this.$session=I}setAnalyticsData(e){this.$session.setTime(e.time),this.$session.setUUID(e.uuid)}send(e){return t(this,null,(function*(){const t=document.URL;if(void 0!==t&&-1===t.search(/bootapi.co.kr/)){const n=this.$session.getUser();e.application_id=T.currentApplicationId(e.application_id),e.sk=this.$session.currentSessionKey(),e.uuid=this.$session.currentUserUUID(),e.time=this.$session.currentTime(),e.url=t,e.referer=void 0!==document.referrer&&s(document.referrer)&&-1==document.referrer.search(new RegExp(window.location.hostname))?document.referrer:"",e.user_id=void 0===n||i(n)?void 0:n.id,e.items=this.generateItemKeyToVersion1(e.items);try{const t=yield this.$http.post(T.toAnalytics(`call?ver=${Gt}`),e);return 200===t.data.status?(P.info("Analytics Common Send","통계 데이터가 전송되었습니다."),Promise.resolve()):(P.warn("Analytics Common Send",`통계 데이터가 전송 실패. ${JSON.stringify(t.data)}`),Promise.reject())}catch(r){return P.error("Analytics Common Error",`데이터 전송 실패: ${r.message}`),Promise.reject()}}}))}login(e){return t(this,null,(function*(){if(e.application_id=T.currentApplicationId(e.application_id),i(e.application_id))return P.error("Analytics Params","application_id 값을 입력해주세요.");if(i(e.id))return P.error("Analytics Params","id 값을 입력해주세요.");try{const t=yield this.$http.post(T.toAnalytics(`login?ver=${Gt}`),e),{user_id:r}=t.data.data;return this.$session.setUser({id:r,time:(new Date).getTime()}),Promise.resolve()}catch(t){return P.error("Analytics Login Error",`데이터 전송 실패: ${t.message}`),Promise.reject()}}))}logout(){this.$session.setUser(void 0)}generateItemKeyToVersion1(e){return void 0!==e?e.map((e=>({cat1:e.cat1,cat2:e.cat2,cat3:e.cat3,item_img:e.img,item_name:e.name,unique:e.id,price:e.price}))):void 0}};!function(){if("undefined"==typeof window||"function"==typeof window.CustomEvent)return!1;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};let r=document.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r}e.prototype=window.Event.prototype,window.CustomEvent=e}();const ir={$payment:rr,$analytics:nr,$environment:T,requestPayment(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{void 0!==e.extra&&!0===e.extra.override_global_event&&(P.debug("override global event","override global event!"),ir.overrideGlobalInstance());const t=yield this.$payment.requestPayment(e);setTimeout((()=>{r(t),["done","issued"].indexOf(t.event)>-1&&this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>{n(this.errorHandler(t))}),100)}}))))}))},confirm(){return t(this,null,(function*(){return new Promise(((e,r)=>t(this,null,(function*(){try{const t=yield this.$payment.confirm();setTimeout((()=>{e(t),this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>r(this.errorHandler(t))),100)}}))))}))},requestSubscription(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestSubscription(e);r(t),this.$payment.eventDone(t)}catch(t){return n(this.errorHandler(t))}}))))}))},requestAuthentication(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestAuthentication(e);r(t),this.$payment.eventDone(t)}catch(t){return n(this.errorHandler(t))}}))))}))},requestPaymentUrl(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestPaymentUrl(e);setTimeout((()=>{r(t),["done","issued"].indexOf(t.event)>-1&&this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>{n(this.errorHandler(t))}),100)}}))))}))},setEnvironmentMode(e,t=void 0){this.$environment.set(e),void 0!==t&&this.$environment.setDevelopmentHost(t)},setApplicationId(e){return this.$environment.setApplicationId(e)},setVersion(e,t){return this.$environment.setVersion(e,t)},setDevice(e){switch(e){case"IOS":this.$payment.platformType=r.PLATFORM.IOS;break;case"ANDROID":this.$payment.platformType=r.PLATFORM.ANDROID;break;default:this.$payment.platformType=r.PLATFORM.JS}return this.$payment.platformType},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},readyToPopup(){Zt.readyToPopup()},setLogLevel(e){P.setLogLevel(e)},setUUID:e=>I.setUUID(e),send(e=void 0){return this.$analytics.send(void 0!==e?e:{})},login(e){return this.$analytics.login(e)},logout(){return this.$analytics.logout()},setLocale(e){T.setLocale(e),Zt.templateReload()},dismiss(e=!1){return t(this,null,(function*(){if(e)try{yield Xt.sendCloseEvent()}catch(t){P.debug("error",t.message)}Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:"사용자가 결제창을 닫았습니다."})}))},getCurrentUUID:()=>I.currentUserUUID(),destroy(){Zt.destroy()},overrideGlobalInstance(){window.Bootpay=ir}};"undefined"!=typeof window&&(window.Bootpay=ir);class sr extends O{constructor(){super(),this.$messageEventName="message.BootpayUserTokenEvent"}bind(e,t){this.setCallbackFunction(e,t),window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(s(t))switch(P.debug("event",t),t.event){case"error":case"cancel":return this.reject({event:t.event,pg_error_code:t.pg_error_code,error_code:t.error_code,message:t.message,payload:t.payload});case"data":return this.resolve(t.data);case"confirmPasswordToken":return this.resolve(t.token);case"confirmAddCard":return this.resolve(t);case"resize":or.iFrameResize(t.resizeData);break;default:return}}))}}const or=new class extends R{constructor(){super(),this.$windowId="bootpay-user-token-background-id",this.$userWindowId="bootpay-user-token-window-id",this.$iFrameId="bootpay-user-token-iframe-id",this.$bootpaySdkFormId="bootpay-user-token-sdk-form",this.$template=this.template(),this.$event=new sr,this.$session=I,this.deviceType=r.PLATFORM.JS}setDevice(e){return this.deviceType=e,this.deviceType}template(){return`\n <div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window" id="${this.$userWindowId}">\n <iframe id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe>\n <form name="${this.$bootpaySdkFormId}" id="${this.$bootpaySdkFormId}" method="GET"> \n </form>\n </div>\n </div>\n `}setParams(e,t){if(void 0!==t){const r=this.byId(this.$bootpaySdkFormId);if(["POST","PUT"].indexOf(e.toUpperCase())>-1){const e=Jt.encryptParams(Jt.objectKeyToUnderscore(t));r.innerHTML=`\n <input type="hidden" name="payload" value="${e.payload}" />\n <input type="hidden" name="token" value="${e.token}" /> \n `}else{let n="";"DELETE"===e.toUpperCase()&&(n+='<input type="hidden" name="_method" value="patch"/>'),Object.keys(t).forEach((e=>{n+=`<input type="hidden" name="${e}" value="${t[e]}"/>`})),r.innerHTML=n}}}request(e,t){return new Promise(((r,n)=>{this.createTemplateHtml(),this.$event.bind(r,n),this.goiFrameUrl("GET",T.toDoor(`sdk/password/${t}`),{type:e,uuid:this.$session.currentUserUUID()})}))}addCard(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("GET",T.toDoor(`sdk/card/${e}`),{uuid:this.$session.currentUserUUID()})}))}wallets(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("GET",T.toApi("sdk/easy/wallet"),{user_token:e,sdk:!0,uuid:this.$session.currentUserUUID()})}))}destroyWallet(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/wallet"),{method:"DELETE",sdk:!0,user_token:e.user_token,wallet_id:e.wallet_id,token:e.token,uuid:this.$session.currentUserUUID()})}))}createBiometricAuthenticate(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/biometric"),{user_token:e.userToken,sdk:!0,uuid:this.$session.currentUserUUID(),os:e.os,token:e.token})}))}destroyBiometricAuthenticate(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/biometric"),{method:"DELETE",uuid:this.$session.currentUserUUID(),user_token:e.userToken,token:e.token})}))}requestWalletPayment(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/card"),this.regenerateRequestPayment(e))}))}goiFrameUrl(e,t,r=void 0){this.setParams(e,r);const n=this.byId(this.$bootpaySdkFormId);n.method=this.toMethod(e),n.action=t,n.target=this.$iFrameId,n.submit(),this.show()}toMethod(e){switch(e.toUpperCase()){case"PUT":case"DELETE":return"POST";default:return e}}iFrameResize(e){const t=this.byId(this.$iFrameId);if(void 0!==t)for(let r in Object.keys(e)){let n=Object.keys(e)[r],i=e[n];this.$present(i)&&!String(i).match(/%/)&&(n.match(/width/)||n.match(/Width/)||n.match(/height/)||n.match(/Height/))&&(i=`${String(e[n]).replace(/px/gi,"")}px`),String(i).match(/%/)&&!this.byId(this.$userWindowId).className.match(/w-100/)&&(this.byId(this.$userWindowId).className+=" w-100"),t.style.setProperty(n,i)}}regenerateRequestPayment(e){return e.ver=Gt,e.platform_type=this.deviceType,e.sdk=!0,e.price=parseFloat(String(e.price)),e.tax_free=parseFloat(String(e.tax_free)),tr.invalidRequestParamsData(e),tr.invalidRequestItemsData(e.items,e.price),e.uuid=this.$session.currentUserUUID(),e.sk=this.$session.currentSessionKey(),e.ti=this.$session.currentTimeTerm(),e.tk=`${this.$uuid()}-${1e3*(new Date).getTime()}`,e}show(){const e=this.byId(this.$iFrameId);void 0!==e&&e.style.setProperty("display","block")}destroy(){this.$present(document.querySelector("body").className)&&(document.querySelector("body").className=document.querySelector("body").className.replace(/bootpay-open/gi,"")),this.$present(this.byId(this.$windowId))&&(this.byId(this.$windowId).outerHTML=""),document.body.classList.remove("bootpay-open"),Yt.clearPollingEvent(),setTimeout((()=>Yt.callBootpayDOMEvent("close")),300)}},ar={$templateUserToken:or,requestPasswordToken(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.request("passwordToken",e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestChangePassword(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.request("changePasswordToken",e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestAddCard(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.addCard(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},wallets(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.wallets(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},destroyWallet(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.destroyWallet(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},createBiometricAuthenticate(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.createBiometricAuthenticate(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},destroyBiometricAuthenticate(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.destroyBiometricAuthenticate(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestWalletPayment(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.requestWalletPayment(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},setEnvironmentMode(e,t=void 0){T.set(e),void 0!==t&&T.setDevelopmentHost(t)},setDevice(e){let t=r.PLATFORM.JS;switch(e.toUpperCase()){case"IOS":t=r.PLATFORM.IOS;break;case"ANDROID":t=r.PLATFORM.ANDROID}return this.$templateUserToken.setDevice(t)},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},setLogLevel(e){P.setLogLevel(e)},setUUID:e=>I.setUUID(e),dismiss(){Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:"사용자가 결제창을 닫았습니다."})}};"undefined"!=typeof window&&(window.BootpaySDK=ar);const cr={el:void 0,applicationId:void 0,price:0,taxFree:0,currency:"KRW",userToken:void 0,pg:void 0,method:void 0,walletId:void 0,selectTerms:[],useOnlyOOpay:!1,termsPassed:!1,useTerms:!0,sandbox:!1,widgetKey:void 0,externalTerms:[],widgetExtra:{card_quota:[]},extra:{},setWidgetData(e){this.el=String(e.el).replace(/#/gi,""),this.applicationId=e.application_id,this.price=e.price,this.taxFree=e.tax_free,this.currency=e.currency,this.userToken=e.user_token,this.useOnlyOOpay=void 0!==e.use_only_oopay&&e.use_only_oopay,this.useTerms=!(!1===e.use_terms),this.walletId=e.wallet_id,this.externalTerms=e.external_terms,this.widgetExtra=e.widget_extra,this.widgetKey=e.widget_key,this.sandbox=!0===e.sandbox,this.termsPassed=!1,this.extra={}},setPayment(e,t,r,n=!1,i,s){this.pg=e,this.method=t,this.walletId=r,this.termsPassed=n,this.selectTerms=i,this.extra=s},updateOnProcessing(e){s(e.price)&&(this.price=e.price),s(e.tax_free)&&(this.taxFree=e.tax_free),s(e.currency)&&(this.currency=e.currency),void 0!==e.user_token&&(this.userToken=e.user_token),s(e.use_terms)&&(this.useTerms=!(!1===e.use_terms)),s(e.sandbox)&&(this.sandbox=!0===e.sandbox),void 0!==e.external_terms&&(this.externalTerms=e.external_terms),void 0!==e.widget_key&&(this.widgetKey=e.widget_key)}};const dr=new class extends R{constructor(){super(),this.$iFrameId="bootpay-widget-iframe",this.$widgetStore=cr,this.$template=`\n <iframe id="${this.$iFrameId}" src="" frameborder="0" allowtransparency="true" scrolling="no" style="background: transparent; width: 100%; height: 100%;"></iframe> \n `,this.isRendered=!1}render(){const e=document.getElementById(this.$widgetStore.el);if(this.$blank(this.$widgetStore.el)||null===e)throw new Error("부트페이 위젯을 설정할 Element ID를 입력하지 않았거나 해당 Element DOM이 존재하지 않습니다.");this.templateRender()}templateRender(){const e=document.getElementById(this.$widgetStore.el);e.style.setProperty("height","0px"),e.innerHTML=this.$template;this.byId(this.$iFrameId).setAttribute("src",T.toWidget(`p/${this.$widgetStore.applicationId}`)),this.isRendered=!0}resize(e){this.templateResize(this.$widgetStore.el,e)}rerender(){this.postMessage("bootpayWidgetRerender")}destroy(){document.getElementById(this.$widgetStore.el).innerHTML=""}postMessage(e,t=void 0){var r;const n=this.byId(this.$iFrameId);null==(r=null==n?void 0:n.contentWindow)||r.postMessage(JSON.stringify({bootpay_event:!0,event:e,data:t}),"*")}};const lr=new class extends R{constructor(){super(),this.$oopayWindowId="__bootpay-card-easy-window",this.$iFrameId="__bootpay-card-easy-iframe",this.$windowId="__bootpay-card-easy-container-window",this.$additionalClass=T.isMobile()?"":"rounded-iframe",this.$template=this.template(),this.$widgetStore=cr}template(){return`\n<div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window ${T.isMobile()?"__mobile":""}" id="${this.$oopayWindowId}"> \n <iframe class="${this.$additionalClass}" id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe> \n </div> \n</div>\n `}createIFrame(e){this.createTemplateHtml();const t=document.getElementById(this.$iFrameId);null==t||t.setAttribute("src",T.toWidget(`${e}`)),null==t||t.style.setProperty("display","block")}addWallet(){this.createIFrame(`wallet/add/${this.$widgetStore.applicationId}`)}removeWallet(e){this.createIFrame(`oopay/destroy/${this.$widgetStore.applicationId}/${e}`)}showCardInterestInformation(e){this.createIFrame(`card/interest/${this.$widgetStore.applicationId}`)}destroy(){document.body.classList.remove("bootpay-open");const e=document.getElementById(this.$windowId);void 0!==e&&(e.outerHTML="",e.remove())}resize(e){P.debug("resize",e),this.templateResize(this.$iFrameId,e)}postMessage(e,t=void 0){var r;const n=this.byId(this.$iFrameId);null==(r=null==n?void 0:n.contentWindow)||r.postMessage(JSON.stringify({bootpay_event:!0,event:e,data:t}),"*")}};const ur=new class extends O{constructor(){super(),this.$messageEventName="message.BootpayWidgetEvent",this.$eventPrefix="bootpay"}bind(){window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(s(t))switch(t.event){case"bootpayWidgetSelectMethod":return pr.selectPayment(t.data.pg,t.data.method,t.data.wallet_id,!0===t.data.term_passed,t.data.select_terms,t.data.extra);case"bootpayRequestGetEnvironment":return dr.postMessage("bootpayResponseGetEnvironment",{use_only_oopay:dr.$widgetStore.useOnlyOOpay,user_token:dr.$widgetStore.userToken,sandbox:dr.$widgetStore.sandbox,use_terms:dr.$widgetStore.useTerms,external_terms:dr.$widgetStore.externalTerms,key:dr.$widgetStore.widgetKey});case"bootpayRequestGetEnvironmentOOPAY":return lr.postMessage("bootpayResponseGetEnvironmentOOPAY",{use_only_oopay:dr.$widgetStore.useOnlyOOpay,user_token:dr.$widgetStore.userToken,sandbox:dr.$widgetStore.sandbox,use_terms:dr.$widgetStore.useTerms});case"bootpayWidgetError":return this.reject(t);case"bootpayWidgetOOpayReload":return dr.postMessage("bootpayWidgetOOpayReload",t.data);case"bootpayWidgetResize":return dr.resize(t.data);case"bootpayWidgetShowInterestInformation":return lr.showCardInterestInformation(t.data);case"bootpayWidgetAddWallet":return lr.addWallet();case"bootpayWidgetRemoveWallet":return lr.removeWallet(t.data.wallet_id);case"bootpayWidgetPaymentWindowResize":return lr.resize(t.data);case"bootpayWidgetOOpayWindowClose":return lr.destroy();case"bootpayWidgetPaymentGetStoreData":const{applicationId:e,price:r,widgetExtra:n,taxFree:i,userToken:s}=dr.$widgetStore;return dr.postMessage("bootpayWidgetResponseStoreData",{applicationId:e,price:r,widgetExtra:n,taxFree:i,userToken:s});case"bootpayWidgetTermAllAgree":return void this.callBootpayDOMEvent("allagreeterms",t.data);case"bootpayWidgetSelectPayment":const{method_alias:o,payment_type:a,wallet_id:c}=t.data;return dr.postMessage("bootpayWidgetSelectPayment",{method_alias:o,payment_type:a,wallet_id:c});case"bootpayWidgetReady":this.callBootpayDOMEvent("widgetready",t.data);default:return this.reject(t)}}))}callBootpayDOMEvent(e,t=void 0){document.dispatchEvent(new CustomEvent([this.$eventPrefix,e].join(""),{detail:t}))}destroyAllEvent(){window.removeBootpayEventListener(this.$messageEventName)}};const pr=new class extends _{constructor(){super(),this.message=Qt}initialize(){cr.setWidgetData({el:void 0,application_id:void 0,price:0,tax_free:0,currency:"KRW",user_token:void 0,pg:void 0,method:void 0,widget_key:void 0})}render(e,t){if(this.$blank(null==t?void 0:t.price)||t.price<0)throw new Error("결제금액은 1원 이상을 입력해주세요.");if(this.$blank(null==t?void 0:t.application_id))throw new Error("application_id가 입력되지 않았습니다.");this.initialize(),cr.setWidgetData({el:e,application_id:t.application_id,price:t.price,tax_free:t.tax_free,currency:t.currency,user_token:t.user_token,use_only_oopay:t.use_only_oopay,external_terms:t.external_terms,widget_extra:t.extra,use_terms:t.use_terms,sandbox:t.sandbox,widget_key:t.key}),dr.render(),ur.bind()}update(e){const{price:t,tax_free:r,currency:n,user_token:i,use_only_oopay:s,use_terms:o,sandbox:a,external_terms:c}=e;cr.updateOnProcessing({price:t,tax_free:r,currency:n,user_token:i,use_only_oopay:s,use_terms:o,external_terms:c,sandbox:a}),(this.$present(i)||this.$present(s)||this.$present(o)||this.$present(a))&&dr.postMessage("bootpayWidgetUpdateUserToken",{user_token:i,use_only_oopay:s,use_terms:o,external_terms:c,sandbox:a})}rerender(){dr.rerender()}destroy(){dr.destroy()}selectPayment(e,t,r,n=!1,i,s){cr.setPayment(e,t,r,n,i,s),P.debug("selectPayment",`pg: ${e}, method: ${t}, wallet_id: ${r}, terms: ${n}, select_terms: ${JSON.stringify(i)}, extra: ${JSON.stringify(s)}`)}currentTermsCondition(){return cr.selectTerms}requestPayment(e){return t(this,null,(function*(){if(this.$blank(cr.pg)||this.$blank(cr.method))throw new S({event:"error",error_code:"RC_PG_METHOD_NOT_SELECTED",message:this.message.getLocaleMessage("notSelectPayment","ko")});if(!cr.termsPassed&&cr.useTerms)throw new S({event:"error",error_code:"RC_TERMS_NOT_AGREE",message:this.message.getLocaleMessage("termsNotAgree","ko")});if("OOPAY"===cr.method&&void 0===cr.walletId)throw new S({event:"error",error_code:"RC_OOPAY_NEED_SELECT_WALLET",message:this.message.getLocaleMessage("notSelectOOPay","ko")});return e.application_id=cr.applicationId,e.price=cr.price,e.tax_free=cr.taxFree,e.currency=cr.currency,e.pg=cr.pg,e.method=cr.method,e.wallet_id=cr.walletId,e.terms=cr.selectTerms,e.widget_sandbox=cr.sandbox,e.extra=this.mergeExtraOnStore(e.extra),e.widget=1,ir.requestPayment(e)}))}mergeExtraOnStore(e){return void 0===e?cr.extra:(void 0!==cr.extra&&Object.keys(cr.extra).forEach((t=>{e[t]=cr.extra[t]})),e)}isRendered(){return dr.isRendered}synchronizedRealTimeTransfer(e){dr.postMessage("bootpayWidgetSynchronizedRealTimeTransfer",e)}sendSelectPayment(e){dr.postMessage("bootpayWidgetSelectPayment",e)}},hr={render(e,t){pr.render(e,t)},rerender(){pr.rerender()},setEnvironmentMode(e,t){ir.setEnvironmentMode(e,t),T.set(e)},requestPayment(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield pr.requestPayment(e);return r(t)}catch(t){return n(this.errorHandler(t))}}))))}))},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},update(e){pr.update(e),this.rerender()},currentTermsCondition:()=>pr.currentTermsCondition(),destroy(){pr.destroy()},isRendered:()=>pr.isRendered(),synchronizedRealTimeTransfer(e){pr.synchronizedRealTimeTransfer(e)},selectPayment(e){pr.sendSelectPayment(e)}};"undefined"!=typeof window&&(window.BootpayWidget=hr),e.Bootpay=ir,e.BootpayEnvironment=T,e.BootpaySDK=ar,e.BootpayWidget=hr,e.default=ir,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
2
+ !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).Bootpay={})}(this,(function(e){"use strict";var t=(e,t,r)=>new Promise(((n,i)=>{var s=e=>{try{a(r.next(e))}catch(t){i(t)}},o=e=>{try{a(r.throw(e))}catch(t){i(t)}},a=e=>e.done?n(e.value):Promise.resolve(e.value).then(s,o);a((r=r.apply(e,t)).next())}));const r={PLATFORM:{JS:1,ANDROID:2,IOS:3,REST:4},STORAGE_PREFIX:e=>`__bootpay_track_${e}__`},n=()=>"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,(e=>{let t=16*Math.random()|0;return("x"==e?t:3&t|8).toString(16)})),i=e=>{let t=!1;return t="string"==typeof e||Array.isArray(e)?0===e.length:null==e||o(e,"object")&&e.constructor===Object&&0===Object.keys(e).length,t},s=e=>!i(e),o=(e,t)=>typeof e===t;var a="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{};function c(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}function d(e){if(e.__esModule)return e;var t=e.default;if("function"==typeof t){var r=function e(){return this instanceof e?Reflect.construct(t,arguments,this.constructor):t.apply(this,arguments)};r.prototype=t.prototype}else r={};return Object.defineProperty(r,"__esModule",{value:!0}),Object.keys(e).forEach((function(t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})})),r}var l={exports:{}};var u={exports:{}};const p=d(Object.freeze(Object.defineProperty({__proto__:null,default:{}},Symbol.toStringTag,{value:"Module"})));var h;function m(){return h||(h=1,u.exports=(e=e||function(e,t){var r;if("undefined"!=typeof window&&window.crypto&&(r=window.crypto),"undefined"!=typeof self&&self.crypto&&(r=self.crypto),"undefined"!=typeof globalThis&&globalThis.crypto&&(r=globalThis.crypto),!r&&"undefined"!=typeof window&&window.msCrypto&&(r=window.msCrypto),!r&&void 0!==a&&a.crypto&&(r=a.crypto),!r)try{r=p}catch(v){}var n=function(){if(r){if("function"==typeof r.getRandomValues)try{return r.getRandomValues(new Uint32Array(1))[0]}catch(v){}if("function"==typeof r.randomBytes)try{return r.randomBytes(4).readInt32LE()}catch(v){}}throw new Error("Native crypto module could not be used to get secure random number.")},i=Object.create||function(){function e(){}return function(t){var r;return e.prototype=t,r=new e,e.prototype=null,r}}(),s={},o=s.lib={},c=o.Base=function(){return{extend:function(e){var t=i(this);return e&&t.mixIn(e),t.hasOwnProperty("init")&&this.init!==t.init||(t.init=function(){t.$super.init.apply(this,arguments)}),t.init.prototype=t,t.$super=this,t},create:function(){var e=this.extend();return e.init.apply(e,arguments),e},init:function(){},mixIn:function(e){for(var t in e)e.hasOwnProperty(t)&&(this[t]=e[t]);e.hasOwnProperty("toString")&&(this.toString=e.toString)},clone:function(){return this.init.prototype.extend(this)}}}(),d=o.WordArray=c.extend({init:function(e,r){e=this.words=e||[],this.sigBytes=r!=t?r:4*e.length},toString:function(e){return(e||u).stringify(this)},concat:function(e){var t=this.words,r=e.words,n=this.sigBytes,i=e.sigBytes;if(this.clamp(),n%4)for(var s=0;s<i;s++){var o=r[s>>>2]>>>24-s%4*8&255;t[n+s>>>2]|=o<<24-(n+s)%4*8}else for(var a=0;a<i;a+=4)t[n+a>>>2]=r[a>>>2];return this.sigBytes+=i,this},clamp:function(){var t=this.words,r=this.sigBytes;t[r>>>2]&=4294967295<<32-r%4*8,t.length=e.ceil(r/4)},clone:function(){var e=c.clone.call(this);return e.words=this.words.slice(0),e},random:function(e){for(var t=[],r=0;r<e;r+=4)t.push(n());return new d.init(t,e)}}),l=s.enc={},u=l.Hex={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i++){var s=t[i>>>2]>>>24-i%4*8&255;n.push((s>>>4).toString(16)),n.push((15&s).toString(16))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n+=2)r[n>>>3]|=parseInt(e.substr(n,2),16)<<24-n%8*4;return new d.init(r,t/2)}},h=l.Latin1={stringify:function(e){for(var t=e.words,r=e.sigBytes,n=[],i=0;i<r;i++){var s=t[i>>>2]>>>24-i%4*8&255;n.push(String.fromCharCode(s))}return n.join("")},parse:function(e){for(var t=e.length,r=[],n=0;n<t;n++)r[n>>>2]|=(255&e.charCodeAt(n))<<24-n%4*8;return new d.init(r,t)}},m=l.Utf8={stringify:function(e){try{return decodeURIComponent(escape(h.stringify(e)))}catch(t){throw new Error("Malformed UTF-8 data")}},parse:function(e){return h.parse(unescape(encodeURIComponent(e)))}},y=o.BufferedBlockAlgorithm=c.extend({reset:function(){this._data=new d.init,this._nDataBytes=0},_append:function(e){"string"==typeof e&&(e=m.parse(e)),this._data.concat(e),this._nDataBytes+=e.sigBytes},_process:function(t){var r,n=this._data,i=n.words,s=n.sigBytes,o=this.blockSize,a=s/(4*o),c=(a=t?e.ceil(a):e.max((0|a)-this._minBufferSize,0))*o,l=e.min(4*c,s);if(c){for(var u=0;u<c;u+=o)this._doProcessBlock(i,u);r=i.splice(0,c),n.sigBytes-=l}return new d.init(r,l)},clone:function(){var e=c.clone.call(this);return e._data=this._data.clone(),e},_minBufferSize:0});o.Hasher=y.extend({cfg:c.extend(),init:function(e){this.cfg=this.cfg.extend(e),this.reset()},reset:function(){y.reset.call(this),this._doReset()},update:function(e){return this._append(e),this._process(),this},finalize:function(e){return e&&this._append(e),this._doFinalize()},blockSize:16,_createHelper:function(e){return function(t,r){return new e.init(r).finalize(t)}},_createHmacHelper:function(e){return function(t,r){return new f.HMAC.init(e,r).finalize(t)}}});var f=s.algo={};return s}(Math),e)),u.exports;var e}l.exports=m().enc.Utf8;const y=c(l.exports);var f={exports:{}};!function(e,t){var r;e.exports=(r=m(),function(){var e=r,t=e.lib.WordArray;function n(e,r,n){for(var i=[],s=0,o=0;o<r;o++)if(o%4){var a=n[e.charCodeAt(o-1)]<<o%4*2|n[e.charCodeAt(o)]>>>6-o%4*2;i[s>>>2]|=a<<24-s%4*8,s++}return t.create(i,s)}e.enc.Base64={stringify:function(e){var t=e.words,r=e.sigBytes,n=this._map;e.clamp();for(var i=[],s=0;s<r;s+=3)for(var o=(t[s>>>2]>>>24-s%4*8&255)<<16|(t[s+1>>>2]>>>24-(s+1)%4*8&255)<<8|t[s+2>>>2]>>>24-(s+2)%4*8&255,a=0;a<4&&s+.75*a<r;a++)i.push(n.charAt(o>>>6*(3-a)&63));var c=n.charAt(64);if(c)for(;i.length%4;)i.push(c);return i.join("")},parse:function(e){var t=e.length,r=this._map,i=this._reverseMap;if(!i){i=this._reverseMap=[];for(var s=0;s<r.length;s++)i[r.charCodeAt(s)]=s}var o=r.charAt(64);if(o){var a=e.indexOf(o);-1!==a&&(t=a)}return n(e,t,i)},_map:"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="}}(),r.enc.Base64)}(f);var v=f.exports;const g=c(v);class _{$blank(e){return i(e)}$present(e){return!this.$blank(e)}$type(e,t){return o(e,t)}$uuid(){return n()}$encrypt(e){return this.$type(e,"object")&&(e=JSON.stringify(e)),g.stringify(y.parse(e))}$decrypt(e){return y.stringify(g.parse(e))}getUserAgent(){return window.navigator.userAgent}}const w=1,b=2,$=3,E=4,P={level:$,setLogLevel(e){this.level=e},messageStringify(e,t){try{return`${e}: ${o(t,"object")?JSON.stringify(t):t}`}catch(r){console.error(`log parse error: ${r}`)}},debug(e,t){this.level<=w&&console.log(this.messageStringify(e,t))},info(e,t){this.level<=b&&console.info(this.messageStringify(e,t))},warn(e,t){this.level<=$&&console.warn(this.messageStringify(e,t))},error(e,t){this.level<=E&&console.error(this.messageStringify(e,t))}};class k extends _{constructor(){super(),this.$storage={}}get(e){let t="";try{t=window.localStorage.getItem(e)}catch(r){t=this.$storage[e]}return this.$present(t)?this.$decrypt(t):void 0}set(e,t){try{window.localStorage.setItem(e,this.$encrypt(t))}catch(r){this.$storage[e]=this.$encrypt(t)}return t}currentUserUUID(){const e=r.STORAGE_PREFIX("uuid"),t=this.get(e);return this.$blank(t)?this.set(e,this.$uuid()):t}setUUID(e){const t=r.STORAGE_PREFIX("uuid");return this.set(t,e)}getToJSON(e){const t=this.get(e);return this.$present(t)?this.caseMarshalToJson(t):t}setToJSON(e,t){return this.set(e,JSON.stringify(t)),t}caseMarshalToJson(e){try{return JSON.parse(e)}catch(t){return JSON.parse(e.replace(/\\\"/g,'"'))}}}const I=new class extends k{constructor(){super(),this.currentUserUUID()}currentSessionKey(){const e=Math.round((new Date).getTime()/1e3),t=r.STORAGE_PREFIX("session"),n=this.getToJSON(t);if(this.$blank(n)||n.time+1800<e){return this.setToJSON(t,{time:e,term:this.$blank(n)?-1:e-n.time,uuid:`${this.$uuid()}-${e}`}).uuid}return n.uuid}currentTimeTerm(){const e=r.STORAGE_PREFIX("session"),t=this.getToJSON(e);return this.$blank(t.term)?-1:t.term}currentTime(){const e=r.STORAGE_PREFIX("session"),t=this.getToJSON(e);return this.$blank(t.time)?-1:t.time}setTime(e){const t=Math.round((new Date).getTime()/1e3),n=r.STORAGE_PREFIX("session"),i=this.getToJSON(n),s=this.$blank(i)?{time:e>0?e:t,term:e>0?t-e:-1,uuid:`${this.$uuid()}-${t}`}:i;s.time=e,this.setToJSON(n,s)}generateKey(){return`${this.$uuid()}-${(new Date).getTime()}`}setUser(e){return this.set(r.STORAGE_PREFIX("user"),void 0===e?void 0:JSON.stringify(e)),e}getUser(){try{return JSON.parse(this.get(r.STORAGE_PREFIX("user")))}catch(e){return void P.error("User Storage",`사용자 정보를 추출하는데 실패하였습니다. [ ${e.message} ]`)}}},T={mode:"production",locale:"ko",isSetLocale:!1,applicationId:"",API_URL:{development:"https://dev-api.bootpay.co.kr/v2",stage:"https://stage-api.bootpay.co.kr/v2",production:"https://api.bootpay.co.kr/v2"},ANALYTICS_URL:{development:"https://dev-analytics.bootpay.co.kr",stage:"https://stage-analytics.bootpay.co.kr",production:"https://analytics.bootpay.co.kr"},DOOR_URL:{development:"https://door-dev.bootpay.co.kr",stage:"https://door-stage.bootpay.co.kr",production:"https://door.bootpay.co.kr"},WIDGET_URL:{development:"https://dev-widget.bootpay.co.kr",stage:"https://stage-widget.bootpay.co.kr",production:"https://widget.bootpay.co.kr"},sdkNames:{android:100,android_react_native:101,android_flutter:102,android_unity:103,ios:200,ios_react_native:201,ios_flutter:202,ios_unity:203,ios_objc:204,ios_swift_ui:205,mac_swift:206,mac_flutter:207},sdkVersion:"",sdkName:0,set(e){this.mode=e},setApplicationId(e){return this.applicationId=e,this.currentApplicationId(void 0)},setLocale(e){this.locale=e,this.isSetLocale=!0},currentApplicationId(e=void 0){return void 0===e?this.applicationId:e},setDevelopmentHost(e){this.API_URL.development=this.API_URL.development.replace(/dev-api.bootpay.co.kr\/v2/gi,e)},setVersion(e,t){this.sdkName=void 0===this.sdkNames[t]?0:this.sdkNames[t],this.sdkVersion=e},toApi(e){return[this.API_URL[this.mode],e].join("/")},toDoor(e){return[this.DOOR_URL[this.mode],e].join("/")},toWidget(e){return[this.WIDGET_URL[this.mode],e].join("/")},isMobile(){if("undefined"==typeof window)return!1;const e=window.navigator.userAgent||window.navigator.vendor;return/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/.test(e)},isMobileSafari(){if("undefined"==typeof window)return!1;const e=window.navigator.userAgent;return(e.match(/iPad/i)||e.match(/iPhone/i))&&!e.match(/CriOS/i)},toAnalytics(e){return[this.ANALYTICS_URL[this.mode],e].join("/")}};class S extends Error{constructor(e){super(),this.name="BootpayEventError",this.eventMessage=e}}const x={__BOOTPAY_NAMESPACE:{},isBind:!1,initialize(){this.isBind||("undefined"!=typeof window&&(window.addBootpayEventListener=this.on,window.removeBootpayEventListener=this.off,window.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),"undefined"!=typeof document&&(document.addBootpayEventListener=this.on,document.removeBootpayEventListener=this.off,document.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),"undefined"!=typeof Element&&(Element.prototype.addBootpayEventListener=this.on,Element.prototype.removeBootpayEventListener=this.off,Element.prototype.resetBootpayEventListener=function(e,t,r){this.removeBootpayEventListener(e).addBootpayEventListener(e,t,r)}),this.isBind=!0)},on(e,t,r=void 0){return i(x.__BOOTPAY_NAMESPACE)&&(x.__BOOTPAY_NAMESPACE={}),this.addEventListener(e.split(".")[0],t,r||!1),x.__BOOTPAY_NAMESPACE[e]=t,this},off(e){return s(x.__BOOTPAY_NAMESPACE)&&s(x.__BOOTPAY_NAMESPACE[e])&&this.removeEventListener(e.split(".")[0],x.__BOOTPAY_NAMESPACE[e]),this}};class O extends _{constructor(){super(),this.$resolve=null,this.$reject=null,x.initialize()}reject(e){null!==this.$reject&&this.$reject(e)}resolve(e){null!==this.$resolve&&this.$resolve(e)}setCallbackFunction(e,t){this.$resolve=e,this.$reject=t}parseEvent(e){let t={};if(this.$present(e)&&this.$type(e,"string")){try{t=JSON.parse(e)}catch(r){P.info("json parsing failed",`data: ${e}, message: ${A(r)} JSON 파싱 형태가 아닌 이벤트 입니다.`)}return t.bootpay_event?(delete t.bootpay_event,t):null}return null}}const A=e=>"string"==typeof e?e.toUpperCase():e instanceof Error?e.message:e;class R extends _{constructor(){super(),this.$windowId="",this.$template=""}byId(e){return document.getElementById(e)}createTemplateHtml(){if(null===this.byId(this.$windowId)){const e=document.querySelector("body");this.$present(e.className)?e.className=`${e.className} bootpay-open`:e.className="bootpay-open",document.body.insertAdjacentHTML("beforeend",this.$template)}}templateResize(e,t){const r=this.byId(e);if(void 0!==r)for(let n in Object.keys(t)){let e=Object.keys(t)[n],i=t[e];this.$present(i)&&!String(i).match(/%/)&&(e.match(/width/)||e.match(/Width/)||e.match(/height/)||e.match(/Height/))&&(i=`${String(t[e]).replace(/px/gi,"")}px`),r.style.setProperty(e,i)}}}const U=new class extends R{constructor(){super(),this.$alfredId="bootpay-alfred-progress-id",this.$alfredTextId="__alfred-text-message__"}template(e){return`\n<div class="bootpay-progress-background" id="${this.$alfredId}" style="display: none;">\n<div class="progress-message-window">\n <div class="alfred-loading">\n <div class="bootpay-spinner"></div> \n </div>\n <div class="alfred-text">\n <span class="alfred-inner-text" id="${this.$alfredTextId}">${e}</span>\n </div>\n</div> \n</div>\n `}showProgress(e){this.$present(this.byId(this.$alfredId))?this.byId(this.$alfredTextId).innerText=e:document.body.insertAdjacentHTML("beforeend",this.template(e)),this.byId(this.$alfredId).style.setProperty("display","block")}hideProgress(){try{this.byId(this.$alfredId).outerHTML=""}catch(e){}}};var D={exports:{}},B=function(e,t){return function(){for(var r=new Array(arguments.length),n=0;n<r.length;n++)r[n]=arguments[n];return e.apply(t,r)}},C=B,N=Object.prototype.toString,M=function(e){return function(t){var r=N.call(t);return e[r]||(e[r]=r.slice(8,-1).toLowerCase())}}(Object.create(null));function F(e){return e=e.toLowerCase(),function(t){return M(t)===e}}function j(e){return Array.isArray(e)}function L(e){return void 0===e}var W=F("ArrayBuffer");function H(e){return null!==e&&"object"==typeof e}function q(e){if("object"!==M(e))return!1;var t=Object.getPrototypeOf(e);return null===t||t===Object.prototype}var z=F("Date"),K=F("File"),J=F("Blob"),V=F("FileList");function Y(e){return"[object Function]"===N.call(e)}var G=F("URLSearchParams");function X(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),j(e))for(var r=0,n=e.length;r<n;r++)t.call(null,e[r],r,e);else for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.call(null,e[i],i,e)}var Q=function(e){return function(t){return e&&t instanceof e}}("undefined"!=typeof Uint8Array&&Object.getPrototypeOf(Uint8Array)),Z={isArray:j,isArrayBuffer:W,isBuffer:function(e){return null!==e&&!L(e)&&null!==e.constructor&&!L(e.constructor)&&"function"==typeof e.constructor.isBuffer&&e.constructor.isBuffer(e)},isFormData:function(e){var t="[object FormData]";return e&&("function"==typeof FormData&&e instanceof FormData||N.call(e)===t||Y(e.toString)&&e.toString()===t)},isArrayBufferView:function(e){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(e):e&&e.buffer&&W(e.buffer)},isString:function(e){return"string"==typeof e},isNumber:function(e){return"number"==typeof e},isObject:H,isPlainObject:q,isUndefined:L,isDate:z,isFile:K,isBlob:J,isFunction:Y,isStream:function(e){return H(e)&&Y(e.pipe)},isURLSearchParams:G,isStandardBrowserEnv:function(){return("undefined"==typeof navigator||"ReactNative"!==navigator.product&&"NativeScript"!==navigator.product&&"NS"!==navigator.product)&&("undefined"!=typeof window&&"undefined"!=typeof document)},forEach:X,merge:function e(){var t={};function r(r,n){q(t[n])&&q(r)?t[n]=e(t[n],r):q(r)?t[n]=e({},r):j(r)?t[n]=r.slice():t[n]=r}for(var n=0,i=arguments.length;n<i;n++)X(arguments[n],r);return t},extend:function(e,t,r){return X(t,(function(t,n){e[n]=r&&"function"==typeof t?C(t,r):t})),e},trim:function(e){return e.trim?e.trim():e.replace(/^\s+|\s+$/g,"")},stripBOM:function(e){return 65279===e.charCodeAt(0)&&(e=e.slice(1)),e},inherits:function(e,t,r,n){e.prototype=Object.create(t.prototype,n),e.prototype.constructor=e,r&&Object.assign(e.prototype,r)},toFlatObject:function(e,t,r){var n,i,s,o={};t=t||{};do{for(i=(n=Object.getOwnPropertyNames(e)).length;i-- >0;)o[s=n[i]]||(t[s]=e[s],o[s]=!0);e=Object.getPrototypeOf(e)}while(e&&(!r||r(e,t))&&e!==Object.prototype);return t},kindOf:M,kindOfTest:F,endsWith:function(e,t,r){e=String(e),(void 0===r||r>e.length)&&(r=e.length),r-=t.length;var n=e.indexOf(t,r);return-1!==n&&n===r},toArray:function(e){if(!e)return null;var t=e.length;if(L(t))return null;for(var r=new Array(t);t-- >0;)r[t]=e[t];return r},isTypedArray:Q,isFileList:V},ee=Z;function te(e){return encodeURIComponent(e).replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",").replace(/%20/g,"+").replace(/%5B/gi,"[").replace(/%5D/gi,"]")}var re=function(e,t,r){if(!t)return e;var n;if(r)n=r(t);else if(ee.isURLSearchParams(t))n=t.toString();else{var i=[];ee.forEach(t,(function(e,t){null!=e&&(ee.isArray(e)?t+="[]":e=[e],ee.forEach(e,(function(e){ee.isDate(e)?e=e.toISOString():ee.isObject(e)&&(e=JSON.stringify(e)),i.push(te(t)+"="+te(e))})))})),n=i.join("&")}if(n){var s=e.indexOf("#");-1!==s&&(e=e.slice(0,s)),e+=(-1===e.indexOf("?")?"?":"&")+n}return e},ne=Z;function ie(){this.handlers=[]}ie.prototype.use=function(e,t,r){return this.handlers.push({fulfilled:e,rejected:t,synchronous:!!r&&r.synchronous,runWhen:r?r.runWhen:null}),this.handlers.length-1},ie.prototype.eject=function(e){this.handlers[e]&&(this.handlers[e]=null)},ie.prototype.forEach=function(e){ne.forEach(this.handlers,(function(t){null!==t&&e(t)}))};var se=ie,oe=Z,ae=Z;function ce(e,t,r,n,i){Error.call(this),this.message=e,this.name="AxiosError",t&&(this.code=t),r&&(this.config=r),n&&(this.request=n),i&&(this.response=i)}ae.inherits(ce,Error,{toJSON:function(){return{message:this.message,name:this.name,description:this.description,number:this.number,fileName:this.fileName,lineNumber:this.lineNumber,columnNumber:this.columnNumber,stack:this.stack,config:this.config,code:this.code,status:this.response&&this.response.status?this.response.status:null}}});var de=ce.prototype,le={};["ERR_BAD_OPTION_VALUE","ERR_BAD_OPTION","ECONNABORTED","ETIMEDOUT","ERR_NETWORK","ERR_FR_TOO_MANY_REDIRECTS","ERR_DEPRECATED","ERR_BAD_RESPONSE","ERR_BAD_REQUEST","ERR_CANCELED"].forEach((function(e){le[e]={value:e}})),Object.defineProperties(ce,le),Object.defineProperty(de,"isAxiosError",{value:!0}),ce.from=function(e,t,r,n,i,s){var o=Object.create(de);return ae.toFlatObject(e,o,(function(e){return e!==Error.prototype})),ce.call(o,e.message,t,r,n,i),o.name=e.name,s&&Object.assign(o,s),o};var ue=ce,pe={silentJSONParsing:!0,forcedJSONParsing:!0,clarifyTimeoutError:!1},he=Z;var me,ye,fe,ve,ge=function(e,t){t=t||new FormData;var r=[];function n(e){return null===e?"":he.isDate(e)?e.toISOString():he.isArrayBuffer(e)||he.isTypedArray(e)?"function"==typeof Blob?new Blob([e]):Buffer.from(e):e}return function e(i,s){if(he.isPlainObject(i)||he.isArray(i)){if(-1!==r.indexOf(i))throw Error("Circular reference detected in "+s);r.push(i),he.forEach(i,(function(r,i){if(!he.isUndefined(r)){var o,a=s?s+"."+i:i;if(r&&!s&&"object"==typeof r)if(he.endsWith(i,"{}"))r=JSON.stringify(r);else if(he.endsWith(i,"[]")&&(o=he.toArray(r)))return void o.forEach((function(e){!he.isUndefined(e)&&t.append(a,n(e))}));e(r,a)}})),r.pop()}else t.append(s,n(i))}(e),t};var _e,we,be,$e,Ee,Pe,ke,Ie,Te,Se,xe,Oe,Ae=function(e){return/^([a-z][a-z\d+\-.]*:)?\/\//i.test(e)},Re=function(e,t){return t?e.replace(/\/+$/,"")+"/"+t.replace(/^\/+/,""):e},Ue=function(e,t){return e&&!Ae(t)?Re(e,t):t};function De(){if(Pe)return Ee;Pe=1;var e=ue;function t(t){e.call(this,null==t?"canceled":t,e.ERR_CANCELED),this.name="CanceledError"}return Z.inherits(t,e,{__CANCEL__:!0}),Ee=t}function Be(){if(Se)return Te;Se=1;var e=Z,t=function(){if(ye)return me;ye=1;var e=ue;return me=function(t,r,n){var i=n.config.validateStatus;n.status&&i&&!i(n.status)?r(new e("Request failed with status code "+n.status,[e.ERR_BAD_REQUEST,e.ERR_BAD_RESPONSE][Math.floor(n.status/100)-4],n.config,n.request,n)):t(n)}}(),r=function(){if(ve)return fe;ve=1;var e=Z;return fe=e.isStandardBrowserEnv()?function(){return{write:function(t,r,n,i,s,o){var a=[];a.push(t+"="+encodeURIComponent(r)),e.isNumber(n)&&a.push("expires="+new Date(n).toGMTString()),e.isString(i)&&a.push("path="+i),e.isString(s)&&a.push("domain="+s),!0===o&&a.push("secure"),document.cookie=a.join("; ")},read:function(e){var t=document.cookie.match(new RegExp("(^|;\\s*)("+e+")=([^;]*)"));return t?decodeURIComponent(t[3]):null},remove:function(e){this.write(e,"",Date.now()-864e5)}}}():function(){return{write:function(){},read:function(){return null},remove:function(){}}}()}(),n=re,i=Ue,s=function(){if(we)return _e;we=1;var e=Z,t=["age","authorization","content-length","content-type","etag","expires","from","host","if-modified-since","if-unmodified-since","last-modified","location","max-forwards","proxy-authorization","referer","retry-after","user-agent"];return _e=function(r){var n,i,s,o={};return r?(e.forEach(r.split("\n"),(function(r){if(s=r.indexOf(":"),n=e.trim(r.substr(0,s)).toLowerCase(),i=e.trim(r.substr(s+1)),n){if(o[n]&&t.indexOf(n)>=0)return;o[n]="set-cookie"===n?(o[n]?o[n]:[]).concat([i]):o[n]?o[n]+", "+i:i}})),o):o}}(),o=function(){if($e)return be;$e=1;var e=Z;return be=e.isStandardBrowserEnv()?function(){var t,r=/(msie|trident)/i.test(navigator.userAgent),n=document.createElement("a");function i(e){var t=e;return r&&(n.setAttribute("href",t),t=n.href),n.setAttribute("href",t),{href:n.href,protocol:n.protocol?n.protocol.replace(/:$/,""):"",host:n.host,search:n.search?n.search.replace(/^\?/,""):"",hash:n.hash?n.hash.replace(/^#/,""):"",hostname:n.hostname,port:n.port,pathname:"/"===n.pathname.charAt(0)?n.pathname:"/"+n.pathname}}return t=i(window.location.href),function(r){var n=e.isString(r)?i(r):r;return n.protocol===t.protocol&&n.host===t.host}}():function(){return function(){return!0}}()}(),a=pe,c=ue,d=De(),l=Ie?ke:(Ie=1,ke=function(e){var t=/^([-+\w]{1,25})(:?\/\/|:)/.exec(e);return t&&t[1]||""});return Te=function(u){return new Promise((function(p,h){var m,y=u.data,f=u.headers,v=u.responseType;function g(){u.cancelToken&&u.cancelToken.unsubscribe(m),u.signal&&u.signal.removeEventListener("abort",m)}e.isFormData(y)&&e.isStandardBrowserEnv()&&delete f["Content-Type"];var _=new XMLHttpRequest;if(u.auth){var w=u.auth.username||"",b=u.auth.password?unescape(encodeURIComponent(u.auth.password)):"";f.Authorization="Basic "+btoa(w+":"+b)}var $=i(u.baseURL,u.url);function E(){if(_){var e="getAllResponseHeaders"in _?s(_.getAllResponseHeaders()):null,r={data:v&&"text"!==v&&"json"!==v?_.response:_.responseText,status:_.status,statusText:_.statusText,headers:e,config:u,request:_};t((function(e){p(e),g()}),(function(e){h(e),g()}),r),_=null}}if(_.open(u.method.toUpperCase(),n($,u.params,u.paramsSerializer),!0),_.timeout=u.timeout,"onloadend"in _?_.onloadend=E:_.onreadystatechange=function(){_&&4===_.readyState&&(0!==_.status||_.responseURL&&0===_.responseURL.indexOf("file:"))&&setTimeout(E)},_.onabort=function(){_&&(h(new c("Request aborted",c.ECONNABORTED,u,_)),_=null)},_.onerror=function(){h(new c("Network Error",c.ERR_NETWORK,u,_,_)),_=null},_.ontimeout=function(){var e=u.timeout?"timeout of "+u.timeout+"ms exceeded":"timeout exceeded",t=u.transitional||a;u.timeoutErrorMessage&&(e=u.timeoutErrorMessage),h(new c(e,t.clarifyTimeoutError?c.ETIMEDOUT:c.ECONNABORTED,u,_)),_=null},e.isStandardBrowserEnv()){var P=(u.withCredentials||o($))&&u.xsrfCookieName?r.read(u.xsrfCookieName):void 0;P&&(f[u.xsrfHeaderName]=P)}"setRequestHeader"in _&&e.forEach(f,(function(e,t){void 0===y&&"content-type"===t.toLowerCase()?delete f[t]:_.setRequestHeader(t,e)})),e.isUndefined(u.withCredentials)||(_.withCredentials=!!u.withCredentials),v&&"json"!==v&&(_.responseType=u.responseType),"function"==typeof u.onDownloadProgress&&_.addEventListener("progress",u.onDownloadProgress),"function"==typeof u.onUploadProgress&&_.upload&&_.upload.addEventListener("progress",u.onUploadProgress),(u.cancelToken||u.signal)&&(m=function(e){_&&(h(!e||e&&e.type?new d:e),_.abort(),_=null)},u.cancelToken&&u.cancelToken.subscribe(m),u.signal&&(u.signal.aborted?m():u.signal.addEventListener("abort",m))),y||(y=null);var k=l($);k&&-1===["http","https","file"].indexOf(k)?h(new c("Unsupported protocol "+k+":",c.ERR_BAD_REQUEST,u)):_.send(y)}))}}var Ce=Z,Ne=function(e,t){oe.forEach(e,(function(r,n){n!==t&&n.toUpperCase()===t.toUpperCase()&&(e[t]=r,delete e[n])}))},Me=ue,Fe=ge,je={"Content-Type":"application/x-www-form-urlencoded"};function Le(e,t){!Ce.isUndefined(e)&&Ce.isUndefined(e["Content-Type"])&&(e["Content-Type"]=t)}var We,He={transitional:pe,adapter:(("undefined"!=typeof XMLHttpRequest||"undefined"!=typeof process&&"[object process]"===Object.prototype.toString.call(process))&&(We=Be()),We),transformRequest:[function(e,t){if(Ne(t,"Accept"),Ne(t,"Content-Type"),Ce.isFormData(e)||Ce.isArrayBuffer(e)||Ce.isBuffer(e)||Ce.isStream(e)||Ce.isFile(e)||Ce.isBlob(e))return e;if(Ce.isArrayBufferView(e))return e.buffer;if(Ce.isURLSearchParams(e))return Le(t,"application/x-www-form-urlencoded;charset=utf-8"),e.toString();var r,n=Ce.isObject(e),i=t&&t["Content-Type"];if((r=Ce.isFileList(e))||n&&"multipart/form-data"===i){var s=this.env&&this.env.FormData;return Fe(r?{"files[]":e}:e,s&&new s)}return n||"application/json"===i?(Le(t,"application/json"),function(e,t,r){if(Ce.isString(e))try{return(t||JSON.parse)(e),Ce.trim(e)}catch(n){if("SyntaxError"!==n.name)throw n}return(r||JSON.stringify)(e)}(e)):e}],transformResponse:[function(e){var t=this.transitional||He.transitional,r=t&&t.silentJSONParsing,n=t&&t.forcedJSONParsing,i=!r&&"json"===this.responseType;if(i||n&&Ce.isString(e)&&e.length)try{return JSON.parse(e)}catch(s){if(i){if("SyntaxError"===s.name)throw Me.from(s,Me.ERR_BAD_RESPONSE,this,null,this.response);throw s}}return e}],timeout:0,xsrfCookieName:"XSRF-TOKEN",xsrfHeaderName:"X-XSRF-TOKEN",maxContentLength:-1,maxBodyLength:-1,env:{FormData:Oe?xe:(Oe=1,xe=null)},validateStatus:function(e){return e>=200&&e<300},headers:{common:{Accept:"application/json, text/plain, */*"}}};Ce.forEach(["delete","get","head"],(function(e){He.headers[e]={}})),Ce.forEach(["post","put","patch"],(function(e){He.headers[e]=Ce.merge(je)}));var qe,ze,Ke=He,Je=Z,Ve=Ke;function Ye(){return ze?qe:(ze=1,qe=function(e){return!(!e||!e.__CANCEL__)})}var Ge=Z,Xe=function(e,t,r){var n=this||Ve;return Je.forEach(r,(function(r){e=r.call(n,e,t)})),e},Qe=Ye(),Ze=Ke,et=De();function tt(e){if(e.cancelToken&&e.cancelToken.throwIfRequested(),e.signal&&e.signal.aborted)throw new et}var rt,nt,it=Z,st=function(e,t){t=t||{};var r={};function n(e,t){return it.isPlainObject(e)&&it.isPlainObject(t)?it.merge(e,t):it.isPlainObject(t)?it.merge({},t):it.isArray(t)?t.slice():t}function i(r){return it.isUndefined(t[r])?it.isUndefined(e[r])?void 0:n(void 0,e[r]):n(e[r],t[r])}function s(e){if(!it.isUndefined(t[e]))return n(void 0,t[e])}function o(r){return it.isUndefined(t[r])?it.isUndefined(e[r])?void 0:n(void 0,e[r]):n(void 0,t[r])}function a(r){return r in t?n(e[r],t[r]):r in e?n(void 0,e[r]):void 0}var c={url:s,method:s,data:s,baseURL:o,transformRequest:o,transformResponse:o,paramsSerializer:o,timeout:o,timeoutMessage:o,withCredentials:o,adapter:o,responseType:o,xsrfCookieName:o,xsrfHeaderName:o,onUploadProgress:o,onDownloadProgress:o,decompress:o,maxContentLength:o,maxBodyLength:o,beforeRedirect:o,transport:o,httpAgent:o,httpsAgent:o,cancelToken:o,socketPath:o,responseEncoding:o,validateStatus:a};return it.forEach(Object.keys(e).concat(Object.keys(t)),(function(e){var t=c[e]||i,n=t(e);it.isUndefined(n)&&t!==a||(r[e]=n)})),r};function ot(){return nt?rt:(nt=1,rt={version:"0.27.2"})}var at=ot().version,ct=ue,dt={};["object","boolean","number","function","string","symbol"].forEach((function(e,t){dt[e]=function(r){return typeof r===e||"a"+(t<1?"n ":" ")+e}}));var lt={};dt.transitional=function(e,t,r){function n(e,t){return"[Axios v"+at+"] Transitional option '"+e+"'"+t+(r?". "+r:"")}return function(r,i,s){if(!1===e)throw new ct(n(i," has been removed"+(t?" in "+t:"")),ct.ERR_DEPRECATED);return t&&!lt[i]&&(lt[i]=!0,console.warn(n(i," has been deprecated since v"+t+" and will be removed in the near future"))),!e||e(r,i,s)}};var ut,pt,ht,mt,yt,ft,vt=Z,gt=re,_t=se,wt=function(e){return tt(e),e.headers=e.headers||{},e.data=Xe.call(e,e.data,e.headers,e.transformRequest),e.headers=Ge.merge(e.headers.common||{},e.headers[e.method]||{},e.headers),Ge.forEach(["delete","get","head","post","put","patch","common"],(function(t){delete e.headers[t]})),(e.adapter||Ze.adapter)(e).then((function(t){return tt(e),t.data=Xe.call(e,t.data,t.headers,e.transformResponse),t}),(function(t){return Qe(t)||(tt(e),t&&t.response&&(t.response.data=Xe.call(e,t.response.data,t.response.headers,e.transformResponse))),Promise.reject(t)}))},bt=st,$t=Ue,Et={assertOptions:function(e,t,r){if("object"!=typeof e)throw new ct("options must be an object",ct.ERR_BAD_OPTION_VALUE);for(var n=Object.keys(e),i=n.length;i-- >0;){var s=n[i],o=t[s];if(o){var a=e[s],c=void 0===a||o(a,s,e);if(!0!==c)throw new ct("option "+s+" must be "+c,ct.ERR_BAD_OPTION_VALUE)}else if(!0!==r)throw new ct("Unknown option "+s,ct.ERR_BAD_OPTION)}},validators:dt},Pt=Et.validators;function kt(e){this.defaults=e,this.interceptors={request:new _t,response:new _t}}kt.prototype.request=function(e,t){"string"==typeof e?(t=t||{}).url=e:t=e||{},(t=bt(this.defaults,t)).method?t.method=t.method.toLowerCase():this.defaults.method?t.method=this.defaults.method.toLowerCase():t.method="get";var r=t.transitional;void 0!==r&&Et.assertOptions(r,{silentJSONParsing:Pt.transitional(Pt.boolean),forcedJSONParsing:Pt.transitional(Pt.boolean),clarifyTimeoutError:Pt.transitional(Pt.boolean)},!1);var n=[],i=!0;this.interceptors.request.forEach((function(e){"function"==typeof e.runWhen&&!1===e.runWhen(t)||(i=i&&e.synchronous,n.unshift(e.fulfilled,e.rejected))}));var s,o=[];if(this.interceptors.response.forEach((function(e){o.push(e.fulfilled,e.rejected)})),!i){var a=[wt,void 0];for(Array.prototype.unshift.apply(a,n),a=a.concat(o),s=Promise.resolve(t);a.length;)s=s.then(a.shift(),a.shift());return s}for(var c=t;n.length;){var d=n.shift(),l=n.shift();try{c=d(c)}catch(u){l(u);break}}try{s=wt(c)}catch(u){return Promise.reject(u)}for(;o.length;)s=s.then(o.shift(),o.shift());return s},kt.prototype.getUri=function(e){e=bt(this.defaults,e);var t=$t(e.baseURL,e.url);return gt(t,e.params,e.paramsSerializer)},vt.forEach(["delete","get","head","options"],(function(e){kt.prototype[e]=function(t,r){return this.request(bt(r||{},{method:e,url:t,data:(r||{}).data}))}})),vt.forEach(["post","put","patch"],(function(e){function t(t){return function(r,n,i){return this.request(bt(i||{},{method:e,headers:t?{"Content-Type":"multipart/form-data"}:{},url:r,data:n}))}}kt.prototype[e]=t(),kt.prototype[e+"Form"]=t(!0)}));var It=Z,Tt=B,St=kt,xt=st;var Ot=function e(t){var r=new St(t),n=Tt(St.prototype.request,r);return It.extend(n,St.prototype,r),It.extend(n,r),n.create=function(r){return e(xt(t,r))},n}(Ke);Ot.Axios=St,Ot.CanceledError=De(),Ot.CancelToken=function(){if(pt)return ut;pt=1;var e=De();function t(t){if("function"!=typeof t)throw new TypeError("executor must be a function.");var r;this.promise=new Promise((function(e){r=e}));var n=this;this.promise.then((function(e){if(n._listeners){var t,r=n._listeners.length;for(t=0;t<r;t++)n._listeners[t](e);n._listeners=null}})),this.promise.then=function(e){var t,r=new Promise((function(e){n.subscribe(e),t=e})).then(e);return r.cancel=function(){n.unsubscribe(t)},r},t((function(t){n.reason||(n.reason=new e(t),r(n.reason))}))}return t.prototype.throwIfRequested=function(){if(this.reason)throw this.reason},t.prototype.subscribe=function(e){this.reason?e(this.reason):this._listeners?this._listeners.push(e):this._listeners=[e]},t.prototype.unsubscribe=function(e){if(this._listeners){var t=this._listeners.indexOf(e);-1!==t&&this._listeners.splice(t,1)}},t.source=function(){var e;return{token:new t((function(t){e=t})),cancel:e}},ut=t}(),Ot.isCancel=Ye(),Ot.VERSION=ot().version,Ot.toFormData=ge,Ot.AxiosError=ue,Ot.Cancel=Ot.CanceledError,Ot.all=function(e){return Promise.all(e)},Ot.spread=mt?ht:(mt=1,ht=function(e){return function(t){return e.apply(null,t)}}),Ot.isAxiosError=function(){if(ft)return yt;ft=1;var e=Z;return yt=function(t){return e.isObject(t)&&!0===t.isAxiosError}}(),D.exports=Ot,D.exports.default=Ot;const At=c(D.exports);var Rt,Ut={exports:{}},Dt={exports:{}};function Bt(){return Rt||(Rt=1,function(e,t){var r;e.exports=(r=m(),function(e){var t=r,n=t.lib,i=n.WordArray,s=n.Hasher,o=t.algo,a=[];!function(){for(var t=0;t<64;t++)a[t]=4294967296*e.abs(e.sin(t+1))|0}();var c=o.MD5=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878])},_doProcessBlock:function(e,t){for(var r=0;r<16;r++){var n=t+r,i=e[n];e[n]=16711935&(i<<8|i>>>24)|4278255360&(i<<24|i>>>8)}var s=this._hash.words,o=e[t+0],c=e[t+1],h=e[t+2],m=e[t+3],y=e[t+4],f=e[t+5],v=e[t+6],g=e[t+7],_=e[t+8],w=e[t+9],b=e[t+10],$=e[t+11],E=e[t+12],P=e[t+13],k=e[t+14],I=e[t+15],T=s[0],S=s[1],x=s[2],O=s[3];T=d(T,S,x,O,o,7,a[0]),O=d(O,T,S,x,c,12,a[1]),x=d(x,O,T,S,h,17,a[2]),S=d(S,x,O,T,m,22,a[3]),T=d(T,S,x,O,y,7,a[4]),O=d(O,T,S,x,f,12,a[5]),x=d(x,O,T,S,v,17,a[6]),S=d(S,x,O,T,g,22,a[7]),T=d(T,S,x,O,_,7,a[8]),O=d(O,T,S,x,w,12,a[9]),x=d(x,O,T,S,b,17,a[10]),S=d(S,x,O,T,$,22,a[11]),T=d(T,S,x,O,E,7,a[12]),O=d(O,T,S,x,P,12,a[13]),x=d(x,O,T,S,k,17,a[14]),T=l(T,S=d(S,x,O,T,I,22,a[15]),x,O,c,5,a[16]),O=l(O,T,S,x,v,9,a[17]),x=l(x,O,T,S,$,14,a[18]),S=l(S,x,O,T,o,20,a[19]),T=l(T,S,x,O,f,5,a[20]),O=l(O,T,S,x,b,9,a[21]),x=l(x,O,T,S,I,14,a[22]),S=l(S,x,O,T,y,20,a[23]),T=l(T,S,x,O,w,5,a[24]),O=l(O,T,S,x,k,9,a[25]),x=l(x,O,T,S,m,14,a[26]),S=l(S,x,O,T,_,20,a[27]),T=l(T,S,x,O,P,5,a[28]),O=l(O,T,S,x,h,9,a[29]),x=l(x,O,T,S,g,14,a[30]),T=u(T,S=l(S,x,O,T,E,20,a[31]),x,O,f,4,a[32]),O=u(O,T,S,x,_,11,a[33]),x=u(x,O,T,S,$,16,a[34]),S=u(S,x,O,T,k,23,a[35]),T=u(T,S,x,O,c,4,a[36]),O=u(O,T,S,x,y,11,a[37]),x=u(x,O,T,S,g,16,a[38]),S=u(S,x,O,T,b,23,a[39]),T=u(T,S,x,O,P,4,a[40]),O=u(O,T,S,x,o,11,a[41]),x=u(x,O,T,S,m,16,a[42]),S=u(S,x,O,T,v,23,a[43]),T=u(T,S,x,O,w,4,a[44]),O=u(O,T,S,x,E,11,a[45]),x=u(x,O,T,S,I,16,a[46]),T=p(T,S=u(S,x,O,T,h,23,a[47]),x,O,o,6,a[48]),O=p(O,T,S,x,g,10,a[49]),x=p(x,O,T,S,k,15,a[50]),S=p(S,x,O,T,f,21,a[51]),T=p(T,S,x,O,E,6,a[52]),O=p(O,T,S,x,m,10,a[53]),x=p(x,O,T,S,b,15,a[54]),S=p(S,x,O,T,c,21,a[55]),T=p(T,S,x,O,_,6,a[56]),O=p(O,T,S,x,I,10,a[57]),x=p(x,O,T,S,v,15,a[58]),S=p(S,x,O,T,P,21,a[59]),T=p(T,S,x,O,y,6,a[60]),O=p(O,T,S,x,$,10,a[61]),x=p(x,O,T,S,h,15,a[62]),S=p(S,x,O,T,w,21,a[63]),s[0]=s[0]+T|0,s[1]=s[1]+S|0,s[2]=s[2]+x|0,s[3]=s[3]+O|0},_doFinalize:function(){var t=this._data,r=t.words,n=8*this._nDataBytes,i=8*t.sigBytes;r[i>>>5]|=128<<24-i%32;var s=e.floor(n/4294967296),o=n;r[15+(i+64>>>9<<4)]=16711935&(s<<8|s>>>24)|4278255360&(s<<24|s>>>8),r[14+(i+64>>>9<<4)]=16711935&(o<<8|o>>>24)|4278255360&(o<<24|o>>>8),t.sigBytes=4*(r.length+1),this._process();for(var a=this._hash,c=a.words,d=0;d<4;d++){var l=c[d];c[d]=16711935&(l<<8|l>>>24)|4278255360&(l<<24|l>>>8)}return a},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}});function d(e,t,r,n,i,s,o){var a=e+(t&r|~t&n)+i+o;return(a<<s|a>>>32-s)+t}function l(e,t,r,n,i,s,o){var a=e+(t&n|r&~n)+i+o;return(a<<s|a>>>32-s)+t}function u(e,t,r,n,i,s,o){var a=e+(t^r^n)+i+o;return(a<<s|a>>>32-s)+t}function p(e,t,r,n,i,s,o){var a=e+(r^(t|~n))+i+o;return(a<<s|a>>>32-s)+t}t.MD5=s._createHelper(c),t.HmacMD5=s._createHmacHelper(c)}(Math),r.MD5)}(Dt)),Dt.exports}var Ct,Nt={exports:{}},Mt={exports:{}};function Ft(){return Ct||(Ct=1,function(e,t){var r,n,i,s,o,a,c,d;e.exports=(d=m(),n=(r=d).lib,i=n.WordArray,s=n.Hasher,o=r.algo,a=[],c=o.SHA1=s.extend({_doReset:function(){this._hash=new i.init([1732584193,4023233417,2562383102,271733878,3285377520])},_doProcessBlock:function(e,t){for(var r=this._hash.words,n=r[0],i=r[1],s=r[2],o=r[3],c=r[4],d=0;d<80;d++){if(d<16)a[d]=0|e[t+d];else{var l=a[d-3]^a[d-8]^a[d-14]^a[d-16];a[d]=l<<1|l>>>31}var u=(n<<5|n>>>27)+c+a[d];u+=d<20?1518500249+(i&s|~i&o):d<40?1859775393+(i^s^o):d<60?(i&s|i&o|s&o)-1894007588:(i^s^o)-899497514,c=o,o=s,s=i<<30|i>>>2,i=n,n=u}r[0]=r[0]+n|0,r[1]=r[1]+i|0,r[2]=r[2]+s|0,r[3]=r[3]+o|0,r[4]=r[4]+c|0},_doFinalize:function(){var e=this._data,t=e.words,r=8*this._nDataBytes,n=8*e.sigBytes;return t[n>>>5]|=128<<24-n%32,t[14+(n+64>>>9<<4)]=Math.floor(r/4294967296),t[15+(n+64>>>9<<4)]=r,e.sigBytes=4*t.length,this._process(),this._hash},clone:function(){var e=s.clone.call(this);return e._hash=this._hash.clone(),e}}),r.SHA1=s._createHelper(c),r.HmacSHA1=s._createHmacHelper(c),d.SHA1)}(Mt)),Mt.exports}var jt,Lt,Wt={exports:{}};function Ht(){return Lt||(Lt=1,function(e,t){var r,n,i,s,o,a,c,d;e.exports=(d=m(),Ft(),jt||(jt=1,function(e,t){var r,n,i;e.exports=(n=(r=m()).lib.Base,i=r.enc.Utf8,void(r.algo.HMAC=n.extend({init:function(e,t){e=this._hasher=new e.init,"string"==typeof t&&(t=i.parse(t));var r=e.blockSize,n=4*r;t.sigBytes>n&&(t=e.finalize(t)),t.clamp();for(var s=this._oKey=t.clone(),o=this._iKey=t.clone(),a=s.words,c=o.words,d=0;d<r;d++)a[d]^=1549556828,c[d]^=909522486;s.sigBytes=o.sigBytes=n,this.reset()},reset:function(){var e=this._hasher;e.reset(),e.update(this._iKey)},update:function(e){return this._hasher.update(e),this},finalize:function(e){var t=this._hasher,r=t.finalize(e);return t.reset(),t.finalize(this._oKey.clone().concat(r))}})))}(Wt)),Wt.exports,n=(r=d).lib,i=n.Base,s=n.WordArray,o=r.algo,a=o.MD5,c=o.EvpKDF=i.extend({cfg:i.extend({keySize:4,hasher:a,iterations:1}),init:function(e){this.cfg=this.cfg.extend(e)},compute:function(e,t){for(var r,n=this.cfg,i=n.hasher.create(),o=s.create(),a=o.words,c=n.keySize,d=n.iterations;a.length<c;){r&&i.update(r),r=i.update(e).finalize(t),i.reset();for(var l=1;l<d;l++)r=i.finalize(r),i.reset();o.concat(r)}return o.sigBytes=4*c,o}}),r.EvpKDF=function(e,t,r){return c.create(r).compute(e,t)},d.EvpKDF)}(Nt)),Nt.exports}var qt,zt={exports:{}};!function(e,t){var r;e.exports=(r=m(),Bt(),Ht(),qt||(qt=1,function(e,t){var r;e.exports=(r=m(),Ht(),void(r.lib.Cipher||function(e){var t=r,n=t.lib,i=n.Base,s=n.WordArray,o=n.BufferedBlockAlgorithm,a=t.enc;a.Utf8;var c=a.Base64,d=t.algo.EvpKDF,l=n.Cipher=o.extend({cfg:i.extend(),createEncryptor:function(e,t){return this.create(this._ENC_XFORM_MODE,e,t)},createDecryptor:function(e,t){return this.create(this._DEC_XFORM_MODE,e,t)},init:function(e,t,r){this.cfg=this.cfg.extend(r),this._xformMode=e,this._key=t,this.reset()},reset:function(){o.reset.call(this),this._doReset()},process:function(e){return this._append(e),this._process()},finalize:function(e){return e&&this._append(e),this._doFinalize()},keySize:4,ivSize:4,_ENC_XFORM_MODE:1,_DEC_XFORM_MODE:2,_createHelper:function(){function e(e){return"string"==typeof e?_:v}return function(t){return{encrypt:function(r,n,i){return e(n).encrypt(t,r,n,i)},decrypt:function(r,n,i){return e(n).decrypt(t,r,n,i)}}}}()});n.StreamCipher=l.extend({_doFinalize:function(){return this._process(!0)},blockSize:1});var u=t.mode={},p=n.BlockCipherMode=i.extend({createEncryptor:function(e,t){return this.Encryptor.create(e,t)},createDecryptor:function(e,t){return this.Decryptor.create(e,t)},init:function(e,t){this._cipher=e,this._iv=t}}),h=u.CBC=function(){var t=p.extend();function r(t,r,n){var i,s=this._iv;s?(i=s,this._iv=e):i=this._prevBlock;for(var o=0;o<n;o++)t[r+o]^=i[o]}return t.Encryptor=t.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize;r.call(this,e,t,i),n.encryptBlock(e,t),this._prevBlock=e.slice(t,t+i)}}),t.Decryptor=t.extend({processBlock:function(e,t){var n=this._cipher,i=n.blockSize,s=e.slice(t,t+i);n.decryptBlock(e,t),r.call(this,e,t,i),this._prevBlock=s}}),t}(),m=(t.pad={}).Pkcs7={pad:function(e,t){for(var r=4*t,n=r-e.sigBytes%r,i=n<<24|n<<16|n<<8|n,o=[],a=0;a<n;a+=4)o.push(i);var c=s.create(o,n);e.concat(c)},unpad:function(e){var t=255&e.words[e.sigBytes-1>>>2];e.sigBytes-=t}};n.BlockCipher=l.extend({cfg:l.cfg.extend({mode:h,padding:m}),reset:function(){var e;l.reset.call(this);var t=this.cfg,r=t.iv,n=t.mode;this._xformMode==this._ENC_XFORM_MODE?e=n.createEncryptor:(e=n.createDecryptor,this._minBufferSize=1),this._mode&&this._mode.__creator==e?this._mode.init(this,r&&r.words):(this._mode=e.call(n,this,r&&r.words),this._mode.__creator=e)},_doProcessBlock:function(e,t){this._mode.processBlock(e,t)},_doFinalize:function(){var e,t=this.cfg.padding;return this._xformMode==this._ENC_XFORM_MODE?(t.pad(this._data,this.blockSize),e=this._process(!0)):(e=this._process(!0),t.unpad(e)),e},blockSize:4});var y=n.CipherParams=i.extend({init:function(e){this.mixIn(e)},toString:function(e){return(e||this.formatter).stringify(this)}}),f=(t.format={}).OpenSSL={stringify:function(e){var t=e.ciphertext,r=e.salt;return(r?s.create([1398893684,1701076831]).concat(r).concat(t):t).toString(c)},parse:function(e){var t,r=c.parse(e),n=r.words;return 1398893684==n[0]&&1701076831==n[1]&&(t=s.create(n.slice(2,4)),n.splice(0,4),r.sigBytes-=16),y.create({ciphertext:r,salt:t})}},v=n.SerializableCipher=i.extend({cfg:i.extend({format:f}),encrypt:function(e,t,r,n){n=this.cfg.extend(n);var i=e.createEncryptor(r,n),s=i.finalize(t),o=i.cfg;return y.create({ciphertext:s,key:r,iv:o.iv,algorithm:e,mode:o.mode,padding:o.padding,blockSize:e.blockSize,formatter:n.format})},decrypt:function(e,t,r,n){return n=this.cfg.extend(n),t=this._parse(t,n.format),e.createDecryptor(r,n).finalize(t.ciphertext)},_parse:function(e,t){return"string"==typeof e?t.parse(e,this):e}}),g=(t.kdf={}).OpenSSL={execute:function(e,t,r,n){n||(n=s.random(8));var i=d.create({keySize:t+r}).compute(e,n),o=s.create(i.words.slice(t),4*r);return i.sigBytes=4*t,y.create({key:i,iv:o,salt:n})}},_=n.PasswordBasedCipher=v.extend({cfg:v.cfg.extend({kdf:g}),encrypt:function(e,t,r,n){var i=(n=this.cfg.extend(n)).kdf.execute(r,e.keySize,e.ivSize);n.iv=i.iv;var s=v.encrypt.call(this,e,t,i.key,n);return s.mixIn(i),s},decrypt:function(e,t,r,n){n=this.cfg.extend(n),t=this._parse(t,n.format);var i=n.kdf.execute(r,e.keySize,e.ivSize,t.salt);return n.iv=i.iv,v.decrypt.call(this,e,t,i.key,n)}})}()))}(zt)),function(){var e=r,t=e.lib.BlockCipher,n=e.algo,i=[],s=[],o=[],a=[],c=[],d=[],l=[],u=[],p=[],h=[];!function(){for(var e=[],t=0;t<256;t++)e[t]=t<128?t<<1:t<<1^283;var r=0,n=0;for(t=0;t<256;t++){var m=n^n<<1^n<<2^n<<3^n<<4;m=m>>>8^255&m^99,i[r]=m,s[m]=r;var y=e[r],f=e[y],v=e[f],g=257*e[m]^16843008*m;o[r]=g<<24|g>>>8,a[r]=g<<16|g>>>16,c[r]=g<<8|g>>>24,d[r]=g,g=16843009*v^65537*f^257*y^16843008*r,l[m]=g<<24|g>>>8,u[m]=g<<16|g>>>16,p[m]=g<<8|g>>>24,h[m]=g,r?(r=y^e[e[e[v^y]]],n^=e[e[n]]):r=n=1}}();var m=[0,1,2,4,8,16,32,64,128,27,54],y=n.AES=t.extend({_doReset:function(){if(!this._nRounds||this._keyPriorReset!==this._key){for(var e=this._keyPriorReset=this._key,t=e.words,r=e.sigBytes/4,n=4*((this._nRounds=r+6)+1),s=this._keySchedule=[],o=0;o<n;o++)o<r?s[o]=t[o]:(d=s[o-1],o%r?r>6&&o%r==4&&(d=i[d>>>24]<<24|i[d>>>16&255]<<16|i[d>>>8&255]<<8|i[255&d]):(d=i[(d=d<<8|d>>>24)>>>24]<<24|i[d>>>16&255]<<16|i[d>>>8&255]<<8|i[255&d],d^=m[o/r|0]<<24),s[o]=s[o-r]^d);for(var a=this._invKeySchedule=[],c=0;c<n;c++){if(o=n-c,c%4)var d=s[o];else d=s[o-4];a[c]=c<4||o<=4?d:l[i[d>>>24]]^u[i[d>>>16&255]]^p[i[d>>>8&255]]^h[i[255&d]]}}},encryptBlock:function(e,t){this._doCryptBlock(e,t,this._keySchedule,o,a,c,d,i)},decryptBlock:function(e,t){var r=e[t+1];e[t+1]=e[t+3],e[t+3]=r,this._doCryptBlock(e,t,this._invKeySchedule,l,u,p,h,s),r=e[t+1],e[t+1]=e[t+3],e[t+3]=r},_doCryptBlock:function(e,t,r,n,i,s,o,a){for(var c=this._nRounds,d=e[t]^r[0],l=e[t+1]^r[1],u=e[t+2]^r[2],p=e[t+3]^r[3],h=4,m=1;m<c;m++){var y=n[d>>>24]^i[l>>>16&255]^s[u>>>8&255]^o[255&p]^r[h++],f=n[l>>>24]^i[u>>>16&255]^s[p>>>8&255]^o[255&d]^r[h++],v=n[u>>>24]^i[p>>>16&255]^s[d>>>8&255]^o[255&l]^r[h++],g=n[p>>>24]^i[d>>>16&255]^s[l>>>8&255]^o[255&u]^r[h++];d=y,l=f,u=v,p=g}y=(a[d>>>24]<<24|a[l>>>16&255]<<16|a[u>>>8&255]<<8|a[255&p])^r[h++],f=(a[l>>>24]<<24|a[u>>>16&255]<<16|a[p>>>8&255]<<8|a[255&d])^r[h++],v=(a[u>>>24]<<24|a[p>>>16&255]<<16|a[d>>>8&255]<<8|a[255&l])^r[h++],g=(a[p>>>24]<<24|a[d>>>16&255]<<16|a[l>>>8&255]<<8|a[255&u])^r[h++],e[t]=y,e[t+1]=f,e[t+2]=v,e[t+3]=g},keySize:8});e.AES=t._createHelper(y)}(),r.AES)}(Ut);const Kt=c(Ut.exports);class Jt{constructor(){this.$http=At.create({timeout:6e4})}static encryptParams(e){o(e,"object")&&(e=JSON.stringify(e));let t=Kt.encrypt(e,n());return{payload:t.ciphertext.toString(g),token:`${t.key.toString(g)}##${t.iv.toString(g)}`}}static toUnderscore(e){return e.split(/(?=[A-Z])/).join("_").toLowerCase()}static toCamelcase(e){return e.replace(/(\_[a-z])/g,(function(e){return e.toUpperCase().replace(/_/g,"")}))}static objectKeyToUnderscore(e){let t;return s(e)&&(Array.isArray(e)?(t=[],e.forEach((e=>{let r={};Object.keys(e).forEach((t=>{r[this.toUnderscore(t)]=e[t]})),t.push(r)}))):(t={},Object.keys(e).forEach((r=>{t[this.toUnderscore(r)]=e[r]})))),t}static objectKeyToCamel(e){let t;return s(e)&&(Array.isArray(e)?(t=[],e.forEach((e=>{let r={};Object.keys(e).forEach((t=>{r[this.toCamelcase(t)]=e[t]})),t.push(r)}))):(t={},Object.keys(e).forEach((r=>{o(e[r],"object")&&Object.keys(e[r]).length>0?t[this.toCamelcase(r)]=this.objectKeyToCamel(e[r]):t[this.toCamelcase(r)]=e[r]})))),t}static axiosMultipayConfigure(){At.defaults.headers.common["Content-Type"]="application/json",At.defaults.headers.common.Accept="application/json",At.interceptors.request.use((e=>(s(e.data),this.isHttpBodyUsedMethod(e.method)&&(e.data=Jt.encryptParams(Jt.objectKeyToUnderscore(e.data))),void 0!==e.headers&&s(e.headers.progress)&&delete e.headers.progress,e)),(e=>Promise.reject(e))),At.interceptors.response.use((e=>e),(function(e){if(s(e.response)){let t=e.response.data;return t.status=e.response.status,Promise.reject(t)}return Promise.reject(e)}))}static isHttpBodyUsedMethod(e){return["post","put"].indexOf(e)>-1}}Jt.axiosMultipayConfigure();const Vt=new class extends Jt{constructor(){super()}pollingStatus(e,r,n,i){return t(this,null,(function*(){try{const t=yield this.$http.get([e,"s",r].join("/"),{params:{application_id:n,tk:i}});return Promise.resolve(t)}catch(t){return Promise.reject(t)}}))}};const Yt=new class extends O{constructor(){super(),this.$messageEventName="message.BootpayPaymentEvent",this.$eventPrefix="bootpay",this.$pollingInterval=void 0,this.$pollingData={applicationId:"",gatewayUrl:"",receiptId:"",transactionKey:""},this.$pollingEvent=Vt,this.pollingInterval=3e3,this.isDone=!1}bind(e,t){this.isDone=!1,this.setCallbackFunction(e,t),window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(P.debug("event received",JSON.stringify(t)),s(t))switch(P.debug("event",t),t.event){case"error":case"cancel":return this.reject({event:t.event,pg_error_code:t.pg_error_code,error_code:t.error_code,message:t.message,payload:t.payload});case"confirm":return this.resolve({event:t.event,receipt_id:t.receipt_id,gateway_url:t.gateway_url,order_id:t.order_id});case"redirect":return void location.replace(t.url);case"polling":return void 0!==this.$pollingData&&(this.$pollingData.receiptId=t.receipt_id,this.$pollingData.gatewayUrl=t.gateway_url),this.startPollingEvent();case"issued":case"done":if(!this.isDone)return this.isDone=!0,this.clearPollingEvent(),this.resolve(t);break;case"iFrameStyle":Zt.iFrameSetStyle(t.styles);break;case"windowStyle":Zt.windowStyle(t.styles);break;case"hideProgress":U.hideProgress();break;case"showProgress":U.showProgress(t.message);break;case"resize":Zt.iFrameResize(t.resizeData);break;case"hidePayment":Zt.closePopup(),Zt.hidePaymentiFrame();break;case"showPayment":Zt.showPaymentiFrame(!!this.$present(t.showCloseButton)&&t.showCloseButton);break;case"popup":Zt.createPopupButton({gatewayUrl:t.url,receiptId:t.receipt_id,name:t.name,price:t.price});break;case"close":Zt.destroy();break;default:return}}))}setDefaultPaymentData(e,t){void 0!==this.$pollingData&&(this.$pollingData.applicationId=e,this.$pollingData.transactionKey=t)}callBootpayDOMEvent(e,t=void 0){document.dispatchEvent(new CustomEvent([this.$eventPrefix,e].join(""),{detail:t}))}startPollingEvent(){this.$pollingInterval=setInterval((()=>t(this,null,(function*(){if(void 0!==this.$pollingData)try{const e=yield this.$pollingEvent.pollingStatus(this.$pollingData.gatewayUrl,this.$pollingData.receiptId,this.$pollingData.applicationId,this.$pollingData.transactionKey);let t={bootpay_event:!0,event:"",data:e.data};if(void 0!==e.data){if(P.debug("polling event",`receive data: ${JSON.stringify(t)}`),1===e.data.status)return t.event="done",window.postMessage(JSON.stringify(t),"*");if(5===e.data.status)return t.event="issued",window.postMessage(JSON.stringify(t),"*")}}catch(e){return this.reject({error_code:"RC_RECEIPT_POLLING_INVALID",message:"결제 상태 체크에 실패하였습니다."})}}))),this.pollingInterval)}clearPollingEvent(){void 0!==this.$pollingInterval&&clearInterval(this.$pollingInterval),this.$pollingInterval=void 0,this.$pollingData={applicationId:"",gatewayUrl:"",receiptId:"",transactionKey:""}}allClearEvent(){this.clearPollingEvent(),window.removeBootpayEventListener(this.$messageEventName)}},Gt="5.0.0-beta.17";const Xt=new class extends Jt{constructor(){super(),this.$session=I,this.$applicationId=void 0,this.$tk=void 0,this.$platformType=1,this.$receiptId=void 0}setTokenKey(e){this.$tk=e}setReceiptId(e){this.$receiptId=e}clearInstance(){this.$applicationId=void 0,this.$receiptId=void 0}send(e){try{if(s(this.$applicationId))return e.application_id=this.$applicationId,e.status=s(e.status)?e.status:1,e.version=Gt,e.tk=this.$tk,P.debug("send event",`${JSON.stringify(e)} 전송됨`),this.$http.post(T.toAnalytics("event"),e)}catch(t){return}}sendError(e){e.status=-1,this.send(e)}setApplicationId(e){this.$applicationId=e}sendCloseEvent(){if(!s(this.$receiptId))return P.debug("receipt_id","undefined receipt_id"),Promise.resolve();try{return this.$http.put(T.toApi(`close/${this.$receiptId}`))}catch(e){return Promise.reject(e)}}},Qt={startProgress:{PAYMENT:{ko:"결제를 시작합니다",en:"Start Payment..."},CARD_SUBSCRIPTION:{ko:"카드정기결제를 시작합니다",en:"Automatic payment will start..."},AUTH:{ko:"본인인증을 시작합니다",en:"Authentication will start..."}},popupLocaleMessage:{message:{ko:"구매 내역에 동의하면 결제를 진행해주세요",en:"If you agree with the purchase details, please proceed with the payment."},button:{ko:"결제계속하기",en:"Continue"}},popupMessage:{message:{PAYMENT:{ko:"구매 내역에 동의하면 결제를 진행해주세요",en:"If you agree with the purchase details, please proceed with the payment"},CARD_SUBSCRIPTION:{ko:'카드 자동결제에 동의하면 "계속하기" 버튼을 눌러 진행해주세요',en:'If you agree to automatic card payment, press the "Continue" button to proceed'},AUTH:{ko:'본인인증에 동의하면 "계속하기" 버튼을 눌러 진행해주세요',en:'If you agree to authenticate yourself, press the "Continue" button to proceed'}},button:{PAYMENT:{ko:"결제계속하기",en:"Continue"},CARD_SUBSCRIPTION:{ko:"계속하기",en:"Continue"},AUTH:{ko:"계속하기",en:"Continue"}}},closeMessage:{PAYMENT:{ko:"결제창을 닫았습니다",en:"Payment window is closed"},CARD_SUBSCRIPTION:{ko:"자동 결제창을 닫았습니다",en:"Automatic Payment window is closed"},AUTH:{ko:"본인인증 창을 닫았습니다",en:"Authenticate window is closed"}},confirmNotYet:{PAYMENT:{ko:"결제 승인준비가 되지 않았습니다",en:"Payment approval not ready "},CARD_SUBSCRIPTION:{ko:"자동결제 승인준비가 되지 않았습니다",en:"Automatic Payment approval not ready"},AUTH:{ko:"본인인증 승인준비가 되지 않았습니다",en:"Authenticate approval not ready"}},notSelectPayment:{ko:"어떤 방법으로 결제할지 선택해주세요",en:"Please, do select payment."},termsNotAgree:{ko:"필수 약관을 모두 동의해주세요",en:"Please agree to all required terms and conditions"},notSelectOOPay:{ko:"간편결제로 결제하려면, 등록된 카드 혹은 계좌를 선택해주세요",en:"Please select a registered card or account to pay with Easy Payment"},getLocaleMessage:(e,t)=>{const r=e.split(".").reduce(((e,t)=>e[t]),Qt);return s(r)&&s(r[t])?r[t]:r.ko}};const Zt=new class extends R{constructor(){super(),this.mode="PAYMENT",this.modeApiUrl={PAYMENT:"request/payment",CARD_SUBSCRIPTION:"request/subscribe",AUTH:"request/authentication"},this.$formId="bootpay-form",this.$iFrameId="bootpay-iframe-id",this.$windowId="bootpay-window-id",this.$paymentWindowId="bootpay-payment-window-id",this.$confirmFormId="bootpay-confirm-form-id",this.$confirmIFrame="bootpay-confirm-iframe-id",this.$popupWindow="bootpay-popup-window-id",this.$closeButton="bootpay-close-btn",this.$popupItemNameId="bootpay-item-name-id",this.$popupPriceId="bootpay-price-id",this.$popup=void 0,this.$popupWatcher=void 0,this.$popupUrl=void 0,this.$env=T,this.$template=this.template()}template(){return`\n<div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window ${T.isMobile()?"__mobile":""}" id="${this.$paymentWindowId}">\n <button class="bootpay-close-btn" id="${this.$closeButton}" style="display: none;" onclick="Bootpay.dismiss()"></button> \n <form id="${this.$formId}" method="POST">\n </form> \n <iframe id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe>\n <div class="bootpay-popup-window" id="${this.$popupWindow}">\n <div class="header">\n <button class="bootpay-close-btn" onclick="Bootpay.dismiss(true)"></button>\n </div>\n <div class="body">\n <h5 id="${this.$popupItemNameId}"></h5>\n <p class="price" id="${this.$popupPriceId}"></p> \n <div class="agree-text">${this.message("popupMessage.message")}</div>\n </div>\n <div class="footer">\n <button class="bootpay-button" onclick="Bootpay.readyToPopup()">\n ${this.message("popupMessage.button")}\n </button> \n </div>\n </div>\n </div>\n <div class="bootpay-confirm-window">\n <form id="${this.$confirmFormId}" method="POST">\n <input type="hidden" name="_method" value="put" /> \n </form>\n <iframe id="${this.$confirmIFrame}" name="${this.$confirmIFrame}"></iframe>\n </div> \n</div>\n `}templateReload(){P.debug("template reload","template reload!"),this.$template=this.template()}start(e,r="PAYMENT"){return t(this,null,(function*(){return new Promise(((t,n)=>{this.mode=r,this.templateReload(),Yt.clearPollingEvent(),Yt.bind(t,n),Yt.setDefaultPaymentData(e.application_id,e.tk),U.showProgress(this.message("startProgress")),this.createTemplateHtml();const i=Jt.encryptParams(Jt.objectKeyToUnderscore(e)),s=this.byId(this.$formId);s.innerHTML=`\n <input type="hidden" name="payload" value="${i.payload}" />\n <input type="hidden" name="token" value="${i.token}" />\n `,s.action=this.$env.toApi(this.apiUrl()),this.$present(e.extra)&&e.extra.popup,s.target=this.$iFrameId,s.submit()}))}))}setConfirmFormUrl(e){const t=this.byId(this.$confirmIFrame),r=this.byId(this.$confirmFormId);t.style.setProperty("display","block"),r.target=this.$confirmIFrame,r.action=e}confirm(){return new Promise(((e,t)=>{Yt.bind(e,t);const r=this.byId(this.$confirmFormId);if(this.$blank(r.action))throw new S({event:"error",error_code:"RC_CONFIRM_READY_NOT_YET",message:this.message("confirmNotYet")});r.submit()}))}startPaymentUrl(e,r="PAYMENT"){return t(this,null,(function*(){return new Promise(((t,n)=>{this.mode=r,this.templateReload(),Yt.clearPollingEvent(),Yt.bind(t,n),Yt.setDefaultPaymentData(null,null),U.showProgress(this.message("startProgress")),this.createTemplateHtml();const i=this.byId(this.$formId);i.method="GET",i.action=e,i.target=this.$iFrameId,i.submit()}))}))}createPopupButton(e){U.hideProgress(),this.hidePaymentiFrame(),this.showPopupMessage(e),this.$present(e.gatewayUrl)&&(this.$popupUrl=`${e.gatewayUrl}?popup=1`,Xt.setReceiptId(e.receiptId))}readyToPopup(e=void 0){this.hidePopupMessage(),this.closePopup();this.$popup=window.open(this.getPopupUrl(e),"BootPayPopupInstance","width=750,height=500,top=0,left=0,scrollbars=yes,directories=no, status=no, menubar=no, fullscreen=no"),this.$popupWatcher=setInterval((()=>t(this,null,(function*(){if(void 0===this.$popup||this.$popup.closed){try{clearInterval(this.$popupWatcher),yield Xt.sendCloseEvent()}catch(e){P.debug("popup",A(e))}return this.$popupUrl=void 0,Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:this.message("closeMessage")})}}))),500),this.bindParentEventOnPopup()}closePopup(){if(void 0!==this.$popupWatcher)try{clearInterval(this.$popupWatcher),P.debug("close popup","clear popup interval")}catch(e){P.info("clear popup watcher",A(e))}if(void 0!==this.$popup&&!this.$popup.closed)try{this.$popup.close(),P.debug("close popup","close popup instance")}catch(e){P.info("popup destroy",A(e))}}getPopupUrl(e){return this.$present(e)?e:this.$present(this.$popupUrl)?this.$popupUrl:"about:blank"}bindParentEventOnPopup(){let e="beforeunload.BootpayReloadWatcher";T.isMobileSafari()&&(e="pagehide.BootpayReloadWatcher"),window.resetBootpayEventListener(e,(()=>{if(void 0!==this.$popup&&!this.$popup.closed)try{this.$popup.close()}catch(e){P.info("popup destroy",A(e))}}))}showPaymentiFrame(e=!1){const t=this.byId(this.$iFrameId),r=this.byId(this.$closeButton);void 0!==t&&t.style.setProperty("display","block"),void 0!==r&&e&&r.style.setProperty("display","inline-block")}showPopupMessage(e){const t=this.byId(this.$popupWindow),r=this.byId(this.$popupItemNameId),n=this.byId(this.$popupPriceId);void 0!==t&&t.style.setProperty("display","block"),void 0!==r&&(r.innerText=e.name),void 0!==n&&(parseFloat(e.price)>0?n.innerText=String(e.price):n.remove())}hidePopupMessage(){this.byId(this.$popupWindow).style.setProperty("display","none")}destroy(){this.$present(document.querySelector("body").className)&&(document.querySelector("body").className=document.querySelector("body").className.replace(/bootpay-open/gi,"")),this.$present(this.byId(this.$windowId))&&(this.byId(this.$windowId).outerHTML=""),document.body.classList.remove("bootpay-open"),U.hideProgress(),this.closePopup(),Yt.allClearEvent(),Xt.clearInstance(),setTimeout((()=>Yt.callBootpayDOMEvent("close")),300)}iFrameResize(e){const t=this.byId(this.$iFrameId);if(void 0!==t)for(let r in Object.keys(e)){let n=Object.keys(e)[r],i=e[n];this.$present(i)&&!String(i).match(/%/)&&(n.match(/width/)||n.match(/Width/)||n.match(/height/)||n.match(/Height/))&&(i=`${String(e[n]).replace(/px/gi,"")}px`),String(i).match(/%/)&&!this.byId(this.$paymentWindowId).className.match(/w-100/)&&(this.byId(this.$paymentWindowId).className+=" w-100"),t.style.setProperty(n,i)}}iFrameSetStyle(e){P.debug("change style",e);const t=this.byId(this.$iFrameId);for(let n in Object.keys(e)){let i=Object.keys(e)[n];try{P.debug(i,e[i]),t.style.setProperty(i,e[i])}catch(r){P.warn("iframe style",null==r?void 0:r.message)}}}windowStyle(e){P.debug("change style",e);const t=this.byId(this.$paymentWindowId);for(let n in Object.keys(e)){let i=Object.keys(e)[n];try{P.debug(i,e[i]),t.style.setProperty(i,e[i])}catch(r){P.warn("iframe style",null==r?void 0:r.message)}}}hidePaymentiFrame(){const e=this.byId(this.$iFrameId),t=this.byId(this.$closeButton);void 0!==e&&e.style.setProperty("display","none"),void 0!==t&&t.style.setProperty("display","none")}message(e){return Qt.getLocaleMessage(`${e}.${this.mode}`,T.locale)}moveToUrl(e){const t=this.byId(this.$iFrameId);this.hidePaymentiFrame(),t.removeAttribute("style"),this.iFrameResize({width:T.isMobile()?"100%":400,height:T.isMobile()?"100%":700}),t.style.setProperty("display","block"),t.src=e}apiUrl(){return this.modeApiUrl[this.mode]}},er=class e extends _{constructor(){super(),this.$session=I,this.$logger=P,this.$event=Xt,this.platformType=r.PLATFORM.JS,this.$transactionKey="",this.extra={},this.browserBootpayFilter={instagram:/Instagram/i,kakaotalk:/KAKAOTALK/i,facebook:/FBAV/i,naver:/NAVER/i,mobile_safari:/(iPhone|iPad|iPod)/,mobile_chrome:[/Mobile|iP(hone|od|ad)|Android|BlackBerry|IEMobile|Kindle|NetFront|Silk-Accelerated|(hpw|web)OS|Fennec|Minimo|Opera M(obi|ini)|Blazer|Dolfin|Dolphin|Skyfire|Zune/,/Chrome/]}}requestPayment(r){return t(this,null,(function*(){var t;void 0===(null==(t=r.extra)?void 0:t.locale)||T.isSetLocale||T.setLocale(r.extra.locale),this.$event.clearInstance(),this.generateTransactionKey(),r.application_id=T.currentApplicationId(r.application_id),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(r.application_id),this.$event.send({step:"start",msg:"결제 요청 시작",request:r}),r.sdk=!0,r.platform_type=this.platformType,r.ver=Gt,r.sdk_version=T.sdkVersion,r.sdk_type=T.sdkName,r.locale=T.locale,r.price=parseFloat(String(r.price)),r.tax_free=parseFloat(String(r.tax_free)),e.invalidRequestParamsData(r),e.invalidRequestItemsData(r.items,r.price),r.uuid=this.$session.currentUserUUID(),r.sk=this.$session.currentSessionKey(),r.ti=this.$session.currentTimeTerm(),r.tk=this.$transactionKey,r.env=this.getUserDeviceEnvironment(),r.extra=this.openTypeFilter(r.extra),this.extra=r.extra;try{const e=yield Zt.start(r);return P.debug("confirm ready",e),Zt.hidePaymentiFrame(),Zt.closePopup(),-1===["done","issued"].indexOf(e.event)&&this.$event.send({step:e.event,msg:"",request:r,response:e}),Zt.setConfirmFormUrl(`${e.gateway_url}/confirm/${e.receipt_id}?application_id=${r.application_id}`),Promise.resolve(e)}catch(n){return this.eventError(n),Promise.reject(n)}}))}confirm(){return t(this,null,(function*(){try{const e=yield Zt.confirm();return Promise.resolve(e)}catch(e){return this.eventError(e),Promise.reject(e)}}))}eventDone(e,t=!0){this.$logger.debug(e.event,e),this.$event.send({step:e.event,msg:"done"===e.event?"결제완료":"가상계좌발급완료",request:{},response:e}),U.hideProgress(),this.$logger.debug("show result",this.isDisplaySuccessResult()),this.isDisplaySuccessResult()&&t?this.displayResultView(e.data.receipt_id):Zt.destroy()}eventError(e){U.hideProgress(),Zt.closePopup(),this.isDisplayErrorResult()&&"error"===e.event?this.displayResultErrorView(e):Zt.destroy(),this.$logger.debug("done failed destroy and hide","payment"),this.$event.sendError({step:this.$present(e.event)?e.event:"error",msg:e.message,trace:function(){try{return e.stack}catch(t){return!1}}()})}generateTransactionKey(){return this.$transactionKey=`${this.$uuid()}-${1e3*(new Date).getTime()}`,this.$transactionKey}requestSubscription(e){return t(this,null,(function*(){this.$event.clearInstance(),this.generateTransactionKey(),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(e.application_id),this.$event.send({step:"start",msg:"정기결제 요청 시작",request:e}),e.extra=this.openTypeFilter(e.extra);const t={application_id:e.application_id,subscription_id:e.subscription_id,pg:e.pg,method:e.method,order_name:e.order_name,price:e.price,tax_free:e.tax_free,user_token:e.user_token,metadata:e.metadata,platform_type:this.platformType,ver:Gt,sdk_version:T.sdkVersion,sdk_type:T.sdkName,locale:T.locale,sdk:!0,uuid:this.$session.currentUserUUID(),sk:this.$session.currentSessionKey(),tk:this.$transactionKey,env:this.getUserDeviceEnvironment(),user:e.user,extra:e.extra};try{const r=yield Zt.start(t,"CARD_SUBSCRIPTION");switch(P.debug("subscription success",r),this.$event.send({step:"confirm",msg:"결제승인전",request:{},response:r}),Zt.hidePaymentiFrame(),Zt.closePopup(),r.event){case"done":case"issued":break;case"confirm":Zt.setConfirmFormUrl(`${r.gateway_url}/confirm/${r.receipt_id}?application_id=${e.application_id}`)}return Promise.resolve(r)}catch(r){return this.eventError(r),Promise.reject(r)}}))}requestAuthentication(e){return t(this,null,(function*(){this.$event.clearInstance(),this.generateTransactionKey(),this.$event.setTokenKey(this.$transactionKey),this.$event.setApplicationId(e.application_id),this.$event.send({step:"start",msg:"본인인증 요청 시작",request:e}),e.extra=this.openTypeFilter(e.extra);const t={application_id:e.application_id,authentication_id:e.authentication_id,pg:e.pg,method:this.$present(e.method)?e.method:"auth",order_name:e.order_name,platform_type:this.platformType,ver:Gt,sdk_version:T.sdkVersion,sdk_type:T.sdkName,locale:T.locale,metadata:e.metadata,sdk:!0,uuid:this.$session.currentUserUUID(),sk:this.$session.currentSessionKey(),tk:this.$transactionKey,env:this.getUserDeviceEnvironment(),user:e.user,extra:e.extra};try{const r=yield Zt.start(t,"AUTH");switch(P.debug("authentication success",r),this.$event.send({step:"confirm",msg:"본인인증 승인전",request:{},response:r}),Zt.hidePaymentiFrame(),Zt.closePopup(),r.event){case"done":case"issued":break;case"confirm":Zt.setConfirmFormUrl(`${r.gateway_url}/confirm/${r.receipt_id}?application_id=${e.application_id}`)}return Promise.resolve(r)}catch(r){return this.eventError(r),Promise.reject(r)}}))}requestPaymentUrl(e){return t(this,null,(function*(){try{const t=yield Zt.startPaymentUrl(e.url);return-1===["done","issued"].indexOf(t.event)&&this.$event.send({step:t.event,msg:"",request:{url:e.url},response:t}),Zt.setConfirmFormUrl(`${t.gateway_url}/confirm/${t.receipt_id}?application_id=${e.application_id}`),Promise.resolve(t)}catch(t){return this.eventError(t),Promise.reject(t)}}))}getUserDeviceEnvironment(){return{width:window.innerWidth,height:window.innerHeight}}isDisplaySuccessResult(){return void 0!==this.extra&&void 0!==this.extra.display_success_result&&this.extra.display_success_result}isDisplayErrorResult(){return void 0!==this.extra&&void 0!==this.extra.display_error_result&&this.extra.display_error_result}displayResultView(e){Zt.moveToUrl(T.toDoor(`result/${e}`))}displayResultErrorView(e){Zt.moveToUrl(T.toDoor(`error?error_code=${e.error_code}&pg_error_code=${e.pg_error_code}&message=${e.message}`))}openTypeFilter(e){if(this.$present(e)&&void 0!==e.browser_open_type){const t=this.getUserAgent();for(let r in e.browser_open_type){const n=e.browser_open_type[r],i=this.$present(this.browserBootpayFilter[n.browser])?this.browserBootpayFilter[n.browser]:new RegExp(`${n.browser}`);if(t.match(i)){e.open_type=n.open_type;break}}}return e}static invalidRequestParamsData(t){if(i(t))throw new S({event:"error",error_code:"NEED_MORE_PARAMS",message:"결제 요청을 위한 최소한의 결제 정보를 입력해주세요."});Object.keys(e.invalidRequestParams).forEach((r=>{const n=t[r];if(i(n))throw new S({event:"error",error_code:"INVALID_REQUEST_PARAMS",message:e.invalidRequestParams[r]})}))}static invalidRequestItemsData(e,t){if(void 0!==e&&s(e)){let r=0;if(e.forEach(((t,n)=>{if(i(t.id))throw new S({event:"error",error_code:"NEED_ITEM_ID",message:`${n+1}번째 상품 고유 ID를 입력해주세요. [ key: id ]`});if(i(t.name))throw new S({event:"error",error_code:"NEED_ITEM_NAME",message:`${n+1}번째 상품명을 입력해주세요. [ key: name ]`});if(i(t.qty))throw new S({event:"error",error_code:"NEED_ITEM_QTY",message:`${n+1}번째 상품수량을 입력해주세요. [ key: qty ]`});if(i(t.price))throw new S({event:"error",error_code:"NEED_ITEM_PRICE",message:`${n+1}번째 상품금액을 입력해주세요. [ key: price ]`});e[n].price=parseFloat(String(e[n].price)),e[n].qty=parseFloat(String(e[n].qty)),r+=e[n].price*e[n].qty})),r!==t)throw new S({event:"error",error_code:"NEED_ITEM_TOTAL_PRICE_NOT_MATCH",message:`결제 금액과 상품 수량 및 상품 금액의 총합과 일치하지 않습니다. [ 요청금액: ${t} ${typeof t}, 상품 총합계 금액: ${r} ${typeof r} ]`})}}};er.invalidRequestParams={application_id:"application_id를 입력해주세요. [ key: application_id ]",order_name:"판매할 상품명을 입력해주세요. [ key: order_name ]",price:"판매할 상품의 금액을 입력해주세요. [ key: price ]",order_id:"가맹점에서 설정할 주문 ID를 입력해주세요. [ key: order_id ]"};let tr=er;const rr=new tr;const nr=new class extends Jt{constructor(){super(),this.$session=I}setAnalyticsData(e){this.$session.setTime(e.time),this.$session.setUUID(e.uuid)}send(e){return t(this,null,(function*(){const t=document.URL;if(void 0!==t&&-1===t.search(/bootapi.co.kr/)){const n=this.$session.getUser();e.application_id=T.currentApplicationId(e.application_id),e.sk=this.$session.currentSessionKey(),e.uuid=this.$session.currentUserUUID(),e.time=this.$session.currentTime(),e.url=t,e.referer=void 0!==document.referrer&&s(document.referrer)&&-1==document.referrer.search(new RegExp(window.location.hostname))?document.referrer:"",e.user_id=void 0===n||i(n)?void 0:n.id,e.items=this.generateItemKeyToVersion1(e.items);try{const t=yield this.$http.post(T.toAnalytics(`call?ver=${Gt}`),e);return 200===t.data.status?(P.info("Analytics Common Send","통계 데이터가 전송되었습니다."),Promise.resolve()):(P.warn("Analytics Common Send",`통계 데이터가 전송 실패. ${JSON.stringify(t.data)}`),Promise.reject())}catch(r){return P.error("Analytics Common Error",`데이터 전송 실패: ${r.message}`),Promise.reject()}}}))}login(e){return t(this,null,(function*(){if(e.application_id=T.currentApplicationId(e.application_id),i(e.application_id))return P.error("Analytics Params","application_id 값을 입력해주세요.");if(i(e.id))return P.error("Analytics Params","id 값을 입력해주세요.");try{const t=yield this.$http.post(T.toAnalytics(`login?ver=${Gt}`),e),{user_id:r}=t.data.data;return this.$session.setUser({id:r,time:(new Date).getTime()}),Promise.resolve()}catch(t){return P.error("Analytics Login Error",`데이터 전송 실패: ${t.message}`),Promise.reject()}}))}logout(){this.$session.setUser(void 0)}generateItemKeyToVersion1(e){return void 0!==e?e.map((e=>({cat1:e.cat1,cat2:e.cat2,cat3:e.cat3,item_img:e.img,item_name:e.name,unique:e.id,price:e.price}))):void 0}};!function(){if("undefined"==typeof window||"function"==typeof window.CustomEvent)return!1;function e(e,t){t=t||{bubbles:!1,cancelable:!1,detail:void 0};let r=document.createEvent("CustomEvent");return r.initCustomEvent(e,t.bubbles,t.cancelable,t.detail),r}e.prototype=window.Event.prototype,window.CustomEvent=e}();const ir={$payment:rr,$analytics:nr,$environment:T,requestPayment(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{void 0!==e.extra&&!0===e.extra.override_global_event&&(P.debug("override global event","override global event!"),ir.overrideGlobalInstance());const t=yield this.$payment.requestPayment(e);setTimeout((()=>{r(t),["done","issued"].indexOf(t.event)>-1&&this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>{n(this.errorHandler(t))}),100)}}))))}))},confirm(){return t(this,null,(function*(){return new Promise(((e,r)=>t(this,null,(function*(){try{const t=yield this.$payment.confirm();setTimeout((()=>{e(t),this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>r(this.errorHandler(t))),100)}}))))}))},requestSubscription(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestSubscription(e);r(t),this.$payment.eventDone(t)}catch(t){return n(this.errorHandler(t))}}))))}))},requestAuthentication(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestAuthentication(e);r(t),this.$payment.eventDone(t)}catch(t){return n(this.errorHandler(t))}}))))}))},requestPaymentUrl(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield this.$payment.requestPaymentUrl(e);setTimeout((()=>{r(t),["done","issued"].indexOf(t.event)>-1&&this.$payment.eventDone(t)}),100)}catch(t){setTimeout((()=>{n(this.errorHandler(t))}),100)}}))))}))},setEnvironmentMode(e,t=void 0){this.$environment.set(e),void 0!==t&&this.$environment.setDevelopmentHost(t)},setApplicationId(e){return this.$environment.setApplicationId(e)},setVersion(e,t){return this.$environment.setVersion(e,t)},setDevice(e){switch(e){case"IOS":this.$payment.platformType=r.PLATFORM.IOS;break;case"ANDROID":this.$payment.platformType=r.PLATFORM.ANDROID;break;default:this.$payment.platformType=r.PLATFORM.JS}return this.$payment.platformType},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},readyToPopup(){Zt.readyToPopup()},setLogLevel(e){P.setLogLevel(e)},setUUID:e=>I.setUUID(e),send(e=void 0){return this.$analytics.send(void 0!==e?e:{})},login(e){return this.$analytics.login(e)},logout(){return this.$analytics.logout()},setLocale(e){T.setLocale(e),Zt.templateReload()},dismiss(e=!1){return t(this,null,(function*(){if(e)try{yield Xt.sendCloseEvent()}catch(t){P.debug("error",t.message)}Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:"사용자가 결제창을 닫았습니다."})}))},getCurrentUUID:()=>I.currentUserUUID(),destroy(){Zt.destroy()},overrideGlobalInstance(){window.Bootpay=ir}};"undefined"!=typeof window&&(window.Bootpay=ir);class sr extends O{constructor(){super(),this.$messageEventName="message.BootpayUserTokenEvent"}bind(e,t){this.setCallbackFunction(e,t),window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(s(t))switch(P.debug("event",t),t.event){case"error":case"cancel":return this.reject({event:t.event,pg_error_code:t.pg_error_code,error_code:t.error_code,message:t.message,payload:t.payload});case"data":return this.resolve(t.data);case"confirmPasswordToken":return this.resolve(t.token);case"confirmAddCard":return this.resolve(t);case"resize":or.iFrameResize(t.resizeData);break;default:return}}))}}const or=new class extends R{constructor(){super(),this.$windowId="bootpay-user-token-background-id",this.$userWindowId="bootpay-user-token-window-id",this.$iFrameId="bootpay-user-token-iframe-id",this.$bootpaySdkFormId="bootpay-user-token-sdk-form",this.$template=this.template(),this.$event=new sr,this.$session=I,this.deviceType=r.PLATFORM.JS}setDevice(e){return this.deviceType=e,this.deviceType}template(){return`\n <div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window" id="${this.$userWindowId}">\n <iframe id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe>\n <form name="${this.$bootpaySdkFormId}" id="${this.$bootpaySdkFormId}" method="GET"> \n </form>\n </div>\n </div>\n `}setParams(e,t){if(void 0!==t){const r=this.byId(this.$bootpaySdkFormId);if(["POST","PUT"].indexOf(e.toUpperCase())>-1){const e=Jt.encryptParams(Jt.objectKeyToUnderscore(t));r.innerHTML=`\n <input type="hidden" name="payload" value="${e.payload}" />\n <input type="hidden" name="token" value="${e.token}" /> \n `}else{let n="";"DELETE"===e.toUpperCase()&&(n+='<input type="hidden" name="_method" value="patch"/>'),Object.keys(t).forEach((e=>{n+=`<input type="hidden" name="${e}" value="${t[e]}"/>`})),r.innerHTML=n}}}request(e,t){return new Promise(((r,n)=>{this.createTemplateHtml(),this.$event.bind(r,n),this.goiFrameUrl("GET",T.toDoor(`sdk/password/${t}`),{type:e,uuid:this.$session.currentUserUUID()})}))}addCard(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("GET",T.toDoor(`sdk/card/${e}`),{uuid:this.$session.currentUserUUID()})}))}wallets(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("GET",T.toApi("sdk/easy/wallet"),{user_token:e,sdk:!0,uuid:this.$session.currentUserUUID()})}))}destroyWallet(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/wallet"),{method:"DELETE",sdk:!0,user_token:e.user_token,wallet_id:e.wallet_id,token:e.token,uuid:this.$session.currentUserUUID()})}))}createBiometricAuthenticate(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/biometric"),{user_token:e.userToken,sdk:!0,uuid:this.$session.currentUserUUID(),os:e.os,token:e.token})}))}destroyBiometricAuthenticate(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/biometric"),{method:"DELETE",uuid:this.$session.currentUserUUID(),user_token:e.userToken,token:e.token})}))}requestWalletPayment(e){return new Promise(((t,r)=>{this.createTemplateHtml(),this.$event.bind(t,r),this.goiFrameUrl("POST",T.toApi("sdk/easy/card"),this.regenerateRequestPayment(e))}))}goiFrameUrl(e,t,r=void 0){this.setParams(e,r);const n=this.byId(this.$bootpaySdkFormId);n.method=this.toMethod(e),n.action=t,n.target=this.$iFrameId,n.submit(),this.show()}toMethod(e){switch(e.toUpperCase()){case"PUT":case"DELETE":return"POST";default:return e}}iFrameResize(e){const t=this.byId(this.$iFrameId);if(void 0!==t)for(let r in Object.keys(e)){let n=Object.keys(e)[r],i=e[n];this.$present(i)&&!String(i).match(/%/)&&(n.match(/width/)||n.match(/Width/)||n.match(/height/)||n.match(/Height/))&&(i=`${String(e[n]).replace(/px/gi,"")}px`),String(i).match(/%/)&&!this.byId(this.$userWindowId).className.match(/w-100/)&&(this.byId(this.$userWindowId).className+=" w-100"),t.style.setProperty(n,i)}}regenerateRequestPayment(e){return e.ver=Gt,e.platform_type=this.deviceType,e.sdk=!0,e.price=parseFloat(String(e.price)),e.tax_free=parseFloat(String(e.tax_free)),tr.invalidRequestParamsData(e),tr.invalidRequestItemsData(e.items,e.price),e.uuid=this.$session.currentUserUUID(),e.sk=this.$session.currentSessionKey(),e.ti=this.$session.currentTimeTerm(),e.tk=`${this.$uuid()}-${1e3*(new Date).getTime()}`,e}show(){const e=this.byId(this.$iFrameId);void 0!==e&&e.style.setProperty("display","block")}destroy(){this.$present(document.querySelector("body").className)&&(document.querySelector("body").className=document.querySelector("body").className.replace(/bootpay-open/gi,"")),this.$present(this.byId(this.$windowId))&&(this.byId(this.$windowId).outerHTML=""),document.body.classList.remove("bootpay-open"),Yt.clearPollingEvent(),setTimeout((()=>Yt.callBootpayDOMEvent("close")),300)}},ar={$templateUserToken:or,requestPasswordToken(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.request("passwordToken",e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestChangePassword(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.request("changePasswordToken",e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestAddCard(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.addCard(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},wallets(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.wallets(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},destroyWallet(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.destroyWallet(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},createBiometricAuthenticate(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.createBiometricAuthenticate(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},destroyBiometricAuthenticate(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.destroyBiometricAuthenticate(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},requestWalletPayment(e){return t(this,null,(function*(){try{const t=yield this.$templateUserToken.requestWalletPayment(e);return this.$templateUserToken.destroy(),Promise.resolve(t)}catch(t){return this.$templateUserToken.destroy(),Promise.reject(this.errorHandler(t))}}))},setEnvironmentMode(e,t=void 0){T.set(e),void 0!==t&&T.setDevelopmentHost(t)},setDevice(e){let t=r.PLATFORM.JS;switch(e.toUpperCase()){case"IOS":t=r.PLATFORM.IOS;break;case"ANDROID":t=r.PLATFORM.ANDROID}return this.$templateUserToken.setDevice(t)},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},setLogLevel(e){P.setLogLevel(e)},setUUID:e=>I.setUUID(e),dismiss(){Yt.reject({event:"cancel",error_code:"RC_CLOSE_WINDOW",message:"사용자가 결제창을 닫았습니다."})}};"undefined"!=typeof window&&(window.BootpaySDK=ar);const cr={el:void 0,applicationId:void 0,price:0,taxFree:0,currency:"KRW",userToken:void 0,pg:void 0,method:void 0,walletId:void 0,selectTerms:[],useOnlyOOpay:!1,termsPassed:!1,useTerms:!0,sandbox:!1,widgetKey:void 0,externalTerms:[],widgetExtra:{card_quota:[]},extra:{},setWidgetData(e){this.el=String(e.el).replace(/#/gi,""),this.applicationId=e.application_id,this.price=e.price,this.taxFree=e.tax_free,this.currency=e.currency,this.userToken=e.user_token,this.useOnlyOOpay=void 0!==e.use_only_oopay&&e.use_only_oopay,this.useTerms=!(!1===e.use_terms),this.walletId=e.wallet_id,this.externalTerms=e.external_terms,this.widgetExtra=e.widget_extra,this.widgetKey=e.widget_key,this.sandbox=!0===e.sandbox,this.termsPassed=!1,this.extra={}},setPayment(e,t,r,n=!1,i,s){this.pg=e,this.method=t,this.walletId=r,this.termsPassed=n,this.selectTerms=i,this.extra=s},updateOnProcessing(e){s(e.price)&&(this.price=e.price),s(e.tax_free)&&(this.taxFree=e.tax_free),s(e.currency)&&(this.currency=e.currency),void 0!==e.user_token&&(this.userToken=e.user_token),s(e.use_terms)&&(this.useTerms=!(!1===e.use_terms)),s(e.sandbox)&&(this.sandbox=!0===e.sandbox),void 0!==e.external_terms&&(this.externalTerms=e.external_terms),void 0!==e.widget_key&&(this.widgetKey=e.widget_key)}};const dr=new class extends R{constructor(){super(),this.$iFrameId="bootpay-widget-iframe",this.$widgetStore=cr,this.$template=`\n <iframe id="${this.$iFrameId}" src="" frameborder="0" allowtransparency="true" scrolling="no" style="background: transparent; width: 100%; height: 100%;"></iframe> \n `,this.isRendered=!1}render(){const e=document.getElementById(this.$widgetStore.el);if(this.$blank(this.$widgetStore.el)||null===e)throw new Error("부트페이 위젯을 설정할 Element ID를 입력하지 않았거나 해당 Element DOM이 존재하지 않습니다.");this.templateRender()}templateRender(){const e=document.getElementById(this.$widgetStore.el);e.style.setProperty("height","0px"),e.innerHTML=this.$template;this.byId(this.$iFrameId).setAttribute("src",T.toWidget(`p/${this.$widgetStore.applicationId}`)),this.isRendered=!0}resize(e){this.templateResize(this.$widgetStore.el,e)}rerender(){this.postMessage("bootpayWidgetRerender")}destroy(){document.getElementById(this.$widgetStore.el).innerHTML=""}postMessage(e,t=void 0){var r;const n=this.byId(this.$iFrameId);null==(r=null==n?void 0:n.contentWindow)||r.postMessage(JSON.stringify({bootpay_event:!0,event:e,data:t}),"*")}};const lr=new class extends R{constructor(){super(),this.$oopayWindowId="__bootpay-card-easy-window",this.$iFrameId="__bootpay-card-easy-iframe",this.$windowId="__bootpay-card-easy-container-window",this.$additionalClass=T.isMobile()?"":"rounded-iframe",this.$template=this.template(),this.$widgetStore=cr}template(){return`\n<div id="${this.$windowId}" class="bootpay-payment-background">\n <div class="bootpay-payment-window ${T.isMobile()?"__mobile":""}" id="${this.$oopayWindowId}"> \n <iframe class="${this.$additionalClass}" id="${this.$iFrameId}" name="${this.$iFrameId}"></iframe> \n </div> \n</div>\n `}createIFrame(e){this.createTemplateHtml();const t=document.getElementById(this.$iFrameId);null==t||t.setAttribute("src",T.toWidget(`${e}`)),null==t||t.style.setProperty("display","block")}addWallet(){this.createIFrame(`wallet/add/${this.$widgetStore.applicationId}`)}removeWallet(e){this.createIFrame(`oopay/destroy/${this.$widgetStore.applicationId}/${e}`)}showCardInterestInformation(e){this.createIFrame(`card/interest/${this.$widgetStore.applicationId}`)}destroy(){document.body.classList.remove("bootpay-open");const e=document.getElementById(this.$windowId);void 0!==e&&(e.outerHTML="",e.remove())}resize(e){P.debug("resize",e),this.templateResize(this.$iFrameId,e)}postMessage(e,t=void 0){var r;const n=this.byId(this.$iFrameId);null==(r=null==n?void 0:n.contentWindow)||r.postMessage(JSON.stringify({bootpay_event:!0,event:e,data:t}),"*")}};const ur=new class extends O{constructor(){super(),this.$messageEventName="message.BootpayWidgetEvent",this.$eventPrefix="bootpay"}bind(){window.resetBootpayEventListener(this.$messageEventName,(e=>{const t=this.parseEvent(e.data);if(s(t))switch(t.event){case"bootpayWidgetSelectMethod":return pr.selectPayment(t.data.pg,t.data.method,t.data.wallet_id,!0===t.data.term_passed,t.data.select_terms,t.data.extra);case"bootpayRequestGetEnvironment":return dr.postMessage("bootpayResponseGetEnvironment",{use_only_oopay:dr.$widgetStore.useOnlyOOpay,user_token:dr.$widgetStore.userToken,sandbox:dr.$widgetStore.sandbox,use_terms:dr.$widgetStore.useTerms,external_terms:dr.$widgetStore.externalTerms,key:dr.$widgetStore.widgetKey});case"bootpayRequestGetEnvironmentOOPAY":return lr.postMessage("bootpayResponseGetEnvironmentOOPAY",{use_only_oopay:dr.$widgetStore.useOnlyOOpay,user_token:dr.$widgetStore.userToken,sandbox:dr.$widgetStore.sandbox,use_terms:dr.$widgetStore.useTerms});case"bootpayRequestCurrentStores":return dr.postMessage("bootpayWidgetRequestCurrentStores",t.data);case"bootpayWidgetResponseCurrentStores":return lr.postMessage("bootpayResponseCurrentStores",t.data);case"bootpayWidgetError":return this.reject(t);case"bootpayWidgetOOpayReload":return dr.postMessage("bootpayWidgetOOpayReload",t.data);case"bootpayWidgetResize":return dr.resize(t.data);case"bootpayWidgetShowInterestInformation":return lr.showCardInterestInformation(t.data);case"bootpayWidgetAddWallet":return lr.addWallet();case"bootpayWidgetRemoveWallet":return lr.removeWallet(t.data.wallet_id);case"bootpayWidgetPaymentWindowResize":return lr.resize(t.data);case"bootpayWidgetOOpayWindowClose":return lr.destroy();case"bootpayWidgetPaymentGetStoreData":const{applicationId:e,price:r,widgetExtra:n,taxFree:i,userToken:s}=dr.$widgetStore;return dr.postMessage("bootpayWidgetResponseStoreData",{applicationId:e,price:r,widgetExtra:n,taxFree:i,userToken:s});case"bootpayWidgetTermAllAgree":return void this.callBootpayDOMEvent("allagreeterms",t.data);case"bootpayWidgetSelectPayment":const{method_alias:o,payment_type:a,wallet_id:c}=t.data;return dr.postMessage("bootpayWidgetSelectPayment",{method_alias:o,payment_type:a,wallet_id:c});case"bootpayWidgetReady":this.callBootpayDOMEvent("widgetready",t.data);default:return this.reject(t)}}))}callBootpayDOMEvent(e,t=void 0){document.dispatchEvent(new CustomEvent([this.$eventPrefix,e].join(""),{detail:t}))}destroyAllEvent(){window.removeBootpayEventListener(this.$messageEventName)}};const pr=new class extends _{constructor(){super(),this.message=Qt}initialize(){cr.setWidgetData({el:void 0,application_id:void 0,price:0,tax_free:0,currency:"KRW",user_token:void 0,pg:void 0,method:void 0,widget_key:void 0})}render(e,t){if(this.$blank(null==t?void 0:t.price)||t.price<0)throw new Error("결제금액은 1원 이상을 입력해주세요.");if(this.$blank(null==t?void 0:t.application_id))throw new Error("application_id가 입력되지 않았습니다.");this.initialize(),cr.setWidgetData({el:e,application_id:t.application_id,price:t.price,tax_free:t.tax_free,currency:t.currency,user_token:t.user_token,use_only_oopay:t.use_only_oopay,external_terms:t.external_terms,widget_extra:t.extra,use_terms:t.use_terms,sandbox:t.sandbox,widget_key:t.key}),dr.render(),ur.bind()}update(e){const{price:t,tax_free:r,currency:n,user_token:i,use_only_oopay:s,use_terms:o,sandbox:a,external_terms:c}=e;cr.updateOnProcessing({price:t,tax_free:r,currency:n,user_token:i,use_only_oopay:s,use_terms:o,external_terms:c,sandbox:a}),(this.$present(i)||this.$present(s)||this.$present(o)||this.$present(a))&&dr.postMessage("bootpayWidgetUpdateUserToken",{user_token:i,use_only_oopay:s,use_terms:o,external_terms:c,sandbox:a})}rerender(){dr.rerender()}destroy(){dr.destroy()}selectPayment(e,t,r,n=!1,i,s){cr.setPayment(e,t,r,n,i,s),P.debug("selectPayment",`pg: ${e}, method: ${t}, wallet_id: ${r}, terms: ${n}, select_terms: ${JSON.stringify(i)}, extra: ${JSON.stringify(s)}`)}currentTermsCondition(){return cr.selectTerms}requestPayment(e){return t(this,null,(function*(){if(this.$blank(cr.pg)||this.$blank(cr.method))throw new S({event:"error",error_code:"RC_PG_METHOD_NOT_SELECTED",message:this.message.getLocaleMessage("notSelectPayment","ko")});if(!cr.termsPassed&&cr.useTerms)throw new S({event:"error",error_code:"RC_TERMS_NOT_AGREE",message:this.message.getLocaleMessage("termsNotAgree","ko")});if("OOPAY"===cr.method&&void 0===cr.walletId)throw new S({event:"error",error_code:"RC_OOPAY_NEED_SELECT_WALLET",message:this.message.getLocaleMessage("notSelectOOPay","ko")});return e.application_id=cr.applicationId,e.price=cr.price,e.tax_free=cr.taxFree,e.currency=cr.currency,e.pg=cr.pg,e.method=cr.method,e.wallet_id=cr.walletId,e.terms=cr.selectTerms,e.widget_sandbox=cr.sandbox,e.extra=this.mergeExtraOnStore(e.extra),e.widget=1,ir.requestPayment(e)}))}mergeExtraOnStore(e){return void 0===e?cr.extra:(void 0!==cr.extra&&Object.keys(cr.extra).forEach((t=>{e[t]=cr.extra[t]})),e)}isRendered(){return dr.isRendered}synchronizedRealTimeTransfer(e){dr.postMessage("bootpayWidgetSynchronizedRealTimeTransfer",e)}sendSelectPayment(e){dr.postMessage("bootpayWidgetSelectPayment",e)}},hr={render(e,t){pr.render(e,t)},rerender(){pr.rerender()},setEnvironmentMode(e,t){ir.setEnvironmentMode(e,t),T.set(e)},requestPayment(e){return t(this,null,(function*(){return new Promise(((r,n)=>t(this,null,(function*(){try{const t=yield pr.requestPayment(e);return r(t)}catch(t){return n(this.errorHandler(t))}}))))}))},errorHandler(e){let t;if(U.hideProgress(),"BootpayEventError"===e.name)t=e.eventMessage;else{if(!s(e.event))throw e;t=e}return t},update(e){pr.update(e),this.rerender()},currentTermsCondition:()=>pr.currentTermsCondition(),destroy(){pr.destroy()},isRendered:()=>pr.isRendered(),synchronizedRealTimeTransfer(e){pr.synchronizedRealTimeTransfer(e)},selectPayment(e){pr.sendSelectPayment(e)}};"undefined"!=typeof window&&(window.BootpayWidget=hr),e.Bootpay=ir,e.BootpayEnvironment=T,e.BootpaySDK=ar,e.BootpayWidget=hr,e.default=ir,Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})}));
@@ -1,6 +1,6 @@
1
1
  declare const _default: {
2
2
  "name": "@bootpay/client-js",
3
- "version": "5.0.0-beta.15",
3
+ "version": "5.0.0-beta.17",
4
4
  "main": "dist/index.es.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "styles": "dist/index.css",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bootpay/client-js",
3
- "version": "5.0.0-beta.15",
3
+ "version": "5.0.0-beta.17",
4
4
  "main": "dist/index.es.js",
5
5
  "types": "dist/src/index.d.ts",
6
6
  "styles": "dist/index.css",