@rededor/site-front-end-lib 0.0.41 → 0.0.42

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,8 +6,9 @@ import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/router";
7
7
  import * as i2 from "../../services/phone/phone.service";
8
8
  import * as i3 from "../rdsite-phone-modal/rdsite-phone-modal.directive";
9
+ import * as i4 from "ngx-device-detector";
9
10
  export class RdsiteLinkDirective {
10
- constructor(router, platformId, document, libConfig, element, phoneService, rdsitePhoneModalDirective) {
11
+ constructor(router, platformId, document, libConfig, element, phoneService, rdsitePhoneModalDirective, deviceDetectorService) {
11
12
  this.router = router;
12
13
  this.platformId = platformId;
13
14
  this.document = document;
@@ -15,9 +16,11 @@ export class RdsiteLinkDirective {
15
16
  this.element = element;
16
17
  this.phoneService = phoneService;
17
18
  this.rdsitePhoneModalDirective = rdsitePhoneModalDirective;
19
+ this.deviceDetectorService = deviceDetectorService;
18
20
  this.externalRegex = /^http:|https:|tel:|www\.|mailto:/;
19
21
  this.telRegex = /tel:/;
20
22
  this.mailRegex = /mailto:/;
23
+ this.whatsAppRegex = /^https?:\/\/(wa\.me|api\.whatsapp\.com)\//;
21
24
  this.siteUrlList = ['rededorsaoluiz', 'rededorlabs'];
22
25
  this.allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];
23
26
  this.anchorAdjustment = null;
@@ -40,8 +43,19 @@ export class RdsiteLinkDirective {
40
43
  });
41
44
  return;
42
45
  }
46
+ const isMobile = this.deviceDetectorService.isMobile();
47
+ const deviceInfo = this.deviceDetectorService.getDeviceInfo();
48
+ if (this.isMail(href)) {
49
+ const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';
50
+ window.open(href, target);
51
+ return;
52
+ }
53
+ if (this.isWhats(href) && isMobile) {
54
+ window.open(href, '_self');
55
+ return;
56
+ }
43
57
  if (this.isExternalUrl(href)) {
44
- const target = this.isSiteUrl(href) || this.isMail(href) ? '_self' : '_blank';
58
+ const target = this.isSiteUrl(href) ? '_self' : '_blank';
45
59
  window.open(href, target);
46
60
  return;
47
61
  }
@@ -57,6 +71,9 @@ export class RdsiteLinkDirective {
57
71
  isMail(href) {
58
72
  return this.mailRegex.test(href);
59
73
  }
74
+ isWhats(href) {
75
+ return this.whatsAppRegex.test(href);
76
+ }
60
77
  phoneClicked(value) {
61
78
  const { href, event, element, phonemodal } = value;
62
79
  if (this.phoneService.isPhoneModal(href)) {
@@ -126,7 +143,7 @@ export class RdsiteLinkDirective {
126
143
  }
127
144
  this.router.navigate([path], { queryParams: queryParams });
128
145
  }
129
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, deps: [{ token: i1.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: LIB_CONFIG }, { token: i0.ElementRef }, { token: i2.PhoneService }, { token: i3.RdsitePhoneModalDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
146
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, deps: [{ token: i1.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: LIB_CONFIG }, { token: i0.ElementRef }, { token: i2.PhoneService }, { token: i3.RdsitePhoneModalDirective }, { token: i4.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Directive }); }
130
147
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: RdsiteLinkDirective, isStandalone: true, selector: "[rdsitelink]", inputs: { anchorAdjustment: "anchorAdjustment", anchorExtraAdjustment: "anchorExtraAdjustment", phonemodal: "phonemodal" }, host: { listeners: { "click": "onClick($event)" } }, providers: [RdsitePhoneModalDirective], ngImport: i0 }); }
131
148
  }
