@acorex/components 16.18.24 → 16.18.26

Sign up to get free protection for your applications and to get access to all the features.
@@ -17,52 +17,39 @@ export class AXFormGroupComponent extends AXBaseComponent {
17
17
  if (this.required) {
18
18
  this.div.nativeElement.classList.add('required-state');
19
19
  }
20
- const input = this.component.ref.nativeElement.querySelector('input');
21
- const textArea = this.component.ref.nativeElement.querySelector('textarea');
22
- if (input) {
23
- input.addEventListener('focus', this.handleFocus.bind(this));
24
- input.addEventListener('blur', this.handeleBlur.bind(this));
25
- }
26
- if (textArea) {
27
- textArea.addEventListener('focus', this.handleFocus.bind(this));
28
- textArea.addEventListener('blur', this.handeleBlur.bind(this));
29
- }
30
- if ((this.component.value ||
31
- this.component.selectedItems?.length > 0) &&
32
- this.labelMode() === 'float') {
20
+ if (this.component.value ||
21
+ (this.component.selectedItems?.length > 0 &&
22
+ this.labelMode() === 'float')) {
33
23
  this.labelMode.set('over');
34
- this.isFloatActive.set(true);
35
24
  }
36
- });
37
- handleFocus() {
38
- if (this.labelMode() === 'float') {
39
- this.isFloatActive.set(true);
40
- this.labelMode.set('over');
25
+ if (this.component.name === 'selectBox') {
26
+ const selectBox = this.component;
27
+ selectBox.selectedItemsChange.subscribe((e) => {
28
+ if (e.length > 0) {
29
+ this.labelMode.set('over');
30
+ }
31
+ else {
32
+ this.labelMode.set('float');
33
+ }
34
+ });
41
35
  }
42
- }
43
- handeleBlur() {
44
- if ((this.component.value ||
45
- this.component.selectedItems?.length > 0) &&
46
- this.isFloatActive()) {
47
- this.labelMode.set('over');
48
- }
49
- else if ((!this.component.value ||
50
- this.component.selectedItems?.length === 0) &&
51
- this.isFloatActive()) {
52
- this.labelMode.set('float');
53
- this.isFloatActive.set(false);
36
+ else {
37
+ this.component.onValueChanged.subscribe((e) => {
38
+ if (e.value) {
39
+ this.labelMode.set('over');
40
+ }
41
+ else {
42
+ this.labelMode.set('float');
43
+ }
44
+ });
54
45
  }
55
- }
56
- ngOnDestroy() {
57
- removeEventListener('focus', this.handleFocus);
58
- removeEventListener('blur', this.handeleBlur);
59
- }
46
+ });
60
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFormGroupComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
61
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.7", type: AXFormGroupComponent, selector: "ax-form-group", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { labelMode: "labelModeChange" }, host: { styleAttribute: "width: 100%; display:contents;" }, queries: [{ propertyName: "component", first: true, predicate: AXValidatableComponent, descendants: true }], viewQueries: [{ propertyName: "div", first: true, predicate: ["div"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-group {{ size }} ax-form-group-container\">\n <div class=\"ax-lable-{{ labelMode() }}\">\n <ng-content select=\"ax-label\"></ng-content>\n </div>\n <div\n #div\n class=\"ax form-item {{ size }}\"\n [ngClass]=\"{ 'required-state': required }\"\n >\n <div class=\"ax buttons start-buttons\" #startButtons>\n <ng-content select=\"ax-button[start]\"></ng-content>\n </div>\n <div\n class=\"content {{ labelMode() === 'over' && 'ax-over-apply' }}\"\n #content\n >\n <ng-content></ng-content>\n </div>\n <div class=\"ax buttons end-buttons\" #endButtons>\n <ng-content select=\"ax-button[end]\"></ng-content>\n <ng-content select=\"ax-button\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".ax-form-group-container{position:relative}.ax-form-group-container .ax-lable-static{position:static}.ax-form-group-container .ax-lable-float{top:50%;transform:translateY(-50%)}.ax-form-group-container .ax-lable-over{top:0}.ax-form-group-container .ax-lable-over,.ax-form-group-container .ax-lable-float{position:absolute;z-index:999;transition:all .15s ease-in-out;inset-inline-start:.3rem}.ax-form-group-container .ax-lable-over .form-group-label,.ax-form-group-container .ax-lable-float .form-group-label{padding:.1rem .5rem!important;font-size:.7rem!important}.ax-form-group-container .content.ax-over-apply{padding:.25rem 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.0.7", type: AXFormGroupComponent, selector: "ax-form-group", inputs: { size: { classPropertyName: "size", publicName: "size", isSignal: false, isRequired: false, transformFunction: null }, labelMode: { classPropertyName: "labelMode", publicName: "labelMode", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { labelMode: "labelModeChange" }, host: { styleAttribute: "width: 100%; display:contents;" }, queries: [{ propertyName: "component", first: true, predicate: AXValidatableComponent, descendants: true }], viewQueries: [{ propertyName: "div", first: true, predicate: ["div"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax form-group {{ size }} ax-form-group-container\">\n <div class=\"ax-lable-{{ labelMode() }}\">\n <ng-content select=\"ax-label\"></ng-content>\n </div>\n <div\n #div\n class=\"ax form-item {{ size }}\"\n [ngClass]=\"{ 'required-state': required }\"\n >\n <div class=\"ax buttons start-buttons\" #startButtons>\n <ng-content select=\"ax-button[start]\"></ng-content>\n </div>\n <div\n class=\"content {{ labelMode() === 'over' && 'ax-over-apply' }}\"\n #content\n >\n <ng-content></ng-content>\n </div>\n <div class=\"ax buttons end-buttons\" #endButtons>\n <ng-content select=\"ax-button[end]\"></ng-content>\n <ng-content select=\"ax-button\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".ax-form-group-container{position:relative}.ax-form-group-container .ax-lable-static{position:static}.ax-form-group-container .ax-lable-float{top:50%;transform:translateY(-50%)}.ax-form-group-container .ax-lable-over{top:7%}.ax-form-group-container .ax-lable-over,.ax-form-group-container .ax-lable-float{position:absolute;z-index:999;transition:all .15s ease-in-out;inset-inline-start:.3rem}.ax-form-group-container .ax-lable-over .form-group-label,.ax-form-group-container .ax-lable-float .form-group-label{padding:.1rem .5rem!important;font-size:.7rem!important}.ax-form-group-container .content.ax-over-apply{padding:.8rem 0 0}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
62
49
  }
