@acorex/components 18.16.0-next.6 → 18.16.0-next.7

Sign up to get free protection for your applications and to get access to all the features.
@@ -107,8 +107,12 @@ export class AXImageEditorViewComponent extends MXBaseComponent {
107
107
  }
108
108
  /** @ignore */
109
109
  ngOnDestroy() {
110
- this.resizeEventListener();
111
- this.imageLoadEventListener();
110
+ if (this.resizeEventListener) {
111
+ this.resizeEventListener();
112
+ }
113
+ if (this.imageLoadEventListener) {
114
+ this.imageLoadEventListener();
115
+ }
112
116
  }
113
117
  /** @ignore */
114
118
  imageLoaded() {
@@ -352,4 +356,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
352
356
  type: HostBinding,
353
357
  args: ['style']
354
358
  }] } });
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTL0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvQzdELGNBQWM7SUFDSixZQUFZO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7SUFDSixnQkFBZ0IsQ0FBQyxLQUF1QjtRQUNoRCxNQUFNLFdBQVcsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBZ0MsQ0FBQyxXQUFXLENBQUM7UUFDckcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FB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RUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0RixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7SUFDSixp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Q0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7SUFDNUcsQ0FBQzs4R0FwYVUsMEJBQTBCO2tHQUExQiwwQkFBMEIsa1lDM0J2Qyx1Z0JBaUJBOzsyRkRVYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7d0RBb2F6QixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBhZnRlck5leHRSZW5kZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBpdHMgcmVjZWl2ZSBpbWFnZSBzcmMuXHJcbiAgICovXHJcbiAgc3JjID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY2FudmFzRWxlbSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2NhbnZhc0VsZW0nKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjdHggPSBzaWduYWw8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihudWxsKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wSW1hZ2VEYXRhID0gc2lnbmFsPEltYWdlRGF0YT4obnVsbCk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgaXNNb3VzZURvd24gPSBzaWduYWwoZmFsc2UpO1xyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNyb3BTdGFydFggPSBzaWduYWwoMCk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY3JvcFN0YXJ0WSA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wRW5kWCA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wRW5kWSA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBwYXJlbnQgPSBpbmplY3QoQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCk7XHJcbiAgcHJvdGVjdGVkIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgaW1hZ2VBc3BlY3QgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLndpZHRoIC8gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLmhlaWdodDtcclxuICB9KTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICByZXNpemVFdmVudExpc3RlbmVyO1xyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcjtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgcmVzaXplV2luZG93KCkge1xyXG4gICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5uZXdJbWFnZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNhbnZhc1Jlc3BvbnNpdmUoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGNvbnN0IHBhcmVudFdpZHRoID0gKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudCkuY2xpZW50V2lkdGg7XHJcbiAgICBjb25zdCBpbWFnZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLndpZHRoO1xyXG5cclxuICAgIGlmIChwYXJlbnRXaWR0aCA8IGltYWdlV2lkdGgpIHtcclxuICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLndpZHRoID0gYCR7cGFyZW50V2lkdGh9cHhgO1xyXG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc3R5bGUuaGVpZ2h0ID0gYCR7cGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCl9cHhgO1xyXG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gcGFyZW50V2lkdGg7XHJcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCk7XHJcbiAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBwYXJlbnRXaWR0aCwgcGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLndpZHRoID0gYCR7aW1hZ2VXaWR0aH1weGA7XHJcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5oZWlnaHQgPSBgJHtpbWFnZVdpZHRoIC8gdGhpcy5pbWFnZUFzcGVjdCgpfXB4YDtcclxuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGltYWdlV2lkdGg7XHJcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gaW1hZ2VXaWR0aCAvIHRoaXMuaW1hZ2VBc3BlY3QoKTtcclxuICAgICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlV2lkdGggLyB0aGlzLmltYWdlQXNwZWN0KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdyZXNpemUnLCB0aGlzLnJlc2l6ZVdpbmRvdy5iaW5kKHRoaXMpKTtcclxuICAgICAgLy9sb2FkIGltYWdlXHJcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2Uuc2V0KG5ldyBJbWFnZSgpKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLnNyYyA9IHRoaXMuc3JjKCk7XHJcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcclxuICAgICAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCksXHJcbiAgICAgICAgJ2xvYWQnLFxyXG4gICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQuYmluZCh0aGlzKSxcclxuICAgICAgKTtcclxuICAgICAgLy9zZXQgY2FudmFzIG9wdGlvbnNcclxuICAgICAgdGhpcy5jdHguc2V0KHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnLCB7IHdpbGxSZWFkRnJlcXVlbnRseTogdHJ1ZSB9KSk7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZUpvaW4gPSAncm91bmQnO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gdGhpcy5zZXJ2aWNlLnBlbkNvbG9yKCk7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmxpbmVXaWR0aCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XHJcbiAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAxO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkgJiYgdGhpcy5zZXJ2aWNlLmlzSW1hZ2VMb2FkKCkpIHtcclxuICAgICAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UudG9nZ2xlQ2xlYXIoKS51c2VySW50ZXJhY3QpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyKCkuc3RhdGUpIHtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuICAgICk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkudXNlckludGVyYWN0IHx8ICF0aGlzLmN0eCgpKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5jdHgoKS5maWx0ZXIgPSAnYnJpZ2h0bmVzcyg0MCUpJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdHgoKS5maWx0ZXIgPSAnYnJpZ2h0bmVzcygxMDAlKSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKFxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCksXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLndpZHRoLFxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0LFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuICAgICk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2Uucm90YXRlKCkudXNlckludGVyYWN0IHx8ICF0aGlzLmN0eCgpKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5yb3RhdGVJbWFnZSgpO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMucmVzaXplRXZlbnRMaXN0ZW5lcigpO1xyXG4gICAgdGhpcy5pbWFnZUxvYWRFdmVudExpc3RlbmVyKCk7XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBpbWFnZUxvYWRlZCgpIHtcclxuICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZS5zZXQodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpKTtcclxuICAgIHRoaXMuc2VydmljZS50b2dnbGVDbGVhci5zZXQoeyB1c2VySW50ZXJhY3Q6IGZhbHNlLCBzdGF0ZTogZmFsc2UgfSk7XHJcbiAgICB0aGlzLnNlcnZpY2UuaXNJbWFnZUxvYWQuc2V0KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgcGVuQ29uZmlnSGFuZGxlcihwZW5UeXBlOiAncGVuJyB8ICdoaWdobGlnaHQnKSB7XHJcbiAgICBzd2l0Y2ggKHBlblR5cGUpIHtcclxuICAgICAgY2FzZSAncGVuJzpcclxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnaGlnaGxpZ2h0JzpcclxuICAgICAgICB0aGlzLmN0eCgpLmdsb2JhbEFscGhhID0gMC4wMDg7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBnZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIG1vdXNlRG93bkhhbmRsZXIoZTogTW91c2VFdmVudCkge1xyXG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQodHJ1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICB0aGlzLmNyb3BTdGFydFguc2V0KGUub2Zmc2V0WCk7XHJcbiAgICAgIHRoaXMuY3JvcFN0YXJ0WS5zZXQoZS5vZmZzZXRZKTtcclxuICAgICAgdGhpcy5jcm9wRW5kWC5zZXQoMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBlbkNvbmZpZ0hhbmRsZXIodGhpcy5zZXJ2aWNlLnBlblR5cGUoKSk7XHJcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlU3R5bGUgPSB0aGlzLnNlcnZpY2UucGVuQ29sb3IoKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lQ2FwID0gdGhpcy5zZXJ2aWNlLmxpbmVDYXAoKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XHJcblxyXG4gICAgICB0aGlzLmN0eCgpLmJlZ2luUGF0aCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLm1vdmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIG1vdXNlTW92ZUhhbmRsZXIoZTogTW91c2VFdmVudCkge1xyXG4gICAgaWYgKCF0aGlzLmlzTW91c2VEb3duKCkpIHJldHVybjtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkuc3RhdGUpIHtcclxuICAgICAgdGhpcy5jdHgoKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnc2NyZWVuJztcclxuICAgICAgdGhpcy5jcm9wRW5kWC5zZXQoZS5vZmZzZXRYKTtcclxuICAgICAgdGhpcy5jcm9wRW5kWS5zZXQoZS5vZmZzZXRZKTtcclxuICAgICAgdGhpcy5kcmF3U2VsZWN0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVUbyhlLm9mZnNldFgsIGUub2Zmc2V0WSk7XHJcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBtb3VzZVVwSGFuZGxlcigpIHtcclxuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KGZhbHNlKTtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkuc3RhdGUgJiYgdGhpcy5jcm9wRW5kWCgpKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NvdXJjZS1vdmVyJztcclxuICAgICAgdGhpcy5jcm9wSW1hZ2VGdW5jdGlvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdHgoKS5jbG9zZVBhdGgoKTtcclxuICAgICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHRvdWNoU3RhcnRIYW5kbGVyKGU6IFRvdWNoRXZlbnQpIHtcclxuICAgIGNvbnN0IG9mZnNldFggPSBlLnRvdWNoZXNbMF0uY2xpZW50WCAtIHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkubGVmdDtcclxuICAgIGNvbnN0IG9mZnNldFkgPSBlLnRvdWNoZXNbMF0uY2xpZW50WSAtIHRoaXMuZ2V0Qm91bmRpbmdDYW52YXNIYW5kbGVyKCkudG9wO1xyXG5cclxuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KHRydWUpO1xyXG5cclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkuc3RhdGUpIHtcclxuICAgICAgdGhpcy5jcm9wU3RhcnRYLnNldChvZmZzZXRYKTtcclxuICAgICAgdGhpcy5jcm9wU3RhcnRZLnNldChvZmZzZXRZKTtcclxuICAgICAgdGhpcy5jcm9wRW5kWC5zZXQoMCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnBlbkNvbmZpZ0hhbmRsZXIodGhpcy5zZXJ2aWNlLnBlblR5cGUoKSk7XHJcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlU3R5bGUgPSB0aGlzLnNlcnZpY2UucGVuQ29sb3IoKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lQ2FwID0gdGhpcy5zZXJ2aWNlLmxpbmVDYXAoKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSB0aGlzLnNlcnZpY2UubGluZVdpZHRoKCk7XHJcblxyXG4gICAgICB0aGlzLmN0eCgpLmJlZ2luUGF0aCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLm1vdmVUbyhvZmZzZXRYLCBvZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lVG8ob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCB0b3VjaE1vdmVIYW5kbGVyKGU6IFRvdWNoRXZlbnQpIHtcclxuICAgIGUucHJldmVudERlZmF1bHQoKTsgLy8gcHJldmVudCBwYWdlIGZyb20gc2Nyb2xsXHJcbiAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xyXG4gICAgY29uc3Qgb2Zmc2V0WCA9IGUudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS5sZWZ0O1xyXG4gICAgY29uc3Qgb2Zmc2V0WSA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS50b3A7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzY3JlZW4nO1xyXG4gICAgICB0aGlzLmNyb3BFbmRYLnNldChvZmZzZXRYKTtcclxuICAgICAgdGhpcy5jcm9wRW5kWS5zZXQob2Zmc2V0WSk7XHJcbiAgICAgIHRoaXMuZHJhd1NlbGVjdGlvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lVG8ob2Zmc2V0WCwgb2Zmc2V0WSk7XHJcbiAgICAgIHRoaXMuY3R4KCkuc3Ryb2tlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCB0b3VjaEVuZEhhbmRsZXIoKSB7XHJcbiAgICB0aGlzLmlzTW91c2VEb3duLnNldChmYWxzZSk7XHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BTdGF0ZSgpLnN0YXRlICYmIHRoaXMuY3JvcEVuZFgoKSkge1xyXG4gICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XHJcbiAgICAgIHRoaXMuY3JvcEltYWdlRnVuY3Rpb24oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3R4KCkuY2xvc2VQYXRoKCk7XHJcbiAgICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBkcmF3U2VsZWN0aW9uKCkge1xyXG4gICAgY29uc3QgY3JvcFdpZHRoID0gdGhpcy5jcm9wRW5kWCgpIC0gdGhpcy5jcm9wU3RhcnRYKCk7XHJcbiAgICBjb25zdCBjcm9wSGVpZ2h0ID0gdGhpcy5jcm9wRW5kWSgpIC0gdGhpcy5jcm9wU3RhcnRZKCk7XHJcblxyXG4gICAgdGhpcy5jdHgoKS5jbGVhclJlY3QoMCwgMCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQpO1xyXG4gICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UodGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCksIDAsIDApO1xyXG4gICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9ICd3aGl0ZSc7XHJcbiAgICB0aGlzLmN0eCgpLnNldExpbmVEYXNoKFs0LCAxMF0pO1xyXG4gICAgdGhpcy5jdHgoKS5saW5lV2lkdGggPSAyO1xyXG4gICAgdGhpcy5jdHgoKS5zdHJva2VSZWN0KHRoaXMuY3JvcFN0YXJ0WCgpLCB0aGlzLmNyb3BTdGFydFkoKSwgY3JvcFdpZHRoLCBjcm9wSGVpZ2h0KTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNyb3BJbWFnZUZ1bmN0aW9uKCkge1xyXG4gICAgdGhpcy5jdHgoKS5jbGVhclJlY3QoMCwgMCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQpO1xyXG4gICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UodGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCksIDAsIDApO1xyXG5cclxuICAgIGxldCBpbWFnZURhdGE6IEltYWdlRGF0YTtcclxuICAgIGlmICh0aGlzLmNyb3BTdGFydFgoKSA8IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA+IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICBpbWFnZURhdGEgPSB0aGlzLmN0eCgpLmdldEltYWdlRGF0YShcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BFbmRZKCksXHJcbiAgICAgICAgdGhpcy5jcm9wRW5kWCgpIC0gdGhpcy5jcm9wU3RhcnRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRZKCkgLSB0aGlzLmNyb3BFbmRZKCksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGltYWdlRGF0YSA9IHRoaXMuY3R4KCkuZ2V0SW1hZ2VEYXRhKFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BFbmRZKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRYKCkgLSB0aGlzLmNyb3BFbmRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRZKCkgLSB0aGlzLmNyb3BFbmRZKCksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpIDwgdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpIDwgdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGltYWdlRGF0YSA9IHRoaXMuY3R4KCkuZ2V0SW1hZ2VEYXRhKFxyXG4gICAgICAgIHRoaXMuY3JvcFN0YXJ0WCgpLFxyXG4gICAgICAgIHRoaXMuY3JvcFN0YXJ0WSgpLFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFgoKSAtIHRoaXMuY3JvcFN0YXJ0WCgpLFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFkoKSAtIHRoaXMuY3JvcFN0YXJ0WSgpLFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyb3BTdGFydFgoKSA+IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA8IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICBpbWFnZURhdGEgPSB0aGlzLmN0eCgpLmdldEltYWdlRGF0YShcclxuICAgICAgICB0aGlzLmNyb3BFbmRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRZKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRYKCkgLSB0aGlzLmNyb3BFbmRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wRW5kWSgpIC0gdGhpcy5jcm9wU3RhcnRZKCksXHJcbiAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgZGF0YTogVWludDhDbGFtcGVkQXJyYXkgPSBpbWFnZURhdGEuZGF0YTtcclxuXHJcbiAgICBjb25zdCBicmlnaHRuZXNzRmFjdG9yID0gMi40OyAvLyBJbmNyZWFzZSBicmlnaHRuZXNzIGJ5IDIwJVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBkYXRhLmxlbmd0aDsgaSArPSA0KSB7XHJcbiAgICAgIGRhdGFbaV0gPSBkYXRhW2ldICogYnJpZ2h0bmVzc0ZhY3RvcjsgLy8gUmVkXHJcbiAgICAgIGRhdGFbaSArIDFdID0gZGF0YVtpICsgMV0gKiBicmlnaHRuZXNzRmFjdG9yOyAvLyBHcmVlblxyXG4gICAgICBkYXRhW2kgKyAyXSA9IGRhdGFbaSArIDJdICogYnJpZ2h0bmVzc0ZhY3RvcjsgLy8gQmx1ZVxyXG4gICAgfVxyXG5cclxuICAgIGlmICh0aGlzLmNyb3BTdGFydFgoKSA8IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA+IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIHRoaXMuY3JvcFN0YXJ0WCgpLCB0aGlzLmNyb3BFbmRZKCkpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyb3BTdGFydFgoKSA+IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA+IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIHRoaXMuY3JvcEVuZFgoKSwgdGhpcy5jcm9wRW5kWSgpKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPCB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPCB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgdGhpcy5jdHgoKS5wdXRJbWFnZURhdGEoaW1hZ2VEYXRhLCB0aGlzLmNyb3BTdGFydFgoKSwgdGhpcy5jcm9wU3RhcnRZKCkpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyb3BTdGFydFgoKSA+IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA8IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIHRoaXMuY3JvcEVuZFgoKSwgdGhpcy5jcm9wU3RhcnRZKCkpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY3JvcEltYWdlRGF0YS5zZXQoaW1hZ2VEYXRhKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNyb3BCdXR0b25IYW5kbGVyKCkge1xyXG4gICAgbGV0IGNyb3BXaWR0aDogbnVtYmVyO1xyXG4gICAgbGV0IGNyb3BIZWlnaHQ6IG51bWJlcjtcclxuXHJcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnVwZGF0ZSgocHJldikgPT4ge1xyXG4gICAgICByZXR1cm4geyB1c2VySW50ZXJhY3Q6IGZhbHNlLCBzdGF0ZTogcHJldi5zdGF0ZSB9O1xyXG4gICAgfSk7XHJcblxyXG4gICAgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpIDwgdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGNyb3BXaWR0aCA9IHRoaXMuY3JvcEVuZFgoKSAtIHRoaXMuY3JvcFN0YXJ0WCgpO1xyXG4gICAgICBjcm9wSGVpZ2h0ID0gdGhpcy5jcm9wU3RhcnRZKCkgLSB0aGlzLmNyb3BFbmRZKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGNyb3BXaWR0aCA9IHRoaXMuY3JvcFN0YXJ0WCgpIC0gdGhpcy5jcm9wRW5kWCgpO1xyXG4gICAgICBjcm9wSGVpZ2h0ID0gdGhpcy5jcm9wU3RhcnRZKCkgLSB0aGlzLmNyb3BFbmRZKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpIDwgdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpIDwgdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGNyb3BXaWR0aCA9IHRoaXMuY3JvcEVuZFgoKSAtIHRoaXMuY3JvcFN0YXJ0WCgpO1xyXG4gICAgICBjcm9wSGVpZ2h0ID0gdGhpcy5jcm9wRW5kWSgpIC0gdGhpcy5jcm9wU3RhcnRZKCk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpIDwgdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGNyb3BXaWR0aCA9IHRoaXMuY3JvcFN0YXJ0WCgpIC0gdGhpcy5jcm9wRW5kWCgpO1xyXG4gICAgICBjcm9wSGVpZ2h0ID0gdGhpcy5jcm9wRW5kWSgpIC0gdGhpcy5jcm9wU3RhcnRZKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGNyb3BXaWR0aDtcclxuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gY3JvcEhlaWdodDtcclxuXHJcbiAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YSh0aGlzLmNyb3BJbWFnZURhdGEoKSwgMCwgMCk7XHJcbiAgICB0aGlzLnNhdmVJbWFnZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5jcm9wSW1hZ2VEYXRhLnNldChudWxsKTtcclxuICAgIHRoaXMuc2VydmljZS5jcm9wU3RhdGUuc2V0KHsgdXNlckludGVyYWN0OiBmYWxzZSwgc3RhdGU6IGZhbHNlIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgcm90YXRlSW1hZ2UoKSB7XHJcbiAgICB0aGlzLmN0eCgpLnNhdmUoKTtcclxuICAgIHRoaXMuY3R4KCkuY2xlYXJSZWN0KDAsIDAsIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQud2lkdGgsIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0KTtcclxuICAgIHRoaXMuY3R4KCkudHJhbnNsYXRlKHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLndpZHRoIC8gMiwgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0IC8gMik7XHJcbiAgICB0aGlzLmN0eCgpLnJvdGF0ZSgodGhpcy5zZXJ2aWNlLnJvdGF0ZSgpLnN0YXRlICogTWF0aC5QSSkgLyAxODApO1xyXG4gICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UoXHJcbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLFxyXG4gICAgICAtdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkud2lkdGggLyAyLFxyXG4gICAgICAtdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0IC8gMixcclxuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkud2lkdGgsXHJcbiAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLmhlaWdodCxcclxuICAgICk7XHJcbiAgICB0aGlzLmN0eCgpLnJlc3RvcmUoKTtcclxuXHJcbiAgICB0aGlzLnNhdmVJbWFnZUNoYW5nZSgpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnJvdGF0ZS51cGRhdGUoKHByZXYpID0+IHtcclxuICAgICAgcmV0dXJuIHsgc3RhdGU6IHByZXYuc3RhdGUsIHVzZXJJbnRlcmFjdDogZmFsc2UgfTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgc2F2ZUltYWdlQ2hhbmdlKCkge1xyXG4gICAgY29uc3QgbmV3SW1hZ2UgPSBuZXcgSW1hZ2UoKTtcclxuICAgIG5ld0ltYWdlLmNyb3NzT3JpZ2luID0gJ2Fub255bW91cyc7XHJcbiAgICBuZXdJbWFnZS5zcmMgPSB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvRGF0YVVSTCgnaW1hZ2UvanBlZycsIDEpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlLnNldChuZXdJbWFnZSk7XHJcblxyXG4gICAgY29uc3QgdGVtcEJsb2IgPSBbXTtcclxuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9CbG9iKFxyXG4gICAgICAoYmxvYikgPT4ge1xyXG4gICAgICAgIHRlbXBCbG9iLnB1c2goYmxvYik7XHJcbiAgICAgIH0sXHJcbiAgICAgICdpbWFnZS9qcGVnJyxcclxuICAgICAgMSxcclxuICAgICk7XHJcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvQmxvYihcclxuICAgICAgKGJsb2IpID0+IHtcclxuICAgICAgICB0ZW1wQmxvYi5wdXNoKGJsb2IpO1xyXG4gICAgICB9LFxyXG4gICAgICAnaW1hZ2UvcG5nJyxcclxuICAgICAgMSxcclxuICAgICk7XHJcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LnRvQmxvYihcclxuICAgICAgKGJsb2IpID0+IHtcclxuICAgICAgICB0ZW1wQmxvYi5wdXNoKGJsb2IpO1xyXG4gICAgICB9LFxyXG4gICAgICAnaW1hZ2Uvd2VicCcsXHJcbiAgICAgIDEsXHJcbiAgICApO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmltYWdlQmxvYi5zZXQodGVtcEJsb2IpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBASG9zdEJpbmRpbmcoJ3N0eWxlJylcclxuICBwcml2YXRlIGdldCBfX2hvc3RTdHlsZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGB3aWR0aDogJHt0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCk/LndpZHRofXB4OyBoZWlnaHQ6ICR7dGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpPy5oZWlnaHR9cHhgO1xyXG4gIH1cclxufVxyXG4iLCI8Y2FudmFzXG4gIHRhYmluZGV4PVwiMVwiXG4gIChtb3VzZWRvd24pPVwibW91c2VEb3duSGFuZGxlcigkZXZlbnQpXCJcbiAgKG1vdXNldXApPVwibW91c2VVcEhhbmRsZXIoKVwiXG4gIChtb3VzZW1vdmUpPVwibW91c2VNb3ZlSGFuZGxlcigkZXZlbnQpXCJcbiAgKHRvdWNoc3RhcnQpPVwidG91Y2hTdGFydEhhbmRsZXIoJGV2ZW50KVwiXG4gICh0b3VjaGVuZCk9XCJ0b3VjaEVuZEhhbmRsZXIoKVwiXG4gICh0b3VjaG1vdmUpPVwidG91Y2hNb3ZlSGFuZGxlcigkZXZlbnQpXCJcbiAgY2xhc3M9XCJheC1jYW52YXMtZWxlbWVudFwiXG4gICNjYW52YXNFbGVtXG4+PC9jYW52YXM+XG48YXgtYnV0dG9uXG4gIChjbGljayk9XCJjcm9wQnV0dG9uSGFuZGxlcigpXCJcbiAgW3N0eWxlXT1cInsgZGlzcGxheTogc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSA/ICdibG9jaycgOiAnbm9uZScgfVwiXG4gIGNsYXNzPVwiYXgtY3JvcC1zYXZlIGF4LXNtXCJcbiAgdGV4dD1cIkNyb3BcIlxuPjwvYXgtYnV0dG9uPlxuIl19
359
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvbGliL2ltYWdlLWVkaXRvci12aWV3L2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2xpYi9pbWFnZS1lZGl0b3Itdmlldy9pbWFnZS1lZGl0b3Itdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDNUQsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixNQUFNLEVBRU4sV0FBVyxFQUNYLE1BQU0sRUFDTixLQUFLLEVBRUwsU0FBUyxFQUNULE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSwrQkFBK0IsRUFBRSxNQUFNLDREQUE0RCxDQUFDO0FBQzdHLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFTL0QsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGVBQWU7SUFvQzdELGNBQWM7SUFDSixZQUFZO1FBQ3BCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGNBQWM7SUFDSixnQkFBZ0IsQ0FBQyxLQUF1QjtRQUNoRCxNQUFNLFdBQVcsR0FBSSxJQUFJLENBQUMsTUFBTSxDQUFDLG9CQUFvQixFQUFFLENBQUMsYUFBZ0MsQ0FBQyxXQUFXLENBQUM7UUFDckcsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FB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LElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQy9FLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0RixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDdkUsQ0FBQzthQUFNLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7WUFDdEYsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQzNFLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUFDO1lBQ3RGLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxZQUFZLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQztRQUN6RSxDQUFDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVELGNBQWM7SUFDSixpQkFBaUI7UUFDekIsSUFBSSxTQUFpQixDQUFDO1FBQ3RCLElBQUksVUFBa0IsQ0FBQztRQUV2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxPQUFPLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUMvRSxTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuRCxDQUFDO2FBQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQztZQUN0RixTQUFTLEdBQUcsSUFBSSxDQUFDLFVBQVUsRUFBRSxHQUFHLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNoRCxVQUFVLEdBQUcsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEdBQUcsU0FBUyxDQUFDO1FBQ2xELElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxHQUFHLFVBQVUsQ0FBQztRQUVwRCxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDcEUsQ0FBQztJQUVELGNBQWM7SUFDSixXQUFXO1FBQ25CLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMxRyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQztRQUM1RixJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1FBQ2pFLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxTQUFTLENBQ2xCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQ3ZCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxFQUNsQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxHQUFHLENBQUMsRUFDbkMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQzdCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLENBQUMsTUFBTSxDQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXJCLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNsQyxPQUFPLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGNBQWM7SUFDSixlQUFlO1FBQ3ZCLE1BQU0sUUFBUSxHQUFHLElBQUksS0FBSyxFQUFFLENBQUM7UUFDN0IsUUFBUSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFDbkMsUUFBUSxDQUFDLEdBQUcsR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDMUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRXBDLE1BQU0sUUFBUSxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDcEMsQ0FBQyxJQUFJLEVBQUUsRUFBRTtZQUNQLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEIsQ0FBQyxFQUNELFlBQVksRUFDWixDQUFDLENBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUNwQyxDQUFDLElBQUksRUFBRSxFQUFFO1lBQ1AsUUFBUSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixDQUFDLEVBQ0QsV0FBVyxFQUNYLENBQUMsQ0FDRixDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQ3BDLENBQUMsSUFBSSxFQUFFLEVBQUU7WUFDUCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RCLENBQUMsRUFDRCxZQUFZLEVBQ1osQ0FBQyxDQUNGLENBQUM7UUFDRixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNZLFdBQVc7UUFDckIsT0FBTyxVQUFVLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsS0FBSyxlQUFlLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsTUFBTSxJQUFJLENBQUM7SUFDNUcsQ0FBQzs4R0F6YVUsMEJBQTBCO2tHQUExQiwwQkFBMEIsa1lDM0J2Qyx1Z0JBaUJBOzsyRkRVYSwwQkFBMEI7a0JBUHRDLFNBQVM7K0JBQ0Usc0JBQXNCLG1CQUdmLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7d0RBeWF6QixXQUFXO3NCQUR0QixXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNWEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcclxuaW1wb3J0IHtcclxuICBhZnRlck5leHRSZW5kZXIsXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ29tcG9uZW50LFxyXG4gIGNvbXB1dGVkLFxyXG4gIGVmZmVjdCxcclxuICBFbGVtZW50UmVmLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIGluamVjdCxcclxuICBpbnB1dCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgUmVuZGVyZXIyLFxyXG4gIHNpZ25hbCxcclxuICB2aWV3Q2hpbGQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFYSW1hZ2VFZGl0b3JDb250YWluZXJDb21wb25lbnQgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3ItY29udGFpbmVyL2ltYWdlLWVkaXRvci1jb250YWluZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQVhJbWFnZUVkaXRvclNlcnZpY2UgfSBmcm9tICcuLi9pbWFnZS1lZGl0b3Iuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWltYWdlLWVkaXRvci12aWV3JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW1hZ2UtZWRpdG9yLXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2ltYWdlLWVkaXRvci12aWV3LmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYSW1hZ2VFZGl0b3JWaWV3Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcclxuICAvKipcclxuICAgKiBpdHMgcmVjZWl2ZSBpbWFnZSBzcmMuXHJcbiAgICovXHJcbiAgc3JjID0gaW5wdXQ8c3RyaW5nPignJyk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY2FudmFzRWxlbSA9IHZpZXdDaGlsZDxFbGVtZW50UmVmPEhUTUxDYW52YXNFbGVtZW50Pj4oJ2NhbnZhc0VsZW0nKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjdHggPSBzaWduYWw8Q2FudmFzUmVuZGVyaW5nQ29udGV4dDJEPihudWxsKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzZXJ2aWNlID0gaW5qZWN0KEFYSW1hZ2VFZGl0b3JTZXJ2aWNlKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wSW1hZ2VEYXRhID0gc2lnbmFsPEltYWdlRGF0YT4obnVsbCk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgaXNNb3VzZURvd24gPSBzaWduYWwoZmFsc2UpO1xyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNyb3BTdGFydFggPSBzaWduYWwoMCk7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY3JvcFN0YXJ0WSA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wRW5kWCA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBjcm9wRW5kWSA9IHNpZ25hbCgwKTtcclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBwYXJlbnQgPSBpbmplY3QoQVhJbWFnZUVkaXRvckNvbnRhaW5lckNvbXBvbmVudCk7XHJcbiAgcHJvdGVjdGVkIHJlbmRlcmVyID0gaW5qZWN0KFJlbmRlcmVyMik7XHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgaW1hZ2VBc3BlY3QgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLndpZHRoIC8gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLmhlaWdodDtcclxuICB9KTtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICByZXNpemVFdmVudExpc3RlbmVyO1xyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcjtcclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgcmVzaXplV2luZG93KCkge1xyXG4gICAgdGhpcy5jYW52YXNSZXNwb25zaXZlKHRoaXMuc2VydmljZS5uZXdJbWFnZSgpKTtcclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGNhbnZhc1Jlc3BvbnNpdmUoaW1hZ2U6IEhUTUxJbWFnZUVsZW1lbnQpIHtcclxuICAgIGNvbnN0IHBhcmVudFdpZHRoID0gKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkubmF0aXZlRWxlbWVudCBhcyBIVE1MRGl2RWxlbWVudCkuY2xpZW50V2lkdGg7XHJcbiAgICBjb25zdCBpbWFnZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLndpZHRoO1xyXG5cclxuICAgIGlmIChwYXJlbnRXaWR0aCA8IGltYWdlV2lkdGgpIHtcclxuICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLndpZHRoID0gYCR7cGFyZW50V2lkdGh9cHhgO1xyXG4gICAgICB0aGlzLmdldEhvc3RFbGVtZW50KCkuc3R5bGUuaGVpZ2h0ID0gYCR7cGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCl9cHhgO1xyXG4gICAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gcGFyZW50V2lkdGg7XHJcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gcGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCk7XHJcbiAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKGltYWdlLCAwLCAwLCBwYXJlbnRXaWR0aCwgcGFyZW50V2lkdGggKiB0aGlzLmltYWdlQXNwZWN0KCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5nZXRIb3N0RWxlbWVudCgpLnN0eWxlLndpZHRoID0gYCR7aW1hZ2VXaWR0aH1weGA7XHJcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5zdHlsZS5oZWlnaHQgPSBgJHtpbWFnZVdpZHRoIC8gdGhpcy5pbWFnZUFzcGVjdCgpfXB4YDtcclxuICAgICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCA9IGltYWdlV2lkdGg7XHJcbiAgICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuaGVpZ2h0ID0gaW1hZ2VXaWR0aCAvIHRoaXMuaW1hZ2VBc3BlY3QoKTtcclxuICAgICAgdGhpcy5jdHgoKS5kcmF3SW1hZ2UoaW1hZ2UsIDAsIDAsIGltYWdlV2lkdGgsIGltYWdlV2lkdGggLyB0aGlzLmltYWdlQXNwZWN0KCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBjb25zdHJ1Y3RvcigpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xyXG4gICAgICB0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3Rlbih3aW5kb3csICdyZXNpemUnLCB0aGlzLnJlc2l6ZVdpbmRvdy5iaW5kKHRoaXMpKTtcclxuICAgICAgLy9sb2FkIGltYWdlXHJcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2Uuc2V0KG5ldyBJbWFnZSgpKTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpLnNyYyA9IHRoaXMuc3JjKCk7XHJcbiAgICAgIHRoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKS5jcm9zc09yaWdpbiA9ICdhbm9ueW1vdXMnO1xyXG4gICAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIgPSB0aGlzLnJlbmRlcmVyLmxpc3RlbihcclxuICAgICAgICB0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCksXHJcbiAgICAgICAgJ2xvYWQnLFxyXG4gICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQuYmluZCh0aGlzKSxcclxuICAgICAgKTtcclxuICAgICAgLy9zZXQgY2FudmFzIG9wdGlvbnNcclxuICAgICAgdGhpcy5jdHguc2V0KHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQuZ2V0Q29udGV4dCgnMmQnLCB7IHdpbGxSZWFkRnJlcXVlbnRseTogdHJ1ZSB9KSk7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZUpvaW4gPSAncm91bmQnO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gdGhpcy5zZXJ2aWNlLnBlbkNvbG9yKCk7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZVdpZHRoID0gdGhpcy5zZXJ2aWNlLmxpbmVXaWR0aCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzb3VyY2Utb3Zlcic7XHJcbiAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAxO1xyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KCgpID0+IHtcclxuICAgICAgaWYgKHRoaXMucGFyZW50LmltYWdlRWRpdG9yQ29udGFpbmVyKCkgJiYgdGhpcy5zZXJ2aWNlLmlzSW1hZ2VMb2FkKCkpIHtcclxuICAgICAgICB0aGlzLmNhbnZhc1Jlc3BvbnNpdmUodGhpcy5zZXJ2aWNlLmluaXRpYWxJbWFnZSgpKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UudG9nZ2xlQ2xlYXIoKS51c2VySW50ZXJhY3QpIHJldHVybjtcclxuICAgICAgICBpZiAodGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyKCkuc3RhdGUpIHtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VMb2FkZWQoKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuICAgICk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkudXNlckludGVyYWN0IHx8ICF0aGlzLmN0eCgpKSByZXR1cm47XHJcbiAgICAgICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICAgICAgdGhpcy5jdHgoKS5maWx0ZXIgPSAnYnJpZ2h0bmVzcyg0MCUpJztcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5jdHgoKS5maWx0ZXIgPSAnYnJpZ2h0bmVzcygxMDAlKSc7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHRoaXMuY3R4KCkuZHJhd0ltYWdlKFxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCksXHJcbiAgICAgICAgICAwLFxyXG4gICAgICAgICAgMCxcclxuICAgICAgICAgIHRoaXMuc2VydmljZS5uZXdJbWFnZSgpLndpZHRoLFxyXG4gICAgICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0LFxyXG4gICAgICAgICk7XHJcbiAgICAgIH0sXHJcbiAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfSxcclxuICAgICk7XHJcblxyXG4gICAgZWZmZWN0KFxyXG4gICAgICAoKSA9PiB7XHJcbiAgICAgICAgaWYgKCF0aGlzLnNlcnZpY2Uucm90YXRlKCkudXNlckludGVyYWN0IHx8ICF0aGlzLmN0eCgpKSByZXR1cm47XHJcbiAgICAgICAgdGhpcy5yb3RhdGVJbWFnZSgpO1xyXG4gICAgICB9LFxyXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnJlc2l6ZUV2ZW50TGlzdGVuZXIpIHtcclxuICAgICAgdGhpcy5yZXNpemVFdmVudExpc3RlbmVyKCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuaW1hZ2VMb2FkRXZlbnRMaXN0ZW5lcikge1xyXG4gICAgICB0aGlzLmltYWdlTG9hZEV2ZW50TGlzdGVuZXIoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGltYWdlTG9hZGVkKCkge1xyXG4gICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlLnNldCh0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCkpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnRvZ2dsZUNsZWFyLnNldCh7IHVzZXJJbnRlcmFjdDogZmFsc2UsIHN0YXRlOiBmYWxzZSB9KTtcclxuICAgIHRoaXMuc2VydmljZS5pc0ltYWdlTG9hZC5zZXQodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBwZW5Db25maWdIYW5kbGVyKHBlblR5cGU6ICdwZW4nIHwgJ2hpZ2hsaWdodCcpIHtcclxuICAgIHN3aXRjaCAocGVuVHlwZSkge1xyXG4gICAgICBjYXNlICdwZW4nOlxyXG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAxO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdoaWdobGlnaHQnOlxyXG4gICAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQWxwaGEgPSAwLjAwODtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpIHtcclxuICAgIHJldHVybiB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgbW91c2VEb3duSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICB0aGlzLmlzTW91c2VEb3duLnNldCh0cnVlKTtcclxuXHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BTdGF0ZSgpLnN0YXRlKSB7XHJcbiAgICAgIHRoaXMuY3JvcFN0YXJ0WC5zZXQoZS5vZmZzZXRYKTtcclxuICAgICAgdGhpcy5jcm9wU3RhcnRZLnNldChlLm9mZnNldFkpO1xyXG4gICAgICB0aGlzLmNyb3BFbmRYLnNldCgwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGVuQ29uZmlnSGFuZGxlcih0aGlzLnNlcnZpY2UucGVuVHlwZSgpKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5saW5lV2lkdGgoKTtcclxuXHJcbiAgICAgIHRoaXMuY3R4KCkuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHRoaXMuY3R4KCkubW92ZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5saW5lVG8oZS5vZmZzZXRYLCBlLm9mZnNldFkpO1xyXG4gICAgICB0aGlzLmN0eCgpLnN0cm9rZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgbW91c2VNb3ZlSGFuZGxlcihlOiBNb3VzZUV2ZW50KSB7XHJcbiAgICBpZiAoIXRoaXMuaXNNb3VzZURvd24oKSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICB0aGlzLmN0eCgpLmdsb2JhbENvbXBvc2l0ZU9wZXJhdGlvbiA9ICdzY3JlZW4nO1xyXG4gICAgICB0aGlzLmNyb3BFbmRYLnNldChlLm9mZnNldFgpO1xyXG4gICAgICB0aGlzLmNyb3BFbmRZLnNldChlLm9mZnNldFkpO1xyXG4gICAgICB0aGlzLmRyYXdTZWxlY3Rpb24oKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuY3R4KCkubGluZVRvKGUub2Zmc2V0WCwgZS5vZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIG1vdXNlVXBIYW5kbGVyKCkge1xyXG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQoZmFsc2UpO1xyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSAmJiB0aGlzLmNyb3BFbmRYKCkpIHtcclxuICAgICAgdGhpcy5jdHgoKS5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb24gPSAnc291cmNlLW92ZXInO1xyXG4gICAgICB0aGlzLmNyb3BJbWFnZUZ1bmN0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN0eCgpLmNsb3NlUGF0aCgpO1xyXG4gICAgICB0aGlzLnNhdmVJbWFnZUNoYW5nZSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgdG91Y2hTdGFydEhhbmRsZXIoZTogVG91Y2hFdmVudCkge1xyXG4gICAgY29uc3Qgb2Zmc2V0WCA9IGUudG91Y2hlc1swXS5jbGllbnRYIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS5sZWZ0O1xyXG4gICAgY29uc3Qgb2Zmc2V0WSA9IGUudG91Y2hlc1swXS5jbGllbnRZIC0gdGhpcy5nZXRCb3VuZGluZ0NhbnZhc0hhbmRsZXIoKS50b3A7XHJcblxyXG4gICAgdGhpcy5pc01vdXNlRG93bi5zZXQodHJ1ZSk7XHJcblxyXG4gICAgaWYgKHRoaXMuc2VydmljZS5jcm9wU3RhdGUoKS5zdGF0ZSkge1xyXG4gICAgICB0aGlzLmNyb3BTdGFydFguc2V0KG9mZnNldFgpO1xyXG4gICAgICB0aGlzLmNyb3BTdGFydFkuc2V0KG9mZnNldFkpO1xyXG4gICAgICB0aGlzLmNyb3BFbmRYLnNldCgwKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMucGVuQ29uZmlnSGFuZGxlcih0aGlzLnNlcnZpY2UucGVuVHlwZSgpKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2VTdHlsZSA9IHRoaXMuc2VydmljZS5wZW5Db2xvcigpO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVDYXAgPSB0aGlzLnNlcnZpY2UubGluZUNhcCgpO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IHRoaXMuc2VydmljZS5saW5lV2lkdGgoKTtcclxuXHJcbiAgICAgIHRoaXMuY3R4KCkuYmVnaW5QYXRoKCk7XHJcbiAgICAgIHRoaXMuY3R4KCkubW92ZVRvKG9mZnNldFgsIG9mZnNldFkpO1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVUbyhvZmZzZXRYLCBvZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHRvdWNoTW92ZUhhbmRsZXIoZTogVG91Y2hFdmVudCkge1xyXG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpOyAvLyBwcmV2ZW50IHBhZ2UgZnJvbSBzY3JvbGxcclxuICAgIGlmICghdGhpcy5pc01vdXNlRG93bigpKSByZXR1cm47XHJcbiAgICBjb25zdCBvZmZzZXRYID0gZS50b3VjaGVzWzBdLmNsaWVudFggLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLmxlZnQ7XHJcbiAgICBjb25zdCBvZmZzZXRZID0gZS50b3VjaGVzWzBdLmNsaWVudFkgLSB0aGlzLmdldEJvdW5kaW5nQ2FudmFzSGFuZGxlcigpLnRvcDtcclxuXHJcbiAgICBpZiAodGhpcy5zZXJ2aWNlLmNyb3BTdGF0ZSgpLnN0YXRlKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NjcmVlbic7XHJcbiAgICAgIHRoaXMuY3JvcEVuZFguc2V0KG9mZnNldFgpO1xyXG4gICAgICB0aGlzLmNyb3BFbmRZLnNldChvZmZzZXRZKTtcclxuICAgICAgdGhpcy5kcmF3U2VsZWN0aW9uKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmN0eCgpLmxpbmVUbyhvZmZzZXRYLCBvZmZzZXRZKTtcclxuICAgICAgdGhpcy5jdHgoKS5zdHJva2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIHRvdWNoRW5kSGFuZGxlcigpIHtcclxuICAgIHRoaXMuaXNNb3VzZURvd24uc2V0KGZhbHNlKTtcclxuICAgIGlmICh0aGlzLnNlcnZpY2UuY3JvcFN0YXRlKCkuc3RhdGUgJiYgdGhpcy5jcm9wRW5kWCgpKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkuZ2xvYmFsQ29tcG9zaXRlT3BlcmF0aW9uID0gJ3NvdXJjZS1vdmVyJztcclxuICAgICAgdGhpcy5jcm9wSW1hZ2VGdW5jdGlvbigpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5jdHgoKS5jbG9zZVBhdGgoKTtcclxuICAgICAgdGhpcy5zYXZlSW1hZ2VDaGFuZ2UoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKiBAaWdub3JlICovXHJcbiAgcHJvdGVjdGVkIGRyYXdTZWxlY3Rpb24oKSB7XHJcbiAgICBjb25zdCBjcm9wV2lkdGggPSB0aGlzLmNyb3BFbmRYKCkgLSB0aGlzLmNyb3BTdGFydFgoKTtcclxuICAgIGNvbnN0IGNyb3BIZWlnaHQgPSB0aGlzLmNyb3BFbmRZKCkgLSB0aGlzLmNyb3BTdGFydFkoKTtcclxuXHJcbiAgICB0aGlzLmN0eCgpLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCk7XHJcbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKSwgMCwgMCk7XHJcbiAgICB0aGlzLmN0eCgpLnN0cm9rZVN0eWxlID0gJ3doaXRlJztcclxuICAgIHRoaXMuY3R4KCkuc2V0TGluZURhc2goWzQsIDEwXSk7XHJcbiAgICB0aGlzLmN0eCgpLmxpbmVXaWR0aCA9IDI7XHJcbiAgICB0aGlzLmN0eCgpLnN0cm9rZVJlY3QodGhpcy5jcm9wU3RhcnRYKCksIHRoaXMuY3JvcFN0YXJ0WSgpLCBjcm9wV2lkdGgsIGNyb3BIZWlnaHQpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY3JvcEltYWdlRnVuY3Rpb24oKSB7XHJcbiAgICB0aGlzLmN0eCgpLmNsZWFyUmVjdCgwLCAwLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoLCB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LmhlaWdodCk7XHJcbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZSh0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKSwgMCwgMCk7XHJcblxyXG4gICAgbGV0IGltYWdlRGF0YTogSW1hZ2VEYXRhO1xyXG4gICAgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpIDwgdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGltYWdlRGF0YSA9IHRoaXMuY3R4KCkuZ2V0SW1hZ2VEYXRhKFxyXG4gICAgICAgIHRoaXMuY3JvcFN0YXJ0WCgpLFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFkoKSxcclxuICAgICAgICB0aGlzLmNyb3BFbmRYKCkgLSB0aGlzLmNyb3BTdGFydFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFkoKSAtIHRoaXMuY3JvcEVuZFkoKSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPiB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPiB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgaW1hZ2VEYXRhID0gdGhpcy5jdHgoKS5nZXRJbWFnZURhdGEoXHJcbiAgICAgICAgdGhpcy5jcm9wRW5kWCgpLFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFkoKSxcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFgoKSAtIHRoaXMuY3JvcEVuZFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFkoKSAtIHRoaXMuY3JvcEVuZFkoKSxcclxuICAgICAgKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPCB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPCB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgaW1hZ2VEYXRhID0gdGhpcy5jdHgoKS5nZXRJbWFnZURhdGEoXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wU3RhcnRZKCksXHJcbiAgICAgICAgdGhpcy5jcm9wRW5kWCgpIC0gdGhpcy5jcm9wU3RhcnRYKCksXHJcbiAgICAgICAgdGhpcy5jcm9wRW5kWSgpIC0gdGhpcy5jcm9wU3RhcnRZKCksXHJcbiAgICAgICk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpIDwgdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIGltYWdlRGF0YSA9IHRoaXMuY3R4KCkuZ2V0SW1hZ2VEYXRhKFxyXG4gICAgICAgIHRoaXMuY3JvcEVuZFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFkoKSxcclxuICAgICAgICB0aGlzLmNyb3BTdGFydFgoKSAtIHRoaXMuY3JvcEVuZFgoKSxcclxuICAgICAgICB0aGlzLmNyb3BFbmRZKCkgLSB0aGlzLmNyb3BTdGFydFkoKSxcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBkYXRhOiBVaW50OENsYW1wZWRBcnJheSA9IGltYWdlRGF0YS5kYXRhO1xyXG5cclxuICAgIGNvbnN0IGJyaWdodG5lc3NGYWN0b3IgPSAyLjQ7IC8vIEluY3JlYXNlIGJyaWdodG5lc3MgYnkgMjAlXHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGRhdGEubGVuZ3RoOyBpICs9IDQpIHtcclxuICAgICAgZGF0YVtpXSA9IGRhdGFbaV0gKiBicmlnaHRuZXNzRmFjdG9yOyAvLyBSZWRcclxuICAgICAgZGF0YVtpICsgMV0gPSBkYXRhW2kgKyAxXSAqIGJyaWdodG5lc3NGYWN0b3I7IC8vIEdyZWVuXHJcbiAgICAgIGRhdGFbaSArIDJdID0gZGF0YVtpICsgMl0gKiBicmlnaHRuZXNzRmFjdG9yOyAvLyBCbHVlXHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpIDwgdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgdGhpcy5jcm9wU3RhcnRYKCksIHRoaXMuY3JvcEVuZFkoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpID4gdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgdGhpcy5jcm9wRW5kWCgpLCB0aGlzLmNyb3BFbmRZKCkpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmNyb3BTdGFydFgoKSA8IHRoaXMuY3JvcEVuZFgoKSAmJiB0aGlzLmNyb3BTdGFydFkoKSA8IHRoaXMuY3JvcEVuZFkoKSkge1xyXG4gICAgICB0aGlzLmN0eCgpLnB1dEltYWdlRGF0YShpbWFnZURhdGEsIHRoaXMuY3JvcFN0YXJ0WCgpLCB0aGlzLmNyb3BTdGFydFkoKSk7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMuY3JvcFN0YXJ0WCgpID4gdGhpcy5jcm9wRW5kWCgpICYmIHRoaXMuY3JvcFN0YXJ0WSgpIDwgdGhpcy5jcm9wRW5kWSgpKSB7XHJcbiAgICAgIHRoaXMuY3R4KCkucHV0SW1hZ2VEYXRhKGltYWdlRGF0YSwgdGhpcy5jcm9wRW5kWCgpLCB0aGlzLmNyb3BTdGFydFkoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5jcm9wSW1hZ2VEYXRhLnNldChpbWFnZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgLyoqIEBpZ25vcmUgKi9cclxuICBwcm90ZWN0ZWQgY3JvcEJ1dHRvbkhhbmRsZXIoKSB7XHJcbiAgICBsZXQgY3JvcFdpZHRoOiBudW1iZXI7XHJcbiAgICBsZXQgY3JvcEhlaWdodDogbnVtYmVyO1xyXG5cclxuICAgIHRoaXMuc2VydmljZS5yb3RhdGUudXBkYXRlKChwcmV2KSA9PiB7XHJcbiAgICAgIHJldHVybiB7IHVzZXJJbnRlcmFjdDogZmFsc2UsIHN0YXRlOiBwcmV2LnN0YXRlIH07XHJcbiAgICB9KTtcclxuXHJcbiAgICBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPCB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPiB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgY3JvcFdpZHRoID0gdGhpcy5jcm9wRW5kWCgpIC0gdGhpcy5jcm9wU3RhcnRYKCk7XHJcbiAgICAgIGNyb3BIZWlnaHQgPSB0aGlzLmNyb3BTdGFydFkoKSAtIHRoaXMuY3JvcEVuZFkoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPiB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPiB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgY3JvcFdpZHRoID0gdGhpcy5jcm9wU3RhcnRYKCkgLSB0aGlzLmNyb3BFbmRYKCk7XHJcbiAgICAgIGNyb3BIZWlnaHQgPSB0aGlzLmNyb3BTdGFydFkoKSAtIHRoaXMuY3JvcEVuZFkoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPCB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPCB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgY3JvcFdpZHRoID0gdGhpcy5jcm9wRW5kWCgpIC0gdGhpcy5jcm9wU3RhcnRYKCk7XHJcbiAgICAgIGNyb3BIZWlnaHQgPSB0aGlzLmNyb3BFbmRZKCkgLSB0aGlzLmNyb3BTdGFydFkoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5jcm9wU3RhcnRYKCkgPiB0aGlzLmNyb3BFbmRYKCkgJiYgdGhpcy5jcm9wU3RhcnRZKCkgPCB0aGlzLmNyb3BFbmRZKCkpIHtcclxuICAgICAgY3JvcFdpZHRoID0gdGhpcy5jcm9wU3RhcnRYKCkgLSB0aGlzLmNyb3BFbmRYKCk7XHJcbiAgICAgIGNyb3BIZWlnaHQgPSB0aGlzLmNyb3BFbmRZKCkgLSB0aGlzLmNyb3BTdGFydFkoKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNhbnZhc0VsZW0oKS5uYXRpdmVFbGVtZW50LndpZHRoID0gY3JvcFdpZHRoO1xyXG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQgPSBjcm9wSGVpZ2h0O1xyXG5cclxuICAgIHRoaXMuY3R4KCkucHV0SW1hZ2VEYXRhKHRoaXMuY3JvcEltYWdlRGF0YSgpLCAwLCAwKTtcclxuICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XHJcbiAgICB0aGlzLmNyb3BJbWFnZURhdGEuc2V0KG51bGwpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmNyb3BTdGF0ZS5zZXQoeyB1c2VySW50ZXJhY3Q6IGZhbHNlLCBzdGF0ZTogZmFsc2UgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCByb3RhdGVJbWFnZSgpIHtcclxuICAgIHRoaXMuY3R4KCkuc2F2ZSgpO1xyXG4gICAgdGhpcy5jdHgoKS5jbGVhclJlY3QoMCwgMCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC53aWR0aCwgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC5oZWlnaHQpO1xyXG4gICAgdGhpcy5jdHgoKS50cmFuc2xhdGUodGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkud2lkdGggLyAyLCB0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS5oZWlnaHQgLyAyKTtcclxuICAgIHRoaXMuY3R4KCkucm90YXRlKCh0aGlzLnNlcnZpY2Uucm90YXRlKCkuc3RhdGUgKiBNYXRoLlBJKSAvIDE4MCk7XHJcbiAgICB0aGlzLmN0eCgpLmRyYXdJbWFnZShcclxuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCksXHJcbiAgICAgIC10aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS53aWR0aCAvIDIsXHJcbiAgICAgIC10aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS5oZWlnaHQgLyAyLFxyXG4gICAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2UoKS53aWR0aCxcclxuICAgICAgdGhpcy5zZXJ2aWNlLm5ld0ltYWdlKCkuaGVpZ2h0LFxyXG4gICAgKTtcclxuICAgIHRoaXMuY3R4KCkucmVzdG9yZSgpO1xyXG5cclxuICAgIHRoaXMuc2F2ZUltYWdlQ2hhbmdlKCk7XHJcbiAgICB0aGlzLnNlcnZpY2Uucm90YXRlLnVwZGF0ZSgocHJldikgPT4ge1xyXG4gICAgICByZXR1cm4geyBzdGF0ZTogcHJldi5zdGF0ZSwgdXNlckludGVyYWN0OiBmYWxzZSB9O1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIHByb3RlY3RlZCBzYXZlSW1hZ2VDaGFuZ2UoKSB7XHJcbiAgICBjb25zdCBuZXdJbWFnZSA9IG5ldyBJbWFnZSgpO1xyXG4gICAgbmV3SW1hZ2UuY3Jvc3NPcmlnaW4gPSAnYW5vbnltb3VzJztcclxuICAgIG5ld0ltYWdlLnNyYyA9IHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9EYXRhVVJMKCdpbWFnZS9qcGVnJywgMSk7XHJcbiAgICB0aGlzLnNlcnZpY2UubmV3SW1hZ2Uuc2V0KG5ld0ltYWdlKTtcclxuXHJcbiAgICBjb25zdCB0ZW1wQmxvYiA9IFtdO1xyXG4gICAgdGhpcy5jYW52YXNFbGVtKCkubmF0aXZlRWxlbWVudC50b0Jsb2IoXHJcbiAgICAgIChibG9iKSA9PiB7XHJcbiAgICAgICAgdGVtcEJsb2IucHVzaChibG9iKTtcclxuICAgICAgfSxcclxuICAgICAgJ2ltYWdlL2pwZWcnLFxyXG4gICAgICAxLFxyXG4gICAgKTtcclxuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9CbG9iKFxyXG4gICAgICAoYmxvYikgPT4ge1xyXG4gICAgICAgIHRlbXBCbG9iLnB1c2goYmxvYik7XHJcbiAgICAgIH0sXHJcbiAgICAgICdpbWFnZS9wbmcnLFxyXG4gICAgICAxLFxyXG4gICAgKTtcclxuICAgIHRoaXMuY2FudmFzRWxlbSgpLm5hdGl2ZUVsZW1lbnQudG9CbG9iKFxyXG4gICAgICAoYmxvYikgPT4ge1xyXG4gICAgICAgIHRlbXBCbG9iLnB1c2goYmxvYik7XHJcbiAgICAgIH0sXHJcbiAgICAgICdpbWFnZS93ZWJwJyxcclxuICAgICAgMSxcclxuICAgICk7XHJcbiAgICB0aGlzLnNlcnZpY2UuaW1hZ2VCbG9iLnNldCh0ZW1wQmxvYik7XHJcbiAgfVxyXG5cclxuICAvKiogQGlnbm9yZSAqL1xyXG4gIEBIb3N0QmluZGluZygnc3R5bGUnKVxyXG4gIHByaXZhdGUgZ2V0IF9faG9zdFN0eWxlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gYHdpZHRoOiAke3RoaXMuc2VydmljZS5pbml0aWFsSW1hZ2UoKT8ud2lkdGh9cHg7IGhlaWdodDogJHt0aGlzLnNlcnZpY2UuaW5pdGlhbEltYWdlKCk/LmhlaWdodH1weGA7XHJcbiAgfVxyXG59XHJcbiIsIjxjYW52YXNcbiAgdGFiaW5kZXg9XCIxXCJcbiAgKG1vdXNlZG93bik9XCJtb3VzZURvd25IYW5kbGVyKCRldmVudClcIlxuICAobW91c2V1cCk9XCJtb3VzZVVwSGFuZGxlcigpXCJcbiAgKG1vdXNlbW92ZSk9XCJtb3VzZU1vdmVIYW5kbGVyKCRldmVudClcIlxuICAodG91Y2hzdGFydCk9XCJ0b3VjaFN0YXJ0SGFuZGxlcigkZXZlbnQpXCJcbiAgKHRvdWNoZW5kKT1cInRvdWNoRW5kSGFuZGxlcigpXCJcbiAgKHRvdWNobW92ZSk9XCJ0b3VjaE1vdmVIYW5kbGVyKCRldmVudClcIlxuICBjbGFzcz1cImF4LWNhbnZhcy1lbGVtZW50XCJcbiAgI2NhbnZhc0VsZW1cbj48L2NhbnZhcz5cbjxheC1idXR0b25cbiAgKGNsaWNrKT1cImNyb3BCdXR0b25IYW5kbGVyKClcIlxuICBbc3R5bGVdPVwieyBkaXNwbGF5OiBzZXJ2aWNlLmNyb3BTdGF0ZSgpLnN0YXRlID8gJ2Jsb2NrJyA6ICdub25lJyB9XCJcbiAgY2xhc3M9XCJheC1jcm9wLXNhdmUgYXgtc21cIlxuICB0ZXh0PVwiQ3JvcFwiXG4+PC9heC1idXR0b24+XG4iXX0=
@@ -14,13 +14,17 @@ export class AXMediaViewerContainerComponent {
14
14
  });
