tudu-components 0.2.27 → 0.2.29

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.
@@ -38,10 +38,10 @@ export class CardLayoutComponent {
38
38
  }
39
39
  }
40
40
  CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
41
- CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator", hideHeader: "hideHeader", hideDescription: "hideDescription" }, ngImport: i0, template: "<div\n class=\"service-card group rounded-2xl border border-border-light bg-surface shadow-sm hover:shadow-md transition-all duration-300 relative mb-2 overflow-hidden dark:border-border-light\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-border-light bg-background/50\"\n style=\"padding: 24px !important\"\n >\n <div class=\"icon-style flex-shrink-0 flex items-center justify-center\">\n <ng-content select=\"[service-icon]\"></ng-content>\n </div>\n\n <div class=\"flex flex-col flex-1 min-w-0\">\n <div class=\"flex items-center justify-between gap-2\">\n <div\n class=\"truncate font-semibold text-text-primary text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0 flex items-center gap-2\">\n <!-- <ng-content select=\"[share-btn]\"></ng-content> -->\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-text-muted mt-0.5 tracking-wider\"\n >\n <ng-content select=\"[service-address]\"></ng-content>\n </div>\n </div>\n </div>\n\n <div class=\"p-4\">\n <div *ngIf=\"cardTemplateIndicator === 1\" class=\"mb-4\">\n <div class=\"flex items-center justify-between mb-3\">\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\n <ng-content select=\"[status-badge]\"></ng-content>\n </div>\n <div\n class=\"text-xs font-semibold px-2.5 py-1 rounded-full bg-medium text-text-secondary flex items-center justify-center border border-border-light\"\n >\n <ng-content select=\"[order-number]\"></ng-content>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-1.5 items-center\">\n <ng-content select=\"[filter-tag]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"text-xs font-semibold text-text-secondary mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-text-primary text-sm\">\n <ng-content select=\"[info-row]\"></ng-content>\n </div>\n\n <div class=\"mt-7 font-bold text-emerald-600 text-base\">\n <ng-content select=\"[price]\"></ng-content>\n </div>\n\n <div\n *ngIf=\"!hideDescription\"\n class=\"mt-3 p-3 bg-background border border-border-light rounded-xl\"\n >\n <div class=\"text-text-secondary text-xs leading-relaxed italic\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n </div>\n </div>\n\n <div class=\"px-4 py-3 bg-background/50 border-t border-border-light\">\n <div class=\"w-full\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".service-card{background:var(--light, #fff);border-radius:1rem;transition:all .3s ease;.service-card-header i {color: var(--primary); font-size: 20px;} .order-badge {background-color: #d3d3d32c; color: grey; border-radius: 25px; padding: 5px;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
41
+ CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator", hideHeader: "hideHeader", hideDescription: "hideDescription" }, ngImport: i0, template: "<div\r\n class=\"service-card group rounded-2xl border border-border-light bg-surface shadow-sm hover:shadow-md transition-all duration-300 relative mb-2 overflow-hidden dark:border-border-light\"\r\n>\r\n <div\r\n [class.force-show]=\"!hideHeader\"\r\n class=\"flex items-center gap-3 p-3.5 border-b border-border-light bg-background/50\"\r\n style=\"padding: 24px !important\"\r\n >\r\n <div class=\"icon-style flex-shrink-0 flex items-center justify-center\">\r\n <ng-content select=\"[service-icon]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"flex flex-col flex-1 min-w-0\">\r\n <div class=\"flex items-center justify-between gap-2\">\r\n <div\r\n class=\"truncate font-semibold text-text-primary text-[15px] leading-tight\"\r\n >\r\n <ng-content select=\"[service-title]\"></ng-content>\r\n </div>\r\n <div class=\"flex-shrink-0 flex items-center gap-2\">\r\n <!-- <ng-content select=\"[share-btn]\"></ng-content> -->\r\n <ng-content select=\"[details-btn]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"truncate text-[11px] font-medium text-text-muted mt-0.5 tracking-wider\"\r\n >\r\n <ng-content select=\"[service-address]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-4\">\r\n <div *ngIf=\"cardTemplateIndicator === 1\" class=\"mb-4\">\r\n <div class=\"flex items-center justify-between mb-3\">\r\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\r\n <ng-content select=\"[status-badge]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"text-xs font-semibold px-2.5 py-1 rounded-full bg-medium text-text-secondary flex items-center justify-center border border-border-light\"\r\n >\r\n <ng-content select=\"[order-number]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-1.5 items-center\">\r\n <ng-content select=\"[filter-tag]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"text-xs font-semibold text-text-secondary mb-3\"\r\n *ngIf=\"statusPedido === 'finalizado'\"\r\n >\r\n <ng-content select=\"[conclusion-date]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"text-text-primary text-sm\">\r\n <ng-content select=\"[info-row]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mt-7 font-bold text-emerald-600 text-base\">\r\n <ng-content select=\"[price]\"></ng-content>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!hideDescription\"\r\n class=\"mt-3 p-3 bg-background border border-border-light rounded-xl\"\r\n >\r\n <div class=\"text-text-secondary text-xs leading-relaxed italic\">\r\n <ng-content select=\"[description]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"px-4 py-3 bg-background/50 border-t border-border-light\">\r\n <div class=\"w-full\">\r\n <ng-content select=\"[main-btn]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".service-card{background:var(--light, #fff);border-radius:1rem;transition:all .3s ease;.service-card-header i {color: var(--primary); font-size: 20px;} .order-badge {background-color: #d3d3d32c; color: grey; border-radius: 25px; padding: 5px;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
42
42
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
43
43
  type: Component,
44
- args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card group rounded-2xl border border-border-light bg-surface shadow-sm hover:shadow-md transition-all duration-300 relative mb-2 overflow-hidden dark:border-border-light\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-border-light bg-background/50\"\n style=\"padding: 24px !important\"\n >\n <div class=\"icon-style flex-shrink-0 flex items-center justify-center\">\n <ng-content select=\"[service-icon]\"></ng-content>\n </div>\n\n <div class=\"flex flex-col flex-1 min-w-0\">\n <div class=\"flex items-center justify-between gap-2\">\n <div\n class=\"truncate font-semibold text-text-primary text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0 flex items-center gap-2\">\n <!-- <ng-content select=\"[share-btn]\"></ng-content> -->\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-text-muted mt-0.5 tracking-wider\"\n >\n <ng-content select=\"[service-address]\"></ng-content>\n </div>\n </div>\n </div>\n\n <div class=\"p-4\">\n <div *ngIf=\"cardTemplateIndicator === 1\" class=\"mb-4\">\n <div class=\"flex items-center justify-between mb-3\">\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\n <ng-content select=\"[status-badge]\"></ng-content>\n </div>\n <div\n class=\"text-xs font-semibold px-2.5 py-1 rounded-full bg-medium text-text-secondary flex items-center justify-center border border-border-light\"\n >\n <ng-content select=\"[order-number]\"></ng-content>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-1.5 items-center\">\n <ng-content select=\"[filter-tag]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"text-xs font-semibold text-text-secondary mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-text-primary text-sm\">\n <ng-content select=\"[info-row]\"></ng-content>\n </div>\n\n <div class=\"mt-7 font-bold text-emerald-600 text-base\">\n <ng-content select=\"[price]\"></ng-content>\n </div>\n\n <div\n *ngIf=\"!hideDescription\"\n class=\"mt-3 p-3 bg-background border border-border-light rounded-xl\"\n >\n <div class=\"text-text-secondary text-xs leading-relaxed italic\">\n <ng-content select=\"[description]\"></ng-content>\n </div>\n </div>\n </div>\n\n <div class=\"px-4 py-3 bg-background/50 border-t border-border-light\">\n <div class=\"w-full\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n </div>\n</div>\n", styles: [".service-card{background:var(--light, #fff);border-radius:1rem;transition:all .3s ease;.service-card-header i {color: var(--primary); font-size: 20px;} .order-badge {background-color: #d3d3d32c; color: grey; border-radius: 25px; padding: 5px;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"] }]
44
+ args: [{ selector: 'lib-card-layout', template: "<div\r\n class=\"service-card group rounded-2xl border border-border-light bg-surface shadow-sm hover:shadow-md transition-all duration-300 relative mb-2 overflow-hidden dark:border-border-light\"\r\n>\r\n <div\r\n [class.force-show]=\"!hideHeader\"\r\n class=\"flex items-center gap-3 p-3.5 border-b border-border-light bg-background/50\"\r\n style=\"padding: 24px !important\"\r\n >\r\n <div class=\"icon-style flex-shrink-0 flex items-center justify-center\">\r\n <ng-content select=\"[service-icon]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"flex flex-col flex-1 min-w-0\">\r\n <div class=\"flex items-center justify-between gap-2\">\r\n <div\r\n class=\"truncate font-semibold text-text-primary text-[15px] leading-tight\"\r\n >\r\n <ng-content select=\"[service-title]\"></ng-content>\r\n </div>\r\n <div class=\"flex-shrink-0 flex items-center gap-2\">\r\n <!-- <ng-content select=\"[share-btn]\"></ng-content> -->\r\n <ng-content select=\"[details-btn]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"truncate text-[11px] font-medium text-text-muted mt-0.5 tracking-wider\"\r\n >\r\n <ng-content select=\"[service-address]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"p-4\">\r\n <div *ngIf=\"cardTemplateIndicator === 1\" class=\"mb-4\">\r\n <div class=\"flex items-center justify-between mb-3\">\r\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\r\n <ng-content select=\"[status-badge]\"></ng-content>\r\n </div>\r\n <div\r\n class=\"text-xs font-semibold px-2.5 py-1 rounded-full bg-medium text-text-secondary flex items-center justify-center border border-border-light\"\r\n >\r\n <ng-content select=\"[order-number]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div class=\"flex flex-wrap gap-1.5 items-center\">\r\n <ng-content select=\"[filter-tag]\"></ng-content>\r\n </div>\r\n </div>\r\n\r\n <div\r\n class=\"text-xs font-semibold text-text-secondary mb-3\"\r\n *ngIf=\"statusPedido === 'finalizado'\"\r\n >\r\n <ng-content select=\"[conclusion-date]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"text-text-primary text-sm\">\r\n <ng-content select=\"[info-row]\"></ng-content>\r\n </div>\r\n\r\n <div class=\"mt-7 font-bold text-emerald-600 text-base\">\r\n <ng-content select=\"[price]\"></ng-content>\r\n </div>\r\n\r\n <div\r\n *ngIf=\"!hideDescription\"\r\n class=\"mt-3 p-3 bg-background border border-border-light rounded-xl\"\r\n >\r\n <div class=\"text-text-secondary text-xs leading-relaxed italic\">\r\n <ng-content select=\"[description]\"></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"px-4 py-3 bg-background/50 border-t border-border-light\">\r\n <div class=\"w-full\">\r\n <ng-content select=\"[main-btn]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".service-card{background:var(--light, #fff);border-radius:1rem;transition:all .3s ease;.service-card-header i {color: var(--primary); font-size: 20px;} .order-badge {background-color: #d3d3d32c; color: grey; border-radius: 25px; padding: 5px;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"] }]
45
45
  }], propDecorators: { statusPedido: [{
46
46
  type: Input
47
47
  }], cardTemplateIndicator: [{
@@ -51,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
51
51
  }], hideDescription: [{
52
52
  type: Input
53
53
  }] } });
54
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU1XLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLG9CQUFlLEdBQVksS0FBSyxDQUFDO0tBK0IzQztJQTdCQyxJQUFJLFdBQVc7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhELFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDekYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDekYsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGLEtBQUssVUFBVTtnQkFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGO2dCQUNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7U0FDMUY7SUFDSCxDQUFDOztnSEFsQ1UsbUJBQW1CO29HQUFuQixtQkFBbUIsK01DUGhDLHkzRkFrRkE7MkZEM0VhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNhcmQtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1sYXlvdXQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkTGF5b3V0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3RhdHVzUGVkaWRvOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY2FyZFRlbXBsYXRlSW5kaWNhdG9yOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBiYWRnZVN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c1BlZGlkbz8udG9Mb3dlckNhc2UoKTtcblxuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdmaW5hbGl6YWRvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLXN1Y2Nlc3MtYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtc3VjY2VzcyknIH07XG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtdGVhbC1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy10ZWFsKScgfTtcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICBjYXNlICdleHBpcmFkbyc6XG4gICAgICBjYXNlICdhdHJhc2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1kYW5nZXItYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyKScgfTtcbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1pbmZvLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLWluZm8pJyB9O1xuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLWRhbmdlciknIH07XG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgIGNhc2UgJ25lZ29jaWFjYW8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtd2FybmluZy1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nKScgfTtcbiAgICAgIGNhc2UgJ2VtX2FuZGFtZW50byc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXdhcm5pbmcpJyB9O1xuICAgICAgY2FzZSAncHJlc3RhZG9yX2FfY2FtaW5obyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXdhcm5pbmcpJyB9O1xuICAgICAgY2FzZSAncGVuZGVudGUnOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtcGVuZGluZy1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy1wZW5kaW5nKScgfTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1uZXV0cmFsLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLW5ldXRyYWwpJyB9O1xuICAgIH1cbiAgfVxufVxuXHJcbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgZ3JvdXAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1ib3JkZXItbGlnaHQgYmctc3VyZmFjZSBzaGFkb3ctc20gaG92ZXI6c2hhZG93LW1kIHRyYW5zaXRpb24tYWxsIGR1cmF0aW9uLTMwMCByZWxhdGl2ZSBtYi0yIG92ZXJmbG93LWhpZGRlbiBkYXJrOmJvcmRlci1ib3JkZXItbGlnaHRcIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzLmZvcmNlLXNob3ddPVwiIWhpZGVIZWFkZXJcIlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zLjUgYm9yZGVyLWIgYm9yZGVyLWJvcmRlci1saWdodCBiZy1iYWNrZ3JvdW5kLzUwXCJcbiAgICBzdHlsZT1cInBhZGRpbmc6IDI0cHggIWltcG9ydGFudFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1zdHlsZSBmbGV4LXNocmluay0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS1pY29uXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRydW5jYXRlIGZvbnQtc2VtaWJvbGQgdGV4dC10ZXh0LXByaW1hcnkgdGV4dC1bMTVweF0gbGVhZGluZy10aWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS10aXRsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMCBmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgIDwhLS0gPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NoYXJlLWJ0bl1cIj48L25nLWNvbnRlbnQ+IC0tPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXRhaWxzLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LVsxMXB4XSBmb250LW1lZGl1bSB0ZXh0LXRleHQtbXV0ZWQgbXQtMC41IHRyYWNraW5nLXdpZGVyXCJcbiAgICAgID5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlcnZpY2UtYWRkcmVzc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInAtNFwiPlxuICAgIDxkaXYgKm5nSWY9XCJjYXJkVGVtcGxhdGVJbmRpY2F0b3IgPT09IDFcIiBjbGFzcz1cIm1iLTRcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItM1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwic3RhdHVzLWJhZGdlXCIgW25nU3R5bGVdPVwiYmFkZ2VTdHlsZXNcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhdHVzLWJhZGdlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRleHQteHMgZm9udC1zZW1pYm9sZCBweC0yLjUgcHktMSByb3VuZGVkLWZ1bGwgYmctbWVkaXVtIHRleHQtdGV4dC1zZWNvbmRhcnkgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgYm9yZGVyIGJvcmRlci1ib3JkZXItbGlnaHRcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW29yZGVyLW51bWJlcl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtd3JhcCBnYXAtMS41IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlsdGVyLXRhZ11cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidGV4dC14cyBmb250LXNlbWlib2xkIHRleHQtdGV4dC1zZWNvbmRhcnkgbWItM1wiXG4gICAgICAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29uY2x1c2lvbi1kYXRlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXRleHQtcHJpbWFyeSB0ZXh0LXNtXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5mby1yb3ddXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm10LTcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC02MDAgdGV4dC1iYXNlXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJpY2VdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhaGlkZURlc2NyaXB0aW9uXCJcbiAgICAgIGNsYXNzPVwibXQtMyBwLTMgYmctYmFja2dyb3VuZCBib3JkZXIgYm9yZGVyLWJvcmRlci1saWdodCByb3VuZGVkLXhsXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidGV4dC10ZXh0LXNlY29uZGFyeSB0ZXh0LXhzIGxlYWRpbmctcmVsYXhlZCBpdGFsaWNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtNCBweS0zIGJnLWJhY2tncm91bmQvNTAgYm9yZGVyLXQgYm9yZGVyLWJvcmRlci1saWdodFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYWluLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU1XLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLG9CQUFlLEdBQVksS0FBSyxDQUFDO0tBK0IzQztJQTdCQyxJQUFJLFdBQVc7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhELFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDekYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxVQUFVLENBQUM7WUFDaEIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxlQUFlLENBQUM7WUFDckIsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDekYsS0FBSyxjQUFjO2dCQUNqQixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGLEtBQUsscUJBQXFCO2dCQUN4QixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGLEtBQUssVUFBVTtnQkFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGO2dCQUNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7U0FDMUY7SUFDSCxDQUFDOztnSEFsQ1UsbUJBQW1CO29HQUFuQixtQkFBbUIsK01DUGhDLDZoR0FrRkE7MkZEM0VhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWNhcmQtbGF5b3V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FyZC1sYXlvdXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENhcmRMYXlvdXRDb21wb25lbnQge1xyXG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XHJcbiAgQElucHV0KCkgY2FyZFRlbXBsYXRlSW5kaWNhdG9yOiBudW1iZXIgPSAwO1xyXG4gIEBJbnB1dCgpIGhpZGVIZWFkZXI6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSBoaWRlRGVzY3JpcHRpb246IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xyXG4gICAgY29uc3Qgc3RhdHVzID0gdGhpcy5zdGF0dXNQZWRpZG8/LnRvTG93ZXJDYXNlKCk7XHJcblxyXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcclxuICAgICAgY2FzZSAnZmluYWxpemFkbyc6XHJcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLXN1Y2Nlc3MtYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtc3VjY2VzcyknIH07XHJcbiAgICAgIGNhc2UgJ2NvbmNsdWlkbyc6XHJcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLXRlYWwtYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtdGVhbCknIH07XHJcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XHJcbiAgICAgIGNhc2UgJ2V4cGlyYWRvJzpcclxuICAgICAgY2FzZSAnYXRyYXNhZG8nOlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1kYW5nZXItYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyKScgfTtcclxuICAgICAgY2FzZSAncHVibGljYWRvJzpcclxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtaW5mby1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy1pbmZvKScgfTtcclxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1kYW5nZXItYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyKScgfTtcclxuICAgICAgY2FzZSAnZW0gbmVnb2NpYWNhbyc6XHJcbiAgICAgIGNhc2UgJ25lZ29jaWFjYW8nOlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXdhcm5pbmcpJyB9O1xyXG4gICAgICBjYXNlICdlbV9hbmRhbWVudG8nOlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXdhcm5pbmcpJyB9O1xyXG4gICAgICBjYXNlICdwcmVzdGFkb3JfYV9jYW1pbmhvJzpcclxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtd2FybmluZy1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy13YXJuaW5nKScgfTtcclxuICAgICAgY2FzZSAncGVuZGVudGUnOlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1wZW5kaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXBlbmRpbmcpJyB9O1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1uZXV0cmFsLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLW5ldXRyYWwpJyB9O1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG5cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwic2VydmljZS1jYXJkIGdyb3VwIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItYm9yZGVyLWxpZ2h0IGJnLXN1cmZhY2Ugc2hhZG93LXNtIGhvdmVyOnNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItMiBvdmVyZmxvdy1oaWRkZW4gZGFyazpib3JkZXItYm9yZGVyLWxpZ2h0XCJcclxuPlxyXG4gIDxkaXZcclxuICAgIFtjbGFzcy5mb3JjZS1zaG93XT1cIiFoaWRlSGVhZGVyXCJcclxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zLjUgYm9yZGVyLWIgYm9yZGVyLWJvcmRlci1saWdodCBiZy1iYWNrZ3JvdW5kLzUwXCJcclxuICAgIHN0eWxlPVwicGFkZGluZzogMjRweCAhaW1wb3J0YW50XCJcclxuICA+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1zdHlsZSBmbGV4LXNocmluay0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWljb25dXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xIG1pbi13LTBcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBnYXAtMlwiPlxyXG4gICAgICAgIDxkaXZcclxuICAgICAgICAgIGNsYXNzPVwidHJ1bmNhdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSB0ZXh0LVsxNXB4XSBsZWFkaW5nLXRpZ2h0XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS10aXRsZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTJcIj5cclxuICAgICAgICAgIDwhLS0gPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NoYXJlLWJ0bl1cIj48L25nLWNvbnRlbnQ+IC0tPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RldGFpbHMtYnRuXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LVsxMXB4XSBmb250LW1lZGl1bSB0ZXh0LXRleHQtbXV0ZWQgbXQtMC41IHRyYWNraW5nLXdpZGVyXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWFkZHJlc3NdXCI+PC9uZy1jb250ZW50PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwicC00XCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiY2FyZFRlbXBsYXRlSW5kaWNhdG9yID09PSAxXCIgY2xhc3M9XCJtYi00XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gbWItM1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIiBbbmdTdHlsZV09XCJiYWRnZVN0eWxlc1wiPlxyXG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXR1cy1iYWRnZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdlxyXG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgcHgtMi41IHB5LTEgcm91bmRlZC1mdWxsIGJnLW1lZGl1bSB0ZXh0LXRleHQtc2Vjb25kYXJ5IGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGJvcmRlciBib3JkZXItYm9yZGVyLWxpZ2h0XCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3JkZXItbnVtYmVyXVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEuNSBpdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZmlsdGVyLXRhZ11cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXRleHQtc2Vjb25kYXJ5IG1iLTNcIlxyXG4gICAgICAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NvbmNsdXNpb24tZGF0ZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwidGV4dC10ZXh0LXByaW1hcnkgdGV4dC1zbVwiPlxyXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5mby1yb3ddXCI+PC9uZy1jb250ZW50PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cIm10LTcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC02MDAgdGV4dC1iYXNlXCI+XHJcbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmljZV1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2XHJcbiAgICAgICpuZ0lmPVwiIWhpZGVEZXNjcmlwdGlvblwiXHJcbiAgICAgIGNsYXNzPVwibXQtMyBwLTMgYmctYmFja2dyb3VuZCBib3JkZXIgYm9yZGVyLWJvcmRlci1saWdodCByb3VuZGVkLXhsXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtdGV4dC1zZWNvbmRhcnkgdGV4dC14cyBsZWFkaW5nLXJlbGF4ZWQgaXRhbGljXCI+XHJcbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cInB4LTQgcHktMyBiZy1iYWNrZ3JvdW5kLzUwIGJvcmRlci10IGJvcmRlci1ib3JkZXItbGlnaHRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cclxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21haW4tYnRuXVwiPjwvbmctY29udGVudD5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -116,10 +116,10 @@ export class CustomModalComponent {
116
116
  }
117
117
  }
118
118
  CustomModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
119
- CustomModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CustomModalComponent, selector: "lib-custom-modal", inputs: { modalId: "modalId", title: "title", message: "message", closeButtonText: "closeButtonText", actionButtonText: "actionButtonText", paymentMethod: "paymentMethod", errorDetails: "errorDetails", showModal: "showModal", messageTitle: "messageTitle", showBtn: "showBtn", priceNegotiated: "priceNegotiated", messageBody: "messageBody", isLoadingBtn: "isLoadingBtn", disabledBtn: "disabledBtn", isLocked: "isLocked" }, outputs: { modalClosed: "modalClosed", modalAction: "modalAction", closeAction: "closeAction" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-surface w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-border-light flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-medium rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-text-primary mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-text-secondary mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 dark:bg-red-950/20 rounded-2xl text-left border border-red-100 dark:border-red-900/30\">\n <p class=\"text-[10px] font-bold text-red-700 dark:text-red-400 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 dark:text-red-300 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal(true)\"\n class=\"w-full py-2 text-text-muted font-semibold hover:text-text-primary transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
119
+ CustomModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CustomModalComponent, selector: "lib-custom-modal", inputs: { modalId: "modalId", title: "title", message: "message", closeButtonText: "closeButtonText", actionButtonText: "actionButtonText", paymentMethod: "paymentMethod", errorDetails: "errorDetails", showModal: "showModal", messageTitle: "messageTitle", showBtn: "showBtn", priceNegotiated: "priceNegotiated", messageBody: "messageBody", isLoadingBtn: "isLoadingBtn", disabledBtn: "disabledBtn", isLocked: "isLocked" }, outputs: { modalClosed: "modalClosed", modalAction: "modalAction", closeAction: "closeAction" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\r\n *ngIf=\"showModal\"\r\n class=\"custom-modal-root fixed inset-0 z-[9999] flex flex-col justify-end md:justify-center items-center pointer-events-auto\"\r\n (touchmove)=\"$event.stopPropagation()\"\r\n>\r\n <!-- Fundo escuro overlay -->\r\n <div\r\n class=\"absolute inset-0 bg-slate-900/60 backdrop-blur-sm transition-opacity duration-500\"\r\n [class.opacity-0]=\"isClosing\"\r\n (click)=\"!isLocked && closeModal()\"\r\n (touchmove)=\"$event.preventDefault()\"\r\n ></div>\r\n\r\n <!-- Container Principal do Modal -->\r\n <section\r\n class=\"relative w-full md:max-w-lg bg-surface max-h-[100dvh] md:max-h-[85dvh] rounded-t-[2.5rem] md:rounded-[2.5rem] shadow-2xl overflow-hidden flex flex-col\"\r\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- CABE\u00C7ALHO FIXO -->\r\n <div\r\n class=\"px-6 pt-4 pb-2 bg-surface z-10 shrink-0 flex justify-center\"\r\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\r\n (click)=\"!isLocked && closeModal()\"\r\n >\r\n <div class=\"w-12 h-1.5 bg-medium rounded-full\"></div>\r\n </div>\r\n\r\n <!-- \u00C1REA DE SCROLL -->\r\n <div\r\n class=\"flex-1 overflow-y-auto scroll-smooth overscroll-contain bg-surface custom-scrollbar px-6 pt-2\"\r\n style=\"touch-action: pan-y; overscroll-behavior: contain\"\r\n (touchmove)=\"$event.stopPropagation()\"\r\n >\r\n <div class=\"flex flex-col items-center text-center w-full\">\r\n <!-- \u00CDcone -->\r\n <div class=\"relative mb-4\">\r\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\r\n </div>\r\n </div>\r\n\r\n <!-- T\u00EDtulo -->\r\n <h2 class=\"text-2xl font-bold text-text-primary mb-2\">{{ messageTitle }}</h2>\r\n\r\n <!-- Corpo da Mensagem -->\r\n <p *ngIf=\"messageBody\" class=\"text-text-secondary mb-4\">{{ messageBody }}</p>\r\n\r\n <!-- Conte\u00FAdo Din\u00E2mico -->\r\n <div class=\"modal-dynamic-content text-left w-full pb-2\">\r\n <ng-content select=\"[optional-content]\"></ng-content>\r\n </div>\r\n\r\n <!-- Erros -->\r\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 dark:bg-red-950/20 rounded-2xl text-left border border-red-100 dark:border-red-900/30 w-full mb-4\">\r\n <p class=\"text-[10px] font-bold text-red-700 dark:text-red-400 uppercase mb-1\">Log do sistema:</p>\r\n <pre class=\"text-[11px] text-red-600 dark:text-red-300 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\r\n </div>\r\n </div>\r\n\r\n <!-- BOT\u00D5ES (AGORA DENTRO DO SCROLL) -->\r\n <div class=\"w-full pt-4 pb-6 mt-4 border-t border-border-light/50\">\r\n <div class=\"flex flex-col w-full gap-3\">\r\n <button\r\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\r\n *ngIf=\"actionButtonText\"\r\n (click)=\"actionModal()\"\r\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\r\n [style.background-color]=\"'var(--primary)'\"\r\n >\r\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\r\n <ng-container *ngIf=\"isLoadingBtn\">\r\n <span>Processando</span>\r\n <i class=\"fas fa-circle-notch fa-spin\"></i>\r\n </ng-container>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"showBtn\"\r\n (click)=\"closeModal(true)\"\r\n class=\"w-full py-2 text-text-muted font-semibold hover:text-text-primary transition-colors\"\r\n >\r\n {{ closeButtonText }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-scroll-area{overflow-y:auto;overflow-x:hidden}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.custom-scrollbar::-webkit-scrollbar{display:none;width:0}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.custom-modal-root)){overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
120
120
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, decorators: [{
121
121
  type: Component,
122
- args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-surface w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-border-light flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-medium rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-text-primary mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-text-secondary mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 dark:bg-red-950/20 rounded-2xl text-left border border-red-100 dark:border-red-900/30\">\n <p class=\"text-[10px] font-bold text-red-700 dark:text-red-400 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 dark:text-red-300 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal(true)\"\n class=\"w-full py-2 text-text-muted font-semibold hover:text-text-primary transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"] }]
122
+ args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\r\n *ngIf=\"showModal\"\r\n class=\"custom-modal-root fixed inset-0 z-[9999] flex flex-col justify-end md:justify-center items-center pointer-events-auto\"\r\n (touchmove)=\"$event.stopPropagation()\"\r\n>\r\n <!-- Fundo escuro overlay -->\r\n <div\r\n class=\"absolute inset-0 bg-slate-900/60 backdrop-blur-sm transition-opacity duration-500\"\r\n [class.opacity-0]=\"isClosing\"\r\n (click)=\"!isLocked && closeModal()\"\r\n (touchmove)=\"$event.preventDefault()\"\r\n ></div>\r\n\r\n <!-- Container Principal do Modal -->\r\n <section\r\n class=\"relative w-full md:max-w-lg bg-surface max-h-[100dvh] md:max-h-[85dvh] rounded-t-[2.5rem] md:rounded-[2.5rem] shadow-2xl overflow-hidden flex flex-col\"\r\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- CABE\u00C7ALHO FIXO -->\r\n <div\r\n class=\"px-6 pt-4 pb-2 bg-surface z-10 shrink-0 flex justify-center\"\r\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\r\n (click)=\"!isLocked && closeModal()\"\r\n >\r\n <div class=\"w-12 h-1.5 bg-medium rounded-full\"></div>\r\n </div>\r\n\r\n <!-- \u00C1REA DE SCROLL -->\r\n <div\r\n class=\"flex-1 overflow-y-auto scroll-smooth overscroll-contain bg-surface custom-scrollbar px-6 pt-2\"\r\n style=\"touch-action: pan-y; overscroll-behavior: contain\"\r\n (touchmove)=\"$event.stopPropagation()\"\r\n >\r\n <div class=\"flex flex-col items-center text-center w-full\">\r\n <!-- \u00CDcone -->\r\n <div class=\"relative mb-4\">\r\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\r\n </div>\r\n </div>\r\n\r\n <!-- T\u00EDtulo -->\r\n <h2 class=\"text-2xl font-bold text-text-primary mb-2\">{{ messageTitle }}</h2>\r\n\r\n <!-- Corpo da Mensagem -->\r\n <p *ngIf=\"messageBody\" class=\"text-text-secondary mb-4\">{{ messageBody }}</p>\r\n\r\n <!-- Conte\u00FAdo Din\u00E2mico -->\r\n <div class=\"modal-dynamic-content text-left w-full pb-2\">\r\n <ng-content select=\"[optional-content]\"></ng-content>\r\n </div>\r\n\r\n <!-- Erros -->\r\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 dark:bg-red-950/20 rounded-2xl text-left border border-red-100 dark:border-red-900/30 w-full mb-4\">\r\n <p class=\"text-[10px] font-bold text-red-700 dark:text-red-400 uppercase mb-1\">Log do sistema:</p>\r\n <pre class=\"text-[11px] text-red-600 dark:text-red-300 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\r\n </div>\r\n </div>\r\n\r\n <!-- BOT\u00D5ES (AGORA DENTRO DO SCROLL) -->\r\n <div class=\"w-full pt-4 pb-6 mt-4 border-t border-border-light/50\">\r\n <div class=\"flex flex-col w-full gap-3\">\r\n <button\r\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\r\n *ngIf=\"actionButtonText\"\r\n (click)=\"actionModal()\"\r\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\r\n [style.background-color]=\"'var(--primary)'\"\r\n >\r\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\r\n <ng-container *ngIf=\"isLoadingBtn\">\r\n <span>Processando</span>\r\n <i class=\"fas fa-circle-notch fa-spin\"></i>\r\n </ng-container>\r\n </button>\r\n\r\n <button\r\n *ngIf=\"showBtn\"\r\n (click)=\"closeModal(true)\"\r\n class=\"w-full py-2 text-text-muted font-semibold hover:text-text-primary transition-colors\"\r\n >\r\n {{ closeButtonText }}\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-scroll-area{overflow-y:auto;overflow-x:hidden}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.custom-scrollbar::-webkit-scrollbar{display:none;width:0}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.custom-modal-root)){overflow:hidden}\n"] }]
123
123
  }], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { modalId: [{
124
124
  type: Input
125
125
  }], title: [{
@@ -160,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
160
160
  type: HostListener,
161
161
  args: ['window:popstate']
162
162
  }] } });
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBNkIvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUI3QixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDOUMsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixnQkFBVyxHQUFXLDJDQUEyQyxDQUFDO1FBRWxFLGdC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cUdBQXBCLG9CQUFvQiwybkJDbEJqQyxvM0ZBbUVNOzJGRGpETyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLEtBQUs7K0ZBS1IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQWtHTixVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG50eXBlIE1vZGFsVHlwZSA9ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jdXN0b20tbW9kYWwnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1tb2RhbC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kYWxJZCA9ICdjdXN0b21Nb2RhbCc7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnQXZpc28nO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRleHQgPSAnRmVjaGFyJztcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgcGF5bWVudE1ldGhvZDogJ3BpeCcgfCAnY3JlZGl0JyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVycm9yRGV0YWlsczogYW55ID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgpIG1vZGFsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBtb2RhbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dNb2RhbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2VUaXRsZTogc3RyaW5nID0gJ1BhZ2FtZW50byBBcHJvdmFkbyEnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHByaWNlTmVnb3RpYXRlZCA9IDA7XHJcbiAgQElucHV0KCkgbWVzc2FnZUJvZHk6IHN0cmluZyA9ICdTZXUgcGFnYW1lbnRvIGZvaSBwcm9jZXNzYWRvIGNvbSBzdWNlc3NvLic7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nQnRuOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIPCflJIgTk9WQSBQUk9QUklFREFERTogVHJhdmEgbyBmZWNoYW1lbnRvIGRvIG1vZGFsXHJcbiAgQElucHV0KCkgaXNMb2NrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kYWxJY29uOiBzdHJpbmcgPSAnZmEtY2hlY2snO1xyXG4gIG1vZGFsSWNvbkNvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi02MDAnO1xyXG4gIG1vZGFsQmdDb2xvcjogc3RyaW5nID0gJ2JnLWdyZWVuLTEwMCc7XHJcbiAgaXNDbG9zaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmluY2x1ZGVzKCdtb2RhbE9wZW4nKSkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW4oXHJcbiAgICB0eXBlOiBNb2RhbFR5cGUsXHJcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSAnJyxcclxuICAgIHBheW1lbnRNZXRob2Q/OiAncGl4JyB8ICdjcmVkaXQnLFxyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWd1cmVNb2RhbCh0eXBlLCBtZXNzYWdlKTtcclxuICAgIGlmIChwYXltZW50TWV0aG9kKSB0aGlzLnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZU1vZGFsKHR5cGU6IE1vZGFsVHlwZSwgbWVzc2FnZTogc3RyaW5nID0gJycsIHRpdGxlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICB0aGlzLnNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgdGhpcy5zZXRFcnJvclN0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxyXG4gICAgICAgIHRoaXMuc2V0V2FybmluZ1N0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtY2hlY2stY2lyY2xlJztcclxuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi1zdWNjZXNzJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ21vZGFsLWJnLXN1Y2Nlc3MnO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnU3VjZXNzbyEnO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ09wZXJhw6fDo28gcmVhbGl6YWRhIGNvbSBzdWNlc3NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVycm9yU3R5bGVzKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxJY29uID0gJ2ZhLXRpbWVzLWNpcmNsZSc7XHJcbiAgICB0aGlzLm1vZGFsSWNvbkNvbG9yID0gJ21vZGFsLWljb24tZXJyb3InO1xyXG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctZXJyb3InO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnT3BzISBBbGdvIGRldSBlcnJhZG8nO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ07Do28gY29uc2VndWltb3MgcHJvY2Vzc2FyIHN1YSBzb2xpY2l0YcOnw6NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFdhcm5pbmdTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtaW5mby1jaXJjbGUnO1xyXG4gICAgdGhpcy5tb2RhbEljb25Db2xvciA9ICd0ZXh0LWJsdWUtNjAwJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ2JnLWJsdWUtNTAnO1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVRpdGxlID0gdGl0bGUgfHwgJ0F0ZW7Dp8Ojbyc7XHJcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci4nO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uTW9kYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IHRydWU7XHJcbiAgICAgIHRoaXMubW9kYWxBY3Rpb24uZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RhbEFjdGlvbi5lbWl0KCk7XHJcbiAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbChmcm9tQnV0dG9uOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG93TW9kYWwgfHwgdGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XHJcbiAgICBpZiAoZnJvbUJ1dHRvbikge1xyXG4gICAgICB0aGlzLmNsb3NlQWN0aW9uLmVtaXQoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgLy8g4pyFIEludGVyY2VwdGEgbyBib3TDo28gdm9sdGFyIGRvIGNlbHVsYXIvYnJvd3NlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXHJcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3dNb2RhbCkge1xyXG4gICAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xyXG4gICAgICAgIC8vIPCflJIgU2UgZXN0aXZlciB0cmF2YWRvLCBcImFudWxhbW9zXCIgbyB2b2x0YXIgYWRpY2lvbmFuZG8gbyBoYXNoIGRlIG5vdm9cclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcbiAgKm5nSWY9XCJzaG93TW9kYWxcIlxuICBjbGFzcz1cIm1vZGFsLW92ZXJsYXktZml4ZWRcIlxuICBbbmdDbGFzc109XCJ7ICdvdmVybGF5LWhpZGUnOiBpc0Nsb3NpbmcgfVwiXG4gIChjbGljayk9XCIhaXNMb2NrZWQgJiYgY2xvc2VNb2RhbCgpXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYmctc3VyZmFjZSB3LWZ1bGwgbWF4LXctMnhsIHJvdW5kZWQtdC1bMi41cmVtXSBwLTYgc2hhZG93LTJ4bCBib3JkZXItdCBib3JkZXItYm9yZGVyLWxpZ2h0IGZsZXggZmxleC1jb2xcIlxuICAgIFtuZ0NsYXNzXT1cImlzQ2xvc2luZyA/ICdhbmltYXRlLXNsaWRlLWRvd24nIDogJ2FuaW1hdGUtc2xpZGUtdXAnXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTQgLW10LTIgZmxleCBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICBbbmdDbGFzc109XCJpc0xvY2tlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcgOiAnY3Vyc29yLXBvaW50ZXInXCJcbiAgICAgIChjbGljayk9XCIhaXNMb2NrZWQgJiYgY2xvc2VNb2RhbCgpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMiBoLTEuNSBiZy1tZWRpdW0gcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBtYi00XCI+XG4gICAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGFsQmdDb2xvclwiIGNsYXNzPVwidy0yMCBoLTIwIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTQwXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPGkgW2NsYXNzXT1cIm1vZGFsSWNvbiArICcgJyArIG1vZGFsSWNvbkNvbG9yXCIgY2xhc3M9XCJmYXMgdGV4dC0zeGxcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSBtYi0yXCI+e3sgbWVzc2FnZVRpdGxlIH19PC9oMj5cblxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBtb2RhbC1zY3JvbGwtYXJlYSBweC0yIGN1c3RvbS1zY3JvbGxiYXJcIj5cbiAgICAgICAgPHAgKm5nSWY9XCJtZXNzYWdlQm9keVwiIGNsYXNzPVwidGV4dC10ZXh0LXNlY29uZGFyeSBtYi00XCI+e3sgbWVzc2FnZUJvZHkgfX08L3A+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWR5bmFtaWMtY29udGVudCB0ZXh0LWxlZnRcIj5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3B0aW9uYWwtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJlcnJvckRldGFpbHNcIiBjbGFzcz1cIm10LTQgcC00IGJnLXJlZC01MCBkYXJrOmJnLXJlZC05NTAvMjAgcm91bmRlZC0yeGwgdGV4dC1sZWZ0IGJvcmRlciBib3JkZXItcmVkLTEwMCBkYXJrOmJvcmRlci1yZWQtOTAwLzMwXCI+XG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWJvbGQgdGV4dC1yZWQtNzAwIGRhcms6dGV4dC1yZWQtNDAwIHVwcGVyY2FzZSBtYi0xXCI+TG9nIGRvIHNpc3RlbWE6PC9wPlxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC0zMDAgZm9udC1tb25vIHdoaXRlc3BhY2UtcHJlLXdyYXBcIj57eyBlcnJvckRldGFpbHMgfCBqc29uIH19PC9wcmU+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJtdC02IGZsZXggZmxleC1jb2wgdy1mdWxsIGdhcC0zIHBiLTRcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ0biB8fCAocHJpY2VOZWdvdGlhdGVkIDw9IDAgJiYgYWN0aW9uQnV0dG9uVGV4dCA9PT0gJ05lZ29jaWFyJylcIlxuICAgICAgICAgICpuZ0lmPVwiYWN0aW9uQnV0dG9uVGV4dFwiXG4gICAgICAgICAgKGNsaWNrKT1cImFjdGlvbk1vZGFsKClcIlxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTQgdGV4dC13aGl0ZSByb3VuZGVkLTJ4bCBmb250LWJvbGQgYWN0aXZlOnNjYWxlLVswLjk4XSB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMyBzaGFkb3ctbGcgYnRuLXByaW1hcnktY3VzdG9tXCJcbiAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndmFyKC0tcHJpbWFyeSknXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzTG9hZGluZ0J0blwiPnt7IGFjdGlvbkJ1dHRvblRleHQgfX08L3NwYW4+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ0J0blwiPlxuICAgICAgICAgICAgPHNwYW4+UHJvY2Vzc2FuZG88L3NwYW4+XG4gICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpblwiPjwvaT5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0lmPVwic2hvd0J0blwiXG4gICAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwodHJ1ZSlcIlxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgdGV4dC10ZXh0LW11dGVkIGZvbnQtc2VtaWJvbGQgaG92ZXI6dGV4dC10ZXh0LXByaW1hcnkgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY2xvc2VCdXR0b25UZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBNkIvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUI3QixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDOUMsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixnQkFBVyxHQUFXLDJDQUEyQyxDQUFDO1FBRWxFLGdCQUFXLEdBQVksS0FBSyxDQUFDO1FBRXRDLG1EQUFtRDtRQUMxQyxhQUFRLEdBQVksS0FBSyxDQUFDO1FBRW5DLGNBQVMsR0FBVyxVQUFVLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxnQkFBZ0IsQ0FBQztRQUMxQyxpQkFBWSxHQUFXLGNBQWMsQ0FBQztRQUN0QyxjQUFTLEdBQUcsS0FBSyxDQUFDO0lBRXVCLENBQUM7SUFFMUMsUUFBUSxLQUFVLENBQUM7SUFFbkIsU0FBUztRQUNQLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQztTQUN2RDtJQUNILENBQUM7SUFFRCxJQUFJLENBQ0YsSUFBZSxFQUNmLFVBQWtCLEVBQUUsRUFDcEIsYUFBZ0M7UUFFaEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDbkMsSUFBSSxhQUFhO1lBQUUsSUFBSSxDQUFDLGFBQWEsR0FBRyxhQUFhLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxjQUFjLENBQUMsSUFBZSxFQUFFLFVBQWtCLEVBQUUsRUFBRSxLQUFjO1FBQ2xFLElBQUksSUFBSSxDQUFDLFlBQVksS0FBSyxTQUFTLEVBQUU7WUFDbkMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7UUFFRCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUN0QyxNQUFNO1lBQ1IsS0FBSyxPQUFPO2dCQUNWLElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxFQUFFLEtBQUssQ0FBQyxDQUFDO2dCQUNwQyxNQUFNO1lBQ1IsS0FBSyxTQUFTO2dCQUNaLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLENBQUM7Z0JBQ3RDLE1BQU07U0FDVDtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsb0JBQW9CLENBQUM7UUFDM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxrQkFBa0IsQ0FBQztRQUN2QyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssSUFBSSxVQUFVLENBQUM7UUFDeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLElBQUksaUNBQWlDLENBQUM7SUFDbEUsQ0FBQztJQUVPLGNBQWMsQ0FBQyxPQUFlLEVBQUUsS0FBYztRQUNwRCxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssSUFBSSxzQkFBc0IsQ0FBQztRQUNwRCxJQUFJLENBQUMsV0FBVyxHQUFHLE9BQU8sSUFBSSw0Q0FBNEMsQ0FBQztJQUM3RSxDQUFDO0lBRU8sZ0JBQWdCLENBQUMsT0FBZSxFQUFFLEtBQWM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNsQyxJQUFJLENBQUMsY0FBYyxHQUFHLGVBQWUsQ0FBQztRQUN0QyxJQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUVqQyxJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssSUFBSSxTQUFTLENBQUM7UUFDdkMsSUFBSSxDQUFDLFdBQVcsR0FBRyxPQUFPLElBQUksd0NBQXdDLENBQUM7SUFDekUsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxZQUFZLEtBQUssU0FBUyxFQUFFO1lBQ25DLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7YUFBTTtZQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDeEIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1NBQ25CO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxhQUFzQixLQUFLO1FBQ3BDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQyxTQUFTO1lBQUUsT0FBTztRQUU5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLFVBQVUsRUFBRTtZQUNkLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7U0FDekI7UUFFRCxVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7SUFDVixDQUFDO0lBQ0QsaURBQWlEO0lBRWpELFVBQVU7UUFDUixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO2dCQUNqQix3RUFBd0U7Z0JBQ3hFLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEdBQUcsWUFBWSxDQUFDLENBQUM7YUFDdkQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7Z0JBQ3ZCLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLENBQUM7YUFDekI7U0FDRjtJQUNILENBQUM7O2lIQWxJVSxvQkFBb0I7cUdBQXBCLG9CQUFvQiwybkJDbEJqQyw0bElBeUZNOzJGRHZFTyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLEtBQUs7K0ZBS1IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQWtHTixVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG50eXBlIE1vZGFsVHlwZSA9ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jdXN0b20tbW9kYWwnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1tb2RhbC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kYWxJZCA9ICdjdXN0b21Nb2RhbCc7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnQXZpc28nO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRleHQgPSAnRmVjaGFyJztcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgcGF5bWVudE1ldGhvZDogJ3BpeCcgfCAnY3JlZGl0JyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVycm9yRGV0YWlsczogYW55ID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgpIG1vZGFsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBtb2RhbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dNb2RhbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2VUaXRsZTogc3RyaW5nID0gJ1BhZ2FtZW50byBBcHJvdmFkbyEnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHByaWNlTmVnb3RpYXRlZCA9IDA7XHJcbiAgQElucHV0KCkgbWVzc2FnZUJvZHk6IHN0cmluZyA9ICdTZXUgcGFnYW1lbnRvIGZvaSBwcm9jZXNzYWRvIGNvbSBzdWNlc3NvLic7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nQnRuOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIPCflJIgTk9WQSBQUk9QUklFREFERTogVHJhdmEgbyBmZWNoYW1lbnRvIGRvIG1vZGFsXHJcbiAgQElucHV0KCkgaXNMb2NrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kYWxJY29uOiBzdHJpbmcgPSAnZmEtY2hlY2snO1xyXG4gIG1vZGFsSWNvbkNvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi02MDAnO1xyXG4gIG1vZGFsQmdDb2xvcjogc3RyaW5nID0gJ2JnLWdyZWVuLTEwMCc7XHJcbiAgaXNDbG9zaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmluY2x1ZGVzKCdtb2RhbE9wZW4nKSkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW4oXHJcbiAgICB0eXBlOiBNb2RhbFR5cGUsXHJcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSAnJyxcclxuICAgIHBheW1lbnRNZXRob2Q/OiAncGl4JyB8ICdjcmVkaXQnLFxyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWd1cmVNb2RhbCh0eXBlLCBtZXNzYWdlKTtcclxuICAgIGlmIChwYXltZW50TWV0aG9kKSB0aGlzLnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZU1vZGFsKHR5cGU6IE1vZGFsVHlwZSwgbWVzc2FnZTogc3RyaW5nID0gJycsIHRpdGxlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICB0aGlzLnNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgdGhpcy5zZXRFcnJvclN0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxyXG4gICAgICAgIHRoaXMuc2V0V2FybmluZ1N0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtY2hlY2stY2lyY2xlJztcclxuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi1zdWNjZXNzJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ21vZGFsLWJnLXN1Y2Nlc3MnO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnU3VjZXNzbyEnO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ09wZXJhw6fDo28gcmVhbGl6YWRhIGNvbSBzdWNlc3NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVycm9yU3R5bGVzKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxJY29uID0gJ2ZhLXRpbWVzLWNpcmNsZSc7XHJcbiAgICB0aGlzLm1vZGFsSWNvbkNvbG9yID0gJ21vZGFsLWljb24tZXJyb3InO1xyXG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctZXJyb3InO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnT3BzISBBbGdvIGRldSBlcnJhZG8nO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ07Do28gY29uc2VndWltb3MgcHJvY2Vzc2FyIHN1YSBzb2xpY2l0YcOnw6NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFdhcm5pbmdTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtaW5mby1jaXJjbGUnO1xyXG4gICAgdGhpcy5tb2RhbEljb25Db2xvciA9ICd0ZXh0LWJsdWUtNjAwJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ2JnLWJsdWUtNTAnO1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVRpdGxlID0gdGl0bGUgfHwgJ0F0ZW7Dp8Ojbyc7XHJcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci4nO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uTW9kYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IHRydWU7XHJcbiAgICAgIHRoaXMubW9kYWxBY3Rpb24uZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RhbEFjdGlvbi5lbWl0KCk7XHJcbiAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbChmcm9tQnV0dG9uOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG93TW9kYWwgfHwgdGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XHJcbiAgICBpZiAoZnJvbUJ1dHRvbikge1xyXG4gICAgICB0aGlzLmNsb3NlQWN0aW9uLmVtaXQoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgLy8g4pyFIEludGVyY2VwdGEgbyBib3TDo28gdm9sdGFyIGRvIGNlbHVsYXIvYnJvd3NlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXHJcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3dNb2RhbCkge1xyXG4gICAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xyXG4gICAgICAgIC8vIPCflJIgU2UgZXN0aXZlciB0cmF2YWRvLCBcImFudWxhbW9zXCIgbyB2b2x0YXIgYWRpY2lvbmFuZG8gbyBoYXNoIGRlIG5vdm9cclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cInNob3dNb2RhbFwiXHJcbiAgY2xhc3M9XCJjdXN0b20tbW9kYWwtcm9vdCBmaXhlZCBpbnNldC0wIHotWzk5OTldIGZsZXggZmxleC1jb2wganVzdGlmeS1lbmQgbWQ6anVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHBvaW50ZXItZXZlbnRzLWF1dG9cIlxyXG4gICh0b3VjaG1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG4gIDwhLS0gRnVuZG8gZXNjdXJvIG92ZXJsYXkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLXNsYXRlLTkwMC82MCBiYWNrZHJvcC1ibHVyLXNtIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi01MDBcIlxyXG4gICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0Nsb3NpbmdcIlxyXG4gICAgKGNsaWNrKT1cIiFpc0xvY2tlZCAmJiBjbG9zZU1vZGFsKClcIlxyXG4gICAgKHRvdWNobW92ZSk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgPjwvZGl2PlxyXG5cclxuICA8IS0tIENvbnRhaW5lciBQcmluY2lwYWwgZG8gTW9kYWwgLS0+XHJcbiAgPHNlY3Rpb25cclxuICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIG1kOm1heC13LWxnIGJnLXN1cmZhY2UgbWF4LWgtWzEwMGR2aF0gbWQ6bWF4LWgtWzg1ZHZoXSByb3VuZGVkLXQtWzIuNXJlbV0gbWQ6cm91bmRlZC1bMi41cmVtXSBzaGFkb3ctMnhsIG92ZXJmbG93LWhpZGRlbiBmbGV4IGZsZXgtY29sXCJcclxuICAgIFtuZ0NsYXNzXT1cImlzQ2xvc2luZyA/ICdhbmltYXRlLXNsaWRlLWRvd24nIDogJ2FuaW1hdGUtc2xpZGUtdXAnXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID5cclxuICAgIDwhLS0gQ0FCRcOHQUxITyBGSVhPIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cInB4LTYgcHQtNCBwYi0yIGJnLXN1cmZhY2Ugei0xMCBzaHJpbmstMCBmbGV4IGp1c3RpZnktY2VudGVyXCJcclxuICAgICAgW25nQ2xhc3NdPVwiaXNMb2NrZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnIDogJ2N1cnNvci1wb2ludGVyJ1wiXHJcbiAgICAgIChjbGljayk9XCIhaXNMb2NrZWQgJiYgY2xvc2VNb2RhbCgpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cInctMTIgaC0xLjUgYmctbWVkaXVtIHJvdW5kZWQtZnVsbFwiPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPCEtLSDDgVJFQSBERSBTQ1JPTEwgLS0+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwiZmxleC0xIG92ZXJmbG93LXktYXV0byBzY3JvbGwtc21vb3RoIG92ZXJzY3JvbGwtY29udGFpbiBiZy1zdXJmYWNlIGN1c3RvbS1zY3JvbGxiYXIgcHgtNiBwdC0yXCJcclxuICAgICAgc3R5bGU9XCJ0b3VjaC1hY3Rpb246IHBhbi15OyBvdmVyc2Nyb2xsLWJlaGF2aW9yOiBjb250YWluXCJcclxuICAgICAgKHRvdWNobW92ZSk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gICAgPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXIgdy1mdWxsXCI+XHJcbiAgICAgICAgPCEtLSDDjWNvbmUgLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIG1iLTRcIj5cclxuICAgICAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGFsQmdDb2xvclwiIGNsYXNzPVwidy0yMCBoLTIwIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTQwXCI+PC9kaXY+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8aSBbY2xhc3NdPVwibW9kYWxJY29uICsgJyAnICsgbW9kYWxJY29uQ29sb3JcIiBjbGFzcz1cImZhcyB0ZXh0LTN4bFwiPjwvaT5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8IS0tIFTDrXR1bG8gLS0+XHJcbiAgICAgICAgPGgyIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtdGV4dC1wcmltYXJ5IG1iLTJcIj57eyBtZXNzYWdlVGl0bGUgfX08L2gyPlxyXG5cclxuICAgICAgICA8IS0tIENvcnBvIGRhIE1lbnNhZ2VtIC0tPlxyXG4gICAgICAgIDxwICpuZ0lmPVwibWVzc2FnZUJvZHlcIiBjbGFzcz1cInRleHQtdGV4dC1zZWNvbmRhcnkgbWItNFwiPnt7IG1lc3NhZ2VCb2R5IH19PC9wPlxyXG5cclxuICAgICAgICA8IS0tIENvbnRlw7pkbyBEaW7Dom1pY28gLS0+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm1vZGFsLWR5bmFtaWMtY29udGVudCB0ZXh0LWxlZnQgdy1mdWxsIHBiLTJcIj5cclxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcHRpb25hbC1jb250ZW50XVwiPjwvbmctY29udGVudD5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBFcnJvcyAtLT5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JEZXRhaWxzXCIgY2xhc3M9XCJtdC00IHAtNCBiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTUwLzIwIHJvdW5kZWQtMnhsIHRleHQtbGVmdCBib3JkZXIgYm9yZGVyLXJlZC0xMDAgZGFyazpib3JkZXItcmVkLTkwMC8zMCB3LWZ1bGwgbWItNFwiPlxyXG4gICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMHB4XSBmb250LWJvbGQgdGV4dC1yZWQtNzAwIGRhcms6dGV4dC1yZWQtNDAwIHVwcGVyY2FzZSBtYi0xXCI+TG9nIGRvIHNpc3RlbWE6PC9wPlxyXG4gICAgICAgICAgPHByZSBjbGFzcz1cInRleHQtWzExcHhdIHRleHQtcmVkLTYwMCBkYXJrOnRleHQtcmVkLTMwMCBmb250LW1vbm8gd2hpdGVzcGFjZS1wcmUtd3JhcFwiPnt7IGVycm9yRGV0YWlscyB8IGpzb24gfX08L3ByZT5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcblxyXG4gICAgICA8IS0tIEJPVMOVRVMgKEFHT1JBIERFTlRSTyBETyBTQ1JPTEwpIC0tPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIHB0LTQgcGItNiBtdC00IGJvcmRlci10IGJvcmRlci1ib3JkZXItbGlnaHQvNTBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCB3LWZ1bGwgZ2FwLTNcIj5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQnRuIHx8IChwcmljZU5lZ290aWF0ZWQgPD0gMCAmJiBhY3Rpb25CdXR0b25UZXh0ID09PSAnTmVnb2NpYXInKVwiXHJcbiAgICAgICAgICAgICpuZ0lmPVwiYWN0aW9uQnV0dG9uVGV4dFwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJhY3Rpb25Nb2RhbCgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktNCB0ZXh0LXdoaXRlIHJvdW5kZWQtMnhsIGZvbnQtYm9sZCBhY3RpdmU6c2NhbGUtWzAuOThdIHRyYW5zaXRpb24tYWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0zIHNoYWRvdy1sZyBidG4tcHJpbWFyeS1jdXN0b21cIlxyXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndmFyKC0tcHJpbWFyeSknXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNMb2FkaW5nQnRuXCI+e3sgYWN0aW9uQnV0dG9uVGV4dCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ0J0blwiPlxyXG4gICAgICAgICAgICAgIDxzcGFuPlByb2Nlc3NhbmRvPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNpcmNsZS1ub3RjaCBmYS1zcGluXCI+PC9pPlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgIDwvYnV0dG9uPlxyXG5cclxuICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgKm5nSWY9XCJzaG93QnRuXCJcclxuICAgICAgICAgICAgKGNsaWNrKT1cImNsb3NlTW9kYWwodHJ1ZSlcIlxyXG4gICAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIHRleHQtdGV4dC1tdXRlZCBmb250LXNlbWlib2xkIGhvdmVyOnRleHQtdGV4dC1wcmltYXJ5IHRyYW5zaXRpb24tY29sb3JzXCJcclxuICAgICAgICAgID5cclxuICAgICAgICAgICAge3sgY2xvc2VCdXR0b25UZXh0IH19XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICA8L3NlY3Rpb24+XHJcbjwvZGl2PiJdfQ==
@@ -104,10 +104,10 @@ export class FallbackMessageComponent {
104
104
  }