132
149
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, decorators: [{
@@ -146,7 +163,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
146
163
  }] }, { type: undefined, decorators: [{
147
164
  type: Inject,
148
165
  args: [LIB_CONFIG]
149
- }] }, { type: i0.ElementRef }, { type: i2.PhoneService }, { type: i3.RdsitePhoneModalDirective }], propDecorators: { anchorAdjustment: [{
166
+ }] }, { type: i0.ElementRef }, { type: i2.PhoneService }, { type: i3.RdsitePhoneModalDirective }, { type: i4.DeviceDetectorService }], propDecorators: { anchorAdjustment: [{
150
167
  type: Input
151
168
  }], anchorExtraAdjustment: [{
152
169
  type: Input
@@ -156,4 +173,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
156
173
  type: HostListener,
157
174
  args: ['click', ['$event']]
158
175
  }] } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzaXRlLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvZGlyZWN0aXZlcy9yZHNpdGUtbGluay9yZHNpdGUtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7QUFRL0YsTUFBTSxPQUFPLG1CQUFtQjtJQVk5QixZQUNVLE1BQWMsRUFDTyxVQUFrQixFQUNyQixRQUFrQixFQUNoQixTQUFvQixFQUN4QyxPQUF3QixFQUN4QixZQUEwQixFQUMxQix5QkFBb0Q7UUFOcEQsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNPLGVBQVUsR0FBVixVQUFVLENBQVE7UUFDckIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNoQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBQ3hDLFlBQU8sR0FBUCxPQUFPLENBQWlCO1FBQ3hCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBQzFCLDhCQUF5QixHQUF6Qix5QkFBeUIsQ0FBMkI7UUFsQnRELGtCQUFhLEdBQUcsa0NBQWtDLENBQUM7UUFDbkQsYUFBUSxHQUFHLE1BQU0sQ0FBQztRQUNsQixjQUFTLEdBQUcsU0FBUyxDQUFDO1FBQ3RCLGdCQUFXLEdBQUcsQ0FBQyxnQkFBZ0IsRUFBRSxhQUFhLENBQUMsQ0FBQztRQUNoRCxnQkFBVyxHQUFHLENBQUMsR0FBRyxFQUFFLGFBQWEsRUFB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WUFDVixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdkIsTUFBTSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQztnQkFDekIsV0FBVyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7SUFDN0QsQ0FBQzsrR0F6SVUsbUJBQW1CLHdDQWNwQixXQUFXLGFBQ1gsUUFBUSxhQUNSLFVBQVU7bUdBaEJULG1CQUFtQiw0T0FIbkIsQ0FBQyx5QkFBeUIsQ0FBQzs7NEZBRzNCLG1CQUFtQjtrQkFOL0IsU0FBUzttQkFBQztvQkFDVCw4REFBOEQ7b0JBQzlELFFBQVEsRUFBRSxjQUFjO29CQUN4QixTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQztvQkFDdEMsVUFBVSxFQUFFLElBQUk7aUJBQ2pCOzswQkFlSSxNQUFNOzJCQUFDLFdBQVc7OzBCQUNsQixNQUFNOzJCQUFDLFFBQVE7OzBCQUNmLE1BQU07MkJBQUMsVUFBVTtxSUFUWCxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUVHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBYUMsT0FBTztzQkFEYixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERPQ1VNRU5ULCBpc1BsYXRmb3JtQnJvd3NlciB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBJbnB1dCwgUExBVEZPUk1fSUQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTElCX0NPTkZJRywgTGliQ29uZmlnIH0gZnJvbSAnLi4vLi4vdG9rZW5zL0xpYkNvbmZpZyc7XG5pbXBvcnQgeyBQaG9uZVNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9waG9uZS9waG9uZS5zZXJ2aWNlJztcbmltcG9ydCB7IFJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUgfSBmcm9tICcuLi9yZHNpdGUtcGhvbmUtbW9kYWwvcmRzaXRlLXBob25lLW1vZGFsLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuICBzZWxlY3RvcjogJ1tyZHNpdGVsaW5rXScsXG4gIHByb3ZpZGVyczogW1Jkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmVdLFxuICBzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBSZHNpdGVMaW5rRGlyZWN0aXZlIHtcbiAgcHJpdmF0ZSBleHRlcm5hbFJlZ2V4ID0gL15odHRwOnxodHRwczp8dGVsOnx3d3dcXC58bWFpbHRvOi87XG4gIHByaXZhdGUgdGVsUmVnZXggPSAvdGVsOi87XG4gIHByaXZhdGUgbWFpbFJlZ2V4ID0gL21haWx0bzovO1xuICBwcml2YXRlIHNpdGVVcmxMaXN0ID0gWydyZWRlZG9yc2FvbHVpeicsICdyZWRlZG9ybGFicyddO1xuICBwcml2YXRlIGFsbG93ZWRUYWdzID0gWydBJywgJ0NVUkEtQlVUVE9OJywgJ0NVUkEtQlVUVE9OLU9VVExJTkUnLCAnQ1VSQS1CVVRUT04tVFJBTlNQQVJFTlQnXTtcblxuICBASW5wdXQoKSBhbmNob3JBZGp1c3RtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgQElucHV0KCkgYW5jaG9yRXh0cmFBZGp1c3RtZW50OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICBASW5wdXQoKSBwaG9uZW1vZGFsOiBUZW1wbGF0ZVJlZjxIVE1MRWxlbWVudD4gfCBudWxsID0gbnVsbDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJvdXRlcjogUm91dGVyLFxuICAgIEBJbmplY3QoUExBVEZPUk1fSUQpIHByaXZhdGUgcGxhdGZvcm1JZDogb2JqZWN0LFxuICAgIEBJbmplY3QoRE9DVU1FTlQpIHByaXZhdGUgZG9jdW1lbnQ6IERvY3VtZW50LFxuICAgIEBJbmplY3QoTElCX0NPTkZJRykgcHJpdmF0ZSBsaWJDb25maWc6IExpYkNvbmZpZyxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWY8YW55PixcbiAgICBwcml2YXRlIHBob25lU2VydmljZTogUGhvbmVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZTogUmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZSxcbiAgKSB7fVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2NsaWNrJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uQ2xpY2soZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICBpZiAoIWlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkgfHwgIXRoaXMuYWxsb3dlZFRhZ3MuaW5jbHVkZXModGhpcy5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py50YWdOYW1lKSkgcmV0dXJuO1xuICAgIGNvbnN0IGhyZWYgPSB0aGlzLmVsZW1lbnQ/Lm5hdGl2ZUVsZW1lbnQ/LmdldEF0dHJpYnV0ZSgnaHJlZicpID8/ICcnO1xuICAgIGlmICghaHJlZikgcmV0dXJuO1xuXG4gICAgaWYgKHRoaXMuaXNQaG9uZShocmVmKSkge1xuICAgICAgdGhpcy5waG9uZUNsaWNrZWQoe1xuICAgICAgICBocmVmLFxuICAgICAgICBldmVudCxcbiAgICAgICAgZWxlbWVudDogdGhpcy5lbGVtZW50LFxuICAgICAgICBwaG9uZW1vZGFsOiB0aGlzLnBob25lbW9kYWwsXG4gICAgICB9KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0V4dGVybmFsVXJsKGhyZWYpKSB7XG4gICAgICBjb25zdCB0YXJnZXQgPSB0aGlzLmlzU2l0ZVVybChocmVmKSB8fCB0aGlzLmlzTWFpbChocmVmKSA/ICdfc2VsZicgOiAnX2JsYW5rJztcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsIHRhcmdldCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuaXNBbmNob3IoaHJlZikpIHtcbiAgICAgIHRoaXMuc2Nyb2xsVG9BbmNob3IoaHJlZik7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5uYXZpZ2F0ZVRvKGhyZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1Bob25lKGhyZWY6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLnRlbFJlZ2V4LnRlc3QoaHJlZik7XG4gIH1cblxuICBwcml2YXRlIGlzTWFpbChocmVmOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5tYWlsUmVnZXgudGVzdChocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgcGhvbmVDbGlja2VkKHZhbHVlOiB7IGhyZWY6IHN0cmluZzsgZXZlbnQ6IEV2ZW50OyBlbGVtZW50OiBFbGVtZW50UmVmPGFueT47IHBob25lbW9kYWw6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IG51bGwgfSkge1xuICAgIGNvbnN0IHsgaHJlZiwgZXZlbnQsIGVsZW1lbnQsIHBob25lbW9kYWwgfSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnBob25lU2VydmljZS5pc1Bob25lTW9kYWwoaHJlZikpIHtcbiAgICAgIHRoaXMuc2V0UGhvbmVNb2RhbChlbGVtZW50LCBwaG9uZW1vZGFsKTtcbiAgICAgIHRoaXMucmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZS5vcGVuUGhvbmVNb2RhbChldmVudCwgaHJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGhvbmVNb2RhbChlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sIHBob25lbW9kYWw6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBpZiAoIXRoaXMucGhvbmVtb2RhbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5saWJDb25maWc/LmN1c3RvbVBob25lTW9kYWxDb25kaXRpb24pIHtcbiAgICAgIHRoaXMucmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZS5yZHNpdGVwaG9uZW1vZGFsID0gcGhvbmVtb2RhbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGliQ29uZmlnPy5jdXN0b21QaG9uZU1vZGFsQ29uZGl0aW9uKGVsZW1lbnQpKSB7XG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0V4dGVybmFsVXJsKGhyZWY6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsUmVnZXgudGVzdChocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaXRlVXJsKGhyZWY6IHN0cmluZykge1xuICAgIGNvbnN0IGV4Y2VwdGlvbiA9ICcvcGFjaWVudGUnO1xuICAgIHJldHVybiB0aGlzLnNpdGVVcmxMaXN0LmZpbmQoKHVybCkgPT4gaHJlZi5pbmNsdWRlcyh1cmwpICYmICFocmVmLmluY2x1ZGVzKGV4Y2VwdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FuY2hvcihocmVmOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaHJlZi5zdGFydHNXaXRoKCcjJyk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvQW5jaG9yKGhyZWY6IHN0cmluZykge1xuICAgIGlmIChocmVmID09PSAnIycpIHJldHVybjtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3QgZG9jRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgbGV0IGFkanVzdG1lbnQgPSAwO1xuXG4gICAgICBpZiAodGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCkge1xuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCh0aGlzLmRvY3VtZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYW5jaG9yQWRqdXN0bWVudCkge1xuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5hbmNob3JBZGp1c3RtZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hbmNob3JFeHRyYUFkanVzdG1lbnQpIHtcbiAgICAgICAgYWRqdXN0bWVudCArPSB0aGlzLmFuY2hvckV4dHJhQWRqdXN0bWVudDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9keVRvcCA9IHRoaXMuZG9jdW1lbnQ/LmJvZHk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpPy50b3AgPz8gMDtcbiAgICAgIGNvbnN0IGhyZWZUb3AgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihocmVmKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA/PyAwO1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gYm9keVRvcCAqIC0xICsgaHJlZlRvcCAtIGFkanVzdG1lbnQ7XG4gICAgICBkb2NFbGVtZW50LnNjcm9sbFRvKHsgdG9wOiBzY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG8oaHJlZjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2l0ZUJhc2VQYXRoID0gdGhpcy5saWJDb25maWcuc2l0ZVN1Zml4ID8/ICcnO1xuICAgIGNvbnN0IG5vQmFzZUhyZWYgPSBocmVmLmluY2x1ZGVzKHNpdGVCYXNlUGF0aCkgPyBocmVmLnJlcGxhY2Uoc2l0ZUJhc2VQYXRoLCAnJykgOiBocmVmO1xuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uY3VzdG9tSW50ZXJuYWxMaW5rTmF2aWdhdGlvbiAmJiB0aGlzLmxpYkNvbmZpZy5jdXN0b21JbnRlcm5hbExpbmtOYXZpZ2F0aW9uKG5vQmFzZUhyZWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgW3BhdGgsIHF1ZXJ5XSA9IG5vQmFzZUhyZWYuc3BsaXQoJz8nKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlBcnJheSA9IHF1ZXJ5LnNwbGl0KCcmJyk7XG4gICAgICBxdWVyeUFycmF5LmZvckVhY2goKHEpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gcS5zcGxpdCgnPScpO1xuICAgICAgICBxdWVyeVBhcmFtc1thcnJbMF1dID0gYXJyWzFdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoXSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSk7XG4gIH1cbn1cbiJdfQ==