15
15
  }
16
16
  next() {
17
- if (this.arrayIndex() === this.arrayLength() - 1)
17
+ if (this.arrayIndex() === this.arrayLength() - 1) {
18
+ this.service.selectedIndex.set(0);
18
19
  return;
20
+ }
19
21
  this.service.selectedIndex.update((prev) => prev + 1);
20
22
  }
21
23
  prev() {
22
- if (this.arrayIndex() === 0)
24
+ if (this.arrayIndex() === 0) {
25
+ this.service.selectedIndex.set(this.arrayLength() - 1);
23
26
  return;
27
+ }
24
28
  this.service.selectedIndex.update((prev) => prev - 1);
25
29
  }
26
30
  closeHandler() {
@@ -45,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
45
49
  type: HostBinding,
46
50
  args: ['class']
47
51
  }] } });
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVkaWEtdmlld2VyL3NyYy9saWIvbWVkaWEtdmlld2VyLWNvbnRhaW5lci9tZWRpYS12aWV3ZXItY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9tZWRpYS12aWV3ZXItY29udGFpbmVyL21lZGlhLXZpZXdlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVUvRCxNQUFNLE9BQU8sK0JBQStCO0lBUzFDO1FBUkEsY0FBUyxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUUvQixZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFdkMsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFELGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRzVFLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQztZQUFFLE9BQU87UUFDekQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDO1lBQUUsT0FBTztRQUNwQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRVMsWUFBWTtRQUNwQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELGNBQWM7SUFDZCxJQUNJLFdBQVc7UUFDYixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsQ0FBQztZQUNoQyxPQUFPLDBCQUEwQixDQUFDO1FBQ3BDLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyw0QkFBNEIsQ0FBQztRQUN0QyxDQUFDO0lBQ0gsQ0FBQzs4R0FyQ1UsK0JBQStCO2tHQUEvQiwrQkFBK0IsMlBBRi9CLENBQUMsb0JBQW9CLENBQUMsMEJDcEJuQyxnV0FXQTs7MkZEV2EsK0JBQStCO2tCQVIzQyxTQUFTOytCQUNFLDJCQUEyQixtQkFHcEIsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxhQUMxQixDQUFDLG9CQUFvQixDQUFDO3dEQWlDN0IsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhZnRlck5leHRSZW5kZXIsXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIGNvbXB1dGVkLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBWE1lZGlhVmlld2VyRGF0YSB9IGZyb20gJy4uL21lZGlhLXZpZXdlci10eXBlcyc7XG5pbXBvcnQgeyBBWE1lZGlhVmlld2VyU2VydmljZSB9IGZyb20gJy4uL21lZGlhLXZpZXdlci5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVkaWEtdmlld2VyLWNvbnRhaW5lcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZWRpYS12aWV3ZXItY29udGFpbmVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVkaWEtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuc2NzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgcHJvdmlkZXJzOiBbQVhNZWRpYVZpZXdlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lZGlhVmlld2VyQ29udGFpbmVyQ29tcG9uZW50IHtcbiAgZGF0YUFycmF5ID0gaW5wdXQ8QVhNZWRpYVZpZXdlckRhdGFbXT4oKTtcblxuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWE1lZGlhVmlld2VyU2VydmljZSk7XG5cbiAgcHJvdGVjdGVkIGFycmF5TGVuZ3RoID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5kYXRhQXJyYXkoKS5sZW5ndGgpO1xuICBwcm90ZWN0ZWQgYXJyYXlJbmRleCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuc2VydmljZS5zZWxlY3RlZEluZGV4KCkpO1xuICBwcm90ZWN0ZWQgc2hvd0NvbXBvbmVudCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YUFycmF5KClbdGhpcy5hcnJheUluZGV4KCldKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgdGhpcy5zZXJ2aWNlLmRhdGFBcnJheS5zZXQodGhpcy5kYXRhQXJyYXkoKSk7XG4gICAgfSk7XG4gIH1cblxuICBuZXh0KCkge1xuICAgIGlmICh0aGlzLmFycmF5SW5kZXgoKSA9PT0gdGhpcy5hcnJheUxlbmd0aCgpIC0gMSkgcmV0dXJuO1xuICAgIHRoaXMuc2VydmljZS5zZWxlY3RlZEluZGV4LnVwZGF0ZSgocHJldikgPT4gcHJldiArIDEpO1xuICB9XG5cbiAgcHJldigpIHtcbiAgICBpZiAodGhpcy5hcnJheUluZGV4KCkgPT09IDApIHJldHVybjtcbiAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWRJbmRleC51cGRhdGUoKHByZXYpID0+IHByZXYgLSAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZUhhbmRsZXIoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmlzRnVsbFNjcmVlbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlcnZpY2UuaXNGdWxsU2NyZWVuKCkpIHtcbiAgICAgIHJldHVybiAnYXgtZnVsbC1zY3JlZW4tY29udGlhbmVyJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdheC1ub3JtYWwtc2NyZWVuLWNvbnRpYW5lcic7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj4gPC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwiYXgtbWVkaWEtdmlld2VyLXNsaWRlci1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuXG4gIDxheC1tZWRpYS12aWV3ZXItc2xpZGVyIFtkYXRhT2JqZWN0XT1cInNob3dDb21wb25lbnQoKVwiPjwvYXgtbWVkaWEtdmlld2VyLXNsaWRlcj5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+IDwvbmctY29udGVudD5cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVkaWEtdmlld2VyL3NyYy9saWIvbWVkaWEtdmlld2VyLWNvbnRhaW5lci9tZWRpYS12aWV3ZXItY29udGFpbmVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9tZWRpYS12aWV3ZXItY29udGFpbmVyL21lZGlhLXZpZXdlci1jb250YWluZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGVBQWUsRUFDZix1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7OztBQVUvRCxNQUFNLE9BQU8sK0JBQStCO0lBUzFDO1FBUkEsY0FBUyxHQUFHLEtBQUssRUFBdUIsQ0FBQztRQUUvQixZQUFPLEdBQUcsTUFBTSxDQUFDLG9CQUFvQixDQUFDLENBQUM7UUFFdkMsZ0JBQVcsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELGVBQVUsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQyxDQUFDO1FBQzFELGtCQUFhLEdBQUcsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRzVFLGVBQWUsQ0FBQyxHQUFHLEVBQUU7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQy9DLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDakQsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xDLE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ3ZELE9BQU87UUFDVCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVTLFlBQVk7UUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxjQUFjO0lBQ2QsSUFDSSxXQUFXO1FBQ2IsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUM7WUFDaEMsT0FBTywwQkFBMEIsQ0FBQztRQUNwQyxDQUFDO2FBQU0sQ0FBQztZQUNOLE9BQU8sNEJBQTRCLENBQUM7UUFDdEMsQ0FBQztJQUNILENBQUM7OEdBM0NVLCtCQUErQjtrR0FBL0IsK0JBQStCLDJQQUYvQixDQUFDLG9CQUFvQixDQUFDLDBCQ3BCbkMsZ1dBV0E7OzJGRFdhLCtCQUErQjtrQkFSM0MsU0FBUzsrQkFDRSwyQkFBMkIsbUJBR3BCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksYUFDMUIsQ0FBQyxvQkFBb0IsQ0FBQzt3REF1QzdCLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgYWZ0ZXJOZXh0UmVuZGVyLFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBjb21wdXRlZCxcbiAgSG9zdEJpbmRpbmcsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQVhNZWRpYVZpZXdlckRhdGEgfSBmcm9tICcuLi9tZWRpYS12aWV3ZXItdHlwZXMnO1xuaW1wb3J0IHsgQVhNZWRpYVZpZXdlclNlcnZpY2UgfSBmcm9tICcuLi9tZWRpYS12aWV3ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lZGlhLXZpZXdlci1jb250YWluZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLWNvbnRhaW5lci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lZGlhLXZpZXdlci1jb250YWluZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW0FYTWVkaWFWaWV3ZXJTZXJ2aWNlXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZWRpYVZpZXdlckNvbnRhaW5lckNvbXBvbmVudCB7XG4gIGRhdGFBcnJheSA9IGlucHV0PEFYTWVkaWFWaWV3ZXJEYXRhW10+KCk7XG5cbiAgcHJvdGVjdGVkIHNlcnZpY2UgPSBpbmplY3QoQVhNZWRpYVZpZXdlclNlcnZpY2UpO1xuXG4gIHByb3RlY3RlZCBhcnJheUxlbmd0aCA9IGNvbXB1dGVkKCgpID0+IHRoaXMuZGF0YUFycmF5KCkubGVuZ3RoKTtcbiAgcHJvdGVjdGVkIGFycmF5SW5kZXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWRJbmRleCgpKTtcbiAgcHJvdGVjdGVkIHNob3dDb21wb25lbnQgPSBjb21wdXRlZCgoKSA9PiB0aGlzLmRhdGFBcnJheSgpW3RoaXMuYXJyYXlJbmRleCgpXSk7XG5cbiAgY29uc3RydWN0b3IoKSB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICAgIHRoaXMuc2VydmljZS5kYXRhQXJyYXkuc2V0KHRoaXMuZGF0YUFycmF5KCkpO1xuICAgIH0pO1xuICB9XG5cbiAgbmV4dCgpIHtcbiAgICBpZiAodGhpcy5hcnJheUluZGV4KCkgPT09IHRoaXMuYXJyYXlMZW5ndGgoKSAtIDEpIHtcbiAgICAgIHRoaXMuc2VydmljZS5zZWxlY3RlZEluZGV4LnNldCgwKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkSW5kZXgudXBkYXRlKChwcmV2KSA9PiBwcmV2ICsgMSk7XG4gIH1cblxuICBwcmV2KCkge1xuICAgIGlmICh0aGlzLmFycmF5SW5kZXgoKSA9PT0gMCkge1xuICAgICAgdGhpcy5zZXJ2aWNlLnNlbGVjdGVkSW5kZXguc2V0KHRoaXMuYXJyYXlMZW5ndGgoKSAtIDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnNlcnZpY2Uuc2VsZWN0ZWRJbmRleC51cGRhdGUoKHByZXYpID0+IHByZXYgLSAxKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBjbG9zZUhhbmRsZXIoKSB7XG4gICAgdGhpcy5zZXJ2aWNlLmlzRnVsbFNjcmVlbi5zZXQoZmFsc2UpO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXG4gIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLnNlcnZpY2UuaXNGdWxsU2NyZWVuKCkpIHtcbiAgICAgIHJldHVybiAnYXgtZnVsbC1zY3JlZW4tY29udGlhbmVyJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdheC1ub3JtYWwtc2NyZWVuLWNvbnRpYW5lcic7XG4gICAgfVxuICB9XG59XG4iLCI8bmctY29udGVudCBzZWxlY3Q9XCJheC1oZWFkZXJcIj4gPC9uZy1jb250ZW50PlxuXG48ZGl2IGNsYXNzPVwiYXgtbWVkaWEtdmlld2VyLXNsaWRlci1jb250YWluZXJcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc3VmZml4XCI+PC9uZy1jb250ZW50PlxuXG4gIDxheC1tZWRpYS12aWV3ZXItc2xpZGVyIFtkYXRhT2JqZWN0XT1cInNob3dDb21wb25lbnQoKVwiPjwvYXgtbWVkaWEtdmlld2VyLXNsaWRlcj5cblxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG48L2Rpdj5cblxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtZm9vdGVyXCI+IDwvbmctY29udGVudD5cbiJdfQ==
@@ -28,10 +28,10 @@ export class AXMediaViewerSliderComponent {
28
28
  }