105
105
  }
106
106
  FallbackMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FallbackMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
- FallbackMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FallbackMessageComponent, selector: "lib-fallback-message", inputs: { card: "card", statusPedido: "statusPedido", customTitle: "customTitle", customDescription: "customDescription", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", hideBtn: "hideBtn" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\n <div\n class=\"empty-state-card max-w-md mx-auto bg-surface shadow-xl rounded-3xl p-8 border border-border-light\"\n >\n <!-- \u00CDcone din\u00E2mico -->\n <div class=\"empty-state-icon mb-6 flex justify-center\">\n <div class=\"relative w-32 h-32 flex items-center justify-center\">\n <div [class]=\"emptyStateConfig.iconColor\" class=\"z-10\">\n <div class=\"text-xl leading-none\" style=\"font-size: 4rem\">\n {{ emptyStateConfig.icon }}\n </div>\n </div>\n\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <div\n [class]=\"emptyStateConfig.bgColor\"\n class=\"w-full h-full rounded-full opacity-50 flex-shrink-0\"\n ></div>\n </div>\n </div>\n </div>\n\n <!-- Conte\u00FAdo da mensagem -->\n <div class=\"empty-state-content text-center space-y-4\">\n <!-- T\u00EDtulo -->\n <h3 class=\"text-2xl font-bold text-text-primary mb-2\">\n {{ emptyStateConfig.title }}\n </h3>\n\n <!-- Descri\u00E7\u00E3o -->\n <p class=\"text-text-secondary text-lg leading-relaxed px-4\">\n {{ emptyStateConfig.description }}\n </p>\n\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-green-50 dark:bg-green-900/10 text-green-700 dark:text-green-400 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-check-circle\"></i>\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\n </div>\n </div>\n\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-exclamation-circle\"></i>\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\n </div>\n </div>\n </div>\n\n <!-- A\u00E7\u00F5es -->\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\n <button\n *ngIf=\"hideBtn\"\n (click)=\"onPrimaryAction()\"\n [ngClass]=\"{\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\n 'bg-blue-600 ':\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\n }\"\n class=\"col-12 btn btn-primary\"\n >\n {{ emptyStateConfig.primaryActionText }}\n </button>\n\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\n <button\n *ngIf=\"emptyStateConfig.secondaryActionText\"\n (click)=\"onSecondaryAction()\"\n class=\"col-12 btn btn-outline-primary\"\n >\n {{ emptyStateConfig.secondaryActionText }}\n </button>\n </div>\n\n <!-- Link de ajuda (opcional) -->\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\n <a\n href=\"#\"\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\n >\n <i class=\"fas fa-question-circle mr-2\"></i>\n Precisa de ajuda? Entre em contato com o suporte\n </a>\n </div>\n </div>\n</div>\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
107
+ FallbackMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FallbackMessageComponent, selector: "lib-fallback-message", inputs: { card: "card", statusPedido: "statusPedido", customTitle: "customTitle", customDescription: "customDescription", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText", hideBtn: "hideBtn" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\r\n <div\r\n class=\"empty-state-card max-w-md mx-auto bg-surface shadow-xl rounded-3xl p-8 border border-border-light\"\r\n >\r\n <!-- \u00CDcone din\u00E2mico -->\r\n <div class=\"empty-state-icon mb-6 flex justify-center\">\r\n <div class=\"relative w-32 h-32 flex items-center justify-center\">\r\n <div [class]=\"emptyStateConfig.iconColor\" class=\"z-10\">\r\n <div class=\"text-xl leading-none\" style=\"font-size: 4rem\">\r\n {{ emptyStateConfig.icon }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <div\r\n [class]=\"emptyStateConfig.bgColor\"\r\n class=\"w-full h-full rounded-full opacity-50 flex-shrink-0\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Conte\u00FAdo da mensagem -->\r\n <div class=\"empty-state-content text-center space-y-4\">\r\n <!-- T\u00EDtulo -->\r\n <h3 class=\"text-2xl font-bold text-text-primary mb-2\">\r\n {{ emptyStateConfig.title }}\r\n </h3>\r\n\r\n <!-- Descri\u00E7\u00E3o -->\r\n <p class=\"text-text-secondary text-lg leading-relaxed px-4\">\r\n {{ emptyStateConfig.description }}\r\n </p>\r\n\r\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\r\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\r\n <div\r\n class=\"inline-flex items-center gap-2 bg-green-50 dark:bg-green-900/10 text-green-700 dark:text-green-400 px-4 py-2 rounded-full\"\r\n >\r\n <i class=\"fas fa-check-circle\"></i>\r\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\r\n <div\r\n class=\"inline-flex items-center gap-2 bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 px-4 py-2 rounded-full\"\r\n >\r\n <i class=\"fas fa-exclamation-circle\"></i>\r\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- A\u00E7\u00F5es -->\r\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\r\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\r\n <button\r\n *ngIf=\"hideBtn\"\r\n (click)=\"onPrimaryAction()\"\r\n [ngClass]=\"{\r\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\r\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\r\n 'bg-blue-600 ':\r\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\r\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\r\n }\"\r\n class=\"col-12 btn btn-primary\"\r\n >\r\n {{ emptyStateConfig.primaryActionText }}\r\n </button>\r\n\r\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\r\n <button\r\n *ngIf=\"emptyStateConfig.secondaryActionText\"\r\n (click)=\"onSecondaryAction()\"\r\n class=\"col-12 btn btn-outline-primary\"\r\n >\r\n {{ emptyStateConfig.secondaryActionText }}\r\n </button>\r\n </div>\r\n\r\n <!-- Link de ajuda (opcional) -->\r\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\r\n <a\r\n href=\"#\"\r\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\r\n >\r\n <i class=\"fas fa-question-circle mr-2\"></i>\r\n Precisa de ajuda? Entre em contato com o suporte\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
108
108
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FallbackMessageComponent, decorators: [{
109
109
  type: Component,
110
- args: [{ selector: 'lib-fallback-message', template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\n <div\n class=\"empty-state-card max-w-md mx-auto bg-surface shadow-xl rounded-3xl p-8 border border-border-light\"\n >\n <!-- \u00CDcone din\u00E2mico -->\n <div class=\"empty-state-icon mb-6 flex justify-center\">\n <div class=\"relative w-32 h-32 flex items-center justify-center\">\n <div [class]=\"emptyStateConfig.iconColor\" class=\"z-10\">\n <div class=\"text-xl leading-none\" style=\"font-size: 4rem\">\n {{ emptyStateConfig.icon }}\n </div>\n </div>\n\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <div\n [class]=\"emptyStateConfig.bgColor\"\n class=\"w-full h-full rounded-full opacity-50 flex-shrink-0\"\n ></div>\n </div>\n </div>\n </div>\n\n <!-- Conte\u00FAdo da mensagem -->\n <div class=\"empty-state-content text-center space-y-4\">\n <!-- T\u00EDtulo -->\n <h3 class=\"text-2xl font-bold text-text-primary mb-2\">\n {{ emptyStateConfig.title }}\n </h3>\n\n <!-- Descri\u00E7\u00E3o -->\n <p class=\"text-text-secondary text-lg leading-relaxed px-4\">\n {{ emptyStateConfig.description }}\n </p>\n\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-green-50 dark:bg-green-900/10 text-green-700 dark:text-green-400 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-check-circle\"></i>\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\n </div>\n </div>\n\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-exclamation-circle\"></i>\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\n </div>\n </div>\n </div>\n\n <!-- A\u00E7\u00F5es -->\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\n <button\n *ngIf=\"hideBtn\"\n (click)=\"onPrimaryAction()\"\n [ngClass]=\"{\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\n 'bg-blue-600 ':\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\n }\"\n class=\"col-12 btn btn-primary\"\n >\n {{ emptyStateConfig.primaryActionText }}\n </button>\n\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\n <button\n *ngIf=\"emptyStateConfig.secondaryActionText\"\n (click)=\"onSecondaryAction()\"\n class=\"col-12 btn btn-outline-primary\"\n >\n {{ emptyStateConfig.secondaryActionText }}\n </button>\n </div>\n\n <!-- Link de ajuda (opcional) -->\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\n <a\n href=\"#\"\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\n >\n <i class=\"fas fa-question-circle mr-2\"></i>\n Precisa de ajuda? Entre em contato com o suporte\n </a>\n </div>\n </div>\n</div>\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"] }]
110
+ args: [{ selector: 'lib-fallback-message', template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\r\n <div\r\n class=\"empty-state-card max-w-md mx-auto bg-surface shadow-xl rounded-3xl p-8 border border-border-light\"\r\n >\r\n <!-- \u00CDcone din\u00E2mico -->\r\n <div class=\"empty-state-icon mb-6 flex justify-center\">\r\n <div class=\"relative w-32 h-32 flex items-center justify-center\">\r\n <div [class]=\"emptyStateConfig.iconColor\" class=\"z-10\">\r\n <div class=\"text-xl leading-none\" style=\"font-size: 4rem\">\r\n {{ emptyStateConfig.icon }}\r\n </div>\r\n </div>\r\n\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <div\r\n [class]=\"emptyStateConfig.bgColor\"\r\n class=\"w-full h-full rounded-full opacity-50 flex-shrink-0\"\r\n ></div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- Conte\u00FAdo da mensagem -->\r\n <div class=\"empty-state-content text-center space-y-4\">\r\n <!-- T\u00EDtulo -->\r\n <h3 class=\"text-2xl font-bold text-text-primary mb-2\">\r\n {{ emptyStateConfig.title }}\r\n </h3>\r\n\r\n <!-- Descri\u00E7\u00E3o -->\r\n <p class=\"text-text-secondary text-lg leading-relaxed px-4\">\r\n {{ emptyStateConfig.description }}\r\n </p>\r\n\r\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\r\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\r\n <div\r\n class=\"inline-flex items-center gap-2 bg-green-50 dark:bg-green-900/10 text-green-700 dark:text-green-400 px-4 py-2 rounded-full\"\r\n >\r\n <i class=\"fas fa-check-circle\"></i>\r\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\r\n <div\r\n class=\"inline-flex items-center gap-2 bg-red-50 dark:bg-red-900/10 text-red-700 dark:text-red-400 px-4 py-2 rounded-full\"\r\n >\r\n <i class=\"fas fa-exclamation-circle\"></i>\r\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <!-- A\u00E7\u00F5es -->\r\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\r\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\r\n <button\r\n *ngIf=\"hideBtn\"\r\n (click)=\"onPrimaryAction()\"\r\n [ngClass]=\"{\r\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\r\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\r\n 'bg-blue-600 ':\r\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\r\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\r\n }\"\r\n class=\"col-12 btn btn-primary\"\r\n >\r\n {{ emptyStateConfig.primaryActionText }}\r\n </button>\r\n\r\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\r\n <button\r\n *ngIf=\"emptyStateConfig.secondaryActionText\"\r\n (click)=\"onSecondaryAction()\"\r\n class=\"col-12 btn btn-outline-primary\"\r\n >\r\n {{ emptyStateConfig.secondaryActionText }}\r\n </button>\r\n </div>\r\n\r\n <!-- Link de ajuda (opcional) -->\r\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\r\n <a\r\n href=\"#\"\r\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\r\n >\r\n <i class=\"fas fa-question-circle mr-2\"></i>\r\n Precisa de ajuda? Entre em contato com o suporte\r\n </a>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"] }]
111
111
  }], propDecorators: { card: [{
112
112
  type: Input
113
113
  }], statusPedido: [{
@@ -127,4 +127,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
127
127
  }], secondaryAction: [{
128
128
  type: Output
129
129
  }] } });
