epp-lib 0.0.31-snapshot → 0.0.32-snapshot

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.
Binary file
@@ -9,7 +9,6 @@ import { timer } from 'rxjs';
9
9
  export class Payment {
10
10
  constructor(dialog) {
11
11
  this.dialog = dialog;
12
- this.iframes = new Map();
13
12
  this.cache = new Map();
14
13
  this.timer = new Timer(500); // 0.5s
15
14
  this.iframeMessageService = inject(IframeMessageService);
@@ -206,18 +205,10 @@ export class Payment {
206
205
  this.stopRefreshedTokenSchedule();
207
206
  });
208
207
  }
209
- sendMessageParentToIframe(iframeType, message, target) {
210
- if (this.iframes.has(iframeType)) {
211
- this.iframeMessageService.sendMessageToIframe(this.iframes.get(iframeType), message, target);
208
+ sendMessageParentToIframe(message, target) {
209
+ if (this.iframe) {
210
+ this.iframeMessageService.sendMessageToIframe(this.iframe, message, target);
212
211
  }
213
212
  }
214
- putSubIframe(iframe, iframeType) {
215
- if (iframe == undefined)
216
- return;
217
- this.iframes.set(iframeType, iframe);
218
- }
219
- removeSubIframe(iframeType) {
220
- this.iframes.delete(iframeType);
221
- }
222
213
  }
223
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL2xpYi9jb21wb25lbnQvcGF5bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxNQUFNLE9BQU8sT0FBTztJQVdoQixZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVjVCLFlBQU8sR0FBMEQsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNuRixVQUFLLEdBQTBCLElBQUksR0FBRyxFQUFFLENBQUM7UUFFekMsVUFBSyxHQUFVLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTztRQUk5Qix5QkFBb0IsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUNwRCxzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFHOUI7O1dBRUc7UUFDSCxJQUFJLENBQUMsb0JBQW9CLENBQUMsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxFQUFFO1lBQ3ZELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDOUMsSUFB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LFVBQTZCO1FBQzNDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSWZyYW1lTWVzc2FnZVNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlL2lmcmFtZS1tZXNzYWdlLnNlcnZpY2UnO1xuaW1wb3J0IHsgSWZyYW1lTWVzc2FnZVR5cGUgfSBmcm9tICcuLi9tb2RlbC9pZnJhbWUtbWVzc2FnZS10eXBlJztcbmltcG9ydCB7IENoZWNrb3V0IH0gZnJvbSAnLi4vbW9kZWwvY2hlY2tvdXQnO1xuaW1wb3J0IHsgSWZyYW1lTWVzc2FnZSB9IGZyb20gJy4uL21vZGVsL2lmcmFtZS1tZXNzYWdlJztcbmltcG9ydCB7IFRpbWVyIH0gZnJvbSAnLi4vbW9kZWwvdGltZXInO1xuaW1wb3J0IHsgUGF5bWVudFR5cGUgfSBmcm9tICcuLi9tb2RlbC9wYXltZW50LXR5cGUnO1xuaW1wb3J0IHsgUmFweWRDb21wb25lbnQgfSBmcm9tICcuL3JhcHlkL3JhcHlkLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uLCB0aW1lciB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY2xhc3MgUGF5bWVudCB7XG4gICAgcHJpdmF0ZSBpZnJhbWVzOiBNYXA8SWZyYW1lTWVzc2FnZVR5cGUsIEVsZW1lbnRSZWY8SFRNTElGcmFtZUVsZW1lbnQ+PiA9IG5ldyBNYXAoKTtcbiAgICBjYWNoZTogTWFwPG51bWJlciwgQ2hlY2tvdXQ+ID0gbmV3IE1hcCgpO1xuICAgIGlmcmFtZTogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD4gfCB1bmRlZmluZWQ7Ly9TZXQgZnJvbSB0aGUgY29tcG9uZW50XG4gICAgdGltZXI6IFRpbWVyID0gbmV3IFRpbWVyKDUwMCk7IC8vIDAuNXNcbiAgICByZXN1bHQ6IENoZWNrb3V0IHwgdW5kZWZpbmVkO1xuICAgIHRva2VuRXhwaXJlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGlmcmFtZU1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KElmcmFtZU1lc3NhZ2VTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJhcHlkU2NyaXB0TG9hZGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB0aW1lclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpc3RlbiBPUEVOX1BBWU1FTlRfRk9STSBtZXNzYWdlIHRvIG9wZW4gM3RoIHBhcnR5IHBhZ2VcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2Uub25NZXNzYWdlcygpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWNlaXZlZCBmcm9tIGlmcmFtZTonLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGlmICghbWVzc2FnZSB8fCBtZXNzYWdlLnR5cGUgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9QQVlNRU5UX0ZPUk06XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrb3V0ID0gT2JqZWN0LmFzc2lnbihuZXcgQ2hlY2tvdXQoKSwgbWVzc2FnZS5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja291dCB8fCB0aGlzLmNhY2hlLmdldChjaGVja291dC5yZXF1ZXN0SWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuY2FjaGUuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIC8vVE9ETyBjbGVhciB0aGUgY3VycmVudCBwb3B1cFxuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2hlY2tvdXQucGF5bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuSkVUT046XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFBheW1lbnRUeXBlLkVDT1BBWVo6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2luZG93KGNoZWNrb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuUkFQWUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVmlzYUNoZWNrb3V0KGNoZWNrb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5USElSRF9QQVJUWV9DQUxMQkFDSzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hlY2tvdXQxID0gbmV3IENoZWNrb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0MS5zZXRDYWxsYmFjayhtZXNzYWdlLnBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyLnN0b3BXYXRjaGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dDEpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLlBBWU1FTlRfQ0FMTEJBQ0s6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrb3V0MiA9IG5ldyBDaGVja291dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5wYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja291dDIuc2V0RXJyb3JNZXNzYWdlKG1lc3NhZ2UucGF5bG9hZCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQyLnNldENhbGxiYWNrKG1lc3NhZ2UucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lci5zdG9wV2F0Y2hlcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlVG9JZnJhbWUoY2hlY2tvdXQyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLk9QRU5fREVQT1NJVDpcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLk9QRU5fVFJBTlNBQ1RJT046XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5PUEVOX1dJVEhEUkFXOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuQ0FOQ0VMX1dJVEhEUkFXOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuUEFZT1VUOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuSU5fUFJPR1JFU1M6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5SRUZSRVNIX1RPS0VOOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuUkVGUkVTSF9JRlJBTUU6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5SRVFVSVJFX1JFRlJFU0hfVE9LRU46XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5UUkFDS19HQTQ6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5JRlJBTUVfUkVTSVpFOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9XSVRIRFJBV0FMX1JFUVVFU1RfQ09ORklSTUFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9XSVRIRFJBV0FMX1NVQk1JVFRFRDpcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLlJFU1VMVF9XSVRIRFJBV0FMX1JFUVVFU1RfQ09ORklSTUFUSU9OOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0RG9tYWluKGhvc3Q6IHN0cmluZykge1xuICAgICAgICBpZiAoIWhvc3QpIHJldHVybjtcbiAgICAgICAgdGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5nZXREb21haW4oaG9zdCk7XG4gICAgfVxuICAgIHByb2Nlc3NNZXNzYWdlKG1lc3NhZ2U6IElmcmFtZU1lc3NhZ2UpIHtcbiAgICAgICAgLy9UT0RPXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiAzdGggcGFydHkgcGFnZSBvbiB0aGUgcG9wdXAgd2luZG93biBvciBuZXcgdGFiXG4gICAgICovXG4gICAgb3BlbldpbmRvdyhjaGVja291dDogQ2hlY2tvdXQpIHtcbiAgICAgICAgdGhpcy5jYWNoZS5zZXQoY2hlY2tvdXQucmVxdWVzdElkLCBjaGVja291dCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiT3BlbiB3aW5kb3duOiBcIiwgdGhpcy5jYWNoZSk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gNDcwO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSA1NTA7XG4gICAgICAgIHZhciBsZWZ0ID0gTWF0aC5tYXgoMCwgKHNjcmVlbi53aWR0aCAtIHdpZHRoKSAvIDIpLFxuICAgICAgICB0b3AgPSBNYXRoLm1heCgwLCAoc2NyZWVuLmhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgLy8gdmFyIHBvcHVwID0gd2luZG93Lm9wZW4odXJsLCBcIlZPZGRzXCIsICd3aWR0aD0nICsgd2lkdGggKyAnLGhlaWdodD0nICsgaGVpZ2h0ICsgJyxsZWZ0PScgKyBsZWZ0ICsgJyx0b3A9JyArIHRvcCArICcsc3RhdHVzPTAsbG9jYXRpb249MCxtZW51YmFyPTAsdG9vbGJhcj0wJyk7XG4gICAgICAgIGxldCBwb3B1cCA9IHdpbmRvdy5vcGVuKGNoZWNrb3V0LnVybCwgXCJWT2Rkc1wiLCAnd2lkdGg9JyArIHdpZHRoICsgJyxoZWlnaHQ9JyArIGhlaWdodCArICcsbGVmdD0nICsgbGVmdCArICcsdG9wPScgKyB0b3AgKyAnLHN0YXR1cz0wLGxvY2F0aW9uPTAsbWVudWJhcj0wLHRvb2xiYXI9MCcpO1xuICAgICAgICBpZiAoIXBvcHVwKSB7XG4gICAgICAgICAgICBjaGVja291dC5lcnJvck1lc3NhZ2UgPSAnWW91ciBzZXR0aW5nIHByZXZlbnRzIHBvcHVwcy4gUGxlYXNlIGNoYW5nZSB5b3VyIHNldHRpbmcgdG8gYWxsb3cgaXQuJztcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dCk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLmRlbGV0ZShjaGVja291dC5yZXF1ZXN0SWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrb3V0LnBvcHVwID0gcG9wdXA7XG4gICAgICAgIHBvcHVwLmZvY3VzKCk7XG4gICAgICAgIHRoaXMub25UaGlyZFBhcnR5TWVzc2FnZShjaGVja291dCk7XG4gICAgICAgIHRoaXMudGltZXIub2JlcnNlcmFibGVUaW1lcihjaGVja291dCwgKCkgPT4gdGhpcy5zZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0KSk7XG4gICAgfVxuICAgIGFzeW5jIG9wZW5WaXNhQ2hlY2tvdXQoY2hlY2tvdXQ6IENoZWNrb3V0KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oUmFweWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0VXJsOiBjaGVja291dC51cmwsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyYXRpb246IGNoZWNrb3V0LmV4cGlyYXRpb25cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiAnOTB2dydcbiAgICAgICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGNoZWNrb3V0RmFpbHVyZU1lc3NhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGNoZWNrb3V0LmVycm9yTWVzc2FnZSA9IGNoZWNrb3V0RmFpbHVyZU1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5yYXB5ZFNjcmlwdExvYWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gJ2h0dHBzOi8vc2FuZGJveGNoZWNrb3V0dG9vbGtpdC5yYXB5ZC5uZXQnO1xuICAgICAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcblxuICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJhcHlkU2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBSYXB5ZCBDaGVja291dCBUb29sa2l0JykpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW4gbWVzc2FnZSBvciBhY3Rpb24gZnJvbSAzdGggcGFydHkgb24gdGhlIHBvcHVwXG4gICAgICogU2tpcCBmb3IgUkFQWUQgLSBJdCB3aWxsIHByb2Nlc3Mgd2hlbiB0aGUgZGlhbG9nIGNsb3NlXG4gICAgICovXG4gICAgb25UaGlyZFBhcnR5TWVzc2FnZShjaGVja291dDogQ2hlY2tvdXQpIHtcbiAgICAgICAgdGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5vblRoaXJkUGFydHlNZXNzYWdlcygpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5pc1ZhbGlkRG9tYWluKGNoZWNrb3V0LnBheW1lbnRUeXBlLCBldmVudC5vcmlnaW4pKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGVja291dC5wYXltZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFBheW1lbnRUeXBlLk5BOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuSkVUT046XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuRUNPUEFZWjpcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVjZWl2ZWQgZnJvbSAzdGggcGFydHk6JywgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgY2hlY2tvdXQuc2V0Q2FsbGJhY2soZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lci5zdG9wV2F0Y2hlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNlbmQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgcGFyZW50IHRvIHRoZSBpZnJhbWVcbiAgICAgKi9cbiAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0OiBDaGVja291dCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcInNlbmQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgcGFyZW50IGludG8gdGhlIGlmcmFtZTogXCIsIGNoZWNrb3V0KTtcbiAgICAgICAgaWYgKHRoaXMuaWZyYW1lID09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICBsZXQgbWVzc2FnZTogSWZyYW1lTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIHR5cGU6IElmcmFtZU1lc3NhZ2VUeXBlLlBBWU1FTlRfQ0FMTEJBQ0ssXG4gICAgICAgICAgICBwYXlsb2FkOiBjaGVja291dFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2Uuc2VuZE1lc3NhZ2VUb0lmcmFtZSh0aGlzLmlmcmFtZSwgbWVzc2FnZSwgY2hlY2tvdXQuaWZyYW1lVXJsKTtcbiAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUoY2hlY2tvdXQucmVxdWVzdElkKTtcbiAgICB9XG5cbiAgICByZW1vdmVQYXltZW50SWZyYW1lKCkge1xuICAgICAgICAvL1RPRE9cbiAgICAgICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudG9rZW5FeHBpcmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcbiAgICB9XG5cbiAgICBzZXRDb25maWcodG9rZW5FeHBpcmVBdDogbnVtYmVyLCB0b2tlbjogc3RyaW5nKXtcbiAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgIHRoaXMudG9rZW5FeHBpcmUgPSB0b2tlbkV4cGlyZUF0XG4gICAgICB0aGlzLnN0YXJ0UmVmcmVzaGVkVG9rZW5TY2hlZHVsZSh0aGlzLnRva2VuRXhwaXJlKTtcbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaGVkVG9rZW5TY2hlZHVsZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRpbWVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMudGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIHN0YXJ0UmVmcmVzaGVkVG9rZW5TY2hlZHVsZSh0aW1lRXhwaXJlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcblxuICAgICAgY29uc3QgZGVsYXlUaW1lID0gdGltZUV4cGlyZSAtIDYwO1xuICAgICAgY29uc3Qgc2FmZURlbGF5ID0gTWF0aC5tYXgoMCwgZGVsYXlUaW1lKTtcblxuICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKHNhZmVEZWxheSAqIDEwMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc01lc3NhZ2Uoe3R5cGU6IElmcmFtZU1lc3NhZ2VUeXBlLlJFUVVJUkVfUkVGUkVTSF9UT0tFTn0gYXMgSWZyYW1lTWVzc2FnZSk7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHNlbmRNZXNzYWdlUGFyZW50VG9JZnJhbWUoaWZyYW1lVHlwZTogSWZyYW1lTWVzc2FnZVR5cGUsIG1lc3NhZ2U6IElmcmFtZU1lc3NhZ2UsIHRhcmdldDogc3RyaW5nKXtcbiAgICAgIGlmKHRoaXMuaWZyYW1lcy5oYXMoaWZyYW1lVHlwZSkpe1xuICAgICAgICB0aGlzLmlmcmFtZU1lc3NhZ2VTZXJ2aWNlLnNlbmRNZXNzYWdlVG9JZnJhbWUodGhpcy5pZnJhbWVzLmdldChpZnJhbWVUeXBlKSEsIG1lc3NhZ2UsIHRhcmdldCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcHV0U3ViSWZyYW1lKGlmcmFtZTogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD4sIGlmcmFtZVR5cGU6IElmcmFtZU1lc3NhZ2VUeXBlKXtcbiAgICAgIGlmIChpZnJhbWUgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICB0aGlzLmlmcmFtZXMuc2V0KGlmcmFtZVR5cGUsIGlmcmFtZSk7XG4gICAgfVxuXG4gICAgcmVtb3ZlU3ViSWZyYW1lKGlmcmFtZVR5cGU6IElmcmFtZU1lc3NhZ2VUeXBlKSB7XG4gICAgICB0aGlzLmlmcmFtZXMuZGVsZXRlKGlmcmFtZVR5cGUpO1xuICAgIH1cbn1cbiJdfQ==
214
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGF5bWVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL2xpYi9jb21wb25lbnQvcGF5bWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUU3QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3BELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV6RCxPQUFPLEVBQWdCLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUzQyxNQUFNLE9BQU8sT0FBTztJQVVoQixZQUFtQixNQUFpQjtRQUFqQixXQUFNLEdBQU4sTUFBTSxDQUFXO1FBVHBDLFVBQUssR0FBMEIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUV6QyxVQUFLLEdBQVUsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPO1FBSTlCLHlCQUFvQixHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQ3BELHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQUc5Qjs7V0FFRztRQUNILElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDdkQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxPQUFPLENBQUMsQ0FBQztZQUM5QyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxJQUFJLElBQUks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LGlCQUFpQixDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxTQUFTLENBQUM7UUFDckMsQ0FBQztJQUNILENBQUM7SUFHRCwyQkFBMkIsQ0FBQyxVQUFrQjtRQUM1QyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztRQUVsQyxNQUFNLFNBQVMsR0FBRyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2xDLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRXpDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDOUQsSUFBSSxDQUFDLGNBQWMsQ0FBQyxFQUFDLElBQUksRUFBRSxpQkFBaUIsQ0FBQyxxQkFBcUIsRUFBa0IsQ0FBQyxDQUFDO1lBQ3RGLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1FBQ3BDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELHlCQUF5QixDQUFDLE9BQXNCLEVBQUUsTUFBYztRQUM5RCxJQUFHLElBQUksQ0FBQyxNQUFNLEVBQUMsQ0FBQztZQUNkLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxNQUFNLENBQUMsQ0FBQztRQUM5RSxDQUFDO0lBQ0gsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJZnJhbWVNZXNzYWdlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2UvaWZyYW1lLW1lc3NhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBJZnJhbWVNZXNzYWdlVHlwZSB9IGZyb20gJy4uL21vZGVsL2lmcmFtZS1tZXNzYWdlLXR5cGUnO1xuaW1wb3J0IHsgQ2hlY2tvdXQgfSBmcm9tICcuLi9tb2RlbC9jaGVja291dCc7XG5pbXBvcnQgeyBJZnJhbWVNZXNzYWdlIH0gZnJvbSAnLi4vbW9kZWwvaWZyYW1lLW1lc3NhZ2UnO1xuaW1wb3J0IHsgVGltZXIgfSBmcm9tICcuLi9tb2RlbC90aW1lcic7XG5pbXBvcnQgeyBQYXltZW50VHlwZSB9IGZyb20gJy4uL21vZGVsL3BheW1lbnQtdHlwZSc7XG5pbXBvcnQgeyBSYXB5ZENvbXBvbmVudCB9IGZyb20gJy4vcmFweWQvcmFweWQuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24sIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5cbmV4cG9ydCBjbGFzcyBQYXltZW50IHtcbiAgICBjYWNoZTogTWFwPG51bWJlciwgQ2hlY2tvdXQ+ID0gbmV3IE1hcCgpO1xuICAgIGlmcmFtZTogRWxlbWVudFJlZjxIVE1MSUZyYW1lRWxlbWVudD4gfCB1bmRlZmluZWQ7Ly9TZXQgZnJvbSB0aGUgY29tcG9uZW50XG4gICAgdGltZXI6IFRpbWVyID0gbmV3IFRpbWVyKDUwMCk7IC8vIDAuNXNcbiAgICByZXN1bHQ6IENoZWNrb3V0IHwgdW5kZWZpbmVkO1xuICAgIHRva2VuRXhwaXJlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICAgdG9rZW46IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBwcml2YXRlIGlmcmFtZU1lc3NhZ2VTZXJ2aWNlID0gaW5qZWN0KElmcmFtZU1lc3NhZ2VTZXJ2aWNlKTtcbiAgICBwcml2YXRlIHJhcHlkU2NyaXB0TG9hZGVkID0gZmFsc2U7XG4gICAgcHJpdmF0ZSB0aW1lclN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgZGlhbG9nOiBNYXREaWFsb2cpIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIExpc3RlbiBPUEVOX1BBWU1FTlRfRk9STSBtZXNzYWdlIHRvIG9wZW4gM3RoIHBhcnR5IHBhZ2VcbiAgICAgICAgICovXG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2Uub25NZXNzYWdlcygpLnN1YnNjcmliZShtZXNzYWdlID0+IHtcbiAgICAgICAgICAgIGNvbnNvbGUubG9nKCdSZWNlaXZlZCBmcm9tIGlmcmFtZTonLCBtZXNzYWdlKTtcbiAgICAgICAgICAgIGlmICghbWVzc2FnZSB8fCBtZXNzYWdlLnR5cGUgPT0gdW5kZWZpbmVkKSByZXR1cm47XG4gICAgICAgICAgICBzd2l0Y2ggKG1lc3NhZ2UudHlwZSkge1xuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9QQVlNRU5UX0ZPUk06XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrb3V0ID0gT2JqZWN0LmFzc2lnbihuZXcgQ2hlY2tvdXQoKSwgbWVzc2FnZS5wYXlsb2FkKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFjaGVja291dCB8fCB0aGlzLmNhY2hlLmdldChjaGVja291dC5yZXF1ZXN0SWQpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMuY2FjaGUuc2l6ZSA+IDApIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIHRoaXMuY2FjaGUuY2xlYXIoKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gICAgIC8vVE9ETyBjbGVhciB0aGUgY3VycmVudCBwb3B1cFxuICAgICAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaCAoY2hlY2tvdXQucGF5bWVudFR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuSkVUT046XG4gICAgICAgICAgICAgICAgICAgICAgICBjYXNlIFBheW1lbnRUeXBlLkVDT1BBWVo6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuV2luZG93KGNoZWNrb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuUkFQWUQ6XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5vcGVuVmlzYUNoZWNrb3V0KGNoZWNrb3V0KTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5USElSRF9QQVJUWV9DQUxMQkFDSzpcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgY2hlY2tvdXQxID0gbmV3IENoZWNrb3V0KCk7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0MS5zZXRDYWxsYmFjayhtZXNzYWdlLnBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnRpbWVyLnN0b3BXYXRjaGVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dDEpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLlBBWU1FTlRfQ0FMTEJBQ0s6XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNoZWNrb3V0MiA9IG5ldyBDaGVja291dCgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobWVzc2FnZS5wYXlsb2FkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjaGVja291dDIuc2V0RXJyb3JNZXNzYWdlKG1lc3NhZ2UucGF5bG9hZCBhcyBzdHJpbmcpO1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgY2hlY2tvdXQyLnNldENhbGxiYWNrKG1lc3NhZ2UucGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgdGhpcy50aW1lci5zdG9wV2F0Y2hlcigpO1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnNlbmRNZXNzYWdlVG9JZnJhbWUoY2hlY2tvdXQyKTtcbiAgICAgICAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLk9QRU5fREVQT1NJVDpcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLk9QRU5fVFJBTlNBQ1RJT046XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5PUEVOX1dJVEhEUkFXOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuQ0FOQ0VMX1dJVEhEUkFXOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuUEFZT1VUOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuSU5fUFJPR1JFU1M6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5SRUZSRVNIX1RPS0VOOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuUkVGUkVTSF9JRlJBTUU6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5SRVFVSVJFX1JFRlJFU0hfVE9LRU46XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5UUkFDS19HQTQ6XG4gICAgICAgICAgICAgICAgY2FzZSBJZnJhbWVNZXNzYWdlVHlwZS5JRlJBTUVfUkVTSVpFOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9XSVRIRFJBV0FMX1JFUVVFU1RfQ09ORklSTUFUSU9OOlxuICAgICAgICAgICAgICAgIGNhc2UgSWZyYW1lTWVzc2FnZVR5cGUuT1BFTl9XSVRIRFJBV0FMX1NVQk1JVFRFRDpcbiAgICAgICAgICAgICAgICBjYXNlIElmcmFtZU1lc3NhZ2VUeXBlLlJFU1VMVF9XSVRIRFJBV0FMX1JFUVVFU1RfQ09ORklSTUFUSU9OOlxuICAgICAgICAgICAgICAgICAgICB0aGlzLnByb2Nlc3NNZXNzYWdlKG1lc3NhZ2UpO1xuICAgICAgICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIH1cblxuICAgICAgICB9KTtcbiAgICB9XG4gICAgZ2V0RG9tYWluKGhvc3Q6IHN0cmluZykge1xuICAgICAgICBpZiAoIWhvc3QpIHJldHVybjtcbiAgICAgICAgdGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5nZXREb21haW4oaG9zdCk7XG4gICAgfVxuICAgIHByb2Nlc3NNZXNzYWdlKG1lc3NhZ2U6IElmcmFtZU1lc3NhZ2UpIHtcbiAgICAgICAgLy9UT0RPXG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogT3BlbiAzdGggcGFydHkgcGFnZSBvbiB0aGUgcG9wdXAgd2luZG93biBvciBuZXcgdGFiXG4gICAgICovXG4gICAgb3BlbldpbmRvdyhjaGVja291dDogQ2hlY2tvdXQpIHtcbiAgICAgICAgdGhpcy5jYWNoZS5zZXQoY2hlY2tvdXQucmVxdWVzdElkLCBjaGVja291dCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiT3BlbiB3aW5kb3duOiBcIiwgdGhpcy5jYWNoZSk7XG4gICAgICAgIGNvbnN0IHdpZHRoID0gNDcwO1xuICAgICAgICBjb25zdCBoZWlnaHQgPSA1NTA7XG4gICAgICAgIHZhciBsZWZ0ID0gTWF0aC5tYXgoMCwgKHNjcmVlbi53aWR0aCAtIHdpZHRoKSAvIDIpLFxuICAgICAgICB0b3AgPSBNYXRoLm1heCgwLCAoc2NyZWVuLmhlaWdodCAtIGhlaWdodCkgLyAyKTtcbiAgICAgICAgLy8gdmFyIHBvcHVwID0gd2luZG93Lm9wZW4odXJsLCBcIlZPZGRzXCIsICd3aWR0aD0nICsgd2lkdGggKyAnLGhlaWdodD0nICsgaGVpZ2h0ICsgJyxsZWZ0PScgKyBsZWZ0ICsgJyx0b3A9JyArIHRvcCArICcsc3RhdHVzPTAsbG9jYXRpb249MCxtZW51YmFyPTAsdG9vbGJhcj0wJyk7XG4gICAgICAgIGxldCBwb3B1cCA9IHdpbmRvdy5vcGVuKGNoZWNrb3V0LnVybCwgXCJWT2Rkc1wiLCAnd2lkdGg9JyArIHdpZHRoICsgJyxoZWlnaHQ9JyArIGhlaWdodCArICcsbGVmdD0nICsgbGVmdCArICcsdG9wPScgKyB0b3AgKyAnLHN0YXR1cz0wLGxvY2F0aW9uPTAsbWVudWJhcj0wLHRvb2xiYXI9MCcpO1xuICAgICAgICBpZiAoIXBvcHVwKSB7XG4gICAgICAgICAgICBjaGVja291dC5lcnJvck1lc3NhZ2UgPSAnWW91ciBzZXR0aW5nIHByZXZlbnRzIHBvcHVwcy4gUGxlYXNlIGNoYW5nZSB5b3VyIHNldHRpbmcgdG8gYWxsb3cgaXQuJztcbiAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dCk7XG4gICAgICAgICAgICB0aGlzLmNhY2hlLmRlbGV0ZShjaGVja291dC5yZXF1ZXN0SWQpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGNoZWNrb3V0LnBvcHVwID0gcG9wdXA7XG4gICAgICAgIHBvcHVwLmZvY3VzKCk7XG4gICAgICAgIHRoaXMub25UaGlyZFBhcnR5TWVzc2FnZShjaGVja291dCk7XG4gICAgICAgIHRoaXMudGltZXIub2JlcnNlcmFibGVUaW1lcihjaGVja291dCwgKCkgPT4gdGhpcy5zZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0KSk7XG4gICAgfVxuICAgIGFzeW5jIG9wZW5WaXNhQ2hlY2tvdXQoY2hlY2tvdXQ6IENoZWNrb3V0KSB7XG4gICAgICAgIHRyeSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLmxvYWQoKTtcbiAgICAgICAgICAgIHRoaXMuZGlhbG9nLm9wZW4oUmFweWRDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICAgIGNoZWNrb3V0VXJsOiBjaGVja291dC51cmwsXG4gICAgICAgICAgICAgICAgICAgIGV4cGlyYXRpb246IGNoZWNrb3V0LmV4cGlyYXRpb25cbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpZHRoOiAnNTAwcHgnLFxuICAgICAgICAgICAgICAgIG1heFdpZHRoOiAnOTB2dydcbiAgICAgICAgICAgIH0pLmFmdGVyQ2xvc2VkKCkuc3Vic2NyaWJlKGNoZWNrb3V0RmFpbHVyZU1lc3NhZ2UgPT4ge1xuICAgICAgICAgICAgICAgIGNoZWNrb3V0LmVycm9yTWVzc2FnZSA9IGNoZWNrb3V0RmFpbHVyZU1lc3NhZ2U7XG4gICAgICAgICAgICAgICAgdGhpcy5zZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0KTtcbiAgICAgICAgICAgIH0pXG4gICAgICAgIH0gY2F0Y2ggKGVycm9yKSB7XG4gICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgfVxuICAgIH1cbiAgICBsb2FkKCk6IFByb21pc2U8dm9pZD4ge1xuICAgICAgICBpZiAodGhpcy5yYXB5ZFNjcmlwdExvYWRlZCkge1xuICAgICAgICAgICAgcmV0dXJuIFByb21pc2UucmVzb2x2ZSgpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIG5ldyBQcm9taXNlKChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuXG4gICAgICAgICAgICBzY3JpcHQuc3JjID0gJ2h0dHBzOi8vc2FuZGJveGNoZWNrb3V0dG9vbGtpdC5yYXB5ZC5uZXQnO1xuICAgICAgICAgICAgc2NyaXB0LmFzeW5jID0gdHJ1ZTtcblxuICAgICAgICAgICAgc2NyaXB0Lm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnJhcHlkU2NyaXB0TG9hZGVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9O1xuXG4gICAgICAgICAgICBzY3JpcHQub25lcnJvciA9ICgpID0+IHtcbiAgICAgICAgICAgICAgICByZWplY3QobmV3IEVycm9yKCdGYWlsZWQgdG8gbG9hZCBSYXB5ZCBDaGVja291dCBUb29sa2l0JykpO1xuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChzY3JpcHQpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMaXN0ZW4gbWVzc2FnZSBvciBhY3Rpb24gZnJvbSAzdGggcGFydHkgb24gdGhlIHBvcHVwXG4gICAgICogU2tpcCBmb3IgUkFQWUQgLSBJdCB3aWxsIHByb2Nlc3Mgd2hlbiB0aGUgZGlhbG9nIGNsb3NlXG4gICAgICovXG4gICAgb25UaGlyZFBhcnR5TWVzc2FnZShjaGVja291dDogQ2hlY2tvdXQpIHtcbiAgICAgICAgdGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5vblRoaXJkUGFydHlNZXNzYWdlcygpLnN1YnNjcmliZShldmVudCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5pZnJhbWVNZXNzYWdlU2VydmljZS5pc1ZhbGlkRG9tYWluKGNoZWNrb3V0LnBheW1lbnRUeXBlLCBldmVudC5vcmlnaW4pKSB7XG4gICAgICAgICAgICAgICAgc3dpdGNoIChjaGVja291dC5wYXltZW50VHlwZSkge1xuICAgICAgICAgICAgICAgICAgICBjYXNlIFBheW1lbnRUeXBlLk5BOlxuICAgICAgICAgICAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuSkVUT046XG4gICAgICAgICAgICAgICAgICAgIGNhc2UgUGF5bWVudFR5cGUuRUNPUEFZWjpcblxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygnUmVjZWl2ZWQgZnJvbSAzdGggcGFydHk6JywgZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgY2hlY2tvdXQuc2V0Q2FsbGJhY2soZXZlbnQuZGF0YSk7XG4gICAgICAgICAgICAgICAgdGhpcy50aW1lci5zdG9wV2F0Y2hlcigpO1xuICAgICAgICAgICAgICAgIHRoaXMuc2VuZE1lc3NhZ2VUb0lmcmFtZShjaGVja291dCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIHNlbmQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgcGFyZW50IHRvIHRoZSBpZnJhbWVcbiAgICAgKi9cbiAgICBzZW5kTWVzc2FnZVRvSWZyYW1lKGNoZWNrb3V0OiBDaGVja291dCkge1xuICAgICAgICBjb25zb2xlLmxvZyhcInNlbmQgdGhlIG1lc3NhZ2UgZnJvbSB0aGUgcGFyZW50IGludG8gdGhlIGlmcmFtZTogXCIsIGNoZWNrb3V0KTtcbiAgICAgICAgaWYgKHRoaXMuaWZyYW1lID09IHVuZGVmaW5lZCkgcmV0dXJuO1xuICAgICAgICBsZXQgbWVzc2FnZTogSWZyYW1lTWVzc2FnZSA9IHtcbiAgICAgICAgICAgIHR5cGU6IElmcmFtZU1lc3NhZ2VUeXBlLlBBWU1FTlRfQ0FMTEJBQ0ssXG4gICAgICAgICAgICBwYXlsb2FkOiBjaGVja291dFxuICAgICAgICB9XG4gICAgICAgIHRoaXMuaWZyYW1lTWVzc2FnZVNlcnZpY2Uuc2VuZE1lc3NhZ2VUb0lmcmFtZSh0aGlzLmlmcmFtZSwgbWVzc2FnZSwgY2hlY2tvdXQuaWZyYW1lVXJsKTtcbiAgICAgICAgdGhpcy5jYWNoZS5kZWxldGUoY2hlY2tvdXQucmVxdWVzdElkKTtcbiAgICB9XG5cbiAgICByZW1vdmVQYXltZW50SWZyYW1lKCkge1xuICAgICAgICAvL1RPRE9cbiAgICAgICAgdGhpcy5pZnJhbWUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudG9rZW4gPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMudG9rZW5FeHBpcmUgPSB1bmRlZmluZWQ7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcbiAgICB9XG5cbiAgICBzZXRDb25maWcodG9rZW5FeHBpcmVBdDogbnVtYmVyLCB0b2tlbjogc3RyaW5nKXtcbiAgICAgIHRoaXMudG9rZW4gPSB0b2tlbjtcbiAgICAgIHRoaXMudG9rZW5FeHBpcmUgPSB0b2tlbkV4cGlyZUF0XG4gICAgICB0aGlzLnN0YXJ0UmVmcmVzaGVkVG9rZW5TY2hlZHVsZSh0aGlzLnRva2VuRXhwaXJlKTtcbiAgICB9XG5cbiAgICBzdG9wUmVmcmVzaGVkVG9rZW5TY2hlZHVsZSgpOiB2b2lkIHtcbiAgICAgIGlmICh0aGlzLnRpbWVyU3Vic2NyaXB0aW9uKSB7XG4gICAgICAgIHRoaXMudGltZXJTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICB9XG5cblxuICAgIHN0YXJ0UmVmcmVzaGVkVG9rZW5TY2hlZHVsZSh0aW1lRXhwaXJlOiBudW1iZXIpOiB2b2lkIHtcbiAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcblxuICAgICAgY29uc3QgZGVsYXlUaW1lID0gdGltZUV4cGlyZSAtIDYwO1xuICAgICAgY29uc3Qgc2FmZURlbGF5ID0gTWF0aC5tYXgoMCwgZGVsYXlUaW1lKTtcblxuICAgICAgdGhpcy50aW1lclN1YnNjcmlwdGlvbiA9IHRpbWVyKHNhZmVEZWxheSAqIDEwMDApLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgIHRoaXMucHJvY2Vzc01lc3NhZ2Uoe3R5cGU6IElmcmFtZU1lc3NhZ2VUeXBlLlJFUVVJUkVfUkVGUkVTSF9UT0tFTn0gYXMgSWZyYW1lTWVzc2FnZSk7XG4gICAgICAgIHRoaXMuc3RvcFJlZnJlc2hlZFRva2VuU2NoZWR1bGUoKTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHNlbmRNZXNzYWdlUGFyZW50VG9JZnJhbWUobWVzc2FnZTogSWZyYW1lTWVzc2FnZSwgdGFyZ2V0OiBzdHJpbmcpe1xuICAgICAgaWYodGhpcy5pZnJhbWUpe1xuICAgICAgICB0aGlzLmlmcmFtZU1lc3NhZ2VTZXJ2aWNlLnNlbmRNZXNzYWdlVG9JZnJhbWUodGhpcy5pZnJhbWUsIG1lc3NhZ2UsIHRhcmdldCk7XG4gICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,11 +1,11 @@
1
1
  export class Domain {
2
2
  constructor() {
3
3
  this.defaultDomain = '';
4
- this.allowedOrigins = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com'];
4
+ this.allowedOrigins = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com', 'http://test.myvodds.com'];
5
5
  this.specialDomain = [];
6
6
  this.jetonDomain = '';
7
7
  this.ecopayzDomain = '';
8
8
  this.rapydDomain = 'https://sandboxcheckout.rapyd.net';
9
9
  }
10
10
  }
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL21vZGVsL2RvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sTUFBTTtJQU9mO1FBTkEsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsbUJBQWMsR0FBYSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixDQUFDLENBQUM7UUFDbEosa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsZ0JBQVcsR0FBVyxtQ0FBbUMsQ0FBQztJQUMzQyxDQUFDO0NBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERvbWFpbiB7XG4gICAgZGVmYXVsdERvbWFpbjogc3RyaW5nID0gJyc7XG4gICAgYWxsb3dlZE9yaWdpbnM6IHN0cmluZ1tdID0gWydodHRwOi8vbG9jYWxob3N0OjkwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJywgJ2h0dHA6Ly9lcHAuY29tJywgJ2h0dHBzOi8vZXBwLm15dm9kZHMuY29tJywgJ2h0dHBzOi8vbXl2b2Rkcy5jb20nXTtcbiAgICBzcGVjaWFsRG9tYWluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGpldG9uRG9tYWluOiBzdHJpbmcgPSAnJztcbiAgICBlY29wYXl6RG9tYWluOiBzdHJpbmcgPSAnJztcbiAgICByYXB5ZERvbWFpbjogc3RyaW5nID0gJ2h0dHBzOi8vc2FuZGJveGNoZWNrb3V0LnJhcHlkLm5ldCc7XG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZG9tYWluLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXBwLWxpYi9zcmMvbGliL21vZGVsL2RvbWFpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sTUFBTTtJQU9mO1FBTkEsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsbUJBQWMsR0FBYSxDQUFDLHVCQUF1QixFQUFFLHVCQUF1QixFQUFFLGdCQUFnQixFQUFFLHlCQUF5QixFQUFFLHFCQUFxQixFQUFFLHlCQUF5QixDQUFDLENBQUM7UUFDN0ssa0JBQWEsR0FBYSxFQUFFLENBQUM7UUFDN0IsZ0JBQVcsR0FBVyxFQUFFLENBQUM7UUFDekIsa0JBQWEsR0FBVyxFQUFFLENBQUM7UUFDM0IsZ0JBQVcsR0FBVyxtQ0FBbUMsQ0FBQztJQUMzQyxDQUFDO0NBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIERvbWFpbiB7XG4gICAgZGVmYXVsdERvbWFpbjogc3RyaW5nID0gJyc7XG4gICAgYWxsb3dlZE9yaWdpbnM6IHN0cmluZ1tdID0gWydodHRwOi8vbG9jYWxob3N0OjkwMDAnLCAnaHR0cDovL2xvY2FsaG9zdDo0MjAwJywgJ2h0dHA6Ly9lcHAuY29tJywgJ2h0dHBzOi8vZXBwLm15dm9kZHMuY29tJywgJ2h0dHBzOi8vbXl2b2Rkcy5jb20nLCAnaHR0cDovL3Rlc3QubXl2b2Rkcy5jb20nXTtcbiAgICBzcGVjaWFsRG9tYWluOiBzdHJpbmdbXSA9IFtdO1xuICAgIGpldG9uRG9tYWluOiBzdHJpbmcgPSAnJztcbiAgICBlY29wYXl6RG9tYWluOiBzdHJpbmcgPSAnJztcbiAgICByYXB5ZERvbWFpbjogc3RyaW5nID0gJ2h0dHBzOi8vc2FuZGJveGNoZWNrb3V0LnJhcHlkLm5ldCc7XG4gICAgY29uc3RydWN0b3IoKSB7fVxufVxuIl19
@@ -19,9 +19,10 @@ export var IframeMessageType;
19
19
  IframeMessageType[IframeMessageType["INIT_UTM_COOKIE"] = 16] = "INIT_UTM_COOKIE";
20
20
  IframeMessageType[IframeMessageType["TRACK_GA4"] = 17] = "TRACK_GA4";
21
21
  IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_REQUEST_CONFIRMATION"] = 18] = "OPEN_WITHDRAWAL_REQUEST_CONFIRMATION";
22
- IframeMessageType[IframeMessageType["IFRAME_RESIZE"] = 19] = "IFRAME_RESIZE";
23
- IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_SUBMITTED"] = 20] = "OPEN_WITHDRAWAL_SUBMITTED";
24
- IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_REQUEST_CONFIRMATION"] = 21] = "RESULT_WITHDRAWAL_REQUEST_CONFIRMATION";
25
- IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_SUBMITTED"] = 22] = "RESULT_WITHDRAWAL_SUBMITTED";
22
+ IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_REQUEST_SUBMITTED"] = 19] = "OPEN_WITHDRAWAL_REQUEST_SUBMITTED";
23
+ IframeMessageType[IframeMessageType["IFRAME_RESIZE"] = 20] = "IFRAME_RESIZE";
24
+ IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_SUBMITTED"] = 21] = "OPEN_WITHDRAWAL_SUBMITTED";
25
+ IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_REQUEST_CONFIRMATION"] = 22] = "RESULT_WITHDRAWAL_REQUEST_CONFIRMATION";
26
+ IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_SUBMITTED"] = 23] = "RESULT_WITHDRAWAL_SUBMITTED";
26
27
  })(IframeMessageType || (IframeMessageType = {}));
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLW1lc3NhZ2UtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL2xpYi9tb2RlbC9pZnJhbWUtbWVzc2FnZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQXdCWDtBQXhCRCxXQUFZLGlCQUFpQjtJQUN6QixtRkFBaUIsQ0FBQTtJQUNqQixpRkFBZ0IsQ0FBQTtJQUNoQix5RkFBb0IsQ0FBQTtJQUNwQix5RUFBWSxDQUFBO0lBQ1osMkVBQWEsQ0FBQTtJQUNiLGlGQUFnQixDQUFBO0lBQ2hCLCtFQUFlLENBQUE7SUFDZiw2REFBTSxDQUFBO0lBQ04sdUVBQVcsQ0FBQTtJQUNYLDJFQUFhLENBQUE7SUFDYiw0RkFBcUIsQ0FBQTtJQUNyQiw0RUFBYSxDQUFBO0lBQ2IsNEZBQXFCLENBQUE7SUFDckIsNEVBQWEsQ0FBQTtJQUNiLDRFQUFhLENBQUE7SUFDYiw4RUFBYyxDQUFBO0lBQ2QsZ0ZBQWUsQ0FBQTtJQUNmLG9FQUFTLENBQUE7SUFDVCwwSEFBb0MsQ0FBQTtJQUNwQyw0RUFBYSxDQUFBO0lBQ2Isb0dBQXlCLENBQUE7SUFDekIsOEhBQXNDLENBQUE7SUFDdEMsd0dBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQXhCVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBd0I1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIElmcmFtZU1lc3NhZ2VUeXBlIHtcbiAgICBPUEVOX1BBWU1FTlRfRk9STSxcbiAgICBQQVlNRU5UX0NBTExCQUNLLFxuICAgIFRISVJEX1BBUlRZX0NBTExCQUNLLFxuICAgIE9QRU5fREVQT1NJVCxcbiAgICBPUEVOX1dJVEhEUkFXLFxuICAgIE9QRU5fVFJBTlNBQ1RJT04sXG4gICAgQ0FOQ0VMX1dJVEhEUkFXLFxuICAgIFBBWU9VVCxcbiAgICBJTl9QUk9HUkVTUyxcbiAgICBDT05GSUdfVVBEQVRFLFxuICAgIE9QRU5fREVQT1NJVF9TVUJNSVRFRCxcbiAgICBSRUZSRVNIX1RPS0VOLFxuICAgIFJFUVVJUkVfUkVGUkVTSF9UT0tFTixcbiAgICBUT0tFTl9JTlZBTElELFxuICAgIFRPS0VOX0VYUElSRUQsXG4gICAgUkVGUkVTSF9JRlJBTUUsXG4gICAgSU5JVF9VVE1fQ09PS0lFLFxuICAgIFRSQUNLX0dBNCxcbiAgICBPUEVOX1dJVEhEUkFXQUxfUkVRVUVTVF9DT05GSVJNQVRJT04sXG4gICAgSUZSQU1FX1JFU0laRSxcbiAgICBPUEVOX1dJVEhEUkFXQUxfU1VCTUlUVEVELFxuICAgIFJFU1VMVF9XSVRIRFJBV0FMX1JFUVVFU1RfQ09ORklSTUFUSU9OLFxuICAgIFJFU1VMVF9XSVRIRFJBV0FMX1NVQk1JVFRFRFxufVxuIl19
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWZyYW1lLW1lc3NhZ2UtdHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VwcC1saWIvc3JjL2xpYi9tb2RlbC9pZnJhbWUtbWVzc2FnZS10eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sQ0FBTixJQUFZLGlCQXlCWDtBQXpCRCxXQUFZLGlCQUFpQjtJQUN6QixtRkFBaUIsQ0FBQTtJQUNqQixpRkFBZ0IsQ0FBQTtJQUNoQix5RkFBb0IsQ0FBQTtJQUNwQix5RUFBWSxDQUFBO0lBQ1osMkVBQWEsQ0FBQTtJQUNiLGlGQUFnQixDQUFBO0lBQ2hCLCtFQUFlLENBQUE7SUFDZiw2REFBTSxDQUFBO0lBQ04sdUVBQVcsQ0FBQTtJQUNYLDJFQUFhLENBQUE7SUFDYiw0RkFBcUIsQ0FBQTtJQUNyQiw0RUFBYSxDQUFBO0lBQ2IsNEZBQXFCLENBQUE7SUFDckIsNEVBQWEsQ0FBQTtJQUNiLDRFQUFhLENBQUE7SUFDYiw4RUFBYyxDQUFBO0lBQ2QsZ0ZBQWUsQ0FBQTtJQUNmLG9FQUFTLENBQUE7SUFDVCwwSEFBb0MsQ0FBQTtJQUNwQyxvSEFBaUMsQ0FBQTtJQUNqQyw0RUFBYSxDQUFBO0lBQ2Isb0dBQXlCLENBQUE7SUFDekIsOEhBQXNDLENBQUE7SUFDdEMsd0dBQTJCLENBQUE7QUFDL0IsQ0FBQyxFQXpCVyxpQkFBaUIsS0FBakIsaUJBQWlCLFFBeUI1QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIElmcmFtZU1lc3NhZ2VUeXBlIHtcbiAgICBPUEVOX1BBWU1FTlRfRk9STSxcbiAgICBQQVlNRU5UX0NBTExCQUNLLFxuICAgIFRISVJEX1BBUlRZX0NBTExCQUNLLFxuICAgIE9QRU5fREVQT1NJVCxcbiAgICBPUEVOX1dJVEhEUkFXLFxuICAgIE9QRU5fVFJBTlNBQ1RJT04sXG4gICAgQ0FOQ0VMX1dJVEhEUkFXLFxuICAgIFBBWU9VVCxcbiAgICBJTl9QUk9HUkVTUyxcbiAgICBDT05GSUdfVVBEQVRFLFxuICAgIE9QRU5fREVQT1NJVF9TVUJNSVRFRCxcbiAgICBSRUZSRVNIX1RPS0VOLFxuICAgIFJFUVVJUkVfUkVGUkVTSF9UT0tFTixcbiAgICBUT0tFTl9JTlZBTElELFxuICAgIFRPS0VOX0VYUElSRUQsXG4gICAgUkVGUkVTSF9JRlJBTUUsXG4gICAgSU5JVF9VVE1fQ09PS0lFLFxuICAgIFRSQUNLX0dBNCxcbiAgICBPUEVOX1dJVEhEUkFXQUxfUkVRVUVTVF9DT05GSVJNQVRJT04sXG4gICAgT1BFTl9XSVRIRFJBV0FMX1JFUVVFU1RfU1VCTUlUVEVELFxuICAgIElGUkFNRV9SRVNJWkUsXG4gICAgT1BFTl9XSVRIRFJBV0FMX1NVQk1JVFRFRCxcbiAgICBSRVNVTFRfV0lUSERSQVdBTF9SRVFVRVNUX0NPTkZJUk1BVElPTixcbiAgICBSRVNVTFRfV0lUSERSQVdBTF9TVUJNSVRURURcbn1cbiJdfQ==
@@ -96,7 +96,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
96
96
  class Domain {
97
97
  constructor() {
98
98
  this.defaultDomain = '';
99
- this.allowedOrigins = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com'];
99
+ this.allowedOrigins = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com', 'http://test.myvodds.com'];
100
100
  this.specialDomain = [];
101
101
  this.jetonDomain = '';
102
102
  this.ecopayzDomain = '';
@@ -189,10 +189,11 @@ var IframeMessageType;
189
189
  IframeMessageType[IframeMessageType["INIT_UTM_COOKIE"] = 16] = "INIT_UTM_COOKIE";
190
190
  IframeMessageType[IframeMessageType["TRACK_GA4"] = 17] = "TRACK_GA4";
191
191
  IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_REQUEST_CONFIRMATION"] = 18] = "OPEN_WITHDRAWAL_REQUEST_CONFIRMATION";
192
- IframeMessageType[IframeMessageType["IFRAME_RESIZE"] = 19] = "IFRAME_RESIZE";
193
- IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_SUBMITTED"] = 20] = "OPEN_WITHDRAWAL_SUBMITTED";
194
- IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_REQUEST_CONFIRMATION"] = 21] = "RESULT_WITHDRAWAL_REQUEST_CONFIRMATION";
195
- IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_SUBMITTED"] = 22] = "RESULT_WITHDRAWAL_SUBMITTED";
192
+ IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_REQUEST_SUBMITTED"] = 19] = "OPEN_WITHDRAWAL_REQUEST_SUBMITTED";
193
+ IframeMessageType[IframeMessageType["IFRAME_RESIZE"] = 20] = "IFRAME_RESIZE";
194
+ IframeMessageType[IframeMessageType["OPEN_WITHDRAWAL_SUBMITTED"] = 21] = "OPEN_WITHDRAWAL_SUBMITTED";
195
+ IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_REQUEST_CONFIRMATION"] = 22] = "RESULT_WITHDRAWAL_REQUEST_CONFIRMATION";
196
+ IframeMessageType[IframeMessageType["RESULT_WITHDRAWAL_SUBMITTED"] = 23] = "RESULT_WITHDRAWAL_SUBMITTED";
196
197
  })(IframeMessageType || (IframeMessageType = {}));
