tudu-components 0.2.26 → 0.2.28
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.
- package/esm2020/lib/components/card-layout/card-layout.component.mjs +4 -3
- package/esm2020/lib/components/custom-modal/custom-modal.component.mjs +3 -3
- package/esm2020/lib/components/fallback-message/fallback-message.component.mjs +3 -3
- package/esm2020/lib/components/format-date-time/format-date-time.pipe.mjs +1 -1
- package/esm2020/lib/components/popup/popup.component.mjs +3 -3
- package/fesm2015/tudu-components.mjs +9 -8
- package/fesm2015/tudu-components.mjs.map +1 -1
- package/fesm2020/tudu-components.mjs +9 -8
- package/fesm2020/tudu-components.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -17,6 +17,7 @@ export class CardLayoutComponent {
|
|
|
17
17
|
return { backgroundColor: 'var(--status-teal-bg)', color: 'var(--status-teal)' };
|
|
18
18
|
case 'cancelado':
|
|
19
19
|
case 'expirado':
|
|
20
|
+
case 'atrasado':
|
|
20
21
|
return { backgroundColor: 'var(--status-danger-bg)', color: 'var(--status-danger)' };
|
|
21
22
|
case 'publicado':
|
|
22
23
|
return { backgroundColor: 'var(--status-info-bg)', color: 'var(--status-info)' };
|
|
@@ -37,10 +38,10 @@ export class CardLayoutComponent {
|
|
|
37
38
|
}
|
|
38
39
|
}
|
|
39
40
|
CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
40
|
-
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"] }] });
|
|
41
42
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
|
|
42
43
|
type: Component,
|
|
43
|
-
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"] }]
|
|
44
45
|
}], propDecorators: { statusPedido: [{
|
|
45
46
|
type: Input
|
|
46
47
|
}], cardTemplateIndicator: [{
|
|
@@ -50,4 +51,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
50
51
|
}], hideDescription: [{
|
|
51
52
|
type: Input
|
|
52
53
|
}] } });
|
|
53
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
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-
|
|
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-2xl 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-
|
|
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-2xl 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBNkIvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBNUI3QixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDOUMsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN2QyxnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFFeEMsY0FBUyxHQUFHLEtBQUssQ0FBQztRQUNsQixpQkFBWSxHQUFXLHFCQUFxQixDQUFDO1FBQzdDLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFDZixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQixnQkFBVyxHQUFXLDJDQUEyQyxDQUFDO1FBRWxFLGdC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cUdBQXBCLG9CQUFvQiwybkJDbEJqQyw2bElBeUZNOzJGRHZFTyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBQ2hCLEtBQUs7K0ZBS1IsT0FBTztzQkFBZixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBQ0csYUFBYTtzQkFBckIsS0FBSztnQkFDRyxZQUFZO3NCQUFwQixLQUFLO2dCQUVJLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQWtHTixVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RMaXN0ZW5lcixcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcblxyXG50eXBlIE1vZGFsVHlwZSA9ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jdXN0b20tbW9kYWwnLFxyXG4gIHN0YW5kYWxvbmU6IGZhbHNlLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS1tb2RhbC5jb21wb25lbnQuY3NzJ10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgbW9kYWxJZCA9ICdjdXN0b21Nb2RhbCc7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnQXZpc28nO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcclxuICBASW5wdXQoKSBjbG9zZUJ1dHRvblRleHQgPSAnRmVjaGFyJztcclxuICBASW5wdXQoKSBhY3Rpb25CdXR0b25UZXh0ID0gJyc7XHJcbiAgQElucHV0KCkgcGF5bWVudE1ldGhvZDogJ3BpeCcgfCAnY3JlZGl0JyB8IG51bGwgPSBudWxsO1xyXG4gIEBJbnB1dCgpIGVycm9yRGV0YWlsczogYW55ID0gbnVsbDtcclxuXHJcbiAgQE91dHB1dCgpIG1vZGFsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBtb2RhbEFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuICBAT3V0cHV0KCkgY2xvc2VBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG4gIEBJbnB1dCgpIHNob3dNb2RhbCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIG1lc3NhZ2VUaXRsZTogc3RyaW5nID0gJ1BhZ2FtZW50byBBcHJvdmFkbyEnO1xyXG4gIEBJbnB1dCgpIHNob3dCdG4gPSB0cnVlO1xyXG4gIEBJbnB1dCgpIHByaWNlTmVnb3RpYXRlZCA9IDA7XHJcbiAgQElucHV0KCkgbWVzc2FnZUJvZHk6IHN0cmluZyA9ICdTZXUgcGFnYW1lbnRvIGZvaSBwcm9jZXNzYWRvIGNvbSBzdWNlc3NvLic7XHJcbiAgQElucHV0KCkgaXNMb2FkaW5nQnRuOiBib29sZWFuIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRpc2FibGVkQnRuOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIC8vIPCflJIgTk9WQSBQUk9QUklFREFERTogVHJhdmEgbyBmZWNoYW1lbnRvIGRvIG1vZGFsXHJcbiAgQElucHV0KCkgaXNMb2NrZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgbW9kYWxJY29uOiBzdHJpbmcgPSAnZmEtY2hlY2snO1xyXG4gIG1vZGFsSWNvbkNvbG9yOiBzdHJpbmcgPSAndGV4dC1ncmVlbi02MDAnO1xyXG4gIG1vZGFsQmdDb2xvcjogc3RyaW5nID0gJ2JnLWdyZWVuLTEwMCc7XHJcbiAgaXNDbG9zaW5nID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XHJcblxyXG4gIG9wZW5Nb2RhbCgpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICBpZiAoIXdpbmRvdy5sb2NhdGlvbi5oYXNoLmluY2x1ZGVzKCdtb2RhbE9wZW4nKSkge1xyXG4gICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW4oXHJcbiAgICB0eXBlOiBNb2RhbFR5cGUsXHJcbiAgICBtZXNzYWdlOiBzdHJpbmcgPSAnJyxcclxuICAgIHBheW1lbnRNZXRob2Q/OiAncGl4JyB8ICdjcmVkaXQnLFxyXG4gICk6IHZvaWQge1xyXG4gICAgdGhpcy5jb25maWd1cmVNb2RhbCh0eXBlLCBtZXNzYWdlKTtcclxuICAgIGlmIChwYXltZW50TWV0aG9kKSB0aGlzLnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xyXG4gICAgdGhpcy5vcGVuTW9kYWwoKTtcclxuICB9XHJcblxyXG4gIGNvbmZpZ3VyZU1vZGFsKHR5cGU6IE1vZGFsVHlwZSwgbWVzc2FnZTogc3RyaW5nID0gJycsIHRpdGxlPzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IGZhbHNlO1xyXG4gICAgfVxyXG5cclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdzdWNjZXNzJzpcclxuICAgICAgICB0aGlzLnNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZSwgdGl0bGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdlcnJvcic6XHJcbiAgICAgICAgdGhpcy5zZXRFcnJvclN0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3dhcm5pbmcnOlxyXG4gICAgICAgIHRoaXMuc2V0V2FybmluZ1N0eWxlcyhtZXNzYWdlLCB0aXRsZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtY2hlY2stY2lyY2xlJztcclxuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi1zdWNjZXNzJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ21vZGFsLWJnLXN1Y2Nlc3MnO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnU3VjZXNzbyEnO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ09wZXJhw6fDo28gcmVhbGl6YWRhIGNvbSBzdWNlc3NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEVycm9yU3R5bGVzKG1lc3NhZ2U6IHN0cmluZywgdGl0bGU/OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubW9kYWxJY29uID0gJ2ZhLXRpbWVzLWNpcmNsZSc7XHJcbiAgICB0aGlzLm1vZGFsSWNvbkNvbG9yID0gJ21vZGFsLWljb24tZXJyb3InO1xyXG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctZXJyb3InO1xyXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSB0aXRsZSB8fCAnT3BzISBBbGdvIGRldSBlcnJhZG8nO1xyXG4gICAgdGhpcy5tZXNzYWdlQm9keSA9IG1lc3NhZ2UgfHwgJ07Do28gY29uc2VndWltb3MgcHJvY2Vzc2FyIHN1YSBzb2xpY2l0YcOnw6NvLic7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFdhcm5pbmdTdHlsZXMobWVzc2FnZTogc3RyaW5nLCB0aXRsZT86IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtaW5mby1jaXJjbGUnO1xyXG4gICAgdGhpcy5tb2RhbEljb25Db2xvciA9ICd0ZXh0LWJsdWUtNjAwJztcclxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ2JnLWJsdWUtNTAnO1xyXG5cclxuICAgIHRoaXMubWVzc2FnZVRpdGxlID0gdGl0bGUgfHwgJ0F0ZW7Dp8Ojbyc7XHJcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci4nO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uTW9kYWwoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xyXG4gICAgICB0aGlzLmlzTG9hZGluZ0J0biA9IHRydWU7XHJcbiAgICAgIHRoaXMubW9kYWxBY3Rpb24uZW1pdCgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb2RhbEFjdGlvbi5lbWl0KCk7XHJcbiAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2VNb2RhbChmcm9tQnV0dG9uOiBib29sZWFuID0gZmFsc2UpOiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5zaG93TW9kYWwgfHwgdGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcclxuXHJcbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XHJcbiAgICBpZiAoZnJvbUJ1dHRvbikge1xyXG4gICAgICB0aGlzLmNsb3NlQWN0aW9uLmVtaXQoKTtcclxuICAgIH1cclxuICAgIFxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgfSwgMzAwKTtcclxuICB9XHJcbiAgLy8g4pyFIEludGVyY2VwdGEgbyBib3TDo28gdm9sdGFyIGRvIGNlbHVsYXIvYnJvd3NlclxyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXHJcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLnNob3dNb2RhbCkge1xyXG4gICAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xyXG4gICAgICAgIC8vIPCflJIgU2UgZXN0aXZlciB0cmF2YWRvLCBcImFudWxhbW9zXCIgbyB2b2x0YXIgYWRpY2lvbmFuZG8gbyBoYXNoIGRlIG5vdm9cclxuICAgICAgICB0aGlzLmxvY2F0aW9uLmdvKHRoaXMubG9jYXRpb24ucGF0aCgpICsgJyNtb2RhbE9wZW4nKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xyXG4gICAgICAgIHRoaXMubW9kYWxDbG9zZWQuZW1pdCgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG59XHJcbiIsIjxkaXZcclxuICAqbmdJZj1cInNob3dNb2RhbFwiXHJcbiAgY2xhc3M9XCJjdXN0b20tbW9kYWwtcm9vdCBmaXhlZCBpbnNldC0wIHotWzk5OTldIGZsZXggZmxleC1jb2wganVzdGlmeS1lbmQgbWQ6anVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHBvaW50ZXItZXZlbnRzLWF1dG9cIlxyXG4gICh0b3VjaG1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuPlxyXG4gIDwhLS0gRnVuZG8gZXNjdXJvIG92ZXJsYXkgLS0+XHJcbiAgPGRpdlxyXG4gICAgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGJnLXNsYXRlLTkwMC82MCBiYWNrZHJvcC1ibHVyLXNtIHRyYW5zaXRpb24tb3BhY2l0eSBkdXJhdGlvbi01MDBcIlxyXG4gICAgW2NsYXNzLm9wYWNpdHktMF09XCJpc0Nsb3NpbmdcIlxyXG4gICAgKGNsaWNrKT1cIiFpc0xvY2tlZCAmJiBjbG9zZU1vZGFsKClcIlxyXG4gICAgKHRvdWNobW92ZSk9XCIkZXZlbnQucHJldmVudERlZmF1bHQoKVwiXHJcbiAgPjwvZGl2PlxyXG5cclxuICA8IS0tIENvbnRhaW5lciBQcmluY2lwYWwgZG8gTW9kYWwgLS0+XHJcbiAgPHNlY3Rpb25cclxuICAgIGNsYXNzPVwicmVsYXRpdmUgdy1mdWxsIG1kOm1heC13LTJ4bCBiZy1zdXJmYWNlIG1heC1oLVsxMDBkdmhdIG1kOm1heC1oLVs4NWR2aF0gcm91bmRlZC10LVsyLjVyZW1dIG1kOnJvdW5kZWQtWzIuNXJlbV0gc2hhZG93LTJ4bCBvdmVyZmxvdy1oaWRkZW4gZmxleCBmbGV4LWNvbFwiXHJcbiAgICBbbmdDbGFzc109XCJpc0Nsb3NpbmcgPyAnYW5pbWF0ZS1zbGlkZS1kb3duJyA6ICdhbmltYXRlLXNsaWRlLXVwJ1wiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICA+XHJcbiAgICA8IS0tIENBQkXDh0FMSE8gRklYTyAtLT5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJweC02IHB0LTQgcGItMiBiZy1zdXJmYWNlIHotMTAgc2hyaW5rLTAgZmxleCBqdXN0aWZ5LWNlbnRlclwiXHJcbiAgICAgIFtuZ0NsYXNzXT1cImlzTG9ja2VkID8gJ2N1cnNvci1ub3QtYWxsb3dlZCBvcGFjaXR5LTUwJyA6ICdjdXJzb3ItcG9pbnRlcidcIlxyXG4gICAgICAoY2xpY2spPVwiIWlzTG9ja2VkICYmIGNsb3NlTW9kYWwoKVwiXHJcbiAgICA+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ3LTEyIGgtMS41IGJnLW1lZGl1bSByb3VuZGVkLWZ1bGxcIj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDwhLS0gw4FSRUEgREUgU0NST0xMIC0tPlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cImZsZXgtMSBvdmVyZmxvdy15LWF1dG8gc2Nyb2xsLXNtb290aCBvdmVyc2Nyb2xsLWNvbnRhaW4gYmctc3VyZmFjZSBjdXN0b20tc2Nyb2xsYmFyIHB4LTYgcHQtMlwiXHJcbiAgICAgIHN0eWxlPVwidG91Y2gtYWN0aW9uOiBwYW4teTsgb3ZlcnNjcm9sbC1iZWhhdmlvcjogY29udGFpblwiXHJcbiAgICAgICh0b3VjaG1vdmUpPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcclxuICAgID5cclxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtY2VudGVyIHRleHQtY2VudGVyIHctZnVsbFwiPlxyXG4gICAgICAgIDwhLS0gw41jb25lIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBtYi00XCI+XHJcbiAgICAgICAgICA8ZGl2IFtjbGFzc109XCJtb2RhbEJnQ29sb3JcIiBjbGFzcz1cInctMjAgaC0yMCByb3VuZGVkLWZ1bGwgb3BhY2l0eS00MFwiPjwvZGl2PlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgPGkgW2NsYXNzXT1cIm1vZGFsSWNvbiArICcgJyArIG1vZGFsSWNvbkNvbG9yXCIgY2xhc3M9XCJmYXMgdGV4dC0zeGxcIj48L2k+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPCEtLSBUw610dWxvIC0tPlxyXG4gICAgICAgIDxoMiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LXRleHQtcHJpbWFyeSBtYi0yXCI+e3sgbWVzc2FnZVRpdGxlIH19PC9oMj5cclxuXHJcbiAgICAgICAgPCEtLSBDb3JwbyBkYSBNZW5zYWdlbSAtLT5cclxuICAgICAgICA8cCAqbmdJZj1cIm1lc3NhZ2VCb2R5XCIgY2xhc3M9XCJ0ZXh0LXRleHQtc2Vjb25kYXJ5IG1iLTRcIj57eyBtZXNzYWdlQm9keSB9fTwvcD5cclxuXHJcbiAgICAgICAgPCEtLSBDb250ZcO6ZG8gRGluw6JtaWNvIC0tPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1keW5hbWljLWNvbnRlbnQgdGV4dC1sZWZ0IHctZnVsbCBwYi0yXCI+XHJcbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3B0aW9uYWwtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XHJcbiAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgIDwhLS0gRXJyb3MgLS0+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImVycm9yRGV0YWlsc1wiIGNsYXNzPVwibXQtNCBwLTQgYmctcmVkLTUwIGRhcms6YmctcmVkLTk1MC8yMCByb3VuZGVkLTJ4bCB0ZXh0LWxlZnQgYm9yZGVyIGJvcmRlci1yZWQtMTAwIGRhcms6Ym9yZGVyLXJlZC05MDAvMzAgdy1mdWxsIG1iLTRcIj5cclxuICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTBweF0gZm9udC1ib2xkIHRleHQtcmVkLTcwMCBkYXJrOnRleHQtcmVkLTQwMCB1cHBlcmNhc2UgbWItMVwiPkxvZyBkbyBzaXN0ZW1hOjwvcD5cclxuICAgICAgICAgIDxwcmUgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LXJlZC02MDAgZGFyazp0ZXh0LXJlZC0zMDAgZm9udC1tb25vIHdoaXRlc3BhY2UtcHJlLXdyYXBcIj57eyBlcnJvckRldGFpbHMgfCBqc29uIH19PC9wcmU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgPCEtLSBCT1TDlUVTIChBR09SQSBERU5UUk8gRE8gU0NST0xMKSAtLT5cclxuICAgICAgPGRpdiBjbGFzcz1cInctZnVsbCBwdC00IHBiLTYgbXQtNCBib3JkZXItdCBib3JkZXItYm9yZGVyLWxpZ2h0LzUwXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgdy1mdWxsIGdhcC0zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZEJ0biB8fCAocHJpY2VOZWdvdGlhdGVkIDw9IDAgJiYgYWN0aW9uQnV0dG9uVGV4dCA9PT0gJ05lZ29jaWFyJylcIlxyXG4gICAgICAgICAgICAqbmdJZj1cImFjdGlvbkJ1dHRvblRleHRcIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uTW9kYWwoKVwiXHJcbiAgICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTQgdGV4dC13aGl0ZSByb3VuZGVkLTJ4bCBmb250LWJvbGQgYWN0aXZlOnNjYWxlLVswLjk4XSB0cmFuc2l0aW9uLWFsbCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlciBnYXAtMyBzaGFkb3ctbGcgYnRuLXByaW1hcnktY3VzdG9tXCJcclxuICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiJ3ZhcigtLXByaW1hcnkpJ1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWlzTG9hZGluZ0J0blwiPnt7IGFjdGlvbkJ1dHRvblRleHQgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdCdG5cIj5cclxuICAgICAgICAgICAgICA8c3Bhbj5Qcm9jZXNzYW5kbzwvc3Bhbj5cclxuICAgICAgICAgICAgICA8aSBjbGFzcz1cImZhcyBmYS1jaXJjbGUtbm90Y2ggZmEtc3BpblwiPjwvaT5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuXHJcbiAgICAgICAgICA8YnV0dG9uXHJcbiAgICAgICAgICAgICpuZ0lmPVwic2hvd0J0blwiXHJcbiAgICAgICAgICAgIChjbGljayk9XCJjbG9zZU1vZGFsKHRydWUpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktMiB0ZXh0LXRleHQtbXV0ZWQgZm9udC1zZW1pYm9sZCBob3Zlcjp0ZXh0LXRleHQtcHJpbWFyeSB0cmFuc2l0aW9uLWNvbG9yc1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIHt7IGNsb3NlQnV0dG9uVGV4dCB9fVxyXG4gICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9zZWN0aW9uPlxyXG48L2Rpdj4iXX0=
|
|
@@ -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,
|
|
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,
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7OztBQVV2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQU9XLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQWMsTUFBTSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVmLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FtRG5CO0lBaERDLHlEQUF5RDtJQUN6RCxJQUFJLFFBQVE7UUFDVixNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxNQUFNLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsS0FBSyxFQUFFLDhCQUE4QjtZQUNyQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELElBQUksRUFBRSw4QkFBOEI7U0FDckMsQ0FBQztRQUNGLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyx5QkFBeUI7WUFDM0IsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxLQUFLLElBQUksRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7MkdBM0RVLGNBQWM7K0ZBQWQsY0FBYywyTUNqQjNCLHE1QkEwQkE7MkZEVGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsS0FBSzs4QkFLUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBFdmVudEVtaXR0ZXIsXHJcbiAgSW5wdXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuZXhwb3J0IHR5cGUgUG9wdXBUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXBvcHVwJyxcclxuICBzdGFuZGFsb25lOiBmYWxzZSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcG9wdXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5jc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIFBvcHVwQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcclxuICBASW5wdXQoKSB0eXBlOiBQb3B1cFR5cGUgPSAnaW5mbyc7XHJcbiAgQElucHV0KCkgdGl0bGUgPSAnJztcclxuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XHJcbiAgQElucHV0KCkgZHVyYXRpb24gPSA0MDAwO1xyXG5cclxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuICBpc0Nsb3NpbmcgPSBmYWxzZTtcclxuICBwcml2YXRlIHRpbWVyOiBhbnk7XHJcblxyXG4gIC8vIEdldHRlcnMgcGFyYSBhcyBjbGFzc2VzIC0gRXZpdGEgZXJybyBkZSBwYXJzZXIgbm8gSFRNTFxyXG4gIGdldCBiYXJDb2xvcigpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgY29sb3JzID0ge1xyXG4gICAgICBzdWNjZXNzOiAnYmctZ3JlZW4tNTAwJyxcclxuICAgICAgZXJyb3I6ICdiZy1yZWQtNTAwJyxcclxuICAgICAgd2FybmluZzogJ2JnLWFtYmVyLTUwMCcsXHJcbiAgICAgIGluZm86ICdiZy1ibHVlLTUwMCcsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIGNvbG9yc1t0aGlzLnR5cGVdIHx8ICdiZy1ibHVlLTUwMCc7XHJcbiAgfVxyXG5cclxuICBnZXQgaWNvbkNsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBpY29ucyA9IHtcclxuICAgICAgc3VjY2VzczogJ2ZhLWNoZWNrLWNpcmNsZSB0ZXh0LWdyZWVuLTUwMCcsXHJcbiAgICAgIGVycm9yOiAnZmEtdGltZXMtY2lyY2xlIHRleHQtcmVkLTUwMCcsXHJcbiAgICAgIHdhcm5pbmc6ICdmYS1leGNsYW1hdGlvbi10cmlhbmdsZSB0ZXh0LWFtYmVyLTUwMCcsXHJcbiAgICAgIGluZm86ICdmYS1pbmZvLWNpcmNsZSB0ZXh0LWJsdWUtNTAwJyxcclxuICAgIH07XHJcbiAgICByZXR1cm4gYGZhcyAke2ljb25zW3RoaXMudHlwZV19YDtcclxuICB9XHJcblxyXG4gIGdldCBhbmltYXRpb25DbGFzcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuaXNDbG9zaW5nXHJcbiAgICAgID8gJ2FuaW1hdGUtc2xpZGUtb3V0LXJpZ2h0J1xyXG4gICAgICA6ICdhbmltYXRlLXNsaWRlLWluLXJpZ2h0JztcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmIChjaGFuZ2VzWydpc09wZW4nXT8uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuc3RhcnRUaW1lcigpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzdGFydFRpbWVyKCkge1xyXG4gICAgaWYgKHRoaXMudGltZXIpIGNsZWFyVGltZW91dCh0aGlzLnRpbWVyKTtcclxuICAgIHRoaXMudGltZXIgPSBzZXRUaW1lb3V0KCgpID0+IHRoaXMuY2xvc2VQb3B1cCgpLCB0aGlzLmR1cmF0aW9uKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9wdXAoKSB7XHJcbiAgICBpZiAodGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcclxuICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcclxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNsb3NlZC5lbWl0KCk7XHJcbiAgICB9LCA0MDApO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmaXhlZCB0b3AtNiB6LVsxMDAwMF0gdy1mdWxsIG1heC13LVszMjBweF1cIj5cclxuICA8ZGl2XHJcbiAgICBbY2xhc3NdPVwiXHJcbiAgICAgICdiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHJvdW5kZWQtMnhsIHNoYWRvdy0yeGwgZmxleCBwLTQgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlICcgK1xyXG4gICAgICBhbmltYXRpb25DbGFzc1xyXG4gICAgXCJcclxuICA+XHJcbiAgICA8ZGl2IFtjbGFzc109XCInYWJzb2x1dGUgbGVmdC0wIHRvcC0wIGJvdHRvbS0wIHctMS41ICcgKyBiYXJDb2xvclwiPjwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIG1yLTNcIj5cclxuICAgICAgPGkgW2NsYXNzXT1cImljb25DbGFzcyArICcgdGV4dC14bCdcIj48L2k+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleC1ncm93IHByLTQgdGV4dC1sZWZ0XCI+XHJcbiAgICAgIDxoNCBjbGFzcz1cInRleHQtc20gZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbGVhZGluZy10aWdodFwiPnt7IHRpdGxlIH19PC9oND5cclxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LWdyYXktNTAwIG10LTEgbGVhZGluZy1zbnVnXCI+e3sgbWVzc2FnZSB9fTwvcD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxidXR0b25cclxuICAgICAgKGNsaWNrKT1cImNsb3NlUG9wdXAoKVwiXHJcbiAgICAgIGNsYXNzPVwiZmxleC1zaHJpbmstMCB0ZXh0LWdyYXktMzAwIGhvdmVyOnRleHQtZ3JheS01MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxyXG4gICAgPlxyXG4gICAgICA8aSBjbGFzcz1cImZhcyBmYS10aW1lcyB0ZXh0LXNtXCI+PC9pPlxyXG4gICAgPC9idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
|