130
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQnZFLE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFNVyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBSzFCLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFFekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWdIdEQ7SUE5R0MsSUFBSSxnQkFBZ0I7UUFDbEIsc0JBQXNCO1FBQ3RCLGdDQUFnQztRQUNoQyxhQUFhO1FBQ2IsaUNBQWlDO1FBQ2pDLG1CQUFtQjtRQUNuQixxRUFBcUU7UUFDckUsa0JBQWtCO1FBQ2xCLGtDQUFrQztRQUNsQyw4QkFBOEI7UUFDOUIsc0VBQXNFO1FBQ3RFLHFEQUFxRDtRQUNyRCxPQUFPO1FBQ1AsSUFBSTtRQUVKLHlCQUF5QjtRQUN6QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN2QyxLQUFLLFlBQVk7b0JBQ2YsT0FBTzt3QkFDTCxLQUFLLEVBQUUs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QXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW50ZXJmYWNlIEVtcHR5U3RhdGVDb25maWcge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGljb25Db2xvcjogc3RyaW5nO1xuICBiZ0NvbG9yOiBzdHJpbmc7XG4gIHByaW1hcnlBY3Rpb25UZXh0Pzogc3RyaW5nO1xuICBzZWNvbmRhcnlBY3Rpb25UZXh0Pzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZmFsbGJhY2stbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWxsYmFjay1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNhcmQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGN1c3RvbVRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBjdXN0b21EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgcHJpbWFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVCdG4/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHByaW1hcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWNvbmRhcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ2V0IGVtcHR5U3RhdGVDb25maWcoKTogRW1wdHlTdGF0ZUNvbmZpZyB7XG4gICAgLy8gU2UgbsOjbyBow6EgcHJvcG9zdGFzXG4gICAgLy8gaWYgKHRoaXMuY2FyZC5sZW5ndGggPT09IDApIHtcbiAgICAvLyAgIHJldHVybiB7XG4gICAgLy8gICAgIHRpdGxlOiAnTmVuaHVtYSBQcm9wb3N0YScsXG4gICAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAgIC8vICAgICAgICdWb2PDqiBhaW5kYSBuw6NvIHBvc3N1aSBuZWdvY2lhw6fDtWVzIG91IHByb3Bvc3RhcyByZWNlYmlkYXMuJyxcbiAgICAvLyAgICAgaWNvbjogJ/Cfk4QnLFxuICAgIC8vICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAvLyAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAvLyAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ0Fuw7puY2lhciBHcsOhdGlzJyxcbiAgICAvLyAgICAgc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0LFxuICAgIC8vICAgfTtcbiAgICAvLyB9XG5cbiAgICAvLyBTZSBow6Egc3RhdHVzIGRlIHBlZGlkb1xuICAgIGlmICh0aGlzLnN0YXR1c1BlZGlkbykge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXR1c1BlZGlkby50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jdXN0b21UaXRsZSB8fCAnU2VydmnDp28gQ29uY2x1w61kbyEg8J+OiScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAnTyBzZXJ2acOnbyBmb2kgZmluYWxpemFkbyBjb20gc3VjZXNzby4gQWdyYWRlY2Vtb3MgcGVsYSBjb25maWFuw6dhIScsXG4gICAgICAgICAgICBpY29uOiAn4pyFJyxcbiAgICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JlZW4tNTAwJyxcbiAgICAgICAgICAgIGJnQ29sb3I6ICdiZy1ncmVlbi0xMDAnLFxuICAgICAgICAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ1ZlciBEZXRhbGhlcycsXG4gICAgICAgICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ0F2YWxpYXIgU2VydmnDp28nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgLy8gY2FzZSAnY2FuY2VsYWRvJzpcbiAgICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ1NlcnZpw6dvIENhbmNlbGFkbycsXG4gICAgICAgIC8vICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgLy8gICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAvLyAgICAgICAnTyBzZXJ2acOnbyBmb2kgY2FuY2VsYWRvIHBlbG8gcHJlc3RhZG9yLiBWb2PDqiBwb2RlIGJ1c2NhciBvdXRyb3MgcHJvZmlzc2lvbmFpcyBkaXNwb27DrXZlaXMuJyxcbiAgICAgICAgLy8gICAgIGljb246ICfinYwnLFxuICAgICAgICAvLyAgICAgaWNvbkNvbG9yOiAndGV4dC1yZWQtNTAwJyxcbiAgICAgICAgLy8gICAgIGJnQ29sb3I6ICdiZy1yZWQtMTAwJyxcbiAgICAgICAgLy8gICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdCdXNjYXIgUHJvZmlzc2lvbmFpcycsXG4gICAgICAgIC8vICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ1ZvbHRhciBhbyBJbsOtY2lvJyxcbiAgICAgICAgLy8gICB9O1xuXG4gICAgICAgIGNhc2UgJ3NlbSBzZXJ2aWNvcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmN1c3RvbVRpdGxlIHx8ICdTZW0gc2VydmnDp28nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tRGVzY3JpcHRpb24gfHwgJ07Do28gaMOhIHNlcnZpw6dvcyBkaXNwb27DrXZlaXMgYXF1aS4nLFxuICAgICAgICAgICAgaWNvbjogJ/Cfk4QnLFxuICAgICAgICAgICAgLy8gaWNvbkNvbG9yOiAndGV4dC15ZWxsb3ctNTAwJyxcbiAgICAgICAgICAgIC8vIGJnQ29sb3I6ICdiZy15ZWxsb3ctMTAwJyxcbiAgICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAgICAgICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdQcm9jdXJhciBzZXJ2acOnb3MnLFxuICAgICAgICAgICAgLy8gc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0IHx8ICdNZXVzIEFuw7puY2lvcycsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnaW5kaXNwb25pdmVsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ1Byb3Bvc3RhIEluZGlzcG9uw612ZWwnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tRGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgJ0VzdGEgcHJvcG9zdGEgbsOjbyBlc3TDoSBtYWlzIGRpc3BvbsOtdmVsIHBhcmEgdmlzdWFsaXphw6fDo28uJyxcbiAgICAgICAgICAgIGljb246ICfwn5OEJyxcbiAgICAgICAgICAgIC8vIGljb25Db2xvcjogJ3RleHQteWVsbG93LTUwMCcsXG4gICAgICAgICAgICAvLyBiZ0NvbG9yOiAnYmcteWVsbG93LTEwMCcsXG4gICAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgICAgICAgIGJnQ29sb3I6ICdiZy1ncmF5LTEwMCcsXG4gICAgICAgICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnVmVyIE91dHJhcyBQcm9wb3N0YXMnLFxuICAgICAgICAgICAgLy8gc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0IHx8ICdNZXVzIEFuw7puY2lvcycsXG4gICAgICAgICAgfTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0Q29uZmlnKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDb25maWcoKTogRW1wdHlTdGF0ZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0aGlzLmN1c3RvbVRpdGxlIHx8ICdOZW5odW1hIFByb3Bvc3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICB0aGlzLmN1c3RvbURlc2NyaXB0aW9uIHx8ICdWb2PDqiBhaW5kYSBuw6NvIHBvc3N1aSBuZWdvY2lhw6fDtWVzLicsXG4gICAgICBpY29uOiAn8J+ThCcsXG4gICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgIGJnQ29sb3I6ICdiZy1ncmF5LTEwMCcsXG4gICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnQW7Dum5jaWFyIEdyw6F0aXMnLFxuICAgICAgc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0LFxuICAgIH07XG4gIH1cblxuICAvLyBNw6l0b2RvIHBhcmEgZGV0ZXJtaW5hciBzZSBkZXZlIG1vc3RyYXIgbyBjb21wb25lbnRlXG4gIHNob3VsZFNob3dFbXB0eVN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNhcmQubGVuZ3RoID09PSAwIHx8XG4gICAgICBbJ2ZpbmFsaXphZG8nLCAnY2FuY2VsYWRvJywgJ2luZGlzcG9uw612ZWwnLCAnaW5kaXNwb25pdmVsJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uUHJpbWFyeUFjdGlvbigpIHtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgb25TZWNvbmRhcnlBY3Rpb24oKSB7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2hvdWxkU2hvd0VtcHR5U3RhdGUoKVwiIGNsYXNzPVwiZW1wdHktc3RhdGUtY29udGFpbmVyXCI+XG4gIDxkaXZcbiAgICBjbGFzcz1cImVtcHR5LXN0YXRlLWNhcmQgbWF4LXctbWQgbXgtYXV0byBiZy1zdXJmYWNlIHNoYWRvdy14bCByb3VuZGVkLTN4bCBwLTggYm9yZGVyIGJvcmRlci1ib3JkZXItbGlnaHRcIlxuICA+XG4gICAgPCEtLSDDjWNvbmUgZGluw6JtaWNvIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZS1pY29uIG1iLTYgZmxleCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIHctMzIgaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJlbXB0eVN0YXRlQ29uZmlnLmljb25Db2xvclwiIGNsYXNzPVwiei0xMFwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXhsIGxlYWRpbmctbm9uZVwiIHN0eWxlPVwiZm9udC1zaXplOiA0cmVtXCI+XG4gICAgICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLmljb24gfX1cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBbY2xhc3NdPVwiZW1wdHlTdGF0ZUNvbmZpZy5iZ0NvbG9yXCJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIGgtZnVsbCByb3VuZGVkLWZ1bGwgb3BhY2l0eS01MCBmbGV4LXNocmluay0wXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIENvbnRlw7pkbyBkYSBtZW5zYWdlbSAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUtY29udGVudCB0ZXh0LWNlbnRlciBzcGFjZS15LTRcIj5cbiAgICAgIDwhLS0gVMOtdHVsbyAtLT5cbiAgICAgIDxoMyBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSBtYi0yXCI+XG4gICAgICAgIHt7IGVtcHR5U3RhdGVDb25maWcudGl0bGUgfX1cbiAgICAgIDwvaDM+XG5cbiAgICAgIDwhLS0gRGVzY3Jpw6fDo28gLS0+XG4gICAgICA8cCBjbGFzcz1cInRleHQtdGV4dC1zZWNvbmRhcnkgdGV4dC1sZyBsZWFkaW5nLXJlbGF4ZWQgcHgtNFwiPlxuICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLmRlc2NyaXB0aW9uIH19XG4gICAgICA8L3A+XG5cbiAgICAgIDwhLS0gSW5mb3JtYcOnw7VlcyBhZGljaW9uYWlzIGJhc2VhZGFzIG5vIHN0YXR1cyAtLT5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNQZWRpZG8gPT09ICdmaW5hbGl6YWRvJ1wiIGNsYXNzPVwibXQtNFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgYmctZ3JlZW4tNTAgZGFyazpiZy1ncmVlbi05MDAvMTAgdGV4dC1ncmVlbi03MDAgZGFyazp0ZXh0LWdyZWVuLTQwMCBweC00IHB5LTIgcm91bmRlZC1mdWxsXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrLWNpcmNsZVwiPjwvaT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+U2VydmnDp28gYXZhbGlhZG8gZSBmaW5hbGl6YWRvPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzUGVkaWRvID09PSAnY2FuY2VsYWRvJ1wiIGNsYXNzPVwibXQtNFwiPlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJpbmxpbmUtZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTIgYmctcmVkLTUwIGRhcms6YmctcmVkLTkwMC8xMCB0ZXh0LXJlZC03MDAgZGFyazp0ZXh0LXJlZC00MDAgcHgtNCBweS0yIHJvdW5kZWQtZnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIj48L2k+XG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LW1lZGl1bVwiPkNhbmNlbGFkbyBwZWxvIHByZXN0YWRvciBkbyBzZXJ2acOnbzwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQcOnw7VlcyAtLT5cbiAgICA8ZGl2IGNsYXNzPVwibXQtOCBmbGV4IGZsZXgtY29sIHNtOmZsZXgtcm93IGdhcC00IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8IS0tIEHDp8OjbyBQcmltw6FyaWEgLS0+XG4gICAgICA8YnV0dG9uXG4gICAgICAgICpuZ0lmPVwiaGlkZUJ0blwiXG4gICAgICAgIChjbGljayk9XCJvblByaW1hcnlBY3Rpb24oKVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnYmctZ3JlZW4tNjAwIGhvdmVyOmJnLWdyZWVuLTcwMCc6IHN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nLFxuICAgICAgICAgICdiZy1yZWQtNjAwIGhvdmVyOmJnLXJlZC03MDAnOiBzdGF0dXNQZWRpZG8gPT09ICdjYW5jZWxhZG8nLFxuICAgICAgICAgICdiZy1ibHVlLTYwMCAnOlxuICAgICAgICAgICAgc3RhdHVzUGVkaWRvID09PSAnaW5kaXNwb27DrXZlbCcgfHwgc3RhdHVzUGVkaWRvID09PSAnaW5kaXNwb25pdmVsJyxcbiAgICAgICAgICAnYmctcHJpbWFyeS02MDAgaG92ZXI6YmctcHJpbWFyeS03MDAnOiBjYXJkLmxlbmd0aCA9PT0gMFxuICAgICAgICB9XCJcbiAgICAgICAgY2xhc3M9XCJjb2wtMTIgYnRuIGJ0bi1wcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgZW1wdHlTdGF0ZUNvbmZpZy5wcmltYXJ5QWN0aW9uVGV4dCB9fVxuICAgICAgPC9idXR0b24+XG5cbiAgICAgIDwhLS0gQcOnw6NvIFNlY3VuZMOhcmlhIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAqbmdJZj1cImVtcHR5U3RhdGVDb25maWcuc2Vjb25kYXJ5QWN0aW9uVGV4dFwiXG4gICAgICAgIChjbGljayk9XCJvblNlY29uZGFyeUFjdGlvbigpXCJcbiAgICAgICAgY2xhc3M9XCJjb2wtMTIgYnRuIGJ0bi1vdXRsaW5lLXByaW1hcnlcIlxuICAgICAgPlxuICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLnNlY29uZGFyeUFjdGlvblRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuXG4gICAgPCEtLSBMaW5rIGRlIGFqdWRhIChvcGNpb25hbCkgLS0+XG4gICAgPGRpdiAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2NhbmNlbGFkbydcIiBjbGFzcz1cIm10LTYgdGV4dC1jZW50ZXJcIj5cbiAgICAgIDxhXG4gICAgICAgIGhyZWY9XCIjXCJcbiAgICAgICAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtYmx1ZS02MDAgaG92ZXI6dGV4dC1ibHVlLTgwMCBob3Zlcjp1bmRlcmxpbmVcIlxuICAgICAgPlxuICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1xdWVzdGlvbi1jaXJjbGUgbXItMlwiPjwvaT5cbiAgICAgICAgUHJlY2lzYSBkZSBhanVkYT8gRW50cmUgZW0gY29udGF0byBjb20gbyBzdXBvcnRlXG4gICAgICA8L2E+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
130
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQnZFLE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFNVyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBSzFCLFlBQU8sR0FBYSxLQUFLLENBQUM7UUFFekIsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3pDLG9CQUFlLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztLQWdIdEQ7SUE5R0MsSUFBSSxnQkFBZ0I7UUFDbEIsc0JBQXNCO1FBQ3RCLGdDQUFnQztRQUNoQyxhQUFhO1FBQ2IsaUNBQWlDO1FBQ2pDLG1CQUFtQjtRQUNuQixxRUFBcUU7UUFDckUsa0JBQWtCO1FBQ2xCLGtDQUFrQztRQUNsQyw4QkFBOEI7UUFDOUIsc0VBQXNFO1FBQ3RFLHFEQUFxRDtRQUNyRCxPQUFPO1FBQ1AsSUFBSTtRQUVKLHlCQUF5QjtRQUN6QixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUU7WUFDckIsUUFBUSxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxFQUFFO2dCQUN2QyxLQUFLLFlBQVk7b0JBQ2YsT0FBTzt3QkFDTCxLQUFLLEVBQUUs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QXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBRUksYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW50ZXJmYWNlIEVtcHR5U3RhdGVDb25maWcge1xuICB0aXRsZTogc3RyaW5nO1xuICBkZXNjcmlwdGlvbjogc3RyaW5nO1xuICBpY29uOiBzdHJpbmc7XG4gIGljb25Db2xvcjogc3RyaW5nO1xuICBiZ0NvbG9yOiBzdHJpbmc7XG4gIHByaW1hcnlBY3Rpb25UZXh0Pzogc3RyaW5nO1xuICBzZWNvbmRhcnlBY3Rpb25UZXh0Pzogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItZmFsbGJhY2stbWVzc2FnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9mYWxsYmFjay1tZXNzYWdlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIGNhcmQ6IGFueVtdID0gW107XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGN1c3RvbVRpdGxlPzogc3RyaW5nO1xuICBASW5wdXQoKSBjdXN0b21EZXNjcmlwdGlvbj86IHN0cmluZztcbiAgQElucHV0KCkgcHJpbWFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHNlY29uZGFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGhpZGVCdG4/OiBib29sZWFuID0gZmFsc2U7XG5cbiAgQE91dHB1dCgpIHByaW1hcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSBzZWNvbmRhcnlBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgZ2V0IGVtcHR5U3RhdGVDb25maWcoKTogRW1wdHlTdGF0ZUNvbmZpZyB7XG4gICAgLy8gU2UgbsOjbyBow6EgcHJvcG9zdGFzXG4gICAgLy8gaWYgKHRoaXMuY2FyZC5sZW5ndGggPT09IDApIHtcbiAgICAvLyAgIHJldHVybiB7XG4gICAgLy8gICAgIHRpdGxlOiAnTmVuaHVtYSBQcm9wb3N0YScsXG4gICAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAgIC8vICAgICAgICdWb2PDqiBhaW5kYSBuw6NvIHBvc3N1aSBuZWdvY2lhw6fDtWVzIG91IHByb3Bvc3RhcyByZWNlYmlkYXMuJyxcbiAgICAvLyAgICAgaWNvbjogJ/Cfk4QnLFxuICAgIC8vICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAvLyAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAvLyAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ0Fuw7puY2lhciBHcsOhdGlzJyxcbiAgICAvLyAgICAgc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0LFxuICAgIC8vICAgfTtcbiAgICAvLyB9XG5cbiAgICAvLyBTZSBow6Egc3RhdHVzIGRlIHBlZGlkb1xuICAgIGlmICh0aGlzLnN0YXR1c1BlZGlkbykge1xuICAgICAgc3dpdGNoICh0aGlzLnN0YXR1c1BlZGlkby50b0xvd2VyQ2FzZSgpKSB7XG4gICAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jdXN0b21UaXRsZSB8fCAnU2VydmnDp28gQ29uY2x1w61kbyEg8J+OiScsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAnTyBzZXJ2acOnbyBmb2kgZmluYWxpemFkbyBjb20gc3VjZXNzby4gQWdyYWRlY2Vtb3MgcGVsYSBjb25maWFuw6dhIScsXG4gICAgICAgICAgICBpY29uOiAn4pyFJyxcbiAgICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JlZW4tNTAwJyxcbiAgICAgICAgICAgIGJnQ29sb3I6ICdiZy1ncmVlbi0xMDAnLFxuICAgICAgICAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ1ZlciBEZXRhbGhlcycsXG4gICAgICAgICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ0F2YWxpYXIgU2VydmnDp28nLFxuICAgICAgICAgIH07XG5cbiAgICAgICAgLy8gY2FzZSAnY2FuY2VsYWRvJzpcbiAgICAgICAgLy8gICByZXR1cm4ge1xuICAgICAgICAvLyAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ1NlcnZpw6dvIENhbmNlbGFkbycsXG4gICAgICAgIC8vICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgLy8gICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAvLyAgICAgICAnTyBzZXJ2acOnbyBmb2kgY2FuY2VsYWRvIHBlbG8gcHJlc3RhZG9yLiBWb2PDqiBwb2RlIGJ1c2NhciBvdXRyb3MgcHJvZmlzc2lvbmFpcyBkaXNwb27DrXZlaXMuJyxcbiAgICAgICAgLy8gICAgIGljb246ICfinYwnLFxuICAgICAgICAvLyAgICAgaWNvbkNvbG9yOiAndGV4dC1yZWQtNTAwJyxcbiAgICAgICAgLy8gICAgIGJnQ29sb3I6ICdiZy1yZWQtMTAwJyxcbiAgICAgICAgLy8gICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdCdXNjYXIgUHJvZmlzc2lvbmFpcycsXG4gICAgICAgIC8vICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ1ZvbHRhciBhbyBJbsOtY2lvJyxcbiAgICAgICAgLy8gICB9O1xuXG4gICAgICAgIGNhc2UgJ3NlbSBzZXJ2aWNvcyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmN1c3RvbVRpdGxlIHx8ICdTZW0gc2VydmnDp28nLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tRGVzY3JpcHRpb24gfHwgJ07Do28gaMOhIHNlcnZpw6dvcyBkaXNwb27DrXZlaXMgYXF1aS4nLFxuICAgICAgICAgICAgaWNvbjogJ/Cfk4QnLFxuICAgICAgICAgICAgLy8gaWNvbkNvbG9yOiAndGV4dC15ZWxsb3ctNTAwJyxcbiAgICAgICAgICAgIC8vIGJnQ29sb3I6ICdiZy15ZWxsb3ctMTAwJyxcbiAgICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAgICAgICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdQcm9jdXJhciBzZXJ2acOnb3MnLFxuICAgICAgICAgICAgLy8gc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0IHx8ICdNZXVzIEFuw7puY2lvcycsXG4gICAgICAgICAgfTtcbiAgICAgICAgY2FzZSAnaW5kaXNwb25pdmVsJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ1Byb3Bvc3RhIEluZGlzcG9uw612ZWwnLFxuICAgICAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgICAgIHRoaXMuY3VzdG9tRGVzY3JpcHRpb24gfHxcbiAgICAgICAgICAgICAgJ0VzdGEgcHJvcG9zdGEgbsOjbyBlc3TDoSBtYWlzIGRpc3BvbsOtdmVsIHBhcmEgdmlzdWFsaXphw6fDo28uJyxcbiAgICAgICAgICAgIGljb246ICfwn5OEJyxcbiAgICAgICAgICAgIC8vIGljb25Db2xvcjogJ3RleHQteWVsbG93LTUwMCcsXG4gICAgICAgICAgICAvLyBiZ0NvbG9yOiAnYmcteWVsbG93LTEwMCcsXG4gICAgICAgICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgICAgICAgIGJnQ29sb3I6ICdiZy1ncmF5LTEwMCcsXG4gICAgICAgICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnVmVyIE91dHJhcyBQcm9wb3N0YXMnLFxuICAgICAgICAgICAgLy8gc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0IHx8ICdNZXVzIEFuw7puY2lvcycsXG4gICAgICAgICAgfTtcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRDb25maWcoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5nZXREZWZhdWx0Q29uZmlnKCk7XG4gIH1cblxuICBwcml2YXRlIGdldERlZmF1bHRDb25maWcoKTogRW1wdHlTdGF0ZUNvbmZpZyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHRpdGxlOiB0aGlzLmN1c3RvbVRpdGxlIHx8ICdOZW5odW1hIFByb3Bvc3RhJyxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICB0aGlzLmN1c3RvbURlc2NyaXB0aW9uIHx8ICdWb2PDqiBhaW5kYSBuw6NvIHBvc3N1aSBuZWdvY2lhw6fDtWVzLicsXG4gICAgICBpY29uOiAn8J+ThCcsXG4gICAgICBpY29uQ29sb3I6ICd0ZXh0LWdyYXktNTAwJyxcbiAgICAgIGJnQ29sb3I6ICdiZy1ncmF5LTEwMCcsXG4gICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnQW7Dum5jaWFyIEdyw6F0aXMnLFxuICAgICAgc2Vjb25kYXJ5QWN0aW9uVGV4dDogdGhpcy5zZWNvbmRhcnlBY3Rpb25UZXh0LFxuICAgIH07XG4gIH1cblxuICAvLyBNw6l0b2RvIHBhcmEgZGV0ZXJtaW5hciBzZSBkZXZlIG1vc3RyYXIgbyBjb21wb25lbnRlXG4gIHNob3VsZFNob3dFbXB0eVN0YXRlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAoXG4gICAgICB0aGlzLmNhcmQubGVuZ3RoID09PSAwIHx8XG4gICAgICBbJ2ZpbmFsaXphZG8nLCAnY2FuY2VsYWRvJywgJ2luZGlzcG9uw612ZWwnLCAnaW5kaXNwb25pdmVsJ10uaW5jbHVkZXMoXG4gICAgICAgIHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpXG4gICAgICApXG4gICAgKTtcbiAgfVxuXG4gIG9uUHJpbWFyeUFjdGlvbigpIHtcbiAgICB0aGlzLnByaW1hcnlBY3Rpb24uZW1pdCgpO1xuICB9XG5cbiAgb25TZWNvbmRhcnlBY3Rpb24oKSB7XG4gICAgdGhpcy5zZWNvbmRhcnlBY3Rpb24uZW1pdCgpO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwic2hvdWxkU2hvd0VtcHR5U3RhdGUoKVwiIGNsYXNzPVwiZW1wdHktc3RhdGUtY29udGFpbmVyXCI+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJlbXB0eS1zdGF0ZS1jYXJkIG1heC13LW1kIG14LWF1dG8gYmctc3VyZmFjZSBzaGFkb3cteGwgcm91bmRlZC0zeGwgcC04IGJvcmRlciBib3JkZXItYm9yZGVyLWxpZ2h0XCJcclxuICA+XHJcbiAgICA8IS0tIMONY29uZSBkaW7Dom1pY28gLS0+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZW1wdHktc3RhdGUtaWNvbiBtYi02IGZsZXgganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIHctMzIgaC0zMiBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgIDxkaXYgW2NsYXNzXT1cImVtcHR5U3RhdGVDb25maWcuaWNvbkNvbG9yXCIgY2xhc3M9XCJ6LTEwXCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC14bCBsZWFkaW5nLW5vbmVcIiBzdHlsZT1cImZvbnQtc2l6ZTogNHJlbVwiPlxyXG4gICAgICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLmljb24gfX1cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxyXG4gICAgICAgICAgPGRpdlxyXG4gICAgICAgICAgICBbY2xhc3NdPVwiZW1wdHlTdGF0ZUNvbmZpZy5iZ0NvbG9yXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgaC1mdWxsIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTUwIGZsZXgtc2hyaW5rLTBcIlxyXG4gICAgICAgICAgPjwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQ29udGXDumRvIGRhIG1lbnNhZ2VtIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLWNvbnRlbnQgdGV4dC1jZW50ZXIgc3BhY2UteS00XCI+XHJcbiAgICAgIDwhLS0gVMOtdHVsbyAtLT5cclxuICAgICAgPGgzIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtdGV4dC1wcmltYXJ5IG1iLTJcIj5cclxuICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLnRpdGxlIH19XHJcbiAgICAgIDwvaDM+XHJcblxyXG4gICAgICA8IS0tIERlc2NyacOnw6NvIC0tPlxyXG4gICAgICA8cCBjbGFzcz1cInRleHQtdGV4dC1zZWNvbmRhcnkgdGV4dC1sZyBsZWFkaW5nLXJlbGF4ZWQgcHgtNFwiPlxyXG4gICAgICAgIHt7IGVtcHR5U3RhdGVDb25maWcuZGVzY3JpcHRpb24gfX1cclxuICAgICAgPC9wPlxyXG5cclxuICAgICAgPCEtLSBJbmZvcm1hw6fDtWVzIGFkaWNpb25haXMgYmFzZWFkYXMgbm8gc3RhdHVzIC0tPlxyXG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzUGVkaWRvID09PSAnZmluYWxpemFkbydcIiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBiZy1ncmVlbi01MCBkYXJrOmJnLWdyZWVuLTkwMC8xMCB0ZXh0LWdyZWVuLTcwMCBkYXJrOnRleHQtZ3JlZW4tNDAwIHB4LTQgcHktMiByb3VuZGVkLWZ1bGxcIlxyXG4gICAgICAgID5cclxuICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNoZWNrLWNpcmNsZVwiPjwvaT5cclxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj5TZXJ2acOnbyBhdmFsaWFkbyBlIGZpbmFsaXphZG88L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPGRpdiAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2NhbmNlbGFkbydcIiBjbGFzcz1cIm10LTRcIj5cclxuICAgICAgICA8ZGl2XHJcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBiZy1yZWQtNTAgZGFyazpiZy1yZWQtOTAwLzEwIHRleHQtcmVkLTcwMCBkYXJrOnRleHQtcmVkLTQwMCBweC00IHB5LTIgcm91bmRlZC1mdWxsXCJcclxuICAgICAgICA+XHJcbiAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1leGNsYW1hdGlvbi1jaXJjbGVcIj48L2k+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvbnQtbWVkaXVtXCI+Q2FuY2VsYWRvIHBlbG8gcHJlc3RhZG9yIGRvIHNlcnZpw6dvPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gQcOnw7VlcyAtLT5cclxuICAgIDxkaXYgY2xhc3M9XCJtdC04IGZsZXggZmxleC1jb2wgc206ZmxleC1yb3cgZ2FwLTQganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgPCEtLSBBw6fDo28gUHJpbcOhcmlhIC0tPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJoaWRlQnRuXCJcclxuICAgICAgICAoY2xpY2spPVwib25QcmltYXJ5QWN0aW9uKClcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcclxuICAgICAgICAgICdiZy1ncmVlbi02MDAgaG92ZXI6YmctZ3JlZW4tNzAwJzogc3RhdHVzUGVkaWRvID09PSAnZmluYWxpemFkbycsXHJcbiAgICAgICAgICAnYmctcmVkLTYwMCBob3ZlcjpiZy1yZWQtNzAwJzogc3RhdHVzUGVkaWRvID09PSAnY2FuY2VsYWRvJyxcclxuICAgICAgICAgICdiZy1ibHVlLTYwMCAnOlxyXG4gICAgICAgICAgICBzdGF0dXNQZWRpZG8gPT09ICdpbmRpc3BvbsOtdmVsJyB8fCBzdGF0dXNQZWRpZG8gPT09ICdpbmRpc3Bvbml2ZWwnLFxyXG4gICAgICAgICAgJ2JnLXByaW1hcnktNjAwIGhvdmVyOmJnLXByaW1hcnktNzAwJzogY2FyZC5sZW5ndGggPT09IDBcclxuICAgICAgICB9XCJcclxuICAgICAgICBjbGFzcz1cImNvbC0xMiBidG4gYnRuLXByaW1hcnlcIlxyXG4gICAgICA+XHJcbiAgICAgICAge3sgZW1wdHlTdGF0ZUNvbmZpZy5wcmltYXJ5QWN0aW9uVGV4dCB9fVxyXG4gICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgIDwhLS0gQcOnw6NvIFNlY3VuZMOhcmlhIC0tPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgKm5nSWY9XCJlbXB0eVN0YXRlQ29uZmlnLnNlY29uZGFyeUFjdGlvblRleHRcIlxyXG4gICAgICAgIChjbGljayk9XCJvblNlY29uZGFyeUFjdGlvbigpXCJcclxuICAgICAgICBjbGFzcz1cImNvbC0xMiBidG4gYnRuLW91dGxpbmUtcHJpbWFyeVwiXHJcbiAgICAgID5cclxuICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLnNlY29uZGFyeUFjdGlvblRleHQgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8IS0tIExpbmsgZGUgYWp1ZGEgKG9wY2lvbmFsKSAtLT5cclxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNQZWRpZG8gPT09ICdjYW5jZWxhZG8nXCIgY2xhc3M9XCJtdC02IHRleHQtY2VudGVyXCI+XHJcbiAgICAgIDxhXHJcbiAgICAgICAgaHJlZj1cIiNcIlxyXG4gICAgICAgIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsdWUtNjAwIGhvdmVyOnRleHQtYmx1ZS04MDAgaG92ZXI6dW5kZXJsaW5lXCJcclxuICAgICAgPlxyXG4gICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLXF1ZXN0aW9uLWNpcmNsZSBtci0yXCI+PC9pPlxyXG4gICAgICAgIFByZWNpc2EgZGUgYWp1ZGE/IEVudHJlIGVtIGNvbnRhdG8gY29tIG8gc3Vwb3J0ZVxyXG4gICAgICA8L2E+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -27,4 +27,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
27
27
  name: 'formatDateTime',