176
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmRzaXRlLWxpbmsuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc2l0ZS1mcm9udC1lbmQtbGliL3NyYy9saWIvZGlyZWN0aXZlcy9yZHNpdGUtbGluay9yZHNpdGUtbGluay5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlELE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBRSxVQUFVLEVBQWEsTUFBTSx3QkFBd0IsQ0FBQztBQUUvRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxvREFBb0QsQ0FBQzs7Ozs7O0FBUS9GLE1BQU0sT0FBTyxtQkFBbUI7SUFhOUIsWUFDVSxNQUFjLEVBQ08sVUFBa0IsRUFDckIsUUFBa0IsRUFDaEIsU0FBb0IsRUFDeEMsT0FBd0IsRUFDeEIsWUFBMEIsRUFDMUIseUJBQW9ELEVBQ3BELHFCQUE0QztRQVA1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBQ08sZUFBVSxHQUFWLFVBQVUsQ0FBUTtRQUNyQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2hCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFDeEMsWUFBTyxHQUFQLE9BQU8sQ0FBaUI7UUFDeEIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUNwRCwwQkFBcUIsR0FBckIscUJBQXFCLENBQXVCO1FBcEI5QyxrQkFBYSxHQUFHLGtDQUFrQyxDQUFDO1FBQ25ELGFBQVEsR0FBRyxNQUFNLENBQUM7UUFDbEIsY0FBUyxHQUFHLFNBQVMsQ0FBQztRQUN0QixrQkFBYSxHQUFHLDJDQUEyQyxDQUFDO1FBQzVELGdCQUFXLEdB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QUFJLENBQUMsRUFBRSxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsQ0FBQyxDQUFDO0lBQzdELENBQUM7K0dBN0pVLG1CQUFtQix3Q0FlcEIsV0FBVyxhQUNYLFFBQVEsYUFDUixVQUFVO21HQWpCVCxtQkFBbUIsNE9BSG5CLENBQUMseUJBQXlCLENBQUM7OzRGQUczQixtQkFBbUI7a0JBTi9CLFNBQVM7bUJBQUM7b0JBQ1QsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsY0FBYztvQkFDeEIsU0FBUyxFQUFFLENBQUMseUJBQXlCLENBQUM7b0JBQ3RDLFVBQVUsRUFBRSxJQUFJO2lCQUNqQjs7MEJBZ0JJLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLE1BQU07MkJBQUMsUUFBUTs7MEJBQ2YsTUFBTTsyQkFBQyxVQUFVO3lLQVRYLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxxQkFBcUI7c0JBQTdCLEtBQUs7Z0JBRUcsVUFBVTtzQkFBbEIsS0FBSztnQkFjQyxPQUFPO3NCQURiLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3QsIElucHV0LCBQTEFURk9STV9JRCwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBMSUJfQ09ORklHLCBMaWJDb25maWcgfSBmcm9tICcuLi8uLi90b2tlbnMvTGliQ29uZmlnJztcbmltcG9ydCB7IFBob25lU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3Bob25lL3Bob25lLnNlcnZpY2UnO1xuaW1wb3J0IHsgUmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZSB9IGZyb20gJy4uL3Jkc2l0ZS1waG9uZS1tb2RhbC9yZHNpdGUtcGhvbmUtbW9kYWwuZGlyZWN0aXZlJztcbmltcG9ydCB7IERldmljZURldGVjdG9yU2VydmljZSB9IGZyb20gJ25neC1kZXZpY2UtZGV0ZWN0b3InO1xuQERpcmVjdGl2ZSh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnW3Jkc2l0ZWxpbmtdJyxcbiAgcHJvdmlkZXJzOiBbUmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZV0sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIFJkc2l0ZUxpbmtEaXJlY3RpdmUge1xuICBwcml2YXRlIGV4dGVybmFsUmVnZXggPSAvXmh0dHA6fGh0dHBzOnx0ZWw6fHd3d1xcLnxtYWlsdG86LztcbiAgcHJpdmF0ZSB0ZWxSZWdleCA9IC90ZWw6LztcbiAgcHJpdmF0ZSBtYWlsUmVnZXggPSAvbWFpbHRvOi87XG4gIHByaXZhdGUgd2hhdHNBcHBSZWdleCA9IC9eaHR0cHM/OlxcL1xcLyh3YVxcLm1lfGFwaVxcLndoYXRzYXBwXFwuY29tKVxcLy87XG4gIHByaXZhdGUgc2l0ZVVybExpc3QgPSBbJ3JlZGVkb3JzYW9sdWl6JywgJ3JlZGVkb3JsYWJzJ107XG4gIHByaXZhdGUgYWxsb3dlZFRhZ3MgPSBbJ0EnLCAnQ1VSQS1CVVRUT04nLCAnQ1VSQS1CVVRUT04tT1VUTElORScsICdDVVJBLUJVVFRPTi1UUkFOU1BBUkVOVCddO1xuXG4gIEBJbnB1dCgpIGFuY2hvckFkanVzdG1lbnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBhbmNob3JFeHRyYUFkanVzdG1lbnQ6IG51bWJlciB8IG51bGwgPSBudWxsO1xuXG4gIEBJbnB1dCgpIHBob25lbW9kYWw6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IG51bGwgPSBudWxsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBvYmplY3QsXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgQEluamVjdChMSUJfQ09ORklHKSBwcml2YXRlIGxpYkNvbmZpZzogTGliQ29uZmlnLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZjxhbnk+LFxuICAgIHByaXZhdGUgcGhvbmVTZXJ2aWNlOiBQaG9uZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZHNpdGVQaG9uZU1vZGFsRGlyZWN0aXZlOiBSZHNpdGVQaG9uZU1vZGFsRGlyZWN0aXZlLFxuICAgIHByaXZhdGUgZGV2aWNlRGV0ZWN0b3JTZXJ2aWNlOiBEZXZpY2VEZXRlY3RvclNlcnZpY2UsXG4gICkge31cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHB1YmxpYyBvbkNsaWNrKGV2ZW50OiBFdmVudCkge1xuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgaWYgKCFpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpIHx8ICF0aGlzLmFsbG93ZWRUYWdzLmluY2x1ZGVzKHRoaXMuZWxlbWVudD8ubmF0aXZlRWxlbWVudD8udGFnTmFtZSkpIHJldHVybjtcbiAgICBjb25zdCBocmVmID0gdGhpcy5lbGVtZW50Py5uYXRpdmVFbGVtZW50Py5nZXRBdHRyaWJ1dGUoJ2hyZWYnKSA/PyAnJztcbiAgICBpZiAoIWhyZWYpIHJldHVybjtcblxuICAgIGlmICh0aGlzLmlzUGhvbmUoaHJlZikpIHtcbiAgICAgIHRoaXMucGhvbmVDbGlja2VkKHtcbiAgICAgICAgaHJlZixcbiAgICAgICAgZXZlbnQsXG4gICAgICAgIGVsZW1lbnQ6IHRoaXMuZWxlbWVudCxcbiAgICAgICAgcGhvbmVtb2RhbDogdGhpcy5waG9uZW1vZGFsLFxuICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgaXNNb2JpbGUgPSB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5pc01vYmlsZSgpO1xuICAgIGNvbnN0IGRldmljZUluZm8gPSB0aGlzLmRldmljZURldGVjdG9yU2VydmljZS5nZXREZXZpY2VJbmZvKCk7XG5cbiAgICBpZiAodGhpcy5pc01haWwoaHJlZikpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IGlzTW9iaWxlIHx8IGRldmljZUluZm8uYnJvd3NlciAhPT0gJ0Nocm9tZScgPyAnX3NlbGYnIDogJ19ibGFuayc7XG4gICAgICB3aW5kb3cub3BlbihocmVmLCB0YXJnZXQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzV2hhdHMoaHJlZikgJiYgaXNNb2JpbGUpIHtcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsICdfc2VsZicpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmlzRXh0ZXJuYWxVcmwoaHJlZikpIHtcbiAgICAgIGNvbnN0IHRhcmdldCA9IHRoaXMuaXNTaXRlVXJsKGhyZWYpID8gJ19zZWxmJyA6ICdfYmxhbmsnO1xuICAgICAgd2luZG93Lm9wZW4oaHJlZiwgdGFyZ2V0KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5pc0FuY2hvcihocmVmKSkge1xuICAgICAgdGhpcy5zY3JvbGxUb0FuY2hvcihocmVmKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLm5hdmlnYXRlVG8oaHJlZik7XG4gIH1cblxuICBwcml2YXRlIGlzUGhvbmUoaHJlZjogc3RyaW5nKSB7XG4gICAgcmV0dXJuIHRoaXMudGVsUmVnZXgudGVzdChocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNNYWlsKGhyZWY6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLm1haWxSZWdleC50ZXN0KGhyZWYpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1doYXRzKGhyZWY6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLndoYXRzQXBwUmVnZXgudGVzdChocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgcGhvbmVDbGlja2VkKHZhbHVlOiB7IGhyZWY6IHN0cmluZzsgZXZlbnQ6IEV2ZW50OyBlbGVtZW50OiBFbGVtZW50UmVmPGFueT47IHBob25lbW9kYWw6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IG51bGwgfSkge1xuICAgIGNvbnN0IHsgaHJlZiwgZXZlbnQsIGVsZW1lbnQsIHBob25lbW9kYWwgfSA9IHZhbHVlO1xuICAgIGlmICh0aGlzLnBob25lU2VydmljZS5pc1Bob25lTW9kYWwoaHJlZikpIHtcbiAgICAgIHRoaXMuc2V0UGhvbmVNb2RhbChlbGVtZW50LCBwaG9uZW1vZGFsKTtcbiAgICAgIHRoaXMucmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZS5vcGVuUGhvbmVNb2RhbChldmVudCwgaHJlZik7XG4gICAgfSBlbHNlIHtcbiAgICAgIHdpbmRvdy5vcGVuKGhyZWYsICdfc2VsZicpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2V0UGhvbmVNb2RhbChlbGVtZW50OiBFbGVtZW50UmVmPGFueT4sIHBob25lbW9kYWw6IFRlbXBsYXRlUmVmPEhUTUxFbGVtZW50PiB8IG51bGwpIHtcbiAgICBpZiAoIXRoaXMucGhvbmVtb2RhbCkgcmV0dXJuO1xuICAgIGlmICghdGhpcy5saWJDb25maWc/LmN1c3RvbVBob25lTW9kYWxDb25kaXRpb24pIHtcbiAgICAgIHRoaXMucmRzaXRlUGhvbmVNb2RhbERpcmVjdGl2ZS5yZHNpdGVwaG9uZW1vZGFsID0gcGhvbmVtb2RhbDtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHRoaXMubGliQ29uZmlnPy5jdXN0b21QaG9uZU1vZGFsQ29uZGl0aW9uKGVsZW1lbnQpKSB7XG4gICAgICB0aGlzLnJkc2l0ZVBob25lTW9kYWxEaXJlY3RpdmUucmRzaXRlcGhvbmVtb2RhbCA9IHBob25lbW9kYWw7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBpc0V4dGVybmFsVXJsKGhyZWY6IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmV4dGVybmFsUmVnZXgudGVzdChocmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaXRlVXJsKGhyZWY6IHN0cmluZykge1xuICAgIGNvbnN0IGV4Y2VwdGlvbiA9ICcvcGFjaWVudGUnO1xuICAgIHJldHVybiB0aGlzLnNpdGVVcmxMaXN0LmZpbmQoKHVybCkgPT4gaHJlZi5pbmNsdWRlcyh1cmwpICYmICFocmVmLmluY2x1ZGVzKGV4Y2VwdGlvbikpO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FuY2hvcihocmVmOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gaHJlZi5zdGFydHNXaXRoKCcjJyk7XG4gIH1cblxuICBwcml2YXRlIHNjcm9sbFRvQW5jaG9yKGhyZWY6IHN0cmluZykge1xuICAgIGlmIChocmVmID09PSAnIycpIHJldHVybjtcbiAgICBpZiAoaXNQbGF0Zm9ybUJyb3dzZXIodGhpcy5wbGF0Zm9ybUlkKSkge1xuICAgICAgY29uc3QgZG9jRWxlbWVudCA9IHRoaXMuZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50O1xuICAgICAgbGV0IGFkanVzdG1lbnQgPSAwO1xuXG4gICAgICBpZiAodGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCkge1xuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5saWJDb25maWcuY3VzdG9tQW5jaG9yQWRqdXN0bWVudCh0aGlzLmRvY3VtZW50KTtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMuYW5jaG9yQWRqdXN0bWVudCkge1xuICAgICAgICBhZGp1c3RtZW50ID0gdGhpcy5hbmNob3JBZGp1c3RtZW50O1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5hbmNob3JFeHRyYUFkanVzdG1lbnQpIHtcbiAgICAgICAgYWRqdXN0bWVudCArPSB0aGlzLmFuY2hvckV4dHJhQWRqdXN0bWVudDtcbiAgICAgIH1cblxuICAgICAgY29uc3QgYm9keVRvcCA9IHRoaXMuZG9jdW1lbnQ/LmJvZHk/LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpPy50b3AgPz8gMDtcbiAgICAgIGNvbnN0IGhyZWZUb3AgPSB0aGlzLmRvY3VtZW50Py5xdWVyeVNlbGVjdG9yPEhUTUxFbGVtZW50PihocmVmKT8uZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk/LnRvcCA/PyAwO1xuICAgICAgY29uc3Qgc2Nyb2xsVG9wID0gYm9keVRvcCAqIC0xICsgaHJlZlRvcCAtIGFkanVzdG1lbnQ7XG4gICAgICBkb2NFbGVtZW50LnNjcm9sbFRvKHsgdG9wOiBzY3JvbGxUb3AsIGJlaGF2aW9yOiAnc21vb3RoJyB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG5hdmlnYXRlVG8oaHJlZjogc3RyaW5nKSB7XG4gICAgY29uc3Qgc2l0ZUJhc2VQYXRoID0gdGhpcy5saWJDb25maWcuc2l0ZVN1Zml4ID8/ICcnO1xuICAgIGNvbnN0IG5vQmFzZUhyZWYgPSBocmVmLmluY2x1ZGVzKHNpdGVCYXNlUGF0aCkgPyBocmVmLnJlcGxhY2Uoc2l0ZUJhc2VQYXRoLCAnJykgOiBocmVmO1xuICAgIGlmICh0aGlzLmxpYkNvbmZpZz8uY3VzdG9tSW50ZXJuYWxMaW5rTmF2aWdhdGlvbiAmJiB0aGlzLmxpYkNvbmZpZy5jdXN0b21JbnRlcm5hbExpbmtOYXZpZ2F0aW9uKG5vQmFzZUhyZWYpKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgW3BhdGgsIHF1ZXJ5XSA9IG5vQmFzZUhyZWYuc3BsaXQoJz8nKTtcbiAgICBjb25zdCBxdWVyeVBhcmFtczogUmVjb3JkPHN0cmluZywgYW55PiA9IHt9O1xuICAgIGlmIChxdWVyeSkge1xuICAgICAgY29uc3QgcXVlcnlBcnJheSA9IHF1ZXJ5LnNwbGl0KCcmJyk7XG4gICAgICBxdWVyeUFycmF5LmZvckVhY2goKHEpID0+IHtcbiAgICAgICAgY29uc3QgYXJyID0gcS5zcGxpdCgnPScpO1xuICAgICAgICBxdWVyeVBhcmFtc1thcnJbMF1dID0gYXJyWzFdO1xuICAgICAgfSk7XG4gICAgfVxuICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtwYXRoXSwgeyBxdWVyeVBhcmFtczogcXVlcnlQYXJhbXMgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -17192,7 +17192,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
17192
17192
  }] } });
