@seniorsistemas/angular-components 17.31.0 → 17.31.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,10 +1,9 @@
1
- import { AfterContentChecked, AfterViewInit, ElementRef, EventEmitter, QueryList } from "@angular/core";
1
+ import { AfterContentChecked, EventEmitter, QueryList } from "@angular/core";
2
2
  import { BorderButtonOptions } from "../shared/models/border-button-options";
3
3
  import { EnumSeverity } from "../shared/models/enum-severity";
4
4
  import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
5
5
  import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
6
- export declare class ObjectCardComponent implements AfterViewInit, AfterContentChecked {
7
- private elementRef;
6
+ export declare class ObjectCardComponent implements AfterContentChecked {
8
7
  static nextId: number;
9
8
  id: string;
10
9
  expanded: boolean;
@@ -18,12 +17,12 @@ export declare class ObjectCardComponent implements AfterViewInit, AfterContentC
18
17
  severity: EnumSeverity;
19
18
  borderButtonOptions: BorderButtonOptions;
20
19
  readonly EnumSeverity: typeof EnumSeverity;
21
- constructor(elementRef: ElementRef);
22
- ngAfterViewInit(): void;
20
+ private readonly container;
21
+ private readonly cardMainContainer;
22
+ private readonly iconContainer;
23
23
  ngAfterContentChecked(): void;
24
24
  private update;
25
25
  toggle(): void;
26
26
  expand(): void;
27
27
  collapse(): void;
28
- getExpandedFieldWidth(): number;
29
28
  }
@@ -1,10 +1,10 @@
1
1
  export declare const Breakpoints: {
2
- SM_MIN: number;
3
- SM_MAX: number;
4
- MD_MIN: number;
5
- MD_MAX: number;
6
- LG_MIN: number;
7
- LG_MAX: number;
8
- XL_MIN: number;
2
+ SM_MIN: 0;
3
+ SM_MAX: 767;
4
+ MD_MIN: 768;
5
+ MD_MAX: 991;
6
+ LG_MIN: 992;
7
+ LG_MAX: 1199;
8
+ XL_MIN: 1200;
9
9
  XL_MAX: number;
10
10
  };
@@ -1,14 +1,13 @@
1
1
  var ObjectCardComponent_1;
2
2
  import { __decorate } from "tslib";
3
3
  import { animate, state, style, transition, trigger } from "@angular/animations";
4
- import { AfterContentChecked, AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList } from "@angular/core";
4
+ import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild } from "@angular/core";
5
5
  import { EnumSeverity } from "../shared/models/enum-severity";
6
6
  import { Breakpoints } from "../utils/breakpoints";
7
7
  import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
8
8
  import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
9
9
  let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
10
- constructor(elementRef) {
11
- this.elementRef = elementRef;
10
+ constructor() {
12
11
  this.id = `s-object-card-${ObjectCardComponent_1.nextId++}`;
13
12
  this.expanded = false;
14
13
  this.expandTooltip = "Abrir painel";
@@ -19,32 +18,36 @@ let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
19
18
  this.severity = EnumSeverity.Default;
20
19
  this.EnumSeverity = EnumSeverity;
21
20
  }
22
- ngAfterViewInit() {
23
- }
24
21
  ngAfterContentChecked() {
25
22
  this.update();
26
23
  }
27
24
  update() {
28
25
  const windowWidth = window.innerWidth;
29
- const containerWidth = this.elementRef.nativeElement.offsetWidth;
30
- const mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;
26
+ const containerWidth = this.container.nativeElement.getBoundingClientRect().width;
27
+ const mainFieldWidth = this.cardMainContainer.nativeElement.getBoundingClientRect().width;
28
+ let remainingSpace = containerWidth - mainFieldWidth;
31
29
  const fieldsMinWidth = this.fieldsMinWidth;
32
- const expandIconWidth = 50;
33
- const fieldElementList = this.elementRef.nativeElement.getElementsByClassName("s-object-card-field");
34
- for (const element of fieldElementList) {
35
- element.style.minWidth = `${this.fieldsMinWidth}px`;
36
- }
30
+ const expandIconWidth = this.iconContainer.nativeElement.getBoundingClientRect().width;
37
31
  let maxFieldQtd;
38
- if (windowWidth <= Breakpoints.SM_MAX)
32
+ if (windowWidth <= Breakpoints.SM_MAX) {
39
33
  maxFieldQtd = 0;
40
- else
41
- maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);
42
- if (maxFieldQtd && maxFieldQtd < this.fields.length) {
43
- maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);
34
+ }
35
+ else {
36
+ maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
37
+ }
38
+ const hasExpandIcon = maxFieldQtd && maxFieldQtd < this.fields.length;
39
+ if (hasExpandIcon) {
40
+ this.iconContainer.nativeElement.style.display = 'flex';
41
+ remainingSpace = remainingSpace - expandIconWidth;
42
+ maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
43
+ }
44
+ else {
45
+ this.iconContainer.nativeElement.style.display = 'none';
44
46
  }
45
47
  this.maxVisibleFields = maxFieldQtd;
46
- if (maxFieldQtd >= this.fields.length && this.expanded)
48
+ if (maxFieldQtd >= this.fields.length && this.expanded) {
47
49
  this.collapse();
50
+ }
48
51
  }
49
52
  toggle() {
50
53
  this.expanded ? this.collapse() : this.expand();
@@ -57,24 +60,8 @@ let ObjectCardComponent = ObjectCardComponent_1 = class ObjectCardComponent {
57
60
  this.expanded = false;
58
61
  this.expandedChange.emit(this.expanded);
59
62
  }
60
- getExpandedFieldWidth() {
61
- const containerWidth = this.elementRef.nativeElement.offsetWidth;
62
- let fieldsPerRow;
63
- if (containerWidth <= Breakpoints.SM_MAX)
64
- fieldsPerRow = 1;
65
- else if (containerWidth <= Breakpoints.MD_MAX)
66
- fieldsPerRow = 2;
67
- else if (containerWidth <= Breakpoints.LG_MAX)
68
- fieldsPerRow = 4;
69
- else
70
- fieldsPerRow = 6;
71
- return 12 / fieldsPerRow;
72
- }
73
63
  };
74
64
  ObjectCardComponent.nextId = 0;
75
- ObjectCardComponent.ctorParameters = () => [
76
- { type: ElementRef }
77
- ];
78
65
  __decorate([
79
66
  Input()
80
67
  ], ObjectCardComponent.prototype, "id", void 0);