28
28
  }]
29
29
  }] });
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUtdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JtYXQtZGF0ZS10aW1lL2Zvcm1hdC1kYXRlLXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixTQUFTLENBQUMsS0FBZ0MsRUFBRSxZQUFxQixJQUFJO1FBQ25FLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdEIsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuRyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhFLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUN4QixPQUFPLFdBQVcsUUFBUSxFQUFFLENBQUM7U0FDOUI7UUFFRCxPQUFPLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sUUFBUSxFQUFFLENBQUM7SUFDakQsQ0FBQzs7K0dBckJVLGtCQUFrQjs2R0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ2Zvcm1hdERhdGVUaW1lJyxcbn0pXG5leHBvcnQgY2xhc3MgRm9ybWF0RGF0ZVRpbWVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgc2hvd0Fnb3JhOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyB7XG4gICAgaWYgKCF2YWx1ZSkgcmV0dXJuICcnO1xuXG4gICAgY29uc3QgW2RhdGVQYXJ0LCB0aW1lUGFydF0gPSB2YWx1ZS5zcGxpdCgnICcpO1xuICAgIGNvbnN0IFt5ZWFyLCBtb250aCwgZGF5XSA9IGRhdGVQYXJ0LnNwbGl0KCctJyk7XG5cbiAgICBpZiAoIXllYXIgfHwgIW1vbnRoIHx8ICFkYXkgfHwgIXRpbWVQYXJ0KSByZXR1cm4gdmFsdWU7XG5cbiAgICBjb25zdCBpbnB1dERhdGUgPSBuZXcgRGF0ZShwYXJzZUludCh5ZWFyKSwgcGFyc2VJbnQobW9udGgpIC0gMSwgcGFyc2VJbnQoZGF5KSk7XG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xuICAgIGNvbnN0IHRvZGF5RGF0ZSA9IG5ldyBEYXRlKHRvZGF5LmdldEZ1bGxZZWFyKCksIHRvZGF5LmdldE1vbnRoKCksIHRvZGF5LmdldERhdGUoKSk7XG4gICAgY29uc3QgaW5wdXREYXRlT25seSA9IG5ldyBEYXRlKGlucHV0RGF0ZS5nZXRGdWxsWWVhcigpLCBpbnB1dERhdGUuZ2V0TW9udGgoKSwgaW5wdXREYXRlLmdldERhdGUoKSk7XG5cbiAgICBjb25zdCBpc1RvZGF5ID0gaW5wdXREYXRlT25seS5nZXRUaW1lKCkgPT09IHRvZGF5RGF0ZS5nZXRUaW1lKCk7XG5cbiAgICBpZiAoc2hvd0Fnb3JhICYmIGlzVG9kYXkpIHtcbiAgICAgIHJldHVybiBgSG9qZSDDoHMgJHt0aW1lUGFydH1gO1xuICAgIH1cblxuICAgIHJldHVybiBgJHtkYXl9LyR7bW9udGh9LyR7eWVhcn0gLSAke3RpbWVQYXJ0fWA7XG4gIH1cbn1cbiJdfQ==
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybWF0LWRhdGUtdGltZS5waXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9mb3JtYXQtZGF0ZS10aW1lL2Zvcm1hdC1kYXRlLXRpbWUucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsSUFBSSxFQUFpQixNQUFNLGVBQWUsQ0FBQzs7QUFLcEQsTUFBTSxPQUFPLGtCQUFrQjtJQUM3QixTQUFTLENBQUMsS0FBZ0MsRUFBRSxZQUFxQixJQUFJO1FBQ25FLElBQUksQ0FBQyxLQUFLO1lBQUUsT0FBTyxFQUFFLENBQUM7UUFFdEIsTUFBTSxDQUFDLFFBQVEsRUFBRSxRQUFRLENBQUMsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFFL0MsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLEtBQUssSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPLEtBQUssQ0FBQztRQUV2RCxNQUFNLFNBQVMsR0FBRyxJQUFJLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMvRSxNQUFNLEtBQUssR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsRUFBRSxLQUFLLENBQUMsUUFBUSxFQUFFLEVBQUUsS0FBSyxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDbkYsTUFBTSxhQUFhLEdBQUcsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsRUFBRSxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUVuRyxNQUFNLE9BQU8sR0FBRyxhQUFhLENBQUMsT0FBTyxFQUFFLEtBQUssU0FBUyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRWhFLElBQUksU0FBUyxJQUFJLE9BQU8sRUFBRTtZQUN4QixPQUFPLFdBQVcsUUFBUSxFQUFFLENBQUM7U0FDOUI7UUFFRCxPQUFPLEdBQUcsR0FBRyxJQUFJLEtBQUssSUFBSSxJQUFJLE1BQU0sUUFBUSxFQUFFLENBQUM7SUFDakQsQ0FBQzs7K0dBckJVLGtCQUFrQjs2R0FBbEIsa0JBQWtCOzJGQUFsQixrQkFBa0I7a0JBSDlCLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGdCQUFnQjtpQkFDdkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcbiAgbmFtZTogJ2Zvcm1hdERhdGVUaW1lJyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEZvcm1hdERhdGVUaW1lUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xyXG4gIHRyYW5zZm9ybSh2YWx1ZTogc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCwgc2hvd0Fnb3JhOiBib29sZWFuID0gdHJ1ZSk6IHN0cmluZyB7XHJcbiAgICBpZiAoIXZhbHVlKSByZXR1cm4gJyc7XHJcblxyXG4gICAgY29uc3QgW2RhdGVQYXJ0LCB0aW1lUGFydF0gPSB2YWx1ZS5zcGxpdCgnICcpO1xyXG4gICAgY29uc3QgW3llYXIsIG1vbnRoLCBkYXldID0gZGF0ZVBhcnQuc3BsaXQoJy0nKTtcclxuXHJcbiAgICBpZiAoIXllYXIgfHwgIW1vbnRoIHx8ICFkYXkgfHwgIXRpbWVQYXJ0KSByZXR1cm4gdmFsdWU7XHJcblxyXG4gICAgY29uc3QgaW5wdXREYXRlID0gbmV3IERhdGUocGFyc2VJbnQoeWVhciksIHBhcnNlSW50KG1vbnRoKSAtIDEsIHBhcnNlSW50KGRheSkpO1xyXG4gICAgY29uc3QgdG9kYXkgPSBuZXcgRGF0ZSgpO1xyXG4gICAgY29uc3QgdG9kYXlEYXRlID0gbmV3IERhdGUodG9kYXkuZ2V0RnVsbFllYXIoKSwgdG9kYXkuZ2V0TW9udGgoKSwgdG9kYXkuZ2V0RGF0ZSgpKTtcclxuICAgIGNvbnN0IGlucHV0RGF0ZU9ubHkgPSBuZXcgRGF0ZShpbnB1dERhdGUuZ2V0RnVsbFllYXIoKSwgaW5wdXREYXRlLmdldE1vbnRoKCksIGlucHV0RGF0ZS5nZXREYXRlKCkpO1xyXG5cclxuICAgIGNvbnN0IGlzVG9kYXkgPSBpbnB1dERhdGVPbmx5LmdldFRpbWUoKSA9PT0gdG9kYXlEYXRlLmdldFRpbWUoKTtcclxuXHJcbiAgICBpZiAoc2hvd0Fnb3JhICYmIGlzVG9kYXkpIHtcclxuICAgICAgcmV0dXJuIGBIb2plIMOgcyAke3RpbWVQYXJ0fWA7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIGAke2RheX0vJHttb250aH0vJHt5ZWFyfSAtICR7dGltZVBhcnR9YDtcclxuICB9XHJcbn1cclxuIl19
@@ -58,10 +58,10 @@ export class PopupComponent {
58
58
  }
