tudu-components 0.2.16 → 0.2.18
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-detail/card-detail.component.mjs +14 -0
- package/esm2020/lib/components/card-layout/card-layout.component.mjs +4 -3
- package/esm2020/lib/components/custom-modal/custom-modal.component.mjs +7 -6
- package/esm2020/lib/tudu-components.module.mjs +1 -1
- package/esm2020/public-api.mjs +1 -1
- package/fesm2015/tudu-components.mjs +9 -7
- package/fesm2015/tudu-components.mjs.map +1 -1
- package/fesm2020/tudu-components.mjs +9 -7
- package/fesm2020/tudu-components.mjs.map +1 -1
- package/lib/components/card-detail/card-detail.component.d.ts +8 -0
- package/lib/components/card-layout/card-layout.component.d.ts +1 -1
- package/package.json +1 -1
- package/esm2020/lib/components/cutom-modal/cutom-modal.component.mjs +0 -14
- package/lib/components/cutom-modal/cutom-modal.component.d.ts +0 -8
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Component } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
export class CardDetailComponent {
|
|
4
|
+
constructor() { }
|
|
5
|
+
ngOnInit() {
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
|
+
CardDetailComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardDetailComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
9
|
+
CardDetailComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardDetailComponent, selector: "lib-card-detail", ngImport: i0, template: "<p>card-detail works!</p>\n", styles: [""] });
|
|
10
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardDetailComponent, decorators: [{
|
|
11
|
+
type: Component,
|
|
12
|
+
args: [{ selector: 'lib-card-detail', template: "<p>card-detail works!</p>\n" }]
|
|
13
|
+
}], ctorParameters: function () { return []; } });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1kZXRhaWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWRldGFpbC9jYXJkLWRldGFpbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtZGV0YWlsL2NhcmQtZGV0YWlsLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7O0FBT2xELE1BQU0sT0FBTyxtQkFBbUI7SUFFOUIsZ0JBQWdCLENBQUM7SUFFakIsUUFBUTtJQUNSLENBQUM7O2dIQUxVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLHVEQ1BoQyw2QkFDQTsyRkRNYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNhcmQtZGV0YWlsJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtZGV0YWlsLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1kZXRhaWwuY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIENhcmREZXRhaWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGNvbnN0cnVjdG9yKCkgeyB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gIH1cblxufVxuIiwiPHA+Y2FyZC1kZXRhaWwgd29ya3MhPC9wPlxuIl19
|
|
@@ -40,6 +40,7 @@ export class CardLayoutComponent {
|
|
|
40
40
|
case 'concluido':
|
|
41
41
|
return { backgroundColor: '#0096881c', color: '#009688' }; // teal
|
|
42
42
|
case 'cancelado':
|
|
43
|
+
case 'expirado':
|
|
43
44
|
return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
|
|
44
45
|
case 'publicado':
|
|
45
46
|
return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave
|
|
@@ -63,10 +64,10 @@ export class CardLayoutComponent {
|
|
|
63
64
|
}
|
|
64
65
|
}
|
|
65
66
|
CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
66
|
-
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" }, ngImport: i0, template: "<div\n class=\"service-card rounded-
|
|
67
|
+
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" }, ngImport: i0, template: "<div\n class=\"service-card group rounded-2xl border border-slate-100 bg-white shadow-sm hover:shadow-md transition-all duration-300 relative mb-5 overflow-hidden\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-slate-50 bg-slate-50/30\"\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-slate-800 text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-slate-400 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 text-gray-50 font-semibold px-2.5 py-1 rounded-full bg-gray-400/10 text-gray-500 flex items-center justify-center\"\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-slate-600 mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-slate-700 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 class=\"mt-3 p-3 bg-slate-50 border border-slate-100 rounded-xl\"\n >\n <div class=\"text-slate-500 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-slate-50/50 border-t border-slate-100\">\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;} .template-2-order {margin-top: -6em;} &[data-template=\"1\"] {} &[data-template=\"2\"] {} .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; font-size: 1rem; color: var(--primary);} .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: 12px; font-size: 20px; border-radius: 10px;} .price {font-weight: 600; color: var(--background-color);} .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%;}} .badge-finalizado {background-color: #e0f7fa; color: #00796b;} .badge-concluido {background-color: #e8f5e9; color: #2e7d32;} .badge-cancelado {background-color: #ffebee; color: #c62828;} .badge-publicado {background-color: #fff3e0; color: #25a5ff;} .badge-default {background-color: #eeeeee; color: #757575;}}.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}: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: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
67
68
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
|
|
68
69
|
type: Component,
|
|
69
|
-
args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card rounded-
|
|
70
|
+
args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card group rounded-2xl border border-slate-100 bg-white shadow-sm hover:shadow-md transition-all duration-300 relative mb-5 overflow-hidden\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-slate-50 bg-slate-50/30\"\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-slate-800 text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-slate-400 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 text-gray-50 font-semibold px-2.5 py-1 rounded-full bg-gray-400/10 text-gray-500 flex items-center justify-center\"\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-slate-600 mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-slate-700 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 class=\"mt-3 p-3 bg-slate-50 border border-slate-100 rounded-xl\"\n >\n <div class=\"text-slate-500 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-slate-50/50 border-t border-slate-100\">\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;} .template-2-order {margin-top: -6em;} &[data-template=\"1\"] {} &[data-template=\"2\"] {} .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; font-size: 1rem; color: var(--primary);} .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: 12px; font-size: 20px; border-radius: 10px;} .price {font-weight: 600; color: var(--background-color);} .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%;}} .badge-finalizado {background-color: #e0f7fa; color: #00796b;} .badge-concluido {background-color: #e8f5e9; color: #2e7d32;} .badge-cancelado {background-color: #ffebee; color: #c62828;} .badge-publicado {background-color: #fff3e0; color: #25a5ff;} .badge-default {background-color: #eeeeee; color: #757575;}}.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}: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"] }]
|
|
70
71
|
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
|
|
71
72
|
type: Input
|
|
72
73
|
}], cardTemplateIndicator: [{
|
|
@@ -74,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
74
75
|
}], hideHeader: [{
|
|
75
76
|
type: Input
|
|
76
77
|
}] } });
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBakJ4QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDeEUsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztRQUUzRSxTQUFJLEdBQWEsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELGtCQUFhLEdBQUc7WUFDZCxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVELEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQ25FLENBQUM7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b25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXJkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNhcmRUZW1wbGF0ZUluZGljYXRvcjogbnVtYmVyID0gMDsgLy8gMSBwYXJhIHNlcnZpw6dvLCAyIHBhcmEgY2FuZGlkYXR1cmFcbiAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyAxIHBhcmEgc2VydmnDp28sIDIgcGFyYSBjYW5kaWRhdHVyYVxuXG4gIHRhZ3M6IHN0cmluZ1tdID0gWydSZXNpZGVuY2lhbCcsICdVcmdlbnRlJywgJ0Vsw6l0cmljYSddO1xuXG4gIHN0YXR1c09wdGlvbnMgPSBbXG4gICAgeyBjbGFzczogJ3N0YXR1cy1hY3RpdmUnLCB0ZXh0OiAnQXRpdm8nLCBpY29uOiAnZmEtY2lyY2xlJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtcGVuZGluZycsIHRleHQ6ICdFbSBhbmRhbWVudG8nLCBpY29uOiAnZmEtc3Bpbm5lcicgfSxcbiAgICB7IGNsYXNzOiAnc3RhdHVzLWNvbXBsZXRlZCcsIHRleHQ6ICdDb25jbHXDrWRvJywgaWNvbjogJ2ZhLWNoZWNrJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtY2FuY2VsbGVkJywgdGV4dDogJ0NhbmNlbGFkbycsIGljb246ICdmYS10aW1lcycgfSxcbiAgXTtcblxuICBjdXJyZW50U3RhdHVzID0gdGhpcy5zdGF0dXNPcHRpb25zWzBdO1xuICBwcml2YXRlIHN0YXR1c0ludGVydmFsOiBhbnk7XG4gIGZsb3dJbmRpY2F0b3I6IHN0cmluZyA9ICcxJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucm91dGUudXJsLmluY2x1ZGVzKCdidWRnZXRzJykpIHtcbiAgICAgICAgdGhpcy5mbG93SW5kaWNhdG9yID0gJ2J1ZGdldHMnO1xuICAgICAgICBjb25zb2xlLmxvZygnYXNkYXNkYWRzYXNkYScsIHRoaXMuZmxvd0luZGljYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHRoaXMuc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1cyA9IHRoaXMuc3RhdHVzT3B0aW9uc1tpbmRleF07XG4gICAgfSwgMzAwMCk7XG5cbiAgICBjb25zb2xlLmxvZygnY2FyZFRlbXBsYXRlSW5kaWNhdG9yJywgdGhpcy5jYXJkVGVtcGxhdGVJbmRpY2F0b3IpO1xuICB9XG5cbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjNGNhZjUwMjAnLCBjb2xvcjogJyM0Y2FmNTAnIH07IC8vIHZlcmRlIHN1YXZlXG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA5Njg4MWMnLCBjb2xvcjogJyMwMDk2ODgnIH07IC8vIHRlYWxcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyNmZjUyNTIxYycsIGNvbG9yOiAnI2ZmNTI1MicgfTsgLy8gdmVybWVsaG8gY2xhcm9cbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyMwMDk2ZmYxYycsIGNvbG9yOiAnIzI1YTVmZicgfTsgLy8gYXp1bCBzdWF2ZVxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjZmY1MjUyMWMnLCBjb2xvcjogJyNmZjUyNTInIH07IC8vIHZlcm1lbGhvIGNsYXJvXG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2ZmYWIyNTFmJywgY29sb3I6ICcjZmY5ODAwJyB9OyAvLyBsYXJhbmphIHN1YXZlXG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyM5YTFmYWQxYycsIGNvbG9yOiAnIzdlNTdjMicgfTsgLy8gcm94byBjbGFyb1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2UwZTBlMDFjJywgY29sb3I6ICcjNzU3NTc1JyB9OyAvLyBjaW56YSBwYWRyw6NvXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0dXNJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgdmVyRGV0YWxoZXMoKSB7XG4gICAgYWxlcnQoJ0FicmlyIGRldGFsaGVzIGRvIHNlcnZpw6dvLi4uJyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgcm91bmRlZC14bCBzaGFkb3ctbWQgb3ZlcmZsb3ctaGlkZGVuIGJnLXdoaXRlIGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItNVwiXG4+XG4gIDxkaXZcbiAgICBbY2xhc3MuZm9yY2Utc2hvd109XCIhaGlkZUhlYWRlclwiXG4gICAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQtaGVhZGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtMyB3LWZ1bGwgbWluLXctMFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24tc3R5bGUgZmxleC1zaHJpbmstMFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS1pY29uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgdy1mdWxsIG1pbi13LTBcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aXRsZSB0cnVuY2F0ZSBmbGV4LTEgbWluLXctMFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlcnZpY2UtdGl0bGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgtc2hyaW5rLTBcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXRhaWxzLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRydW5jYXRlIHctZnVsbFwiXG4gICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgIGZvbnQtc2l6ZTogMTJweDtcbiAgICAgICAgICAgIGNvbG9yOiB2YXIoLS10YWItbGluayk7XG4gICAgICAgICAgICB3aGl0ZS1zcGFjZTogbm93cmFwO1xuICAgICAgICAgICAgb3ZlcmZsb3c6IGhpZGRlbjtcbiAgICAgICAgICAgIHRleHQtb3ZlcmZsb3c6IGVsbGlwc2lzO1xuICAgICAgICAgIFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS1hZGRyZXNzXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZC1ib2R5IHAtNCBzcGFjZS15LTNcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtc3RhcnQgZ2FwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIHBiLTMgbWItM1wiXG4gICAgICAgICpuZ0lmPVwiY2FyZFRlbXBsYXRlSW5kaWNhdG9yID09PSAxXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBwYi0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1iYWRnZVwiIFtuZ1N0eWxlXT1cImJhZGdlU3R5bGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhdHVzLWJhZGdlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAgZm9udC1zZW1pYm9sZFwiXG4gICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzMmM7XG4gICAgICAgICAgICAgIGNvbG9yOiBncmV5O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcmRlci1udW1iZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpbHRlci10YWddXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGRcIiAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb25jbHVzaW9uLWRhdGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2luZm8tcm93XVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXNjcmlwdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNlcnZpY2UtY2FyZC1mb290ZXIgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgcC0zIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMCBiZy1ncmF5LTUwIGdhcC0xXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21haW4tYnRuXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbC02XCJcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ByaWNlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
|
|
78
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBakJ4QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDeEUsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztRQUUzRSxTQUFJLEdBQWEsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELGtCQUFhLEdBQUc7WUFDZCxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVELEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQ25FLENBQUM7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dGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXJkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNhcmRUZW1wbGF0ZUluZGljYXRvcjogbnVtYmVyID0gMDsgLy8gMSBwYXJhIHNlcnZpw6dvLCAyIHBhcmEgY2FuZGlkYXR1cmFcbiAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyAxIHBhcmEgc2VydmnDp28sIDIgcGFyYSBjYW5kaWRhdHVyYVxuXG4gIHRhZ3M6IHN0cmluZ1tdID0gWydSZXNpZGVuY2lhbCcsICdVcmdlbnRlJywgJ0Vsw6l0cmljYSddO1xuXG4gIHN0YXR1c09wdGlvbnMgPSBbXG4gICAgeyBjbGFzczogJ3N0YXR1cy1hY3RpdmUnLCB0ZXh0OiAnQXRpdm8nLCBpY29uOiAnZmEtY2lyY2xlJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtcGVuZGluZycsIHRleHQ6ICdFbSBhbmRhbWVudG8nLCBpY29uOiAnZmEtc3Bpbm5lcicgfSxcbiAgICB7IGNsYXNzOiAnc3RhdHVzLWNvbXBsZXRlZCcsIHRleHQ6ICdDb25jbHXDrWRvJywgaWNvbjogJ2ZhLWNoZWNrJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtY2FuY2VsbGVkJywgdGV4dDogJ0NhbmNlbGFkbycsIGljb246ICdmYS10aW1lcycgfSxcbiAgXTtcblxuICBjdXJyZW50U3RhdHVzID0gdGhpcy5zdGF0dXNPcHRpb25zWzBdO1xuICBwcml2YXRlIHN0YXR1c0ludGVydmFsOiBhbnk7XG4gIGZsb3dJbmRpY2F0b3I6IHN0cmluZyA9ICcxJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucm91dGUudXJsLmluY2x1ZGVzKCdidWRnZXRzJykpIHtcbiAgICAgICAgdGhpcy5mbG93SW5kaWNhdG9yID0gJ2J1ZGdldHMnO1xuICAgICAgICBjb25zb2xlLmxvZygnYXNkYXNkYWRzYXNkYScsIHRoaXMuZmxvd0luZGljYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHRoaXMuc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1cyA9IHRoaXMuc3RhdHVzT3B0aW9uc1tpbmRleF07XG4gICAgfSwgMzAwMCk7XG5cbiAgICBjb25zb2xlLmxvZygnY2FyZFRlbXBsYXRlSW5kaWNhdG9yJywgdGhpcy5jYXJkVGVtcGxhdGVJbmRpY2F0b3IpO1xuICB9XG5cbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjNGNhZjUwMjAnLCBjb2xvcjogJyM0Y2FmNTAnIH07IC8vIHZlcmRlIHN1YXZlXG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA5Njg4MWMnLCBjb2xvcjogJyMwMDk2ODgnIH07IC8vIHRlYWxcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICBjYXNlICdleHBpcmFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyNmZjUyNTIxYycsIGNvbG9yOiAnI2ZmNTI1MicgfTsgLy8gdmVybWVsaG8gY2xhcm9cbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyMwMDk2ZmYxYycsIGNvbG9yOiAnIzI1YTVmZicgfTsgLy8gYXp1bCBzdWF2ZVxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjZmY1MjUyMWMnLCBjb2xvcjogJyNmZjUyNTInIH07IC8vIHZlcm1lbGhvIGNsYXJvXG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2ZmYWIyNTFmJywgY29sb3I6ICcjZmY5ODAwJyB9OyAvLyBsYXJhbmphIHN1YXZlXG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyM5YTFmYWQxYycsIGNvbG9yOiAnIzdlNTdjMicgfTsgLy8gcm94byBjbGFyb1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2UwZTBlMDFjJywgY29sb3I6ICcjNzU3NTc1JyB9OyAvLyBjaW56YSBwYWRyw6NvXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0dXNJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgdmVyRGV0YWxoZXMoKSB7XG4gICAgYWxlcnQoJ0FicmlyIGRldGFsaGVzIGRvIHNlcnZpw6dvLi4uJyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgZ3JvdXAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgYmctd2hpdGUgc2hhZG93LXNtIGhvdmVyOnNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItNSBvdmVyZmxvdy1oaWRkZW5cIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzLmZvcmNlLXNob3ddPVwiIWhpZGVIZWFkZXJcIlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zLjUgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTUwIGJnLXNsYXRlLTUwLzMwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uLXN0eWxlIGZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWljb25dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xIG1pbi13LTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidHJ1bmNhdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTgwMCB0ZXh0LVsxNXB4XSBsZWFkaW5nLXRpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLXRpdGxlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RldGFpbHMtYnRuXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRydW5jYXRlIHRleHQtWzExcHhdIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNDAwIG10LTAuNSB0cmFja2luZy13aWRlclwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWFkZHJlc3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwLTRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2FyZFRlbXBsYXRlSW5kaWNhdG9yID09PSAxXCIgY2xhc3M9XCJtYi00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1iYWRnZVwiIFtuZ1N0eWxlXT1cImJhZGdlU3R5bGVzXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXR1cy1iYWRnZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MCBmb250LXNlbWlib2xkIHB4LTIuNSBweS0xIHJvdW5kZWQtZnVsbCBiZy1ncmF5LTQwMC8xMCB0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcmRlci1udW1iZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEuNSBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpbHRlci10YWddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTYwMCBtYi0zXCJcbiAgICAgICpuZ0lmPVwic3RhdHVzUGVkaWRvID09PSAnZmluYWxpemFkbydcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb25jbHVzaW9uLWRhdGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRleHQtc2xhdGUtNzAwIHRleHQtc21cIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbmZvLXJvd11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNyBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTYwMCB0ZXh0LWJhc2VcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmljZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm10LTMgcC0zIGJnLXNsYXRlLTUwIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIHJvdW5kZWQteGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LXhzIGxlYWRpbmctcmVsYXhlZCBpdGFsaWNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtNCBweS0zIGJnLXNsYXRlLTUwLzUwIGJvcmRlci10IGJvcmRlci1zbGF0ZS0xMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWFpbi1idG5dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -68,9 +68,10 @@ export class CustomModalComponent {
|
|
|
68
68
|
this.messageBody = message || 'Não conseguimos processar sua solicitação.';
|
|
69
69
|
}
|
|
70
70
|
setWarningStyles(message) {
|
|
71
|
-
this.modalIcon = 'fa-
|
|
72
|
-
|
|
73
|
-
this.
|
|
71
|
+
this.modalIcon = 'fa-info-circle';
|
|
72
|
+
// ✅ Usando classes nativas do Tailwind
|
|
73
|
+
this.modalIconColor = 'text-blue-600'; // Azul vibrante, mais amigável que o 800
|
|
74
|
+
this.modalBgColor = 'bg-blue-50';
|
|
74
75
|
this.messageTitle = 'Atenção';
|
|
75
76
|
this.messageBody = message || 'Verifique os dados antes de continuar.';
|
|
76
77
|
}
|
|
@@ -110,10 +111,10 @@ export class CustomModalComponent {
|
|
|
110
111
|
}
|
|
111
112
|
}
|
|
112
113
|
CustomModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, deps: [{ token: i1.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
113
|
-
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" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn
|
|
114
|
+
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" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal()\"\n class=\"w-full py-2 text-gray-500 font-semibold hover:text-gray-800 transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.JsonPipe, name: "json" }] });
|
|
114
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, decorators: [{
|
|
115
116
|
type: Component,
|
|
116
|
-
args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn
|
|
117
|
+
args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal()\"\n class=\"w-full py-2 text-gray-500 font-semibold hover:text-gray-800 transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"] }]
|
|
117
118
|
}], ctorParameters: function () { return [{ type: i1.Location }]; }, propDecorators: { modalId: [{
|
|
118
119
|
type: Input
|
|
119
120
|
}], title: [{
|
|
@@ -152,4 +153,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
152
153
|
type: HostListener,
|
|
153
154
|
args: ['window:popstate']
|
|
154
155
|
}] } });
|
|
155
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBNEIvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0I3QixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDOUMsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQVcscUJBQXFCLENBQUM7UUFDN0MsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsMkNBQTJDLENBQUM7UUFFbEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFdEMsbURBQW1EO1FBQzFDLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFbkMsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixtQkFBYyxHQUFXLGdCQUFnQixDQUFDO1FBQzFDLGlCQUFZLEdBQVcsY0FBYyxDQUFDO1FBQ3RDLGNBQVMsR0FBRyxLQUFLLENBQUM7SUFFdUIsQ0FBQztJQUUxQyxRQUFRLEtBQVUsQ0FBQztJQUVuQixTQUFTO1FBQ1AsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsRUFBRTtZQUMvQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxHQUFHLFlBQVksQ0FBQyxDQUFDO1NBQ3ZEO0lBQ0gsQ0FBQztJQUVELElBQUksQ0FDRixJQUFlLEVBQ2YsVUFBa0IsRUFBRSxFQUNwQixhQUFnQztRQUVoQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQztRQUNuQyxJQUFJLGFBQWE7WUFBRSxJQUFJLENBQUMsYUFBYSxHQUFHLGFBQWEsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUVELGNBQWMsQ0FBQyxJQUFlLEVBQUUsVUFBa0IsRUFBRTtRQUNsRCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLE1BQU07WUFDUixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDN0IsTUFBTTtZQUNSLEtBQUssU0FBUztnQkFDWixJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLENBQUM7Z0JBQy9CLE1BQU07U0FDVDtJQUNILENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsaUJBQWlCLENBQUM7UUFDbkMsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxJQUFJLGlDQUFpQyxDQUFDO0lBQ2xFLENBQUM7SUFFTyxjQUFjLENBQUMsT0FBZTtRQUNwQyxJQUFJLENBQUMsU0FBUyxHQUFHLGlCQUFpQixDQUFDO1FBQ25DLElBQUksQ0FBQyxjQUFjLEdBQUcsa0JBQWtCLENBQUM7UUFDekMsSUFBSSxDQUFDLFlBQVksR0FBRyxnQkFBZ0IsQ0FBQztRQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLHNCQUFzQixDQUFDO1FBQzNDLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxJQUFJLDRDQUE0QyxDQUFDO0lBQzdFLENBQUM7SUFFTyxnQkFBZ0IsQ0FBQyxPQUFlO1FBQ3RDLElBQUksQ0FBQyxTQUFTLEdBQUcsdUJBQXVCLENBQUM7UUFDekMsSUFBSSxDQUFDLGNBQWMsR0FBRyxvQkFBb0IsQ0FBQztRQUMzQyxJQUFJLENBQUMsWUFBWSxHQUFHLGtCQUFrQixDQUFDO1FBQ3ZDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1FBQzlCLElBQUksQ0FBQyxXQUFXLEdBQUcsT0FBTyxJQUFJLHdDQUF3QyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsWUFBWSxLQUFLLFNBQVMsRUFBRTtZQUNuQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUN6QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1lBQzFCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLElBQUksSUFBSSxDQUFDLFNBQVM7WUFBRSxPQUFPO1FBRTlDLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3RCLFVBQVUsQ0FBQyxHQUFHLEVBQUU7WUFDZCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUNWLENBQUM7SUFDRCxpREFBaUQ7SUFFakQsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNsQixJQUFJLElBQUksQ0FBQyxRQUFRLEVBQUU7Z0JBQ2pCLHdFQUF3RTtnQkFDeEUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsR0FBRyxZQUFZLENBQUMsQ0FBQzthQUN2RDtpQkFBTTtnQkFDTCxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUN6QjtTQUNGO0lBQ0gsQ0FBQzs7aUhBekhVLG9CQUFvQjtxR0FBcEIsb0JBQW9CLCtsQkNsQmpDLDB4RkFtRU07MkZEakRPLG9CQUFvQjtrQkFOaEMsU0FBUzsrQkFDRSxrQkFBa0IsY0FDaEIsS0FBSzsrRkFLUixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLGdCQUFnQjtzQkFBeEIsS0FBSztnQkFDRyxhQUFhO3NCQUFyQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQTBGTixVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxudHlwZSBNb2RhbFR5cGUgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9tLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1vZGFsSWQgPSAnY3VzdG9tTW9kYWwnO1xuICBASW5wdXQoKSB0aXRsZSA9ICdBdmlzbyc7XG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25UZXh0ID0gJ0ZlY2hhcic7XG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvblRleHQgPSAnJztcbiAgQElucHV0KCkgcGF5bWVudE1ldGhvZDogJ3BpeCcgfCAnY3JlZGl0JyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlcnJvckRldGFpbHM6IGFueSA9IG51bGw7XG5cbiAgQE91dHB1dCgpIG1vZGFsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbW9kYWxBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KCkgc2hvd01vZGFsID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2VUaXRsZTogc3RyaW5nID0gJ1BhZ2FtZW50byBBcHJvdmFkbyEnO1xuICBASW5wdXQoKSBzaG93QnRuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHJpY2VOZWdvdGlhdGVkID0gMDtcbiAgQElucHV0KCkgbWVzc2FnZUJvZHk6IHN0cmluZyA9ICdTZXUgcGFnYW1lbnRvIGZvaSBwcm9jZXNzYWRvIGNvbSBzdWNlc3NvLic7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0J0bjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGlzYWJsZWRCdG46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyDwn5SSIE5PVkEgUFJPUFJJRURBREU6IFRyYXZhIG8gZmVjaGFtZW50byBkbyBtb2RhbFxuICBASW5wdXQoKSBpc0xvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsSWNvbjogc3RyaW5nID0gJ2ZhLWNoZWNrJztcbiAgbW9kYWxJY29uQ29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTYwMCc7XG4gIG1vZGFsQmdDb2xvcjogc3RyaW5nID0gJ2JnLWdyZWVuLTEwMCc7XG4gIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XG4gICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5pbmNsdWRlcygnbW9kYWxPcGVuJykpIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZ28odGhpcy5sb2NhdGlvbi5wYXRoKCkgKyAnI21vZGFsT3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oXG4gICAgdHlwZTogTW9kYWxUeXBlLFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9ICcnLFxuICAgIHBheW1lbnRNZXRob2Q/OiAncGl4JyB8ICdjcmVkaXQnLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyZU1vZGFsKHR5cGUsIG1lc3NhZ2UpO1xuICAgIGlmIChwYXltZW50TWV0aG9kKSB0aGlzLnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBjb25maWd1cmVNb2RhbCh0eXBlOiBNb2RhbFR5cGUsIG1lc3NhZ2U6IHN0cmluZyA9ICcnKTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgdGhpcy5zZXRTdWNjZXNzU3R5bGVzKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdGhpcy5zZXRFcnJvclN0eWxlcyhtZXNzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgdGhpcy5zZXRXYXJuaW5nU3R5bGVzKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtY2hlY2stY2lyY2xlJztcbiAgICB0aGlzLm1vZGFsSWNvbkNvbG9yID0gJ21vZGFsLWljb24tc3VjY2Vzcyc7XG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctc3VjY2Vzcyc7XG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSAnU3VjZXNzbyEnO1xuICAgIHRoaXMubWVzc2FnZUJvZHkgPSBtZXNzYWdlIHx8ICdPcGVyYcOnw6NvIHJlYWxpemFkYSBjb20gc3VjZXNzby4nO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFcnJvclN0eWxlcyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsSWNvbiA9ICdmYS10aW1lcy1jaXJjbGUnO1xuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi1lcnJvcic7XG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctZXJyb3InO1xuICAgIHRoaXMubWVzc2FnZVRpdGxlID0gJ09wcyEgQWxnbyBkZXUgZXJyYWRvJztcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnTsOjbyBjb25zZWd1aW1vcyBwcm9jZXNzYXIgc3VhIHNvbGljaXRhw6fDo28uJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2FybmluZ1N0eWxlcyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsSWNvbiA9ICdmYS1leGNsYW1hdGlvbi1jaXJjbGUnO1xuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi13YXJuaW5nJztcbiAgICB0aGlzLm1vZGFsQmdDb2xvciA9ICdtb2RhbC1iZy13YXJuaW5nJztcbiAgICB0aGlzLm1lc3NhZ2VUaXRsZSA9ICdBdGVuw6fDo28nO1xuICAgIHRoaXMubWVzc2FnZUJvZHkgPSBtZXNzYWdlIHx8ICdWZXJpZmlxdWUgb3MgZGFkb3MgYW50ZXMgZGUgY29udGludWFyLic7XG4gIH1cblxuICBhY3Rpb25Nb2RhbCgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5pc0xvYWRpbmdCdG4gIT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5pc0xvYWRpbmdCdG4gPSB0cnVlO1xuICAgICAgdGhpcy5tb2RhbEFjdGlvbi5lbWl0KCk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9kYWxBY3Rpb24uZW1pdCgpO1xuICAgICAgdGhpcy5pc0xvYWRpbmdCdG4gPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VNb2RhbCgpO1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnNob3dNb2RhbCB8fCB0aGlzLmlzQ2xvc2luZykgcmV0dXJuO1xuXG4gICAgdGhpcy5pc0Nsb3NpbmcgPSB0cnVlO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcbiAgICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLm1vZGFsQ2xvc2VkLmVtaXQoKTtcbiAgICB9LCAzMDApO1xuICB9XG4gIC8vIOKchSBJbnRlcmNlcHRhIG8gYm90w6NvIHZvbHRhciBkbyBjZWx1bGFyL2Jyb3dzZXJcbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnBvcHN0YXRlJylcbiAgb25Qb3BTdGF0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5zaG93TW9kYWwpIHtcbiAgICAgIGlmICh0aGlzLmlzTG9ja2VkKSB7XG4gICAgICAgIC8vIPCflJIgU2UgZXN0aXZlciB0cmF2YWRvLCBcImFudWxhbW9zXCIgbyB2b2x0YXIgYWRpY2lvbmFuZG8gbyBoYXNoIGRlIG5vdm9cbiAgICAgICAgdGhpcy5sb2NhdGlvbi5nbyh0aGlzLmxvY2F0aW9uLnBhdGgoKSArICcjbW9kYWxPcGVuJyk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dNb2RhbCA9IGZhbHNlO1xuICAgICAgICB0aGlzLm1vZGFsQ2xvc2VkLmVtaXQoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXZcbiAgKm5nSWY9XCJzaG93TW9kYWxcIlxuICBjbGFzcz1cIm1vZGFsLW92ZXJsYXktZml4ZWRcIlxuICBbbmdDbGFzc109XCJ7ICdvdmVybGF5LWhpZGUnOiBpc0Nsb3NpbmcgfVwiXG4gIChjbGljayk9XCIhaXNMb2NrZWQgJiYgY2xvc2VNb2RhbCgpXCJcbj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiYmctd2hpdGUgdy1mdWxsIG1heC13LTJ4bCByb3VuZGVkLXQtWzIuNXJlbV0gcC02IHNoYWRvdy0yeGwgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwIGZsZXggZmxleC1jb2xcIlxuICAgIFtuZ0NsYXNzXT1cImlzQ2xvc2luZyA/ICdhbmltYXRlLXNsaWRlLWRvd24nIDogJ2FuaW1hdGUtc2xpZGUtdXAnXCJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCJcbiAgPlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTQgLW10LTIgZmxleCBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICBbbmdDbGFzc109XCJpc0xvY2tlZCA/ICdjdXJzb3Itbm90LWFsbG93ZWQgb3BhY2l0eS01MCcgOiAnY3Vyc29yLXBvaW50ZXInXCJcbiAgICAgIChjbGljayk9XCIhaXNMb2NrZWQgJiYgY2xvc2VNb2RhbCgpXCJcbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzPVwidy0xMiBoLTEuNSBiZy1ncmF5LTIwMCByb3VuZGVkLWZ1bGxcIj48L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLWNlbnRlciB0ZXh0LWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cInJlbGF0aXZlIG1iLTRcIj5cbiAgICAgICAgPGRpdiBbY2xhc3NdPVwibW9kYWxCZ0NvbG9yXCIgY2xhc3M9XCJ3LTIwIGgtMjAgcm91bmRlZC1mdWxsIG9wYWNpdHktNDBcIj48L2Rpdj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGluc2V0LTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgICA8aSBbY2xhc3NdPVwibW9kYWxJY29uICsgJyAnICsgbW9kYWxJY29uQ29sb3JcIiBjbGFzcz1cImZhcyB0ZXh0LTN4bFwiPjwvaT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGgyIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbWItMlwiPnt7IG1lc3NhZ2VUaXRsZSB9fTwvaDI+XG5cbiAgICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGwgbW9kYWwtc2Nyb2xsLWFyZWEgcHgtMiBjdXN0b20tc2Nyb2xsYmFyXCI+XG4gICAgICAgIDxwICpuZ0lmPVwibWVzc2FnZUJvZHlcIiBjbGFzcz1cInRleHQtZ3JheS02MDAgbWItNFwiPnt7IG1lc3NhZ2VCb2R5IH19PC9wPlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtb2RhbC1keW5hbWljLWNvbnRlbnQgdGV4dC1sZWZ0XCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW29wdGlvbmFsLWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwiZXJyb3JEZXRhaWxzXCIgY2xhc3M9XCJtdC00IHAtNCBiZy1yZWQtNTAgcm91bmRlZC0yeGwgdGV4dC1sZWZ0IGJvcmRlciBib3JkZXItcmVkLTEwMFwiPlxuICAgICAgICAgIDxwIGNsYXNzPVwidGV4dC1bMTBweF0gZm9udC1ib2xkIHRleHQtcmVkLTcwMCB1cHBlcmNhc2UgbWItMVwiPkxvZyBkbyBzaXN0ZW1hOjwvcD5cbiAgICAgICAgICA8cHJlIGNsYXNzPVwidGV4dC1bMTFweF0gdGV4dC1yZWQtNjAwIGZvbnQtbW9ubyB3aGl0ZXNwYWNlLXByZS13cmFwXCI+e3sgZXJyb3JEZXRhaWxzIHwganNvbiB9fTwvcHJlPlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwibXQtNiBmbGV4IGZsZXgtY29sIHctZnVsbCBnYXAtMyBwYi00XCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRCdG4gfHwgKHByaWNlTmVnb3RpYXRlZCA8PSAwICYmIGFjdGlvbkJ1dHRvblRleHQgPT09ICdOZWdvY2lhcicpXCJcbiAgICAgICAgICAqbmdJZj1cImFjdGlvbkJ1dHRvblRleHRcIlxuICAgICAgICAgIChjbGljayk9XCJhY3Rpb25Nb2RhbCgpXCJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS00IHRleHQtd2hpdGUgcm91bmRlZC0yeGwgZm9udC1ib2xkIGFjdGl2ZTpzY2FsZS1bMC45OF0gdHJhbnNpdGlvbi1hbGwgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXIgZ2FwLTMgc2hhZG93LWxnIGJ0bi1wcmltYXJ5LWN1c3RvbVwiXG4gICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiJ3ZhcigtLXByaW1hcnkpJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFpc0xvYWRpbmdCdG5cIj57eyBhY3Rpb25CdXR0b25UZXh0IH19PC9zcGFuPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdCdG5cIj5cbiAgICAgICAgICAgIDxzcGFuPlByb2Nlc3NhbmRvPC9zcGFuPlxuICAgICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2lyY2xlLW5vdGNoIGZhLXNwaW5cIj48L2k+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cInNob3dCdG4gJiYgaXNMb2NrZWRcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZU1vZGFsKClcIlxuICAgICAgICAgIGNsYXNzPVwidy1mdWxsIHB5LTIgdGV4dC1ncmF5LTUwMCBmb250LXNlbWlib2xkIGhvdmVyOnRleHQtZ3JheS04MDAgdHJhbnNpdGlvbi1jb2xvcnNcIlxuICAgICAgICA+XG4gICAgICAgICAge3sgY2xvc2VCdXR0b25UZXh0IH19XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLW1vZGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7OztBQVd2QixNQUFNLE9BQU8sb0JBQW9CO0lBNEIvQixZQUFvQixRQUFrQjtRQUFsQixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBM0I3QixZQUFPLEdBQUcsYUFBYSxDQUFDO1FBQ3hCLFVBQUssR0FBRyxPQUFPLENBQUM7UUFDaEIsWUFBTyxHQUFHLEVBQUUsQ0FBQztRQUNiLG9CQUFlLEdBQUcsUUFBUSxDQUFDO1FBQzNCLHFCQUFnQixHQUFHLEVBQUUsQ0FBQztRQUN0QixrQkFBYSxHQUE0QixJQUFJLENBQUM7UUFDOUMsaUJBQVksR0FBUSxJQUFJLENBQUM7UUFFeEIsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3ZDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUV4QyxjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLGlCQUFZLEdBQVcscUJBQXFCLENBQUM7UUFDN0MsWUFBTyxHQUFHLElBQUksQ0FBQztRQUNmLG9CQUFlLEdBQUcsQ0FBQyxDQUFDO1FBQ3BCLGdCQUFXLEdBQVcsMkNBQTJDLENBQUM7UUFFbEUsZ0JBQVcsR0FBWSxLQUFLLENBQUM7UUFFdEMsbURBQW1EO1FBQzFD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Z0JBRUksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxXQUFXO3NCQUFwQixNQUFNO2dCQUVFLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFHRyxRQUFRO3NCQUFoQixLQUFLO2dCQTZGTixVQUFVO3NCQURULFlBQVk7dUJBQUMsaUJBQWlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxudHlwZSBNb2RhbFR5cGUgPSAnc3VjY2VzcycgfCAnZXJyb3InIHwgJ3dhcm5pbmcnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItY3VzdG9tLW1vZGFsJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tbW9kYWwuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDdXN0b21Nb2RhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIG1vZGFsSWQgPSAnY3VzdG9tTW9kYWwnO1xuICBASW5wdXQoKSB0aXRsZSA9ICdBdmlzbyc7XG4gIEBJbnB1dCgpIG1lc3NhZ2UgPSAnJztcbiAgQElucHV0KCkgY2xvc2VCdXR0b25UZXh0ID0gJ0ZlY2hhcic7XG4gIEBJbnB1dCgpIGFjdGlvbkJ1dHRvblRleHQgPSAnJztcbiAgQElucHV0KCkgcGF5bWVudE1ldGhvZDogJ3BpeCcgfCAnY3JlZGl0JyB8IG51bGwgPSBudWxsO1xuICBASW5wdXQoKSBlcnJvckRldGFpbHM6IGFueSA9IG51bGw7XG5cbiAgQE91dHB1dCgpIG1vZGFsQ2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuICBAT3V0cHV0KCkgbW9kYWxBY3Rpb24gPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG5cbiAgQElucHV0KCkgc2hvd01vZGFsID0gZmFsc2U7XG4gIEBJbnB1dCgpIG1lc3NhZ2VUaXRsZTogc3RyaW5nID0gJ1BhZ2FtZW50byBBcHJvdmFkbyEnO1xuICBASW5wdXQoKSBzaG93QnRuID0gdHJ1ZTtcbiAgQElucHV0KCkgcHJpY2VOZWdvdGlhdGVkID0gMDtcbiAgQElucHV0KCkgbWVzc2FnZUJvZHk6IHN0cmluZyA9ICdTZXUgcGFnYW1lbnRvIGZvaSBwcm9jZXNzYWRvIGNvbSBzdWNlc3NvLic7XG4gIEBJbnB1dCgpIGlzTG9hZGluZ0J0bjogYm9vbGVhbiB8IHVuZGVmaW5lZDtcbiAgQElucHV0KCkgZGlzYWJsZWRCdG46IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvLyDwn5SSIE5PVkEgUFJPUFJJRURBREU6IFRyYXZhIG8gZmVjaGFtZW50byBkbyBtb2RhbFxuICBASW5wdXQoKSBpc0xvY2tlZDogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG1vZGFsSWNvbjogc3RyaW5nID0gJ2ZhLWNoZWNrJztcbiAgbW9kYWxJY29uQ29sb3I6IHN0cmluZyA9ICd0ZXh0LWdyZWVuLTYwMCc7XG4gIG1vZGFsQmdDb2xvcjogc3RyaW5nID0gJ2JnLWdyZWVuLTEwMCc7XG4gIGlzQ2xvc2luZyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cblxuICBvcGVuTW9kYWwoKTogdm9pZCB7XG4gICAgdGhpcy5zaG93TW9kYWwgPSB0cnVlO1xuICAgIHRoaXMuaXNDbG9zaW5nID0gZmFsc2U7XG4gICAgaWYgKCF3aW5kb3cubG9jYXRpb24uaGFzaC5pbmNsdWRlcygnbW9kYWxPcGVuJykpIHtcbiAgICAgIHRoaXMubG9jYXRpb24uZ28odGhpcy5sb2NhdGlvbi5wYXRoKCkgKyAnI21vZGFsT3BlbicpO1xuICAgIH1cbiAgfVxuXG4gIG9wZW4oXG4gICAgdHlwZTogTW9kYWxUeXBlLFxuICAgIG1lc3NhZ2U6IHN0cmluZyA9ICcnLFxuICAgIHBheW1lbnRNZXRob2Q/OiAncGl4JyB8ICdjcmVkaXQnLFxuICApOiB2b2lkIHtcbiAgICB0aGlzLmNvbmZpZ3VyZU1vZGFsKHR5cGUsIG1lc3NhZ2UpO1xuICAgIGlmIChwYXltZW50TWV0aG9kKSB0aGlzLnBheW1lbnRNZXRob2QgPSBwYXltZW50TWV0aG9kO1xuICAgIHRoaXMub3Blbk1vZGFsKCk7XG4gIH1cblxuICBjb25maWd1cmVNb2RhbCh0eXBlOiBNb2RhbFR5cGUsIG1lc3NhZ2U6IHN0cmluZyA9ICcnKTogdm9pZCB7XG4gICAgc3dpdGNoICh0eXBlKSB7XG4gICAgICBjYXNlICdzdWNjZXNzJzpcbiAgICAgICAgdGhpcy5zZXRTdWNjZXNzU3R5bGVzKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ2Vycm9yJzpcbiAgICAgICAgdGhpcy5zZXRFcnJvclN0eWxlcyhtZXNzYWdlKTtcbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd3YXJuaW5nJzpcbiAgICAgICAgdGhpcy5zZXRXYXJuaW5nU3R5bGVzKG1lc3NhZ2UpO1xuICAgICAgICBicmVhaztcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNldFN1Y2Nlc3NTdHlsZXMobWVzc2FnZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5tb2RhbEljb24gPSAnZmEtY2hlY2stY2lyY2xlJztcbiAgICB0aGlzLm1vZGFsSWNvbkNvbG9yID0gJ21vZGFsLWljb24tc3VjY2Vzcyc7XG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctc3VjY2Vzcyc7XG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSAnU3VjZXNzbyEnO1xuICAgIHRoaXMubWVzc2FnZUJvZHkgPSBtZXNzYWdlIHx8ICdPcGVyYcOnw6NvIHJlYWxpemFkYSBjb20gc3VjZXNzby4nO1xuICB9XG5cbiAgcHJpdmF0ZSBzZXRFcnJvclN0eWxlcyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsSWNvbiA9ICdmYS10aW1lcy1jaXJjbGUnO1xuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAnbW9kYWwtaWNvbi1lcnJvcic7XG4gICAgdGhpcy5tb2RhbEJnQ29sb3IgPSAnbW9kYWwtYmctZXJyb3InO1xuICAgIHRoaXMubWVzc2FnZVRpdGxlID0gJ09wcyEgQWxnbyBkZXUgZXJyYWRvJztcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnTsOjbyBjb25zZWd1aW1vcyBwcm9jZXNzYXIgc3VhIHNvbGljaXRhw6fDo28uJztcbiAgfVxuXG4gIHByaXZhdGUgc2V0V2FybmluZ1N0eWxlcyhtZXNzYWdlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLm1vZGFsSWNvbiA9ICdmYS1pbmZvLWNpcmNsZSc7XG5cbiAgICAvLyDinIUgVXNhbmRvIGNsYXNzZXMgbmF0aXZhcyBkbyBUYWlsd2luZFxuICAgIHRoaXMubW9kYWxJY29uQ29sb3IgPSAndGV4dC1ibHVlLTYwMCc7IC8vIEF6dWwgdmlicmFudGUsIG1haXMgYW1pZ8OhdmVsIHF1ZSBvIDgwMFxuICAgIHRoaXMubW9kYWxCZ0NvbG9yID0gJ2JnLWJsdWUtNTAnO1xuXG4gICAgdGhpcy5tZXNzYWdlVGl0bGUgPSAnQXRlbsOnw6NvJztcbiAgICB0aGlzLm1lc3NhZ2VCb2R5ID0gbWVzc2FnZSB8fCAnVmVyaWZpcXVlIG9zIGRhZG9zIGFudGVzIGRlIGNvbnRpbnVhci4nO1xuICB9XG5cbiAgYWN0aW9uTW9kYWwoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuaXNMb2FkaW5nQnRuICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nQnRuID0gdHJ1ZTtcbiAgICAgIHRoaXMubW9kYWxBY3Rpb24uZW1pdCgpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGFsQWN0aW9uLmVtaXQoKTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nQnRuID0gZmFsc2U7XG4gICAgICB0aGlzLmNsb3NlTW9kYWwoKTtcbiAgICB9XG4gIH1cblxuICBjbG9zZU1vZGFsKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5zaG93TW9kYWwgfHwgdGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcblxuICAgIHRoaXMuaXNDbG9zaW5nID0gdHJ1ZTtcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2hvd01vZGFsID0gZmFsc2U7XG4gICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5tb2RhbENsb3NlZC5lbWl0KCk7XG4gICAgfSwgMzAwKTtcbiAgfVxuICAvLyDinIUgSW50ZXJjZXB0YSBvIGJvdMOjbyB2b2x0YXIgZG8gY2VsdWxhci9icm93c2VyXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpwb3BzdGF0ZScpXG4gIG9uUG9wU3RhdGUoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuc2hvd01vZGFsKSB7XG4gICAgICBpZiAodGhpcy5pc0xvY2tlZCkge1xuICAgICAgICAvLyDwn5SSIFNlIGVzdGl2ZXIgdHJhdmFkbywgXCJhbnVsYW1vc1wiIG8gdm9sdGFyIGFkaWNpb25hbmRvIG8gaGFzaCBkZSBub3ZvXG4gICAgICAgIHRoaXMubG9jYXRpb24uZ28odGhpcy5sb2NhdGlvbi5wYXRoKCkgKyAnI21vZGFsT3BlbicpO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5tb2RhbENsb3NlZC5lbWl0KCk7XG4gICAgICB9XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gICpuZ0lmPVwic2hvd01vZGFsXCJcbiAgY2xhc3M9XCJtb2RhbC1vdmVybGF5LWZpeGVkXCJcbiAgW25nQ2xhc3NdPVwieyAnb3ZlcmxheS1oaWRlJzogaXNDbG9zaW5nIH1cIlxuICAoY2xpY2spPVwiIWlzTG9ja2VkICYmIGNsb3NlTW9kYWwoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cImJnLXdoaXRlIHctZnVsbCBtYXgtdy0yeGwgcm91bmRlZC10LVsyLjVyZW1dIHAtNiBzaGFkb3ctMnhsIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMCBmbGV4IGZsZXgtY29sXCJcbiAgICBbbmdDbGFzc109XCJpc0Nsb3NpbmcgPyAnYW5pbWF0ZS1zbGlkZS1kb3duJyA6ICdhbmltYXRlLXNsaWRlLXVwJ1wiXG4gICAgKGNsaWNrKT1cIiRldmVudC5zdG9wUHJvcGFnYXRpb24oKVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInctZnVsbCBweS00IC1tdC0yIGZsZXgganVzdGlmeS1jZW50ZXJcIlxuICAgICAgW25nQ2xhc3NdPVwiaXNMb2NrZWQgPyAnY3Vyc29yLW5vdC1hbGxvd2VkIG9wYWNpdHktNTAnIDogJ2N1cnNvci1wb2ludGVyJ1wiXG4gICAgICAoY2xpY2spPVwiIWlzTG9ja2VkICYmIGNsb3NlTW9kYWwoKVwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInctMTIgaC0xLjUgYmctZ3JheS0yMDAgcm91bmRlZC1mdWxsXCI+PC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBpdGVtcy1jZW50ZXIgdGV4dC1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJyZWxhdGl2ZSBtYi00XCI+XG4gICAgICAgIDxkaXYgW2NsYXNzXT1cIm1vZGFsQmdDb2xvclwiIGNsYXNzPVwidy0yMCBoLTIwIHJvdW5kZWQtZnVsbCBvcGFjaXR5LTQwXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJhYnNvbHV0ZSBpbnNldC0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICAgICAgPGkgW2NsYXNzXT1cIm1vZGFsSWNvbiArICcgJyArIG1vZGFsSWNvbkNvbG9yXCIgY2xhc3M9XCJmYXMgdGV4dC0zeGxcIj48L2k+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxoMiBjbGFzcz1cInRleHQtMnhsIGZvbnQtYm9sZCB0ZXh0LWdyYXktOTAwIG1iLTJcIj57eyBtZXNzYWdlVGl0bGUgfX08L2gyPlxuXG4gICAgICA8ZGl2IGNsYXNzPVwidy1mdWxsIG1vZGFsLXNjcm9sbC1hcmVhIHB4LTIgY3VzdG9tLXNjcm9sbGJhclwiPlxuICAgICAgICA8cCAqbmdJZj1cIm1lc3NhZ2VCb2R5XCIgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIG1iLTRcIj57eyBtZXNzYWdlQm9keSB9fTwvcD5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwibW9kYWwtZHluYW1pYy1jb250ZW50IHRleHQtbGVmdFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcHRpb25hbC1jb250ZW50XVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cImVycm9yRGV0YWlsc1wiIGNsYXNzPVwibXQtNCBwLTQgYmctcmVkLTUwIHJvdW5kZWQtMnhsIHRleHQtbGVmdCBib3JkZXIgYm9yZGVyLXJlZC0xMDBcIj5cbiAgICAgICAgICA8cCBjbGFzcz1cInRleHQtWzEwcHhdIGZvbnQtYm9sZCB0ZXh0LXJlZC03MDAgdXBwZXJjYXNlIG1iLTFcIj5Mb2cgZG8gc2lzdGVtYTo8L3A+XG4gICAgICAgICAgPHByZSBjbGFzcz1cInRleHQtWzExcHhdIHRleHQtcmVkLTYwMCBmb250LW1vbm8gd2hpdGVzcGFjZS1wcmUtd3JhcFwiPnt7IGVycm9yRGV0YWlscyB8IGpzb24gfX08L3ByZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cIm10LTYgZmxleCBmbGV4LWNvbCB3LWZ1bGwgZ2FwLTMgcGItNFwiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkQnRuIHx8IChwcmljZU5lZ290aWF0ZWQgPD0gMCAmJiBhY3Rpb25CdXR0b25UZXh0ID09PSAnTmVnb2NpYXInKVwiXG4gICAgICAgICAgKm5nSWY9XCJhY3Rpb25CdXR0b25UZXh0XCJcbiAgICAgICAgICAoY2xpY2spPVwiYWN0aW9uTW9kYWwoKVwiXG4gICAgICAgICAgY2xhc3M9XCJ3LWZ1bGwgcHktNCB0ZXh0LXdoaXRlIHJvdW5kZWQtMnhsIGZvbnQtYm9sZCBhY3RpdmU6c2NhbGUtWzAuOThdIHRyYW5zaXRpb24tYWxsIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyIGdhcC0zIHNoYWRvdy1sZyBidG4tcHJpbWFyeS1jdXN0b21cIlxuICAgICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid2YXIoLS1wcmltYXJ5KSdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCIhaXNMb2FkaW5nQnRuXCI+e3sgYWN0aW9uQnV0dG9uVGV4dCB9fTwvc3Bhbj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNMb2FkaW5nQnRuXCI+XG4gICAgICAgICAgICA8c3Bhbj5Qcm9jZXNzYW5kbzwvc3Bhbj5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwiZmFzIGZhLWNpcmNsZS1ub3RjaCBmYS1zcGluXCI+PC9pPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgKm5nSWY9XCJzaG93QnRuXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCJcbiAgICAgICAgICBjbGFzcz1cInctZnVsbCBweS0yIHRleHQtZ3JheS01MDAgZm9udC1zZW1pYm9sZCBob3Zlcjp0ZXh0LWdyYXktODAwIHRyYW5zaXRpb24tY29sb3JzXCJcbiAgICAgICAgPlxuICAgICAgICAgIHt7IGNsb3NlQnV0dG9uVGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PiJdfQ==
|
|
@@ -39,4 +39,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
|
|
|
39
39
|
],
|
|
40
40
|
}]
|
|
41
41
|
}] });
|
|
42
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQW1CdEUsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWY3Qix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsb0JBQW9CLGFBRVosWUFBWSxhQUVwQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsb0JBQW9CO2tIQUdYLG9CQUFvQixZQVRyQixZQUFZOzJGQVNYLG9CQUFvQjtrQkFqQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYXJkTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2FyZC1sYXlvdXQvY2FyZC1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWxsYmFja01lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFsbGJhY2stbWVzc2FnZS9mYWxsYmFjay1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXYvbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFR1ZHVDb21wb25lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi90dWR1LWNvbXBvbmVudHMuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUdWR1Q29tcG9uZW50c0NvbXBvbmVudCxcclxuICAgIENhcmRMYXlvdXRDb21wb25lbnQsXHJcbiAgICBOYXZDb21wb25lbnQsXHJcbiAgICBGYWxsYmFja01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBDdXN0b21Nb2RhbENvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFR1ZHVDb21wb25lbnRzQ29tcG9uZW50LFxyXG4gICAgQ2FyZExheW91dENvbXBvbmVudCxcclxuICAgIE5hdkNvbXBvbmVudCxcclxuICAgIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIEN1c3RvbU1vZGFsQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUdWR1Q29tcG9uZW50c01vZHVsZSB7fVxyXG4iXX0=
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -9,4 +9,4 @@ export * from './lib/components/fallback-message/fallback-message.component';
|
|
|
9
9
|
export * from './lib/components/custom-modal/custom-modal.component';
|
|
10
10
|
export * from './lib/tudu-components.service';
|
|
11
11
|
// export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule
|
|
12
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyxDQUFDLHlCQUF5QjtBQUV2RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsNkVBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHR1ZHUtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUnOyAvLyDihpAgU2UgY3Jpb3UgZXN0ZSBtw7NkdWxvXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkLWxheW91dC5tb2R1bGUnOyAvLyDihpAgT3Ugc2UgdXNvdSBDYXJkTGF5b3V0TW9kdWxlXHJcbiJdfQ==
|
|
@@ -65,6 +65,7 @@ class CardLayoutComponent {
|
|
|
65
65
|
case 'concluido':
|
|
66
66
|
return { backgroundColor: '#0096881c', color: '#009688' }; // teal
|
|
67
67
|
case 'cancelado':
|
|
68
|
+
case 'expirado':
|
|
68
69
|
return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
|
|
69
70
|
case 'publicado':
|
|
70
71
|
return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave
|
|
@@ -88,10 +89,10 @@ class CardLayoutComponent {
|
|
|
88
89
|
}
|
|
89
90
|
}
|
|
90
91
|
CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
|
|
91
|
-
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" }, ngImport: i0, template: "<div\n class=\"service-card rounded-
|
|
92
|
+
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" }, ngImport: i0, template: "<div\n class=\"service-card group rounded-2xl border border-slate-100 bg-white shadow-sm hover:shadow-md transition-all duration-300 relative mb-5 overflow-hidden\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-slate-50 bg-slate-50/30\"\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-slate-800 text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-slate-400 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 text-gray-50 font-semibold px-2.5 py-1 rounded-full bg-gray-400/10 text-gray-500 flex items-center justify-center\"\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-slate-600 mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-slate-700 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 class=\"mt-3 p-3 bg-slate-50 border border-slate-100 rounded-xl\"\n >\n <div class=\"text-slate-500 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-slate-50/50 border-t border-slate-100\">\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;} .template-2-order {margin-top: -6em;} &[data-template=\"1\"] {} &[data-template=\"2\"] {} .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; font-size: 1rem; color: var(--primary);} .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: 12px; font-size: 20px; border-radius: 10px;} .price {font-weight: 600; color: var(--background-color);} .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%;}} .badge-finalizado {background-color: #e0f7fa; color: #00796b;} .badge-concluido {background-color: #e8f5e9; color: #2e7d32;} .badge-cancelado {background-color: #ffebee; color: #c62828;} .badge-publicado {background-color: #fff3e0; color: #25a5ff;} .badge-default {background-color: #eeeeee; color: #757575;}}.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}: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$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
92
93
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
|
|
93
94
|
type: Component,
|
|
94
|
-
args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card rounded-
|
|
95
|
+
args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card group rounded-2xl border border-slate-100 bg-white shadow-sm hover:shadow-md transition-all duration-300 relative mb-5 overflow-hidden\"\n>\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"flex items-center gap-3 p-3.5 border-b border-slate-50 bg-slate-50/30\"\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-slate-800 text-[15px] leading-tight\"\n >\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"flex-shrink-0\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n\n <div\n class=\"truncate text-[11px] font-medium text-slate-400 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 text-gray-50 font-semibold px-2.5 py-1 rounded-full bg-gray-400/10 text-gray-500 flex items-center justify-center\"\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-slate-600 mb-3\"\n *ngIf=\"statusPedido === 'finalizado'\"\n >\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n\n <div class=\"text-slate-700 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 class=\"mt-3 p-3 bg-slate-50 border border-slate-100 rounded-xl\"\n >\n <div class=\"text-slate-500 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-slate-50/50 border-t border-slate-100\">\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;} .template-2-order {margin-top: -6em;} &[data-template=\"1\"] {} &[data-template=\"2\"] {} .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; font-size: 1rem; color: var(--primary);} .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: 12px; font-size: 20px; border-radius: 10px;} .price {font-weight: 600; color: var(--background-color);} .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%;}} .badge-finalizado {background-color: #e0f7fa; color: #00796b;} .badge-concluido {background-color: #e8f5e9; color: #2e7d32;} .badge-cancelado {background-color: #ffebee; color: #c62828;} .badge-publicado {background-color: #fff3e0; color: #25a5ff;} .badge-default {background-color: #eeeeee; color: #757575;}}.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}: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"] }]
|
|
95
96
|
}], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
|
|
96
97
|
type: Input
|
|
97
98
|
}], cardTemplateIndicator: [{
|
|
@@ -167,9 +168,10 @@ class CustomModalComponent {
|
|
|
167
168
|
this.messageBody = message || 'Não conseguimos processar sua solicitação.';
|
|
168
169
|
}
|
|
169
170
|
setWarningStyles(message) {
|
|
170
|
-
this.modalIcon = 'fa-
|
|
171
|
-
|
|
172
|
-
this.
|
|
171
|
+
this.modalIcon = 'fa-info-circle';
|
|
172
|
+
// ✅ Usando classes nativas do Tailwind
|
|
173
|
+
this.modalIconColor = 'text-blue-600'; // Azul vibrante, mais amigável que o 800
|
|
174
|
+
this.modalBgColor = 'bg-blue-50';
|
|
173
175
|
this.messageTitle = 'Atenção';
|
|
174
176
|
this.messageBody = message || 'Verifique os dados antes de continuar.';
|
|
175
177
|
}
|
|
@@ -209,10 +211,10 @@ class CustomModalComponent {
|
|
|
209
211
|
}
|
|
210
212
|
}
|
|
211
213
|
CustomModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, deps: [{ token: i1$1.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
212
|
-
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" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn
|
|
214
|
+
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" }, host: { listeners: { "window:popstate": "onPopState()" } }, ngImport: i0, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal()\"\n class=\"w-full py-2 text-gray-500 font-semibold hover:text-gray-800 transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.JsonPipe, name: "json" }] });
|
|
213
215
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CustomModalComponent, decorators: [{
|
|
214
216
|
type: Component,
|
|
215
|
-
args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn
|
|
217
|
+
args: [{ selector: 'lib-custom-modal', standalone: false, template: "<div\n *ngIf=\"showModal\"\n class=\"modal-overlay-fixed\"\n [ngClass]=\"{ 'overlay-hide': isClosing }\"\n (click)=\"!isLocked && closeModal()\"\n>\n <div\n class=\"bg-white w-full max-w-2xl rounded-t-[2.5rem] p-6 shadow-2xl border-t border-gray-100 flex flex-col\"\n [ngClass]=\"isClosing ? 'animate-slide-down' : 'animate-slide-up'\"\n (click)=\"$event.stopPropagation()\"\n >\n <div\n class=\"w-full py-4 -mt-2 flex justify-center\"\n [ngClass]=\"isLocked ? 'cursor-not-allowed opacity-50' : 'cursor-pointer'\"\n (click)=\"!isLocked && closeModal()\"\n >\n <div class=\"w-12 h-1.5 bg-gray-200 rounded-full\"></div>\n </div>\n\n <div class=\"flex flex-col items-center text-center\">\n <div class=\"relative mb-4\">\n <div [class]=\"modalBgColor\" class=\"w-20 h-20 rounded-full opacity-40\"></div>\n <div class=\"absolute inset-0 flex items-center justify-center\">\n <i [class]=\"modalIcon + ' ' + modalIconColor\" class=\"fas text-3xl\"></i>\n </div>\n </div>\n\n <h2 class=\"text-2xl font-bold text-gray-900 mb-2\">{{ messageTitle }}</h2>\n\n <div class=\"w-full modal-scroll-area px-2 custom-scrollbar\">\n <p *ngIf=\"messageBody\" class=\"text-gray-600 mb-4\">{{ messageBody }}</p>\n\n <div class=\"modal-dynamic-content text-left\">\n <ng-content select=\"[optional-content]\"></ng-content>\n </div>\n\n <div *ngIf=\"errorDetails\" class=\"mt-4 p-4 bg-red-50 rounded-2xl text-left border border-red-100\">\n <p class=\"text-[10px] font-bold text-red-700 uppercase mb-1\">Log do sistema:</p>\n <pre class=\"text-[11px] text-red-600 font-mono whitespace-pre-wrap\">{{ errorDetails | json }}</pre>\n </div>\n </div>\n\n <div class=\"mt-6 flex flex-col w-full gap-3 pb-4\">\n <button\n [disabled]=\"disabledBtn || (priceNegotiated <= 0 && actionButtonText === 'Negociar')\"\n *ngIf=\"actionButtonText\"\n (click)=\"actionModal()\"\n class=\"w-full py-4 text-white rounded-2xl font-bold active:scale-[0.98] transition-all flex items-center justify-center gap-3 shadow-lg btn-primary-custom\"\n [style.background-color]=\"'var(--primary)'\"\n >\n <span *ngIf=\"!isLoadingBtn\">{{ actionButtonText }}</span>\n <ng-container *ngIf=\"isLoadingBtn\">\n <span>Processando</span>\n <i class=\"fas fa-circle-notch fa-spin\"></i>\n </ng-container>\n </button>\n\n <button\n *ngIf=\"showBtn\"\n (click)=\"closeModal()\"\n class=\"w-full py-2 text-gray-500 font-semibold hover:text-gray-800 transition-colors\"\n >\n {{ closeButtonText }}\n </button>\n </div>\n </div>\n </div>\n</div>", styles: ["@keyframes slideUp{0%{transform:translateY(100%)}to{transform:translateY(0)}}@keyframes slideDown{0%{transform:translateY(0)}to{transform:translateY(100%)}}.animate-slide-up{animation:slideUp .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-down{animation:slideDown .4s cubic-bezier(.25,1,.5,1) forwards}.modal-overlay-fixed{position:fixed;inset:0;background-color:#0009!important;backdrop-filter:blur(8px)!important;-webkit-backdrop-filter:blur(8px)!important;display:flex;align-items:flex-end;justify-content:center;z-index:9999;transition:opacity .3s ease;opacity:1}.overlay-hide{opacity:0;pointer-events:none}.modal-scroll-area{max-height:60vh;overflow-y:auto;overflow-x:hidden;transition:max-height .4s cubic-bezier(.25,1,.5,1)}.modal-scroll-area:has(.animate-fade-in),.modal-scroll-area:focus-within{max-height:85vh}.modal-dynamic-content{height:auto;overflow:visible!important;display:block}.custom-scrollbar::-webkit-scrollbar{width:4px}.custom-scrollbar::-webkit-scrollbar-thumb{background:#f1f1f1;border-radius:10px}.custom-scrollbar::-webkit-scrollbar-track{background:transparent}.btn-primary-custom:hover:not(:disabled){filter:brightness(.9);transition:filter .2s ease}.btn-primary-custom:disabled{opacity:.6;cursor:not-allowed}.modal-bg-success{background-color:#d1fae5!important}.modal-icon-success{color:#10b981!important}.modal-bg-error{background-color:#fee2e2!important}.modal-icon-error{color:#ef4444!important}.modal-bg-warning{background-color:#fef3c7!important}.modal-icon-warning{color:#f59e0b!important}@media (min-width: 768px){.modal-overlay-fixed{align-items:center}.animate-slide-up,.animate-slide-down{border-radius:2.5rem;width:90%;margin-bottom:0}@keyframes slideUp{0%{transform:scale(.9);opacity:0}to{transform:scale(1);opacity:1}}@keyframes slideDown{0%{transform:scale(1);opacity:1}to{transform:scale(.9);opacity:0}}}:host-context(body:has(.modal-overlay-fixed)){overflow:hidden}\n"] }]
|
|
216
218
|
}], ctorParameters: function () { return [{ type: i1$1.Location }]; }, propDecorators: { modalId: [{
|
|
217
219
|
type: Input
|
|
218
220
|
}], title: [{
|