@acorex/components 7.1.30 → 7.1.32

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.
@@ -1,7 +1,7 @@
1
1
  import { AXBaseComponentMixin } from '@acorex/components/mixin';
2
2
  import { AXConfig } from '@acorex/core/config';
3
- import { ComponentPortal, } from '@angular/cdk/portal';
4
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, } from '@angular/core';
3
+ import { ComponentPortal } from '@angular/cdk/portal';
4
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter } from '@angular/core';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "@angular/cdk/portal";
7
7
  class AXLoadingComponent extends AXBaseComponentMixin {
@@ -20,14 +20,12 @@ class AXLoadingComponent extends AXBaseComponentMixin {
20
20
  set visible(v) {
21
21
  if (v != this._visible) {
22
22
  this._visible = v;
23
- v
24
- ? this._getHostElement().classList.remove('ax-hide')
25
- : this._getHostElement().classList.add('ax-hide');
23
+ v ? this._getHostElement().classList.remove('ax-hide') : this._getHostElement().classList.add('ax-hide');
26
24
  this.visibleChange.emit(v);
27
25
  }
28
26
  }
29
27
  type = 'spinner';
30
- text;
28
+ options;
31
29
  onInit() {
32
30
  const loading = AXConfig.get(`layout.loading.${this.type}`);
33
31
  this._selectedPortal = new ComponentPortal(loading);
@@ -35,34 +33,24 @@ class AXLoadingComponent extends AXBaseComponentMixin {
35
33
  }
36
34
  _handleAttched(ref) {
37
35
  ref = ref;
38
- if (ref.instance) {
39
- ref.instance.text = this.text;
36
+ if (ref.instance && this.options) {
37
+ Object.assign(ref.instance, this.options);
40
38
  }
41
39
  }
42
40
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXLoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
43
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", text: "text" }, outputs: { visibleChange: "visibleChange" }, host: { classAttribute: "ax-loading" }, usesInheritance: true, ngImport: i0, template: `
44
- <ng-template
45
- [cdkPortalOutlet]="_selectedPortal"
46
- (attached)="_handleAttched($event)"
47
- ></ng-template>
48
- `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", options: "options" }, outputs: { visibleChange: "visibleChange" }, host: { classAttribute: "ax-loading" }, usesInheritance: true, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
49
42
  }
50
43
  export { AXLoadingComponent };
51
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXLoadingComponent, decorators: [{
52
45
  type: Component,
53
- args: [{ selector: 'ax-loading', template: `
54
- <ng-template
55
- [cdkPortalOutlet]="_selectedPortal"
56
- (attached)="_handleAttched($event)"
57
- ></ng-template>
58
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-loading' }, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"] }]
46
+ args: [{ selector: 'ax-loading', template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-loading' }, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"] }]
59
47
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { visibleChange: [{
60
48
  type: Output
61
49
  }], visible: [{
62
50
  type: Input
63
51
  }], type: [{
64
52
  type: Input
65
- }], text: [{
53
+ }], options: [{
66
54
  type: Input
67
55
  }] } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9sb2FkaW5nL3NyYy9sb2FkaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUVMLGVBQWUsR0FFaEIsTUFBTSxxQkFBcUIsQ0FBQztBQUM3QixPQUFPLEVBQ0wsU0FBUyxFQUNULGlCQUFpQixFQUNqQix1QkFBdUIsRUFDdkIsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEdBSWIsTUFBTSxlQUFlLENBQUM7OztBQUV2QixNQWFhLGtCQUFtQixTQUFRLG9CQUFvQjtJQUMxRCxlQUFlLENBQWM7SUFFN0I7O09BRUc7SUFDSCxZQUFZLFVBQXNCLEVBQUUsR0FBc0I7UUFDeEQsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBR0QsYUFBYSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRWxELFFBQVEsQ0FBVTtJQUUxQixJQUNXLE9BQU87UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCxJQUFXLE9BQU8sQ0FBQyxDQUFVO1FBQzNCLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDdEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7WUFDbEIsQ0FBQztnQkFDQyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDO2dCQUNwRCxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7WUFDcEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDNUI7SUFDSCxDQUFDO0lBR0QsSUFBSSxHQUFXLFNBQVMsQ0FBQztJQUd6QixJQUFJLENBQVM7SUFFYixNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQUcsUUFBUSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUM7UUFDNUQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBK0I7UUFDNUMsR0FBRyxHQUFHLEdBQXdCLENBQUM7UUFDL0IsSUFBSSxHQUFHLENBQUMsUUFBUSxFQUFFO1lBQ2hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7U0FDL0I7SUFDSCxDQUFDO3VHQTlDVSxrQkFBa0I7MkZBQWxCLGtCQUFrQiwwTkFYbkI7Ozs7O0dBS1Q7O1NBTVUsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBYjlCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaOzs7OztHQUtULG1CQUVnQix1QkFBdUIsQ0FBQyxNQUFNLGlCQUNoQyxpQkFBaUIsQ0FBQyxJQUFJLFFBQy9CLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRTtpSUFhN0IsYUFBYTtzQkFEWixNQUFNO2dCQU1JLE9BQU87c0JBRGpCLEtBQUs7Z0JBZU4sSUFBSTtzQkFESCxLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQmFzZUNvbXBvbmVudE1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbmZpZyc7XG5pbXBvcnQge1xuICBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZixcbiAgQ29tcG9uZW50UG9ydGFsLFxuICBQb3J0YWwsXG59IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudFJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxvYWRpbmcnLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxuZy10ZW1wbGF0ZVxuICAgICAgW2Nka1BvcnRhbE91dGxldF09XCJfc2VsZWN0ZWRQb3J0YWxcIlxuICAgICAgKGF0dGFjaGVkKT1cIl9oYW5kbGVBdHRjaGVkKCRldmVudClcIlxuICAgID48L25nLXRlbXBsYXRlPlxuICBgLFxuICBzdHlsZVVybHM6WycuL2xvYWRpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1sb2FkaW5nJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XG4gIF9zZWxlY3RlZFBvcnRhbDogUG9ydGFsPGFueT47XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIGlmICh2ICE9IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSB2O1xuICAgICAgdlxuICAgICAgICA/IHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnYXgtaGlkZScpXG4gICAgICAgIDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdheC1oaWRlJyk7XG4gICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICB0eXBlOiBzdHJpbmcgPSAnc3Bpbm5lcic7XG5cbiAgQElucHV0KClcbiAgdGV4dDogc3RyaW5nO1xuXG4gIG9uSW5pdCgpIHtcbiAgICBjb25zdCBsb2FkaW5nID0gQVhDb25maWcuZ2V0KGBsYXlvdXQubG9hZGluZy4ke3RoaXMudHlwZX1gKTtcbiAgICB0aGlzLl9zZWxlY3RlZFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwobG9hZGluZyk7XG4gICAgdGhpcy5fY2RyLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgX2hhbmRsZUF0dGNoZWQocmVmOiBDZGtQb3J0YWxPdXRsZXRBdHRhY2hlZFJlZikge1xuICAgIHJlZiA9IHJlZiBhcyBDb21wb25lbnRSZWY8YW55PjtcbiAgICBpZiAocmVmLmluc3RhbmNlKSB7XG4gICAgICByZWYuaW5zdGFuY2UudGV4dCA9IHRoaXMudGV4dDtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9sb2FkaW5nL3NyYy9sb2FkaW5nLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDL0MsT0FBTyxFQUE4QixlQUFlLEVBQVUsTUFBTSxxQkFBcUIsQ0FBQztBQUMxRixPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLHVCQUF1QixFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUErQyxNQUFNLGVBQWUsQ0FBQzs7O0FBRWhLLE1BUWEsa0JBQW1CLFNBQVEsb0JBQW9CO0lBQzFELGVBQWUsQ0FBYztJQUU3Qjs7T0FFRztJQUNILFlBQVksVUFBc0IsRUFBRSxHQUFzQjtRQUN4RCxLQUFLLENBQUMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFHRCxhQUFhLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7SUFFbEQsUUFBUSxDQUFVO0lBRTFCLElBQ1csT0FBTztRQUNoQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdkIsQ0FBQztJQUNELElBQVcsT0FBTyxDQUFDLENBQVU7UUFDM0IsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztZQUNsQixDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztZQUN6RyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUM1QjtJQUNILENBQUM7SUFHRCxJQUFJLEdBQVcsU0FBUyxDQUFDO0lBR3pCLE9BQU8sQ0FBTztJQUVkLE1BQU07UUFDSixNQUFNLE9BQU8sR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM1RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUErQjtRQUM1QyxHQUFHLEdBQUcsR0FBd0IsQ0FBQztRQUMvQixJQUFJLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNoQyxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQzt1R0E1Q1Usa0JBQWtCOzJGQUFsQixrQkFBa0IsZ09BTm5CLHVHQUF1Rzs7U0FNdEcsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBUjlCLFNBQVM7K0JBQ0UsWUFBWSxZQUNaLHVHQUF1RyxtQkFFaEcsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUU7aUlBYTdCLGFBQWE7c0JBRFosTUFBTTtnQkFNSSxPQUFPO3NCQURqQixLQUFLO2dCQWFOLElBQUk7c0JBREgsS0FBSztnQkFJTixPQUFPO3NCQUROLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWEJhc2VDb21wb25lbnRNaXhpbiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9taXhpbic7XG5pbXBvcnQgeyBBWENvbmZpZyB9IGZyb20gJ0BhY29yZXgvY29yZS9jb25maWcnO1xuaW1wb3J0IHsgQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYsIENvbXBvbmVudFBvcnRhbCwgUG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBFbGVtZW50UmVmLCBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWxvYWRpbmcnLFxuICB0ZW1wbGF0ZTogYCA8bmctdGVtcGxhdGUgW2Nka1BvcnRhbE91dGxldF09XCJfc2VsZWN0ZWRQb3J0YWxcIiAoYXR0YWNoZWQpPVwiX2hhbmRsZUF0dGNoZWQoJGV2ZW50KVwiPjwvbmctdGVtcGxhdGU+IGAsXG4gIHN0eWxlVXJsczogWycuL2xvYWRpbmcuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHsgY2xhc3M6ICdheC1sb2FkaW5nJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRNaXhpbiB7XG4gIF9zZWxlY3RlZFBvcnRhbDogUG9ydGFsPGFueT47XG5cbiAgLyoqXG4gICAqIEBpZ25vcmVcbiAgICovXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcbiAgICBzdXBlcihlbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIHZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBwcml2YXRlIF92aXNpYmxlOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBnZXQgdmlzaWJsZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fdmlzaWJsZTtcbiAgfVxuICBwdWJsaWMgc2V0IHZpc2libGUodjogYm9vbGVhbikge1xuICAgIGlmICh2ICE9IHRoaXMuX3Zpc2libGUpIHtcbiAgICAgIHRoaXMuX3Zpc2libGUgPSB2O1xuICAgICAgdiA/IHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LnJlbW92ZSgnYXgtaGlkZScpIDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKS5jbGFzc0xpc3QuYWRkKCdheC1oaWRlJyk7XG4gICAgICB0aGlzLnZpc2libGVDaGFuZ2UuZW1pdCh2KTtcbiAgICB9XG4gIH1cblxuICBASW5wdXQoKVxuICB0eXBlOiBzdHJpbmcgPSAnc3Bpbm5lcic7XG5cbiAgQElucHV0KClcbiAgb3B0aW9ucz86IGFueTtcblxuICBvbkluaXQoKSB7XG4gICAgY29uc3QgbG9hZGluZyA9IEFYQ29uZmlnLmdldChgbGF5b3V0LmxvYWRpbmcuJHt0aGlzLnR5cGV9YCk7XG4gICAgdGhpcy5fc2VsZWN0ZWRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKGxvYWRpbmcpO1xuICAgIHRoaXMuX2Nkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIF9oYW5kbGVBdHRjaGVkKHJlZjogQ2RrUG9ydGFsT3V0bGV0QXR0YWNoZWRSZWYpIHtcbiAgICByZWYgPSByZWYgYXMgQ29tcG9uZW50UmVmPGFueT47XG4gICAgaWYgKHJlZi5pbnN0YW5jZSAmJiB0aGlzLm9wdGlvbnMpIHtcbiAgICAgIE9iamVjdC5hc3NpZ24ocmVmLmluc3RhbmNlLCB0aGlzLm9wdGlvbnMpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -37,13 +37,13 @@ class AXLoadingService {
37
37
  this.overlayService = overlayService;
38
38
  }
39
39
  _stack = [];
40
- show(location) {
40
+ show(options) {
41
41
  let host;
42
- if (location) {
43
- host = location.closest('.ax-loading-host');
42
+ if (options?.location) {
43
+ host = options.location.closest('.ax-loading-host');
44
44
  }
45
- const containerElement = (host || location);
46
- const com = this.overlayService.show(AXLoadingComponent, {}, {
45
+ const containerElement = (host || options.location);
46
+ const com = this.overlayService.show(AXLoadingComponent, { options: options.context }, {
47
47
  closeOnClickOutside: false,
48
48
  containerElement,
49
49
  hasBackdrop: true,
@@ -56,10 +56,10 @@ class AXLoadingService {
56
56
  return id;
57
57
  }
58
58
  hide(id) {
59
- const f = this._stack.find((c) => c.id === id);
59
+ const f = this._stack.find(c => c.id === id);
60
60
  if (f) {
61
61
  f.component.dispose();
62
- this._stack = this._stack.filter((c) => c.id !== id);
62
+ this._stack = this._stack.filter(c => c.id !== id);
63
63
  }
64
64
  }
65
65
  // Observable creation operator.
@@ -85,7 +85,7 @@ class AXLoadingService {
85
85
  return loaderStates.get(this.getLoaderId(loaderId)) ?? false;
86
86
  }
87
87
  else {
88
- return [...loaderStates.values()].filter((state) => state).length > 0;
88
+ return [...loaderStates.values()].filter(state => state).length > 0;
89
89
  }
90
90
  }
91
91
  }
@@ -115,15 +115,11 @@ class AXLoadingService {
115
115
  if (!this.hasLoadingStates(context, loaderId)) {
116
116
  if (this.hasContextLoadingState(context)) {
117
117
  this.loadingStates.get(context).set(loaderId, state);
118
- this.loadingStates$
119
- .get(context)
120
- .set(loaderId, new BehaviorSubject(state));
118
+ this.loadingStates$.get(context).set(loaderId, new BehaviorSubject(state));
121
119
  }
122
120
  else {
123
121
  this.loadingStates.set(context, new Map([[loaderId, state]]));
124
- this.loadingStates$.set(context, new Map([
125
- [loaderId, new BehaviorSubject(state)],
126
- ]));
122
+ this.loadingStates$.set(context, new Map([[loaderId, new BehaviorSubject(state)]]));
127
123
  }
128
124
  }
129
125
  else {
@@ -133,15 +129,13 @@ class AXLoadingService {
133
129
  }
134
130
  }
135
131
  hasLoadingStates(context, loaderId) {
136
- return (this.hasContextLoadingState(context) &&
137
- this.hasLoaderLoadingState(context, loaderId));
132
+ return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);
138
133
  }
139
134
  hasContextLoadingState(context) {
140
135
  return this.loadingStates.has(context) && this.loadingStates$.has(context);
141
136
  }
142
137
  hasLoaderLoadingState(context, loaderId) {
143
- return (this.loadingStates.get(context).has(loaderId) &&
144
- this.loadingStates$.get(context).has(loaderId));
138
+ return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);
145
139
  }
146
140
  getLoaderId(loaderId) {
147
141
  return loaderId ?? DEFAULT_LOADER_ID;
@@ -156,4 +150,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImpor
156
150
  providedIn: 'root',
157
151
  }]
158
152
  }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1.AXOverlayService }]; } });
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZy9zcmMvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSXpELE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BR2EsZ0JBQWdCO0lBZWY7SUFDRjtJQWZWLGtEQUFrRDtJQUNsRCwwQ0FBMEM7SUFDaEMsYUFBYSxHQUFRLElBQUksT0FBTyxFQUd2QyxDQUFDO0lBQ0oscURBQXFEO0lBQ3JELG1EQUFtRDtJQUN6QyxjQUFjLEdBQVEsSUFBSSxPQUFPLEVBR3hDLENBQUM7SUFFSixZQUNZLE9BQWUsRUFDakIsY0FBZ0M7UUFEOUIsWUFBTyxHQUFQLE9BQU8sQ0FBUTtRQUNqQixtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7SUFDdkMsQ0FBQztJQUVJLE1BQU0sR0FBa0QsRUFBRSxDQUFDO0lBRW5FLElBQUksQ0FBQyxRQUFrQjtRQUNyQixJQUFJLElBQW1CLENBQUM7UUFDeEIsSUFBSSxRQUFRLEVBQUU7WUFDWixJQUFJLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQzdDO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksSUFBSSxRQUFRLENBQW1CLENBQUM7UUFDOUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLGNB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Q3ZDLE9BQU8sUUFBUSxJQUFJLGlCQUFpQixDQUFDO0lBQ3ZDLENBQUM7dUdBNUtVLGdCQUFnQjsyR0FBaEIsZ0JBQWdCLGNBRmYsTUFBTTs7U0FFUCxnQkFBZ0I7MkZBQWhCLGdCQUFnQjtrQkFINUIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGFzeW5jU2NoZWR1bGVyLCBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpbmFsaXplLCBvYnNlcnZlT24gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBBWE92ZXJsYXlTZXJ2aWNlLCBBWE92ZXJsYXlWaWV3UmVmIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWExvYWRpbmdDb21wb25lbnQgfSBmcm9tICcuL2xvYWRpbmcuY29tcG9uZW50JztcblxudHlwZSBMb2FkaW5nQ29udGV4dCA9IG9iamVjdDtcbnR5cGUgTG9hZGVySWQgPSBzdHJpbmcgfCBudW1iZXI7IC8vIGV4cGVjdGVkIGVudW0gdmFsdWVzXG5jb25zdCBERUZBVUxUX0xPQURFUl9JRDogTG9hZGVySWQgPSAnX0RFRkFVTFQnO1xuXG4vKipcbiAqIFVzZWQgZm9yIGNlbnRyYWxseSBzZXR0aW5nL3Vuc2V0dGluZyBsb2FkaW5nIGZsYWdzIGZvciBjb21wb25lbnRzIG9yIHNlcnZpY2VzLlxuICogU2hvdWxkIGJlIGNvbm5lY3RlZCB0byBnbG9iYWwgSFRUUCBpbnRlcmNlcHRvciB3aGljaCB3aWxsIHVuc2V0XG4gKiB0aGUgbG9hZGluZyBmbGFncyBpbiBjYXNlIGFuIGVycm9yIGhhcHBlbnMgdXNpbmcgdGhlIGNsZWFyTG9hZGluZ3MoKSBtZXRob2QuXG4gKlxuICogRkFROlxuICogUTogSG93IHRvIGNoYW5nZSBsb2FkaW5nIGZsYWcgZm9yIGEgcGFyZW50IGNvbXBvbmVudD9cbiAqIEE6IEluamVjdCB0aGUgcGFyZW50IGNvbXBvbmVudCBhcyBhIGRlcGVuZGVuY3kgdG8geW91ciBjb25zdHJ1Y3RvciBhbmRcbiAqICAgIGNhbGwgbG9hZGluZ1NlcnZpY2Uuc2V0TG9hZGluZyhwYXJlbnRDb21wb25lbnQsIFNUQVRFKS5cbiAqXG4gKiBROiBIb3cgdG8gY2hhbmdlIGxvYWRpbmcgZmxhZyBmb3IgYSBjaGlsZCBjb21wb25lbnQ/XG4gKiBBOiBVc2UgYSBAVmlld0NoaWxkIHdpdGggY29tcG9uZW50IHNlbGVjdG9yIGFuZCBwYXNzIHRoZVxuICogICAgcmVmZXJlbmNlIG9mIHRoZSBjaGlsZCB0byBzZXRMb2FkaW5nIG1ldGhvZC5cbiAqXG4gKiBROiBJIG5lZWQgbW9yZSBsb2FkaW5nIGluZGljYXRvcnMgaW4gbXkgY29tcG9uZW50cy4gSG93IHRvP1xuICogQTogQXNzaWduIGEgTG9hZGVySWQgdG8gZWFjaCBpbmRpY2F0b3IgYW5kIHRoZW4gdXNlIHRoZW1cbiAqICAgIHdpdGggY2FsbHMgdG8gbWV0aG9kcyBvZiB0aGlzIHNlcnZpY2UuXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBBWExvYWRpbmdTZXJ2aWNlIHtcbiAgLy8gV2Vha01hcCB3aWxsIHJlbW92ZSBjb21wb25lbnRzIGZyb20gaXRzZWxmIHVwb25cbiAgLy8gdGhlaXIgZ2FyYmFnZSBjb2xsZWN0aW9uIGJ5IEpTIHJ1bnRpbWUuXG4gIHByb3RlY3RlZCBsb2FkaW5nU3RhdGVzOiBhbnkgPSBuZXcgV2Vha01hcDxcbiAgICBMb2FkaW5nQ29udGV4dCxcbiAgICBNYXA8TG9hZGVySWQsIGJvb2xlYW4+XG4gID4oKTtcbiAgLy8gQm90aCBsb2FkaW5nIHN0YXRlIG1hcHMgYXJlIGtlcHQgaW4tc3luYyBzdWNoIHRoYXRcbiAgLy8gdGhleSBjYW4gYmUgdXNlZCBieSBib3RoIHN5bmMgYW5kIGFzeW5jIG1ldGhvZHMuXG4gIHByb3RlY3RlZCBsb2FkaW5nU3RhdGVzJDogYW55ID0gbmV3IFdlYWtNYXA8XG4gICAgTG9hZGluZ0NvbnRleHQsXG4gICAgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+XG4gID4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgem9uZVJlZjogTmdab25lLFxuICAgIHByaXZhdGUgb3ZlcmxheVNlcnZpY2U6IEFYT3ZlcmxheVNlcnZpY2VcbiAgKSB7fVxuXG4gIHByaXZhdGUgX3N0YWNrOiB7IGlkOiBudW1iZXI7IGNvbXBvbmVudDogQVhPdmVybGF5Vmlld1JlZiB9W10gPSBbXTtcblxuICBzaG93KGxvY2F0aW9uPzogRWxlbWVudCk6IG51bWJlciB7XG4gICAgbGV0IGhvc3Q6IEVsZW1lbnQgfCBhbnk7XG4gICAgaWYgKGxvY2F0aW9uKSB7XG4gICAgICBob3N0ID0gbG9jYXRpb24uY2xvc2VzdCgnLmF4LWxvYWRpbmctaG9zdCcpO1xuICAgIH1cbiAgICBjb25zdCBjb250YWluZXJFbGVtZW50ID0gKGhvc3QgfHwgbG9jYXRpb24pIGFzIEhUTUxEaXZFbGVtZW50O1xuICAgIGNvbnN0IGNvbSA9IHRoaXMub3ZlcmxheVNlcnZpY2Uuc2hvdyhcbiAgICAgIEFYTG9hZGluZ0NvbXBvbmVudCxcbiAgICAgIHt9LFxuICAgICAge1xuICAgICAgICBjbG9zZU9uQ2xpY2tPdXRzaWRlOiBmYWxzZSxcbiAgICAgICAgY29udGFpbmVyRWxlbWVudCxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnYXgtbG9hZGluZy1vdmVybGF5J10sXG4gICAgICAgIHNjcm9sbDogJ2Jsb2NrJyxcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbS5pbnN0YW5jZS52aXNpYmxlID0gdHJ1ZTtcbiAgICBjb25zdCBpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMuX3N0YWNrLnB1c2goeyBpZCwgY29tcG9uZW50OiBjb20gfSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgaGlkZShpZCk6IHZvaWQge1xuICAgIGNvbnN0IGYgPSB0aGlzLl9zdGFjay5maW5kKChjKSA9PiBjLmlkID09PSBpZCk7XG4gICAgaWYgKGYpIHtcbiAgICAgIGYuY29tcG9uZW50LmRpc3Bvc2UoKTtcbiAgICAgIHRoaXMuX3N0YWNrID0gdGhpcy5fc3RhY2suZmlsdGVyKChjKSA9PiBjLmlkICE9PSBpZCk7XG4gICAgfVxuICB9XG5cbiAgLy8gT2JzZXJ2YWJsZSBjcmVhdGlvbiBvcGVyYXRvci5cbiAgLy8gTG9hZGVySWQgY2FuIGJlIHVzZWQgd2hlbiB0aGVyZSBhcmUgbXVsdGlwbGUgbG9hZGluZyBpbmRpY2F0b3JzIGFzc29jaWF0ZWQgdG8gYSBzaW5nbGUgY29udGV4dC5cbiAgLy8gQ29udGV4dCBjYW4gYmUgYW55IG9iamVjdCwgdGhvdWdoIGluIHByYWN0aWNlLCBjb21wb25lbnRzIGFuZCBzZXJ2aWNlcyB3aWxsIGJlIHRoZSBtb3N0IGNvbW1vbiBjb250ZXh0cy5cbiAgLy8gbG9hZGVySWQgaXMgYSBub24tbWFuZGF0b3J5IHBhcmFtZXRlciAtIHdoZW4gbm90IHNwZWNpZmllZCwgYSBkZWZhdWx0IGxvYWRlcklkIGlzIHVzZWQuXG4gIC8vIFN1Y2ggYSBzY2VuYXJpbyBpcyB1c2VkIHdoZW4geW91ciBjb250ZXh0IGhhcyBjb250YWlucyBvbmx5IG9uZSBsb2FkaW5nIGluZGljYXRvci5cbiAgZG9Mb2FkaW5nPFY+KFxuICAgIHNvdXJjZSQ6IE9ic2VydmFibGU8Vj4sXG4gICAgY29udGV4dDogTG9hZGluZ0NvbnRleHQsXG4gICAgbG9hZGVySWQ/OiBMb2FkZXJJZFxuICApOiBPYnNlcnZhYmxlPFY+IHtcbiAgICB0aGlzLnN0YXJ0TG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCk7XG5cbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZW5kTG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRvIGJlIHVzZWQgaW4geW91ciBodG1sIHRlbXBsYXRlcy5cbiAgLy8gUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgZ2l2ZW4gbG9hZGVyIGlzIGFjdGl2ZSBpbiBhIGdpdmVuIGNvbnRleHQuXG4gIC8vIElmIGxvYWRlcklkIGlzIHVuc3BlY2lmaWVkLCB0aGUgbWV0aG9kIHdpbGwgcmV0dXJuIGEgbG9naWNhbCBkaXNqdW5jdGlvbiBvZiBhbGxcbiAgLy8gbG9hZGVyIHN0YXRlcyBpbiB0aGUgY29udGV4dC5cbiAgaXNMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbG9hZGVyU3RhdGVzID0gdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KTtcblxuICAgIGlmICghbG9hZGVyU3RhdGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb2FkZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsb2FkZXJTdGF0ZXMuZ2V0KHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKSA/PyBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbLi4ubG9hZGVyU3RhdGVzLnZhbHVlcygpXS5maWx0ZXIoKHN0YXRlKSA9PiBzdGF0ZSkubGVuZ3RoID4gMDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvLyBUbyBiZSB1c2VkIGluIHlvdXIgaHRtbCB0ZW1wbGF0ZXMgd2l0aCBhc3luYyBwaXBlcy5cbiAgLy8gUmV0dXJucyBhbiBPYnNlcnZhYmxlIG9mIGJvb2xlYW5zIGluZGljYXRpbmcgd2hldGhlciBhIGdpdmVuIGxvYWRlciBpcyBhY3RpdmUgaW4gYSBnaXZlbiBjb250ZXh0LlxuICBpc0xvYWRpbmckKFxuICAgIGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LFxuICAgIGxvYWRlcklkPzogTG9hZGVySWQgfCBhbnlcbiAgKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgY29uc3QgY29hbGVzY2VkTG9hZGVySWQgPSB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKTtcblxuICAgIGlmICghdGhpcy5oYXNMb2FkaW5nU3RhdGVzKGNvbnRleHQsIGNvYWxlc2NlZExvYWRlcklkKSkge1xuICAgICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgZmFsc2UsIGxvYWRlcklkKTtcbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuZ2V0KGNvYWxlc2NlZExvYWRlcklkKTtcbiAgfVxuXG4gIC8vIFRoZSBzdGFydExvYWRpbmcgYW5kIGVuZExvYWRpbmcgbWV0aG9kcyBhcmUgaW50ZW5kZWQgdG8gYmUgdXNlZCB3aGVuIGhhbmRsaW5nXG4gIC8vIGNvbXBsZXggc2NlbmFyaW9zIHdoZXJlIGEgbmVlZCBmb3IgZXh0ZW5kZWQgdXNhZ2UgZmxleGliaWxpdHkgaXMgZGVzaXJlZC5cbiAgc3RhcnRMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogdm9pZCB7XG4gICAgdGhpcy5zZXRMb2FkaW5nU3RhdGUoY29udGV4dCwgdHJ1ZSwgdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCkpO1xuICB9XG5cbiAgZW5kTG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCB0aGlzLmdldExvYWRlcklkKGxvYWRlcklkKSk7XG4gIH1cblxuICAvLyBUbyBiZSBjYWxsZWQgYnkgbWlkZGxld2FyZSBjb2RlIChIVFRQIGludGVyY2VwdG9ycy9yb3V0aW5nIGxpc3RlbmVycywgZXRjLikuXG4gIGNsZWFyTG9hZGluZ3MoKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gICAgdGhpcy5sb2FkaW5nU3RhdGVzJCA9IG5ldyBXZWFrTWFwPFxuICAgICAgTG9hZGluZ0NvbnRleHQsXG4gICAgICBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj5cbiAgICA+KCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgc2V0TG9hZGluZ1N0YXRlKFxuICAgIGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LFxuICAgIHN0YXRlOiBib29sZWFuLFxuICAgIGxvYWRlcklkOiBMb2FkZXJJZFxuICApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuaGFzTG9hZGluZ1N0YXRlcyhjb250ZXh0LCBsb2FkZXJJZCkpIHtcbiAgICAgIGlmICh0aGlzLmhhc0NvbnRleHRMb2FkaW5nU3RhdGUoY29udGV4dCkpIHtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIHN0YXRlKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzJFxuICAgICAgICAgIC5nZXQoY29udGV4dClcbiAgICAgICAgICAuc2V0KGxvYWRlcklkLCBuZXcgQmVoYXZpb3JTdWJqZWN0PGJvb2xlYW4+KHN0YXRlKSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMuc2V0KFxuICAgICAgICAgIGNvbnRleHQsXG4gICAgICAgICAgbmV3IE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4oW1tsb2FkZXJJZCwgc3RhdGVdXSlcbiAgICAgICAgKTtcbiAgICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzJC5zZXQoXG4gICAgICAgICAgY29udGV4dCxcbiAgICAgICAgICBuZXcgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+KFtcbiAgICAgICAgICAgIFtsb2FkZXJJZCwgbmV3IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPihzdGF0ZSldLFxuICAgICAgICAgIF0pXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIEB0cy1pZ25vcmUgLSBsb2FkaW5nU3RhdGVzW2NvbnRleHRdIGlzIHN1cmVseSBkZWZpbmVkIGluIHRoaXMgYnJhbmNoXG4gICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgc3RhdGUpO1xuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzJC5nZXQoY29udGV4dCkuZ2V0KGxvYWRlcklkKS5uZXh0KHN0YXRlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzTG9hZGluZ1N0YXRlcyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ6IExvYWRlcklkKSB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuaGFzQ29udGV4dExvYWRpbmdTdGF0ZShjb250ZXh0KSAmJlxuICAgICAgdGhpcy5oYXNMb2FkZXJMb2FkaW5nU3RhdGUoY29udGV4dCwgbG9hZGVySWQpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0KSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcy5oYXMoY29udGV4dCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5oYXMoY29udGV4dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzTG9hZGVyTG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZDogTG9hZGVySWQpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5oYXMobG9hZGVySWQpICYmXG4gICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLmdldChjb250ZXh0KS5oYXMobG9hZGVySWQpXG4gICAgKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXRMb2FkZXJJZChsb2FkZXJJZD86IExvYWRlcklkKTogTG9hZGVySWQge1xuICAgIHJldHVybiBsb2FkZXJJZCA/PyBERUZBVUxUX0xPQURFUl9JRDtcbiAgfVxufVxuIl19
153
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZGluZy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvbG9hZGluZy9zcmMvbG9hZGluZy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7QUFDbkUsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVyRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBSXpELE1BQU0saUJBQWlCLEdBQWEsVUFBVSxDQUFDO0FBRS9DOzs7Ozs7Ozs7Ozs7Ozs7OztHQWlCRztBQUNILE1BR2EsZ0JBQWdCO0lBUUw7SUFBeUI7SUFQL0Msa0RBQWtEO0lBQ2xELDBDQUEwQztJQUNoQyxhQUFhLEdBQVEsSUFBSSxPQUFPLEVBQTBDLENBQUM7SUFDckYscURBQXFEO0lBQ3JELG1EQUFtRDtJQUN6QyxjQUFjLEdBQVEsSUFBSSxPQUFPLEVBQTJELENBQUM7SUFFdkcsWUFBc0IsT0FBZSxFQUFVLGNBQWdDO1FBQXpELFlBQU8sR0FBUCxPQUFPLENBQVE7UUFBVSxtQkFBYyxHQUFkLGNBQWMsQ0FBa0I7SUFBRyxDQUFDO0lBRTNFLE1BQU0sR0FBa0QsRUFBRSxDQUFDO0lBRW5FLElBQUksQ0FBQyxPQUE4RDtRQUNqRSxJQUFJLElBQW1CLENBQUM7UUFDeEIsSUFBSSxPQUFPLEVBQUUsUUFBUSxFQUFFO1lBQ3JCLElBQUksR0FBRyxPQUFPLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3JEO1FBQ0QsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLElBQUksSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFtQixDQUFD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QVcsQ0FBQyxRQUFtQjtRQUN2QyxPQUFPLFFBQVEsSUFBSSxpQkFBaUIsQ0FBQztJQUN2QyxDQUFDO3VHQXJJVSxnQkFBZ0I7MkdBQWhCLGdCQUFnQixjQUZmLE1BQU07O1NBRVAsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSwgTmdab25lIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaW5hbGl6ZSwgb2JzZXJ2ZU9uIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQVhPdmVybGF5U2VydmljZSwgQVhPdmVybGF5Vmlld1JlZiB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhMb2FkaW5nQ29tcG9uZW50IH0gZnJvbSAnLi9sb2FkaW5nLmNvbXBvbmVudCc7XG5cbnR5cGUgTG9hZGluZ0NvbnRleHQgPSBvYmplY3Q7XG50eXBlIExvYWRlcklkID0gc3RyaW5nIHwgbnVtYmVyOyAvLyBleHBlY3RlZCBlbnVtIHZhbHVlc1xuY29uc3QgREVGQVVMVF9MT0FERVJfSUQ6IExvYWRlcklkID0gJ19ERUZBVUxUJztcblxuLyoqXG4gKiBVc2VkIGZvciBjZW50cmFsbHkgc2V0dGluZy91bnNldHRpbmcgbG9hZGluZyBmbGFncyBmb3IgY29tcG9uZW50cyBvciBzZXJ2aWNlcy5cbiAqIFNob3VsZCBiZSBjb25uZWN0ZWQgdG8gZ2xvYmFsIEhUVFAgaW50ZXJjZXB0b3Igd2hpY2ggd2lsbCB1bnNldFxuICogdGhlIGxvYWRpbmcgZmxhZ3MgaW4gY2FzZSBhbiBlcnJvciBoYXBwZW5zIHVzaW5nIHRoZSBjbGVhckxvYWRpbmdzKCkgbWV0aG9kLlxuICpcbiAqIEZBUTpcbiAqIFE6IEhvdyB0byBjaGFuZ2UgbG9hZGluZyBmbGFnIGZvciBhIHBhcmVudCBjb21wb25lbnQ/XG4gKiBBOiBJbmplY3QgdGhlIHBhcmVudCBjb21wb25lbnQgYXMgYSBkZXBlbmRlbmN5IHRvIHlvdXIgY29uc3RydWN0b3IgYW5kXG4gKiAgICBjYWxsIGxvYWRpbmdTZXJ2aWNlLnNldExvYWRpbmcocGFyZW50Q29tcG9uZW50LCBTVEFURSkuXG4gKlxuICogUTogSG93IHRvIGNoYW5nZSBsb2FkaW5nIGZsYWcgZm9yIGEgY2hpbGQgY29tcG9uZW50P1xuICogQTogVXNlIGEgQFZpZXdDaGlsZCB3aXRoIGNvbXBvbmVudCBzZWxlY3RvciBhbmQgcGFzcyB0aGVcbiAqICAgIHJlZmVyZW5jZSBvZiB0aGUgY2hpbGQgdG8gc2V0TG9hZGluZyBtZXRob2QuXG4gKlxuICogUTogSSBuZWVkIG1vcmUgbG9hZGluZyBpbmRpY2F0b3JzIGluIG15IGNvbXBvbmVudHMuIEhvdyB0bz9cbiAqIEE6IEFzc2lnbiBhIExvYWRlcklkIHRvIGVhY2ggaW5kaWNhdG9yIGFuZCB0aGVuIHVzZSB0aGVtXG4gKiAgICB3aXRoIGNhbGxzIHRvIG1ldGhvZHMgb2YgdGhpcyBzZXJ2aWNlLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhMb2FkaW5nU2VydmljZSB7XG4gIC8vIFdlYWtNYXAgd2lsbCByZW1vdmUgY29tcG9uZW50cyBmcm9tIGl0c2VsZiB1cG9uXG4gIC8vIHRoZWlyIGdhcmJhZ2UgY29sbGVjdGlvbiBieSBKUyBydW50aW1lLlxuICBwcm90ZWN0ZWQgbG9hZGluZ1N0YXRlczogYW55ID0gbmV3IFdlYWtNYXA8TG9hZGluZ0NvbnRleHQsIE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4+KCk7XG4gIC8vIEJvdGggbG9hZGluZyBzdGF0ZSBtYXBzIGFyZSBrZXB0IGluLXN5bmMgc3VjaCB0aGF0XG4gIC8vIHRoZXkgY2FuIGJlIHVzZWQgYnkgYm90aCBzeW5jIGFuZCBhc3luYyBtZXRob2RzLlxuICBwcm90ZWN0ZWQgbG9hZGluZ1N0YXRlcyQ6IGFueSA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIEJlaGF2aW9yU3ViamVjdDxib29sZWFuPj4+KCk7XG5cbiAgY29uc3RydWN0b3IocHJvdGVjdGVkIHpvbmVSZWY6IE5nWm9uZSwgcHJpdmF0ZSBvdmVybGF5U2VydmljZTogQVhPdmVybGF5U2VydmljZSkge31cblxuICBwcml2YXRlIF9zdGFjazogeyBpZDogbnVtYmVyOyBjb21wb25lbnQ6IEFYT3ZlcmxheVZpZXdSZWYgfVtdID0gW107XG5cbiAgc2hvdyhvcHRpb25zPzogeyBsb2NhdGlvbj86IEVsZW1lbnQ7IHR5cGU/OiBzdHJpbmc7IGNvbnRleHQ/OiBhbnkgfSk6IG51bWJlciB7XG4gICAgbGV0IGhvc3Q6IEVsZW1lbnQgfCBhbnk7XG4gICAgaWYgKG9wdGlvbnM/LmxvY2F0aW9uKSB7XG4gICAgICBob3N0ID0gb3B0aW9ucy5sb2NhdGlvbi5jbG9zZXN0KCcuYXgtbG9hZGluZy1ob3N0Jyk7XG4gICAgfVxuICAgIGNvbnN0IGNvbnRhaW5lckVsZW1lbnQgPSAoaG9zdCB8fCBvcHRpb25zLmxvY2F0aW9uKSBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICBjb25zdCBjb20gPSB0aGlzLm92ZXJsYXlTZXJ2aWNlLnNob3coXG4gICAgICBBWExvYWRpbmdDb21wb25lbnQsXG4gICAgICB7IG9wdGlvbnM6IG9wdGlvbnMuY29udGV4dCB9LFxuICAgICAge1xuICAgICAgICBjbG9zZU9uQ2xpY2tPdXRzaWRlOiBmYWxzZSxcbiAgICAgICAgY29udGFpbmVyRWxlbWVudCxcbiAgICAgICAgaGFzQmFja2Ryb3A6IHRydWUsXG4gICAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnYXgtbG9hZGluZy1vdmVybGF5J10sXG4gICAgICAgIHNjcm9sbDogJ2Jsb2NrJyxcbiAgICAgIH1cbiAgICApO1xuICAgIGNvbS5pbnN0YW5jZS52aXNpYmxlID0gdHJ1ZTtcbiAgICBjb25zdCBpZCA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMuX3N0YWNrLnB1c2goeyBpZCwgY29tcG9uZW50OiBjb20gfSk7XG4gICAgcmV0dXJuIGlkO1xuICB9XG5cbiAgaGlkZShpZCk6IHZvaWQge1xuICAgIGNvbnN0IGYgPSB0aGlzLl9zdGFjay5maW5kKGMgPT4gYy5pZCA9PT0gaWQpO1xuICAgIGlmIChmKSB7XG4gICAgICBmLmNvbXBvbmVudC5kaXNwb3NlKCk7XG4gICAgICB0aGlzLl9zdGFjayA9IHRoaXMuX3N0YWNrLmZpbHRlcihjID0+IGMuaWQgIT09IGlkKTtcbiAgICB9XG4gIH1cblxuICAvLyBPYnNlcnZhYmxlIGNyZWF0aW9uIG9wZXJhdG9yLlxuICAvLyBMb2FkZXJJZCBjYW4gYmUgdXNlZCB3aGVuIHRoZXJlIGFyZSBtdWx0aXBsZSBsb2FkaW5nIGluZGljYXRvcnMgYXNzb2NpYXRlZCB0byBhIHNpbmdsZSBjb250ZXh0LlxuICAvLyBDb250ZXh0IGNhbiBiZSBhbnkgb2JqZWN0LCB0aG91Z2ggaW4gcHJhY3RpY2UsIGNvbXBvbmVudHMgYW5kIHNlcnZpY2VzIHdpbGwgYmUgdGhlIG1vc3QgY29tbW9uIGNvbnRleHRzLlxuICAvLyBsb2FkZXJJZCBpcyBhIG5vbi1tYW5kYXRvcnkgcGFyYW1ldGVyIC0gd2hlbiBub3Qgc3BlY2lmaWVkLCBhIGRlZmF1bHQgbG9hZGVySWQgaXMgdXNlZC5cbiAgLy8gU3VjaCBhIHNjZW5hcmlvIGlzIHVzZWQgd2hlbiB5b3VyIGNvbnRleHQgaGFzIGNvbnRhaW5zIG9ubHkgb25lIGxvYWRpbmcgaW5kaWNhdG9yLlxuICBkb0xvYWRpbmc8Vj4oc291cmNlJDogT2JzZXJ2YWJsZTxWPiwgY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQpOiBPYnNlcnZhYmxlPFY+IHtcbiAgICB0aGlzLnN0YXJ0TG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCk7XG5cbiAgICByZXR1cm4gc291cmNlJC5waXBlKFxuICAgICAgb2JzZXJ2ZU9uKGFzeW5jU2NoZWR1bGVyKSxcbiAgICAgIGZpbmFsaXplKCgpID0+IHRoaXMuZW5kTG9hZGluZyhjb250ZXh0LCBsb2FkZXJJZCkpXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRvIGJlIHVzZWQgaW4geW91ciBodG1sIHRlbXBsYXRlcy5cbiAgLy8gUmV0dXJucyBhIGJvb2xlYW4gaW5kaWNhdGluZyB3aGV0aGVyIGEgZ2l2ZW4gbG9hZGVyIGlzIGFjdGl2ZSBpbiBhIGdpdmVuIGNvbnRleHQuXG4gIC8vIElmIGxvYWRlcklkIGlzIHVuc3BlY2lmaWVkLCB0aGUgbWV0aG9kIHdpbGwgcmV0dXJuIGEgbG9naWNhbCBkaXNqdW5jdGlvbiBvZiBhbGxcbiAgLy8gbG9hZGVyIHN0YXRlcyBpbiB0aGUgY29udGV4dC5cbiAgaXNMb2FkaW5nKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZD86IExvYWRlcklkKTogYm9vbGVhbiB7XG4gICAgY29uc3QgbG9hZGVyU3RhdGVzID0gdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KTtcblxuICAgIGlmICghbG9hZGVyU3RhdGVzKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmIChsb2FkZXJJZCAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICAgIHJldHVybiBsb2FkZXJTdGF0ZXMuZ2V0KHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKSA/PyBmYWxzZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBbLi4ubG9hZGVyU3RhdGVzLnZhbHVlcygpXS5maWx0ZXIoc3RhdGUgPT4gc3RhdGUpLmxlbmd0aCA+IDA7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLy8gVG8gYmUgdXNlZCBpbiB5b3VyIGh0bWwgdGVtcGxhdGVzIHdpdGggYXN5bmMgcGlwZXMuXG4gIC8vIFJldHVybnMgYW4gT2JzZXJ2YWJsZSBvZiBib29sZWFucyBpbmRpY2F0aW5nIHdoZXRoZXIgYSBnaXZlbiBsb2FkZXIgaXMgYWN0aXZlIGluIGEgZ2l2ZW4gY29udGV4dC5cbiAgaXNMb2FkaW5nJChjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCB8IGFueSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGNvbnN0IGNvYWxlc2NlZExvYWRlcklkID0gdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCk7XG5cbiAgICBpZiAoIXRoaXMuaGFzTG9hZGluZ1N0YXRlcyhjb250ZXh0LCBjb2FsZXNjZWRMb2FkZXJJZCkpIHtcbiAgICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIGZhbHNlLCBsb2FkZXJJZCk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmdldChjb2FsZXNjZWRMb2FkZXJJZCk7XG4gIH1cblxuICAvLyBUaGUgc3RhcnRMb2FkaW5nIGFuZCBlbmRMb2FkaW5nIG1ldGhvZHMgYXJlIGludGVuZGVkIHRvIGJlIHVzZWQgd2hlbiBoYW5kbGluZ1xuICAvLyBjb21wbGV4IHNjZW5hcmlvcyB3aGVyZSBhIG5lZWQgZm9yIGV4dGVuZGVkIHVzYWdlIGZsZXhpYmlsaXR5IGlzIGRlc2lyZWQuXG4gIHN0YXJ0TG9hZGluZyhjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgbG9hZGVySWQ/OiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIHRoaXMuc2V0TG9hZGluZ1N0YXRlKGNvbnRleHQsIHRydWUsIHRoaXMuZ2V0TG9hZGVySWQobG9hZGVySWQpKTtcbiAgfVxuXG4gIGVuZExvYWRpbmcoY29udGV4dDogTG9hZGluZ0NvbnRleHQsIGxvYWRlcklkPzogTG9hZGVySWQpOiB2b2lkIHtcbiAgICB0aGlzLnNldExvYWRpbmdTdGF0ZShjb250ZXh0LCBmYWxzZSwgdGhpcy5nZXRMb2FkZXJJZChsb2FkZXJJZCkpO1xuICB9XG5cbiAgLy8gVG8gYmUgY2FsbGVkIGJ5IG1pZGRsZXdhcmUgY29kZSAoSFRUUCBpbnRlcmNlcHRvcnMvcm91dGluZyBsaXN0ZW5lcnMsIGV0Yy4pLlxuICBjbGVhckxvYWRpbmdzKCk6IHZvaWQge1xuICAgIHRoaXMubG9hZGluZ1N0YXRlcyA9IG5ldyBXZWFrTWFwPExvYWRpbmdDb250ZXh0LCBNYXA8TG9hZGVySWQsIGJvb2xlYW4+PigpO1xuICAgIHRoaXMubG9hZGluZ1N0YXRlcyQgPSBuZXcgV2Vha01hcDxMb2FkaW5nQ29udGV4dCwgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+PigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHNldExvYWRpbmdTdGF0ZShjb250ZXh0OiBMb2FkaW5nQ29udGV4dCwgc3RhdGU6IGJvb2xlYW4sIGxvYWRlcklkOiBMb2FkZXJJZCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5oYXNMb2FkaW5nU3RhdGVzKGNvbnRleHQsIGxvYWRlcklkKSkge1xuICAgICAgaWYgKHRoaXMuaGFzQ29udGV4dExvYWRpbmdTdGF0ZShjb250ZXh0KSkge1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMuZ2V0KGNvbnRleHQpLnNldChsb2FkZXJJZCwgc3RhdGUpO1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLmdldChjb250ZXh0KS5zZXQobG9hZGVySWQsIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oc3RhdGUpKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5zZXQoY29udGV4dCwgbmV3IE1hcDxMb2FkZXJJZCwgYm9vbGVhbj4oW1tsb2FkZXJJZCwgc3RhdGVdXSkpO1xuICAgICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLnNldChjb250ZXh0LCBuZXcgTWFwPExvYWRlcklkLCBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4+KFtbbG9hZGVySWQsIG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oc3RhdGUpXV0pKTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQHRzLWlnbm9yZSAtIGxvYWRpbmdTdGF0ZXNbY29udGV4dF0gaXMgc3VyZWx5IGRlZmluZWQgaW4gdGhpcyBicmFuY2hcbiAgICAgIHRoaXMubG9hZGluZ1N0YXRlcy5nZXQoY29udGV4dCkuc2V0KGxvYWRlcklkLCBzdGF0ZSk7XG4gICAgICB0aGlzLmxvYWRpbmdTdGF0ZXMkLmdldChjb250ZXh0KS5nZXQobG9hZGVySWQpLm5leHQoc3RhdGUpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNMb2FkaW5nU3RhdGVzKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZDogTG9hZGVySWQpIHtcbiAgICByZXR1cm4gdGhpcy5oYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQpICYmIHRoaXMuaGFzTG9hZGVyTG9hZGluZ1N0YXRlKGNvbnRleHQsIGxvYWRlcklkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYXNDb250ZXh0TG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0KSB7XG4gICAgcmV0dXJuIHRoaXMubG9hZGluZ1N0YXRlcy5oYXMoY29udGV4dCkgJiYgdGhpcy5sb2FkaW5nU3RhdGVzJC5oYXMoY29udGV4dCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFzTG9hZGVyTG9hZGluZ1N0YXRlKGNvbnRleHQ6IExvYWRpbmdDb250ZXh0LCBsb2FkZXJJZDogTG9hZGVySWQpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkaW5nU3RhdGVzLmdldChjb250ZXh0KS5oYXMobG9hZGVySWQpICYmIHRoaXMubG9hZGluZ1N0YXRlcyQuZ2V0KGNvbnRleHQpLmhhcyhsb2FkZXJJZCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0TG9hZGVySWQobG9hZGVySWQ/OiBMb2FkZXJJZCk6IExvYWRlcklkIHtcbiAgICByZXR1cm4gbG9hZGVySWQgPz8gREVGQVVMVF9MT0FERVJfSUQ7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,8 @@
1
1
  import { ComponentPortal } from '@angular/cdk/portal';
2
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, } from '@angular/core';
2
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild } from '@angular/core';
3
3
  import { AXBaseMenuMixin } from '@acorex/components/mixin';
4
4
  import { AXPlatform } from '@acorex/core/platform';
5
+ import { AXTranslator } from '@acorex/core/translation';
5
6
  import * as i0 from "@angular/core";
6
7
  import * as i1 from "@angular/cdk/overlay";
7
8
  import * as i2 from "@acorex/core/platform";
@@ -30,6 +31,9 @@ class AXMenuComponent extends AXBaseMenuMixin {
30
31
  rtl = new AXPlatform().isRtl();
31
32
  _levelCount = 0;
32
33
  _oldItem;
34
+ _loadingOptions = {
35
+ text: AXTranslator.get('layout.loading.text'),
36
+ };
33
37
  constructor(_elementRef, cdr, _overlay, _platform) {
34
38
  super(_elementRef, cdr);
35
39
  this._elementRef = _elementRef;
@@ -313,30 +317,12 @@ class AXMenuComponent extends AXBaseMenuMixin {
313
317
  this._overlayRef?.detach();
314
318
  }
315
319
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
316
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", active: "active", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
320
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", active: "active", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
317
321
  }
318
322
  export { AXMenuComponent };
319
323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXMenuComponent, decorators: [{
320
324
  type: Component,
321
- args: [{ selector: 'ax-menu', inputs: [
322
- 'disabled',
323
- 'tabIndex',
324
- 'textField',
325
- 'valueField',
326
- 'items',
327
- 'parentId',
328
- 'iconField',
329
- 'tooltip',
330
- 'opened',
331
- 'active',
332
- 'visibleField',
333
- 'disableField',
334
- 'hasChildField',
335
- 'dividerField',
336
- 'openMode',
337
- 'displayMode',
338
- 'showModal',
339
- ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"] }]
325
+ args: [{ selector: 'ax-menu', inputs: ['disabled', 'tabIndex', 'textField', 'valueField', 'items', 'parentId', 'iconField', 'tooltip', 'opened', 'active', 'visibleField', 'disableField', 'hasChildField', 'dividerField', 'openMode', 'displayMode', 'showModal'], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"] }]
340
326
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { _contentEmptyTemplate: [{
341
327
  type: ContentChild,
342
328
  args: ['emptyTemplate']
@@ -344,4 +330,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImpor
344
330
  type: ContentChild,
345
331
  args: ['itemTemplate']
346
332
  }] } });
347
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFDTCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUVqQixZQUFZLEdBSWIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQzs7Ozs7OztBQUVuRDs7OztHQUlHO0FBQ0gsTUEyQmEsZUFBZ0IsU0FBUSxlQUFlO0lBdUI5QjtJQUFpQztJQUFnQztJQUEyQjtJQXJCeEcscUJBQXFCLENBQW1CO0lBR3hDLG9CQUFvQixDQUFtQjtJQUV4QyxXQUFXLENBQWE7SUFFL0IsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUM7SUFDcEMsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDO0lBQ25DLENBQUM7SUFFRCxHQUFHLEdBQVksSUFBSSxVQUFVLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUVoQyxXQUFXLEdBQVcsQ0FBQyxDQUFDO0lBRXhCLFFBQVEsQ0FBTTtJQUV0QixZQUFvQixXQUF1QixFQUFVLEdBQXNCLEVBQVUsUUFBaUIsRUFBVSxTQUFxQjtRQUNuSSxLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBRE4sZ0JBQVcsR0FBWCxXQUFXLENBQVk7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QUksQ0FBQyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDbEMsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDdkIsT0FBTyxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7UUFDekIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxDQUFDLFdBQVcsRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUM3QixDQUFDO3VHQTVVVSxlQUFlOzJGQUFmLGVBQWUsNHhCQ2hENUIsNjRGQStEQTs7U0RmYSxlQUFlOzJGQUFmLGVBQWU7a0JBM0IzQixTQUFTOytCQUNFLFNBQVMsVUFHWDt3QkFDTixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLE9BQU87d0JBQ1AsVUFBVTt3QkFDVixXQUFXO3dCQUNYLFNBQVM7d0JBQ1QsUUFBUTt3QkFDUixRQUFRO3dCQUNSLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsVUFBVTt3QkFDVixhQUFhO3dCQUNiLFdBQVc7cUJBQ1osV0FDUSxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLENBQUMsbUJBQ2hDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUk7Z0xBSTdCLHFCQUFxQjtzQkFENUIsWUFBWTt1QkFBQyxlQUFlO2dCQUlyQixvQkFBb0I7c0JBRDNCLFlBQVk7dUJBQUMsY0FBYyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE92ZXJsYXlSZWYsIE92ZXJsYXkgfSBmcm9tICdAYW5ndWxhci9jZGsvb3ZlcmxheSc7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcblxuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIE9uSW5pdCxcbiAgQ29udGVudENoaWxkLFxuICBUZW1wbGF0ZVJlZixcbiAgRWxlbWVudFJlZixcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhCYXNlTWVudU1peGluIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcbmltcG9ydCB7IEFYUGxhdGZvcm0gfSBmcm9tICdAYWNvcmV4L2NvcmUvcGxhdGZvcm0nO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAndGV4dEZpZWxkJyxcbiAgICAndmFsdWVGaWVsZCcsXG4gICAgJ2l0ZW1zJyxcbiAgICAncGFyZW50SWQnLFxuICAgICdpY29uRmllbGQnLFxuICAgICd0b29sdGlwJyxcbiAgICAnb3BlbmVkJyxcbiAgICAnYWN0aXZlJyxcbiAgICAndmlzaWJsZUZpZWxkJyxcbiAgICAnZGlzYWJsZUZpZWxkJyxcbiAgICAnaGFzQ2hpbGRGaWVsZCcsXG4gICAgJ2RpdmlkZXJGaWVsZCcsXG4gICAgJ29wZW5Nb2RlJyxcbiAgICAnZGlzcGxheU1vZGUnLFxuICAgICdzaG93TW9kYWwnLFxuICBdLFxuICBvdXRwdXRzOiBbJ29uQmx1cicsICdvbkZvY3VzJywgJ29uTWVudUl0ZW1DbGljayddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51Q29tcG9uZW50IGV4dGVuZHMgQVhCYXNlTWVudU1peGluIGltcGxlbWVudHMgT25Jbml0IHtcbiAgQENvbnRlbnRDaGlsZCgnZW1wdHlUZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRFbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjxhbnk+O1xuXG4gIEBDb250ZW50Q2hpbGQoJ2l0ZW1UZW1wbGF0ZScpXG4gIHByaXZhdGUgX2NvbnRlbnRJdGVtVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgcHVibGljIF9vdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIGdldCBlbXB0eVRlbXBsYXRlKCk6IFRlbXBsYXRlUmVmPGFueT4ge1xuICAgIHJldHVybiB0aGlzLl9jb250ZW50RW1wdHlUZW1wbGF0ZTtcbiAgfVxuXG4gIGdldCBpdGVtVGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRJdGVtVGVtcGxhdGU7XG4gIH1cblxuICBydGw6IGJvb2xlYW4gPSBuZXcgQVhQbGF0Zm9ybSgpLmlzUnRsKCk7XG5cbiAgcHJpdmF0ZSBfbGV2ZWxDb3VudDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9vbGRJdGVtOiBhbnk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBfZWxlbWVudFJlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLCBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LCBwcml2YXRlIF9wbGF0Zm9ybTogQVhQbGF0Zm9ybSkge1xuICAgIHN1cGVyKF9lbGVtZW50UmVmLCBjZHIpO1xuICB9XG5cbiAgb25Jbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uSW5pdCgpO1xuICB9XG5cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIHN1cGVyLm9uVmlld0luaXQoKTtcbiAgfVxuXG4gIF9vbk1lbnVNb3VzZUVudGVyKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2hvdmVyJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX29uTWVudUNsaWNrKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcblxuICAgIGlmICh0aGlzLmlzTG9hZGluZyB8fCB0YXJnZXRFbGVtZW50LnRhZ05hbWUgPT09ICdVTCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykge1xuICAgICAgdGhpcy5faGFuZGVsTWVudUxvZ2ljKGUsIGl0ZW0pO1xuICAgIH1cblxuICAgIHRoaXMub25NZW51SXRlbUNsaWNrLmVtaXQoe1xuICAgICAgY29tcG9uZW50OiB0aGlzLFxuICAgICAgaXRlbTogaXRlbSxcbiAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgIH0pO1xuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBfZ2V0RGlyZWN0aW9uKCk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyAmJiB0aGlzLl9sZXZlbENvdW50ID09PSAwKSB7XG4gICAgICByZXR1cm4gJ2F4LWhvcml6b250YWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fbGV2ZWxDb3VudCA+IDApIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwgYXgtc3VibWVudS11bCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnc2lkZW1lbnUnKSB7XG4gICAgICByZXR1cm4gJ2F4LXNpZGUtbWVudSc7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiAnYXgtdmVydGljYWwnO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgX3JlbW92ZUFjdGl2ZShpdGVtczogYW55KTogdm9pZCB7XG4gICAgaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlKGVsZW1lbnQuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPcGVuQ2hpbGQoaXRlbXM6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgaWYgKGVsZW1lbnQ/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlT3BlbkNoaWxkKGVsZW1lbnQuY2hpbGRyZW4pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaW5pdFBhcmVudChpdGVtczogYW55LCBwYXJlbnRJZDogYW55KTogdm9pZCB7XG4gICAgaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGVsZW1lbnQucGFyZW50SWQgPSBwYXJlbnRJZDtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2hhbmRlbE1lbnVMb2dpYyhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAoIWl0ZW1bdGhpcy5kaXNhYmxlRmllbGRdIHx8IGl0ZW1bdGhpcy5kaXZpZGVyRmllbGRdID09PSBmYWxzZSkge1xuICAgICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuICAgICAgaWYgKCh0YXJnZXRFbGVtZW50LmNsb3Nlc3QoJ2xpJykgJiYgdGhpcy5vcGVuTW9kZSA9PT0gJ2NsaWNrJykgfHwgKHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnaG92ZXInKSkge1xuICAgICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgdGhpcy5fb3ZlcmxheVJlZi5kZXRhY2goKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnKSB7XG4gICAgICAgICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5wYXJlbnRJZCAmJiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRQYXJlbnQoaXRlbS5jaGlsZHJlbiwgaXRlbVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICB0aGlzLl9vcGVuQXNPdmVybGF5KHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Nsb3NlT3BlbkNoaWxkKGl0ZW0uY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpdGVtLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gIWl0ZW0ub3BlbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuX3JlbW92ZUFjdGl2ZSh0aGlzLmRpc3BsYXlJdGVtcyk7XG5cbiAgICAgICAgaWYgKGUudHlwZSAhPT0gJ21vdXNlZW50ZXInKSBpdGVtLmFjdGl2ZSA9ICFpdGVtLmFjdGl2ZTtcblxuICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICBpZiAodGhpcy5fb2xkSXRlbSAmJiB0aGlzLl9vbGRJdGVtPy5vcGVuZWQgJiYgaXRlbVt0aGlzLnZhbHVlRmllbGRdICE9PSB0aGlzLl9vbGRJdGVtW3RoaXMudmFsdWVGaWVsZF0pIHtcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0ub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX29sZEl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbkFzT3ZlcmxheSh0YXJnZXRSZWYsIG92ZXJsYXlJdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdjZW50ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLnBvc2l0aW9uc10pXG4gICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgLndpdGhEZWZhdWx0T2Zmc2V0WCgxMiksXG5cbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fcGxhdGZvcm0uaXNSdGwoKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsICdheC1vdmVybGF5LW1lbnUnXSxcbiAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoQVhNZW51Q29tcG9uZW50KSk7XG5cbiAgICByZWYuaW5zdGFuY2UuaXRlbXMgPSBvdmVybGF5SXRlbXM7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzcGxheU1vZGUgPSB0aGlzLmRpc3BsYXlNb2RlO1xuXG4gICAgcmVmLmluc3RhbmNlLm9wZW5Nb2RlID0gJ2hvdmVyJztcblxuICAgIHJlZi5pbnN0YW5jZS5fbGV2ZWxDb3VudCA9IHRoaXMuX2xldmVsQ291bnQgKyAxO1xuXG4gICAgcmVmLmluc3RhbmNlLmRpc2FibGVGaWVsZCA9IHRoaXMuZGlzYWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZpc2libGVGaWVsZCA9IHRoaXMudmlzaWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuaWNvbkZpZWxkID0gdGhpcy5pY29uRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuZGl2aWRlckZpZWxkID0gdGhpcy5kaXZpZGVyRmllbGQ7XG5cbiAgICByZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHJlZi5pbnN0YW5jZT8uX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICBpZiAodGhpcy5fb3ZlcmxheVJlZiAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9wbGF0Zm9ybS5zY3JvbGwuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICB0aGlzLl9wbGF0Zm9ybS5yZXNpemUuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmKSB7XG4gICAgICAgIHRoaXMuX2Nsb3NlKCk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZSgpIHtcbiAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgIHRoaXMuX29sZEl0ZW0gPSBudWxsO1xuICAgIHRoaXMuZGlzcGxheUl0ZW1zLmZvckVhY2goZWxlbWVudCA9PiB7XG4gICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICB9KTtcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XG4gIH1cblxuICBvbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5fb3ZlcmxheVJlZj8uZGV0YWNoKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJyZWN1cnNpdmVMaXN0VG1wbDsgY29udGV4dDogeyBsaXN0OiBkaXNwbGF5SXRlbXMsIGlzUm9vdDogdHJ1ZSB9XCI+PC9uZy1jb250YWluZXI+XG4gIDwvdWw+XG4gIDxuZy10ZW1wbGF0ZSAjcmVjdXJzaXZlTGlzdFRtcGwgbGV0LWxpc3Q9XCJsaXN0XCIgbGV0LWlzUm9vdD1cImlzUm9vdFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdFwiPlxuICAgICAgPGxpICpuZ0lmPVwiaXRlbVt2aXNpYmxlRmllbGRdICE9IGZhbHNlXCIgW2NsYXNzLmF4LXN0YXRlLWRpc2FibGVkXT1cIml0ZW1bZGlzYWJsZUZpZWxkXVwiIChjbGljayk9XCJfb25NZW51Q2xpY2soJGV2ZW50LCBpdGVtKVwiIChtb3VzZWVudGVyKT1cIl9vbk1lbnVNb3VzZUVudGVyKCRldmVudCwgaXRlbSlcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtbWVudS1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYXgtaXMtcGFyZW50JzogaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCxcbiAgICAgICAgICAgICdheC1pcy1jaGlsZCc6ICFpc1Jvb3QsXG4gICAgICAgICAgICAnYXgtc3RhdGUtYWN0aXZlICc6IGl0ZW0uYWN0aXZlXG4gICAgICAgICAgfVwiXG4gICAgICAgICAgKm5nSWY9XCJpdGVtVGVtcGxhdGUgPT0gbnVsbDsgZWxzZSB0bXBJdGVtXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LW1lbnUtaXRlbS1wcmVmaXhcIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtbWVudS1pdGVtLWljb25cIiAqbmdJZj1cIml0ZW1baWNvbkZpZWxkXVwiIFtjbGFzc109XCJpdGVtW2ljb25GaWVsZF1cIj48L3NwYW4+XG4gICAgICAgICAgICA8c3Bhbj57eyBfZ2V0SXRlbURpc3BsYXlUZXh0VGVtcGx0ZShpdGVtKSB9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXN1ZmZpeFwiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvbiBheC1pY29uIGF4LW1lbnUtaXRlbS1pY29uLWNoZXZyb25cIlxuICAgICAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAgICAgJ2F4LWljb24tY2hldnJvbi1kb3duJzogaXRlbT8uY2hpbGRyZW4/Lmxlbmd0aCA+IDAsXG4gICAgICAgICAgICAgICAgJ2F4LW1lbnUtYWN0aXZlLWljb24nOiBpdGVtLm9wZW5lZFxuICAgICAgICAgICAgICB9XCJcbiAgICAgICAgICAgICAgKm5nSWY9XCIhaXRlbS5pc0xvYWRpbmdcIj48L3NwYW4+XG4gICAgICAgICAgICA8YXgtbG9hZGluZyAqbmdJZj1cIml0ZW0uaXNMb2FkaW5nXCI+IDwvYXgtbG9hZGluZz5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gIGl0ZW0gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0bXBJdGVtPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaXRlbVRlbXBsYXRlOyBjb250ZXh0OiB7ICRpbXBsaWNpdDogaXRlbSB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8dWwgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OiB7IGxpc3Q6IGl0ZW0uY2hpbGRyZW4gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC91bD5cbiAgICAgIDwvbGk+XG4gICAgICA8bGkgY2xhc3M9XCJheC1tZW51LWl0ZW0tZGl2aWRlclwiICpuZ0lmPVwiaXRlbVt0aGlzLmRpdmlkZXJGaWVsZF1cIj48L2xpPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLXRlbXBsYXRlPlxuPC9uZy1jb250YWluZXI+XG48bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nXCI+XG4gIDxuZy10ZW1wbGF0ZT5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtZmxleCBheC1pdGVtcy1jZW50ZXIgYXgtanVzdGlmeS1jZW50ZXIgYXgtcC00XCI+XG4gICAgICA8YXgtbG9hZGluZyB0ZXh0PVwie3sgJ2xheW91dC5sb2FkaW5nLnRleHQnIHwgdHJhbnMgfX1cIj48L2F4LWxvYWRpbmc+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICN0bXBFbXB0eT5cbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImVtcHR5VGVtcGxhdGU7IGVsc2UgZWxzZUVtcHR5VGVtcGxhdGVcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJlbXB0eVRlbXBsYXRlXCI+IDwvbmctY29udGFpbmVyPlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDxuZy10ZW1wbGF0ZSAjZWxzZUVtcHR5VGVtcGxhdGU+XG4gICAgICB7eyAnY29tbW9uLm5vLXJlc3VsdC1mb3VuZCcgfCB0cmFucyB9fVxuICAgIDwvbmctdGVtcGxhdGU+XG4gIDwvbmctY29udGFpbmVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
333
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9tZW51L3NyYy9tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL21lbnUvc3JjL21lbnUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRXRELE9BQU8sRUFBRSxTQUFTLEVBQUUsdUJBQXVCLEVBQUUsaUJBQWlCLEVBQVUsWUFBWSxFQUE4QyxNQUFNLGVBQWUsQ0FBQztBQUN4SixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQUV4RDs7OztHQUlHO0FBQ0gsTUFTYSxlQUFnQixTQUFRLGVBQWU7SUEyQjlCO0lBQWlDO0lBQWdDO0lBQTJCO0lBekJ4RyxxQkFBcUIsQ0FBbUI7SUFHeEMsb0JBQW9CLENBQW1CO0lBRXhDLFdBQVcsQ0FBYTtJQUUvQixJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQztJQUNwQyxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUM7SUFDbkMsQ0FBQztJQUVELEdBQUcsR0FBWSxJQUFJLFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBRWhDLFdBQVcsR0FBVyxDQUFDLENBQUM7SUFFeEIsUUFBUSxDQUFNO0lBRVosZUFBZSxHQUFHO1FBQzFCLElBQUksRUFBRSxZQUFZLENBQUMsR0FBRyxDQUFDLHFCQUFxQixDQUFDO0tBQzlDLENBQUM7SUFF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dmVybGF5UmVmLCBPdmVybGF5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5cbmltcG9ydCB7IENvbXBvbmVudCwgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIFZpZXdFbmNhcHN1bGF0aW9uLCBPbkluaXQsIENvbnRlbnRDaGlsZCwgVGVtcGxhdGVSZWYsIEVsZW1lbnRSZWYsIENoYW5nZURldGVjdG9yUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWEJhc2VNZW51TWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21lbnUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogWydkaXNhYmxlZCcsICd0YWJJbmRleCcsICd0ZXh0RmllbGQnLCAndmFsdWVGaWVsZCcsICdpdGVtcycsICdwYXJlbnRJZCcsICdpY29uRmllbGQnLCAndG9vbHRpcCcsICdvcGVuZWQnLCAnYWN0aXZlJywgJ3Zpc2libGVGaWVsZCcsICdkaXNhYmxlRmllbGQnLCAnaGFzQ2hpbGRGaWVsZCcsICdkaXZpZGVyRmllbGQnLCAnb3Blbk1vZGUnLCAnZGlzcGxheU1vZGUnLCAnc2hvd01vZGFsJ10sXG4gIG91dHB1dHM6IFsnb25CbHVyJywgJ29uRm9jdXMnLCAnb25NZW51SXRlbUNsaWNrJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVDb21wb25lbnQgZXh0ZW5kcyBBWEJhc2VNZW51TWl4aW4gaW1wbGVtZW50cyBPbkluaXQge1xuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnaXRlbVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbXB0eVRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEl0ZW1UZW1wbGF0ZTtcbiAgfVxuXG4gIHJ0bDogYm9vbGVhbiA9IG5ldyBBWFBsYXRmb3JtKCkuaXNSdGwoKTtcblxuICBwcml2YXRlIF9sZXZlbENvdW50OiBudW1iZXIgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgX292ZXJsYXk6IE92ZXJsYXksIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtKSB7XG4gICAgc3VwZXIoX2VsZW1lbnRSZWYsIGNkcik7XG4gIH1cblxuICBvbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIub25Jbml0KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKTogdm9pZCB7XG4gICAgc3VwZXIub25WaWV3SW5pdCgpO1xuICB9XG5cbiAgX29uTWVudU1vdXNlRW50ZXIoZTogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8IHRhcmdldEVsZW1lbnQudGFnTmFtZSA9PT0gJ1VMJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wZW5Nb2RlID09PSAnaG92ZXInKSB7XG4gICAgICB0aGlzLl9oYW5kZWxNZW51TG9naWMoZSwgaXRlbSk7XG4gICAgfVxuXG4gICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBlLnByZXZlbnREZWZhdWx0KCk7XG4gIH1cblxuICBfb25NZW51Q2xpY2soZTogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgY29uc3QgdGFyZ2V0RWxlbWVudCA9IGUudGFyZ2V0IGFzIEhUTUxEaXZFbGVtZW50O1xuXG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nIHx8IHRhcmdldEVsZW1lbnQudGFnTmFtZSA9PT0gJ1VMJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB7XG4gICAgICB0aGlzLl9oYW5kZWxNZW51TG9naWMoZSwgaXRlbSk7XG4gICAgfVxuXG4gICAgdGhpcy5vbk1lbnVJdGVtQ2xpY2suZW1pdCh7XG4gICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICBpdGVtOiBpdGVtLFxuICAgICAgbmF0aXZlRXZlbnQ6IGUsXG4gICAgfSk7XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIF9nZXREaXJlY3Rpb24oKTogc3RyaW5nIHtcbiAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnICYmIHRoaXMuX2xldmVsQ291bnQgPT09IDApIHtcbiAgICAgIHJldHVybiAnYXgtaG9yaXpvbnRhbCc7XG4gICAgfSBlbHNlIGlmICh0aGlzLl9sZXZlbENvdW50ID4gMCkge1xuICAgICAgcmV0dXJuICdheC12ZXJ0aWNhbCBheC1zdWJtZW51LXVsJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdzaWRlbWVudScpIHtcbiAgICAgIHJldHVybiAnYXgtc2lkZS1tZW51JztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICdheC12ZXJ0aWNhbCc7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfcmVtb3ZlQWN0aXZlKGl0ZW1zOiBhbnkpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgZWxlbWVudC5hY3RpdmUgPSBmYWxzZTtcbiAgICAgIGlmIChlbGVtZW50Py5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICB0aGlzLl9yZW1vdmVBY3RpdmUoZWxlbWVudC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9jbG9zZU9wZW5DaGlsZChpdGVtczogYW55KTogdm9pZCB7XG4gICAgaXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoZWxlbWVudC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0UGFyZW50KGl0ZW1zOiBhbnksIHBhcmVudElkOiBhbnkpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgZWxlbWVudC5wYXJlbnRJZCA9IHBhcmVudElkO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfaGFuZGVsTWVudUxvZ2ljKGU6IE1vdXNlRXZlbnQsIGl0ZW06IGFueSk6IHZvaWQge1xuICAgIGlmICghaXRlbVt0aGlzLmRpc2FibGVGaWVsZF0gfHwgaXRlbVt0aGlzLmRpdmlkZXJGaWVsZF0gPT09IGZhbHNlKSB7XG4gICAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG4gICAgICBpZiAoKHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB8fCAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpKSB7XG4gICAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMuX29sZEl0ZW0gIT09IGl0ZW0pIHtcbiAgICAgICAgICB0aGlzLl9vdmVybGF5UmVmLmRldGFjaCgpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICB0aGlzLmRpc3BsYXlJdGVtcy5mb3JFYWNoKGVsZW1lbnQgPT4ge1xuICAgICAgICAgICAgaWYgKCFpdGVtLnBhcmVudElkICYmIGl0ZW1bdGhpcy52YWx1ZUZpZWxkXSAhPT0gZWxlbWVudFt0aGlzLnZhbHVlRmllbGRdKSB7XG4gICAgICAgICAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGl0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgdGhpcy5faW5pdFBhcmVudChpdGVtLmNoaWxkcmVuLCBpdGVtW3RoaXMudmFsdWVGaWVsZF0pO1xuICAgICAgICAgIH1cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLl9vbGRJdGVtICE9PSBpdGVtKSB7XG4gICAgICAgICAgICAgIHRoaXMuX29wZW5Bc092ZXJsYXkodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpLCBpdGVtLmNoaWxkcmVuKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoaXRlbS5jaGlsZHJlbik7XG5cbiAgICAgICAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ2hvcml6b250YWwnIHx8IHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gdHJ1ZTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaXRlbS5vcGVuZWQgPSAhaXRlbS5vcGVuZWQ7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlKHRoaXMuZGlzcGxheUl0ZW1zKTtcblxuICAgICAgICBpZiAoZS50eXBlICE9PSAnbW91c2VlbnRlcicpIGl0ZW0uYWN0aXZlID0gIWl0ZW0uYWN0aXZlO1xuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgfHwgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgIGlmICh0aGlzLl9vbGRJdGVtICYmIHRoaXMuX29sZEl0ZW0/Lm9wZW5lZCAmJiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IHRoaXMuX29sZEl0ZW1bdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICAgICAgdGhpcy5fb2xkSXRlbS5vcGVuZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5fb2xkSXRlbSA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9vcGVuQXNPdmVybGF5KHRhcmdldFJlZiwgb3ZlcmxheUl0ZW1zOiBhbnlbXSk6IHZvaWQge1xuICAgIGxldCBwb3NpdGlvbnMgPSBbXTtcbiAgICBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnY2VudGVyJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuX2xldmVsQ291bnQgPj0gMSkge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdib3R0b20nLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2VuZCcsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnc3RhcnQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2JvdHRvbScsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5fb3ZlcmxheVJlZiA9IHRoaXMuX292ZXJsYXkuY3JlYXRlKHtcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5LnNjcm9sbFN0cmF0ZWdpZXMuY2xvc2UoKSxcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuX292ZXJsYXlcbiAgICAgICAgLnBvc2l0aW9uKClcbiAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8odGFyZ2V0UmVmKVxuICAgICAgICAud2l0aFBvc2l0aW9ucyhbLi4ucG9zaXRpb25zXSlcbiAgICAgICAgLndpdGhQdXNoKGZhbHNlKVxuICAgICAgICAud2l0aERlZmF1bHRPZmZzZXRYKDEyKSxcblxuICAgICAgZGlyZWN0aW9uOiB0aGlzLl9wbGF0Zm9ybS5pc1J0bCgpID8gJ3J0bCcgOiAnbHRyJyxcbiAgICAgIGRpc3Bvc2VPbk5hdmlnYXRpb246IHRydWUsXG4gICAgICBwYW5lbENsYXNzOiBbJ2F4LWFuaW1hdGUtZmFkZUluJywgJ2F4LWFuaW1hdGUtZmFzdGVyJywgJ2F4LW92ZXJsYXktbWVudSddLFxuICAgICAgbWF4SGVpZ2h0OiAndW5zZXQnLFxuICAgICAgaGFzQmFja2Ryb3A6IGZhbHNlLFxuICAgICAgYmFja2Ryb3BDbGFzczogWydjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCddLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcmVmID0gdGhpcy5fb3ZlcmxheVJlZi5hdHRhY2gobmV3IENvbXBvbmVudFBvcnRhbChBWE1lbnVDb21wb25lbnQpKTtcblxuICAgIHJlZi5pbnN0YW5jZS5pdGVtcyA9IG92ZXJsYXlJdGVtcztcblxuICAgIHJlZi5pbnN0YW5jZS5kaXNwbGF5TW9kZSA9IHRoaXMuZGlzcGxheU1vZGU7XG5cbiAgICByZWYuaW5zdGFuY2Uub3Blbk1vZGUgPSAnaG92ZXInO1xuXG4gICAgcmVmLmluc3RhbmNlLl9sZXZlbENvdW50ID0gdGhpcy5fbGV2ZWxDb3VudCArIDE7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzYWJsZUZpZWxkID0gdGhpcy5kaXNhYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmlzaWJsZUZpZWxkID0gdGhpcy52aXNpYmxlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudmFsdWVGaWVsZCA9IHRoaXMudmFsdWVGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS50ZXh0RmllbGQgPSB0aGlzLnRleHRGaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5pY29uRmllbGQgPSB0aGlzLmljb25GaWVsZDtcblxuICAgIHJlZi5pbnN0YW5jZS5kaXZpZGVyRmllbGQgPSB0aGlzLmRpdmlkZXJGaWVsZDtcblxuICAgIHJlZi5vbkRlc3Ryb3koKCkgPT4ge1xuICAgICAgcmVmLmluc3RhbmNlPy5fb3ZlcmxheVJlZj8uZGlzcG9zZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fb3ZlcmxheVJlZi5vdXRzaWRlUG9pbnRlckV2ZW50cygpLnN1YnNjcmliZShlID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgdGhpcy5fb2xkSXRlbSA9IG51bGw7XG4gICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaChlbGVtZW50ID0+IHtcbiAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICBlbGVtZW50LmFjdGl2ZSA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcbiAgfVxuXG4gIG9uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLl9vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImRpc3BsYXlJdGVtcy5sZW5ndGg7IGVsc2UgdG1wRW1wdHlcIj5cbiAgPHVsIFtuZ0NsYXNzXT1cIl9nZXREaXJlY3Rpb24oKVwiIFtjbGFzcy5heC1ydGxdPVwicnRsXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OiB7IGxpc3Q6IGRpc3BsYXlJdGVtcywgaXNSb290OiB0cnVlIH1cIj48L25nLWNvbnRhaW5lcj5cbiAgPC91bD5cbiAgPG5nLXRlbXBsYXRlICNyZWN1cnNpdmVMaXN0VG1wbCBsZXQtbGlzdD1cImxpc3RcIiBsZXQtaXNSb290PVwiaXNSb290XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBsaXN0XCI+XG4gICAgICA8bGkgKm5nSWY9XCJpdGVtW3Zpc2libGVGaWVsZF0gIT0gZmFsc2VcIiBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCIgKGNsaWNrKT1cIl9vbk1lbnVDbGljaygkZXZlbnQsIGl0ZW0pXCIgKG1vdXNlZW50ZXIpPVwiX29uTWVudU1vdXNlRW50ZXIoJGV2ZW50LCBpdGVtKVwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJheC1tZW51LWl0ZW1cIlxuICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICdheC1pcy1wYXJlbnQnOiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoLFxuICAgICAgICAgICAgJ2F4LWlzLWNoaWxkJzogIWlzUm9vdCxcbiAgICAgICAgICAgICdheC1zdGF0ZS1hY3RpdmUgJzogaXRlbS5hY3RpdmVcbiAgICAgICAgICB9XCJcbiAgICAgICAgICAqbmdJZj1cIml0ZW1UZW1wbGF0ZSA9PSBudWxsOyBlbHNlIHRtcEl0ZW1cIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXByZWZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbVtpY29uRmllbGRdXCIgW2NsYXNzXT1cIml0ZW1baWNvbkZpZWxkXVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tc3VmZml4XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImF4LW1lbnUtaXRlbS1pY29uIGF4LWljb24gYXgtbWVudS1pdGVtLWljb24tY2hldnJvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWRvd24nOiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgICAgICAnYXgtbWVudS1hY3RpdmUtaWNvbic6IGl0ZW0ub3BlbmVkXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmlzTG9hZGluZ1wiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxheC1sb2FkaW5nICpuZ0lmPVwiaXRlbS5pc0xvYWRpbmdcIj4gPC9heC1sb2FkaW5nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPCEtLS0tLS0tLS0tLS0tLS0gY2hlY2sgZm9yIGN1c3RvbSAgaXRlbSB0ZW1wbGF0ZSAgLS0tLS0tLS0tLS0tLS0tPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RtcEl0ZW0+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0xvYWRpbmdcIj5cbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpdGVtVGVtcGxhdGU7IGNvbnRleHQ6IHsgJGltcGxpY2l0OiBpdGVtIH1cIj4gPC9uZy1jb250YWluZXI+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDx1bCAqbmdJZj1cIml0ZW0/LmNoaWxkcmVuPy5sZW5ndGggPiAwICYmIGl0ZW0ub3BlbmVkICYmICFfb3ZlcmxheVJlZlwiIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogaXRlbS5jaGlsZHJlbiB9XCI+IDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtvcHRpb25zXT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -9,12 +9,12 @@ import * as i1 from "@angular/common";
9
9
  class AXPickerColumnComponent {
10
10
  divider = false;
11
11
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXPickerColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
12
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXPickerColumnComponent, selector: "ax-picker-column", inputs: { divider: "divider" }, ngImport: i0, template: "<div class=\"picker-container\" [ngClass]=\"{'picker-divider':divider}\">\n <div class=\"picker-scrollbar picker-time-spinner-wrapper\">\n <div class=\"picker-scrollbar-wrap\">\n <div class=\"picker-time-spinner-list\">\n <div class=\"picker-time-spinner-item\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".picker-container{width:100%;white-space:nowrap}.picker-container.picker-divider{border-right:solid 1px rgba(var(--ax-color-border-default))}.picker-container .picker-scrollbar{position:relative;height:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap::-webkit-scrollbar{width:2px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{overflow:scroll;height:100vh;overscroll-behavior:inherit;z-index:-1}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:center;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
12
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXPickerColumnComponent, selector: "ax-picker-column", inputs: { divider: "divider" }, ngImport: i0, template: "<div class=\"picker-container\" [ngClass]=\"{'picker-divider':divider}\">\n <div class=\"picker-scrollbar picker-time-spinner-wrapper\">\n <div class=\"picker-scrollbar-wrap\">\n <div class=\"picker-time-spinner-list\">\n <div class=\"picker-time-spinner-item\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".picker-container{width:100%;white-space:nowrap}.picker-container.picker-divider{border-right:solid 1px rgba(var(--ax-color-border-default))}.picker-container .picker-scrollbar{position:relative;height:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-gutter:stable both-edges}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap::-webkit-scrollbar{width:2px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{scrollbar-gutter:stable both-edges;overflow:scroll}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:initial;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary));color:rgba(var(--ax-color-primary-fore));border-radius:8px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{overflow:scroll;height:100vh;overscroll-behavior:inherit;z-index:-1}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:center;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:8px}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
13
13
  }
14
14
  export { AXPickerColumnComponent };
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXPickerColumnComponent, decorators: [{
16
16
  type: Component,
17
- args: [{ selector: 'ax-picker-column', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"picker-container\" [ngClass]=\"{'picker-divider':divider}\">\n <div class=\"picker-scrollbar picker-time-spinner-wrapper\">\n <div class=\"picker-scrollbar-wrap\">\n <div class=\"picker-time-spinner-list\">\n <div class=\"picker-time-spinner-item\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".picker-container{width:100%;white-space:nowrap}.picker-container.picker-divider{border-right:solid 1px rgba(var(--ax-color-border-default))}.picker-container .picker-scrollbar{position:relative;height:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap::-webkit-scrollbar{width:2px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{overflow:scroll;height:100vh;overscroll-behavior:inherit;z-index:-1}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:center;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:8px}\n"] }]
17
+ args: [{ selector: 'ax-picker-column', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"picker-container\" [ngClass]=\"{'picker-divider':divider}\">\n <div class=\"picker-scrollbar picker-time-spinner-wrapper\">\n <div class=\"picker-scrollbar-wrap\">\n <div class=\"picker-time-spinner-list\">\n <div class=\"picker-time-spinner-item\">\n <ng-content></ng-content>\n </div>\n </div>\n </div>\n </div>\n</div>", styles: [".picker-container{width:100%;white-space:nowrap}.picker-container.picker-divider{border-right:solid 1px rgba(var(--ax-color-border-default))}.picker-container .picker-scrollbar{position:relative;height:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper{max-height:200px;display:inline-block;vertical-align:top;width:100%;position:relative}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap{max-height:inherit;overflow-y:hidden;height:100%;scroll-snap-type:y mandatory;overscroll-behavior-y:contain;scrollbar-gutter:stable both-edges}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap::-webkit-scrollbar{width:2px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{scrollbar-gutter:stable both-edges;overflow:scroll}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:initial;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary));color:rgba(var(--ax-color-primary-fore));border-radius:8px}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap:hover{overflow:scroll;height:100vh;overscroll-behavior:inherit;z-index:-1}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list{scroll-snap-type:y mandatory;overscroll-behavior-y:contain;list-style:none;text-align:center}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list:before{content:\"\";display:block;width:100%}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item{scroll-snap-align:center;line-height:40px;cursor:pointer}.picker-container .picker-scrollbar.picker-time-spinner-wrapper .picker-scrollbar-wrap .picker-time-spinner-list .picker-time-spinner-item.ax-state-active{background-color:rgba(var(--ax-color-primary-500));color:rgba(var(--ax-color-primary-fore));border-radius:8px}\n"] }]
18
18
  }], propDecorators: { divider: [{
19
19
  type: Input
20
20
  }] } });
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
7
7
  */
8
8
  class AXPickerComponent {
9
9
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXPickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXPickerComponent, selector: "ax-picker", ngImport: i0, template: "<div class=\"picker-container\">\n <ng-content select=\"ax-picker-column\"></ng-content>\n</div>", styles: [".picker-container{display:flex;justify-content:space-between}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
10
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXPickerComponent, selector: "ax-picker", ngImport: i0, template: "<div class=\"picker-container\">\n <ng-content select=\"ax-picker-column\"></ng-content>\n</div>", styles: [".picker-container{display:flex;justify-content:space-between;align-items:center}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
11
  }
12
12
  export { AXPickerComponent };
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXPickerComponent, decorators: [{
14
14
  type: Component,
15
- args: [{ selector: 'ax-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"picker-container\">\n <ng-content select=\"ax-picker-column\"></ng-content>\n</div>", styles: [".picker-container{display:flex;justify-content:space-between}\n"] }]
15
+ args: [{ selector: 'ax-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"picker-container\">\n <ng-content select=\"ax-picker-column\"></ng-content>\n</div>", styles: [".picker-container{display:flex;justify-content:space-between;align-items:center}\n"] }]
16
16
  }] });
17
17
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3BpY2tlci9zcmMvcGlja2VyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL3BpY2tlci9zcmMvcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsdUJBQXVCLEVBQ3ZCLGlCQUFpQixHQUVwQixNQUFNLGVBQWUsQ0FBQzs7QUFFdkI7Ozs7R0FJRztBQUNILE1BT2EsaUJBQWlCO3VHQUFqQixpQkFBaUI7MkZBQWpCLGlCQUFpQixpRENwQjlCLHFHQUVNOztTRGtCTyxpQkFBaUI7MkZBQWpCLGlCQUFpQjtrQkFQN0IsU0FBUzsrQkFDSSxXQUFXLG1CQUdKLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJcbmltcG9ydCB7XG4gICAgQ29tcG9uZW50LFxuICAgIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICAgIFZpZXdFbmNhcHN1bGF0aW9uLFxuICAgIElucHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdheC1waWNrZXInLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL3BpY2tlci5jb21wb25lbnQuc2NzcyddLFxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYUGlja2VyQ29tcG9uZW50IHtcblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwicGlja2VyLWNvbnRhaW5lclwiPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXBpY2tlci1jb2x1bW5cIj48L25nLWNvbnRlbnQ+XG48L2Rpdj4iXX0=