@sumaris-net/ngx-components 1.8.1 → 1.9.2

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.
Files changed (34) hide show
  1. package/bundles/sumaris-net.ngx-components.umd.js +208 -197
  2. package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
  3. package/bundles/sumaris-net.ngx-components.umd.min.js +1 -1
  4. package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
  5. package/doc/changelog.md +5 -1
  6. package/esm2015/public_api.js +2 -1
  7. package/esm2015/src/app/admin/users/list/users.js +5 -22
  8. package/esm2015/src/app/core/home/home.js +3 -3
  9. package/esm2015/src/app/core/register/confirm/confirm.js +1 -1
  10. package/esm2015/src/app/core/services/account.service.js +38 -27
  11. package/esm2015/src/app/core/services/local-settings.service.js +18 -14
  12. package/esm2015/src/app/core/services/model/settings.model.js +1 -1
  13. package/esm2015/src/app/core/services/platform.service.js +35 -31
  14. package/esm2015/src/app/core/table/memory-table.class.js +2 -7
  15. package/esm2015/src/app/core/table/table.class.js +21 -24
  16. package/esm2015/src/app/shared/directives/autofocus.directive.js +15 -24
  17. package/esm2015/src/app/shared/platforms.js +36 -0
  18. package/esm2015/src/app/shared/services/progress-bar.service.js +1 -1
  19. package/esm2015/src/app/social/list/user-events.table.js +3 -8
  20. package/fesm2015/sumaris-net.ngx-components.js +162 -136
  21. package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
  22. package/package.json +1 -1
  23. package/public_api.d.ts +1 -0
  24. package/src/app/admin/users/list/users.d.ts +1 -12
  25. package/src/app/core/services/account.service.d.ts +2 -0
  26. package/src/app/core/services/local-settings.service.d.ts +0 -2
  27. package/src/app/core/services/model/settings.model.d.ts +0 -1
  28. package/src/app/core/services/platform.service.d.ts +8 -5
  29. package/src/app/core/table/memory-table.class.d.ts +0 -1
  30. package/src/app/core/table/table.class.d.ts +8 -10
  31. package/src/app/shared/directives/autofocus.directive.d.ts +4 -5
  32. package/src/app/shared/platforms.d.ts +13 -0
  33. package/src/app/social/list/user-events.table.d.ts +0 -1
  34. package/sumaris-net.ngx-components.metadata.json +1 -1
@@ -1,26 +1,21 @@
1
1
  // Import the core angular services.
2
2
  import { Directive, ElementRef, Optional } from '@angular/core';
3
- import { Platform } from '@ionic/angular';
4
3
  import { Keyboard } from '@ionic-native/keyboard/ngx';
4
+ import { isMobile } from '../platforms';
5
5
  // ----------------------------------------------------------------------------------- //
6
6
  // ----------------------------------------------------------------------------------- //
7
7
  const BASE_TIMER_DELAY = 100;