197
198
 
198
199
  class IframeMessageService {
@@ -668,7 +669,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
668
669
  class Payment {
669
670
  constructor(dialog) {
670
671
  this.dialog = dialog;
671
- this.iframes = new Map();
672
672
  this.cache = new Map();
673
673
  this.timer = new Timer(500); // 0.5s
674
674
  this.iframeMessageService = inject(IframeMessageService);
@@ -865,19 +865,11 @@ class Payment {
865
865
  this.stopRefreshedTokenSchedule();
866
866
  });
867
867
  }
868
- sendMessageParentToIframe(iframeType, message, target) {
869
- if (this.iframes.has(iframeType)) {
870
- this.iframeMessageService.sendMessageToIframe(this.iframes.get(iframeType), message, target);
868
+ sendMessageParentToIframe(message, target) {
869
+ if (this.iframe) {
870
+ this.iframeMessageService.sendMessageToIframe(this.iframe, message, target);
871
871
  }
872
872
  }
873
- putSubIframe(iframe, iframeType) {
874
- if (iframe == undefined)
875
- return;
876
- this.iframes.set(iframeType, iframe);
877
- }
878
- removeSubIframe(iframeType) {
879
- this.iframes.delete(iframeType);
880
- }
881
873
  }
882
874
 
883
875
  /*
@@ -1 +1 @@
1
- {"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/translation/epp-lib-loader.ts","../../../projects/epp-lib/src/lib/translation/epp-lib-translation.service.ts","../../../projects/epp-lib/src/lib/translation/epp-lib.providers.ts","../../../projects/epp-lib/src/lib/service/event-emitter.service.ts","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/lib/service/common-util.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/count-down-time.ts","../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/timer.ts","../../../projects/epp-lib/src/lib/pipe/transloco.pipe.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.html","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.ts","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.html","../../../projects/epp-lib/src/lib/component/payment.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { TranslocoLoader } from '@jsverse/transloco';\n\n@Injectable()\nexport class EppLibLoader implements TranslocoLoader {\n getTranslation(lang: string) {\n switch (lang) {\n case 'cs':\n return import('./i18n/cs.json');\n case 'ru':\n return import('./i18n/ru.json');\n case 'es':\n return import('./i18n/es.json');\n case 'en':\n default:\n return import('./i18n/en.json');\n }\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EppLibTranslationService {\n private transloco = inject(TranslocoService);\n\n setLanguage(lang: string): void {\n this.transloco.setActiveLang(lang);\n }\n\n getLanguage(): string {\n return this.transloco.getActiveLang();\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideTransloco, provideTranslocoScope } from '@jsverse/transloco';\nimport { EppLibLoader } from './epp-lib-loader';\n\nexport interface EppLibConfig {\n defaultLang: string;\n availableLangs: string[];\n}\n\nexport function provideEppLibTranslations(config: EppLibConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideTransloco({\n config: {\n availableLangs: config.availableLangs,\n defaultLang: config.defaultLang,\n reRenderOnLangChange: true,\n },\n loader: EppLibLoader,\n }),\n // provideTranslocoScope({\n // scope: 'epp-lib',\n // loader: {\n // en: () => import('./i18n/en.json'),\n // cs: () => import('./i18n/cs.json'),\n // es: () => import('./i18n/es.json'),\n // ru: () => import('./i18n/ru.json'),\n // },\n // })\n ]);\n}","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { IBroadcastEvent } from '../model/broadcast/ibroadcast-event';\n@Injectable({\n providedIn: 'root',\n})\nexport class EventEmitterService {\n private readonly eventBus: Subject<IBroadcastEvent> = new Subject<IBroadcastEvent>();\n\n broadcast(event: IBroadcastEvent) {\n this.eventBus.next(event);\n }\n\n getEventBus(): Subject<IBroadcastEvent> {\n return this.eventBus;\n }\n}\n","export class Domain {\n defaultDomain: string = '';\n allowedOrigins: string[] = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com'];\n specialDomain: string[] = [];\n jetonDomain: string = '';\n ecopayzDomain: string = '';\n rapydDomain: string = 'https://sandboxcheckout.rapyd.net';\n constructor() {}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IParam } from '../model/iparam';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VoddsHttpService {\n private httpClient = inject(HttpClient);\n\n postJson<T>(url: string, request: IParam): Observable<any> {\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\n return this.httpClient.post<T>(url, request.toJson(), { headers });\n }\n\n get<T>(url: string, param?: IParam): Observable<T> {\n if(param) {\n url = url + '?' + param.toFormUrlEncoded();\n }\n return this.httpClient.get<T>(url);\n }\n get2<T>(url: string, option?: any): Observable<T> {\n const observable: Observable<any> = new Observable(observer => {\n this.httpClient.get<any>(url, option).subscribe(\n res => {\n observer.next(res);\n },\n err => {\n observer.next(err);\n }\n );\n });\n return observable;\n }\n\n postFormUrlEncoded<T>(url: string, request: IParam): Observable<T> {\n let options = {\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\n };\n return this.httpClient.post<T>(url, request.toFormUrlEncoded(), options);\n }\n\n getMainDomain(url: string){\n let mainDomain = url;\n let domain = window.location.origin;\n if(domain.includes(\"promo.\")){\n domain = domain.replace(\"promo.\", \"\");\n mainDomain = domain + url;\n }\n\n return mainDomain;\n }\n\n getFullUrl(url: string, param: IParam): string {\n return `${url}?${param.toFormUrlEncoded()}`;\n }\n}\n","export const ApiRoute = {\n GET_DOMAIN: { url: \"/payment/getDomain\", method: \"get\" }\n}\n\n","export enum PaymentType {\n NA,\n JETON,\n ECOPAYZ,\n RAPYD\n}\n","export enum IframeMessageType {\n OPEN_PAYMENT_FORM,\n PAYMENT_CALLBACK,\n THIRD_PARTY_CALLBACK,\n OPEN_DEPOSIT,\n OPEN_WITHDRAW,\n OPEN_TRANSACTION,\n CANCEL_WITHDRAW,\n PAYOUT,\n IN_PROGRESS,\n CONFIG_UPDATE,\n OPEN_DEPOSIT_SUBMITED,\n REFRESH_TOKEN,\n REQUIRE_REFRESH_TOKEN,\n TOKEN_INVALID,\n TOKEN_EXPIRED,\n REFRESH_IFRAME,\n INIT_UTM_COOKIE,\n TRACK_GA4,\n OPEN_WITHDRAWAL_REQUEST_CONFIRMATION,\n IFRAME_RESIZE,\n OPEN_WITHDRAWAL_SUBMITTED,\n RESULT_WITHDRAWAL_REQUEST_CONFIRMATION,\n RESULT_WITHDRAWAL_SUBMITTED\n}\n","import { DestroyRef, ElementRef, inject, Injectable, NgZone } from '@angular/core';\nimport { Subject, Observable, filter, switchMap, timer, BehaviorSubject, Subscription } from 'rxjs';\nimport { IframeMessage } from '../model/iframe-message';\nimport { Domain } from '../model/domain';\nimport { VoddsHttpService } from './vodds-http.service';\nimport { ApiRoute } from '../api-route.const';\nimport { PaymentType } from '../model/payment-type';\nimport { IframeMessageType } from '../model/iframe-message-type';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IframeMessageService {\n private readonly messages$ = new Subject<IframeMessage>();\n\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\n private domain: Domain;\n private http = inject(VoddsHttpService);\n\n private readonly listener = (event: MessageEvent) => {\n if (event.data && event.data.target != \"metamask-inpage\") {\n console.log(\"listener: \", event);\n }\n if (!this.domain.allowedOrigins.includes(event.origin)) {\n if (this.isValidDomain(PaymentType.NA, event.origin)) {\n this.ngZone.run(() => {\n console.log(\"Process message from 3th party\");\n this.thirdPartyMessages$.next(event);\n });\n }\n return;\n }\n if (event.data && event.data.target == \"metamask-inpage\") {\n return;\n }\n console.log(\"Process message\");\n if (event.data && IframeMessageType[event.data.type]) {\n this.ngZone.run(() => {\n this.messages$.next(event.data);\n });\n }\n };\n\n constructor(private readonly ngZone: NgZone) {\n this.domain = new Domain();\n window.addEventListener('message', this.listener);\n }\n // Purpose only process the message come from allowed domain\n getDomain(host: string) {\n this.http.get((host ? host : '') + ApiRoute.GET_DOMAIN.url).subscribe({\n next: (resp: any) => {\n console.log(\"Test: \", resp.data);\n if (resp.data) {\n this.domain = resp.data;\n }\n },\n error: err => { }\n });\n }\n\n onMessages(): Observable<IframeMessage> {\n return this.messages$.asObservable();\n }\n onThirdPartyMessages(): Observable<MessageEvent> {\n return this.thirdPartyMessages$.asObservable();\n }\n\n ngOnDestroy(): void {\n window.removeEventListener('message', this.listener);\n this.messages$.complete();\n this.thirdPartyMessages$.complete();\n }\n\n /**\n * Skip for RAPYD - It will process when the dialog close\n */\n isValidDomain(paymentType: PaymentType, origin: string) {\n if (paymentType == undefined || paymentType == null) return false;\n switch(paymentType) {\n case PaymentType.JETON:\n return this.domain.jetonDomain == origin;\n case PaymentType.ECOPAYZ:\n return this.domain.ecopayzDomain == origin;\n // case PaymentType.RAPYD:\n // return this.domain.rapydDomain == origin;\n case PaymentType.NA:\n return this.domain.jetonDomain == origin\n // || this.domain.rapydDomain == origin\n || this.domain.ecopayzDomain == origin;\n default:\n return false;\n }\n\n }\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage, iframeUrl: string = '*') {\n if (iframe == undefined) return;\n iframe.nativeElement.contentWindow?.postMessage(\n message,\n iframeUrl\n );\n }\n}\n","export class CommonUtil {\n static isMobileTemplate(): boolean {\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\n return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|Mobile/i.test(userAgent.toLowerCase());\n }\n}\n","import { PaymentType } from \"./payment-type\";\n\nexport class Checkout {\n requestId: number = 0;\n paymentType: PaymentType = PaymentType.NA;\n url: string = '';\n expiration: number = 300;\n errorMessage: string = '';\n successMessage: string = '';\n callback: any;\n popup: any;\n iframeUrl: string = '*';\n\n setErrorMessage(errorMessage: string) {\n this.errorMessage = errorMessage;\n this.popup = undefined;\n }\n\n setCallback(callback: any) {\n this.successMessage = 'success';\n this.callback = callback;\n this.popup = undefined;\n }\n}\n","import { Subject, takeUntil, timer } from \"rxjs\";\n\nexport class CountDownTime {\n\tisStart: boolean = false;\n isStop: boolean = false;\n nextRound: boolean = false;\n initTime: number = 0;\n\ttimeLeft: number = 0;\n isCancel: boolean = false;\n private destroy$ = new Subject<void>();\n\n\tconstructor(initTime: number) {\n\t\tthis.initTime = initTime;\n\t}\n\n\tstart() {\n\t\tthis.isStart = true;\n\t\tthis.isStop = false;\n\t\tthis.timeLeft = this.initTime;\n\t}\n\n\tstop() {\n\t\tthis.isStart = false;\n\t\tthis.isStop = true;\n\t\tthis.timeLeft = 0;\n\t\tthis.nextRound = true;\n\t}\n\n\tdownTime() {\n\t\tthis.timeLeft = this.timeLeft - 1;\n\t}\n cancel() {\n this.isCancel = true;\n this.stop();\n }\n oberserableTimer(isStop: any) {\n timer(0, 1000)\n .pipe(takeUntil(this.destroy$))\n .subscribe(val => {\n if (this.timeLeft === 0) {\n if (this.isStart) {\n this.stop();\n }\n } else {\n this.downTime();\n }\n if (this.nextRound) {\n this.nextRound = false;\n if (isStop) {\n isStop.emit();\n }\n }\n });\n }\n onDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}","export class IParam {\n getMobileFlag(): boolean {\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\n }\n \n toJson(): string {\n return JSON.stringify(this);\n }\n\n toFormUrlEncoded(): string {\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\n }\n}\n","import { Checkout } from \"./checkout\";\n\nexport class Timer {\n interval: number = 0;\n maxTime: number = 120000; // 2 minute\n currentTime: number = 0;\n private popupTimer: ReturnType<typeof setInterval> | null = null;\n private popup: Window | null = null;\n\n constructor(interval: number, maxTime?: number) {\n this.interval = interval;\n if (maxTime) this.maxTime = maxTime;\n\t}\n oberserableTimer(data: any, callback?: Function) {\n this.popup = data.popup;\n this.popupTimer = setInterval(() => {\n if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {\n this.stopWatcher();\n // TODO Hit expire time\n return;\n }\n this.currentTime += this.interval;\n if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user\n console.log(\"Close popup\");\n this.stopWatcher();\n if (callback) {\n data.setErrorMessage(\"Payment popup is closed\");\n callback(data);\n }\n }\n }, this.interval);\n }\n stopWatcher() {\n if (this.popupTimer) {\n clearInterval(this.popupTimer);\n this.popupTimer = null;\n }\n }\n}","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Observable } from 'rxjs';\n\n@Pipe({\n name: 'vTransloco',\n standalone: true\n})\nexport class TranslocoPipe implements PipeTransform {\n private transloco = inject(TranslocoService);\n\n transform(key: string): Observable<string> {\n return this.transloco.translate(key, {}, 'epp-lib');\n // return this.transloco.selectTranslate(key, {}, 'epp-lib');\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'vodds-loader',\n standalone: true,\n imports: [],\n templateUrl: './vodds-loader.component.html',\n styleUrl: './vodds-loader.component.scss'\n})\nexport class VoddsLoaderComponent {\n @Input() message: string = '';\n @Input() showAjaxLoader: boolean = false;\n}\n","@if (showAjaxLoader) {\n <div class=\"load-indicator\">\n <img src=\"https://cdn.voddos.net/vodds/static/ajax-loader16.gif\">\n {{message != undefined ? message : ''}}\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { VoddsLoaderComponent } from '../vodds-loader/vodds-loader.component';\nimport { Checkout } from '../../model/checkout';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { provideTranslocoScope, TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { CommonUtil } from '../../service/common-util';\nimport { NgStyle } from '@angular/common';\n\ndeclare var RapydCheckoutToolkit: any;\n\n@Component({\n selector: 'v-rapyd',\n standalone: true,\n imports: [ NgStyle, VoddsLoaderComponent, MatDialogModule, MatProgressSpinnerModule, TranslocoModule ],\n templateUrl: './rapyd.component.html',\n styleUrl: './rapyd.component.scss'\n})\nexport class RapydComponent {\n @Input() checkout: Checkout | undefined;\n\tisOpen: boolean = false;\n checkoutToolKit: any = undefined;\n visaMasterTimeout: number = 300;\n visaMasterCheckoutId: string = '';\n visaMasterTimer: any; // interval\n displayTimer: string = \"00:00\";\n isShow: boolean = false;\n isLoading: boolean = true;\n errorMessage: string = \"\";\n defaultExpirationSec = 300; // 5mins\n checkoutFailureMessage: string = '';\n\n constructor(\n public dialogRef: MatDialogRef<any>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n // private translocoService: TranslocoService\n ) {\n this.visaMasterTimeout = data.expiration ?? data.expiration;\n this.visaMasterCheckoutId = data.checkoutUrl;\n }\n\n ngOnDestroy() {\n this.stopTimer();\n window.removeEventListener('onLoading', this.handleLoading);\n window.removeEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\n window.removeEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\n }\n ngAfterViewInit(): void {\n if (this.checkout) {\n this.visaMasterTimeout = this.checkout.expiration;\n this.visaMasterCheckoutId = this.checkout.url;\n }\n\n // this.translocoService.selectTranslate('mobile_payment_form_title').subscribe(buttonText => {\n // console.log('Async translations loaded:', buttonText);\n this.checkoutToolKit = this.isMobile() ? this.createCheckoutToolKitOnMobile(\"DEPOSIT\") : this.createCheckoutToolKitOnDesktop(\"DEPOSIT\");\n this.displayCheckout();\n window.addEventListener('onLoading', this.handleLoading);\n window.addEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\n window.addEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\n // });\n }\n\n createCheckoutToolKitOnDesktop(buttonText: string) {\n return new RapydCheckoutToolkit({\n pay_button_text: buttonText,\n id: this.visaMasterCheckoutId,\n wait_on_payment_redirect: true,\n\n style: {\n cardFields: {\n title: {\n color: '#80807F'\n },\n saveForFutureLabel:{\n color: '#80807F'\n }\n },\n input: {\n base: {\n fontWeight: \"400\",\n borderRadius: \"5px\",\n }\n },\n orderDetails: {\n title: {\n color: '#80807F'\n },\n totalLabel: {\n color: '#80807F'\n },\n totalValue: {\n color: '#80807F'\n }\n },\n submit: {\n base: {\n backgroundColor: \"#F48215\",\n color: \"#FFFFFF\",\n fontWeight: \"900\",\n borderRadius: \"5px\",\n border: \"none\",\n boxShadow: \"0px 0px 20px 0px #28303A33\",\n height: \"35px\",\n }\n }\n }\n });\n }\n\n createCheckoutToolKitOnMobile(buttonText: string) {\n return new RapydCheckoutToolkit({\n pay_button_text: buttonText,\n id: this.visaMasterCheckoutId,\n wait_on_payment_redirect: true,\n style: {\n input: {\n base: {\n fontWeight: \"400\",\n borderRadius: \"5px\",\n fontSize: \"12px\"\n },\n placeholder: {\n fontSize: \"12px !important\",\n fontWeight: \"700\",\n fontFamily: \"Manrope\",\n color: '#8C8C8C',\n },\n },\n cardFields: {\n title: {\n color: '#8C8C8C'\n },\n saveForFutureLabel: {\n color: '#8C8C8C',\n }\n },\n orderDetails: {\n title: {\n color: '#8C8C8C',\n },\n totalLabel: {\n color: '#8C8C8C',\n },\n totalValue: {\n color: '#8C8C8C',\n }\n },\n submit: {\n base: {\n backgroundColor: \"#28303A\",\n color: \"#FFFFFF\",\n fontWeight: \"900 !important\",\n borderRadius: \"12px\",\n boxShadow: \"0 0 8.57px #ff6b0066 !important\",\n height: \"40px\",\n width: \"100%\",\n fontSize: \"12px !important\",\n border: \"none\"\n }\n }\n }\n });\n }\n\n handleLoading = (event: any) => {\n if (!event.detail.loading && this.isLoading) {\n this.isShow = true;\n this.isLoading = false;\n this.startTimer();\n }\n }\n\n handleCheckoutPaymentSuccess = (event: any) => {\n this.closeDialog(false);\n }\n\n handleCheckoutPaymentFailure = (event: any) => {\n this.stopTimer();\n this.isShow = false;\n this.checkoutFailureMessage = event.detail.message;\n }\n\n closeDialog(isCloseCheckout = true) {\n this.stopTimer();\n if(this.checkoutToolKit && isCloseCheckout) {\n try {\n this.checkoutToolKit.closeCheckout();\n } catch(err) {\n console.error(\"Error when closing checkout\", err);\n }\n }\n this.checkoutToolKit = undefined;\n this.isShow = false;\n this.dialogRef.close(this.checkoutFailureMessage);\n\t};\n\n startTimer() {\n if(this.visaMasterTimer) this.stopTimer();\n this.visaMasterTimer = setInterval(() => {\n if(this.visaMasterTimeout <= 0) {\n this.closeDialog();\n return;\n }\n this.visaMasterTimeout--;\n this.displayTimer = `${this.pad(Math.floor(this.visaMasterTimeout / 60))}:${this.pad(this.visaMasterTimeout % 60)}`;\n }, 1000);\n }\n\n stopTimer() {\n clearInterval(this.visaMasterTimer);\n }\n\n pad(number: number) {\n return `${number < 10 ? '0' : ''}${number}`;\n }\n\n displayCheckout() {\n if(document.getElementById(\"rapyd-checkout\")) {\n this.checkoutToolKit.displayCheckout();\n } else {\n setTimeout(() => {\n this.displayCheckout();\n }, 10);\n }\n }\n\n isMobile() {\n return CommonUtil.isMobileTemplate();\n }\n}\n","@if(isMobile()) {\n <div class=\"v-dialog mobile\">\n <div class=\"v-flex-center-between header text-black-cs\">\n <div class=\"v-flex-center-none\">\n <span class=\"ml-8\">{{ 'mobile_payment_form_title' | transloco }}</span>\n </div>\n <div class=\"v-flex-center-between mr-8\">\n <div (click)=\"closeDialog()\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M11.0121 12.3959L16.6455 18.0293C16.8333 18.2107 17.0849 18.3111 17.346 18.3088C17.6071 18.3065 17.8569 18.2018 18.0415 18.0172C18.2261 17.8325 18.3309 17.5828 18.3331 17.3217C18.3354 17.0606 18.235 16.809 18.0536 16.6212L12.4202 10.9878L18.0536 5.35431C18.235 5.16649 18.3354 4.91494 18.3331 4.65384C18.3309 4.39273 18.2261 4.14297 18.0415 3.95833C17.8569 3.77369 17.6071 3.66896 17.346 3.66669C17.0849 3.66443 16.8333 3.7648 16.6455 3.9462L11.0121 9.57964L5.37863 3.9462C5.18997 3.76928 4.93988 3.67271 4.68128 3.67691C4.42268 3.68111 4.17585 3.78575 3.99304 3.9687C3.81022 4.15165 3.70575 4.39854 3.70173 4.65715C3.69772 4.91575 3.79447 5.16577 3.97152 5.35431L9.60396 10.9878L3.97052 16.6212C3.87541 16.7131 3.79954 16.8229 3.74735 16.9444C3.69516 17.0659 3.66769 17.1966 3.66654 17.3288C3.66539 17.4611 3.69059 17.5922 3.74066 17.7146C3.79073 17.837 3.86468 17.9481 3.95818 18.0416C4.05168 18.1352 4.16287 18.2091 4.28525 18.2592C4.40764 18.3092 4.53877 18.3344 4.67099 18.3333C4.80322 18.3321 4.93389 18.3047 5.05539 18.2525C5.17688 18.2003 5.28677 18.1244 5.37863 18.0293L11.0121 12.3959Z\" />\n </svg>\n </div>\n </div>\n </div>\n @if (isLoading) {\n <div class=\"v-spinner\">\n <mat-spinner diameter=\"50\" strokeWidth=\"4\"></mat-spinner>\n </div>\n }\n <div class=\"v-content\" id=\"deposit-id\">\n @if (!isLoading && !isShow) {\n <div class=\"visa-card-message\">\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\n </div>\n }\n <div class=\"vodds-checkout-deposit\">\n @if(!isLoading && isShow) {\n <div class=\"vodds-checkout-expiration\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\n fill=\"#8C8C8C\" />\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\" transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82843 1.06067)\"\n stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\n </svg>\n <span>{{ 'visaCardTimeout' | transloco }} <span class=\"countdown-timer\">{{displayTimer}}</span></span>\n </div>\n }\n <div id=\"rapyd-checkout\" class=\"iframe-wrapper\"></div>\n </div>\n </div>\n </div>\n} @else {\n <div id=\"visa-card\">\n <div class=\"top\">\n <h2>{{ 'payment_form_title' | transloco }}</h2>\n <svg class=\"clsbtn my-account\" (click)=\"closeDialog()\" width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.89214 0L5.5 4.39214L1.10786 0L0 1.10786L4.39214 5.5L0 9.89214L1.10786 11L5.5 6.60786L9.89214 11L11 9.89214L6.60786 5.5L11 1.10786L9.89214 0Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div class=\"flex-center\">\n <vodds-loader [showAjaxLoader]=\"isLoading\"></vodds-loader>\n </div>\n @if (!isLoading && !isShow) {\n <div class=\"visa-card-message\">\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\n </div>\n }\n <div class=\"visa-card-form\" [style]=\"{display: isShow ? 'flex' : 'none'}\">\n <div class=\"timer\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\n fill=\"#B5B5B5\" />\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#B5B5B5\" stroke-width=\"1.5\" />\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\"\n transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82861 1.06067)\" stroke=\"#B5B5B5\"\n stroke-width=\"1.5\" />\n </svg>\n <span class=\"label\">&nbsp;{{ 'visaCardTimeout' | transloco }}&nbsp;</span> <span class=\"display-time\">\n {{displayTimer}}</span>\n </div>\n <div id=\"rapyd-checkout\"></div>\n </div>\n </div>\n}","import { ElementRef, inject } from '@angular/core';\nimport { IframeMessageService } from '../service/iframe-message.service';\nimport { IframeMessageType } from '../model/iframe-message-type';\nimport { Checkout } from '../model/checkout';\nimport { IframeMessage } from '../model/iframe-message';\nimport { Timer } from '../model/timer';\nimport { PaymentType } from '../model/payment-type';\nimport { RapydComponent } from './rapyd/rapyd.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Subscription, timer } from 'rxjs';\n\nexport class Payment {\n private iframes: Map<IframeMessageType, ElementRef<HTMLIFrameElement>> = new Map();\n cache: Map<number, Checkout> = new Map();\n iframe: ElementRef<HTMLIFrameElement> | undefined;//Set from the component\n timer: Timer = new Timer(500); // 0.5s\n result: Checkout | undefined;\n tokenExpire: number | undefined;\n token: string | undefined;\n private iframeMessageService = inject(IframeMessageService);\n private rapydScriptLoaded = false;\n private timerSubscription?: Subscription;\n constructor(public dialog: MatDialog) {\n /**\n * Listen OPEN_PAYMENT_FORM message to open 3th party page\n */\n this.iframeMessageService.onMessages().subscribe(message => {\n console.log('Received from iframe:', message);\n if (!message || message.type == undefined) return;\n switch (message.type) {\n case IframeMessageType.OPEN_PAYMENT_FORM:\n const checkout = Object.assign(new Checkout(), message.payload);\n if (!checkout || this.cache.get(checkout.requestId)) {\n return;\n }\n // if (this.cache.size > 0) {\n // this.cache.clear();\n // //TODO clear the current popup\n // }\n switch (checkout.paymentType) {\n case PaymentType.JETON:\n case PaymentType.ECOPAYZ:\n this.openWindow(checkout);\n break;\n case PaymentType.RAPYD:\n this.openVisaCheckout(checkout);\n break;\n default:\n }\n break;\n case IframeMessageType.THIRD_PARTY_CALLBACK:\n const checkout1 = new Checkout();\n checkout1.setCallback(message.payload);\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout1);\n break;\n case IframeMessageType.PAYMENT_CALLBACK:\n const checkout2 = new Checkout();\n if (message.payload) {\n checkout2.setErrorMessage(message.payload as string);\n } else {\n checkout2.setCallback(message.payload);\n }\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout2);\n break\n case IframeMessageType.OPEN_DEPOSIT:\n case IframeMessageType.OPEN_TRANSACTION:\n case IframeMessageType.OPEN_WITHDRAW:\n case IframeMessageType.CANCEL_WITHDRAW:\n case IframeMessageType.PAYOUT:\n case IframeMessageType.IN_PROGRESS:\n case IframeMessageType.REFRESH_TOKEN:\n case IframeMessageType.REFRESH_IFRAME:\n case IframeMessageType.REQUIRE_REFRESH_TOKEN:\n case IframeMessageType.TRACK_GA4:\n case IframeMessageType.IFRAME_RESIZE:\n case IframeMessageType.OPEN_WITHDRAWAL_REQUEST_CONFIRMATION:\n case IframeMessageType.OPEN_WITHDRAWAL_SUBMITTED:\n case IframeMessageType.RESULT_WITHDRAWAL_REQUEST_CONFIRMATION:\n this.processMessage(message);\n break;\n }\n\n });\n }\n getDomain(host: string) {\n if (!host) return;\n this.iframeMessageService.getDomain(host);\n }\n processMessage(message: IframeMessage) {\n //TODO\n }\n\n /**\n * Open 3th party page on the popup windown or new tab\n */\n openWindow(checkout: Checkout) {\n this.cache.set(checkout.requestId, checkout);\n console.log(\"Open windown: \", this.cache);\n const width = 470;\n const height = 550;\n var left = Math.max(0, (screen.width - width) / 2),\n top = Math.max(0, (screen.height - height) / 2);\n // var popup = window.open(url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\n let popup = window.open(checkout.url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\n if (!popup) {\n checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';\n this.sendMessageToIframe(checkout);\n this.cache.delete(checkout.requestId);\n return;\n }\n checkout.popup = popup;\n popup.focus();\n this.onThirdPartyMessage(checkout);\n this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));\n }\n async openVisaCheckout(checkout: Checkout) {\n try {\n await this.load();\n this.dialog.open(RapydComponent, {\n data: {\n checkoutUrl: checkout.url,\n expiration: checkout.expiration\n },\n width: '500px',\n maxWidth: '90vw'\n }).afterClosed().subscribe(checkoutFailureMessage => {\n checkout.errorMessage = checkoutFailureMessage;\n this.sendMessageToIframe(checkout);\n })\n } catch (error) {\n console.error(error);\n }\n }\n load(): Promise<void> {\n if (this.rapydScriptLoaded) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n\n script.src = 'https://sandboxcheckouttoolkit.rapyd.net';\n script.async = true;\n\n script.onload = () => {\n this.rapydScriptLoaded = true;\n resolve();\n };\n\n script.onerror = () => {\n reject(new Error('Failed to load Rapyd Checkout Toolkit'));\n };\n\n document.head.appendChild(script);\n });\n }\n\n /**\n * Listen message or action from 3th party on the popup\n * Skip for RAPYD - It will process when the dialog close\n */\n onThirdPartyMessage(checkout: Checkout) {\n this.iframeMessageService.onThirdPartyMessages().subscribe(event => {\n if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {\n switch (checkout.paymentType) {\n case PaymentType.NA:\n break;\n case PaymentType.JETON:\n case PaymentType.ECOPAYZ:\n\n }\n console.log('Received from 3th party:', event.data);\n checkout.setCallback(event.data);\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout);\n }\n });\n }\n\n /**\n * send the message from the parent to the iframe\n */\n sendMessageToIframe(checkout: Checkout) {\n console.log(\"send the message from the parent into the iframe: \", checkout);\n if (this.iframe == undefined) return;\n let message: IframeMessage = {\n type: IframeMessageType.PAYMENT_CALLBACK,\n payload: checkout\n }\n this.iframeMessageService.sendMessageToIframe(this.iframe, message, checkout.iframeUrl);\n this.cache.delete(checkout.requestId);\n }\n\n removePaymentIframe() {\n //TODO\n this.iframe = undefined;\n this.token = undefined;\n this.tokenExpire = undefined;\n this.stopRefreshedTokenSchedule();\n }\n\n setConfig(tokenExpireAt: number, token: string){\n this.token = token;\n this.tokenExpire = tokenExpireAt\n this.startRefreshedTokenSchedule(this.tokenExpire);\n }\n\n stopRefreshedTokenSchedule(): void {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n this.timerSubscription = undefined;\n }\n }\n\n\n startRefreshedTokenSchedule(timeExpire: number): void {\n this.stopRefreshedTokenSchedule();\n\n const delayTime = timeExpire - 60;\n const safeDelay = Math.max(0, delayTime);\n\n this.timerSubscription = timer(safeDelay * 1000).subscribe(() => {\n this.processMessage({type: IframeMessageType.REQUIRE_REFRESH_TOKEN} as IframeMessage);\n this.stopRefreshedTokenSchedule();\n });\n }\n\n sendMessageParentToIframe(iframeType: IframeMessageType, message: IframeMessage, target: string){\n if(this.iframes.has(iframeType)){\n this.iframeMessageService.sendMessageToIframe(this.iframes.get(iframeType)!, message, target);\n }\n }\n\n putSubIframe(iframe: ElementRef<HTMLIFrameElement>, iframeType: IframeMessageType){\n if (iframe == undefined) return;\n this.iframes.set(iframeType, iframe);\n }\n\n removeSubIframe(iframeType: IframeMessageType) {\n this.iframes.delete(iframeType);\n }\n}\n","/*\n * Public API Surface of epp-lib\n */\nexport * from './lib/translation';\n\nexport * from './lib/service';\nexport * from './lib/model';\nexport * from './lib/pipe';\nexport * from './lib/component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"epp-lib.mjs","sources":["../../../projects/epp-lib/src/lib/translation/epp-lib-loader.ts","../../../projects/epp-lib/src/lib/translation/epp-lib-translation.service.ts","../../../projects/epp-lib/src/lib/translation/epp-lib.providers.ts","../../../projects/epp-lib/src/lib/service/event-emitter.service.ts","../../../projects/epp-lib/src/lib/model/domain.ts","../../../projects/epp-lib/src/lib/service/vodds-http.service.ts","../../../projects/epp-lib/src/lib/api-route.const.ts","../../../projects/epp-lib/src/lib/model/payment-type.ts","../../../projects/epp-lib/src/lib/model/iframe-message-type.ts","../../../projects/epp-lib/src/lib/service/iframe-message.service.ts","../../../projects/epp-lib/src/lib/service/common-util.ts","../../../projects/epp-lib/src/lib/model/checkout.ts","../../../projects/epp-lib/src/lib/model/count-down-time.ts","../../../projects/epp-lib/src/lib/model/iparam.ts","../../../projects/epp-lib/src/lib/model/timer.ts","../../../projects/epp-lib/src/lib/pipe/transloco.pipe.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.ts","../../../projects/epp-lib/src/lib/component/vodds-loader/vodds-loader.component.html","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.ts","../../../projects/epp-lib/src/lib/component/rapyd/rapyd.component.html","../../../projects/epp-lib/src/lib/component/payment.ts","../../../projects/epp-lib/src/public-api.ts","../../../projects/epp-lib/src/epp-lib.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { TranslocoLoader } from '@jsverse/transloco';\n\n@Injectable()\nexport class EppLibLoader implements TranslocoLoader {\n getTranslation(lang: string) {\n switch (lang) {\n case 'cs':\n return import('./i18n/cs.json');\n case 'ru':\n return import('./i18n/ru.json');\n case 'es':\n return import('./i18n/es.json');\n case 'en':\n default:\n return import('./i18n/en.json');\n }\n }\n}","import { inject, Injectable } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class EppLibTranslationService {\n private transloco = inject(TranslocoService);\n\n setLanguage(lang: string): void {\n this.transloco.setActiveLang(lang);\n }\n\n getLanguage(): string {\n return this.transloco.getActiveLang();\n }\n}\n","import { EnvironmentProviders, makeEnvironmentProviders } from '@angular/core';\nimport { provideTransloco, provideTranslocoScope } from '@jsverse/transloco';\nimport { EppLibLoader } from './epp-lib-loader';\n\nexport interface EppLibConfig {\n defaultLang: string;\n availableLangs: string[];\n}\n\nexport function provideEppLibTranslations(config: EppLibConfig): EnvironmentProviders {\n return makeEnvironmentProviders([\n provideTransloco({\n config: {\n availableLangs: config.availableLangs,\n defaultLang: config.defaultLang,\n reRenderOnLangChange: true,\n },\n loader: EppLibLoader,\n }),\n // provideTranslocoScope({\n // scope: 'epp-lib',\n // loader: {\n // en: () => import('./i18n/en.json'),\n // cs: () => import('./i18n/cs.json'),\n // es: () => import('./i18n/es.json'),\n // ru: () => import('./i18n/ru.json'),\n // },\n // })\n ]);\n}","import { Injectable } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { IBroadcastEvent } from '../model/broadcast/ibroadcast-event';\n@Injectable({\n providedIn: 'root',\n})\nexport class EventEmitterService {\n private readonly eventBus: Subject<IBroadcastEvent> = new Subject<IBroadcastEvent>();\n\n broadcast(event: IBroadcastEvent) {\n this.eventBus.next(event);\n }\n\n getEventBus(): Subject<IBroadcastEvent> {\n return this.eventBus;\n }\n}\n","export class Domain {\n defaultDomain: string = '';\n allowedOrigins: string[] = ['http://localhost:9000', 'http://localhost:4200', 'http://epp.com', 'https://epp.myvodds.com', 'https://myvodds.com', 'http://test.myvodds.com'];\n specialDomain: string[] = [];\n jetonDomain: string = '';\n ecopayzDomain: string = '';\n rapydDomain: string = 'https://sandboxcheckout.rapyd.net';\n constructor() {}\n}\n","import { inject, Injectable } from '@angular/core';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport { IParam } from '../model/iparam';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class VoddsHttpService {\n private httpClient = inject(HttpClient);\n\n postJson<T>(url: string, request: IParam): Observable<any> {\n const headers = new HttpHeaders({ 'Content-type': 'application/json' });\n return this.httpClient.post<T>(url, request.toJson(), { headers });\n }\n\n get<T>(url: string, param?: IParam): Observable<T> {\n if(param) {\n url = url + '?' + param.toFormUrlEncoded();\n }\n return this.httpClient.get<T>(url);\n }\n get2<T>(url: string, option?: any): Observable<T> {\n const observable: Observable<any> = new Observable(observer => {\n this.httpClient.get<any>(url, option).subscribe(\n res => {\n observer.next(res);\n },\n err => {\n observer.next(err);\n }\n );\n });\n return observable;\n }\n\n postFormUrlEncoded<T>(url: string, request: IParam): Observable<T> {\n let options = {\n headers: new HttpHeaders().set('Content-Type', 'application/x-www-form-urlencoded')\n };\n return this.httpClient.post<T>(url, request.toFormUrlEncoded(), options);\n }\n\n getMainDomain(url: string){\n let mainDomain = url;\n let domain = window.location.origin;\n if(domain.includes(\"promo.\")){\n domain = domain.replace(\"promo.\", \"\");\n mainDomain = domain + url;\n }\n\n return mainDomain;\n }\n\n getFullUrl(url: string, param: IParam): string {\n return `${url}?${param.toFormUrlEncoded()}`;\n }\n}\n","export const ApiRoute = {\n GET_DOMAIN: { url: \"/payment/getDomain\", method: \"get\" }\n}\n\n","export enum PaymentType {\n NA,\n JETON,\n ECOPAYZ,\n RAPYD\n}\n","export enum IframeMessageType {\n OPEN_PAYMENT_FORM,\n PAYMENT_CALLBACK,\n THIRD_PARTY_CALLBACK,\n OPEN_DEPOSIT,\n OPEN_WITHDRAW,\n OPEN_TRANSACTION,\n CANCEL_WITHDRAW,\n PAYOUT,\n IN_PROGRESS,\n CONFIG_UPDATE,\n OPEN_DEPOSIT_SUBMITED,\n REFRESH_TOKEN,\n REQUIRE_REFRESH_TOKEN,\n TOKEN_INVALID,\n TOKEN_EXPIRED,\n REFRESH_IFRAME,\n INIT_UTM_COOKIE,\n TRACK_GA4,\n OPEN_WITHDRAWAL_REQUEST_CONFIRMATION,\n OPEN_WITHDRAWAL_REQUEST_SUBMITTED,\n IFRAME_RESIZE,\n OPEN_WITHDRAWAL_SUBMITTED,\n RESULT_WITHDRAWAL_REQUEST_CONFIRMATION,\n RESULT_WITHDRAWAL_SUBMITTED\n}\n","import { DestroyRef, ElementRef, inject, Injectable, NgZone } from '@angular/core';\nimport { Subject, Observable, filter, switchMap, timer, BehaviorSubject, Subscription } from 'rxjs';\nimport { IframeMessage } from '../model/iframe-message';\nimport { Domain } from '../model/domain';\nimport { VoddsHttpService } from './vodds-http.service';\nimport { ApiRoute } from '../api-route.const';\nimport { PaymentType } from '../model/payment-type';\nimport { IframeMessageType } from '../model/iframe-message-type';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class IframeMessageService {\n private readonly messages$ = new Subject<IframeMessage>();\n\n private readonly thirdPartyMessages$ = new Subject<MessageEvent>();\n private domain: Domain;\n private http = inject(VoddsHttpService);\n\n private readonly listener = (event: MessageEvent) => {\n if (event.data && event.data.target != \"metamask-inpage\") {\n console.log(\"listener: \", event);\n }\n if (!this.domain.allowedOrigins.includes(event.origin)) {\n if (this.isValidDomain(PaymentType.NA, event.origin)) {\n this.ngZone.run(() => {\n console.log(\"Process message from 3th party\");\n this.thirdPartyMessages$.next(event);\n });\n }\n return;\n }\n if (event.data && event.data.target == \"metamask-inpage\") {\n return;\n }\n console.log(\"Process message\");\n if (event.data && IframeMessageType[event.data.type]) {\n this.ngZone.run(() => {\n this.messages$.next(event.data);\n });\n }\n };\n\n constructor(private readonly ngZone: NgZone) {\n this.domain = new Domain();\n window.addEventListener('message', this.listener);\n }\n // Purpose only process the message come from allowed domain\n getDomain(host: string) {\n this.http.get((host ? host : '') + ApiRoute.GET_DOMAIN.url).subscribe({\n next: (resp: any) => {\n console.log(\"Test: \", resp.data);\n if (resp.data) {\n this.domain = resp.data;\n }\n },\n error: err => { }\n });\n }\n\n onMessages(): Observable<IframeMessage> {\n return this.messages$.asObservable();\n }\n onThirdPartyMessages(): Observable<MessageEvent> {\n return this.thirdPartyMessages$.asObservable();\n }\n\n ngOnDestroy(): void {\n window.removeEventListener('message', this.listener);\n this.messages$.complete();\n this.thirdPartyMessages$.complete();\n }\n\n /**\n * Skip for RAPYD - It will process when the dialog close\n */\n isValidDomain(paymentType: PaymentType, origin: string) {\n if (paymentType == undefined || paymentType == null) return false;\n switch(paymentType) {\n case PaymentType.JETON:\n return this.domain.jetonDomain == origin;\n case PaymentType.ECOPAYZ:\n return this.domain.ecopayzDomain == origin;\n // case PaymentType.RAPYD:\n // return this.domain.rapydDomain == origin;\n case PaymentType.NA:\n return this.domain.jetonDomain == origin\n // || this.domain.rapydDomain == origin\n || this.domain.ecopayzDomain == origin;\n default:\n return false;\n }\n\n }\n sendMessageToIframe(iframe: ElementRef<HTMLIFrameElement>, message: IframeMessage, iframeUrl: string = '*') {\n if (iframe == undefined) return;\n iframe.nativeElement.contentWindow?.postMessage(\n message,\n iframeUrl\n );\n }\n}\n","export class CommonUtil {\n static isMobileTemplate(): boolean {\n const userAgent = navigator.userAgent || navigator.vendor || (window as any).opera;\n return /android|webos|iphone|ipad|ipod|blackberry|iemobile|opera mini|Mobile/i.test(userAgent.toLowerCase());\n }\n}\n","import { PaymentType } from \"./payment-type\";\n\nexport class Checkout {\n requestId: number = 0;\n paymentType: PaymentType = PaymentType.NA;\n url: string = '';\n expiration: number = 300;\n errorMessage: string = '';\n successMessage: string = '';\n callback: any;\n popup: any;\n iframeUrl: string = '*';\n\n setErrorMessage(errorMessage: string) {\n this.errorMessage = errorMessage;\n this.popup = undefined;\n }\n\n setCallback(callback: any) {\n this.successMessage = 'success';\n this.callback = callback;\n this.popup = undefined;\n }\n}\n","import { Subject, takeUntil, timer } from \"rxjs\";\n\nexport class CountDownTime {\n\tisStart: boolean = false;\n isStop: boolean = false;\n nextRound: boolean = false;\n initTime: number = 0;\n\ttimeLeft: number = 0;\n isCancel: boolean = false;\n private destroy$ = new Subject<void>();\n\n\tconstructor(initTime: number) {\n\t\tthis.initTime = initTime;\n\t}\n\n\tstart() {\n\t\tthis.isStart = true;\n\t\tthis.isStop = false;\n\t\tthis.timeLeft = this.initTime;\n\t}\n\n\tstop() {\n\t\tthis.isStart = false;\n\t\tthis.isStop = true;\n\t\tthis.timeLeft = 0;\n\t\tthis.nextRound = true;\n\t}\n\n\tdownTime() {\n\t\tthis.timeLeft = this.timeLeft - 1;\n\t}\n cancel() {\n this.isCancel = true;\n this.stop();\n }\n oberserableTimer(isStop: any) {\n timer(0, 1000)\n .pipe(takeUntil(this.destroy$))\n .subscribe(val => {\n if (this.timeLeft === 0) {\n if (this.isStart) {\n this.stop();\n }\n } else {\n this.downTime();\n }\n if (this.nextRound) {\n this.nextRound = false;\n if (isStop) {\n isStop.emit();\n }\n }\n });\n }\n onDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}","export class IParam {\n getMobileFlag(): boolean {\n return /android|mobi/i.test(navigator.userAgent.toLowerCase());\n }\n \n toJson(): string {\n return JSON.stringify(this);\n }\n\n toFormUrlEncoded(): string {\n return new URLSearchParams(Object.entries(this).map(([key, value]) => [key, String(value)])).toString();\n }\n}\n","import { Checkout } from \"./checkout\";\n\nexport class Timer {\n interval: number = 0;\n maxTime: number = 120000; // 2 minute\n currentTime: number = 0;\n private popupTimer: ReturnType<typeof setInterval> | null = null;\n private popup: Window | null = null;\n\n constructor(interval: number, maxTime?: number) {\n this.interval = interval;\n if (maxTime) this.maxTime = maxTime;\n\t}\n oberserableTimer(data: any, callback?: Function) {\n this.popup = data.popup;\n this.popupTimer = setInterval(() => {\n if ((this.maxTime > 0 && this.currentTime >= this.maxTime) || !data) {\n this.stopWatcher();\n // TODO Hit expire time\n return;\n }\n this.currentTime += this.interval;\n if (data instanceof Checkout && (!data.popup || (data.popup && data.popup.closed))) { // Handle detect close popup by the user\n console.log(\"Close popup\");\n this.stopWatcher();\n if (callback) {\n data.setErrorMessage(\"Payment popup is closed\");\n callback(data);\n }\n }\n }, this.interval);\n }\n stopWatcher() {\n if (this.popupTimer) {\n clearInterval(this.popupTimer);\n this.popupTimer = null;\n }\n }\n}","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { TranslocoService } from '@jsverse/transloco';\nimport { Observable } from 'rxjs';\n\n@Pipe({\n name: 'vTransloco',\n standalone: true\n})\nexport class TranslocoPipe implements PipeTransform {\n private transloco = inject(TranslocoService);\n\n transform(key: string): Observable<string> {\n return this.transloco.translate(key, {}, 'epp-lib');\n // return this.transloco.selectTranslate(key, {}, 'epp-lib');\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'vodds-loader',\n standalone: true,\n imports: [],\n templateUrl: './vodds-loader.component.html',\n styleUrl: './vodds-loader.component.scss'\n})\nexport class VoddsLoaderComponent {\n @Input() message: string = '';\n @Input() showAjaxLoader: boolean = false;\n}\n","@if (showAjaxLoader) {\n <div class=\"load-indicator\">\n <img src=\"https://cdn.voddos.net/vodds/static/ajax-loader16.gif\">\n {{message != undefined ? message : ''}}\n </div>\n}\n","import { Component, Inject, Input } from '@angular/core';\nimport { VoddsLoaderComponent } from '../vodds-loader/vodds-loader.component';\nimport { Checkout } from '../../model/checkout';\nimport { MAT_DIALOG_DATA, MatDialogModule, MatDialogRef } from '@angular/material/dialog';\nimport { MatProgressSpinnerModule } from '@angular/material/progress-spinner';\nimport { provideTranslocoScope, TranslocoModule, TranslocoService } from '@jsverse/transloco';\nimport { CommonUtil } from '../../service/common-util';\nimport { NgStyle } from '@angular/common';\n\ndeclare var RapydCheckoutToolkit: any;\n\n@Component({\n selector: 'v-rapyd',\n standalone: true,\n imports: [ NgStyle, VoddsLoaderComponent, MatDialogModule, MatProgressSpinnerModule, TranslocoModule ],\n templateUrl: './rapyd.component.html',\n styleUrl: './rapyd.component.scss'\n})\nexport class RapydComponent {\n @Input() checkout: Checkout | undefined;\n\tisOpen: boolean = false;\n checkoutToolKit: any = undefined;\n visaMasterTimeout: number = 300;\n visaMasterCheckoutId: string = '';\n visaMasterTimer: any; // interval\n displayTimer: string = \"00:00\";\n isShow: boolean = false;\n isLoading: boolean = true;\n errorMessage: string = \"\";\n defaultExpirationSec = 300; // 5mins\n checkoutFailureMessage: string = '';\n\n constructor(\n public dialogRef: MatDialogRef<any>,\n @Inject(MAT_DIALOG_DATA) public data: any,\n // private translocoService: TranslocoService\n ) {\n this.visaMasterTimeout = data.expiration ?? data.expiration;\n this.visaMasterCheckoutId = data.checkoutUrl;\n }\n\n ngOnDestroy() {\n this.stopTimer();\n window.removeEventListener('onLoading', this.handleLoading);\n window.removeEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\n window.removeEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\n }\n ngAfterViewInit(): void {\n if (this.checkout) {\n this.visaMasterTimeout = this.checkout.expiration;\n this.visaMasterCheckoutId = this.checkout.url;\n }\n\n // this.translocoService.selectTranslate('mobile_payment_form_title').subscribe(buttonText => {\n // console.log('Async translations loaded:', buttonText);\n this.checkoutToolKit = this.isMobile() ? this.createCheckoutToolKitOnMobile(\"DEPOSIT\") : this.createCheckoutToolKitOnDesktop(\"DEPOSIT\");\n this.displayCheckout();\n window.addEventListener('onLoading', this.handleLoading);\n window.addEventListener('onCheckoutPaymentSuccess', this.handleCheckoutPaymentSuccess);\n window.addEventListener('onCheckoutPaymentFailure', this.handleCheckoutPaymentFailure);\n // });\n }\n\n createCheckoutToolKitOnDesktop(buttonText: string) {\n return new RapydCheckoutToolkit({\n pay_button_text: buttonText,\n id: this.visaMasterCheckoutId,\n wait_on_payment_redirect: true,\n\n style: {\n cardFields: {\n title: {\n color: '#80807F'\n },\n saveForFutureLabel:{\n color: '#80807F'\n }\n },\n input: {\n base: {\n fontWeight: \"400\",\n borderRadius: \"5px\",\n }\n },\n orderDetails: {\n title: {\n color: '#80807F'\n },\n totalLabel: {\n color: '#80807F'\n },\n totalValue: {\n color: '#80807F'\n }\n },\n submit: {\n base: {\n backgroundColor: \"#F48215\",\n color: \"#FFFFFF\",\n fontWeight: \"900\",\n borderRadius: \"5px\",\n border: \"none\",\n boxShadow: \"0px 0px 20px 0px #28303A33\",\n height: \"35px\",\n }\n }\n }\n });\n }\n\n createCheckoutToolKitOnMobile(buttonText: string) {\n return new RapydCheckoutToolkit({\n pay_button_text: buttonText,\n id: this.visaMasterCheckoutId,\n wait_on_payment_redirect: true,\n style: {\n input: {\n base: {\n fontWeight: \"400\",\n borderRadius: \"5px\",\n fontSize: \"12px\"\n },\n placeholder: {\n fontSize: \"12px !important\",\n fontWeight: \"700\",\n fontFamily: \"Manrope\",\n color: '#8C8C8C',\n },\n },\n cardFields: {\n title: {\n color: '#8C8C8C'\n },\n saveForFutureLabel: {\n color: '#8C8C8C',\n }\n },\n orderDetails: {\n title: {\n color: '#8C8C8C',\n },\n totalLabel: {\n color: '#8C8C8C',\n },\n totalValue: {\n color: '#8C8C8C',\n }\n },\n submit: {\n base: {\n backgroundColor: \"#28303A\",\n color: \"#FFFFFF\",\n fontWeight: \"900 !important\",\n borderRadius: \"12px\",\n boxShadow: \"0 0 8.57px #ff6b0066 !important\",\n height: \"40px\",\n width: \"100%\",\n fontSize: \"12px !important\",\n border: \"none\"\n }\n }\n }\n });\n }\n\n handleLoading = (event: any) => {\n if (!event.detail.loading && this.isLoading) {\n this.isShow = true;\n this.isLoading = false;\n this.startTimer();\n }\n }\n\n handleCheckoutPaymentSuccess = (event: any) => {\n this.closeDialog(false);\n }\n\n handleCheckoutPaymentFailure = (event: any) => {\n this.stopTimer();\n this.isShow = false;\n this.checkoutFailureMessage = event.detail.message;\n }\n\n closeDialog(isCloseCheckout = true) {\n this.stopTimer();\n if(this.checkoutToolKit && isCloseCheckout) {\n try {\n this.checkoutToolKit.closeCheckout();\n } catch(err) {\n console.error(\"Error when closing checkout\", err);\n }\n }\n this.checkoutToolKit = undefined;\n this.isShow = false;\n this.dialogRef.close(this.checkoutFailureMessage);\n\t};\n\n startTimer() {\n if(this.visaMasterTimer) this.stopTimer();\n this.visaMasterTimer = setInterval(() => {\n if(this.visaMasterTimeout <= 0) {\n this.closeDialog();\n return;\n }\n this.visaMasterTimeout--;\n this.displayTimer = `${this.pad(Math.floor(this.visaMasterTimeout / 60))}:${this.pad(this.visaMasterTimeout % 60)}`;\n }, 1000);\n }\n\n stopTimer() {\n clearInterval(this.visaMasterTimer);\n }\n\n pad(number: number) {\n return `${number < 10 ? '0' : ''}${number}`;\n }\n\n displayCheckout() {\n if(document.getElementById(\"rapyd-checkout\")) {\n this.checkoutToolKit.displayCheckout();\n } else {\n setTimeout(() => {\n this.displayCheckout();\n }, 10);\n }\n }\n\n isMobile() {\n return CommonUtil.isMobileTemplate();\n }\n}\n","@if(isMobile()) {\n <div class=\"v-dialog mobile\">\n <div class=\"v-flex-center-between header text-black-cs\">\n <div class=\"v-flex-center-none\">\n <span class=\"ml-8\">{{ 'mobile_payment_form_title' | transloco }}</span>\n </div>\n <div class=\"v-flex-center-between mr-8\">\n <div (click)=\"closeDialog()\">\n <svg width=\"22\" height=\"22\" viewBox=\"0 0 22 22\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\n d=\"M11.0121 12.3959L16.6455 18.0293C16.8333 18.2107 17.0849 18.3111 17.346 18.3088C17.6071 18.3065 17.8569 18.2018 18.0415 18.0172C18.2261 17.8325 18.3309 17.5828 18.3331 17.3217C18.3354 17.0606 18.235 16.809 18.0536 16.6212L12.4202 10.9878L18.0536 5.35431C18.235 5.16649 18.3354 4.91494 18.3331 4.65384C18.3309 4.39273 18.2261 4.14297 18.0415 3.95833C17.8569 3.77369 17.6071 3.66896 17.346 3.66669C17.0849 3.66443 16.8333 3.7648 16.6455 3.9462L11.0121 9.57964L5.37863 3.9462C5.18997 3.76928 4.93988 3.67271 4.68128 3.67691C4.42268 3.68111 4.17585 3.78575 3.99304 3.9687C3.81022 4.15165 3.70575 4.39854 3.70173 4.65715C3.69772 4.91575 3.79447 5.16577 3.97152 5.35431L9.60396 10.9878L3.97052 16.6212C3.87541 16.7131 3.79954 16.8229 3.74735 16.9444C3.69516 17.0659 3.66769 17.1966 3.66654 17.3288C3.66539 17.4611 3.69059 17.5922 3.74066 17.7146C3.79073 17.837 3.86468 17.9481 3.95818 18.0416C4.05168 18.1352 4.16287 18.2091 4.28525 18.2592C4.40764 18.3092 4.53877 18.3344 4.67099 18.3333C4.80322 18.3321 4.93389 18.3047 5.05539 18.2525C5.17688 18.2003 5.28677 18.1244 5.37863 18.0293L11.0121 12.3959Z\" />\n </svg>\n </div>\n </div>\n </div>\n @if (isLoading) {\n <div class=\"v-spinner\">\n <mat-spinner diameter=\"50\" strokeWidth=\"4\"></mat-spinner>\n </div>\n }\n <div class=\"v-content\" id=\"deposit-id\">\n @if (!isLoading && !isShow) {\n <div class=\"visa-card-message\">\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\n </div>\n }\n <div class=\"vodds-checkout-deposit\">\n @if(!isLoading && isShow) {\n <div class=\"vodds-checkout-expiration\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 15\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\n fill=\"#8C8C8C\" />\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\" transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82843 1.06067)\"\n stroke=\"#8C8C8C\" stroke-width=\"1.5\" />\n </svg>\n <span>{{ 'visaCardTimeout' | transloco }} <span class=\"countdown-timer\">{{displayTimer}}</span></span>\n </div>\n }\n <div id=\"rapyd-checkout\" class=\"iframe-wrapper\"></div>\n </div>\n </div>\n </div>\n} @else {\n <div id=\"visa-card\">\n <div class=\"top\">\n <h2>{{ 'payment_form_title' | transloco }}</h2>\n <svg class=\"clsbtn my-account\" (click)=\"closeDialog()\" width=\"11\" height=\"11\" viewBox=\"0 0 11 11\" fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M9.89214 0L5.5 4.39214L1.10786 0L0 1.10786L4.39214 5.5L0 9.89214L1.10786 11L5.5 6.60786L9.89214 11L11 9.89214L6.60786 5.5L11 1.10786L9.89214 0Z\"\n fill=\"white\" />\n </svg>\n </div>\n <div class=\"flex-center\">\n <vodds-loader [showAjaxLoader]=\"isLoading\"></vodds-loader>\n </div>\n @if (!isLoading && !isShow) {\n <div class=\"visa-card-message\">\n {{ 'visaCardErrorMessage' | transloco }} <br> {{ 'visaCardErrorMessage2' | transloco }}\n </div>\n }\n <div class=\"visa-card-form\" [style]=\"{display: isShow ? 'flex' : 'none'}\">\n <div class=\"timer\">\n <svg width=\"14\" height=\"14\" viewBox=\"0 0 14 14\" xmlns=\"http://www.w3.org/2000/svg\">\n <path\n d=\"M7 2.56067C9.76142 2.56067 12 4.79925 12 7.56067C12 10.3221 9.76142 12.5607 7 12.5607C4.23858 12.5607 2 10.3221 2 7.56067C2 4.79925 4.23858 2.56067 7 2.56067ZM6.25 4.06067V7.93567L6.5498 8.16028L8.5498 9.66028L9.4502 8.46106L7.75 7.18567V4.06067H6.25Z\"\n fill=\"#B5B5B5\" />\n <line x1=\"10.0303\" y1=\"0.530339\" x2=\"12.8588\" y2=\"3.35877\" stroke=\"#B5B5B5\" stroke-width=\"1.5\" />\n <line y1=\"-0.75\" x2=\"4\" y2=\"-0.75\"\n transform=\"matrix(-0.707107 0.707107 0.707107 0.707107 4.82861 1.06067)\" stroke=\"#B5B5B5\"\n stroke-width=\"1.5\" />\n </svg>\n <span class=\"label\">&nbsp;{{ 'visaCardTimeout' | transloco }}&nbsp;</span> <span class=\"display-time\">\n {{displayTimer}}</span>\n </div>\n <div id=\"rapyd-checkout\"></div>\n </div>\n </div>\n}","import { ElementRef, inject } from '@angular/core';\nimport { IframeMessageService } from '../service/iframe-message.service';\nimport { IframeMessageType } from '../model/iframe-message-type';\nimport { Checkout } from '../model/checkout';\nimport { IframeMessage } from '../model/iframe-message';\nimport { Timer } from '../model/timer';\nimport { PaymentType } from '../model/payment-type';\nimport { RapydComponent } from './rapyd/rapyd.component';\nimport { MatDialog } from '@angular/material/dialog';\nimport { Subscription, timer } from 'rxjs';\n\nexport class Payment {\n cache: Map<number, Checkout> = new Map();\n iframe: ElementRef<HTMLIFrameElement> | undefined;//Set from the component\n timer: Timer = new Timer(500); // 0.5s\n result: Checkout | undefined;\n tokenExpire: number | undefined;\n token: string | undefined;\n private iframeMessageService = inject(IframeMessageService);\n private rapydScriptLoaded = false;\n private timerSubscription?: Subscription;\n constructor(public dialog: MatDialog) {\n /**\n * Listen OPEN_PAYMENT_FORM message to open 3th party page\n */\n this.iframeMessageService.onMessages().subscribe(message => {\n console.log('Received from iframe:', message);\n if (!message || message.type == undefined) return;\n switch (message.type) {\n case IframeMessageType.OPEN_PAYMENT_FORM:\n const checkout = Object.assign(new Checkout(), message.payload);\n if (!checkout || this.cache.get(checkout.requestId)) {\n return;\n }\n // if (this.cache.size > 0) {\n // this.cache.clear();\n // //TODO clear the current popup\n // }\n switch (checkout.paymentType) {\n case PaymentType.JETON:\n case PaymentType.ECOPAYZ:\n this.openWindow(checkout);\n break;\n case PaymentType.RAPYD:\n this.openVisaCheckout(checkout);\n break;\n default:\n }\n break;\n case IframeMessageType.THIRD_PARTY_CALLBACK:\n const checkout1 = new Checkout();\n checkout1.setCallback(message.payload);\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout1);\n break;\n case IframeMessageType.PAYMENT_CALLBACK:\n const checkout2 = new Checkout();\n if (message.payload) {\n checkout2.setErrorMessage(message.payload as string);\n } else {\n checkout2.setCallback(message.payload);\n }\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout2);\n break\n case IframeMessageType.OPEN_DEPOSIT:\n case IframeMessageType.OPEN_TRANSACTION:\n case IframeMessageType.OPEN_WITHDRAW:\n case IframeMessageType.CANCEL_WITHDRAW:\n case IframeMessageType.PAYOUT:\n case IframeMessageType.IN_PROGRESS:\n case IframeMessageType.REFRESH_TOKEN:\n case IframeMessageType.REFRESH_IFRAME:\n case IframeMessageType.REQUIRE_REFRESH_TOKEN:\n case IframeMessageType.TRACK_GA4:\n case IframeMessageType.IFRAME_RESIZE:\n case IframeMessageType.OPEN_WITHDRAWAL_REQUEST_CONFIRMATION:\n case IframeMessageType.OPEN_WITHDRAWAL_SUBMITTED:\n case IframeMessageType.RESULT_WITHDRAWAL_REQUEST_CONFIRMATION:\n this.processMessage(message);\n break;\n }\n\n });\n }\n getDomain(host: string) {\n if (!host) return;\n this.iframeMessageService.getDomain(host);\n }\n processMessage(message: IframeMessage) {\n //TODO\n }\n\n /**\n * Open 3th party page on the popup windown or new tab\n */\n openWindow(checkout: Checkout) {\n this.cache.set(checkout.requestId, checkout);\n console.log(\"Open windown: \", this.cache);\n const width = 470;\n const height = 550;\n var left = Math.max(0, (screen.width - width) / 2),\n top = Math.max(0, (screen.height - height) / 2);\n // var popup = window.open(url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\n let popup = window.open(checkout.url, \"VOdds\", 'width=' + width + ',height=' + height + ',left=' + left + ',top=' + top + ',status=0,location=0,menubar=0,toolbar=0');\n if (!popup) {\n checkout.errorMessage = 'Your setting prevents popups. Please change your setting to allow it.';\n this.sendMessageToIframe(checkout);\n this.cache.delete(checkout.requestId);\n return;\n }\n checkout.popup = popup;\n popup.focus();\n this.onThirdPartyMessage(checkout);\n this.timer.oberserableTimer(checkout, () => this.sendMessageToIframe(checkout));\n }\n async openVisaCheckout(checkout: Checkout) {\n try {\n await this.load();\n this.dialog.open(RapydComponent, {\n data: {\n checkoutUrl: checkout.url,\n expiration: checkout.expiration\n },\n width: '500px',\n maxWidth: '90vw'\n }).afterClosed().subscribe(checkoutFailureMessage => {\n checkout.errorMessage = checkoutFailureMessage;\n this.sendMessageToIframe(checkout);\n })\n } catch (error) {\n console.error(error);\n }\n }\n load(): Promise<void> {\n if (this.rapydScriptLoaded) {\n return Promise.resolve();\n }\n\n return new Promise((resolve, reject) => {\n const script = document.createElement('script');\n\n script.src = 'https://sandboxcheckouttoolkit.rapyd.net';\n script.async = true;\n\n script.onload = () => {\n this.rapydScriptLoaded = true;\n resolve();\n };\n\n script.onerror = () => {\n reject(new Error('Failed to load Rapyd Checkout Toolkit'));\n };\n\n document.head.appendChild(script);\n });\n }\n\n /**\n * Listen message or action from 3th party on the popup\n * Skip for RAPYD - It will process when the dialog close\n */\n onThirdPartyMessage(checkout: Checkout) {\n this.iframeMessageService.onThirdPartyMessages().subscribe(event => {\n if (this.iframeMessageService.isValidDomain(checkout.paymentType, event.origin)) {\n switch (checkout.paymentType) {\n case PaymentType.NA:\n break;\n case PaymentType.JETON:\n case PaymentType.ECOPAYZ:\n\n }\n console.log('Received from 3th party:', event.data);\n checkout.setCallback(event.data);\n this.timer.stopWatcher();\n this.sendMessageToIframe(checkout);\n }\n });\n }\n\n /**\n * send the message from the parent to the iframe\n */\n sendMessageToIframe(checkout: Checkout) {\n console.log(\"send the message from the parent into the iframe: \", checkout);\n if (this.iframe == undefined) return;\n let message: IframeMessage = {\n type: IframeMessageType.PAYMENT_CALLBACK,\n payload: checkout\n }\n this.iframeMessageService.sendMessageToIframe(this.iframe, message, checkout.iframeUrl);\n this.cache.delete(checkout.requestId);\n }\n\n removePaymentIframe() {\n //TODO\n this.iframe = undefined;\n this.token = undefined;\n this.tokenExpire = undefined;\n this.stopRefreshedTokenSchedule();\n }\n\n setConfig(tokenExpireAt: number, token: string){\n this.token = token;\n this.tokenExpire = tokenExpireAt\n this.startRefreshedTokenSchedule(this.tokenExpire);\n }\n\n stopRefreshedTokenSchedule(): void {\n if (this.timerSubscription) {\n this.timerSubscription.unsubscribe();\n this.timerSubscription = undefined;\n }\n }\n\n\n startRefreshedTokenSchedule(timeExpire: number): void {\n this.stopRefreshedTokenSchedule();\n\n const delayTime = timeExpire - 60;\n const safeDelay = Math.max(0, delayTime);\n\n this.timerSubscription = timer(safeDelay * 1000).subscribe(() => {\n this.processMessage({type: IframeMessageType.REQUIRE_REFRESH_TOKEN} as IframeMessage);\n this.stopRefreshedTokenSchedule();\n });\n }\n\n sendMessageParentToIframe(message: IframeMessage, target: string){\n if(this.iframe){\n this.iframeMessageService.sendMessageToIframe(this.iframe, message, target);\n }\n }\n}\n","/*\n * Public API Surface of epp-lib\n */\nexport * from './lib/translation';\n\nexport * from './lib/service';\nexport * from './lib/model';\nexport * from './lib/pipe';\nexport * from './lib/component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -1,12 +1,10 @@
1
1
  import { ElementRef } from '@angular/core';
2
- import { IframeMessageType } from '../model/iframe-message-type';
3
2
  import { Checkout } from '../model/checkout';
4
3
  import { IframeMessage } from '../model/iframe-message';
5
4
  import { Timer } from '../model/timer';
6
5
  import { MatDialog } from '@angular/material/dialog';
7
6
  export declare class Payment {
8
7
  dialog: MatDialog;
9
- private iframes;
10
8
  cache: Map<number, Checkout>;
11
9
  iframe: ElementRef<HTMLIFrameElement> | undefined;
12
10
  timer: Timer;
@@ -38,7 +36,5 @@ export declare class Payment {
38
36
  setConfig(tokenExpireAt: number, token: string): void;
39
37
  stopRefreshedTokenSchedule(): void;
40
38
  startRefreshedTokenSchedule(timeExpire: number): void;
41
- sendMessageParentToIframe(iframeType: IframeMessageType, message: IframeMessage, target: string): void;
42
- putSubIframe(iframe: ElementRef<HTMLIFrameElement>, iframeType: IframeMessageType): void;
43
- removeSubIframe(iframeType: IframeMessageType): void;
39
+ sendMessageParentToIframe(message: IframeMessage, target: string): void;
44
40
  }
@@ -18,8 +18,9 @@ export declare enum IframeMessageType {
18
18
  INIT_UTM_COOKIE = 16,
19
19
  TRACK_GA4 = 17,
20
20
  OPEN_WITHDRAWAL_REQUEST_CONFIRMATION = 18,
21
- IFRAME_RESIZE = 19,
22
- OPEN_WITHDRAWAL_SUBMITTED = 20,
23
- RESULT_WITHDRAWAL_REQUEST_CONFIRMATION = 21,
24
- RESULT_WITHDRAWAL_SUBMITTED = 22
21
+ OPEN_WITHDRAWAL_REQUEST_SUBMITTED = 19,
22
+ IFRAME_RESIZE = 20,
23
+ OPEN_WITHDRAWAL_SUBMITTED = 21,
24
+ RESULT_WITHDRAWAL_REQUEST_CONFIRMATION = 22,
25
+ RESULT_WITHDRAWAL_SUBMITTED = 23
25
26
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "epp-lib",
3
- "version": "0.0.31-snapshot",
3
+ "version": "0.0.32-snapshot",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0",
Binary file