29
29
  }
30
30
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerSliderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXMediaViewerSliderComponent, selector: "ax-media-viewer-slider", inputs: { dataObject: { classPropertyName: "dataObject", publicName: "dataObject", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n", styles: ["ax-media-viewer-slider{display:flex;justify-content:center;align-items:center;min-height:40vh;overflow:hidden;margin-inline:2rem;width:fit-content}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.0", type: AXMediaViewerSliderComponent, selector: "ax-media-viewer-slider", inputs: { dataObject: { classPropertyName: "dataObject", publicName: "dataObject", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n", styles: ["ax-media-viewer-slider{display:flex;justify-content:center;align-items:center;min-height:50vh;overflow:hidden;margin-inline:2rem;width:fit-content}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
32
32
  }
33
33
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXMediaViewerSliderComponent, decorators: [{
34
34
  type: Component,
35
- args: [{ selector: 'ax-media-viewer-slider', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n", styles: ["ax-media-viewer-slider{display:flex;justify-content:center;align-items:center;min-height:40vh;overflow:hidden;margin-inline:2rem;width:fit-content}\n"] }]
35
+ args: [{ selector: 'ax-media-viewer-slider', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-template [cdkPortalOutlet]=\"portal()\" (attached)=\"_handleAttached($event)\"></ng-template>\n", styles: ["ax-media-viewer-slider{display:flex;justify-content:center;align-items:center;min-height:50vh;overflow:hidden;margin-inline:2rem;width:fit-content}\n"] }]
36
36
  }], ctorParameters: () => [] });
37
37
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVkaWEtdmlld2VyLXNsaWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVkaWEtdmlld2VyL3NyYy9saWIvbWVkaWEtdmlld2VyLXNsaWRlci9tZWRpYS12aWV3ZXItc2xpZGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZWRpYS12aWV3ZXIvc3JjL2xpYi9tZWRpYS12aWV3ZXItc2xpZGVyL21lZGlhLXZpZXdlci1zbGlkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2xELE9BQU8sRUFBOEIsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbEYsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixTQUFTLEVBRVQsTUFBTSxFQUNOLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxFQUNOLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUV6RixPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBUy9ELE1BQU0sT0FBTyw0QkFBNEI7SUFXdkMsZUFBZTtJQUNmO1FBWFUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBRWpELGVBQVUsR0FBRyxLQUFLLEVBQXFCLENBQUM7UUFFeEMsZUFBZTtRQUNMLFdBQU0sR0FBRyxNQUFNLENBQThCLElBQUksQ0FBQyxDQUFDO1FBRTdELGVBQWU7UUFDTCxvQkFBZSxHQUFHLE1BQU0sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1FBSW5FLE1BQU0sQ0FDSixHQUFHLEVBQUU7WUFDSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsRUFBRSxDQUFDO2dCQUN0QixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FDYixJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQ3BGLENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQyxFQUNELEVBQUUsaUJBQWlCLEVBQUUsSUFBSSxFQUFFLENBQzVCLENBQUM7SUFDSixDQUFDO0lBRUQsZUFBZTtJQUNMLGVBQWUsQ0FBQyxHQUErQjtRQUN2RCxHQUFHLEdBQUcsR0FBNEIsQ0FBQztRQUNuQyxJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFLEVBQUUsQ0FBQztZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUM5RCxDQUFDO0lBQ0gsQ0FBQzs4R0EvQlUsNEJBQTRCO2tHQUE1Qiw0QkFBNEIsaU5DeEJ6QyxxR0FDQTs7MkZEdUJhLDRCQUE0QjtrQkFQeEMsU0FBUzsrQkFDRSx3QkFBd0IsbUJBR2pCLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpc0Jyb3dzZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29tcG9uZW50UmVmLFxuICBlZmZlY3QsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIHNpZ25hbCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBBWE1lZGlhVmlld2VyVHlwZVJlZ2lzdHJ5U2VydmljZSB9IGZyb20gJy4uL21lZGlhLXZpZXdlci10eXBlLXJlZ2lzdHJ5LnNlcnZpY2UnO1xuaW1wb3J0IHsgQVhNZWRpYVZpZXdlckRhdGEgfSBmcm9tICcuLi9tZWRpYS12aWV3ZXItdHlwZXMnO1xuaW1wb3J0IHsgQVhNZWRpYVZpZXdlclNlcnZpY2UgfSBmcm9tICcuLi9tZWRpYS12aWV3ZXIuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lZGlhLXZpZXdlci1zbGlkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVkaWEtdmlld2VyLXNsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL21lZGlhLXZpZXdlci1zbGlkZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVkaWFWaWV3ZXJTbGlkZXJDb21wb25lbnQge1xuICBwcm90ZWN0ZWQgc2VydmljZSA9IGluamVjdChBWE1lZGlhVmlld2VyU2VydmljZSk7XG5cbiAgZGF0YU9iamVjdCA9IGlucHV0PEFYTWVkaWFWaWV3ZXJEYXRhPigpO1xuXG4gIC8qKiAgQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgcG9ydGFsID0gc2lnbmFsPENvbXBvbmVudFBvcnRhbDxhbnk+IHwgbnVsbD4obnVsbCk7XG5cbiAgLyoqICBAaWdub3JlICovXG4gIHByb3RlY3RlZCByZWdpc3RyeVNlcnZpY2UgPSBpbmplY3QoQVhNZWRpYVZpZXdlclR5cGVSZWdpc3RyeVNlcnZpY2UpO1xuXG4gIC8qKiAgQGlnbm9yZSAqL1xuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBlZmZlY3QoXG4gICAgICAoKSA9PiB7XG4gICAgICAgIGlmICh0aGlzLmRhdGFPYmplY3QoKSkge1xuICAgICAgICAgIHRoaXMucG9ydGFsLnNldChcbiAgICAgICAgICAgIG5ldyBDb21wb25lbnRQb3J0YWwodGhpcy5yZWdpc3RyeVNlcnZpY2UucmVzb2x2ZSh0aGlzLmRhdGFPYmplY3QoKS50eXBlKS5jb21wb25lbnQpLFxuICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlIH0sXG4gICAgKTtcbiAgfVxuXG4gIC8qKiAgQGlnbm9yZSAqL1xuICBwcm90ZWN0ZWQgX2hhbmRsZUF0dGFjaGVkKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICByZWYgPSByZWYgYXMgQ29tcG9uZW50UmVmPHVua25vd24+O1xuICAgIGlmIChyZWYuaW5zdGFuY2UgJiYgaXNCcm93c2VyKCkpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVmLmluc3RhbmNlLCB7IG1lc3NhZ2U6IHRoaXMuZGF0YU9iamVjdCgpIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPG5nLXRlbXBsYXRlIFtjZGtQb3J0YWxPdXRsZXRdPVwicG9ydGFsKClcIiAoYXR0YWNoZWQpPVwiX2hhbmRsZUF0dGFjaGVkKCRldmVudClcIj48L25nLXRlbXBsYXRlPlxuIl19
@@ -78,7 +78,7 @@ export class AXTabsComponent extends MXBaseComponent {
78
78
  this.zone.runOutsideAngular(() => {
79
79
  this.indicator().nativeElement.addEventListener('transitionend', () => {
80
80
  this.setIndicatorPosition(this.activeTab());
81
- });
81
+ }, { once: true });
82
82
  });
83
83
  }