63
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImport: i0, type: AXFormGroupComponent, decorators: [{
64
51
  type: Component,
65
- args: [{ selector: 'ax-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%; display:contents;' }, template: "<div class=\"ax form-group {{ size }} ax-form-group-container\">\n <div class=\"ax-lable-{{ labelMode() }}\">\n <ng-content select=\"ax-label\"></ng-content>\n </div>\n <div\n #div\n class=\"ax form-item {{ size }}\"\n [ngClass]=\"{ 'required-state': required }\"\n >\n <div class=\"ax buttons start-buttons\" #startButtons>\n <ng-content select=\"ax-button[start]\"></ng-content>\n </div>\n <div\n class=\"content {{ labelMode() === 'over' && 'ax-over-apply' }}\"\n #content\n >\n <ng-content></ng-content>\n </div>\n <div class=\"ax buttons end-buttons\" #endButtons>\n <ng-content select=\"ax-button[end]\"></ng-content>\n <ng-content select=\"ax-button\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".ax-form-group-container{position:relative}.ax-form-group-container .ax-lable-static{position:static}.ax-form-group-container .ax-lable-float{top:50%;transform:translateY(-50%)}.ax-form-group-container .ax-lable-over{top:0}.ax-form-group-container .ax-lable-over,.ax-form-group-container .ax-lable-float{position:absolute;z-index:999;transition:all .15s ease-in-out;inset-inline-start:.3rem}.ax-form-group-container .ax-lable-over .form-group-label,.ax-form-group-container .ax-lable-float .form-group-label{padding:.1rem .5rem!important;font-size:.7rem!important}.ax-form-group-container .content.ax-over-apply{padding:.25rem 0 0}\n"] }]
52
+ args: [{ selector: 'ax-form-group', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, host: { style: 'width: 100%; display:contents;' }, template: "<div class=\"ax form-group {{ size }} ax-form-group-container\">\n <div class=\"ax-lable-{{ labelMode() }}\">\n <ng-content select=\"ax-label\"></ng-content>\n </div>\n <div\n #div\n class=\"ax form-item {{ size }}\"\n [ngClass]=\"{ 'required-state': required }\"\n >\n <div class=\"ax buttons start-buttons\" #startButtons>\n <ng-content select=\"ax-button[start]\"></ng-content>\n </div>\n <div\n class=\"content {{ labelMode() === 'over' && 'ax-over-apply' }}\"\n #content\n >\n <ng-content></ng-content>\n </div>\n <div class=\"ax buttons end-buttons\" #endButtons>\n <ng-content select=\"ax-button[end]\"></ng-content>\n <ng-content select=\"ax-button\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".ax-form-group-container{position:relative}.ax-form-group-container .ax-lable-static{position:static}.ax-form-group-container .ax-lable-float{top:50%;transform:translateY(-50%)}.ax-form-group-container .ax-lable-over{top:7%}.ax-form-group-container .ax-lable-over,.ax-form-group-container .ax-lable-float{position:absolute;z-index:999;transition:all .15s ease-in-out;inset-inline-start:.3rem}.ax-form-group-container .ax-lable-over .form-group-label,.ax-form-group-container .ax-lable-float .form-group-label{padding:.1rem .5rem!important;font-size:.7rem!important}.ax-form-group-container .content.ax-over-apply{padding:.8rem 0 0}\n"] }]
66
53
  }], propDecorators: { size: [{
67
54
  type: Input
68
55
  }], div: [{
@@ -72,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.7", ngImpor
72
59
  type: ContentChild,
73
60
  args: [AXValidatableComponent]
74
61
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBR2Ysc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7OztBQVUvQixNQUFNLE9BQU8sb0JBQ1gsU0FBUSxlQUFlO0lBR3ZCLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUdoQyxJQUFJLEdBQWtCLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUd6RCxHQUFHLENBQWE7SUFHUixTQUFTLENBQXlCO0lBRTFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFFbkQsU0FBUyxHQUFHLEtBQUssQ0FDZixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsSUFBSSxRQUFRLENBQzVDLENBQUM7SUFFUSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLFdB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Q0FBQyxPQUFPLENBQUMsQ0FBQztZQUM1QixJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxtQkFBbUIsQ0FBQyxPQUFPLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBQy9DLG1CQUFtQixDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEQsQ0FBQzt1R0FyRlUsb0JBQW9COzJGQUFwQixvQkFBb0IseWNBWWpCLHNCQUFzQixtS0MzQ3RDLGt3QkF3QkE7OzJGRE9hLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsZ0NBQWdDLEVBQUU7OEJBU2pELElBQUk7c0JBREgsS0FBSztnQkFJTixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSztnQkFJUixTQUFTO3NCQURoQixZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGFmdGVyTmV4dFJlbmRlcixcbiAgaW5qZWN0LFxuICBtb2RlbCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7XG4gIEFYQmFzZUNvbXBvbmVudCxcbiAgQVhCYXNlU2l6YWJsZUNvbXBvbmVudCxcbiAgQVhFbGVtZW50U2l6ZSxcbiAgQVhWYWxpZGF0YWJsZUNvbXBvbmVudCxcbn0gZnJvbSAnLi4vYmFzZS9lbGVtZW50LmNsYXNzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZm9ybS1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBzdHlsZTogJ3dpZHRoOiAxMDAlOyBkaXNwbGF5OmNvbnRlbnRzOycgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhGb3JtR3JvdXBDb21wb25lbnRcbiAgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50LCBPbkRlc3Ryb3lcbntcbiAgY3JkID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICBASW5wdXQoKVxuICBzaXplOiBBWEVsZW1lbnRTaXplID0gQVhDb25maWcuZ2V0KCdmb3JtJyk/LnNpemUgfHwgJ21kJztcblxuICBAVmlld0NoaWxkKCdkaXYnKVxuICBkaXY6IEVsZW1lbnRSZWY7XG5cbiAgQENvbnRlbnRDaGlsZChBWFZhbGlkYXRhYmxlQ29tcG9uZW50KVxuICBwcml2YXRlIGNvbXBvbmVudDogQVhWYWxpZGF0YWJsZUNvbXBvbmVudDtcblxuICByZXF1aXJlZCA9IEFYQ29uZmlnLmdldCgnZm9ybScpPy5yZXF1aXJlZCB8fCBmYWxzZTtcblxuICBsYWJlbE1vZGUgPSBtb2RlbDwnc3RhdGljJyB8ICdmbG9hdCcgfCAnb3Zlcic+KFxuICAgIEFYQ29uZmlnLmdldCgnZm9ybScpPy5sYWJlbE1vZGUgfHwgJ3N0YXRpYydcbiAgKTtcblxuICBwcm90ZWN0ZWQgaXNGbG9hdEFjdGl2ZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgI25leHRSZW5kZXIgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgIHRoaXMucmVxdWlyZWQgPSB0aGlzLmNvbXBvbmVudD8udmFsaWRhdGlvbj8ucnVsZXM/LnNvbWUoXG4gICAgICAoYykgPT4gYy50eXBlID09PSAncmVxdWlyZWQnXG4gICAgKTtcbiAgICB0aGlzLmRpdi5uYXRpdmVFbGVtZW50LmNsYXNzTGlzdC5hZGQodGhpcy5zaXplKTtcbiAgICBpZiAodGhpcy5yZXF1aXJlZCkge1xuICAgICAgdGhpcy5kaXYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKCdyZXF1aXJlZC1zdGF0ZScpO1xuICAgIH1cblxuICAgIGNvbnN0IGlucHV0ID0gKHRoaXMuY29tcG9uZW50IGFzIGFueSkucmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICdpbnB1dCdcbiAgICApO1xuICAgIGNvbnN0IHRleHRBcmVhID0gKHRoaXMuY29tcG9uZW50IGFzIGFueSkucmVmLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICd0ZXh0YXJlYSdcbiAgICApO1xuXG4gICAgaWYgKGlucHV0KSB7XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuaGFuZGxlRm9jdXMuYmluZCh0aGlzKSk7XG4gICAgICBpbnB1dC5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5oYW5kZWxlQmx1ci5iaW5kKHRoaXMpKTtcbiAgICB9XG4gICAgaWYgKHRleHRBcmVhKSB7XG4gICAgICB0ZXh0QXJlYS5hZGRFdmVudExpc3RlbmVyKCdmb2N1cycsIHRoaXMuaGFuZGxlRm9jdXMuYmluZCh0aGlzKSk7XG4gICAgICB0ZXh0QXJlYS5hZGRFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5oYW5kZWxlQmx1ci5iaW5kKHRoaXMpKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAoKHRoaXMuY29tcG9uZW50IGFzIGFueSkudmFsdWUgfHxcbiAgICAgICAgKHRoaXMuY29tcG9uZW50IGFzIGFueSkuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMCkgJiZcbiAgICAgIHRoaXMubGFiZWxNb2RlKCkgPT09ICdmbG9hdCdcbiAgICApIHtcbiAgICAgIHRoaXMubGFiZWxNb2RlLnNldCgnb3ZlcicpO1xuICAgICAgdGhpcy5pc0Zsb2F0QWN0aXZlLnNldCh0cnVlKTtcbiAgICB9XG4gIH0pO1xuXG4gIHByb3RlY3RlZCBoYW5kbGVGb2N1cygpIHtcbiAgICBpZiAodGhpcy5sYWJlbE1vZGUoKSA9PT0gJ2Zsb2F0Jykge1xuICAgICAgdGhpcy5pc0Zsb2F0QWN0aXZlLnNldCh0cnVlKTtcbiAgICAgIHRoaXMubGFiZWxNb2RlLnNldCgnb3ZlcicpO1xuICAgIH1cbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kZWxlQmx1cigpIHtcbiAgICBpZiAoXG4gICAgICAoKHRoaXMuY29tcG9uZW50IGFzIGFueSkudmFsdWUgfHxcbiAgICAgICAgKHRoaXMuY29tcG9uZW50IGFzIGFueSkuc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoID4gMCkgJiZcbiAgICAgIHRoaXMuaXNGbG9hdEFjdGl2ZSgpXG4gICAgKSB7XG4gICAgICB0aGlzLmxhYmVsTW9kZS5zZXQoJ292ZXInKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgKCEodGhpcy5jb21wb25lbnQgYXMgYW55KS52YWx1ZSB8fFxuICAgICAgICAodGhpcy5jb21wb25lbnQgYXMgYW55KS5zZWxlY3RlZEl0ZW1zPy5sZW5ndGggPT09IDApICYmXG4gICAgICB0aGlzLmlzRmxvYXRBY3RpdmUoKVxuICAgICkge1xuICAgICAgdGhpcy5sYWJlbE1vZGUuc2V0KCdmbG9hdCcpO1xuICAgICAgdGhpcy5pc0Zsb2F0QWN0aXZlLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgcmVtb3ZlRXZlbnRMaXN0ZW5lcignZm9jdXMnLCB0aGlzLmhhbmRsZUZvY3VzKTtcbiAgICByZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5oYW5kZWxlQmx1cik7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheCBmb3JtLWdyb3VwIHt7IHNpemUgfX0gYXgtZm9ybS1ncm91cC1jb250YWluZXJcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWxhYmxlLXt7IGxhYmVsTW9kZSgpIH19XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtbGFiZWxcIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuICA8ZGl2XG4gICAgI2RpdlxuICAgIGNsYXNzPVwiYXggZm9ybS1pdGVtIHt7IHNpemUgfX1cIlxuICAgIFtuZ0NsYXNzXT1cInsgJ3JlcXVpcmVkLXN0YXRlJzogcmVxdWlyZWQgfVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiYXggYnV0dG9ucyBzdGFydC1idXR0b25zXCIgI3N0YXJ0QnV0dG9ucz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWJ1dHRvbltzdGFydF1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJjb250ZW50IHt7IGxhYmVsTW9kZSgpID09PSAnb3ZlcicgJiYgJ2F4LW92ZXItYXBwbHknIH19XCJcbiAgICAgICNjb250ZW50XG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJheCBidXR0b25zIGVuZC1idXR0b25zXCIgI2VuZEJ1dHRvbnM+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1idXR0b25bZW5kXVwiPjwvbmctY29udGVudD5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1ncm91cC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc3JjL2xpYi9mb3JtLWdyb3VwL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NyYy9saWIvZm9ybS1ncm91cC9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDeEMsT0FBTyxFQUNMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsZUFBZSxFQUNmLE1BQU0sRUFDTixLQUFLLEVBQ0wsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFDTCxlQUFlLEVBR2Ysc0JBQXNCLEdBQ3ZCLE1BQU0sdUJBQXVCLENBQUM7OztBQVcvQixNQUFNLE9BQU8sb0JBQ1gsU0FBUSxlQUFlO0lBR3ZCLEdBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUdoQyxJQUFJLEdBQWtCLFFBQVEsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsSUFBSSxJQUFJLElBQUksQ0FBQztJQUd6RCxHQUFHLENBQWE7SUFHUixTQUFTLENBQXlCO0lBRTFDLFFBQVEsR0FBRyxRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUM7SUFFbkQsU0FBUyxHQUFHLEtBQUssQ0FDZixRQUFRLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLFNBQVMsSUFBSSxRQUFRLENBQzVDLENBQUM7SUFFUSxhQUFhLEdBQUcsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRXhDLFdBQVcsR0FBRyxlQUFlLENBQUMsR0FBRyxFQUFFO1FBQ2pDLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FDckQsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssVUFBVSxDQUM3QixDQUFDO1FBQ0YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3pELENBQUM7UUFFRCxJQUNHLElBQUksQ0FBQyxTQUFpQixDQUFDLEtBQUs7WUFDN0IsQ0FBRSxJQUFJLENBQUMsU0FBaUIsQ0FBQyxhQUFhLEVBQUUsTUFBTSxHQUFHLENBQUM7Z0JBQ2hELElBQUksQ0FBQyxTQUFTLEVBQUUsS0FBSyxPQUFPLENBQUMsRUFDL0IsQ0FBQztZQUNELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzdCLENBQUM7UUFFRCxJQUFLLElBQUksQ0FBQyxTQUFpQixDQUFDLElBQUksS0FBSyxXQUFXLEVBQUUsQ0FBQztZQUNqRCxNQUFNLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBaUMsQ0FBQztZQUN6RCxTQUFTLENBQUMsbUJBQW1CLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7Z0JBQzVDLElBQUksQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQzdCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDOUIsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQzthQUFNLENBQUM7WUFDTCxJQUFJLENBQUMsU0FBaUIsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBTSxFQUFFLEVBQUU7Z0JBQzFELElBQUksQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO2dCQUM3QixDQUFDO3FCQUFNLENBQUM7b0JBQ04sSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQzlCLENBQUM7WUFDSCxDQUFDLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDLENBQUMsQ0FBQzt1R0ExRFEsb0JBQW9COzJGQUFwQixvQkFBb0IseWNBWWpCLHNCQUFzQixtS0MzQ3RDLGt3QkF3QkE7OzJGRE9hLG9CQUFvQjtrQkFSaEMsU0FBUzsrQkFDRSxlQUFlLGlCQUdWLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0sUUFDekMsRUFBRSxLQUFLLEVBQUUsZ0NBQWdDLEVBQUU7OEJBU2pELElBQUk7c0JBREgsS0FBSztnQkFJTixHQUFHO3NCQURGLFNBQVM7dUJBQUMsS0FBSztnQkFJUixTQUFTO3NCQURoQixZQUFZO3VCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIElucHV0LFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGluamVjdCxcbiAgbW9kZWwsXG4gIHNpZ25hbCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBBWEJhc2VDb21wb25lbnQsXG4gIEFYQmFzZVNpemFibGVDb21wb25lbnQsXG4gIEFYRWxlbWVudFNpemUsXG4gIEFYVmFsaWRhdGFibGVDb21wb25lbnQsXG59IGZyb20gJy4uL2Jhc2UvZWxlbWVudC5jbGFzcyc7XG5pbXBvcnQgeyBBWFNlbGVjdEJveENvbXBvbmVudCB9IGZyb20gJy4uL3NlbGVjdGJveC9zZWxlY3Rib3guY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtZm9ybS1ncm91cCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9mb3JtLWdyb3VwLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL2Zvcm0tZ3JvdXAuY29tcG9uZW50LnNjc3MnLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgaG9zdDogeyBzdHlsZTogJ3dpZHRoOiAxMDAlOyBkaXNwbGF5OmNvbnRlbnRzOycgfSxcbn0pXG5leHBvcnQgY2xhc3MgQVhGb3JtR3JvdXBDb21wb25lbnRcbiAgZXh0ZW5kcyBBWEJhc2VDb21wb25lbnRcbiAgaW1wbGVtZW50cyBBWEJhc2VTaXphYmxlQ29tcG9uZW50XG57XG4gIGNyZCA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgQElucHV0KClcbiAgc2l6ZTogQVhFbGVtZW50U2l6ZSA9IEFYQ29uZmlnLmdldCgnZm9ybScpPy5zaXplIHx8ICdtZCc7XG5cbiAgQFZpZXdDaGlsZCgnZGl2JylcbiAgZGl2OiBFbGVtZW50UmVmO1xuXG4gIEBDb250ZW50Q2hpbGQoQVhWYWxpZGF0YWJsZUNvbXBvbmVudClcbiAgcHJpdmF0ZSBjb21wb25lbnQ6IEFYVmFsaWRhdGFibGVDb21wb25lbnQ7XG5cbiAgcmVxdWlyZWQgPSBBWENvbmZpZy5nZXQoJ2Zvcm0nKT8ucmVxdWlyZWQgfHwgZmFsc2U7XG5cbiAgbGFiZWxNb2RlID0gbW9kZWw8J3N0YXRpYycgfCAnZmxvYXQnIHwgJ292ZXInPihcbiAgICBBWENvbmZpZy5nZXQoJ2Zvcm0nKT8ubGFiZWxNb2RlIHx8ICdzdGF0aWMnXG4gICk7XG5cbiAgcHJvdGVjdGVkIGlzRmxvYXRBY3RpdmUgPSBzaWduYWwoZmFsc2UpO1xuXG4gICNuZXh0UmVuZGVyID0gYWZ0ZXJOZXh0UmVuZGVyKCgpID0+IHtcbiAgICB0aGlzLnJlcXVpcmVkID0gdGhpcy5jb21wb25lbnQ/LnZhbGlkYXRpb24/LnJ1bGVzPy5zb21lKFxuICAgICAgKGMpID0+IGMudHlwZSA9PT0gJ3JlcXVpcmVkJ1xuICAgICk7XG4gICAgdGhpcy5kaXYubmF0aXZlRWxlbWVudC5jbGFzc0xpc3QuYWRkKHRoaXMuc2l6ZSk7XG4gICAgaWYgKHRoaXMucmVxdWlyZWQpIHtcbiAgICAgIHRoaXMuZGl2Lm5hdGl2ZUVsZW1lbnQuY2xhc3NMaXN0LmFkZCgncmVxdWlyZWQtc3RhdGUnKTtcbiAgICB9XG5cbiAgICBpZiAoXG4gICAgICAodGhpcy5jb21wb25lbnQgYXMgYW55KS52YWx1ZSB8fFxuICAgICAgKCh0aGlzLmNvbXBvbmVudCBhcyBhbnkpLnNlbGVjdGVkSXRlbXM/Lmxlbmd0aCA+IDAgJiZcbiAgICAgICAgdGhpcy5sYWJlbE1vZGUoKSA9PT0gJ2Zsb2F0JylcbiAgICApIHtcbiAgICAgIHRoaXMubGFiZWxNb2RlLnNldCgnb3ZlcicpO1xuICAgIH1cblxuICAgIGlmICgodGhpcy5jb21wb25lbnQgYXMgYW55KS5uYW1lID09PSAnc2VsZWN0Qm94Jykge1xuICAgICAgY29uc3Qgc2VsZWN0Qm94ID0gdGhpcy5jb21wb25lbnQgYXMgQVhTZWxlY3RCb3hDb21wb25lbnQ7XG4gICAgICBzZWxlY3RCb3guc2VsZWN0ZWRJdGVtc0NoYW5nZS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgICAgaWYgKGUubGVuZ3RoID4gMCkge1xuICAgICAgICAgIHRoaXMubGFiZWxNb2RlLnNldCgnb3ZlcicpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMubGFiZWxNb2RlLnNldCgnZmxvYXQnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICh0aGlzLmNvbXBvbmVudCBhcyBhbnkpLm9uVmFsdWVDaGFuZ2VkLnN1YnNjcmliZSgoZTogYW55KSA9PiB7XG4gICAgICAgIGlmIChlLnZhbHVlKSB7XG4gICAgICAgICAgdGhpcy5sYWJlbE1vZGUuc2V0KCdvdmVyJyk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5sYWJlbE1vZGUuc2V0KCdmbG9hdCcpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH0pO1xufVxuIiwiPGRpdiBjbGFzcz1cImF4IGZvcm0tZ3JvdXAge3sgc2l6ZSB9fSBheC1mb3JtLWdyb3VwLWNvbnRhaW5lclwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtbGFibGUte3sgbGFiZWxNb2RlKCkgfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1sYWJlbFwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG4gIDxkaXZcbiAgICAjZGl2XG4gICAgY2xhc3M9XCJheCBmb3JtLWl0ZW0ge3sgc2l6ZSB9fVwiXG4gICAgW25nQ2xhc3NdPVwieyAncmVxdWlyZWQtc3RhdGUnOiByZXF1aXJlZCB9XCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJheCBidXR0b25zIHN0YXJ0LWJ1dHRvbnNcIiAjc3RhcnRCdXR0b25zPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uW3N0YXJ0XVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImNvbnRlbnQge3sgbGFiZWxNb2RlKCkgPT09ICdvdmVyJyAmJiAnYXgtb3Zlci1hcHBseScgfX1cIlxuICAgICAgI2NvbnRlbnRcbiAgICA+XG4gICAgICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cImF4IGJ1dHRvbnMgZW5kLWJ1dHRvbnNcIiAjZW5kQnV0dG9ucz5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWJ1dHRvbltlbmRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19