8
8
  export class AutofocusDirective {
9
9
  // I initialize the autofocus directive.
10
- constructor(elementRef, platform, keyboard) {
10
+ constructor(elementRef, keyboard) {
11
11
  this.keyboard = keyboard;
12
- this.timer = null;
13
- this.elementRef = elementRef;
12
+ this._timer = null;
13
+ this._elementRef = elementRef;
14
14
  this.shouldFocusElement = '';
15
- this.timer = null;
15
+ this._timer = null;
16
16
  this.timerDelay = BASE_TIMER_DELAY;
17
- platform.ready().then(() => {
18
- this.touchUi = platform.is('mobile') || platform.is('tablet');
19
- });
17
+ this._mobile = isMobile(window);
20
18
  }
21
- // ---
22
- // PUBLIC METHODS.
23
- // ---
24
19
  // I get called once after the contents have been fully initialized.
25
20
  ngAfterContentInit() {
26
21
  // Because this directive can act on the stand-only "autofocus" attribute or
@@ -55,29 +50,26 @@ export class AutofocusDirective {
55
50
  ngOnDestroy() {
56
51
  this.stopFocusWorkflow();
57
52
  }
58
- // ---
59
- // PRIVATE METHODS.
60
- // ---
53
+ /* --- private functions -- */
61
54
  // I start the timer-based workflow that will focus the current element.
62
55
  startFocusWorkflow() {
63
56
  // if touch UI: do NOT focus when keyboard hide
64
- if (this.touchUi && this.keyboard && this.keyboard.isVisible === false)
57
+ if (this._mobile && this.keyboard && this.keyboard.isVisible === false)
65
58
  return;
66
59
  // If there is already a timer running for this element, just let it play out -
67
60
  // resetting it at this point will only push-out the time at which the focus is
68
61
  // applied to the element.
69
- if (this.timer) {
62
+ if (this._timer)
70
63
  return;
71
- }
72
- this.timer = setTimeout(() => {
73
- this.timer = null;
74
- this.elementRef.nativeElement.focus();
64
+ this._timer = setTimeout(() => {
65
+ this._timer = null;
66
+ this._elementRef.nativeElement.focus();
75
67
  }, this.timerDelay);
76
68
  }
77
69
  // I stop the timer-based workflow, preventing focus from taking place.
78
70
  stopFocusWorkflow() {
79
- clearTimeout(this.timer);
80
- this.timer = null;
71
+ clearTimeout(this._timer);
72
+ this._timer = null;
81
73
  }
82
74
  }
83
75
  AutofocusDirective.decorators = [
@@ -91,7 +83,6 @@ AutofocusDirective.decorators = [
91
83
  ];
92
84
  AutofocusDirective.ctorParameters = () => [
93
85
  { type: ElementRef },
94
- { type: Platform },
95
86
  { type: Keyboard, decorators: [{ type: Optional }] }
96
87
  ];
97
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBQ3JILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4QyxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sNEJBQTRCLENBQUM7QUFHcEQseUZBQXlGO0FBQ3pGLHlGQUF5RjtBQUV6RixNQUFNLGdCQUFnQixHQUFHLEdBQUcsQ0FBQztBQVM3QixNQUFNLE9BQU8sa0JBQWtCO0lBUzdCLHdDQUF3QztJQUN4QyxZQUNFLFVBQXNCLEVBQ3RCLFFBQWtCLEVBQ0ksUUFBa0I7UUFBbEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQVBsQyxVQUFLLEdBQVksSUFBSSxDQUFDO1FBUzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBRTdCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxFQUFFLENBQUM7UUFDN0IsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxnQkFBZ0IsQ0FBQztRQUVuQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRTtZQUN6QixJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksUUFBUSxDQUFDLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO0lBQ04sa0JBQWtCO0lBQ2xCLE1BQU07SUFFTixvRUFBb0U7SUFDN0Qsa0JBQWtCO1FBRXZCLDRFQUE0RTtRQUM1RSwrRUFBK0U7UUFDL0UsNkVBQTZFO1FBQzdFLGlGQUFpRjtRQUNqRixJQUFLLElBQUksQ0FBQyxrQkFBa0IsS0FBSyxFQUFFLEVBQUc7WUFFcEMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7U0FFM0I7SUFFSCxDQUFDO0lBR0QsMERBQTBEO0lBQ25ELFdBQVcsQ0FBRSxPQUFzQjtRQUV4QywwRUFBMEU7UUFDMUUseUVBQXlFO1FBQ3pFLDRFQUE0RTtRQUM1RSxJQUFLLE9BQU8sQ0FBQyxVQUFVLElBQUksQ0FBRSxPQUFNLENBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBRSxLQUFLLFFBQVEsQ0FBRSxFQUFHO1lBRXRFLHlEQUF5RDtZQUN6RCxJQUFLLEtBQUssQ0FBRSxJQUFJLENBQUMsVUFBVSxHQUFHLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBRSxFQUFHO2dCQUVqRCxJQUFJLENBQUMsVUFBVSxHQUFHLGdCQUFnQixDQUFDO2FBRXBDO1NBRUY7UUFFRCw0RUFBNEU7UUFDNUUsZ0ZBQWdGO1FBQ2hGLDZFQUE2RTtRQUM3RSxJQUFLLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRztZQUVoQyxDQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBRTtnQkFDekIsQ0FBQyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0IsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUMzQjtTQUVGO0lBRUgsQ0FBQztJQUdELDJEQUEyRDtJQUNwRCxXQUFXO1FBRWhCLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBRTNCLENBQUM7SUFFRCxNQUFNO0lBQ04sbUJBQW1CO0lBQ25CLE1BQU07SUFFTix3RUFBd0U7SUFDaEUsa0JBQWtCO1FBRXhCLCtDQUErQztRQUMvQyxJQUFJLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsS0FBSyxLQUFLO1lBQUUsT0FBTztRQUUvRSwrRUFBK0U7UUFDL0UsK0VBQStFO1FBQy9FLDBCQUEwQjtRQUMxQixJQUFLLElBQUksQ0FBQyxLQUFLLEVBQUc7WUFFaEIsT0FBTztTQUVSO1FBRUQsSUFBSSxDQUFDLEtBQUssR0FBRyxVQUFVLENBQ3JCLEdBQUcsRUFBRTtZQUNILElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hDLENBQUMsRUFDRCxJQUFJLENBQUMsVUFBVSxDQUNoQixDQUFDO0lBRUosQ0FBQztJQUdELHVFQUF1RTtJQUMvRCxpQkFBaUI7UUFFdkIsWUFBWSxDQUFFLElBQUksQ0FBQyxLQUFLLENBQUUsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUVwQixDQUFDOzs7WUFoSUYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxrQ0FBa0M7Z0JBQzVDLE1BQU0sRUFBRTtvQkFDTixrQ0FBa0M7b0JBQ2xDLDRCQUE0QjtpQkFDN0I7YUFDRjs7O1lBaEJvQyxVQUFVO1lBQ3ZDLFFBQVE7WUFDUixRQUFRLHVCQTRCWCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7S2V5Ym9hcmR9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Ym9hcmQvbmd4JztcbmltcG9ydCBUaW1lb3V0ID0gTm9kZUpTLlRpbWVvdXQ7XG5cbi8vIC0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tIC8vXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuXG5jb25zdCBCQVNFX1RJTUVSX0RFTEFZID0gMTAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbYXV0b2ZvY3VzXSwgaW5wdXRbYXBwQXV0b2ZvY3VzXScsXG4gIGlucHV0czogW1xuICAgICdzaG91bGRGb2N1c0VsZW1lbnQ6IGFwcEF1dG9mb2N1cycsXG4gICAgJ3RpbWVyRGVsYXk6IGF1dG9mb2N1c0RlbGF5J1xuICBdXG59KVxuZXhwb3J0IGNsYXNzIEF1dG9mb2N1c0RpcmVjdGl2ZSBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcblxuICBwdWJsaWMgc2hvdWxkRm9jdXNFbGVtZW50OiBhbnk7XG4gIHB1YmxpYyB0aW1lckRlbGF5OiBudW1iZXI7XG5cbiAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBwcml2YXRlIHRpbWVyOiBUaW1lb3V0ID0gbnVsbDtcbiAgcHJpdmF0ZSB0b3VjaFVpOiBib29sZWFuO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgYXV0b2ZvY3VzIGRpcmVjdGl2ZS5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwbGF0Zm9ybTogUGxhdGZvcm0sXG4gICAgQE9wdGlvbmFsKCkgcHJvdGVjdGVkIGtleWJvYXJkOiBLZXlib2FyZCApIHtcblxuICAgIHRoaXMuZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG5cbiAgICB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9ICcnO1xuICAgIHRoaXMudGltZXIgPSBudWxsO1xuICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICBwbGF0Zm9ybS5yZWFkeSgpLnRoZW4oKCkgPT4ge1xuICAgICAgdGhpcy50b3VjaFVpID0gcGxhdGZvcm0uaXMoJ21vYmlsZScpIHx8IHBsYXRmb3JtLmlzKCd0YWJsZXQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIC8vIC0tLVxuICAvLyBQVUJMSUMgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBnZXQgY2FsbGVkIG9uY2UgYWZ0ZXIgdGhlIGNvbnRlbnRzIGhhdmUgYmVlbiBmdWxseSBpbml0aWFsaXplZC5cbiAgcHVibGljIG5nQWZ0ZXJDb250ZW50SW5pdCgpIHtcblxuICAgIC8vIEJlY2F1c2UgdGhpcyBkaXJlY3RpdmUgY2FuIGFjdCBvbiB0aGUgc3RhbmQtb25seSBcImF1dG9mb2N1c1wiIGF0dHJpYnV0ZSBvclxuICAgIC8vIHRoZSBtb3JlIHNwZWNpYWxpemVkIFwiYXBwQXV0b2ZvY3VzXCIgcHJvcGVydHksIHdlIG5lZWQgdG8gY2hlY2sgdG8gc2VlIGlmIHRoZVxuICAgIC8vIFwic2hvdWxkRm9jdXNFbGVtZW50XCIgaW5wdXQgcHJvcGVydHkgaXMgdGhlIGVtcHR5IHN0cmluZy4gVGhpcyB3aWxsIHNpZ25pZnlcbiAgICAvLyB0aGF0IHRoZSBmb2N1cyBpdCBub3QgYmVpbmcgZGF0YS1kcml2ZW4gYW5kIHNob3VsZCBiZSBwZXJmb3JtZWQgYXV0b21hdGljYWxseS5cbiAgICBpZiAoIHRoaXMuc2hvdWxkRm9jdXNFbGVtZW50ID09PSAnJyApIHtcblxuICAgICAgdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKTtcblxuICAgIH1cblxuICB9XG5cblxuICAvLyBJIGdldCBjYWxsZWQgZXZlcnkgdGltZSB0aGUgaW5wdXQgYmluZGluZ3MgYXJlIHVwZGF0ZWQuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyggY2hhbmdlczogU2ltcGxlQ2hhbmdlcyApIHtcblxuICAgIC8vIElmIHRoZSB0aW1lciBkZWxheSBpcyBiZWluZyBwYXNzZWQtaW4gYXMgYSBzdHJpbmcgKGllLCBzb21lb25lIGlzIHVzaW5nXG4gICAgLy8gYXR0cmlidXRlLWlucHV0IHN5bnRheCwgbm90IHByb3BlcnR5LWlucHV0IHN5bnRheCksIGxldCdzIGNvYWxlc2NlIHRoZVxuICAgIC8vIGF0dHJpYnV0ZSB0byBhIG51bWVyaWMgdmFsdWUgc28gdGhhdCBvdXIgdHlwZS1hbm5vdGF0aW9ucyBhcmUgY29uc2lzdGVudC5cbiAgICBpZiAoIGNoYW5nZXMudGltZXJEZWxheSAmJiAoIHR5cGVvZiggdGhpcy50aW1lckRlbGF5ICkgIT09ICdudW1iZXInICkgKSB7XG5cbiAgICAgIC8vIElmIHRoZSBjb2FsZXNjZSBmYWlscywganVzdCBmYWxsLWJhY2sgdG8gYSBzYW5lIHZhbHVlLlxuICAgICAgaWYgKCBpc05hTiggdGhpcy50aW1lckRlbGF5ID0gK3RoaXMudGltZXJEZWxheSApICkge1xuXG4gICAgICAgIHRoaXMudGltZXJEZWxheSA9IEJBU0VfVElNRVJfREVMQVk7XG5cbiAgICAgIH1cblxuICAgIH1cblxuICAgIC8vIElmIHRoZSBmb2N1cyBpbnB1dCBpcyBiZWluZyBkYXRhLWRyaXZlbiwgdGhlbiB3ZSBlaXRoZXIgbmVlZCB0byBzdGFydCB0aGVcbiAgICAvLyBmb2N1cyB3b3JrZmxvdyBpZiBmb2N1cyBpcyByZXF1aXJlZDsgb3IsIGNsZWFyIGFueSBleGlzdGluZyB3b3JrZmxvdyBpZiBmb2N1c1xuICAgIC8vIGlzIG5vIGxvbmdlciByZXF1aXJlZCAoc28gdGhhdCB3ZSBkb24ndCBzdGVhbCBmb2N1cyBmcm9tIGFub3RoZXIgZWxlbWVudCkuXG4gICAgaWYgKCBjaGFuZ2VzLnNob3VsZEZvY3VzRWxlbWVudCApIHtcblxuICAgICAgKCB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCApXG4gICAgICAgID8gdGhpcy5zdGFydEZvY3VzV29ya2Zsb3coKVxuICAgICAgICA6IHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKVxuICAgICAgO1xuXG4gICAgfVxuXG4gIH1cblxuXG4gIC8vIEkgZ2V0IGNhbGxlZCBvbmNlIHdoZW4gdGhlIGRpcmVjdGl2ZSBpcyBiZWluZyB1bm1vdW50ZWQuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcblxuICAgIHRoaXMuc3RvcEZvY3VzV29ya2Zsb3coKTtcblxuICB9XG5cbiAgLy8gLS0tXG4gIC8vIFBSSVZBVEUgTUVUSE9EUy5cbiAgLy8gLS0tXG5cbiAgLy8gSSBzdGFydCB0aGUgdGltZXItYmFzZWQgd29ya2Zsb3cgdGhhdCB3aWxsIGZvY3VzIHRoZSBjdXJyZW50IGVsZW1lbnQuXG4gIHByaXZhdGUgc3RhcnRGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgLy8gaWYgdG91Y2ggVUk6IGRvIE5PVCBmb2N1cyB3aGVuIGtleWJvYXJkIGhpZGVcbiAgICBpZiAodGhpcy50b3VjaFVpICYmIHRoaXMua2V5Ym9hcmQgJiYgdGhpcy5rZXlib2FyZC5pc1Zpc2libGUgPT09IGZhbHNlKSByZXR1cm47XG5cbiAgICAvLyBJZiB0aGVyZSBpcyBhbHJlYWR5IGEgdGltZXIgcnVubmluZyBmb3IgdGhpcyBlbGVtZW50LCBqdXN0IGxldCBpdCBwbGF5IG91dCAtXG4gICAgLy8gcmVzZXR0aW5nIGl0IGF0IHRoaXMgcG9pbnQgd2lsbCBvbmx5IHB1c2gtb3V0IHRoZSB0aW1lIGF0IHdoaWNoIHRoZSBmb2N1cyBpc1xuICAgIC8vIGFwcGxpZWQgdG8gdGhlIGVsZW1lbnQuXG4gICAgaWYgKCB0aGlzLnRpbWVyICkge1xuXG4gICAgICByZXR1cm47XG5cbiAgICB9XG5cbiAgICB0aGlzLnRpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy50aW1lciA9IG51bGw7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICB9LFxuICAgICAgdGhpcy50aW1lckRlbGF5XG4gICAgKTtcblxuICB9XG5cblxuICAvLyBJIHN0b3AgdGhlIHRpbWVyLWJhc2VkIHdvcmtmbG93LCBwcmV2ZW50aW5nIGZvY3VzIGZyb20gdGFraW5nIHBsYWNlLlxuICBwcml2YXRlIHN0b3BGb2N1c1dvcmtmbG93KCkge1xuXG4gICAgY2xlYXJUaW1lb3V0KCB0aGlzLnRpbWVyICk7XG4gICAgdGhpcy50aW1lciA9IG51bGw7XG5cbiAgfVxuXG59XG4iXX0=
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXV0b2ZvY3VzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9hcHAvc2hhcmVkL2RpcmVjdGl2ZXMvYXV0b2ZvY3VzLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvQ0FBb0M7QUFDcEMsT0FBTyxFQUFtQixTQUFTLEVBQUUsVUFBVSxFQUF3QixRQUFRLEVBQWdCLE1BQU0sZUFBZSxDQUFDO0FBRXJILE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUVwRCxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sY0FBYyxDQUFDO0FBRXRDLHlGQUF5RjtBQUN6Rix5RkFBeUY7QUFFekYsTUFBTSxnQkFBZ0IsR0FBRyxHQUFHLENBQUM7QUFTN0IsTUFBTSxPQUFPLGtCQUFrQjtJQVM3Qix3Q0FBd0M7SUFDeEMsWUFDRSxVQUFzQixFQUNBLFFBQWtCO1FBQWxCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFMbEMsV0FBTSxHQUFZLElBQUksQ0FBQztRQU83QixJQUFJLENBQUMsV0FBVyxHQUFHLFVBQVUsQ0FBQztRQUU5QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7UUFDbkMsSUFBSSxDQUFDLE9BQU8sR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELG9FQUFvRTtJQUNwRSxrQkFBa0I7UUFFaEIsNEVBQTRFO1FBQzVFLCtFQUErRTtRQUMvRSw2RUFBNkU7UUFDN0UsaUZBQWlGO1FBQ2pGLElBQUssSUFBSSxDQUFDLGtCQUFrQixLQUFLLEVBQUUsRUFBRztZQUNwQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztTQUMzQjtJQUNILENBQUM7SUFFRCwwREFBMEQ7SUFDMUQsV0FBVyxDQUFFLE9BQXNCO1FBRWpDLDBFQUEwRTtRQUMxRSx5RUFBeUU7UUFDekUsNEVBQTRFO1FBQzVFLElBQUssT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFFLE9BQU0sQ0FBRSxJQUFJLENBQUMsVUFBVSxDQUFFLEtBQUssUUFBUSxDQUFFLEVBQUc7WUFFdEUseURBQXlEO1lBQ3pELElBQUssS0FBSyxDQUFFLElBQUksQ0FBQyxVQUFVLEdBQUcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFFLEVBQUc7Z0JBQ2pELElBQUksQ0FBQyxVQUFVLEdBQUcsZ0JBQWdCLENBQUM7YUFDcEM7U0FDRjtRQUVELDRFQUE0RTtRQUM1RSxnRkFBZ0Y7UUFDaEYsNkVBQTZFO1FBQzdFLElBQUssT0FBTyxDQUFDLGtCQUFrQixFQUFHO1lBRWhDLENBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFFO2dCQUN6QixDQUFDLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFO2dCQUMzQixDQUFDLENBQUMsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQzNCO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsMkRBQTJEO0lBQzNELFdBQVc7UUFDVCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsOEJBQThCO0lBRTlCLHdFQUF3RTtJQUNoRSxrQkFBa0I7UUFFeEIsK0NBQStDO1FBQy9DLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxLQUFLLEtBQUs7WUFBRSxPQUFPO1FBRS9FLCtFQUErRTtRQUMvRSwrRUFBK0U7UUFDL0UsMEJBQTBCO1FBQzFCLElBQUssSUFBSSxDQUFDLE1BQU07WUFBSSxPQUFPO1FBRTNCLElBQUksQ0FBQyxNQUFNLEdBQUcsVUFBVSxDQUN0QixHQUFHLEVBQUU7WUFDSCxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNuQixJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUN6QyxDQUFDLEVBQ0QsSUFBSSxDQUFDLFVBQVUsQ0FDaEIsQ0FBQztJQUVKLENBQUM7SUFFRCx1RUFBdUU7SUFDL0QsaUJBQWlCO1FBQ3ZCLFlBQVksQ0FBRSxJQUFJLENBQUMsTUFBTSxDQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7SUFDckIsQ0FBQzs7O1lBbkdGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsa0NBQWtDO2dCQUM1QyxNQUFNLEVBQUU7b0JBQ04sa0NBQWtDO29CQUNsQyw0QkFBNEI7aUJBQzdCO2FBQ0Y7OztZQWpCb0MsVUFBVTtZQUV2QyxRQUFRLHVCQTRCWCxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gSW1wb3J0IHRoZSBjb3JlIGFuZ3VsYXIgc2VydmljZXMuXG5pbXBvcnQge0FmdGVyQ29udGVudEluaXQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9wdGlvbmFsLCBTaW1wbGVDaGFuZ2VzfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7UGxhdGZvcm19IGZyb20gJ0Bpb25pYy9hbmd1bGFyJztcbmltcG9ydCB7S2V5Ym9hcmR9IGZyb20gJ0Bpb25pYy1uYXRpdmUva2V5Ym9hcmQvbmd4JztcbmltcG9ydCBUaW1lb3V0ID0gTm9kZUpTLlRpbWVvdXQ7XG5pbXBvcnQge2lzTW9iaWxlfSBmcm9tICcuLi9wbGF0Zm9ybXMnO1xuXG4vLyAtLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLSAvL1xuLy8gLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0gLy9cblxuY29uc3QgQkFTRV9USU1FUl9ERUxBWSA9IDEwMDtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW2F1dG9mb2N1c10sIGlucHV0W2FwcEF1dG9mb2N1c10nLFxuICBpbnB1dHM6IFtcbiAgICAnc2hvdWxkRm9jdXNFbGVtZW50OiBhcHBBdXRvZm9jdXMnLFxuICAgICd0aW1lckRlbGF5OiBhdXRvZm9jdXNEZWxheSdcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBBdXRvZm9jdXNEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRJbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG5cbiAgcHVibGljIHNob3VsZEZvY3VzRWxlbWVudDogYW55O1xuICBwdWJsaWMgdGltZXJEZWxheTogbnVtYmVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2VsZW1lbnRSZWY6IEVsZW1lbnRSZWY7XG4gIHByaXZhdGUgcmVhZG9ubHkgX21vYmlsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSBfdGltZXI6IFRpbWVvdXQgPSBudWxsO1xuXG4gIC8vIEkgaW5pdGlhbGl6ZSB0aGUgYXV0b2ZvY3VzIGRpcmVjdGl2ZS5cbiAgY29uc3RydWN0b3IoXG4gICAgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQga2V5Ym9hcmQ6IEtleWJvYXJkICkge1xuXG4gICAgdGhpcy5fZWxlbWVudFJlZiA9IGVsZW1lbnRSZWY7XG5cbiAgICB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9ICcnO1xuICAgIHRoaXMuX3RpbWVyID0gbnVsbDtcbiAgICB0aGlzLnRpbWVyRGVsYXkgPSBCQVNFX1RJTUVSX0RFTEFZO1xuICAgIHRoaXMuX21vYmlsZSA9IGlzTW9iaWxlKHdpbmRvdyk7XG4gIH1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSBhZnRlciB0aGUgY29udGVudHMgaGF2ZSBiZWVuIGZ1bGx5IGluaXRpYWxpemVkLlxuICBuZ0FmdGVyQ29udGVudEluaXQoKSB7XG5cbiAgICAvLyBCZWNhdXNlIHRoaXMgZGlyZWN0aXZlIGNhbiBhY3Qgb24gdGhlIHN0YW5kLW9ubHkgXCJhdXRvZm9jdXNcIiBhdHRyaWJ1dGUgb3JcbiAgICAvLyB0aGUgbW9yZSBzcGVjaWFsaXplZCBcImFwcEF1dG9mb2N1c1wiIHByb3BlcnR5LCB3ZSBuZWVkIHRvIGNoZWNrIHRvIHNlZSBpZiB0aGVcbiAgICAvLyBcInNob3VsZEZvY3VzRWxlbWVudFwiIGlucHV0IHByb3BlcnR5IGlzIHRoZSBlbXB0eSBzdHJpbmcuIFRoaXMgd2lsbCBzaWduaWZ5XG4gICAgLy8gdGhhdCB0aGUgZm9jdXMgaXQgbm90IGJlaW5nIGRhdGEtZHJpdmVuIGFuZCBzaG91bGQgYmUgcGVyZm9ybWVkIGF1dG9tYXRpY2FsbHkuXG4gICAgaWYgKCB0aGlzLnNob3VsZEZvY3VzRWxlbWVudCA9PT0gJycgKSB7XG4gICAgICB0aGlzLnN0YXJ0Rm9jdXNXb3JrZmxvdygpO1xuICAgIH1cbiAgfVxuXG4gIC8vIEkgZ2V0IGNhbGxlZCBldmVyeSB0aW1lIHRoZSBpbnB1dCBiaW5kaW5ncyBhcmUgdXBkYXRlZC5cbiAgbmdPbkNoYW5nZXMoIGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMgKSB7XG5cbiAgICAvLyBJZiB0aGUgdGltZXIgZGVsYXkgaXMgYmVpbmcgcGFzc2VkLWluIGFzIGEgc3RyaW5nIChpZSwgc29tZW9uZSBpcyB1c2luZ1xuICAgIC8vIGF0dHJpYnV0ZS1pbnB1dCBzeW50YXgsIG5vdCBwcm9wZXJ0eS1pbnB1dCBzeW50YXgpLCBsZXQncyBjb2FsZXNjZSB0aGVcbiAgICAvLyBhdHRyaWJ1dGUgdG8gYSBudW1lcmljIHZhbHVlIHNvIHRoYXQgb3VyIHR5cGUtYW5ub3RhdGlvbnMgYXJlIGNvbnNpc3RlbnQuXG4gICAgaWYgKCBjaGFuZ2VzLnRpbWVyRGVsYXkgJiYgKCB0eXBlb2YoIHRoaXMudGltZXJEZWxheSApICE9PSAnbnVtYmVyJyApICkge1xuXG4gICAgICAvLyBJZiB0aGUgY29hbGVzY2UgZmFpbHMsIGp1c3QgZmFsbC1iYWNrIHRvIGEgc2FuZSB2YWx1ZS5cbiAgICAgIGlmICggaXNOYU4oIHRoaXMudGltZXJEZWxheSA9ICt0aGlzLnRpbWVyRGVsYXkgKSApIHtcbiAgICAgICAgdGhpcy50aW1lckRlbGF5ID0gQkFTRV9USU1FUl9ERUxBWTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICAvLyBJZiB0aGUgZm9jdXMgaW5wdXQgaXMgYmVpbmcgZGF0YS1kcml2ZW4sIHRoZW4gd2UgZWl0aGVyIG5lZWQgdG8gc3RhcnQgdGhlXG4gICAgLy8gZm9jdXMgd29ya2Zsb3cgaWYgZm9jdXMgaXMgcmVxdWlyZWQ7IG9yLCBjbGVhciBhbnkgZXhpc3Rpbmcgd29ya2Zsb3cgaWYgZm9jdXNcbiAgICAvLyBpcyBubyBsb25nZXIgcmVxdWlyZWQgKHNvIHRoYXQgd2UgZG9uJ3Qgc3RlYWwgZm9jdXMgZnJvbSBhbm90aGVyIGVsZW1lbnQpLlxuICAgIGlmICggY2hhbmdlcy5zaG91bGRGb2N1c0VsZW1lbnQgKSB7XG5cbiAgICAgICggdGhpcy5zaG91bGRGb2N1c0VsZW1lbnQgKVxuICAgICAgICA/IHRoaXMuc3RhcnRGb2N1c1dvcmtmbG93KClcbiAgICAgICAgOiB0aGlzLnN0b3BGb2N1c1dvcmtmbG93KClcbiAgICAgIDtcbiAgICB9XG4gIH1cblxuICAvLyBJIGdldCBjYWxsZWQgb25jZSB3aGVuIHRoZSBkaXJlY3RpdmUgaXMgYmVpbmcgdW5tb3VudGVkLlxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLnN0b3BGb2N1c1dvcmtmbG93KCk7XG4gIH1cblxuICAvKiAtLS0gcHJpdmF0ZSBmdW5jdGlvbnMgLS0gKi9cblxuICAvLyBJIHN0YXJ0IHRoZSB0aW1lci1iYXNlZCB3b3JrZmxvdyB0aGF0IHdpbGwgZm9jdXMgdGhlIGN1cnJlbnQgZWxlbWVudC5cbiAgcHJpdmF0ZSBzdGFydEZvY3VzV29ya2Zsb3coKSB7XG5cbiAgICAvLyBpZiB0b3VjaCBVSTogZG8gTk9UIGZvY3VzIHdoZW4ga2V5Ym9hcmQgaGlkZVxuICAgIGlmICh0aGlzLl9tb2JpbGUgJiYgdGhpcy5rZXlib2FyZCAmJiB0aGlzLmtleWJvYXJkLmlzVmlzaWJsZSA9PT0gZmFsc2UpIHJldHVybjtcblxuICAgIC8vIElmIHRoZXJlIGlzIGFscmVhZHkgYSB0aW1lciBydW5uaW5nIGZvciB0aGlzIGVsZW1lbnQsIGp1c3QgbGV0IGl0IHBsYXkgb3V0IC1cbiAgICAvLyByZXNldHRpbmcgaXQgYXQgdGhpcyBwb2ludCB3aWxsIG9ubHkgcHVzaC1vdXQgdGhlIHRpbWUgYXQgd2hpY2ggdGhlIGZvY3VzIGlzXG4gICAgLy8gYXBwbGllZCB0byB0aGUgZWxlbWVudC5cbiAgICBpZiAoIHRoaXMuX3RpbWVyICkgIHJldHVybjtcblxuICAgIHRoaXMuX3RpbWVyID0gc2V0VGltZW91dChcbiAgICAgICgpID0+IHtcbiAgICAgICAgdGhpcy5fdGltZXIgPSBudWxsO1xuICAgICAgICB0aGlzLl9lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgIH0sXG4gICAgICB0aGlzLnRpbWVyRGVsYXlcbiAgICApO1xuXG4gIH1cblxuICAvLyBJIHN0b3AgdGhlIHRpbWVyLWJhc2VkIHdvcmtmbG93LCBwcmV2ZW50aW5nIGZvY3VzIGZyb20gdGFraW5nIHBsYWNlLlxuICBwcml2YXRlIHN0b3BGb2N1c1dvcmtmbG93KCkge1xuICAgIGNsZWFyVGltZW91dCggdGhpcy5fdGltZXIgKTtcbiAgICB0aGlzLl90aW1lciA9IG51bGw7XG4gIH1cblxufVxuIl19
@@ -0,0 +1,36 @@
1
+ /* ---
2
+ * Source: https://github.com/ionic-team/ionic-framework/blob/b0d53ca73619585671d8cf4dc24e47f826495a0a/core/src/utils/platform.ts
3
+ * --- */
4
+ export const matchMedia = (win, query) => win.matchMedia(query).matches;
5
+ export const testUserAgent = (win, expr) => {
6
+ const userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
7
+ return expr.test(userAgent);
8
+ };
9
+ export const isWindow = (win) => {
10
+ const userAgent = win.navigator.userAgent || win.navigator.vendor || window.opera;
11
+ return /windows/i.test(userAgent);
12
+ };
13
+ /**
14
+ * Detect desktop, by fine cursor. See https://github.com/ionic-team/ionic-framework/issues/19942
15
+ * @param win
16
+ */
17
+ export const isDesktop = (win) => matchMedia(win, '(any-pointer:fine)');
18
+ export const isTouchUi = (win) => matchMedia(win, '(any-pointer:coarse)');
19
+ export const isMobile = (win) => isTouchUi(win) && !isDesktop(win);
20
+ const isIpad = (win) => {
21
+ // iOS 12 and below
22
+ if (testUserAgent(win, /iPad/i)) {
23
+ return true;
24
+ }
25
+ // iOS 13+
26
+ if (testUserAgent(win, /Macintosh/i) && isMobile(win)) {
27
+ return true;
28
+ }
29
+ return false;
30
+ };
31
+ const ɵ0 = isIpad;
32
+ export const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
33
+ export const isAndroid = (win) => testUserAgent(win, /android|sink/i);
34
+ export const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
35
+ export { ɵ0 };
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhdGZvcm1zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2FwcC9zaGFyZWQvcGxhdGZvcm1zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztTQUVTO0FBRVQsTUFBTSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQWEsRUFBVyxFQUFFLENBQ2hFLEdBQUcsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO0FBRWhDLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLEdBQVcsRUFBRSxJQUFZLEVBQUUsRUFBRTtJQUN6RCxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUM5QixDQUFDLENBQUE7QUFFRCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRTtJQUN2QyxNQUFNLFNBQVMsR0FBVyxHQUFHLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxHQUFHLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSyxNQUFjLENBQUMsS0FBSyxDQUFDO0lBQ25HLE9BQU8sVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUE7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFZLEVBQUUsRUFBRSxDQUN4QyxVQUFVLENBQUMsR0FBRyxFQUFFLG9CQUFvQixDQUFDLENBQUM7QUFFeEMsTUFBTSxDQUFDLE1BQU0sU0FBUyxHQUFHLENBQUMsR0FBWSxFQUFFLEVBQUUsQ0FDeEMsVUFBVSxDQUFDLEdBQUcsRUFBRSxzQkFBc0IsQ0FBQyxDQUFDO0FBRTFDLE1BQU0sQ0FBQyxNQUFNLFFBQVEsR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFLENBQ3RDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwQyxNQUFNLE1BQU0sR0FBRyxDQUFDLEdBQVcsRUFBRSxFQUFFO0lBQzdCLG1CQUFtQjtJQUNuQixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEVBQUU7UUFDL0IsT0FBTyxJQUFJLENBQUM7S0FDYjtJQUVELFVBQVU7SUFDVixJQUFJLGFBQWEsQ0FBQyxHQUFHLEVBQUUsWUFBWSxDQUFDLElBQUksUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFO1FBQ3JELE9BQU8sSUFBSSxDQUFDO0tBQ2I7SUFFRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUMsQ0FBQzs7QUFFRixNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUNuQyxhQUFhLENBQUMsR0FBRyxFQUFFLGNBQWMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUVwRCxNQUFNLENBQUMsTUFBTSxTQUFTLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUN2QyxhQUFhLENBQUMsR0FBRyxFQUFFLGVBQWUsQ0FBQyxDQUFDO0FBRXRDLE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxDQUFDLEdBQVEsRUFBVyxFQUFFLENBQzdDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsSUFBSSxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiAtLS1cbiAqIFNvdXJjZTogaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2Jsb2IvYjBkNTNjYTczNjE5NTg1NjcxZDhjZjRkYzI0ZTQ3ZjgyNjQ5NWEwYS9jb3JlL3NyYy91dGlscy9wbGF0Zm9ybS50c1xuICogLS0tICovXG5cbmV4cG9ydCBjb25zdCBtYXRjaE1lZGlhID0gKHdpbjogV2luZG93LCBxdWVyeTogc3RyaW5nKTogYm9vbGVhbiA9PlxuICB3aW4ubWF0Y2hNZWRpYShxdWVyeSkubWF0Y2hlcztcblxuZXhwb3J0IGNvbnN0IHRlc3RVc2VyQWdlbnQgPSAod2luOiBXaW5kb3csIGV4cHI6IFJlZ0V4cCkgPT4ge1xuICBjb25zdCB1c2VyQWdlbnQ6IHN0cmluZyA9IHdpbi5uYXZpZ2F0b3IudXNlckFnZW50IHx8IHdpbi5uYXZpZ2F0b3IudmVuZG9yIHx8ICh3aW5kb3cgYXMgYW55KS5vcGVyYTtcbiAgcmV0dXJuIGV4cHIudGVzdCh1c2VyQWdlbnQpO1xufVxuXG5leHBvcnQgY29uc3QgaXNXaW5kb3cgPSAod2luPzogV2luZG93KSA9PiB7XG4gIGNvbnN0IHVzZXJBZ2VudDogc3RyaW5nID0gd2luLm5hdmlnYXRvci51c2VyQWdlbnQgfHwgd2luLm5hdmlnYXRvci52ZW5kb3IgfHwgKHdpbmRvdyBhcyBhbnkpLm9wZXJhO1xuICByZXR1cm4gL3dpbmRvd3MvaS50ZXN0KHVzZXJBZ2VudCk7XG59XG5cbi8qKlxuICogRGV0ZWN0IGRlc2t0b3AsIGJ5IGZpbmUgY3Vyc29yLiBTZWUgaHR0cHM6Ly9naXRodWIuY29tL2lvbmljLXRlYW0vaW9uaWMtZnJhbWV3b3JrL2lzc3Vlcy8xOTk0MlxuICogQHBhcmFtIHdpblxuICovXG5leHBvcnQgY29uc3QgaXNEZXNrdG9wID0gKHdpbj86IFdpbmRvdykgPT5cbiAgbWF0Y2hNZWRpYSh3aW4sICcoYW55LXBvaW50ZXI6ZmluZSknKTtcblxuZXhwb3J0IGNvbnN0IGlzVG91Y2hVaSA9ICh3aW4/OiBXaW5kb3cpID0+XG4gIG1hdGNoTWVkaWEod2luLCAnKGFueS1wb2ludGVyOmNvYXJzZSknKTtcblxuZXhwb3J0IGNvbnN0IGlzTW9iaWxlID0gKHdpbjogV2luZG93KSA9PlxuICBpc1RvdWNoVWkod2luKSAmJiAhaXNEZXNrdG9wKHdpbik7XG5cbmNvbnN0IGlzSXBhZCA9ICh3aW46IFdpbmRvdykgPT4ge1xuICAvLyBpT1MgMTIgYW5kIGJlbG93XG4gIGlmICh0ZXN0VXNlckFnZW50KHdpbiwgL2lQYWQvaSkpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIC8vIGlPUyAxMytcbiAgaWYgKHRlc3RVc2VyQWdlbnQod2luLCAvTWFjaW50b3NoL2kpICYmIGlzTW9iaWxlKHdpbikpIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHJldHVybiBmYWxzZTtcbn07XG5cbmV4cG9ydCBjb25zdCBpc0lPUyA9ICh3aW46IFdpbmRvdykgPT5cbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC9pUGhvbmV8aVBvZC9pKSB8fCBpc0lwYWQod2luKTtcblxuZXhwb3J0IGNvbnN0IGlzQW5kcm9pZCA9ICh3aW46IFdpbmRvdykgPT5cbiAgdGVzdFVzZXJBZ2VudCh3aW4sIC9hbmRyb2lkfHNpbmsvaSk7XG5cbmV4cG9ydCBjb25zdCBpc0NvcmRvdmEgPSAod2luOiBhbnkpOiBib29sZWFuID0+XG4gICEhKHdpblsnY29yZG92YSddIHx8IHdpblsncGhvbmVnYXAnXSB8fCB3aW5bJ1Bob25lR2FwJ10pO1xuIl19
@@ -27,4 +27,4 @@ ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Progress
27
27
  ProgressBarService.decorators = [
28
28
  { type: Injectable, args: [{ providedIn: 'root' },] }
29
29
  ];
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVVLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUU3QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztLQXFCdEQ7SUFuQkMsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7OztZQXhCRixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFByb2dyZXNzTW9kZSA9ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZScgfCAnYnVmZmVyJyB8ICdxdWVyeScgfCAnbm9uZSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3JlcXVlc3RzUnVubmluZyA9IDA7XG5cbiAgb25Qcm9ncmVzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2dyZXNzTW9kZT4oKTtcblxuICBsaXN0KCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdHNSdW5uaW5nO1xuICB9XG5cbiAgaW5jcmVhc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nKys7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA9PT0gMSkge1xuICAgICAgICB0aGlzLm9uUHJvZ3Jlc3NDaGFuZ2VkLmVtaXQoJ3F1ZXJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgZGVjcmVhc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA+IDApIHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nLS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDApIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgnbm9uZScpO1xuICAgIH1cbiAgfVxufVxuIl19
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MtYmFyLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NoYXJlZC9zZXJ2aWNlcy9wcm9ncmVzcy1iYXIuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsWUFBWSxFQUFFLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQzs7QUFLdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUQvQjtRQUVVLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUU3QixzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBZ0IsQ0FBQztLQXVCdEQ7SUFyQkMsSUFBSTtRQUNBLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDeEIsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLEtBQUssQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDeEM7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksSUFBSSxDQUFDLGdCQUFnQixHQUFHLENBQUMsRUFBRTtZQUMzQixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztTQUMzQjtRQUNELElBQUksSUFBSSxDQUFDLGdCQUFnQixLQUFLLENBQUMsRUFBRTtZQUMvQixJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQzs7OztZQXhCRixVQUFVLFNBQUMsRUFBQyxVQUFVLEVBQUUsTUFBTSxFQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtFdmVudEVtaXR0ZXIsIEluamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgZGVjbGFyZSB0eXBlIFByb2dyZXNzTW9kZSA9ICdkZXRlcm1pbmF0ZScgfCAnaW5kZXRlcm1pbmF0ZScgfCAnYnVmZmVyJyB8ICdxdWVyeScgfCAnbm9uZSc7XG5cbkBJbmplY3RhYmxlKHtwcm92aWRlZEluOiAncm9vdCd9KVxuZXhwb3J0IGNsYXNzIFByb2dyZXNzQmFyU2VydmljZSB7XG4gIHByaXZhdGUgX3JlcXVlc3RzUnVubmluZyA9IDA7XG5cbiAgb25Qcm9ncmVzc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFByb2dyZXNzTW9kZT4oKTtcblxuICBsaXN0KCk6IG51bWJlciB7XG4gICAgICByZXR1cm4gdGhpcy5fcmVxdWVzdHNSdW5uaW5nO1xuICB9XG5cbiAgaW5jcmVhc2UoKTogdm9pZCB7XG4gICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nKys7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA9PT0gMSkge1xuICAgICAgICB0aGlzLm9uUHJvZ3Jlc3NDaGFuZ2VkLmVtaXQoJ3F1ZXJ5Jyk7XG4gICAgfVxuICB9XG5cbiAgZGVjcmVhc2UoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuX3JlcXVlc3RzUnVubmluZyA+IDApIHtcbiAgICAgICAgdGhpcy5fcmVxdWVzdHNSdW5uaW5nLS07XG4gICAgfVxuICAgIGlmICh0aGlzLl9yZXF1ZXN0c1J1bm5pbmcgPT09IDApIHtcbiAgICAgIHRoaXMub25Qcm9ncmVzc0NoYW5nZWQuZW1pdCgnbm9uZScpO1xuICAgIH1cbiAgfVxuXG5cbn1cbiJdfQ==
@@ -3,12 +3,8 @@ import { ChangeDetectionStrategy, ChangeDetectorRef, Component, Inject, Injector
3
3
  import { UserEventFilter, UserEventService } from '../services/user-event.service';
4
4
  import { AccountService } from '../../core/services/account.service';
5
5
  import { UserEvent, UserEventTypes } from '../services/model/user-event.model';
6
- import { LocalSettingsService } from '../../core/services/local-settings.service';
7
6
  import { toBoolean } from '../../shared/functions';
8
7
  import { AppTable, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS } from '../../core/table/table.class';
9
- import { ActivatedRoute, Router } from '@angular/router';
10
- import { ModalController, Platform } from '@ionic/angular';
11
- import { Location } from '@angular/common';
12
8
  import { EntitiesTableDataSource } from '../../core/table/entities-table-datasource.class';
13
9
  import { EntitiesStorage } from '../../core/services/storage/entities-storage.service';
14
10
  import { ENVIRONMENT } from '../../../environments/environment.class';
@@ -41,7 +37,7 @@ const ICONS_MAP = {
41
37
  }*/
42
38
  export class UserEventsTable extends AppTable {
43
39
  constructor(injector, accountService, service, entities, cd, environment) {
44
- super(injector.get(ActivatedRoute), injector.get(Router), injector.get(Platform), injector.get(Location), injector.get(ModalController), injector.get(LocalSettingsService),
40
+ super(injector,
45
41
  // columns
46
42
  RESERVED_START_COLUMNS
47
43
  .concat([
@@ -50,8 +46,7 @@ export class UserEventsTable extends AppTable {
50
46
  'eventType',
51
47
  'message'
52
48
  ])
53
- .concat(RESERVED_END_COLUMNS), null, null, injector);
54
- this.injector = injector;
49
+ .concat(RESERVED_END_COLUMNS), null, null);
55
50
  this.accountService = accountService;
56
51
  this.service = service;
57
52
  this.entities = entities;
@@ -156,4 +151,4 @@ UserEventsTable.propDecorators = {
156
151
  defaultSortBy: [{ type: Input }],
157
152
  defaultSortDirection: [{ type: Input }]
158
153
  };
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudHMudGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9saXN0L3VzZXItZXZlbnRzLnRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDaEcsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUN0RyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3pELE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBRTNGLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxzREFBc0QsQ0FBQztBQUd2RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUErQnRFLE1BQU0sU0FBUyxHQUFvQztJQUNqRCxVQUFVLEVBQUUsRUFBQyxPQUFPLEVBQUUsWUFBWSxFQUFD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QU0sU0FBQyxXQUFXOzs7d0JBWnBCLEtBQUs7MEJBRUwsS0FBSzs0QkFDTCxLQUFLO21DQUNMLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVGFibGVFbGVtZW50IH0gZnJvbSAnQGUtaXMvbmd4LW1hdGVyaWFsLXRhYmxlJztcbmltcG9ydCB7IFVzZXJFdmVudEZpbHRlciwgVXNlckV2ZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3VzZXItZXZlbnQuc2VydmljZSc7XG5pbXBvcnQgeyBBY2NvdW50U2VydmljZSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvYWNjb3VudC5zZXJ2aWNlJztcbmltcG9ydCB7IFVzZXJFdmVudCwgVXNlckV2ZW50QWN0aW9uLCBVc2VyRXZlbnRUeXBlcyB9IGZyb20gJy4uL3NlcnZpY2VzL21vZGVsL3VzZXItZXZlbnQubW9kZWwnO1xuaW1wb3J0IHsgTG9jYWxTZXR0aW5nc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2xvY2FsLXNldHRpbmdzLnNlcnZpY2UnO1xuaW1wb3J0IHsgdG9Cb29sZWFuIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2Z1bmN0aW9ucyc7XG5pbXBvcnQgeyBNb21lbnQgfSBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQXBwVGFibGUsIFJFU0VSVkVEX0VORF9DT0xVTU5TLCBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TIH0gZnJvbSAnLi4vLi4vY29yZS90YWJsZS90YWJsZS5jbGFzcyc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IE1vZGFsQ29udHJvbGxlciwgUGxhdGZvcm0gfSBmcm9tICdAaW9uaWMvYW5ndWxhcic7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZSB9IGZyb20gJy4uLy4uL2NvcmUvdGFibGUvZW50aXRpZXMtdGFibGUtZGF0YXNvdXJjZS5jbGFzcyc7XG5pbXBvcnQgeyBTb3J0RGlyZWN0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvc29ydCc7XG5pbXBvcnQgeyBFbnRpdGllc1N0b3JhZ2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL3N0b3JhZ2UvZW50aXRpZXMtc3RvcmFnZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWRlZmluZWRDb2xvcnMgfSBmcm9tICdAaW9uaWMvY29yZSc7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9tb2RlbC9lbnRpdHkubW9kZWwnO1xuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICcuLi8uLi8uLi9lbnZpcm9ubWVudHMvZW52aXJvbm1lbnQuY2xhc3MnO1xuXG5cbmV4cG9ydCBpbnRlcmZhY2UgVXNlckV2ZW50RGV0YWlsPFQgZXh0ZW5kcyBJRW50aXR5PFQ+PiB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBwYXRoPzogc3RyaW5nO1xuXG4gIGFjdGlvbj86IHN0cmluZyB8IGFueTtcbiAgYWN0aW9uVGl0bGU/OiBzdHJpbmc7XG4gIGFjdGlvbkNvbG9yPzogUHJlZGVmaW5lZENvbG9ycztcblxuICBpY29uPzogc3RyaW5nO1xuICBtYXRJY29uPzogc3RyaW5nO1xuICBjb2xvcj86IHN0cmluZztcbiAgY3NzQ2xhc3M/OiBzdHJpbmc7XG4gIHRpbWU/OiBNb21lbnQ7XG5cbiAgLy8gQSBjb25maWcgcHJvcGVydHksIHRvIG92ZXJyaWRlIHRoZSB0aXRsZVxuICB0aXRsZVByb3BlcnR5Pzogc3RyaW5nO1xuICB0aXRsZUFyZ3M/OiB7W2tleTogc3RyaW5nXTogc3RyaW5nfTtcblxuICAvLyBjb252ZXJzaW9uXG4gIGZyb21PYmplY3Q/OiAoc291cmNlOiBhbnkpID0+IFQ7XG4gIGNoaWxkcmVuRmllbGRzPzogc3RyaW5nW107XG59XG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudEljb257XG4gIGljb24/OiBzdHJpbmc7XG4gIG1hdEljb24/OiBzdHJpbmc7XG4gIGNvbG9yPzogUHJlZGVmaW5lZENvbG9ycztcbn1cbmNvbnN0IElDT05TX01BUDoge1trZXk6IHN0cmluZ106IFVzZXJFdmVudEljb24gfSA9IHtcbiAgREVCVUdfREFUQToge21hdEljb246ICdidWdfcmVwb3J0J30sXG4gIElOQk9YX01FU1NBR0U6IHttYXRJY29uOiAnbWFpbCd9LFxufTtcblxuLy8gVE9ETzogcmVmYWN0b3Igd2l0aCBhIHJlZ2lzdHJhdGlvbiBkb25lIGJ5IGRhdGEgc2VydmljZTpcbi8vIC0gdXNlckV2ZW50U2VydmljZS5yZWdpc3RlckV2ZW50QWN0aW9uKHtfX3R5cGVuYW1lOiAnVHJpcFZPJywgLi4ufSlcbi8vIC0gdXNlckV2ZW50U2VydmljZS5nZXRBY3Rpb25zRm9yKF9fdHlwZW5hbWUpOiBVc2VyRXZlbnREZXRhaWxBY3Rpb25cbi8qY29uc3QgREVUQUlMU19NQVA6IHtba2V5OiBzdHJpbmddOiBVc2VyRXZlbnRBY3Rpb248Um9vdERhdGFFbnRpdHk8YW55Pj59ID0ge1xuICBcIlRyaXBWT1wiOiB7XG4gICAgaWNvbjogbnVsbCxcbiAgICBtYXRJY29uOiBcImNvbnRlbnRfY29weVwiLFxuICAgIGFjdGlvbjogJ2NvcHlUb0xvY2FsJyxcbiAgICBhY3Rpb25UaXRsZTogJ1NPQ0lBTC5VU0VSX0VWRU5ULkJUTl9DT1BZX1RPX0xPQ0FMJyxcbiAgICBhY3Rpb25Db2xvcjogJ3ByaW1hcnknLFxuICAgIGZyb21PYmplY3Q6IFRyaXAuZnJvbU9iamVjdCxcbiAgICBjaGlsZHJlbkZpZWxkczogWydvcGVyYXRpb24nLCAnbGFuZGluZyddXG4gIH0sXG4gIFwiT2JzZXJ2ZWRMb2NhdGlvblZPXCI6IHtcbiAgICBpY29uOiBudWxsLFxuICAgIG1hdEljb246IFwiY29udGVudF9jb3B5XCIsXG4gICAgYWN0aW9uOiAnY29weVRvTG9jYWwnLFxuICAgIGFjdGlvblRpdGxlOiAnU09DSUFMLlVTRVJfRVZFTlQuQlROX0NPUFlfVE9fTE9DQUwnLFxuICAgIGFjdGlvbkNvbG9yOiAncHJpbWFyeScsXG4gICAgZnJvbU9iamVjdDogT2JzZXJ2ZWRMb2NhdGlvbi5mcm9tT2JqZWN0LFxuICAgIGNoaWxkcmVuRmllbGRzOiBbJ2xhbmRpbmdzJ11cbiAgfVxufSovXG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLXVzZXItZXZlbnRzLXRhYmxlJyxcbiAgc3R5bGVVcmxzOiBbJ3VzZXItZXZlbnRzLnRhYmxlLnNjc3MnXSxcbiAgdGVtcGxhdGVVcmw6ICcuL3VzZXItZXZlbnRzLnRhYmxlLmh0bWwnLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxuICB9KVxuZXhwb3J0IGNsYXNzIFVzZXJFdmVudHNUYWJsZSBleHRlbmRzIEFwcFRhYmxlPFVzZXJFdmVudCwgVXNlckV2ZW50RmlsdGVyPlxuICBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgZGF0ZVRpbWVQYXR0ZXJuOiBzdHJpbmc7XG4gIGNhbkVkaXQ6IGJvb2xlYW47XG4gIGNhbkRlbGV0ZTogYm9vbGVhbjtcbiAgaXNBZG1pbjogYm9vbGVhbjtcblxuICBASW5wdXQoKSByZWNpcGllbnQ6IHN0cmluZztcblxuICBASW5wdXQoKSB3aXRoQ29udGVudDogYm9vbGVhbjtcbiAgQElucHV0KCkgZGVmYXVsdFNvcnRCeTogc3RyaW5nO1xuICBASW5wdXQoKSBkZWZhdWx0U29ydERpcmVjdGlvbjogU29ydERpcmVjdGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IFVzZXJFdmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVudGl0aWVzOiBFbnRpdGllc1N0b3JhZ2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IuZ2V0KEFjdGl2YXRlZFJvdXRlKSxcbiAgICAgIGluamVjdG9yLmdldChSb3V0ZXIpLFxuICAgICAgaW5qZWN0b3IuZ2V0KFBsYXRmb3JtKSxcbiAgICAgIGluamVjdG9yLmdldChMb2NhdGlvbiksXG4gICAgICBpbmplY3Rvci5nZXQoTW9kYWxDb250cm9sbGVyKSxcbiAgICAgIGluamVjdG9yLmdldChMb2NhbFNldHRpbmdzU2VydmljZSksXG4gICAgICAvLyBjb2x1bW5zXG4gICAgICBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TXG4gICAgICAgIC5jb25jYXQoW1xuICAgICAgICAgICdjcmVhdGlvbkRhdGUnLFxuICAgICAgICAgICdpY29uJyxcbiAgICAgICAgICAnZXZlbnRUeXBlJyxcbiAgICAgICAgICAnbWVzc2FnZSdcbiAgICAgICAgXSlcbiAgICAgICAgLmNvbmNhdChSRVNFUlZFRF9FTkRfQ09MVU1OUyksXG4gICAgICBudWxsLFxuICAgICAgbnVsbCxcbiAgICAgIGluamVjdG9yKTtcblxuICAgIHRoaXMuaTE4bkNvbHVtblByZWZpeCA9ICdTT0NJQUwuVVNFUl9FVkVOVC4nO1xuICAgIHRoaXMuYXV0b0xvYWQgPSBmYWxzZTsgLy8gdGhpcy5zdGFydCgpXG4gICAgdGhpcy5pbmxpbmVFZGl0aW9uID0gZmFsc2U7XG4gICAgdGhpcy5kZWZhdWx0U29ydEJ5ID0gJ2NyZWF0aW9uRGF0ZSc7XG4gICAgdGhpcy5kZWZhdWx0U29ydERpcmVjdGlvbiA9ICdkZXNjJztcblxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIC8vIExvYWQgZGF0ZS90aW1lIHBhdHRlcm5cbiAgICB0aGlzLmRhdGVUaW1lUGF0dGVybiA9IHRoaXMudHJhbnNsYXRlLmluc3RhbnQoJ0NPTU1PTi5EQVRFX1RJTUVfUEFUVEVSTicpO1xuICAgIHRoaXMud2l0aENvbnRlbnQgPSB0b0Jvb2xlYW4odGhpcy53aXRoQ29udGVudCwgZmFsc2UpO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IHRoaXMuYWNjb3VudFNlcnZpY2UuYWNjb3VudDtcbiAgICBjb25zdCBwdWJrZXkgPSBhY2NvdW50ICYmIGFjY291bnQucHVia2V5O1xuICAgIHRoaXMuaXNBZG1pbiA9IHRoaXMuYWNjb3VudFNlcnZpY2UuaXNBZG1pbigpO1xuICAgIHRoaXMuY2FuRWRpdCA9IHRoaXMuaXNBZG1pbiB8fCBwdWJrZXkgPT09IHRoaXMucmVjaXBpZW50O1xuICAgIHRoaXMuY2FuRGVsZXRlID0gdGhpcy5jYW5FZGl0O1xuXG4gICAgdGhpcy5zZXREYXRhc291cmNlKG5ldyBFbnRpdGllc1RhYmxlRGF0YVNvdXJjZShVc2VyRXZlbnQsXG4gICAgICB0aGlzLnNlcnZpY2UsXG4gICAgICBudWxsLFxuICAgICAge1xuICAgICAgICBwcmVwZW5kTmV3RWxlbWVudHM6IGZhbHNlLFxuICAgICAgICBzdXBwcmVzc0Vycm9yczogdHJ1ZSxcbiAgICAgICAgZGF0YVNlcnZpY2VPcHRpb25zOiB7XG4gICAgICAgICAgd2l0aENvbnRlbnQ6IHRoaXMud2l0aENvbnRlbnRcbiAgICAgICAgfVxuICAgICAgfSkpO1xuXG4gICAgY29uc3QgZmlsdGVyID0gdGhpcy5maWx0ZXIgfHwgbmV3IFVzZXJFdmVudEZpbHRlcigpO1xuICAgIGZpbHRlci5yZWNpcGllbnQgPSB0aGlzLnJlY2lwaWVudDtcbiAgICB0aGlzLnNldEZpbHRlcihmaWx0ZXIsIHtlbWl0RXZlbnQ6IHRydWV9KTtcbiAgfVxuXG4gIGFzeW5jIHN0YXJ0KCkge1xuICAgIGNvbnNvbGUuZGVidWcoJ1t1c2VyLWV2ZW50XSBTdGFydGluZy4uLicpO1xuXG4gICAgLy8gV2FpdGluZyBhY2NvdW50IHRvIGJlIHJlYWR5XG4gICAgYXdhaXQgdGhpcy5hY2NvdW50U2VydmljZS5yZWFkeSgpO1xuXG4gICAgLy8gTG9hZCBkYXRhXG4gICAgdGhpcy5vblJlZnJlc2guZW1pdCgpO1xuICB9XG5cbiAgZ2V0SWNvbihzb3VyY2U6IFVzZXJFdmVudCk6IFVzZXJFdmVudEljb24ge1xuICAgIHJldHVybiBJQ09OU19NQVBbc291cmNlLmV2ZW50VHlwZV07XG4gIH1cblxuICBnZXREZXRhaWwoc291cmNlOiBVc2VyRXZlbnQpOiBQYXJ0aWFsPFVzZXJFdmVudERldGFpbDxJRW50aXR5PGFueT4+ICYge2FjdGlvbnM6IFVzZXJFdmVudEFjdGlvbjxhbnk+W119PiB7XG4gICAgaWYgKCFzb3VyY2UpIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBpZiAoc291cmNlLmNvbnRlbnQgJiYgc291cmNlLmV2ZW50VHlwZSA9PT0gVXNlckV2ZW50VHlwZXMuREVCVUdfREFUQSkge1xuICAgICAgY29uc3QgY29udGV4dCA9IHNvdXJjZS5jb250ZW50LmNvbnRleHQ7XG4gICAgICBpZiAoY29udGV4dCAmJiBjb250ZXh0Ll9fdHlwZW5hbWUpIHtcbiAgICAgICAgY29uc3QgYWN0aW9ucyA9IHRoaXMuc2VydmljZS5nZXRBY3Rpb25zQnlUeXBlbmFtZShjb250ZXh0Ll9fdHlwZW5hbWUpO1xuICAgICAgICByZXR1cm4ge1xuICAgICAgICAgIGFjdGlvbnMsXG4gICAgICAgICAgdGl0bGU6IHNvdXJjZS5jb250ZW50LmVycm9yICYmIHNvdXJjZS5jb250ZW50LmVycm9yLm1lc3NhZ2UgfHwgc291cmNlLmNvbnRlbnQubWVzc2FnZSxcbiAgICAgICAgICBkZXNjcmlwdGlvbjogc291cmNlLmNvbnRlbnQuZXJyb3IgJiYgc291cmNlLmNvbnRlbnQuZXJyb3IuZGV0YWlscyB8fCB1bmRlZmluZWRcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zb2xlLmRlYnVnKCdUT0RPOiBpbXBsZW1lbnQgZ2V0RGV0YWlsKCkgZm9yIGV2ZW50OiAnLCBzb3VyY2UpO1xuICAgIHJldHVybiB7fTtcbiAgfVxuXG5cbiAgYXN5bmMgZG9BY3Rpb24oYWN0aW9uOiBVc2VyRXZlbnRBY3Rpb248YW55Piwgcm93OiBUYWJsZUVsZW1lbnQ8VXNlckV2ZW50Pikge1xuXG4gICAgY29uc3QgZXZlbnQgPSByb3cuY3VycmVudERhdGE7XG4gICAgY29uc3QgY29udGV4dCA9IGV2ZW50LmNvbnRlbnQgJiYgZXZlbnQuY29udGVudC5jb250ZXh0O1xuXG4gICAgdGhpcy5tYXJrQXNMb2FkaW5nKCk7XG5cbiAgICBpZiAoYWN0aW9uICYmIHR5cGVvZiBhY3Rpb24uZXhlY3V0ZUFjdGlvbiA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgdHJ5IHtcbiAgICAgICAgbGV0IHJlcyA9IGFjdGlvbi5leGVjdXRlQWN0aW9uKGV2ZW50LCBjb250ZXh0KTtcbiAgICAgICAgcmVzID0gKHJlcyBpbnN0YW5jZW9mIFByb21pc2UpID8gYXdhaXQgcmVzIDogcmVzO1xuICAgICAgfSBjYXRjaCAoZXJyKSB7XG4gICAgICAgIHRoaXMuc2V0RXJyb3IoZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycik7XG4gICAgICAgIGNvbnNvbGUuZXJyb3IoYFt1c2VyLWV2ZW50XSBGYWlsZWQgdG8gZXhlY3V0ZSBhY3Rpb24gJHthY3Rpb24ubmFtZX06ICR7ZXJyICYmIGVyci5tZXNzYWdlIHx8IGVycn1gLCBlcnIpO1xuICAgICAgfVxuICAgICAgZmluYWxseSB7XG4gICAgICAgIHRoaXMubWFya0FzTG9hZGVkKCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbn1cbiJdfQ==
154
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci1ldmVudHMudGFibGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBwL3NvY2lhbC9saXN0L3VzZXItZXZlbnRzLnRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXZILE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDckUsT0FBTyxFQUFFLFNBQVMsRUFBbUIsY0FBYyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFFaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRW5ELE9BQU8sRUFBRSxRQUFRLEVBQUUsb0JBQW9CLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUl0RyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxrREFBa0QsQ0FBQztBQUUzRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFHdkYsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBK0J0RSxNQUFNLFNBQVMsR0FBb0M7SUFDakQsVUFBVSxFQUFFLEVBQUMsT0FBTyxFQUFFLFlBQVksRUFBQztJQUNuQyxhQUFhLEVBQUUsRUFBQyxPQUFPLEVBQUUsTUFBTSxFQUFDO0NBQ2pDLENBQUM7QUFFRiwyREFBMkQ7QUFDM0Qsc0VBQXNFO0FBQ3RFLHNFQUFzRTtBQUN0RTs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQW1CRztBQVNILE1BQU0sT0FBTyxlQUFnQixTQUFRLFFBQW9DO0lBY3ZFLFlBQ0UsUUFBa0IsRUFDUixjQUE4QixFQUM5QixPQUF5QixF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QUFHLENBQUM7aUJBQ2xEO2dCQUFDLE9BQU8sR0FBRyxFQUFFO29CQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxDQUFDLENBQUM7b0JBQ3pDLE9BQU8sQ0FBQyxLQUFLLENBQUMseUNBQXlDLE1BQU0sQ0FBQyxJQUFJLEtBQUssR0FBRyxJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksR0FBRyxFQUFFLEVBQUUsR0FBRyxDQUFDLENBQUM7aUJBQzFHO3dCQUNPO29CQUNOLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztpQkFDckI7YUFDRjtRQUNILENBQUM7S0FBQTs7O1lBbklGLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsdUJBQXVCO2dCQUVqQywyMUxBQXVDO2dCQUN2QyxlQUFlLEVBQUUsdUJBQXVCLENBQUMsTUFBTTs7YUFDOUM7OztZQW5GcUUsUUFBUTtZQUd2RSxjQUFjO1lBREcsZ0JBQWdCO1lBWWpDLGVBQWU7WUFkVSxpQkFBaUI7NENBd0c5QyxNQUFNLFNBQUMsV0FBVzs7O3dCQVpwQixLQUFLOzBCQUVMLEtBQUs7NEJBQ0wsS0FBSzttQ0FDTCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEluamVjdCwgSW5qZWN0b3IsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRhYmxlRWxlbWVudCB9IGZyb20gJ0BlLWlzL25neC1tYXRlcmlhbC10YWJsZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnRGaWx0ZXIsIFVzZXJFdmVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy91c2VyLWV2ZW50LnNlcnZpY2UnO1xuaW1wb3J0IHsgQWNjb3VudFNlcnZpY2UgfSBmcm9tICcuLi8uLi9jb3JlL3NlcnZpY2VzL2FjY291bnQuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyRXZlbnQsIFVzZXJFdmVudEFjdGlvbiwgVXNlckV2ZW50VHlwZXMgfSBmcm9tICcuLi9zZXJ2aWNlcy9tb2RlbC91c2VyLWV2ZW50Lm1vZGVsJztcbmltcG9ydCB7IExvY2FsU2V0dGluZ3NTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9sb2NhbC1zZXR0aW5ncy5zZXJ2aWNlJztcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3NoYXJlZC9mdW5jdGlvbnMnO1xuaW1wb3J0IHsgTW9tZW50IH0gZnJvbSAnbW9tZW50JztcbmltcG9ydCB7IEFwcFRhYmxlLCBSRVNFUlZFRF9FTkRfQ09MVU1OUywgUkVTRVJWRURfU1RBUlRfQ09MVU1OUyB9IGZyb20gJy4uLy4uL2NvcmUvdGFibGUvdGFibGUuY2xhc3MnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBNb2RhbENvbnRyb2xsZXIsIFBsYXRmb3JtIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgRW50aXRpZXNUYWJsZURhdGFTb3VyY2UgfSBmcm9tICcuLi8uLi9jb3JlL3RhYmxlL2VudGl0aWVzLXRhYmxlLWRhdGFzb3VyY2UuY2xhc3MnO1xuaW1wb3J0IHsgU29ydERpcmVjdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NvcnQnO1xuaW1wb3J0IHsgRW50aXRpZXNTdG9yYWdlIH0gZnJvbSAnLi4vLi4vY29yZS9zZXJ2aWNlcy9zdG9yYWdlL2VudGl0aWVzLXN0b3JhZ2Uuc2VydmljZSc7XG5pbXBvcnQgeyBQcmVkZWZpbmVkQ29sb3JzIH0gZnJvbSAnQGlvbmljL2NvcmUnO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gJy4uLy4uL2NvcmUvc2VydmljZXMvbW9kZWwvZW50aXR5Lm1vZGVsJztcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnLi4vLi4vLi4vZW52aXJvbm1lbnRzL2Vudmlyb25tZW50LmNsYXNzJztcblxuXG5leHBvcnQgaW50ZXJmYWNlIFVzZXJFdmVudERldGFpbDxUIGV4dGVuZHMgSUVudGl0eTxUPj4ge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbj86IHN0cmluZztcbiAgcGF0aD86IHN0cmluZztcblxuICBhY3Rpb24/OiBzdHJpbmcgfCBhbnk7XG4gIGFjdGlvblRpdGxlPzogc3RyaW5nO1xuICBhY3Rpb25Db2xvcj86IFByZWRlZmluZWRDb2xvcnM7XG5cbiAgaWNvbj86IHN0cmluZztcbiAgbWF0SWNvbj86IHN0cmluZztcbiAgY29sb3I/OiBzdHJpbmc7XG4gIGNzc0NsYXNzPzogc3RyaW5nO1xuICB0aW1lPzogTW9tZW50O1xuXG4gIC8vIEEgY29uZmlnIHByb3BlcnR5LCB0byBvdmVycmlkZSB0aGUgdGl0bGVcbiAgdGl0bGVQcm9wZXJ0eT86IHN0cmluZztcbiAgdGl0bGVBcmdzPzoge1trZXk6IHN0cmluZ106IHN0cmluZ307XG5cbiAgLy8gY29udmVyc2lvblxuICBmcm9tT2JqZWN0PzogKHNvdXJjZTogYW55KSA9PiBUO1xuICBjaGlsZHJlbkZpZWxkcz86IHN0cmluZ1tdO1xufVxuZXhwb3J0IGludGVyZmFjZSBVc2VyRXZlbnRJY29ue1xuICBpY29uPzogc3RyaW5nO1xuICBtYXRJY29uPzogc3RyaW5nO1xuICBjb2xvcj86IFByZWRlZmluZWRDb2xvcnM7XG59XG5jb25zdCBJQ09OU19NQVA6IHtba2V5OiBzdHJpbmddOiBVc2VyRXZlbnRJY29uIH0gPSB7XG4gIERFQlVHX0RBVEE6IHttYXRJY29uOiAnYnVnX3JlcG9ydCd9LFxuICBJTkJPWF9NRVNTQUdFOiB7bWF0SWNvbjogJ21haWwnfSxcbn07XG5cbi8vIFRPRE86IHJlZmFjdG9yIHdpdGggYSByZWdpc3RyYXRpb24gZG9uZSBieSBkYXRhIHNlcnZpY2U6XG4vLyAtIHVzZXJFdmVudFNlcnZpY2UucmVnaXN0ZXJFdmVudEFjdGlvbih7X190eXBlbmFtZTogJ1RyaXBWTycsIC4uLn0pXG4vLyAtIHVzZXJFdmVudFNlcnZpY2UuZ2V0QWN0aW9uc0ZvcihfX3R5cGVuYW1lKTogVXNlckV2ZW50RGV0YWlsQWN0aW9uXG4vKmNvbnN0IERFVEFJTFNfTUFQOiB7W2tleTogc3RyaW5nXTogVXNlckV2ZW50QWN0aW9uPFJvb3REYXRhRW50aXR5PGFueT4+fSA9IHtcbiAgXCJUcmlwVk9cIjoge1xuICAgIGljb246IG51bGwsXG4gICAgbWF0SWNvbjogXCJjb250ZW50X2NvcHlcIixcbiAgICBhY3Rpb246ICdjb3B5VG9Mb2NhbCcsXG4gICAgYWN0aW9uVGl0bGU6ICdTT0NJQUwuVVNFUl9FVkVOVC5CVE5fQ09QWV9UT19MT0NBTCcsXG4gICAgYWN0aW9uQ29sb3I6ICdwcmltYXJ5JyxcbiAgICBmcm9tT2JqZWN0OiBUcmlwLmZyb21PYmplY3QsXG4gICAgY2hpbGRyZW5GaWVsZHM6IFsnb3BlcmF0aW9uJywgJ2xhbmRpbmcnXVxuICB9LFxuICBcIk9ic2VydmVkTG9jYXRpb25WT1wiOiB7XG4gICAgaWNvbjogbnVsbCxcbiAgICBtYXRJY29uOiBcImNvbnRlbnRfY29weVwiLFxuICAgIGFjdGlvbjogJ2NvcHlUb0xvY2FsJyxcbiAgICBhY3Rpb25UaXRsZTogJ1NPQ0lBTC5VU0VSX0VWRU5ULkJUTl9DT1BZX1RPX0xPQ0FMJyxcbiAgICBhY3Rpb25Db2xvcjogJ3ByaW1hcnknLFxuICAgIGZyb21PYmplY3Q6IE9ic2VydmVkTG9jYXRpb24uZnJvbU9iamVjdCxcbiAgICBjaGlsZHJlbkZpZWxkczogWydsYW5kaW5ncyddXG4gIH1cbn0qL1xuXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2FwcC11c2VyLWV2ZW50cy10YWJsZScsXG4gIHN0eWxlVXJsczogWyd1c2VyLWV2ZW50cy50YWJsZS5zY3NzJ10sXG4gIHRlbXBsYXRlVXJsOiAnLi91c2VyLWV2ZW50cy50YWJsZS5odG1sJyxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbiAgfSlcbmV4cG9ydCBjbGFzcyBVc2VyRXZlbnRzVGFibGUgZXh0ZW5kcyBBcHBUYWJsZTxVc2VyRXZlbnQsIFVzZXJFdmVudEZpbHRlcj5cbiAgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGRhdGVUaW1lUGF0dGVybjogc3RyaW5nO1xuICBjYW5FZGl0OiBib29sZWFuO1xuICBjYW5EZWxldGU6IGJvb2xlYW47XG4gIGlzQWRtaW46IGJvb2xlYW47XG5cbiAgQElucHV0KCkgcmVjaXBpZW50OiBzdHJpbmc7XG5cbiAgQElucHV0KCkgd2l0aENvbnRlbnQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpIGRlZmF1bHRTb3J0Qnk6IHN0cmluZztcbiAgQElucHV0KCkgZGVmYXVsdFNvcnREaXJlY3Rpb246IFNvcnREaXJlY3Rpb247XG5cbiAgY29uc3RydWN0b3IoXG4gICAgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByb3RlY3RlZCBhY2NvdW50U2VydmljZTogQWNjb3VudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIHNlcnZpY2U6IFVzZXJFdmVudFNlcnZpY2UsXG4gICAgcHJvdGVjdGVkIGVudGl0aWVzOiBFbnRpdGllc1N0b3JhZ2UsXG4gICAgcHJvdGVjdGVkIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBASW5qZWN0KEVOVklST05NRU5UKSBwcm90ZWN0ZWQgZW52aXJvbm1lbnRcbiAgKSB7XG4gICAgc3VwZXIoaW5qZWN0b3IsXG4gICAgICAvLyBjb2x1bW5zXG4gICAgICBSRVNFUlZFRF9TVEFSVF9DT0xVTU5TXG4gICAgICAgIC5jb25jYXQoW1xuICAgICAgICAgICdjcmVhdGlvbkRhdGUnLFxuICAgICAgICAgICdpY29uJyxcbiAgICAgICAgICAnZXZlbnRUeXBlJyxcbiAgICAgICAgICAnbWVzc2FnZSdcbiAgICAgICAgXSlcbiAgICAgICAgLmNvbmNhdChSRVNFUlZFRF9FTkRfQ09MVU1OUyksXG4gICAgICBudWxsLFxuICAgICAgbnVsbCk7XG5cbiAgICB0aGlzLmkxOG5Db2x1bW5QcmVmaXggPSAnU09DSUFMLlVTRVJfRVZFTlQuJztcbiAgICB0aGlzLmF1dG9Mb2FkID0gZmFsc2U7IC8vIHRoaXMuc3RhcnQoKVxuICAgIHRoaXMuaW5saW5lRWRpdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMuZGVmYXVsdFNvcnRCeSA9ICdjcmVhdGlvbkRhdGUnO1xuICAgIHRoaXMuZGVmYXVsdFNvcnREaXJlY3Rpb24gPSAnZGVzYyc7XG5cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHN1cGVyLm5nT25Jbml0KCk7XG5cbiAgICAvLyBMb2FkIGRhdGUvdGltZSBwYXR0ZXJuXG4gICAgdGhpcy5kYXRlVGltZVBhdHRlcm4gPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KCdDT01NT04uREFURV9USU1FX1BBVFRFUk4nKTtcbiAgICB0aGlzLndpdGhDb250ZW50ID0gdG9Cb29sZWFuKHRoaXMud2l0aENvbnRlbnQsIGZhbHNlKTtcblxuICAgIGNvbnN0IGFjY291bnQgPSB0aGlzLmFjY291bnRTZXJ2aWNlLmFjY291bnQ7XG4gICAgY29uc3QgcHVia2V5ID0gYWNjb3VudCAmJiBhY2NvdW50LnB1YmtleTtcbiAgICB0aGlzLmlzQWRtaW4gPSB0aGlzLmFjY291bnRTZXJ2aWNlLmlzQWRtaW4oKTtcbiAgICB0aGlzLmNhbkVkaXQgPSB0aGlzLmlzQWRtaW4gfHwgcHVia2V5ID09PSB0aGlzLnJlY2lwaWVudDtcbiAgICB0aGlzLmNhbkRlbGV0ZSA9IHRoaXMuY2FuRWRpdDtcblxuICAgIHRoaXMuc2V0RGF0YXNvdXJjZShuZXcgRW50aXRpZXNUYWJsZURhdGFTb3VyY2UoVXNlckV2ZW50LFxuICAgICAgdGhpcy5zZXJ2aWNlLFxuICAgICAgbnVsbCxcbiAgICAgIHtcbiAgICAgICAgcHJlcGVuZE5ld0VsZW1lbnRzOiBmYWxzZSxcbiAgICAgICAgc3VwcHJlc3NFcnJvcnM6IHRydWUsXG4gICAgICAgIGRhdGFTZXJ2aWNlT3B0aW9uczoge1xuICAgICAgICAgIHdpdGhDb250ZW50OiB0aGlzLndpdGhDb250ZW50XG4gICAgICAgIH1cbiAgICAgIH0pKTtcblxuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuZmlsdGVyIHx8IG5ldyBVc2VyRXZlbnRGaWx0ZXIoKTtcbiAgICBmaWx0ZXIucmVjaXBpZW50ID0gdGhpcy5yZWNpcGllbnQ7XG4gICAgdGhpcy5zZXRGaWx0ZXIoZmlsdGVyLCB7ZW1pdEV2ZW50OiB0cnVlfSk7XG4gIH1cblxuICBhc3luYyBzdGFydCgpIHtcbiAgICBjb25zb2xlLmRlYnVnKCdbdXNlci1ldmVudF0gU3RhcnRpbmcuLi4nKTtcblxuICAgIC8vIFdhaXRpbmcgYWNjb3VudCB0byBiZSByZWFkeVxuICAgIGF3YWl0IHRoaXMuYWNjb3VudFNlcnZpY2UucmVhZHkoKTtcblxuICAgIC8vIExvYWQgZGF0YVxuICAgIHRoaXMub25SZWZyZXNoLmVtaXQoKTtcbiAgfVxuXG4gIGdldEljb24oc291cmNlOiBVc2VyRXZlbnQpOiBVc2VyRXZlbnRJY29uIHtcbiAgICByZXR1cm4gSUNPTlNfTUFQW3NvdXJjZS5ldmVudFR5cGVdO1xuICB9XG5cbiAgZ2V0RGV0YWlsKHNvdXJjZTogVXNlckV2ZW50KTogUGFydGlhbDxVc2VyRXZlbnREZXRhaWw8SUVudGl0eTxhbnk+PiAmIHthY3Rpb25zOiBVc2VyRXZlbnRBY3Rpb248YW55PltdfT4ge1xuICAgIGlmICghc291cmNlKSByZXR1cm4gdW5kZWZpbmVkO1xuXG4gICAgaWYgKHNvdXJjZS5jb250ZW50ICYmIHNvdXJjZS5ldmVudFR5cGUgPT09IFVzZXJFdmVudFR5cGVzLkRFQlVHX0RBVEEpIHtcbiAgICAgIGNvbnN0IGNvbnRleHQgPSBzb3VyY2UuY29udGVudC5jb250ZXh0O1xuICAgICAgaWYgKGNvbnRleHQgJiYgY29udGV4dC5fX3R5cGVuYW1lKSB7XG4gICAgICAgIGNvbnN0IGFjdGlvbnMgPSB0aGlzLnNlcnZpY2UuZ2V0QWN0aW9uc0J5VHlwZW5hbWUoY29udGV4dC5fX3R5cGVuYW1lKTtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICBhY3Rpb25zLFxuICAgICAgICAgIHRpdGxlOiBzb3VyY2UuY29udGVudC5lcnJvciAmJiBzb3VyY2UuY29udGVudC5lcnJvci5tZXNzYWdlIHx8IHNvdXJjZS5jb250ZW50Lm1lc3NhZ2UsXG4gICAgICAgICAgZGVzY3JpcHRpb246IHNvdXJjZS5jb250ZW50LmVycm9yICYmIHNvdXJjZS5jb250ZW50LmVycm9yLmRldGFpbHMgfHwgdW5kZWZpbmVkXG4gICAgICAgIH07XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc29sZS5kZWJ1ZygnVE9ETzogaW1wbGVtZW50IGdldERldGFpbCgpIGZvciBldmVudDogJywgc291cmNlKTtcbiAgICByZXR1cm4ge307XG4gIH1cblxuXG4gIGFzeW5jIGRvQWN0aW9uKGFjdGlvbjogVXNlckV2ZW50QWN0aW9uPGFueT4sIHJvdzogVGFibGVFbGVtZW50PFVzZXJFdmVudD4pIHtcblxuICAgIGNvbnN0IGV2ZW50ID0gcm93LmN1cnJlbnREYXRhO1xuICAgIGNvbnN0IGNvbnRleHQgPSBldmVudC5jb250ZW50ICYmIGV2ZW50LmNvbnRlbnQuY29udGV4dDtcblxuICAgIHRoaXMubWFya0FzTG9hZGluZygpO1xuXG4gICAgaWYgKGFjdGlvbiAmJiB0eXBlb2YgYWN0aW9uLmV4ZWN1dGVBY3Rpb24gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgIHRyeSB7XG4gICAgICAgIGxldCByZXMgPSBhY3Rpb24uZXhlY3V0ZUFjdGlvbihldmVudCwgY29udGV4dCk7XG4gICAgICAgIHJlcyA9IChyZXMgaW5zdGFuY2VvZiBQcm9taXNlKSA/IGF3YWl0IHJlcyA6IHJlcztcbiAgICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgICB0aGlzLnNldEVycm9yKGVyciAmJiBlcnIubWVzc2FnZSB8fCBlcnIpO1xuICAgICAgICBjb25zb2xlLmVycm9yKGBbdXNlci1ldmVudF0gRmFpbGVkIHRvIGV4ZWN1dGUgYWN0aW9uICR7YWN0aW9uLm5hbWV9OiAke2VyciAmJiBlcnIubWVzc2FnZSB8fCBlcnJ9YCwgZXJyKTtcbiAgICAgIH1cbiAgICAgIGZpbmFsbHkge1xuICAgICAgICB0aGlzLm1hcmtBc0xvYWRlZCgpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG59XG4iXX0=