@@ -105,10 +92,19 @@ __decorate([
105
92
  __decorate([
106
93
  Input()
107
94
  ], ObjectCardComponent.prototype, "borderButtonOptions", void 0);
95
+ __decorate([
96
+ ViewChild('contentContainer', { static: true })
97
+ ], ObjectCardComponent.prototype, "container", void 0);
98
+ __decorate([
99
+ ViewChild('cardMainContainer', { static: true })
100
+ ], ObjectCardComponent.prototype, "cardMainContainer", void 0);
101
+ __decorate([
102
+ ViewChild('iconContainer', { static: true })
103
+ ], ObjectCardComponent.prototype, "iconContainer", void 0);
108
104
  ObjectCardComponent = ObjectCardComponent_1 = __decorate([
109
105
  Component({
110
106
  selector: "s-object-card",
111
- template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\"><ng-content select=\"s-object-card-main\"></ng-content></div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\" class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n >\n <span [id]=\"id + '-expand-icon'\" class=\"expand-icon fa\" [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"ui-g ui-g-12\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"ui-g-{{ getExpandedFieldWidth() }}\">\n <div class=\"s-object-card-field\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
107
+ template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\" #cardMainContainer [style.min-width.px]=\"fieldsMinWidth\">\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\" class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n \n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <div\n #iconContainer\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n >\n <span [id]=\"id + '-expand-icon'\" class=\"expand-icon fa\" [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"childlist\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
112
108
  animations: [
113
109
  trigger("expandableContent", [
114
110
  state("*", style({
@@ -134,8 +130,8 @@ ObjectCardComponent = ObjectCardComponent_1 = __decorate([
134
130
  ]),
135
131
  ]),
136
132
  ],
137
- styles: [":host{display:block}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:none;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;width:25px;position:absolute;right:15px;height:25px;top:calc(50% - 12px)}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.s-object-card-main{-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:1;flex-grow:1;overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.s-object-card-main{max-width:calc(100% - 50px)}}"]
133
+ styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:-ms-flexbox;display:flex;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1em;gap:1em}"]
138
134
  })
139
135
  ], ObjectCardComponent);
140
136
  export { ObjectCardComponent };
141
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBQ0gsbUJBQW1CLEVBQ25CLGFBQWEsRUFDYixTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFDZixVQUFVLEVBQ1YsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUF5Q3JGLElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQXNDNUIsWUFBb0IsVUFBc0I7UUFBdEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQWxDbkMsT0FBRSxHQUFHLGlCQUFpQixxQkFBbUIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1FBR3JELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFHakIsa0JBQWEsR0FBRyxjQUFjLENBQUM7UUFHL0Isb0JBQWUsR0FBRyxlQUFlLENBQUM7UUFHbEMsbUJBQWMsR0FBRyxHQUFHLENBQUM7UUFHckIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBUTdDLHFCQUFnQixHQUFHLENBQUMsQ0FBQztRQUc1Qixh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akIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7b0JBQzdDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztpQkFDdkUsQ0FBQztnQkFDRixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RSxDQUFDO2FBQ0wsQ0FBQztTQUNMOztLQUNKLENBQUM7R0FDVyxtQkFBbUIsQ0FpRy9CO1NBakdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEJvcmRlckJ1dHRvbk9wdGlvbnMgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9ib3JkZXItYnV0dG9uLW9wdGlvbnNcIjtcbmltcG9ydCB7IEVudW1TZXZlcml0eSB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2VudW0tc2V2ZXJpdHlcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzL2JyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE9iamVjdENhcmRNYWluQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLW9iamVjdC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJleHBhbmRhYmxlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIipcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPT4gdHJ1ZVwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcImZhbHNlIDw9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKFwiQm9yZGVyQnV0dG9uQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjpsZWF2ZVwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLW9iamVjdC1jYXJkLSR7T2JqZWN0Q2FyZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZFRvb2x0aXAgPSBcIkFicmlyIHBhaW5lbFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sbGFwc2VUb29sdGlwID0gXCJGZWNoYXIgcGFpbmVsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWVsZHNNaW5XaWR0aCA9IDIwMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoT2JqZWN0Q2FyZE1haW5Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwdWJsaWMgZmllbGRzPzogUXVlcnlMaXN0PE9iamVjdENhcmRGaWVsZENvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldmVyaXR5ID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGJvcmRlckJ1dHRvbk9wdGlvbnM6IEJvcmRlckJ1dHRvbk9wdGlvbnM7XG5cbiAgICByZWFkb25seSBFbnVtU2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHk7XG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IG1haW5GaWVsZFdpZHRoID0gY29udGFpbmVyV2lkdGggKiAwLjMgPiAyNjAgPyBjb250YWluZXJXaWR0aCAqIDAuMyA6IDI2MDtcbiAgICAgICAgY29uc3QgZmllbGRzTWluV2lkdGggPSB0aGlzLmZpZWxkc01pbldpZHRoO1xuICAgICAgICBjb25zdCBleHBhbmRJY29uV2lkdGggPSA1MDtcbiAgICAgICAgY29uc3QgZmllbGRFbGVtZW50TGlzdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzLW9iamVjdC1jYXJkLWZpZWxkXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZmllbGRFbGVtZW50TGlzdCkge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5taW5XaWR0aCA9IGAke3RoaXMuZmllbGRzTWluV2lkdGh9cHhgO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmICh3aW5kb3dXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIG1heEZpZWxkUXRkID0gMDtcbiAgICAgICAgZWxzZSBtYXhGaWVsZFF0ZCA9IE1hdGguZmxvb3IoKGNvbnRhaW5lcldpZHRoIC0gbWFpbkZpZWxkV2lkdGgpIC8gZmllbGRzTWluV2lkdGgpO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCAmJiBtYXhGaWVsZFF0ZCA8IHRoaXMuZmllbGRzLmxlbmd0aCkge1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChjb250YWluZXJXaWR0aCAtIG1haW5GaWVsZFdpZHRoIC0gZXhwYW5kSWNvbldpZHRoKSAvIGZpZWxkc01pbldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWF4VmlzaWJsZUZpZWxkcyA9IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCA+PSB0aGlzLmZpZWxkcy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZCkgdGhpcy5jb2xsYXBzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwYW5kZWRGaWVsZFdpZHRoKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIGxldCBmaWVsZHNQZXJSb3c7XG4gICAgICAgIGlmIChjb250YWluZXJXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIGZpZWxkc1BlclJvdyA9IDE7XG4gICAgICAgIGVsc2UgaWYgKGNvbnRhaW5lcldpZHRoIDw9IEJyZWFrcG9pbnRzLk1EX01BWCkgZmllbGRzUGVyUm93ID0gMjtcbiAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyV2lkdGggPD0gQnJlYWtwb2ludHMuTEdfTUFYKSBmaWVsZHNQZXJSb3cgPSA0O1xuICAgICAgICBlbHNlIGZpZWxkc1BlclJvdyA9IDY7XG5cbiAgICAgICAgcmV0dXJuIDEyIC8gZmllbGRzUGVyUm93O1xuICAgIH1cbn1cbiJdfQ==
137
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEVBRUgsU0FBUyxFQUNULFlBQVksRUFDWixlQUFlLEVBRWYsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBRU4sU0FBUyxFQUNaLE1BQU0sZUFBZSxDQUFDO0FBR3ZCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM5RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOENBQThDLENBQUM7QUFDeEYsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUF5Q3JGLElBQWEsbUJBQW1CLDJCQUFoQyxNQUFhLG1CQUFtQjtJQUFoQztRQUlXLE9BQUUsR0FBRyxpQkFBaUIscUJBQW1CLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztRQUdyRCxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBR2pCLGtCQUFhLEdBQUcsY0FBYyxDQUFDO1FBRy9CLG9CQUFlLEdBQUcsZUFBZSxDQUFDO1FBR2xDLG1CQUFjLEdBQUcsR0FBRyxDQUFDO1FBR3JCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVE3QyxxQkFBZ0IsR0FBRyxDQUFDLENBQUM7UUFHNUIsYUFBUSxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUM7UUFLdkIsaUJBQVksR0FBRyxZQUFZLENBQUM7SUE2RHpDLENBQUM7SUFsRFUscUJBQXFCO1FBQ3hCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRU8sTUFBTTtRQUNWLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUM7UUFDdEMsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFDbEYsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGFBQWEsQ0FBQyxxQkFBcUIsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUMxRixJQUFJLGNBQWMsR0FBSSxjQUFjLEdBQUcsY0FBYyxDQUFDO1FBQ3RELE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUM7UUFDM0MsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMscUJBQXFCLEVBQUUsQ0FBQyxLQUFLLENBQUM7UUFFdkYsSUFBSSxXQUFtQixDQUFDO1FBRXhCLElBQUksV0FBVyxJQUFJLFdBQVcsQ0FBQyxNQUFNLEVBQUU7WUFDbkMsV0FBVyxHQUFHLENBQUMsQ0FBQTtTQUNsQjthQUFNO1lBQ0gsV0FBVyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxjQUFjLENBQUMsR0FBRyxjQUFjLENBQUMsQ0FBQztTQUMvRDtRQUVELE1BQU0sYUFBYSxHQUFHLFdBQVcsSUFBSSxXQUFXLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUE7UUFFckUsSUFBSSxhQUFhLEVBQUU7WUFDZixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztZQUN4RCxjQUFjLEdBQUcsY0FBYyxHQUFHLGVBQWUsQ0FBQztZQUNsRCxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLGNBQWMsQ0FBQyxHQUFHLGNBQWMsQ0FBQyxDQUFDO1NBQy9EO2FBQUs7WUFDRixJQUFJLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztTQUMzRDtRQUVELElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUM7UUFFcEMsSUFBSSxXQUFXLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTtZQUNwRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7U0FDbkI7SUFDTCxDQUFDO0lBRU0sTUFBTTtRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTSxNQUFNO1FBQ1QsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUM7UUFDckIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFTSxRQUFRO1FBQ1gsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDdEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzVDLENBQUM7Q0FDSixDQUFBO0FBL0ZpQiwwQkFBTSxHQUFHLENBQUMsQ0FBQztBQUd6QjtJQURDLEtBQUssRUFBRTsrQ0FDb0Q7QUFHNUQ7SUFEQyxLQUFLLEVBQUU7cURBQ2dCO0FBR3hCO0lBREMsS0FBSyxFQUFFOzBEQUM4QjtBQUd0QztJQURDLEtBQUssRUFBRTs0REFDaUM7QUFHekM7SUFEQyxLQUFLLEVBQUU7MkRBQ29CO0FBRzVCO0lBREMsTUFBTSxFQUFFOzJEQUMyQztBQUdwRDtJQURDLFlBQVksQ0FBQyx1QkFBdUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztpREFDbkI7QUFHckM7SUFEQyxlQUFlLENBQUMsd0JBQXdCLEVBQUUsRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLENBQUM7bURBQ2I7QUFLcEQ7SUFEQyxLQUFLLEVBQUU7cURBQ3dCO0FBR2hDO0lBREMsS0FBSyxFQUFFO2dFQUNpQztBQUt6QztJQURDLFNBQVMsQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztzREFDSTtBQUdwRDtJQURDLFNBQVMsQ0FBQyxtQkFBbUIsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs4REFDVTtBQUczRDtJQURDLFNBQVMsQ0FBQyxlQUFlLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUM7MERBQ1U7QUE1QzlDLG1CQUFtQjtJQXZDL0IsU0FBUyxDQUFDO1FBQ1AsUUFBUSxFQUFFLGVBQWU7UUFDekIsKzFHQUEyQztRQUUzQyxVQUFVLEVBQUU7WUFDUixPQUFPLENBQUMsbUJBQW1CLEVBQUU7Z0JBQ3pCLEtBQUssQ0FDRCxHQUFHLEVBQ0gsS0FBSyxDQUFDO29CQUNGLE1BQU0sRUFBRSxHQUFHO2lCQUNkLENBQUMsQ0FDTDtnQkFDRCxLQUFLLENBQ0QsT0FBTyxFQUNQLEtBQUssQ0FBQztvQkFDRixNQUFNLEVBQUUsR0FBRztpQkFDZCxDQUFDLENBQ0w7Z0JBQ0QsS0FBSyxDQUNELE1BQU0sRUFDTixLQUFLLENBQUM7b0JBQ0YsTUFBTSxFQUFFLEdBQUc7aUJBQ2QsQ0FBQyxDQUNMO2dCQUNELFVBQVUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUM7Z0JBQ2xELFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQzthQUMxRCxDQUFDO1lBQ0YsT0FBTyxDQUFDLHVCQUF1QixFQUFFO2dCQUM3QixVQUFVLENBQUMsUUFBUSxFQUFFO29CQUNqQixLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQztvQkFDN0MsT0FBTyxDQUFDLFlBQVksRUFBRSxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2lCQUN2RSxDQUFDO2dCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7b0JBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO29CQUM3QyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7aUJBQ3ZFLENBQUM7YUFDTCxDQUFDO1NBQ0w7O0tBQ0osQ0FBQztHQUNXLG1CQUFtQixDQWdHL0I7U0FoR1ksbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgc3RhdGUsIHN0eWxlLCB0cmFuc2l0aW9uLCB0cmlnZ2VyIH0gZnJvbSBcIkBhbmd1bGFyL2FuaW1hdGlvbnNcIjtcbmltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50Q2hlY2tlZCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0LFxuICAgIFZpZXdDaGlsZFxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQgeyBCb3JkZXJCdXR0b25PcHRpb25zIH0gZnJvbSBcIi4uL3NoYXJlZC9tb2RlbHMvYm9yZGVyLWJ1dHRvbi1vcHRpb25zXCI7XG5pbXBvcnQgeyBFbnVtU2V2ZXJpdHkgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9lbnVtLXNldmVyaXR5XCI7XG5pbXBvcnQgeyBCcmVha3BvaW50cyB9IGZyb20gXCIuLi91dGlscy9icmVha3BvaW50c1wiO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvZmllbGQvb2JqZWN0LWNhcmQtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkTWFpbkNvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL21haW4vb2JqZWN0LWNhcmQtbWFpbi5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwicy1vYmplY3QtY2FyZFwiLFxuICAgIHRlbXBsYXRlVXJsOiBcIi4vb2JqZWN0LWNhcmQuY29tcG9uZW50Lmh0bWxcIixcbiAgICBzdHlsZVVybHM6IFtcIi4vb2JqZWN0LWNhcmQuY29tcG9uZW50LnNjc3NcIl0sXG4gICAgYW5pbWF0aW9uczogW1xuICAgICAgICB0cmlnZ2VyKFwiZXhwYW5kYWJsZUNvbnRlbnRcIiwgW1xuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCIqXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJmYWxzZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjBcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwidHJ1ZVwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIipcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCIqID0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCJmYWxzZSA8PT4gdHJ1ZVwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpLFxuICAgICAgICBdKSxcbiAgICAgICAgdHJpZ2dlcihcIkJvcmRlckJ1dHRvbkFuaW1hdGlvblwiLCBbXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmVudGVyXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMClcIiwgb3BhY2l0eTogMCB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZVwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMSB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6bGVhdmVcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICBdKSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBPYmplY3RDYXJkQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50Q2hlY2tlZCB7XG4gICAgcHVibGljIHN0YXRpYyBuZXh0SWQgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgaWQgPSBgcy1vYmplY3QtY2FyZC0ke09iamVjdENhcmRDb21wb25lbnQubmV4dElkKyt9YDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHBhbmRUb29sdGlwID0gXCJBYnJpciBwYWluZWxcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGNvbGxhcHNlVG9vbHRpcCA9IFwiRmVjaGFyIHBhaW5lbFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZmllbGRzTWluV2lkdGggPSAyMDA7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBAQ29udGVudENoaWxkKE9iamVjdENhcmRNYWluQ29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHB1YmxpYyBtYWluOiBPYmplY3RDYXJkTWFpbkNvbXBvbmVudDtcblxuICAgIEBDb250ZW50Q2hpbGRyZW4oT2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50LCB7IGRlc2NlbmRhbnRzOiB0cnVlIH0pXG4gICAgcHVibGljIGZpZWxkcz86IFF1ZXJ5TGlzdDxPYmplY3RDYXJkRmllbGRDb21wb25lbnQ+O1xuXG4gICAgcHVibGljIG1heFZpc2libGVGaWVsZHMgPSAwO1xuXG4gICAgQElucHV0KClcbiAgICBzZXZlcml0eSA9IEVudW1TZXZlcml0eS5EZWZhdWx0O1xuXG4gICAgQElucHV0KClcbiAgICBib3JkZXJCdXR0b25PcHRpb25zOiBCb3JkZXJCdXR0b25PcHRpb25zO1xuXG4gICAgcmVhZG9ubHkgRW51bVNldmVyaXR5ID0gRW51bVNldmVyaXR5O1xuXG4gICAgQFZpZXdDaGlsZCgnY29udGVudENvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xuXG4gICAgQFZpZXdDaGlsZCgnY2FyZE1haW5Db250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY2FyZE1haW5Db250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgICBAVmlld0NoaWxkKCdpY29uQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGljb25Db250YWluZXI6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+XG5cbiAgICBwdWJsaWMgbmdBZnRlckNvbnRlbnRDaGVja2VkKCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlKCkge1xuICAgICAgICBjb25zdCB3aW5kb3dXaWR0aCA9IHdpbmRvdy5pbm5lcldpZHRoO1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuY29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG4gICAgICAgIGNvbnN0IG1haW5GaWVsZFdpZHRoID0gdGhpcy5jYXJkTWFpbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBsZXQgcmVtYWluaW5nU3BhY2UgPSAgY29udGFpbmVyV2lkdGggLSBtYWluRmllbGRXaWR0aDtcbiAgICAgICAgY29uc3QgZmllbGRzTWluV2lkdGggPSB0aGlzLmZpZWxkc01pbldpZHRoO1xuICAgICAgICBjb25zdCBleHBhbmRJY29uV2lkdGggPSB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcblxuICAgICAgICBsZXQgbWF4RmllbGRRdGQ6IG51bWJlcjtcblxuICAgICAgICBpZiAod2luZG93V2lkdGggPD0gQnJlYWtwb2ludHMuU01fTUFYKSB7XG4gICAgICAgICAgICBtYXhGaWVsZFF0ZCA9IDBcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIG1heEZpZWxkUXRkID0gTWF0aC5mbG9vcigocmVtYWluaW5nU3BhY2UpIC8gZmllbGRzTWluV2lkdGgpO1xuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgaGFzRXhwYW5kSWNvbiA9IG1heEZpZWxkUXRkICYmIG1heEZpZWxkUXRkIDwgdGhpcy5maWVsZHMubGVuZ3RoXG5cbiAgICAgICAgaWYgKGhhc0V4cGFuZEljb24pIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnZmxleCc7XG4gICAgICAgICAgICByZW1haW5pbmdTcGFjZSA9IHJlbWFpbmluZ1NwYWNlIC0gZXhwYW5kSWNvbldpZHRoO1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChyZW1haW5pbmdTcGFjZSkgLyBmaWVsZHNNaW5XaWR0aCk7XG4gICAgICAgIH1lbHNlIHtcbiAgICAgICAgICAgIHRoaXMuaWNvbkNvbnRhaW5lci5uYXRpdmVFbGVtZW50LnN0eWxlLmRpc3BsYXkgPSAnbm9uZSc7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLm1heFZpc2libGVGaWVsZHMgPSBtYXhGaWVsZFF0ZDtcblxuICAgICAgICBpZiAobWF4RmllbGRRdGQgPj0gdGhpcy5maWVsZHMubGVuZ3RoICYmIHRoaXMuZXhwYW5kZWQpIHtcbiAgICAgICAgICAgIHRoaXMuY29sbGFwc2UoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG59XG4iXX0=
@@ -77,7 +77,7 @@ PanelComponent = __decorate([
77
77
  ]),
78
78
  ]),
79
79
  ],
80
- styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{-ms-flex-positive:1;flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0}"]
80
+ styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{-ms-flex-positive:1;flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0;margin:0}"]
81
81
  })