59
59
  }
60
60
  PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
- PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PopupComponent, selector: "lib-popup", inputs: { isOpen: "isOpen", type: "type", title: "title", message: "message", duration: "duration" }, outputs: { closed: "closed" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\n <div\n [class]=\"\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\n animationClass\n \"\n >\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\n\n <div class=\"flex-shrink-0 mr-3\">\n <i [class]=\"iconClass + ' text-xl'\"></i>\n </div>\n\n <div class=\"flex-grow pr-4 text-left\">\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\n </div>\n\n <button\n (click)=\"closePopup()\"\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\n >\n <i class=\"fas fa-times text-sm\"></i>\n </button>\n </div>\n</div>\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
61
+ PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PopupComponent, selector: "lib-popup", inputs: { isOpen: "isOpen", type: "type", title: "title", message: "message", duration: "duration" }, outputs: { closed: "closed" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\r\n <div\r\n [class]=\"\r\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\r\n animationClass\r\n \"\r\n >\r\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\r\n\r\n <div class=\"flex-shrink-0 mr-3\">\r\n <i [class]=\"iconClass + ' text-xl'\"></i>\r\n </div>\r\n\r\n <div class=\"flex-grow pr-4 text-left\">\r\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\r\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\r\n </div>\r\n\r\n <button\r\n (click)=\"closePopup()\"\r\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\r\n >\r\n <i class=\"fas fa-times text-sm\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
62
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopupComponent, decorators: [{
63
63
  type: Component,
64
- args: [{ selector: 'lib-popup', standalone: false, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\n <div\n [class]=\"\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\n animationClass\n \"\n >\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\n\n <div class=\"flex-shrink-0 mr-3\">\n <i [class]=\"iconClass + ' text-xl'\"></i>\n </div>\n\n <div class=\"flex-grow pr-4 text-left\">\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\n </div>\n\n <button\n (click)=\"closePopup()\"\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\n >\n <i class=\"fas fa-times text-sm\"></i>\n </button>\n </div>\n</div>\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"] }]
64
+ args: [{ selector: 'lib-popup', standalone: false, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\r\n <div\r\n [class]=\"\r\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\r\n animationClass\r\n \"\r\n >\r\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\r\n\r\n <div class=\"flex-shrink-0 mr-3\">\r\n <i [class]=\"iconClass + ' text-xl'\"></i>\r\n </div>\r\n\r\n <div class=\"flex-grow pr-4 text-left\">\r\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\r\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\r\n </div>\r\n\r\n <button\r\n (click)=\"closePopup()\"\r\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\r\n >\r\n <i class=\"fas fa-times text-sm\"></i>\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"] }]
65
65
  }], propDecorators: { isOpen: [{
66
66
  type: Input
67
67
  }], type: [{
@@ -75,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
75
75
  }], closed: [{
76
76
  type: Output
77
77
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7OztBQVV2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQU9XLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQWMsTUFBTSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVmLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FtRG5CO0lBaERDLHlEQUF5RDtJQUN6RCxJQUFJLFFBQVE7UUFDVixNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxNQUFNLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsS0FBSyxFQUFFLDhCQUE4QjtZQUNyQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELElBQUksRUFBRSw4QkFBOEI7U0FDckMsQ0FBQztRQUNGLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyx5QkFBeUI7WUFDM0IsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxLQUFLLElBQUksRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7MkdBM0RVLGNBQWM7K0ZBQWQsY0FBYywyTUNqQjNCLGkyQkEwQkE7MkZEVGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsS0FBSzs4QkFLUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUG9wdXBUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXBvcHVwJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdHlwZTogUG9wdXBUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGR1cmF0aW9uID0gNDAwMDtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGlzQ2xvc2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHRpbWVyOiBhbnk7XG5cbiAgLy8gR2V0dGVycyBwYXJhIGFzIGNsYXNzZXMgLSBFdml0YSBlcnJvIGRlIHBhcnNlciBubyBIVE1MXG4gIGdldCBiYXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9ycyA9IHtcbiAgICAgIHN1Y2Nlc3M6ICdiZy1ncmVlbi01MDAnLFxuICAgICAgZXJyb3I6ICdiZy1yZWQtNTAwJyxcbiAgICAgIHdhcm5pbmc6ICdiZy1hbWJlci01MDAnLFxuICAgICAgaW5mbzogJ2JnLWJsdWUtNTAwJyxcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy50eXBlXSB8fCAnYmctYmx1ZS01MDAnO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGljb25zID0ge1xuICAgICAgc3VjY2VzczogJ2ZhLWNoZWNrLWNpcmNsZSB0ZXh0LWdyZWVuLTUwMCcsXG4gICAgICBlcnJvcjogJ2ZhLXRpbWVzLWNpcmNsZSB0ZXh0LXJlZC01MDAnLFxuICAgICAgd2FybmluZzogJ2ZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHRleHQtYW1iZXItNTAwJyxcbiAgICAgIGluZm86ICdmYS1pbmZvLWNpcmNsZSB0ZXh0LWJsdWUtNTAwJyxcbiAgICB9O1xuICAgIHJldHVybiBgZmFzICR7aWNvbnNbdGhpcy50eXBlXX1gO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNDbG9zaW5nXG4gICAgICA/ICdhbmltYXRlLXNsaWRlLW91dC1yaWdodCdcbiAgICAgIDogJ2FuaW1hdGUtc2xpZGUtaW4tcmlnaHQnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpc09wZW4nXT8uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFRpbWVyKCkge1xuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCksIHRoaXMuZHVyYXRpb24pO1xuICB9XG5cbiAgY2xvc2VQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0Nsb3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB9LCA0MDApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmaXhlZCB0b3AtNiB6LVsxMDAwMF0gdy1mdWxsIG1heC13LVszMjBweF1cIj5cbiAgPGRpdlxuICAgIFtjbGFzc109XCJcbiAgICAgICdiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHJvdW5kZWQtMnhsIHNoYWRvdy0yeGwgZmxleCBwLTQgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlICcgK1xuICAgICAgYW5pbWF0aW9uQ2xhc3NcbiAgICBcIlxuICA+XG4gICAgPGRpdiBbY2xhc3NdPVwiJ2Fic29sdXRlIGxlZnQtMCB0b3AtMCBib3R0b20tMCB3LTEuNSAnICsgYmFyQ29sb3JcIj48L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIG1yLTNcIj5cbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3MgKyAnIHRleHQteGwnXCI+PC9pPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBwci00IHRleHQtbGVmdFwiPlxuICAgICAgPGg0IGNsYXNzPVwidGV4dC1zbSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBsZWFkaW5nLXRpZ2h0XCI+e3sgdGl0bGUgfX08L2g0PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LWdyYXktNTAwIG10LTEgbGVhZGluZy1zbnVnXCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgY2xhc3M9XCJmbGV4LXNocmluay0wIHRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1zbVwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7OztBQVV2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQU9XLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQWMsTUFBTSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVmLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FtRG5CO0lBaERDLHlEQUF5RDtJQUN6RCxJQUFJLFFBQVE7UUFDVixNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxNQUFNLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsS0FBSyxFQUFFLDhCQUE4QjtZQUNyQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELElBQUksRUFBRSw4QkFBOEI7U0FDckMsQ0FBQztRQUNGLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyx5QkFBeUI7WUFDM0IsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxLQUFLLElBQUksRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7MkdBM0RVLGNBQWM7K0ZBQWQsY0FBYywyTUNqQjNCLHE1QkEwQkE7MkZEVGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsS0FBSzs4QkFLUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wdXBUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBvcHVwJyxcclxuICBzdGFuZGFsb25lOiBmYWxzZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eXBlOiBQb3B1cFR5cGUgPSAnaW5mbyc7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcclxuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XHJcbiAgQElucHV0KCkgZHVyYXRpb24gPSA0MDAwO1xyXG5cclxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBpc0Nsb3NpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHRpbWVyOiBhbnk7XHJcblxyXG4gIC8vIEdldHRlcnMgcGFyYSBhcyBjbGFzc2VzIC0gRXZpdGEgZXJybyBkZSBwYXJzZXIgbm8gSFRNTFxyXG4gIGdldCBiYXJDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29sb3JzID0ge1xyXG4gICAgICBzdWNjZXNzOiAnYmctZ3JlZW4tNTAwJyxcclxuICAgICAgZXJyb3I6ICdiZy1yZWQtNTAwJyxcclxuICAgICAgd2FybmluZzogJ2JnLWFtYmVyLTUwMCcsXHJcbiAgICAgIGluZm86ICdiZy1ibHVlLTUwMCcsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnR5cGVdIHx8ICdiZy1ibHVlLTUwMCc7XHJcbiAgfVxyXG5cclxuICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpY29ucyA9IHtcclxuICAgICAgc3VjY2VzczogJ2ZhLWNoZWNrLWNpcmNsZSB0ZXh0LWdyZWVuLTUwMCcsXHJcbiAgICAgIGVycm9yOiAnZmEtdGltZXMtY2lyY2xlIHRleHQtcmVkLTUwMCcsXHJcbiAgICAgIHdhcm5pbmc6ICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWFtYmVyLTUwMCcsXHJcbiAgICAgIGluZm86ICdmYS1pbmZvLWNpcmNsZSB0ZXh0LWJsdWUtNTAwJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gYGZhcyAke2ljb25zW3RoaXMudHlwZV19YDtcclxuICB9XHJcblxyXG4gIGdldCBhbmltYXRpb25DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNDbG9zaW5nXHJcbiAgICAgID8gJ2FuaW1hdGUtc2xpZGUtb3V0LXJpZ2h0J1xyXG4gICAgICA6ICdhbmltYXRlLXNsaWRlLWluLXJpZ2h0JztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydpc09wZW4nXT8uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RhcnRUaW1lcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydFRpbWVyKCkge1xyXG4gICAgaWYgKHRoaXMudGltZXIpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2VQb3B1cCgpLCB0aGlzLmR1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9wdXAoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcclxuICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XHJcbiAgICB9LCA0MDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmaXhlZCB0b3AtNiB6LVsxMDAwMF0gdy1mdWxsIG1heC13LVszMjBweF1cIj5cclxuICA8ZGl2XHJcbiAgICBbY2xhc3NdPVwiXHJcbiAgICAgICdiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHJvdW5kZWQtMnhsIHNoYWRvdy0yeGwgZmxleCBwLTQgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlICcgK1xyXG4gICAgICBhbmltYXRpb25DbGFzc1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IFtjbGFzc109XCInYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGJvdHRvbS0wIHctMS41ICcgKyBiYXJDb2xvclwiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIG1yLTNcIj5cclxuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzcyArICcgdGV4dC14bCdcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93IHByLTQgdGV4dC1sZWZ0XCI+XHJcbiAgICAgIDxoNCBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbGVhZGluZy10aWdodFwiPnt7IHRpdGxlIH19PC9oND5cclxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LWdyYXktNTAwIG10LTEgbGVhZGluZy1zbnVnXCI+e3sgbWVzc2FnZSB9fTwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cImNsb3NlUG9wdXAoKVwiXHJcbiAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lcyB0ZXh0LXNtXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=