84
84
  /** @ignore */
@@ -180,4 +180,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
180
180
  type: HostBinding,
181
181
  args: ['class']
182
182
  }] } });
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUVOLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRzFEOzs7R0FHRztBQVFILE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQWU7SUFQcEQ7O1FBY0U7OztXQUdHO1FBQ0gsU0FBSSxHQUFHLEtBQUssQ0FBWSxTQUFTLENBQUMsQ0FBQztRQUVuQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFnQixRQUFRLENBQUMsQ0FBQztRQUUxQzs7O1dBR0c7UUFFSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCOzs7V0FHRztRQUVILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFRVCxjQUFTLEdBQUcsU0FBUyxDQUE4QixXQUFXLENBQUMsQ0FBQztRQUVoRSxTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLGNBQWM7UUFDTix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFtQjNCLGNBQVMsR0FBRyxNQUFNLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRXJELGVBQVUsR0FBRyxNQUFNLENBQUMs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QUFJLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ2hDLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7b0JBQ3hDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUM5QixjQUFjLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO29CQUMxQyxjQUFjLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXJMVSxlQUFlO2tHQUFmLGVBQWUsazBCQUlULGtCQUFrQiw0S0FUekIsaUdBQWlHOzsyRkFLaEcsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsaUdBQWlHLG1CQUUxRix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU83QixZQUFZO3NCQURuQixlQUFlO3VCQUFDLGtCQUFrQjtnQkFvQm5DLFNBQVM7c0JBRFIsS0FBSztnQkFRTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQXVDTixrQkFBa0I7c0JBRGpCLE1BQU07Z0JBS0ssV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRhYkNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFRhYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RhYi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFRhYkxvY2F0aW9uLCBBWFRhYkxvb2ssIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICcuL3RhYnMuY2xhc3MnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgdGhhdCBzZXJ2ZXMgYXMgYSBjb250YWluZXIgZm9yIHRhYiBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdGFicycsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGFiLWl0ZW1cIj48L25nLWNvbnRlbnQ+PHNwYW4gY2xhc3M9XCJheC10YWItaW5kaWNhdG9yXCIgI2luZGljYXRvcj48L3NwYW4+YCxcbiAgc3R5bGVVcmw6ICcuL3RhYnMuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUYWJzQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEFYVGFiSXRlbUNvbXBvbmVudClcbiAgcHJpdmF0ZSBfY29udGVudFRhYnMhOiBRdWVyeUxpc3Q8QVhUYWJJdGVtQ29tcG9uZW50PjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYXBwZWFyYW5jZSBzdHlsZSBvZiB0aGUgdGFiIGNvbXBvbmVudC5cbiAgICogIEBkZWZhdWx0VmFsdWUgJ2RlZmF1bHQnXG4gICAqL1xuICBsb29rID0gaW5wdXQ8QVhUYWJMb29rPignZGVmYXVsdCcpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgY29tcG9uZW50LlxuICAgKiBAZGVmYXVsdFZhbHVlICdib3R0b20nXG4gICAqL1xuICBsb2NhdGlvbiA9IGlucHV0PEFYVGFiTG9jYXRpb24+KCdib3R0b20nKTtcblxuICAvKipcbiAgICogQGRlZmF1bHRWYWx1ZSAnZmFsc2UnXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHJlc2l6ZSB0byBmaXQgaXRzIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBmaXRQYXJlbnQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlZmF1bHRWYWx1ZSAnZmFsc2UnXG4gICAqIEFwcGxpZXMgYSBtaW5pbXVtIHdpZHRoIGNvbnN0cmFpbnQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG1pbldpZHRoID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBgQVhUYWJDb250ZW50RGlyZWN0aXZlYCBhc3NvY2lhdGVkIHdpdGggdGhlIHRhYi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQhOiBBWFRhYkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBpbmRpY2F0b3IgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PignaW5kaWNhdG9yJyk7XG5cbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcblxuICBnZXQgaXRlbXMoKTogQVhUYWJJdGVtQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50VGFicy50b0FycmF5KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9zZWxlY3RlZEl0ZW0hOiBBWFRhYkl0ZW1Db21wb25lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuX3NlbGVjdGVkSXRlbSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBnZXQgc2VsZWN0ZWRJdGVtKCk6IEFYVGFiSXRlbUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlVGFiID0gc2lnbmFsPEFYVGFiSXRlbUNvbXBvbmVudD4obnVsbCk7XG5cbiAgI3RhYkNoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiKCkgJiYgdGhpcy5sb29rKCkgPT09ICd3aXRoLWxpbmUnKSB7XG4gICAgICB0aGlzLnNldEluZGljYXRvclBvc2l0aW9uKHRoaXMuYWN0aXZlVGFiKCkpO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQWN0aXZlVGFiQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3NzQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBjc3NDbGFzc2VzLnB1c2goYGF4LWxvb2stJHt0aGlzLmxvb2soKX1gKTtcbiAgICBjc3NDbGFzc2VzLnB1c2goYGF4LSR7dGhpcy5sb2NhdGlvbigpfWApO1xuICAgIGlmICh0aGlzLmZpdFBhcmVudCkgY3NzQ2xhc3Nlcy5wdXNoKGBheC10YWJzLWZpdGApO1xuICAgIHJldHVybiBjc3NDbGFzc2VzO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX2NvbnRlbnRUYWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2JpbmRPbkNsaWNrRXZlbnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9iaW5kT25DbGlja0V2ZW50KCk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaW5kaWNhdG9yKCkubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKCd0cmFuc2l0aW9uZW5kJywgKCkgPT4ge1xuICAgICAgICB0aGlzLnNldEluZGljYXRvclBvc2l0aW9uKHRoaXMuYWN0aXZlVGFiKCkpO1xuICAgICAgfSk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9iaW5kT25DbGlja0V2ZW50KCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maW5kKChjKSA9PiBjLmFjdGl2ZSkgfHwgdGhpcy5pdGVtc1swXTtcbiAgICB0aGlzLnNlbGVjdChzZWxlY3RlZCk7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAoIWMub25DbGljay5sZW5ndGgpIHtcbiAgICAgICAgYy5vbkNsaWNrLnN1YnNjcmliZSgodCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdC5uYXRpdmVFdmVudD8uaXNUcnVzdGVkO1xuICAgICAgICAgIHRoaXMuc2VsZWN0KGMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIHNwZWNpZmllZCB0YWIgYW5kIHVwZGF0ZXMgdGhlIGNvbnRlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgQVhUYWJJdGVtQ29tcG9uZW50fVxuICAgKi9cbiAgc2VsZWN0KHRhYjogbnVtYmVyIHwgQVhUYWJJdGVtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgdGFiSXRlbTogQVhUYWJJdGVtQ29tcG9uZW50ID0gdHlwZW9mIHRhYiA9PSAnbnVtYmVyJyA/IHRoaXMuaXRlbXNbdGFiXSA6IHRhYjtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQodGFiSXRlbSk7XG4gICAgLy9cbiAgICBpZiAoIXRhYiB8fCB0aGlzLnNlbGVjdGVkSXRlbSA9PSB0YWJJdGVtKSByZXR1cm47XG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdGFiSXRlbTtcbiAgICAvL1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoYykgPT4gKGMuYWN0aXZlID0gZmFsc2UpKTtcbiAgICB0YWJJdGVtLmFjdGl2ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50LnBvcnRhbCA9IHRhYkl0ZW0udGVtcGxhdGU7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMub25BY3RpdmVUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRoaXMuX2lzVXNlckludGVyYWN0aW9uLFxuICAgICAgdGFiOiB0YWJJdGVtLFxuICAgICAgaW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCxcbiAgICB9KTtcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbmRpY2F0b3JQb3NpdGlvbih0YWJJdGVtOiBBWFRhYkl0ZW1Db21wb25lbnQpIHtcbiAgICBjb25zdCBpbmRpY2F0b3JTdHlsZSA9IHRoaXMuaW5kaWNhdG9yKCkubmF0aXZlRWxlbWVudC5zdHlsZTtcbiAgICBjb25zdCBpdGVtU3RhdHMgPSB0YWJJdGVtLmdldFN0YXRzKCk7XG4gICAgaWYgKHRoaXMubG9vaygpID09PSAnd2l0aC1saW5lJykge1xuICAgICAgaW5kaWNhdG9yU3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAndG9wJyB8fCB0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGluZGljYXRvclN0eWxlLndpZHRoID0gYCR7aXRlbVN0YXRzLndpZHRofXB4YDtcbiAgICAgICAgaW5kaWNhdG9yU3R5bGUuaGVpZ2h0ID0gYDNweGA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lU3RhcnQgPSBgJHtpdGVtU3RhdHMubGVmdH1weGA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lRW5kID0gYHVuc2V0YDtcbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS50b3AgPSBgMHB4YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5ib3R0b20gPSBgdW5zZXRgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgaW5kaWNhdG9yU3R5bGUudG9wID0gYHVuc2V0YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5ib3R0b20gPSBgMHB4YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0JyB8fCB0aGlzLmxvY2F0aW9uKCkgPT09ICdlbmQnKSB7XG4gICAgICAgIGluZGljYXRvclN0eWxlLndpZHRoID0gYCAwLjEyNXJlbWA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmhlaWdodCA9IGAke2l0ZW1TdGF0cy5oZWlnaHR9cHhgO1xuICAgICAgICBpbmRpY2F0b3JTdHlsZS50b3AgPSBgJHtpdGVtU3RhdHMudG9wfXB4YDtcbiAgICAgICAgaW5kaWNhdG9yU3R5bGUuYm90dG9tID0gYHVuc2V0YDtcbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lU3RhcnQgPSBgMHB4YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZUVuZCA9IGB1bnNldGA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZVN0YXJ0ID0gYHVuc2V0YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZUVuZCA9IGAwcHhgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZGljYXRvclN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG59XG4iXX0=
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFicy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvdGFicy9zcmMvbGliL3RhYnMuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM1RCxPQUFPLEVBR0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUVOLFlBQVksRUFDWixXQUFXLEVBQ1gsTUFBTSxFQUNOLEtBQUssRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUNOLE1BQU0sRUFDTixTQUFTLEVBQ1QsTUFBTSxFQUNOLFNBQVMsRUFDVCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDaEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRzFEOzs7R0FHRztBQVFILE1BQU0sT0FBTyxlQUFnQixTQUFRLGVBQWU7SUFQcEQ7O1FBY0U7OztXQUdHO1FBQ0gsU0FBSSxHQUFHLEtBQUssQ0FBWSxTQUFTLENBQUMsQ0FBQztRQUVuQzs7O1dBR0c7UUFDSCxhQUFRLEdBQUcsS0FBSyxDQUFnQixRQUFRLENBQUMsQ0FBQztRQUUxQzs7O1dBR0c7UUFFSCxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBRWxCOzs7V0FHRztRQUVILGFBQVEsR0FBRyxLQUFLLENBQUM7UUFRVCxjQUFTLEdBQUcsU0FBUyxDQUE4QixXQUFXLENBQUMsQ0FBQztRQUVoRSxTQUFJLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRTlCLGNBQWM7UUFDTix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFtQjNCLGNBQVMsR0FBRyxNQUFNLENBQXFCLElBQUksQ0FBQyxDQUFDO1FBRXJELGVBQVUsR0FBRyxNQUFNLENBQUMs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TSxHQUFHLE9BQU8sQ0FBQztnQkFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLEtBQUssT0FBTyxFQUFFLENBQUM7b0JBQ2hDLGNBQWMsQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7b0JBQ3hDLGNBQWMsQ0FBQyxjQUFjLEdBQUcsT0FBTyxDQUFDO2dCQUMxQyxDQUFDO2dCQUNELElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUssRUFBRSxDQUFDO29CQUM5QixjQUFjLENBQUMsZ0JBQWdCLEdBQUcsT0FBTyxDQUFDO29CQUMxQyxjQUFjLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztnQkFDeEMsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLGNBQWMsQ0FBQyxPQUFPLEdBQUcsTUFBTSxDQUFDO1FBQ2xDLENBQUM7SUFDSCxDQUFDOzhHQXpMVSxlQUFlO2tHQUFmLGVBQWUsazBCQUlULGtCQUFrQiw0S0FUekIsaUdBQWlHOzsyRkFLaEcsZUFBZTtrQkFQM0IsU0FBUzsrQkFDRSxTQUFTLFlBQ1QsaUdBQWlHLG1CQUUxRix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJOzhCQU83QixZQUFZO3NCQURuQixlQUFlO3VCQUFDLGtCQUFrQjtnQkFvQm5DLFNBQVM7c0JBRFIsS0FBSztnQkFRTixRQUFRO3NCQURQLEtBQUs7Z0JBT04sT0FBTztzQkFETixLQUFLO2dCQXVDTixrQkFBa0I7c0JBRGpCLE1BQU07Z0JBS0ssV0FBVztzQkFEdEIsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQge1xuICBBZnRlckNvbnRlbnRJbml0LFxuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIGVmZmVjdCxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0QmluZGluZyxcbiAgaW5qZWN0LFxuICBpbnB1dCxcbiAgSW5wdXQsXG4gIE5nWm9uZSxcbiAgT3V0cHV0LFxuICBRdWVyeUxpc3QsXG4gIHNpZ25hbCxcbiAgdmlld0NoaWxkLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWFRhYkNvbnRlbnREaXJlY3RpdmUgfSBmcm9tICcuL3RhYi1jb250ZW50LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBBWFRhYkl0ZW1Db21wb25lbnQgfSBmcm9tICcuL3RhYi1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWFRhYkxvY2F0aW9uLCBBWFRhYkxvb2ssIEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQgfSBmcm9tICcuL3RhYnMuY2xhc3MnO1xuXG4vKipcbiAqIEBjYXRlZ29yeVxuICogQSBjb21wb25lbnQgdGhhdCBzZXJ2ZXMgYXMgYSBjb250YWluZXIgZm9yIHRhYiBpdGVtcy5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtdGFicycsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdGFiLWl0ZW1cIj48L25nLWNvbnRlbnQ+PHNwYW4gY2xhc3M9XCJheC10YWItaW5kaWNhdG9yXCIgI2luZGljYXRvcj48L3NwYW4+YCxcbiAgc3R5bGVVcmw6ICcuL3RhYnMuY29tcG9uZW50LnNjc3MnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhUYWJzQ29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgQWZ0ZXJDb250ZW50SW5pdCB7XG4gIC8qKlxuICAgKiBAaWdub3JlXG4gICAqL1xuICBAQ29udGVudENoaWxkcmVuKEFYVGFiSXRlbUNvbXBvbmVudClcbiAgcHJpdmF0ZSBfY29udGVudFRhYnMhOiBRdWVyeUxpc3Q8QVhUYWJJdGVtQ29tcG9uZW50PjtcblxuICAvKipcbiAgICogU2V0cyB0aGUgYXBwZWFyYW5jZSBzdHlsZSBvZiB0aGUgdGFiIGNvbXBvbmVudC5cbiAgICogIEBkZWZhdWx0VmFsdWUgJ2RlZmF1bHQnXG4gICAqL1xuICBsb29rID0gaW5wdXQ8QVhUYWJMb29rPignZGVmYXVsdCcpO1xuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIHBvc2l0aW9uIG9mIHRoZSB0YWIgY29tcG9uZW50LlxuICAgKiBAZGVmYXVsdFZhbHVlICdib3R0b20nXG4gICAqL1xuICBsb2NhdGlvbiA9IGlucHV0PEFYVGFiTG9jYXRpb24+KCdib3R0b20nKTtcblxuICAvKipcbiAgICogQGRlZmF1bHRWYWx1ZSAnZmFsc2UnXG4gICAqIFNwZWNpZmllcyB3aGV0aGVyIHRoZSBjb21wb25lbnQgc2hvdWxkIHJlc2l6ZSB0byBmaXQgaXRzIHBhcmVudCBjb250YWluZXIuXG4gICAqL1xuICBASW5wdXQoKVxuICBmaXRQYXJlbnQgPSBmYWxzZTtcblxuICAvKipcbiAgICogQGRlZmF1bHRWYWx1ZSAnZmFsc2UnXG4gICAqIEFwcGxpZXMgYSBtaW5pbXVtIHdpZHRoIGNvbnN0cmFpbnQgdG8gdGhlIGNvbXBvbmVudC5cbiAgICovXG4gIEBJbnB1dCgpXG4gIG1pbldpZHRoID0gZmFsc2U7XG5cbiAgLyoqXG4gICAqIFRoZSBgQVhUYWJDb250ZW50RGlyZWN0aXZlYCBhc3NvY2lhdGVkIHdpdGggdGhlIHRhYi5cbiAgICovXG4gIEBJbnB1dCgpXG4gIGNvbnRlbnQhOiBBWFRhYkNvbnRlbnREaXJlY3RpdmU7XG5cbiAgcHJpdmF0ZSBpbmRpY2F0b3IgPSB2aWV3Q2hpbGQ8RWxlbWVudFJlZjxIVE1MU3BhbkVsZW1lbnQ+PignaW5kaWNhdG9yJyk7XG5cbiAgcHJpdmF0ZSB6b25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgcHJpdmF0ZSBfaXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcblxuICBnZXQgaXRlbXMoKTogQVhUYWJJdGVtQ29tcG9uZW50W10ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50VGFicy50b0FycmF5KCk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9zZWxlY3RlZEl0ZW0hOiBBWFRhYkl0ZW1Db21wb25lbnQ7XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgZ2V0IHNlbGVjdGVkSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5pdGVtcy5pbmRleE9mKHRoaXMuX3NlbGVjdGVkSXRlbSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBnZXQgc2VsZWN0ZWRJdGVtKCk6IEFYVGFiSXRlbUNvbXBvbmVudCB7XG4gICAgcmV0dXJuIHRoaXMuX3NlbGVjdGVkSXRlbTtcbiAgfVxuXG4gIHByaXZhdGUgYWN0aXZlVGFiID0gc2lnbmFsPEFYVGFiSXRlbUNvbXBvbmVudD4obnVsbCk7XG5cbiAgI3RhYkNoYW5nZSA9IGVmZmVjdCgoKSA9PiB7XG4gICAgaWYgKHRoaXMuYWN0aXZlVGFiKCkgJiYgdGhpcy5sb29rKCkgPT09ICd3aXRoLWxpbmUnKSB7XG4gICAgICB0aGlzLnNldEluZGljYXRvclBvc2l0aW9uKHRoaXMuYWN0aXZlVGFiKCkpO1xuICAgIH1cbiAgfSk7XG5cbiAgLyoqXG4gICAqIEBldmVudFxuICAgKi9cbiAgQE91dHB1dCgpXG4gIG9uQWN0aXZlVGFiQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVGFiU3RyaXBDaGFuZ2VkRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50PigpO1xuXG4gIC8qKiBAaWdub3JlICovXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwcml2YXRlIGdldCBfX2hvc3RDbGFzcygpOiBzdHJpbmdbXSB7XG4gICAgY29uc3QgY3NzQ2xhc3Nlczogc3RyaW5nW10gPSBbXTtcbiAgICBjc3NDbGFzc2VzLnB1c2goYGF4LWxvb2stJHt0aGlzLmxvb2soKX1gKTtcbiAgICBjc3NDbGFzc2VzLnB1c2goYGF4LSR7dGhpcy5sb2NhdGlvbigpfWApO1xuICAgIGlmICh0aGlzLmZpdFBhcmVudCkgY3NzQ2xhc3Nlcy5wdXNoKGBheC10YWJzLWZpdGApO1xuICAgIHJldHVybiBjc3NDbGFzc2VzO1xuICB9XG5cbiAgLyoqIEBpZ25vcmUgKi9cbiAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgIHRoaXMuX2NvbnRlbnRUYWJzLmNoYW5nZXMuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuX2JpbmRPbkNsaWNrRXZlbnQoKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiBAaWdub3JlICovXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9iaW5kT25DbGlja0V2ZW50KCk7XG4gICAgdGhpcy56b25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgIHRoaXMuaW5kaWNhdG9yKCkubmF0aXZlRWxlbWVudC5hZGRFdmVudExpc3RlbmVyKFxuICAgICAgICAndHJhbnNpdGlvbmVuZCcsXG4gICAgICAgICgpID0+IHtcbiAgICAgICAgICB0aGlzLnNldEluZGljYXRvclBvc2l0aW9uKHRoaXMuYWN0aXZlVGFiKCkpO1xuICAgICAgICB9LFxuICAgICAgICB7IG9uY2U6IHRydWUgfSxcbiAgICAgICk7XG4gICAgfSk7XG4gIH1cblxuICAvKiogQGlnbm9yZSAqL1xuICBwcml2YXRlIF9iaW5kT25DbGlja0V2ZW50KCkge1xuICAgIGNvbnN0IHNlbGVjdGVkID0gdGhpcy5pdGVtcy5maW5kKChjKSA9PiBjLmFjdGl2ZSkgfHwgdGhpcy5pdGVtc1swXTtcbiAgICB0aGlzLnNlbGVjdChzZWxlY3RlZCk7XG4gICAgdGhpcy5pdGVtcy5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAoIWMub25DbGljay5sZW5ndGgpIHtcbiAgICAgICAgYy5vbkNsaWNrLnN1YnNjcmliZSgodCkgPT4ge1xuICAgICAgICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdC5uYXRpdmVFdmVudD8uaXNUcnVzdGVkO1xuICAgICAgICAgIHRoaXMuc2VsZWN0KGMpO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBY3RpdmF0ZXMgdGhlIHNwZWNpZmllZCB0YWIgYW5kIHVwZGF0ZXMgdGhlIGNvbnRlbnQuXG4gICAqXG4gICAqIEBwYXJhbSB7bnVtYmVyIHwgQVhUYWJJdGVtQ29tcG9uZW50fVxuICAgKi9cbiAgc2VsZWN0KHRhYjogbnVtYmVyIHwgQVhUYWJJdGVtQ29tcG9uZW50KSB7XG4gICAgY29uc3QgdGFiSXRlbTogQVhUYWJJdGVtQ29tcG9uZW50ID0gdHlwZW9mIHRhYiA9PSAnbnVtYmVyJyA/IHRoaXMuaXRlbXNbdGFiXSA6IHRhYjtcbiAgICB0aGlzLmFjdGl2ZVRhYi5zZXQodGFiSXRlbSk7XG4gICAgLy9cbiAgICBpZiAoIXRhYiB8fCB0aGlzLnNlbGVjdGVkSXRlbSA9PSB0YWJJdGVtKSByZXR1cm47XG4gICAgdGhpcy5fc2VsZWN0ZWRJdGVtID0gdGFiSXRlbTtcbiAgICAvL1xuICAgIHRoaXMuaXRlbXMuZm9yRWFjaCgoYykgPT4gKGMuYWN0aXZlID0gZmFsc2UpKTtcbiAgICB0YWJJdGVtLmFjdGl2ZSA9IHRydWU7XG4gICAgaWYgKHRoaXMuY29udGVudCkge1xuICAgICAgdGhpcy5jb250ZW50LnBvcnRhbCA9IHRhYkl0ZW0udGVtcGxhdGU7XG4gICAgfVxuICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xuICAgIHRoaXMub25BY3RpdmVUYWJDaGFuZ2VkLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXNVc2VySW50ZXJhY3Rpb246IHRoaXMuX2lzVXNlckludGVyYWN0aW9uLFxuICAgICAgdGFiOiB0YWJJdGVtLFxuICAgICAgaW5kZXg6IHRoaXMuc2VsZWN0ZWRJbmRleCxcbiAgICB9KTtcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRJbmRpY2F0b3JQb3NpdGlvbih0YWJJdGVtOiBBWFRhYkl0ZW1Db21wb25lbnQpIHtcbiAgICBjb25zdCBpbmRpY2F0b3JTdHlsZSA9IHRoaXMuaW5kaWNhdG9yKCkubmF0aXZlRWxlbWVudC5zdHlsZTtcbiAgICBjb25zdCBpdGVtU3RhdHMgPSB0YWJJdGVtLmdldFN0YXRzKCk7XG4gICAgaWYgKHRoaXMubG9vaygpID09PSAnd2l0aC1saW5lJykge1xuICAgICAgaW5kaWNhdG9yU3R5bGUuZGlzcGxheSA9ICdibG9jayc7XG4gICAgICBpZiAodGhpcy5sb2NhdGlvbigpID09PSAndG9wJyB8fCB0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgIGluZGljYXRvclN0eWxlLndpZHRoID0gYCR7aXRlbVN0YXRzLndpZHRofXB4YDtcbiAgICAgICAgaW5kaWNhdG9yU3R5bGUuaGVpZ2h0ID0gYDNweGA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lU3RhcnQgPSBgJHtpdGVtU3RhdHMubGVmdH1weGA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lRW5kID0gYHVuc2V0YDtcbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3RvcCcpIHtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS50b3AgPSBgMHB4YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5ib3R0b20gPSBgdW5zZXRgO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmxvY2F0aW9uKCkgPT09ICdib3R0b20nKSB7XG4gICAgICAgICAgaW5kaWNhdG9yU3R5bGUudG9wID0gYHVuc2V0YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5ib3R0b20gPSBgMHB4YDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0JyB8fCB0aGlzLmxvY2F0aW9uKCkgPT09ICdlbmQnKSB7XG4gICAgICAgIGluZGljYXRvclN0eWxlLndpZHRoID0gYCAwLjEyNXJlbWA7XG4gICAgICAgIGluZGljYXRvclN0eWxlLmhlaWdodCA9IGAke2l0ZW1TdGF0cy5oZWlnaHR9cHhgO1xuICAgICAgICBpbmRpY2F0b3JTdHlsZS50b3AgPSBgJHtpdGVtU3RhdHMudG9wfXB4YDtcbiAgICAgICAgaW5kaWNhdG9yU3R5bGUuYm90dG9tID0gYHVuc2V0YDtcbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ3N0YXJ0Jykge1xuICAgICAgICAgIGluZGljYXRvclN0eWxlLmluc2V0SW5saW5lU3RhcnQgPSBgMHB4YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZUVuZCA9IGB1bnNldGA7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMubG9jYXRpb24oKSA9PT0gJ2VuZCcpIHtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZVN0YXJ0ID0gYHVuc2V0YDtcbiAgICAgICAgICBpbmRpY2F0b3JTdHlsZS5pbnNldElubGluZUVuZCA9IGAwcHhgO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGluZGljYXRvclN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -94,7 +94,7 @@ class AXActionSheetComponent extends MXBaseComponent {
94
94
  provide: AXFocusableComponent,
95
95
  useExisting: AXActionSheetComponent,
96
96
  },