82
82
  ], PanelComponent);
83
83
  export { PanelComponent };
@@ -8,4 +8,4 @@ export const Breakpoints = {
8
8
  XL_MIN: 1200,
9
9
  XL_MAX: Infinity,
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9icmVha3BvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsUUFBUTtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJyZWFrcG9pbnRzID0ge1xuICAgIFNNX01JTjogMCxcbiAgICBTTV9NQVg6IDc2NyxcbiAgICBNRF9NSU46IDc2OCxcbiAgICBNRF9NQVg6IDk5MSxcbiAgICBMR19NSU46IDk5MixcbiAgICBMR19NQVg6IDExOTksXG4gICAgWExfTUlOOiAxMjAwLFxuICAgIFhMX01BWDogSW5maW5pdHksXG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9icmVha3BvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLENBQVU7SUFDbEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLFFBQVE7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCcmVha3BvaW50cyA9IHtcbiAgICBTTV9NSU46IDAgYXMgY29uc3QsXG4gICAgU01fTUFYOiA3NjcgYXMgY29uc3QsXG4gICAgTURfTUlOOiA3NjggYXMgY29uc3QsXG4gICAgTURfTUFYOiA5OTEgYXMgY29uc3QsXG4gICAgTEdfTUlOOiA5OTIgYXMgY29uc3QsXG4gICAgTEdfTUFYOiAxMTk5IGFzIGNvbnN0LFxuICAgIFhMX01JTjogMTIwMCBhcyBjb25zdCxcbiAgICBYTF9NQVg6IEluZmluaXR5LFxufTtcbiJdfQ==
@@ -1,13 +1,12 @@
1
- import { __decorate, __values } from "tslib";
1
+ import { __decorate } from "tslib";
2
2
  import { animate, state, style, transition, trigger } from "@angular/animations";
3
- import { AfterContentChecked, AfterViewInit, Component, ContentChild, ContentChildren, ElementRef, EventEmitter, Input, Output, QueryList } from "@angular/core";
3
+ import { Component, ContentChild, ContentChildren, EventEmitter, Input, Output, ViewChild } from "@angular/core";
4
4
  import { EnumSeverity } from "../shared/models/enum-severity";
5
5
  import { Breakpoints } from "../utils/breakpoints";
6
6
  import { ObjectCardFieldComponent } from "./elements/field/object-card-field.component";
7
7
  import { ObjectCardMainComponent } from "./elements/main/object-card-main.component";
8
8
  var ObjectCardComponent = /** @class */ (function () {
9
- function ObjectCardComponent(elementRef) {
10
- this.elementRef = elementRef;
9
+ function ObjectCardComponent() {
11
10
  this.id = "s-object-card-" + ObjectCardComponent_1.nextId++;
12
11
  this.expanded = false;
13
12
  this.expandTooltip = "Abrir painel";
@@ -19,43 +18,36 @@ var ObjectCardComponent = /** @class */ (function () {
19
18
  this.EnumSeverity = EnumSeverity;
20
19
  }
21
20
  ObjectCardComponent_1 = ObjectCardComponent;
22
- ObjectCardComponent.prototype.ngAfterViewInit = function () {
23
- };
24
21
  ObjectCardComponent.prototype.ngAfterContentChecked = function () {
25
22
  this.update();
26
23
  };
27
24
  ObjectCardComponent.prototype.update = function () {
28
- var e_1, _a;
29
25
  var windowWidth = window.innerWidth;
30
- var containerWidth = this.elementRef.nativeElement.offsetWidth;
31
- var mainFieldWidth = containerWidth * 0.3 > 260 ? containerWidth * 0.3 : 260;
26
+ var containerWidth = this.container.nativeElement.getBoundingClientRect().width;
27
+ var mainFieldWidth = this.cardMainContainer.nativeElement.getBoundingClientRect().width;
28
+ var remainingSpace = containerWidth - mainFieldWidth;
32
29
  var fieldsMinWidth = this.fieldsMinWidth;
33
- var expandIconWidth = 50;
34
- var fieldElementList = this.elementRef.nativeElement.getElementsByClassName("s-object-card-field");
35
- try {
36
- for (var fieldElementList_1 = __values(fieldElementList), fieldElementList_1_1 = fieldElementList_1.next(); !fieldElementList_1_1.done; fieldElementList_1_1 = fieldElementList_1.next()) {
37
- var element = fieldElementList_1_1.value;
38
- element.style.minWidth = this.fieldsMinWidth + "px";
39
- }
40
- }
41
- catch (e_1_1) { e_1 = { error: e_1_1 }; }
42
- finally {
43
- try {
44
- if (fieldElementList_1_1 && !fieldElementList_1_1.done && (_a = fieldElementList_1.return)) _a.call(fieldElementList_1);
45
- }
46
- finally { if (e_1) throw e_1.error; }
47
- }
30
+ var expandIconWidth = this.iconContainer.nativeElement.getBoundingClientRect().width;
48
31
  var maxFieldQtd;
49
- if (windowWidth <= Breakpoints.SM_MAX)
32
+ if (windowWidth <= Breakpoints.SM_MAX) {
50
33
  maxFieldQtd = 0;
51
- else
52
- maxFieldQtd = Math.floor((containerWidth - mainFieldWidth) / fieldsMinWidth);
53
- if (maxFieldQtd && maxFieldQtd < this.fields.length) {
54
- maxFieldQtd = Math.floor((containerWidth - mainFieldWidth - expandIconWidth) / fieldsMinWidth);
34
+ }
35
+ else {
36
+ maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
37
+ }
38
+ var hasExpandIcon = maxFieldQtd && maxFieldQtd < this.fields.length;
39
+ if (hasExpandIcon) {
40
+ this.iconContainer.nativeElement.style.display = 'flex';
41
+ remainingSpace = remainingSpace - expandIconWidth;
42
+ maxFieldQtd = Math.floor((remainingSpace) / fieldsMinWidth);
43
+ }
44
+ else {
45
+ this.iconContainer.nativeElement.style.display = 'none';
55
46
  }
56
47
  this.maxVisibleFields = maxFieldQtd;
57
- if (maxFieldQtd >= this.fields.length && this.expanded)
48
+ if (maxFieldQtd >= this.fields.length && this.expanded) {
58
49
  this.collapse();
50
+ }
59
51
  };
60
52
  ObjectCardComponent.prototype.toggle = function () {
61
53
  this.expanded ? this.collapse() : this.expand();
@@ -68,24 +60,8 @@ var ObjectCardComponent = /** @class */ (function () {
68
60
  this.expanded = false;
69
61
  this.expandedChange.emit(this.expanded);
70
62
  };
71
- ObjectCardComponent.prototype.getExpandedFieldWidth = function () {
72
- var containerWidth = this.elementRef.nativeElement.offsetWidth;
73
- var fieldsPerRow;
74
- if (containerWidth <= Breakpoints.SM_MAX)
75
- fieldsPerRow = 1;
76
- else if (containerWidth <= Breakpoints.MD_MAX)
77
- fieldsPerRow = 2;
78
- else if (containerWidth <= Breakpoints.LG_MAX)
79
- fieldsPerRow = 4;
80
- else
81
- fieldsPerRow = 6;
82
- return 12 / fieldsPerRow;
83
- };
84
63
  var ObjectCardComponent_1;
85
64
  ObjectCardComponent.nextId = 0;
86
- ObjectCardComponent.ctorParameters = function () { return [
87
- { type: ElementRef }
88
- ]; };
89
65
  __decorate([
90
66
  Input()
91
67
  ], ObjectCardComponent.prototype, "id", void 0);
@@ -116,10 +92,19 @@ var ObjectCardComponent = /** @class */ (function () {
116
92
  __decorate([
117
93
  Input()
118
94
  ], ObjectCardComponent.prototype, "borderButtonOptions", void 0);
95
+ __decorate([
96
+ ViewChild('contentContainer', { static: true })
97
+ ], ObjectCardComponent.prototype, "container", void 0);
98
+ __decorate([
99
+ ViewChild('cardMainContainer', { static: true })
100
+ ], ObjectCardComponent.prototype, "cardMainContainer", void 0);
101
+ __decorate([
102
+ ViewChild('iconContainer', { static: true })
103
+ ], ObjectCardComponent.prototype, "iconContainer", void 0);
119
104
  ObjectCardComponent = ObjectCardComponent_1 = __decorate([
120
105
  Component({
121
106
  selector: "s-object-card",
122
- template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\"><ng-content select=\"s-object-card-main\"></ng-content></div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\" class=\"s-object-card-field\">\n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n >\n <span [id]=\"id + '-expand-icon'\" class=\"expand-icon fa\" [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"ui-g ui-g-12\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"ui-g-{{ getExpandedFieldWidth() }}\">\n <div class=\"s-object-card-field\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
107
+ template: "<div [id]=\"id\" class=\"container\">\n <s-border-button\n *ngIf=\"\n borderButtonOptions?.visible\n ? borderButtonOptions?.visible(severity)\n : false\n \"\n [severity]=\"severity\"\n [options]=\"borderButtonOptions\"\n class=\"object-card__border-button\"\n [@BorderButtonAnimation]\n ></s-border-button>\n\n <div\n [id]=\"id + '-main-container'\"\n class=\"main-container\"\n #contentContainer\n [ngClass]=\"{\n 'with-hidden-fields': fields.length > maxVisibleFields,\n 'with-visible-fields': fields.length && maxVisibleFields,\n 'main-container--severity-default': severity === EnumSeverity.Default,\n 'main-container--severity-info': severity === EnumSeverity.Info,\n 'main-container--severity-warn': severity === EnumSeverity.Warn,\n 'main-container--severity-error': severity === EnumSeverity.Error,\n 'main-container--severity-success': severity == EnumSeverity.Success\n }\"\n >\n <div class=\"object-content\">\n <div class=\"s-object-card-main\" #cardMainContainer [style.min-width.px]=\"fieldsMinWidth\">\n <ng-content select=\"s-object-card-main\"></ng-content>\n </div>\n\n <div class=\"divider\" *ngIf=\"maxVisibleFields && fields.length\"></div>\n\n <div *ngFor=\"let field of (fields.toArray() | slice: 0:maxVisibleFields)\" class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n \n <ng-container *ngTemplateOutlet=\"field.content\"></ng-container>\n </div>\n </div>\n\n <div\n #iconContainer\n [id]=\"id + '-expand-icon-container'\"\n class=\"expand-icon-container\"\n (click)=\"toggle()\"\n [pTooltip]=\"expanded ? collapseTooltip : expandTooltip\"\n tooltipPosition=\"top\"\n [showDelay]=\"500\"\n >\n <span [id]=\"id + '-expand-icon'\" class=\"expand-icon fa\" [ngClass]=\"{ 'fa-minus': expanded, 'fa-plus': !expanded }\"></span>\n </div>\n </div>\n\n <div\n [id]=\"id + '-expandable-container'\"\n [@expandableContent]=\"expanded\"\n class=\"expandable-container\"\n [ngClass]=\"{\n 'expandable-container--severity-default':\n severity === EnumSeverity.Default,\n 'expandable-container--severity-info': severity === EnumSeverity.Info,\n 'expandable-container--severity-warn': severity === EnumSeverity.Warn,\n 'expandable-container--severity-error': severity === EnumSeverity.Error,\n 'expandable-container--severity-success':\n severity == EnumSeverity.Success\n }\"\n >\n <div class=\"childlist\">\n <ng-container\n *ngFor=\"\n let field of fields.toArray()\n | slice : maxVisibleFields : fields.length\n \"\n >\n <div class=\"s-object-card-field\" [style.min-width.px]=\"fieldsMinWidth\">\n <ng-container\n *ngTemplateOutlet=\"field.content\"\n ></ng-container>\n </div>\n </ng-container>\n </div>\n </div>\n</div>\n",
123
108
  animations: [
124
109
  trigger("expandableContent", [
125
110
  state("*", style({
@@ -145,10 +130,10 @@ var ObjectCardComponent = /** @class */ (function () {
145
130
  ]),
146
131
  ]),
147
132
  ],
148
- styles: [":host{display:block}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:none;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;width:25px;position:absolute;right:15px;height:25px;top:calc(50% - 12px)}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.s-object-card-main{-ms-flex-negative:0;flex-shrink:0;-ms-flex-positive:1;flex-grow:1;overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.s-object-card-main{max-width:calc(100% - 50px)}}"]
133
+ styles: [":host{display:block}:host::ng-deep .sds-badge{height:auto;white-space:normal}.container{margin-bottom:20px;position:relative}.main-container{display:-ms-flexbox;display:flex}.expandable-container,.main-container{background-color:#fff;border:1px solid #ccc;position:relative;overflow:hidden;width:100%}.expandable-container--severity-default{border-color:#ccc;border-top:initial}.expandable-container--severity-info{transition:border-color .5s;border-color:#428bca;border-top:initial}.expandable-container--severity-warn{transition:border-color .5s;border-color:#f8931f;border-top:initial}.expandable-container--severity-error{transition:border-color .5s;border-color:#c13018;border-top:initial}.expandable-container--severity-success{transition:border-color .5s;border-color:#0c9348;border-top:initial}.main-container--severity-default{border-color:#ccc}.main-container--severity-info{transition:border-color .5s;border-color:#428bca}.main-container--severity-warn{transition:border-color .5s;border-color:#f8931f}.main-container--severity-error{transition:border-color .5s;border-color:#c13018}.main-container--severity-success{transition:border-color .5s;border-color:#0c9348}.object-card__border-button{position:absolute;top:-13px;right:15px;z-index:1}.expandable-container{border-top:none;box-shadow:inset 0 6px 4px -4px #ddd;margin-top:-1px}.expand-icon-container{display:-ms-flexbox;display:flex;text-align:center;-ms-flex-align:center;align-items:center;cursor:pointer;padding:12px}.expand-icon{-ms-flex:1;flex:1}.object-content{display:-ms-flexbox;display:flex;width:100%}.s-object-card-main{overflow:hidden;padding:15px}.main-container.with-visible-fields .s-object-card-main{max-width:30%}@media all and (-ms-high-contrast:none),(-ms-high-contrast:active){.main-container.with-visible-fields .s-object-card-main{width:20%}}.s-object-card-field{overflow:hidden;height:100%}.main-container .s-object-card-field{padding:15px}.main-container .divider{width:1px;-ms-flex-negative:0;flex-shrink:0;background-color:#ccc;margin:15px -1px 15px 0}.main-container.with-hidden-fields .object-content{width:calc(100% - 35px)}.main-container.with-hidden-fields .expand-icon-container{display:-ms-flexbox;display:flex}::ng-deep .object-card-button{padding-left:0!important;padding-right:10px!important;border:none!important;height:auto!important;min-width:auto!important;text-align:left!important}@media (max-width:767px){.s-object-card-main{max-width:calc(100% - 50px)}}.childlist{width:100%;display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;padding:1em;gap:1em}"]
149
134
  })
150
135
  ], ObjectCardComponent);
151
136
  return ObjectCardComponent;
152
137
  }());
153
138
  export { ObjectCardComponent };
154
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFDSCxtQkFBbUIsRUFDbkIsYUFBYSxFQUNiLFNBQVMsRUFDVCxZQUFZLEVBQ1osZUFBZSxFQUNmLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQXlDckY7SUFzQ0ksNkJBQW9CLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFsQ25DLE9BQUUsR0FBRyxtQkFBaUIscUJBQW1CLENBQUMsTUFBTSxFQUFJLENBQUM7UUFHckQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixrQkFBYSxHQUFHLGNBQWMsQ0FBQztRQUcvQixvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUdsQyxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUdyQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFRN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRzVCLGFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBS3ZCLGlC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RixPQUFPLENBQUMsdUJBQXVCLEVBQUU7b0JBQzdCLFVBQVUsQ0FBQyxRQUFRLEVBQUU7d0JBQ2pCLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDO3dCQUM3QyxPQUFPLENBQUMsWUFBWSxFQUFFLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxXQUFXLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7cUJBQ3ZFLENBQUM7b0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQzdDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDdkUsQ0FBQztpQkFDTCxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLG1CQUFtQixDQWlHL0I7SUFBRCwwQkFBQztDQUFBLEFBakdELElBaUdDO1NBakdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQWZ0ZXJWaWV3SW5pdCxcbiAgICBDb21wb25lbnQsXG4gICAgQ29udGVudENoaWxkLFxuICAgIENvbnRlbnRDaGlsZHJlbixcbiAgICBFbGVtZW50UmVmLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgUXVlcnlMaXN0XG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IEJvcmRlckJ1dHRvbk9wdGlvbnMgfSBmcm9tIFwiLi4vc2hhcmVkL21vZGVscy9ib3JkZXItYnV0dG9uLW9wdGlvbnNcIjtcbmltcG9ydCB7IEVudW1TZXZlcml0eSB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2VudW0tc2V2ZXJpdHlcIjtcbmltcG9ydCB7IEJyZWFrcG9pbnRzIH0gZnJvbSBcIi4uL3V0aWxzL2JyZWFrcG9pbnRzXCI7XG5pbXBvcnQgeyBPYmplY3RDYXJkRmllbGRDb21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9maWVsZC9vYmplY3QtY2FyZC1maWVsZC5jb21wb25lbnRcIjtcbmltcG9ydCB7IE9iamVjdENhcmRNYWluQ29tcG9uZW50IH0gZnJvbSBcIi4vZWxlbWVudHMvbWFpbi9vYmplY3QtY2FyZC1tYWluLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogXCJzLW9iamVjdC1jYXJkXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9vYmplY3QtY2FyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBhbmltYXRpb25zOiBbXG4gICAgICAgIHRyaWdnZXIoXCJleHBhbmRhYmxlQ29udGVudFwiLCBbXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcIipcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcImZhbHNlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiMFwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgc3RhdGUoXG4gICAgICAgICAgICAgICAgXCJ0cnVlXCIsXG4gICAgICAgICAgICAgICAgc3R5bGUoe1xuICAgICAgICAgICAgICAgICAgICBoZWlnaHQ6IFwiKlwiLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIiogPT4gdHJ1ZVwiLCBhbmltYXRlKFwiMjAwbXMgZWFzZS1vdXRcIikpLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcImZhbHNlIDw9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSksXG4gICAgICAgIF0pLFxuICAgICAgICB0cmlnZ2VyKFwiQm9yZGVyQnV0dG9uQW5pbWF0aW9uXCIsIFtcbiAgICAgICAgICAgIHRyYW5zaXRpb24oXCI6ZW50ZXJcIiwgW1xuICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgwKVwiLCBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgICAgIGFuaW1hdGUoXCIzMDBtcyBlYXNlXCIsIHN0eWxlKHsgdHJhbnNmb3JtOiBcInNjYWxlWSgxKVwiLCBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgICAgIF0pLFxuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjpsZWF2ZVwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgIF0pLFxuICAgIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9iamVjdENhcmRDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgICBwdWJsaWMgc3RhdGljIG5leHRJZCA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBpZCA9IGBzLW9iamVjdC1jYXJkLSR7T2JqZWN0Q2FyZENvbXBvbmVudC5uZXh0SWQrK31gO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGV4cGFuZFRvb2x0aXAgPSBcIkFicmlyIHBhaW5lbFwiO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgY29sbGFwc2VUb29sdGlwID0gXCJGZWNoYXIgcGFpbmVsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmaWVsZHNNaW5XaWR0aCA9IDIwMDtcblxuICAgIEBPdXRwdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIEBDb250ZW50Q2hpbGQoT2JqZWN0Q2FyZE1haW5Db21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHVibGljIG1haW46IE9iamVjdENhcmRNYWluQ29tcG9uZW50O1xuXG4gICAgQENvbnRlbnRDaGlsZHJlbihPYmplY3RDYXJkRmllbGRDb21wb25lbnQsIHsgZGVzY2VuZGFudHM6IHRydWUgfSlcbiAgICBwdWJsaWMgZmllbGRzPzogUXVlcnlMaXN0PE9iamVjdENhcmRGaWVsZENvbXBvbmVudD47XG5cbiAgICBwdWJsaWMgbWF4VmlzaWJsZUZpZWxkcyA9IDA7XG5cbiAgICBASW5wdXQoKVxuICAgIHNldmVyaXR5ID0gRW51bVNldmVyaXR5LkRlZmF1bHQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGJvcmRlckJ1dHRvbk9wdGlvbnM6IEJvcmRlckJ1dHRvbk9wdGlvbnM7XG5cbiAgICByZWFkb25seSBFbnVtU2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHk7XG5cblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZikgeyB9XG5cbiAgICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudXBkYXRlKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSB1cGRhdGUoKSB7XG4gICAgICAgIGNvbnN0IHdpbmRvd1dpZHRoID0gd2luZG93LmlubmVyV2lkdGg7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lcldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGg7XG4gICAgICAgIGNvbnN0IG1haW5GaWVsZFdpZHRoID0gY29udGFpbmVyV2lkdGggKiAwLjMgPiAyNjAgPyBjb250YWluZXJXaWR0aCAqIDAuMyA6IDI2MDtcbiAgICAgICAgY29uc3QgZmllbGRzTWluV2lkdGggPSB0aGlzLmZpZWxkc01pbldpZHRoO1xuICAgICAgICBjb25zdCBleHBhbmRJY29uV2lkdGggPSA1MDtcbiAgICAgICAgY29uc3QgZmllbGRFbGVtZW50TGlzdCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmdldEVsZW1lbnRzQnlDbGFzc05hbWUoXCJzLW9iamVjdC1jYXJkLWZpZWxkXCIpO1xuICAgICAgICBmb3IgKGNvbnN0IGVsZW1lbnQgb2YgZmllbGRFbGVtZW50TGlzdCkge1xuICAgICAgICAgICAgZWxlbWVudC5zdHlsZS5taW5XaWR0aCA9IGAke3RoaXMuZmllbGRzTWluV2lkdGh9cHhgO1xuICAgICAgICB9XG5cbiAgICAgICAgbGV0IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmICh3aW5kb3dXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIG1heEZpZWxkUXRkID0gMDtcbiAgICAgICAgZWxzZSBtYXhGaWVsZFF0ZCA9IE1hdGguZmxvb3IoKGNvbnRhaW5lcldpZHRoIC0gbWFpbkZpZWxkV2lkdGgpIC8gZmllbGRzTWluV2lkdGgpO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCAmJiBtYXhGaWVsZFF0ZCA8IHRoaXMuZmllbGRzLmxlbmd0aCkge1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSBNYXRoLmZsb29yKChjb250YWluZXJXaWR0aCAtIG1haW5GaWVsZFdpZHRoIC0gZXhwYW5kSWNvbldpZHRoKSAvIGZpZWxkc01pbldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMubWF4VmlzaWJsZUZpZWxkcyA9IG1heEZpZWxkUXRkO1xuXG4gICAgICAgIGlmIChtYXhGaWVsZFF0ZCA+PSB0aGlzLmZpZWxkcy5sZW5ndGggJiYgdGhpcy5leHBhbmRlZCkgdGhpcy5jb2xsYXBzZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB0b2dnbGUoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPyB0aGlzLmNvbGxhcHNlKCkgOiB0aGlzLmV4cGFuZCgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBleHBhbmQoKSB7XG4gICAgICAgIHRoaXMuZXhwYW5kZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxuXG4gICAgcHVibGljIGNvbGxhcHNlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuZXhwYW5kZWRDaGFuZ2UuZW1pdCh0aGlzLmV4cGFuZGVkKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0RXhwYW5kZWRGaWVsZFdpZHRoKCkge1xuICAgICAgICBjb25zdCBjb250YWluZXJXaWR0aCA9IHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50Lm9mZnNldFdpZHRoO1xuXG4gICAgICAgIGxldCBmaWVsZHNQZXJSb3c7XG4gICAgICAgIGlmIChjb250YWluZXJXaWR0aCA8PSBCcmVha3BvaW50cy5TTV9NQVgpIGZpZWxkc1BlclJvdyA9IDE7XG4gICAgICAgIGVsc2UgaWYgKGNvbnRhaW5lcldpZHRoIDw9IEJyZWFrcG9pbnRzLk1EX01BWCkgZmllbGRzUGVyUm93ID0gMjtcbiAgICAgICAgZWxzZSBpZiAoY29udGFpbmVyV2lkdGggPD0gQnJlYWtwb2ludHMuTEdfTUFYKSBmaWVsZHNQZXJSb3cgPSA0O1xuICAgICAgICBlbHNlIGZpZWxkc1BlclJvdyA9IDY7XG5cbiAgICAgICAgcmV0dXJuIDEyIC8gZmllbGRzUGVyUm93O1xuICAgIH1cbn1cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JqZWN0LWNhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHNlbmlvcnNpc3RlbWFzL2FuZ3VsYXItY29tcG9uZW50cy8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvb2JqZWN0LWNhcmQvb2JqZWN0LWNhcmQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLE9BQU8sRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLGVBQWUsRUFFZixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFFTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFHdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw4Q0FBOEMsQ0FBQztBQUN4RixPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQXlDckY7SUFBQTtRQUlXLE9BQUUsR0FBRyxtQkFBaUIscUJBQW1CLENBQUMsTUFBTSxFQUFJLENBQUM7UUFHckQsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUdqQixrQkFBYSxHQUFHLGNBQWMsQ0FBQztRQUcvQixvQkFBZSxHQUFHLGVBQWUsQ0FBQztRQUdsQyxtQkFBYyxHQUFHLEdBQUcsQ0FBQztRQUdyQixtQkFBYyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFRN0MscUJBQWdCLEdBQUcsQ0FBQyxDQUFDO1FBRzVCLGFBQVEsR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDO1FBS3ZCLGlCQUFZLEdBQUcsWUFBWSxDQUFDO0lBNkR6QyxDQUFDOzRCQWhHWSxtQkFBbUI7SUE4Q3JCLG1EQUFxQixHQUE1QjtRQUNJLElBQUks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QUFDLENBQUM7cUJBQ3ZFLENBQUM7b0JBQ0YsVUFBVSxDQUFDLFFBQVEsRUFBRTt3QkFDakIsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7d0JBQzdDLE9BQU8sQ0FBQyxZQUFZLEVBQUUsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLFdBQVcsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQztxQkFDdkUsQ0FBQztpQkFDTCxDQUFDO2FBQ0w7O1NBQ0osQ0FBQztPQUNXLG1CQUFtQixDQWdHL0I7SUFBRCwwQkFBQztDQUFBLEFBaEdELElBZ0dDO1NBaEdZLG1CQUFtQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGFuaW1hdGUsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciB9IGZyb20gXCJAYW5ndWxhci9hbmltYXRpb25zXCI7XG5pbXBvcnQge1xuICAgIEFmdGVyQ29udGVudENoZWNrZWQsXG4gICAgQ29tcG9uZW50LFxuICAgIENvbnRlbnRDaGlsZCxcbiAgICBDb250ZW50Q2hpbGRyZW4sXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGRcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgQm9yZGVyQnV0dG9uT3B0aW9ucyB9IGZyb20gXCIuLi9zaGFyZWQvbW9kZWxzL2JvcmRlci1idXR0b24tb3B0aW9uc1wiO1xuaW1wb3J0IHsgRW51bVNldmVyaXR5IH0gZnJvbSBcIi4uL3NoYXJlZC9tb2RlbHMvZW51bS1zZXZlcml0eVwiO1xuaW1wb3J0IHsgQnJlYWtwb2ludHMgfSBmcm9tIFwiLi4vdXRpbHMvYnJlYWtwb2ludHNcIjtcbmltcG9ydCB7IE9iamVjdENhcmRGaWVsZENvbXBvbmVudCB9IGZyb20gXCIuL2VsZW1lbnRzL2ZpZWxkL29iamVjdC1jYXJkLWZpZWxkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgT2JqZWN0Q2FyZE1haW5Db21wb25lbnQgfSBmcm9tIFwiLi9lbGVtZW50cy9tYWluL29iamVjdC1jYXJkLW1haW4uY29tcG9uZW50XCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInMtb2JqZWN0LWNhcmRcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL29iamVjdC1jYXJkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL29iamVjdC1jYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxuICAgIGFuaW1hdGlvbnM6IFtcbiAgICAgICAgdHJpZ2dlcihcImV4cGFuZGFibGVDb250ZW50XCIsIFtcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiKlwiLFxuICAgICAgICAgICAgICAgIHN0eWxlKHtcbiAgICAgICAgICAgICAgICAgICAgaGVpZ2h0OiBcIjBcIixcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIHN0YXRlKFxuICAgICAgICAgICAgICAgIFwiZmFsc2VcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIwXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBzdGF0ZShcbiAgICAgICAgICAgICAgICBcInRydWVcIixcbiAgICAgICAgICAgICAgICBzdHlsZSh7XG4gICAgICAgICAgICAgICAgICAgIGhlaWdodDogXCIqXCIsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiKiA9PiB0cnVlXCIsIGFuaW1hdGUoXCIyMDBtcyBlYXNlLW91dFwiKSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiZmFsc2UgPD0+IHRydWVcIiwgYW5pbWF0ZShcIjIwMG1zIGVhc2Utb3V0XCIpKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyaWdnZXIoXCJCb3JkZXJCdXR0b25BbmltYXRpb25cIiwgW1xuICAgICAgICAgICAgdHJhbnNpdGlvbihcIjplbnRlclwiLCBbXG4gICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDApXCIsIG9wYWNpdHk6IDAgfSksXG4gICAgICAgICAgICAgICAgYW5pbWF0ZShcIjMwMG1zIGVhc2VcIiwgc3R5bGUoeyB0cmFuc2Zvcm06IFwic2NhbGVZKDEpXCIsIG9wYWNpdHk6IDEgfSkpLFxuICAgICAgICAgICAgXSksXG4gICAgICAgICAgICB0cmFuc2l0aW9uKFwiOmxlYXZlXCIsIFtcbiAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMSlcIiwgb3BhY2l0eTogMSB9KSxcbiAgICAgICAgICAgICAgICBhbmltYXRlKFwiMzAwbXMgZWFzZVwiLCBzdHlsZSh7IHRyYW5zZm9ybTogXCJzY2FsZVkoMClcIiwgb3BhY2l0eTogMCB9KSksXG4gICAgICAgICAgICBdKSxcbiAgICAgICAgXSksXG4gICAgXSxcbn0pXG5leHBvcnQgY2xhc3MgT2JqZWN0Q2FyZENvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyQ29udGVudENoZWNrZWQge1xuICAgIHB1YmxpYyBzdGF0aWMgbmV4dElkID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGlkID0gYHMtb2JqZWN0LWNhcmQtJHtPYmplY3RDYXJkQ29tcG9uZW50Lm5leHRJZCsrfWA7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBleHBhbmRlZCA9IGZhbHNlO1xuXG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZXhwYW5kVG9vbHRpcCA9IFwiQWJyaXIgcGFpbmVsXCI7XG5cbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBjb2xsYXBzZVRvb2x0aXAgPSBcIkZlY2hhciBwYWluZWxcIjtcblxuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZpZWxkc01pbldpZHRoID0gMjAwO1xuXG4gICAgQE91dHB1dCgpXG4gICAgcHVibGljIGV4cGFuZGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgQENvbnRlbnRDaGlsZChPYmplY3RDYXJkTWFpbkNvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwdWJsaWMgbWFpbjogT2JqZWN0Q2FyZE1haW5Db21wb25lbnQ7XG5cbiAgICBAQ29udGVudENoaWxkcmVuKE9iamVjdENhcmRGaWVsZENvbXBvbmVudCwgeyBkZXNjZW5kYW50czogdHJ1ZSB9KVxuICAgIHB1YmxpYyBmaWVsZHM/OiBRdWVyeUxpc3Q8T2JqZWN0Q2FyZEZpZWxkQ29tcG9uZW50PjtcblxuICAgIHB1YmxpYyBtYXhWaXNpYmxlRmllbGRzID0gMDtcblxuICAgIEBJbnB1dCgpXG4gICAgc2V2ZXJpdHkgPSBFbnVtU2V2ZXJpdHkuRGVmYXVsdDtcblxuICAgIEBJbnB1dCgpXG4gICAgYm9yZGVyQnV0dG9uT3B0aW9uczogQm9yZGVyQnV0dG9uT3B0aW9ucztcblxuICAgIHJlYWRvbmx5IEVudW1TZXZlcml0eSA9IEVudW1TZXZlcml0eTtcblxuICAgIEBWaWV3Q2hpbGQoJ2NvbnRlbnRDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PjtcblxuICAgIEBWaWV3Q2hpbGQoJ2NhcmRNYWluQ29udGFpbmVyJywgeyBzdGF0aWM6IHRydWUgfSlcbiAgICBwcml2YXRlIHJlYWRvbmx5IGNhcmRNYWluQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuXG4gICAgQFZpZXdDaGlsZCgnaWNvbkNvbnRhaW5lcicsIHsgc3RhdGljOiB0cnVlIH0pXG4gICAgcHJpdmF0ZSByZWFkb25seSBpY29uQ29udGFpbmVyOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PlxuXG4gICAgcHVibGljIG5nQWZ0ZXJDb250ZW50Q2hlY2tlZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGUoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZSgpIHtcbiAgICAgICAgY29uc3Qgd2luZG93V2lkdGggPSB3aW5kb3cuaW5uZXJXaWR0aDtcbiAgICAgICAgY29uc3QgY29udGFpbmVyV2lkdGggPSB0aGlzLmNvbnRhaW5lci5uYXRpdmVFbGVtZW50LmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLndpZHRoO1xuICAgICAgICBjb25zdCBtYWluRmllbGRXaWR0aCA9IHRoaXMuY2FyZE1haW5Db250YWluZXIubmF0aXZlRWxlbWVudC5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKS53aWR0aDtcbiAgICAgICAgbGV0IHJlbWFpbmluZ1NwYWNlID0gIGNvbnRhaW5lcldpZHRoIC0gbWFpbkZpZWxkV2lkdGg7XG4gICAgICAgIGNvbnN0IGZpZWxkc01pbldpZHRoID0gdGhpcy5maWVsZHNNaW5XaWR0aDtcbiAgICAgICAgY29uc3QgZXhwYW5kSWNvbldpZHRoID0gdGhpcy5pY29uQ29udGFpbmVyLm5hdGl2ZUVsZW1lbnQuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCkud2lkdGg7XG5cbiAgICAgICAgbGV0IG1heEZpZWxkUXRkOiBudW1iZXI7XG5cbiAgICAgICAgaWYgKHdpbmRvd1dpZHRoIDw9IEJyZWFrcG9pbnRzLlNNX01BWCkge1xuICAgICAgICAgICAgbWF4RmllbGRRdGQgPSAwXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBtYXhGaWVsZFF0ZCA9IE1hdGguZmxvb3IoKHJlbWFpbmluZ1NwYWNlKSAvIGZpZWxkc01pbldpZHRoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IGhhc0V4cGFuZEljb24gPSBtYXhGaWVsZFF0ZCAmJiBtYXhGaWVsZFF0ZCA8IHRoaXMuZmllbGRzLmxlbmd0aFxuXG4gICAgICAgIGlmIChoYXNFeHBhbmRJY29uKSB7XG4gICAgICAgICAgICB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ2ZsZXgnO1xuICAgICAgICAgICAgcmVtYWluaW5nU3BhY2UgPSByZW1haW5pbmdTcGFjZSAtIGV4cGFuZEljb25XaWR0aDtcbiAgICAgICAgICAgIG1heEZpZWxkUXRkID0gTWF0aC5mbG9vcigocmVtYWluaW5nU3BhY2UpIC8gZmllbGRzTWluV2lkdGgpO1xuICAgICAgICB9ZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmljb25Db250YWluZXIubmF0aXZlRWxlbWVudC5zdHlsZS5kaXNwbGF5ID0gJ25vbmUnO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5tYXhWaXNpYmxlRmllbGRzID0gbWF4RmllbGRRdGQ7XG5cbiAgICAgICAgaWYgKG1heEZpZWxkUXRkID49IHRoaXMuZmllbGRzLmxlbmd0aCAmJiB0aGlzLmV4cGFuZGVkKSB7XG4gICAgICAgICAgICB0aGlzLmNvbGxhcHNlKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgdG9nZ2xlKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID8gdGhpcy5jb2xsYXBzZSgpIDogdGhpcy5leHBhbmQoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZXhwYW5kKCkge1xuICAgICAgICB0aGlzLmV4cGFuZGVkID0gdHJ1ZTtcbiAgICAgICAgdGhpcy5leHBhbmRlZENoYW5nZS5lbWl0KHRoaXMuZXhwYW5kZWQpO1xuICAgIH1cblxuICAgIHB1YmxpYyBjb2xsYXBzZSgpIHtcbiAgICAgICAgdGhpcy5leHBhbmRlZCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmV4cGFuZGVkQ2hhbmdlLmVtaXQodGhpcy5leHBhbmRlZCk7XG4gICAgfVxufVxuIl19
@@ -76,7 +76,7 @@ var PanelComponent = /** @class */ (function () {
76
76
  ]),
77
77
  ]),
78
78
  ],
79
- styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{-ms-flex-positive:1;flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0}"]
79
+ styles: [".panel{background-color:#fff;border:1px solid #dedce5;padding:20px;position:relative;transition:border-color .5s}.panel .border-button{position:absolute;right:15px;top:-12px;z-index:10}.panel .header{border-bottom:1px solid #dedce5;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;padding-bottom:12px;margin-bottom:12px;text-transform:uppercase}.panel .header-content{-ms-flex-positive:1;flex-grow:1}.panel .header .collapse-button{background-color:transparent;border:none;color:#212533;cursor:pointer;height:24px;width:24px}.panel .panel-content .footer{border-top:1px solid #dedce5;padding-top:12px}.panel--success{border-color:#0c9348}.panel--info{border-color:#428bca}.panel--warn{border-color:#f8931f}.panel--error{border-color:#c13018}.panel--collapsed .header{border:none;padding:0;margin:0}"]
80
80
  })
81
81
  ], PanelComponent);
82
82
  return PanelComponent;
@@ -8,4 +8,4 @@ export var Breakpoints = {
8
8
  XL_MIN: 1200,
9
9
  XL_MAX: Infinity,
10
10
  };
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9icmVha3BvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLENBQUM7SUFDVCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxHQUFHO0lBQ1gsTUFBTSxFQUFFLEdBQUc7SUFDWCxNQUFNLEVBQUUsR0FBRztJQUNYLE1BQU0sRUFBRSxJQUFJO0lBQ1osTUFBTSxFQUFFLElBQUk7SUFDWixNQUFNLEVBQUUsUUFBUTtDQUNuQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNvbnN0IEJyZWFrcG9pbnRzID0ge1xuICAgIFNNX01JTjogMCxcbiAgICBTTV9NQVg6IDc2NyxcbiAgICBNRF9NSU46IDc2OCxcbiAgICBNRF9NQVg6IDk5MSxcbiAgICBMR19NSU46IDk5MixcbiAgICBMR19NQVg6IDExOTksXG4gICAgWExfTUlOOiAxMjAwLFxuICAgIFhMX01BWDogSW5maW5pdHksXG59O1xuIl19
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnJlYWtwb2ludHMuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9Ac2VuaW9yc2lzdGVtYXMvYW5ndWxhci1jb21wb25lbnRzLyIsInNvdXJjZXMiOlsiY29tcG9uZW50cy91dGlscy9icmVha3BvaW50cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQUMsSUFBTSxXQUFXLEdBQUc7SUFDdkIsTUFBTSxFQUFFLENBQVU7SUFDbEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLEdBQVk7SUFDcEIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLElBQWE7SUFDckIsTUFBTSxFQUFFLFFBQVE7Q0FDbkIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBCcmVha3BvaW50cyA9IHtcbiAgICBTTV9NSU46IDAgYXMgY29uc3QsXG4gICAgU01fTUFYOiA3NjcgYXMgY29uc3QsXG4gICAgTURfTUlOOiA3NjggYXMgY29uc3QsXG4gICAgTURfTUFYOiA5OTEgYXMgY29uc3QsXG4gICAgTEdfTUlOOiA5OTIgYXMgY29uc3QsXG4gICAgTEdfTUFYOiAxMTk5IGFzIGNvbnN0LFxuICAgIFhMX01JTjogMTIwMCBhcyBjb25zdCxcbiAgICBYTF9NQVg6IEluZmluaXR5LFxufTtcbiJdfQ==