17193
17193
 
17194
17194
  class RdsiteLinkDirective {
17195
- constructor(router, platformId, document, libConfig, element, phoneService, rdsitePhoneModalDirective) {
17195
+ constructor(router, platformId, document, libConfig, element, phoneService, rdsitePhoneModalDirective, deviceDetectorService) {
17196
17196
  this.router = router;
17197
17197
  this.platformId = platformId;
17198
17198
  this.document = document;
@@ -17200,9 +17200,11 @@ class RdsiteLinkDirective {
17200
17200
  this.element = element;
17201
17201
  this.phoneService = phoneService;
17202
17202
  this.rdsitePhoneModalDirective = rdsitePhoneModalDirective;
17203
+ this.deviceDetectorService = deviceDetectorService;
17203
17204
  this.externalRegex = /^http:|https:|tel:|www\.|mailto:/;
17204
17205
  this.telRegex = /tel:/;
17205
17206
  this.mailRegex = /mailto:/;
17207
+ this.whatsAppRegex = /^https?:\/\/(wa\.me|api\.whatsapp\.com)\//;
17206
17208
  this.siteUrlList = ['rededorsaoluiz', 'rededorlabs'];
17207
17209
  this.allowedTags = ['A', 'CURA-BUTTON', 'CURA-BUTTON-OUTLINE', 'CURA-BUTTON-TRANSPARENT'];
17208
17210
  this.anchorAdjustment = null;
@@ -17225,8 +17227,19 @@ class RdsiteLinkDirective {
17225
17227
  });
17226
17228
  return;
17227
17229
  }
17230
+ const isMobile = this.deviceDetectorService.isMobile();
17231
+ const deviceInfo = this.deviceDetectorService.getDeviceInfo();
17232
+ if (this.isMail(href)) {
17233
+ const target = isMobile || deviceInfo.browser !== 'Chrome' ? '_self' : '_blank';
17234
+ window.open(href, target);
17235
+ return;
17236
+ }
17237
+ if (this.isWhats(href) && isMobile) {
17238
+ window.open(href, '_self');
17239
+ return;
17240
+ }
17228
17241
  if (this.isExternalUrl(href)) {
17229
- const target = this.isSiteUrl(href) || this.isMail(href) ? '_self' : '_blank';
17242
+ const target = this.isSiteUrl(href) ? '_self' : '_blank';
17230
17243
  window.open(href, target);
17231
17244
  return;
17232
17245
  }
@@ -17242,6 +17255,9 @@ class RdsiteLinkDirective {
17242
17255
  isMail(href) {
17243
17256
  return this.mailRegex.test(href);
17244
17257
  }
17258
+ isWhats(href) {
17259
+ return this.whatsAppRegex.test(href);
17260
+ }
17245
17261
  phoneClicked(value) {
17246
17262
  const { href, event, element, phonemodal } = value;
17247
17263
  if (this.phoneService.isPhoneModal(href)) {
@@ -17311,7 +17327,7 @@ class RdsiteLinkDirective {
17311
17327
  }
17312
17328
  this.router.navigate([path], { queryParams: queryParams });
17313
17329
  }
17314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, deps: [{ token: i1$3.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: LIB_CONFIG }, { token: i0.ElementRef }, { token: PhoneService }, { token: RdsitePhoneModalDirective }], target: i0.ɵɵFactoryTarget.Directive }); }
17330
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, deps: [{ token: i1$3.Router }, { token: PLATFORM_ID }, { token: DOCUMENT }, { token: LIB_CONFIG }, { token: i0.ElementRef }, { token: PhoneService }, { token: RdsitePhoneModalDirective }, { token: i2.DeviceDetectorService }], target: i0.ɵɵFactoryTarget.Directive }); }
17315
17331
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.12", type: RdsiteLinkDirective, isStandalone: true, selector: "[rdsitelink]", inputs: { anchorAdjustment: "anchorAdjustment", anchorExtraAdjustment: "anchorExtraAdjustment", phonemodal: "phonemodal" }, host: { listeners: { "click": "onClick($event)" } }, providers: [RdsitePhoneModalDirective], ngImport: i0 }); }
17316
17332
  }
17317
17333
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: RdsiteLinkDirective, decorators: [{
@@ -17331,7 +17347,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
17331
17347
  }] }, { type: undefined, decorators: [{
17332
17348
  type: Inject,
17333
17349
  args: [LIB_CONFIG]
17334
- }] }, { type: i0.ElementRef }, { type: PhoneService }, { type: RdsitePhoneModalDirective }], propDecorators: { anchorAdjustment: [{
17350
+ }] }, { type: i0.ElementRef }, { type: PhoneService }, { type: RdsitePhoneModalDirective }, { type: i2.DeviceDetectorService }], propDecorators: { anchorAdjustment: [{
17335
17351
  type: Input
17336
17352
  }], anchorExtraAdjustment: [{
17337
17353
  type: Input