97
- ], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:80vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:80vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
97
+ ], usesInheritance: true, ngImport: i0, template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"], dependencies: [{ kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title, ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
98
98
  }
99
99
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: AXActionSheetComponent, decorators: [{
100
100
  type: Component,
@@ -107,7 +107,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
107
107
  provide: AXFocusableComponent,
108
108
  useExisting: AXActionSheetComponent,
109
109
  },
110
- ], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:80vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:80vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
110
+ ], template: "@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n", styles: ["ax-action-sheet{display:block;width:100vw}@media (min-width: 768px){ax-action-sheet{width:70vw}}@media (min-width: 1024px){ax-action-sheet{width:50vw}}ax-action-sheet .ax-custom-template-container{overflow-y:auto;max-height:100vh}ax-action-sheet ax-header{padding:1rem;border-bottom-width:1px;font-size:1rem;line-height:1.5rem;font-weight:500}@media (min-width: 768px){ax-action-sheet ax-header{font-size:1.125rem;line-height:1.75rem}}ax-action-sheet ax-header ax-prefix,ax-action-sheet ax-header ax-suffix{display:flex;flex-direction:column;justify-content:flex-start}ax-action-sheet ax-header ax-prefix{align-items:flex-start}ax-action-sheet ax-header ax-prefix ax-title{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:1}ax-action-sheet ax-header ax-suffix{align-items:flex-end;max-width:fit-content}ax-action-sheet .ax-action-list{overflow-y:auto;max-height:100vh}ax-action-sheet .ax-action-list ax-title{font-size:.875rem}ax-action-sheet .ax-action-list .ax-action-item{min-height:3.5rem!important;font-size:1rem!important}ax-action-sheet .ax-action-list .ax-action-item .ax-item-icon{margin-inline-end:.75rem!important;font-size:1.5rem!important;line-height:2rem!important}\n"] }]
111
111
  }], ctorParameters: () => [{ type: undefined, decorators: [{
112
112
  type: Inject,
113
113
  args: [DIALOG_DATA]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-action-sheet.mjs","sources":["../../../../libs/components/action-sheet/src/lib/action-sheet.component.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.html","../../../../libs/components/action-sheet/src/lib/action-sheet.service.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.module.ts","../../../../libs/components/action-sheet/src/acorex-components-action-sheet.ts"],"sourcesContent":["import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n AXFocusableComponent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostListener,\n Inject,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXActionSheetConfig, AXActionSheetItem } from './action-sheet.class';\n\n/**\n * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosbaleComponent,\n useExisting: AXActionSheetComponent,\n },\n {\n provide: AXFocusableComponent,\n useExisting: AXActionSheetComponent,\n },\n ],\n})\nexport class AXActionSheetComponent extends MXBaseComponent implements OnInit {\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n private _componentRef: unknown;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n protected data: AXActionSheetConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit(): void {\n super.ngOnInit();\n if (this.data.content) {\n if (this.data.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(this.data.content, this.getViewContainer(), {\n $implicit: this.data,\n ref: this,\n });\n this.cdr.markForCheck();\n } else if (typeof this.data.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.data.content);\n this.cdr.markForCheck();\n }\n }\n }\n\n protected handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this._componentRef = ref.instance;\n Object.assign(this._componentRef, this.data);\n Object.assign(this._componentRef, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.close(e);\n });\n }\n }\n }\n\n onItemClick(item: AXActionSheetItem) {\n this.close(item);\n if (item?.onClick) item.onClick();\n }\n\n close(e) {\n this.dialogRef.close({\n component: this._componentRef,\n htmlElement: this.getHostElement(),\n data: e,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown.escape')\n protected onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.data.closeButton && focusedOrHasFocused) {\n this.close(null);\n }\n }\n}\n","@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n","import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXActionSheetConfig } from './action-sheet.class';\nimport { AXActionSheetComponent } from './action-sheet.component';\n\nexport interface AXActionSheetDialogRef {\n close: (e?) => void;\n closed: Subject<any>;\n}\n\n@Injectable()\nexport class AXActionSheetService {\n private dialog: Dialog = inject(Dialog);\n\n open(config: AXActionSheetConfig): Promise<AXActionSheetDialogRef> {\n const defaultConfig: AXActionSheetConfig = {\n title: 'action-sheet.title',\n closeButton: true,\n closeOnBackdropClick: true,\n header: true,\n };\n config = Object.assign(defaultConfig, config);\n\n const dialogRef = this.dialog.open(AXActionSheetComponent, {\n data: config,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: true,\n panelClass: ['ax-actionsheet-panel'],\n disableClose: config.closeOnBackdropClick ? false : true,\n positionStrategy: new GlobalPositionStrategy().centerHorizontally().bottom(),\n });\n const promise = new Promise<AXActionSheetDialogRef>((resolve) => {\n const closed = new BehaviorSubject<any>(null);\n const axDialogRef: AXActionSheetDialogRef = {\n close: (e) => {\n dialogRef.close(e);\n },\n closed,\n };\n dialogRef.closed.subscribe((c: any) => {\n if (c?.data) {\n closed.next({ data: c.data });\n } else {\n closed.next({});\n }\n });\n if (resolve) {\n resolve(axDialogRef);\n }\n });\n return promise;\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { AsyncPipe } from '@angular/common';\nimport { AXActionSheetComponent } from './action-sheet.component';\nimport { AXActionSheetService } from './action-sheet.service';\n\nconst MODULES = [\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n PortalModule,\n AXDecoratorModule,\n AXTranslationModule,\n DialogModule,\n AsyncPipe,\n];\n\n@NgModule({\n declarations: [AXActionSheetComponent],\n imports: [...MODULES],\n exports: [AXActionSheetComponent],\n providers: [AXActionSheetService],\n})\nexport class AXActionSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-action-sheet.mjs","sources":["../../../../libs/components/action-sheet/src/lib/action-sheet.component.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.component.html","../../../../libs/components/action-sheet/src/lib/action-sheet.service.ts","../../../../libs/components/action-sheet/src/lib/action-sheet.module.ts","../../../../libs/components/action-sheet/src/acorex-components-action-sheet.ts"],"sourcesContent":["import {\n AXClosbaleComponent,\n AXComponentCloseEvent,\n AXFocusableComponent,\n MXBaseComponent,\n} from '@acorex/components/common';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n HostListener,\n Inject,\n OnInit,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXActionSheetConfig, AXActionSheetItem } from './action-sheet.class';\n\n/**\n * A component for displaying an action sheet, which is a menu that slides up from the bottom of the screen.\n *\n * @category Components\n */\n@Component({\n selector: 'ax-action-sheet',\n templateUrl: './action-sheet.component.html',\n styleUrls: ['./action-sheet.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXClosbaleComponent,\n useExisting: AXActionSheetComponent,\n },\n {\n provide: AXFocusableComponent,\n useExisting: AXActionSheetComponent,\n },\n ],\n})\nexport class AXActionSheetComponent extends MXBaseComponent implements OnInit {\n /**\n * @ignore\n */\n protected _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n private _componentRef: unknown;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n protected data: AXActionSheetConfig,\n private dialogRef: DialogRef<AXComponentCloseEvent>,\n ) {\n super();\n }\n\n /**\n * @ignore\n */\n override ngOnInit(): void {\n super.ngOnInit();\n if (this.data.content) {\n if (this.data.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(this.data.content, this.getViewContainer(), {\n $implicit: this.data,\n ref: this,\n });\n this.cdr.markForCheck();\n } else if (typeof this.data.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.data.content);\n this.cdr.markForCheck();\n }\n }\n }\n\n protected handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n this._componentRef = ref.instance;\n Object.assign(this._componentRef, this.data);\n Object.assign(this._componentRef, { _isPopup: true });\n if (ref.instance.onClosed) {\n ref.instance.onClosed.subscribe((e: AXComponentCloseEvent) => {\n this.close(e);\n });\n }\n }\n }\n\n onItemClick(item: AXActionSheetItem) {\n this.close(item);\n if (item?.onClick) item.onClick();\n }\n\n close(e) {\n this.dialogRef.close({\n component: this._componentRef,\n htmlElement: this.getHostElement(),\n data: e,\n });\n }\n\n /**\n * @ignore\n */\n @HostListener('keydown.escape')\n protected onKeydownHandler() {\n const focusedOrHasFocused = this.getHostElement().matches(':focus-within');\n if (this.data.closeButton && focusedOrHasFocused) {\n this.close(null);\n }\n }\n}\n","@if (data.header) {\n <ax-header>\n <ax-prefix>\n <ax-title>{{ data.title | translate | async }}</ax-title>\n\n @if (data.subTitle) {\n <ax-sub-title>\n {{ data.subTitle }}\n </ax-sub-title>\n }\n </ax-prefix>\n @if (data.closeButton) {\n <ax-suffix>\n <ax-close-button></ax-close-button>\n </ax-suffix>\n }\n </ax-header>\n}\n\n@if (this.data.content) {\n <div class=\"ax-custom-template-container\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"handleAttched($event)\"></ng-template>\n </div>\n}\n\n<div class=\"ax-action-list ax-action-list-vertical\">\n @for (item of data.items; let i = $index; track i) {\n @if (item.group?.title) {\n <ax-title>{{ item.group?.title }}</ax-title>\n }\n <div\n class=\"ax-action-item ax-el-interactive ax-el-{{ item.color }}-blank\"\n [class.ax-state-disabled]=\"item.disabled\"\n [tabindex]=\"i\"\n (click)=\"onItemClick(item)\"\n >\n <div class=\"ax-action-item-prefix\">\n @if (item.icon) {\n <span class=\"ax-item-icon\" [class]=\"item.icon\"></span>\n }\n <ax-text>{{ item.text | translate | async }}</ax-text>\n </div>\n <div class=\"ax-action-item-suffix\"></div>\n </div>\n @if (item.break) {\n <ax-divider></ax-divider>\n }\n }\n</div>\n","import { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { Injectable, inject } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { AXActionSheetConfig } from './action-sheet.class';\nimport { AXActionSheetComponent } from './action-sheet.component';\n\nexport interface AXActionSheetDialogRef {\n close: (e?) => void;\n closed: Subject<any>;\n}\n\n@Injectable()\nexport class AXActionSheetService {\n private dialog: Dialog = inject(Dialog);\n\n open(config: AXActionSheetConfig): Promise<AXActionSheetDialogRef> {\n const defaultConfig: AXActionSheetConfig = {\n title: 'action-sheet.title',\n closeButton: true,\n closeOnBackdropClick: true,\n header: true,\n };\n config = Object.assign(defaultConfig, config);\n\n const dialogRef = this.dialog.open(AXActionSheetComponent, {\n data: config,\n autoFocus: 'first-tabbable',\n restoreFocus: true,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: true,\n panelClass: ['ax-actionsheet-panel'],\n disableClose: config.closeOnBackdropClick ? false : true,\n positionStrategy: new GlobalPositionStrategy().centerHorizontally().bottom(),\n });\n const promise = new Promise<AXActionSheetDialogRef>((resolve) => {\n const closed = new BehaviorSubject<any>(null);\n const axDialogRef: AXActionSheetDialogRef = {\n close: (e) => {\n dialogRef.close(e);\n },\n closed,\n };\n dialogRef.closed.subscribe((c: any) => {\n if (c?.data) {\n closed.next({ data: c.data });\n } else {\n closed.next({});\n }\n });\n if (resolve) {\n resolve(axDialogRef);\n }\n });\n return promise;\n }\n}\n","import { AXButtonModule } from '@acorex/components/button';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { NgModule } from '@angular/core';\n\nimport { AXCommonModule } from '@acorex/components/common';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { AsyncPipe } from '@angular/common';\nimport { AXActionSheetComponent } from './action-sheet.component';\nimport { AXActionSheetService } from './action-sheet.service';\n\nconst MODULES = [\n AXCommonModule,\n DragDropModule,\n A11yModule,\n AXButtonModule,\n PortalModule,\n AXDecoratorModule,\n AXTranslationModule,\n DialogModule,\n AsyncPipe,\n];\n\n@NgModule({\n declarations: [AXActionSheetComponent],\n imports: [...MODULES],\n exports: [AXActionSheetComponent],\n providers: [AXActionSheetService],\n})\nexport class AXActionSheetModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}