tudu-components 0.2.5 → 0.2.7

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.
Files changed (44) hide show
  1. package/esm2020/lib/components/card-layout/card-layout.component.mjs +77 -0
  2. package/esm2020/lib/components/fallback-message/fallback-message.component.mjs +128 -0
  3. package/esm2020/lib/components/nav/nav.component.mjs +74 -0
  4. package/esm2020/lib/tudu-components.component.mjs +22 -0
  5. package/esm2020/lib/tudu-components.module.mjs +21 -0
  6. package/esm2020/lib/tudu-components.service.mjs +14 -0
  7. package/esm2020/public-api.mjs +11 -0
  8. package/esm2020/tudu-components.mjs +5 -0
  9. package/fesm2015/tudu-components.mjs +333 -0
  10. package/fesm2015/tudu-components.mjs.map +1 -0
  11. package/fesm2020/tudu-components.mjs +331 -0
  12. package/fesm2020/tudu-components.mjs.map +1 -0
  13. package/index.d.ts +5 -0
  14. package/lib/components/card-layout/card-layout.component.d.ts +31 -0
  15. package/lib/components/fallback-message/fallback-message.component.d.ts +29 -0
  16. package/lib/components/nav/nav.component.d.ts +25 -0
  17. package/lib/tudu-components.component.d.ts +8 -0
  18. package/lib/tudu-components.module.d.ts +11 -0
  19. package/lib/tudu-components.service.d.ts +6 -0
  20. package/package.json +22 -3
  21. package/{src/public-api.ts → public-api.d.ts} +6 -11
  22. package/karma.conf.js +0 -44
  23. package/ng-package.json +0 -7
  24. package/src/lib/components/card-layout/card-layout.component.css +0 -166
  25. package/src/lib/components/card-layout/card-layout.component.html +0 -100
  26. package/src/lib/components/card-layout/card-layout.component.spec.ts +0 -23
  27. package/src/lib/components/card-layout/card-layout.component.ts +0 -78
  28. package/src/lib/components/fallback-message/fallback-message.component.css +0 -36
  29. package/src/lib/components/fallback-message/fallback-message.component.html +0 -95
  30. package/src/lib/components/fallback-message/fallback-message.component.spec.ts +0 -23
  31. package/src/lib/components/fallback-message/fallback-message.component.ts +0 -140
  32. package/src/lib/components/nav/nav.component.css +0 -40
  33. package/src/lib/components/nav/nav.component.html +0 -40
  34. package/src/lib/components/nav/nav.component.spec.ts +0 -23
  35. package/src/lib/components/nav/nav.component.ts +0 -84
  36. package/src/lib/tudu-components.component.spec.ts +0 -23
  37. package/src/lib/tudu-components.component.ts +0 -20
  38. package/src/lib/tudu-components.module.ts +0 -13
  39. package/src/lib/tudu-components.service.spec.ts +0 -16
  40. package/src/lib/tudu-components.service.ts +0 -9
  41. package/src/test.ts +0 -27
  42. package/tsconfig.lib.json +0 -19
  43. package/tsconfig.lib.prod.json +0 -10
  44. package/tsconfig.spec.json +0 -17
@@ -0,0 +1,77 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ export class CardLayoutComponent {
6
+ constructor(route) {
7
+ this.route = route;
8
+ this.statusPedido = '';
9
+ this.cardTemplateIndicator = 0; // 1 para serviço, 2 para candidatura
10
+ this.hideHeader = false; // 1 para serviço, 2 para candidatura
11
+ this.tags = ['Residencial', 'Urgente', 'Elétrica'];
12
+ this.statusOptions = [
13
+ { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },
14
+ { class: 'status-pending', text: 'Em andamento', icon: 'fa-spinner' },
15
+ { class: 'status-completed', text: 'Concluído', icon: 'fa-check' },
16
+ { class: 'status-cancelled', text: 'Cancelado', icon: 'fa-times' },
17
+ ];
18
+ this.currentStatus = this.statusOptions[0];
19
+ this.flowIndicator = '1';
20
+ this.route.events.subscribe(() => {
21
+ if (this.route.url.includes('budgets')) {
22
+ this.flowIndicator = 'budgets';
23
+ console.log('asdasdadsasda', this.flowIndicator);
24
+ }
25
+ });
26
+ }
27
+ ngOnInit() {
28
+ let index = 0;
29
+ this.statusInterval = setInterval(() => {
30
+ index = (index + 1) % this.statusOptions.length;
31
+ this.currentStatus = this.statusOptions[index];
32
+ }, 3000);
33
+ console.log('cardTemplateIndicator', this.cardTemplateIndicator);
34
+ }
35
+ get badgeStyles() {
36
+ const status = this.statusPedido?.toLowerCase();
37
+ switch (status) {
38
+ case 'finalizado':
39
+ return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave
40
+ case 'concluido':
41
+ return { backgroundColor: '#0096881c', color: '#009688' }; // teal
42
+ case 'cancelado':
43
+ return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
44
+ case 'publicado':
45
+ return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave
46
+ case 'recusado':
47
+ return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
48
+ case 'em negociacao':
49
+ return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave
50
+ case 'pendente':
51
+ return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro
52
+ default:
53
+ return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão
54
+ }
55
+ }
56
+ ngOnDestroy() {
57
+ if (this.statusInterval) {
58
+ clearInterval(this.statusInterval);
59
+ }
60
+ }
61
+ verDetalhes() {
62
+ alert('Abrir detalhes do serviço...');
63
+ }
64
+ }
65
+ 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-xl shadow-md overflow-hidden bg-white hover:shadow-lg transition-all duration-300 relative mb-5\"\n>\n <!-- HEADER -->\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"service-card-header flex items-center justify-between p-3 border-b border-gray-200\"\n >\n <div class=\"flex items-center gap-3\">\n <div class=\"icon-style\">\n <ng-content select=\"[service-icon]\"></ng-content>\n </div>\n <div class=\"flex flex-col\">\n <div class=\"flex items-center gap-3\">\n <div class=\"service-title truncate w-full\">\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n <div\n class=\"whitespace-nowrap overflow-hidden text-ellipsis\"\n style=\"font-size: 12px; color: var(--tab-link)\"\n >\n <ng-content select=\"[service-address]\"></ng-content>\n </div>\n </div>\n </div>\n </div>\n\n <!-- BODY -->\n <div class=\"service-card-body p-4 space-y-3\">\n <div>\n <div\n class=\"flex flex-col items-start gap-3 border-b border-gray-100 pb-3 mb-3\"\n *ngIf=\"cardTemplateIndicator === 1\"\n >\n <div class=\"flex justify-between w-full pb-2\">\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\n <ng-content select=\"[status-badge]\"></ng-content>\n </div>\n\n <div\n class=\"text-xs text-gray-50 font-semibold\"\n style=\"\n background-color: #d3d3d32c;\n color: grey;\n border-radius: 25px;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px 10px;\n \"\n >\n <ng-content select=\"[order-number]\"></ng-content>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-2 items-center\">\n <ng-content select=\"[filter-tag]\"></ng-content>\n </div>\n </div>\n\n <div class=\"fw-semibold\" *ngIf=\"statusPedido === 'finalizado'\">\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[info-row]\"></ng-content>\n\n <ng-content select=\"[description]\"></ng-content>\n </div>\n\n <!-- FOOTER -->\n\n <div\n class=\"service-card-footer flex justify-center items-center p-3 border-t border-gray-100 bg-gray-50 gap-1\"\n >\n <div class=\"col-6\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n <div\n class=\"fw-semibold col-6\"\n style=\"display: flex; justify-content: flex-end\"\n >\n <ng-content select=\"[price]\"></ng-content>\n </div>\n </div>\n <!-- <div\n \n class=\"flex row justify-between items-center p-3 border-t border-gray-100 bg-gray-50\"\n >\n <div class=\"col-6\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n <div class=\"col-6\">\n <ng-content select=\"[price]\"></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 {font-weight: 600; font-size: 1.1rem;} .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
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
68
+ type: Component,
69
+ args: [{ selector: 'lib-card-layout', template: "<div\n class=\"service-card rounded-xl shadow-md overflow-hidden bg-white hover:shadow-lg transition-all duration-300 relative mb-5\"\n>\n <!-- HEADER -->\n <div\n [class.force-show]=\"!hideHeader\"\n class=\"service-card-header flex items-center justify-between p-3 border-b border-gray-200\"\n >\n <div class=\"flex items-center gap-3\">\n <div class=\"icon-style\">\n <ng-content select=\"[service-icon]\"></ng-content>\n </div>\n <div class=\"flex flex-col\">\n <div class=\"flex items-center gap-3\">\n <div class=\"service-title truncate w-full\">\n <ng-content select=\"[service-title]\"></ng-content>\n </div>\n <div class=\"\">\n <ng-content select=\"[details-btn]\"></ng-content>\n </div>\n </div>\n <div\n class=\"whitespace-nowrap overflow-hidden text-ellipsis\"\n style=\"font-size: 12px; color: var(--tab-link)\"\n >\n <ng-content select=\"[service-address]\"></ng-content>\n </div>\n </div>\n </div>\n </div>\n\n <!-- BODY -->\n <div class=\"service-card-body p-4 space-y-3\">\n <div>\n <div\n class=\"flex flex-col items-start gap-3 border-b border-gray-100 pb-3 mb-3\"\n *ngIf=\"cardTemplateIndicator === 1\"\n >\n <div class=\"flex justify-between w-full pb-2\">\n <div class=\"status-badge\" [ngStyle]=\"badgeStyles\">\n <ng-content select=\"[status-badge]\"></ng-content>\n </div>\n\n <div\n class=\"text-xs text-gray-50 font-semibold\"\n style=\"\n background-color: #d3d3d32c;\n color: grey;\n border-radius: 25px;\n display: flex;\n justify-content: center;\n align-items: center;\n padding: 4px 10px;\n \"\n >\n <ng-content select=\"[order-number]\"></ng-content>\n </div>\n </div>\n\n <div class=\"flex flex-wrap gap-2 items-center\">\n <ng-content select=\"[filter-tag]\"></ng-content>\n </div>\n </div>\n\n <div class=\"fw-semibold\" *ngIf=\"statusPedido === 'finalizado'\">\n <ng-content select=\"[conclusion-date]\"></ng-content>\n </div>\n </div>\n <ng-content select=\"[info-row]\"></ng-content>\n\n <ng-content select=\"[description]\"></ng-content>\n </div>\n\n <!-- FOOTER -->\n\n <div\n class=\"service-card-footer flex justify-center items-center p-3 border-t border-gray-100 bg-gray-50 gap-1\"\n >\n <div class=\"col-6\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n <div\n class=\"fw-semibold col-6\"\n style=\"display: flex; justify-content: flex-end\"\n >\n <ng-content select=\"[price]\"></ng-content>\n </div>\n </div>\n <!-- <div\n \n class=\"flex row justify-between items-center p-3 border-t border-gray-100 bg-gray-50\"\n >\n <div class=\"col-6\">\n <ng-content select=\"[main-btn]\"></ng-content>\n </div>\n <div class=\"col-6\">\n <ng-content select=\"[price]\"></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 {font-weight: 600; font-size: 1.1rem;} .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
+ }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
71
+ type: Input
72
+ }], cardTemplateIndicator: [{
73
+ type: Input
74
+ }], hideHeader: [{
75
+ type: Input
76
+ }] } });
77
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBakJ4QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDeEUsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztRQUUzRSxTQUFJLEdBQWEsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELGtCQUFhLEdBQUc7WUFDZCxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVELEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQ25FLENBQUM7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b25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXJkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNhcmRUZW1wbGF0ZUluZGljYXRvcjogbnVtYmVyID0gMDsgLy8gMSBwYXJhIHNlcnZpw6dvLCAyIHBhcmEgY2FuZGlkYXR1cmFcbiAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyAxIHBhcmEgc2VydmnDp28sIDIgcGFyYSBjYW5kaWRhdHVyYVxuXG4gIHRhZ3M6IHN0cmluZ1tdID0gWydSZXNpZGVuY2lhbCcsICdVcmdlbnRlJywgJ0Vsw6l0cmljYSddO1xuXG4gIHN0YXR1c09wdGlvbnMgPSBbXG4gICAgeyBjbGFzczogJ3N0YXR1cy1hY3RpdmUnLCB0ZXh0OiAnQXRpdm8nLCBpY29uOiAnZmEtY2lyY2xlJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtcGVuZGluZycsIHRleHQ6ICdFbSBhbmRhbWVudG8nLCBpY29uOiAnZmEtc3Bpbm5lcicgfSxcbiAgICB7IGNsYXNzOiAnc3RhdHVzLWNvbXBsZXRlZCcsIHRleHQ6ICdDb25jbHXDrWRvJywgaWNvbjogJ2ZhLWNoZWNrJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtY2FuY2VsbGVkJywgdGV4dDogJ0NhbmNlbGFkbycsIGljb246ICdmYS10aW1lcycgfSxcbiAgXTtcblxuICBjdXJyZW50U3RhdHVzID0gdGhpcy5zdGF0dXNPcHRpb25zWzBdO1xuICBwcml2YXRlIHN0YXR1c0ludGVydmFsOiBhbnk7XG4gIGZsb3dJbmRpY2F0b3I6IHN0cmluZyA9ICcxJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucm91dGUudXJsLmluY2x1ZGVzKCdidWRnZXRzJykpIHtcbiAgICAgICAgdGhpcy5mbG93SW5kaWNhdG9yID0gJ2J1ZGdldHMnO1xuICAgICAgICBjb25zb2xlLmxvZygnYXNkYXNkYWRzYXNkYScsIHRoaXMuZmxvd0luZGljYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHRoaXMuc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1cyA9IHRoaXMuc3RhdHVzT3B0aW9uc1tpbmRleF07XG4gICAgfSwgMzAwMCk7XG5cbiAgICBjb25zb2xlLmxvZygnY2FyZFRlbXBsYXRlSW5kaWNhdG9yJywgdGhpcy5jYXJkVGVtcGxhdGVJbmRpY2F0b3IpO1xuICB9XG5cbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjNGNhZjUwMjAnLCBjb2xvcjogJyM0Y2FmNTAnIH07IC8vIHZlcmRlIHN1YXZlXG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA5Njg4MWMnLCBjb2xvcjogJyMwMDk2ODgnIH07IC8vIHRlYWxcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyNmZjUyNTIxYycsIGNvbG9yOiAnI2ZmNTI1MicgfTsgLy8gdmVybWVsaG8gY2xhcm9cbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyMwMDk2ZmYxYycsIGNvbG9yOiAnIzI1YTVmZicgfTsgLy8gYXp1bCBzdWF2ZVxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjZmY1MjUyMWMnLCBjb2xvcjogJyNmZjUyNTInIH07IC8vIHZlcm1lbGhvIGNsYXJvXG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2ZmYWIyNTFmJywgY29sb3I6ICcjZmY5ODAwJyB9OyAvLyBsYXJhbmphIHN1YXZlXG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyM5YTFmYWQxYycsIGNvbG9yOiAnIzdlNTdjMicgfTsgLy8gcm94byBjbGFyb1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2UwZTBlMDFjJywgY29sb3I6ICcjNzU3NTc1JyB9OyAvLyBjaW56YSBwYWRyw6NvXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0dXNJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgdmVyRGV0YWxoZXMoKSB7XG4gICAgYWxlcnQoJ0FicmlyIGRldGFsaGVzIGRvIHNlcnZpw6dvLi4uJyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgcm91bmRlZC14bCBzaGFkb3ctbWQgb3ZlcmZsb3ctaGlkZGVuIGJnLXdoaXRlIGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItNVwiXG4+XG4gIDwhLS0gSEVBREVSIC0tPlxuICA8ZGl2XG4gICAgW2NsYXNzLmZvcmNlLXNob3ddPVwiIWhpZGVIZWFkZXJcIlxuICAgIGNsYXNzPVwic2VydmljZS1jYXJkLWhlYWRlciBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gcC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTIwMFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uLXN0eWxlXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWljb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTNcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwic2VydmljZS10aXRsZSB0cnVuY2F0ZSB3LWZ1bGxcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLXRpdGxlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGV0YWlscy1idG5dXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwid2hpdGVzcGFjZS1ub3dyYXAgb3ZlcmZsb3ctaGlkZGVuIHRleHQtZWxsaXBzaXNcIlxuICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4OyBjb2xvcjogdmFyKC0tdGFiLWxpbmspXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWFkZHJlc3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8IS0tIEJPRFkgLS0+XG4gIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLWNhcmQtYm9keSBwLTQgc3BhY2UteS0zXCI+XG4gICAgPGRpdj5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGl0ZW1zLXN0YXJ0IGdhcC0zIGJvcmRlci1iIGJvcmRlci1ncmF5LTEwMCBwYi0zIG1iLTNcIlxuICAgICAgICAqbmdJZj1cImNhcmRUZW1wbGF0ZUluZGljYXRvciA9PT0gMVwiXG4gICAgICA+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGp1c3RpZnktYmV0d2VlbiB3LWZ1bGwgcGItMlwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIiBbbmdTdHlsZV09XCJiYWRnZVN0eWxlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXR1cy1iYWRnZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICBjbGFzcz1cInRleHQteHMgdGV4dC1ncmF5LTUwIGZvbnQtc2VtaWJvbGRcIlxuICAgICAgICAgICAgc3R5bGU9XCJcbiAgICAgICAgICAgICAgYmFja2dyb3VuZC1jb2xvcjogI2QzZDNkMzJjO1xuICAgICAgICAgICAgICBjb2xvcjogZ3JleTtcbiAgICAgICAgICAgICAgYm9yZGVyLXJhZGl1czogMjVweDtcbiAgICAgICAgICAgICAgZGlzcGxheTogZmxleDtcbiAgICAgICAgICAgICAganVzdGlmeS1jb250ZW50OiBjZW50ZXI7XG4gICAgICAgICAgICAgIGFsaWduLWl0ZW1zOiBjZW50ZXI7XG4gICAgICAgICAgICAgIHBhZGRpbmc6IDRweCAxMHB4O1xuICAgICAgICAgICAgXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3JkZXItbnVtYmVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0yIGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmaWx0ZXItdGFnXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZ3LXNlbWlib2xkXCIgKm5nSWY9XCJzdGF0dXNQZWRpZG8gPT09ICdmaW5hbGl6YWRvJ1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29uY2x1c2lvbi1kYXRlXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbmZvLXJvd11cIj48L25nLWNvbnRlbnQ+XG5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuICA8L2Rpdj5cblxuICA8IS0tIEZPT1RFUiAtLT5cblxuICA8ZGl2XG4gICAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQtZm9vdGVyIGZsZXgganVzdGlmeS1jZW50ZXIgaXRlbXMtY2VudGVyIHAtMyBib3JkZXItdCBib3JkZXItZ3JheS0xMDAgYmctZ3JheS01MCBnYXAtMVwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYWluLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJmdy1zZW1pYm9sZCBjb2wtNlwiXG4gICAgICBzdHlsZT1cImRpc3BsYXk6IGZsZXg7IGp1c3RpZnktY29udGVudDogZmxleC1lbmRcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmljZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8IS0tIDxkaXZcbiAgICBcbiAgICBjbGFzcz1cImZsZXggcm93IGp1c3RpZnktYmV0d2VlbiBpdGVtcy1jZW50ZXIgcC0zIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMCBiZy1ncmF5LTUwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21haW4tYnRuXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sLTZcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmljZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PiAtLT5cbjwvZGl2PlxuIl19
@@ -0,0 +1,128 @@
1
+ import { Component, Input, Output, EventEmitter } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class FallbackMessageComponent {
5
+ constructor() {
6
+ this.card = [];
7
+ this.statusPedido = '';
8
+ this.primaryAction = new EventEmitter();
9
+ this.secondaryAction = new EventEmitter();
10
+ }
11
+ get emptyStateConfig() {
12
+ // Se não há propostas
13
+ // if (this.card.length === 0) {
14
+ // return {
15
+ // title: 'Nenhuma Proposta',
16
+ // description:
17
+ // 'Você ainda não possui negociações ou propostas recebidas.',
18
+ // icon: '📄',
19
+ // iconColor: 'text-gray-500',
20
+ // bgColor: 'bg-gray-100',
21
+ // primaryActionText: this.primaryActionText || 'Anúnciar Grátis',
22
+ // secondaryActionText: this.secondaryActionText,
23
+ // };
24
+ // }
25
+ // Se há status de pedido
26
+ if (this.statusPedido) {
27
+ switch (this.statusPedido.toLowerCase()) {
28
+ case 'finalizado':
29
+ return {
30
+ title: this.customTitle || 'Serviço Concluído! 🎉',
31
+ description: this.customDescription ||
32
+ 'O serviço foi finalizado com sucesso. Agradecemos pela confiança!',
33
+ icon: '✅',
34
+ iconColor: 'text-green-500',
35
+ bgColor: 'bg-green-100',
36
+ primaryActionText: this.primaryActionText || 'Ver Detalhes',
37
+ secondaryActionText: this.secondaryActionText || 'Avaliar Serviço',
38
+ };
39
+ // case 'cancelado':
40
+ // return {
41
+ // title: this.customTitle || 'Serviço Cancelado',
42
+ // description:
43
+ // this.customDescription ||
44
+ // 'O serviço foi cancelado pelo prestador. Você pode buscar outros profissionais disponíveis.',
45
+ // icon: '❌',
46
+ // iconColor: 'text-red-500',
47
+ // bgColor: 'bg-red-100',
48
+ // primaryActionText: this.primaryActionText || 'Buscar Profissionais',
49
+ // secondaryActionText: this.secondaryActionText || 'Voltar ao Início',
50
+ // };
51
+ case 'sem servicos':
52
+ return {
53
+ title: this.customTitle || 'Sem serviço',
54
+ description: this.customDescription ||
55
+ 'Não há serviços disponíveis aqui.',
56
+ icon: '📄',
57
+ // iconColor: 'text-yellow-500',
58
+ // bgColor: 'bg-yellow-100',
59
+ iconColor: 'text-gray-500',
60
+ bgColor: 'bg-gray-100',
61
+ primaryActionText: this.primaryActionText || 'Procurar serviços',
62
+ // secondaryActionText: this.secondaryActionText || 'Meus Anúncios',
63
+ };
64
+ case 'indisponivel':
65
+ return {
66
+ title: this.customTitle || 'Proposta Indisponível',
67
+ description: this.customDescription ||
68
+ 'Esta proposta não está mais disponível para visualização.',
69
+ icon: '📄',
70
+ // iconColor: 'text-yellow-500',
71
+ // bgColor: 'bg-yellow-100',
72
+ iconColor: 'text-gray-500',
73
+ bgColor: 'bg-gray-100',
74
+ primaryActionText: this.primaryActionText || 'Ver Outras Propostas',
75
+ // secondaryActionText: this.secondaryActionText || 'Meus Anúncios',
76
+ };
77
+ default:
78
+ return this.getDefaultConfig();
79
+ }
80
+ }
81
+ return this.getDefaultConfig();
82
+ }
83
+ getDefaultConfig() {
84
+ return {
85
+ title: this.customTitle || 'Nenhuma Proposta',
86
+ description: this.customDescription || 'Você ainda não possui negociações.',
87
+ icon: '📄',
88
+ iconColor: 'text-gray-500',
89
+ bgColor: 'bg-gray-100',
90
+ primaryActionText: this.primaryActionText || 'Anúnciar Grátis',
91
+ secondaryActionText: this.secondaryActionText,
92
+ };
93
+ }
94
+ // Método para determinar se deve mostrar o componente
95
+ shouldShowEmptyState() {
96
+ return (this.card.length === 0 ||
97
+ ['finalizado', 'cancelado', 'indisponível', 'indisponivel'].includes(this.statusPedido?.toLowerCase()));
98
+ }
99
+ onPrimaryAction() {
100
+ this.primaryAction.emit();
101
+ }
102
+ onSecondaryAction() {
103
+ this.secondaryAction.emit();
104
+ }
105
+ }
106
+ FallbackMessageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FallbackMessageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
107
+ FallbackMessageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: FallbackMessageComponent, selector: "lib-fallback-message", inputs: { card: "card", statusPedido: "statusPedido", customTitle: "customTitle", customDescription: "customDescription", primaryActionText: "primaryActionText", secondaryActionText: "secondaryActionText" }, outputs: { primaryAction: "primaryAction", secondaryAction: "secondaryAction" }, ngImport: i0, template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\n <div\n class=\"empty-state-card max-w-md mx-auto bg-white shadow-xl rounded-3xl p-8 border border-gray-100\"\n >\n <!-- \u00CDcone din\u00E2mico -->\n <div class=\"empty-state-icon mb-6 flex justify-center\">\n <div class=\"relative\">\n <!-- \u00CDcone principal -->\n <div [class]=\"emptyStateConfig.iconColor\">\n <div class=\"text-6xl\">\n {{ emptyStateConfig.icon }}\n </div>\n </div>\n\n <!-- Background decorativo -->\n <div class=\"absolute -z-10 inset-0 flex items-center justify-center\">\n <div\n [class]=\"emptyStateConfig.bgColor\"\n class=\"w-32 h-32 rounded-full opacity-50\"\n ></div>\n </div>\n </div>\n </div>\n\n <!-- Conte\u00FAdo da mensagem -->\n <div class=\"empty-state-content text-center space-y-4\">\n <!-- T\u00EDtulo -->\n <h3 class=\"text-2xl font-bold text-gray-900 mb-2\">\n {{ emptyStateConfig.title }}\n </h3>\n\n <!-- Descri\u00E7\u00E3o -->\n <p class=\"text-gray-600 text-lg leading-relaxed px-4\">\n {{ emptyStateConfig.description }}\n </p>\n\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-green-50 text-green-700 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-check-circle\"></i>\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\n </div>\n </div>\n\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-red-50 text-red-700 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-exclamation-circle\"></i>\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\n </div>\n </div>\n </div>\n\n <!-- A\u00E7\u00F5es -->\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\n <button\n (click)=\"onPrimaryAction()\"\n [ngClass]=\"{\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\n 'bg-blue-600 ':\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\n }\"\n class=\"col-12 btn btn-primary\"\n >\n {{ emptyStateConfig.primaryActionText }}\n </button>\n\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\n <button\n *ngIf=\"emptyStateConfig.secondaryActionText\"\n (click)=\"onSecondaryAction()\"\n class=\"col-12 btn btn-outline-primary\"\n >\n {{ emptyStateConfig.secondaryActionText }}\n </button>\n </div>\n\n <!-- Link de ajuda (opcional) -->\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\n <a\n href=\"#\"\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\n >\n <i class=\"fas fa-question-circle mr-2\"></i>\n Precisa de ajuda? Entre em contato com o suporte\n </a>\n </div>\n </div>\n</div>\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: FallbackMessageComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'lib-fallback-message', template: "<div *ngIf=\"shouldShowEmptyState()\" class=\"empty-state-container\">\n <div\n class=\"empty-state-card max-w-md mx-auto bg-white shadow-xl rounded-3xl p-8 border border-gray-100\"\n >\n <!-- \u00CDcone din\u00E2mico -->\n <div class=\"empty-state-icon mb-6 flex justify-center\">\n <div class=\"relative\">\n <!-- \u00CDcone principal -->\n <div [class]=\"emptyStateConfig.iconColor\">\n <div class=\"text-6xl\">\n {{ emptyStateConfig.icon }}\n </div>\n </div>\n\n <!-- Background decorativo -->\n <div class=\"absolute -z-10 inset-0 flex items-center justify-center\">\n <div\n [class]=\"emptyStateConfig.bgColor\"\n class=\"w-32 h-32 rounded-full opacity-50\"\n ></div>\n </div>\n </div>\n </div>\n\n <!-- Conte\u00FAdo da mensagem -->\n <div class=\"empty-state-content text-center space-y-4\">\n <!-- T\u00EDtulo -->\n <h3 class=\"text-2xl font-bold text-gray-900 mb-2\">\n {{ emptyStateConfig.title }}\n </h3>\n\n <!-- Descri\u00E7\u00E3o -->\n <p class=\"text-gray-600 text-lg leading-relaxed px-4\">\n {{ emptyStateConfig.description }}\n </p>\n\n <!-- Informa\u00E7\u00F5es adicionais baseadas no status -->\n <div *ngIf=\"statusPedido === 'finalizado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-green-50 text-green-700 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-check-circle\"></i>\n <span class=\"font-medium\">Servi\u00E7o avaliado e finalizado</span>\n </div>\n </div>\n\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-4\">\n <div\n class=\"inline-flex items-center gap-2 bg-red-50 text-red-700 px-4 py-2 rounded-full\"\n >\n <i class=\"fas fa-exclamation-circle\"></i>\n <span class=\"font-medium\">Cancelado pelo prestador do servi\u00E7o</span>\n </div>\n </div>\n </div>\n\n <!-- A\u00E7\u00F5es -->\n <div class=\"mt-8 flex flex-col sm:flex-row gap-4 justify-center\">\n <!-- A\u00E7\u00E3o Prim\u00E1ria -->\n <button\n (click)=\"onPrimaryAction()\"\n [ngClass]=\"{\n 'bg-green-600 hover:bg-green-700': statusPedido === 'finalizado',\n 'bg-red-600 hover:bg-red-700': statusPedido === 'cancelado',\n 'bg-blue-600 ':\n statusPedido === 'indispon\u00EDvel' || statusPedido === 'indisponivel',\n 'bg-primary-600 hover:bg-primary-700': card.length === 0\n }\"\n class=\"col-12 btn btn-primary\"\n >\n {{ emptyStateConfig.primaryActionText }}\n </button>\n\n <!-- A\u00E7\u00E3o Secund\u00E1ria -->\n <button\n *ngIf=\"emptyStateConfig.secondaryActionText\"\n (click)=\"onSecondaryAction()\"\n class=\"col-12 btn btn-outline-primary\"\n >\n {{ emptyStateConfig.secondaryActionText }}\n </button>\n </div>\n\n <!-- Link de ajuda (opcional) -->\n <div *ngIf=\"statusPedido === 'cancelado'\" class=\"mt-6 text-center\">\n <a\n href=\"#\"\n class=\"text-sm text-blue-600 hover:text-blue-800 hover:underline\"\n >\n <i class=\"fas fa-question-circle mr-2\"></i>\n Precisa de ajuda? Entre em contato com o suporte\n </a>\n </div>\n </div>\n</div>\n", styles: [".empty-state-card{animation:fadeInUp .5s ease-out}@keyframes fadeInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.empty-state-icon{animation:bounceIn .6s ease-out}@keyframes bounceIn{0%{opacity:0;transform:scale(.3)}50%{opacity:1;transform:scale(1.05)}70%{transform:scale(.9)}to{transform:scale(1)}}\n"] }]
111
+ }], propDecorators: { card: [{
112
+ type: Input
113
+ }], statusPedido: [{
114
+ type: Input
115
+ }], customTitle: [{
116
+ type: Input
117
+ }], customDescription: [{
118
+ type: Input
119
+ }], primaryActionText: [{
120
+ type: Input
121
+ }], secondaryActionText: [{
122
+ type: Input
123
+ }], primaryAction: [{
124
+ type: Output
125
+ }], secondaryAction: [{
126
+ type: Output
127
+ }] } });
128
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFpQnZFLE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFNVyxTQUFJLEdBQVUsRUFBRSxDQUFDO1FBQ2pCLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBTXpCLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUN6QyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7S0FpSHREO0lBL0dDLElBQUksZ0JBQWdCO1FBQ2xCLHNCQUFzQjtRQUN0QixnQ0FBZ0M7UUFDaEMsYUFBYTtRQUNiLGlDQUFpQztRQUNqQyxtQkFBbUI7UUFDbkIscUVBQXFFO1FBQ3JFLGtCQUFrQjtRQUNsQixrQ0FBa0M7UUFDbEMsOEJBQThCO1FBQzlCLHNFQUFzRTtRQUN0RSxxREFBcUQ7UUFDckQsT0FBTztRQUNQLElBQUk7UUFFSix5QkFBeUI7UUFDekIsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO1lBQ3JCLFFBQVEsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLEVBQUUsRUFBRTtnQkFDdkMsS0FBSyxZQUFZO29CQUNmLE9BQU87d0JBQ0wsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLElBQUksdUJBQXVC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bkIsS0FBSztnQkFDRyxpQkFBaUI7c0JBQXpCLEtBQUs7Z0JBQ0csaUJBQWlCO3NCQUF6QixLQUFLO2dCQUNHLG1CQUFtQjtzQkFBM0IsS0FBSztnQkFFSSxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbnRlcmZhY2UgRW1wdHlTdGF0ZUNvbmZpZyB7XG4gIHRpdGxlOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uOiBzdHJpbmc7XG4gIGljb246IHN0cmluZztcbiAgaWNvbkNvbG9yOiBzdHJpbmc7XG4gIGJnQ29sb3I6IHN0cmluZztcbiAgcHJpbWFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG4gIHNlY29uZGFyeUFjdGlvblRleHQ/OiBzdHJpbmc7XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1mYWxsYmFjay1tZXNzYWdlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ZhbGxiYWNrLW1lc3NhZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9mYWxsYmFjay1tZXNzYWdlLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgRmFsbGJhY2tNZXNzYWdlQ29tcG9uZW50IHtcbiAgQElucHV0KCkgY2FyZDogYW55W10gPSBbXTtcbiAgQElucHV0KCkgc3RhdHVzUGVkaWRvOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY3VzdG9tVGl0bGU/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGN1c3RvbURlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBASW5wdXQoKSBwcmltYXJ5QWN0aW9uVGV4dD86IHN0cmluZztcbiAgQElucHV0KCkgc2Vjb25kYXJ5QWN0aW9uVGV4dD86IHN0cmluZztcblxuICBAT3V0cHV0KCkgcHJpbWFyeUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHNlY29uZGFyeUFjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICBnZXQgZW1wdHlTdGF0ZUNvbmZpZygpOiBFbXB0eVN0YXRlQ29uZmlnIHtcbiAgICAvLyBTZSBuw6NvIGjDoSBwcm9wb3N0YXNcbiAgICAvLyBpZiAodGhpcy5jYXJkLmxlbmd0aCA9PT0gMCkge1xuICAgIC8vICAgcmV0dXJuIHtcbiAgICAvLyAgICAgdGl0bGU6ICdOZW5odW1hIFByb3Bvc3RhJyxcbiAgICAvLyAgICAgZGVzY3JpcHRpb246XG4gICAgLy8gICAgICAgJ1ZvY8OqIGFpbmRhIG7Do28gcG9zc3VpIG5lZ29jaWHDp8O1ZXMgb3UgcHJvcG9zdGFzIHJlY2ViaWRhcy4nLFxuICAgIC8vICAgICBpY29uOiAn8J+ThCcsXG4gICAgLy8gICAgIGljb25Db2xvcjogJ3RleHQtZ3JheS01MDAnLFxuICAgIC8vICAgICBiZ0NvbG9yOiAnYmctZ3JheS0xMDAnLFxuICAgIC8vICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnQW7Dum5jaWFyIEdyw6F0aXMnLFxuICAgIC8vICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQsXG4gICAgLy8gICB9O1xuICAgIC8vIH1cblxuICAgIC8vIFNlIGjDoSBzdGF0dXMgZGUgcGVkaWRvXG4gICAgaWYgKHRoaXMuc3RhdHVzUGVkaWRvKSB7XG4gICAgICBzd2l0Y2ggKHRoaXMuc3RhdHVzUGVkaWRvLnRvTG93ZXJDYXNlKCkpIHtcbiAgICAgICAgY2FzZSAnZmluYWxpemFkbyc6XG4gICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIHRpdGxlOiB0aGlzLmN1c3RvbVRpdGxlIHx8ICdTZXJ2acOnbyBDb25jbHXDrWRvISDwn46JJyxcbiAgICAgICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICB0aGlzLmN1c3RvbURlc2NyaXB0aW9uIHx8XG4gICAgICAgICAgICAgICdPIHNlcnZpw6dvIGZvaSBmaW5hbGl6YWRvIGNvbSBzdWNlc3NvLiBBZ3JhZGVjZW1vcyBwZWxhIGNvbmZpYW7Dp2EhJyxcbiAgICAgICAgICAgIGljb246ICfinIUnLFxuICAgICAgICAgICAgaWNvbkNvbG9yOiAndGV4dC1ncmVlbi01MDAnLFxuICAgICAgICAgICAgYmdDb2xvcjogJ2JnLWdyZWVuLTEwMCcsXG4gICAgICAgICAgICBwcmltYXJ5QWN0aW9uVGV4dDogdGhpcy5wcmltYXJ5QWN0aW9uVGV4dCB8fCAnVmVyIERldGFsaGVzJyxcbiAgICAgICAgICAgIHNlY29uZGFyeUFjdGlvblRleHQ6IHRoaXMuc2Vjb25kYXJ5QWN0aW9uVGV4dCB8fCAnQXZhbGlhciBTZXJ2acOnbycsXG4gICAgICAgICAgfTtcblxuICAgICAgICAvLyBjYXNlICdjYW5jZWxhZG8nOlxuICAgICAgICAvLyAgIHJldHVybiB7XG4gICAgICAgIC8vICAgICB0aXRsZTogdGhpcy5jdXN0b21UaXRsZSB8fCAnU2VydmnDp28gQ2FuY2VsYWRvJyxcbiAgICAgICAgLy8gICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAvLyAgICAgICB0aGlzLmN1c3RvbURlc2NyaXB0aW9uIHx8XG4gICAgICAgIC8vICAgICAgICdPIHNlcnZpw6dvIGZvaSBjYW5jZWxhZG8gcGVsbyBwcmVzdGFkb3IuIFZvY8OqIHBvZGUgYnVzY2FyIG91dHJvcyBwcm9maXNzaW9uYWlzIGRpc3BvbsOtdmVpcy4nLFxuICAgICAgICAvLyAgICAgaWNvbjogJ+KdjCcsXG4gICAgICAgIC8vICAgICBpY29uQ29sb3I6ICd0ZXh0LXJlZC01MDAnLFxuICAgICAgICAvLyAgICAgYmdDb2xvcjogJ2JnLXJlZC0xMDAnLFxuICAgICAgICAvLyAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ0J1c2NhciBQcm9maXNzaW9uYWlzJyxcbiAgICAgICAgLy8gICAgIHNlY29uZGFyeUFjdGlvblRleHQ6IHRoaXMuc2Vjb25kYXJ5QWN0aW9uVGV4dCB8fCAnVm9sdGFyIGFvIEluw61jaW8nLFxuICAgICAgICAvLyAgIH07XG5cbiAgICAgICAgY2FzZSAnc2VtIHNlcnZpY29zJzpcbiAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ1NlbSBzZXJ2acOnbycsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAnTsOjbyBow6Egc2VydmnDp29zIGRpc3BvbsOtdmVpcyBhcXVpLicsXG4gICAgICAgICAgICBpY29uOiAn8J+ThCcsXG4gICAgICAgICAgICAvLyBpY29uQ29sb3I6ICd0ZXh0LXllbGxvdy01MDAnLFxuICAgICAgICAgICAgLy8gYmdDb2xvcjogJ2JnLXllbGxvdy0xMDAnLFxuICAgICAgICAgICAgaWNvbkNvbG9yOiAndGV4dC1ncmF5LTUwMCcsXG4gICAgICAgICAgICBiZ0NvbG9yOiAnYmctZ3JheS0xMDAnLFxuICAgICAgICAgICAgcHJpbWFyeUFjdGlvblRleHQ6IHRoaXMucHJpbWFyeUFjdGlvblRleHQgfHwgJ1Byb2N1cmFyIHNlcnZpw6dvcycsXG4gICAgICAgICAgICAvLyBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ01ldXMgQW7Dum5jaW9zJyxcbiAgICAgICAgICB9O1xuICAgICAgICBjYXNlICdpbmRpc3Bvbml2ZWwnOlxuICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0aXRsZTogdGhpcy5jdXN0b21UaXRsZSB8fCAnUHJvcG9zdGEgSW5kaXNwb27DrXZlbCcsXG4gICAgICAgICAgICBkZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgdGhpcy5jdXN0b21EZXNjcmlwdGlvbiB8fFxuICAgICAgICAgICAgICAnRXN0YSBwcm9wb3N0YSBuw6NvIGVzdMOhIG1haXMgZGlzcG9uw612ZWwgcGFyYSB2aXN1YWxpemHDp8Ojby4nLFxuICAgICAgICAgICAgaWNvbjogJ/Cfk4QnLFxuICAgICAgICAgICAgLy8gaWNvbkNvbG9yOiAndGV4dC15ZWxsb3ctNTAwJyxcbiAgICAgICAgICAgIC8vIGJnQ29sb3I6ICdiZy15ZWxsb3ctMTAwJyxcbiAgICAgICAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgICAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAgICAgICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdWZXIgT3V0cmFzIFByb3Bvc3RhcycsXG4gICAgICAgICAgICAvLyBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQgfHwgJ01ldXMgQW7Dum5jaW9zJyxcbiAgICAgICAgICB9O1xuXG4gICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgcmV0dXJuIHRoaXMuZ2V0RGVmYXVsdENvbmZpZygpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB0aGlzLmdldERlZmF1bHRDb25maWcoKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0RGVmYXVsdENvbmZpZygpOiBFbXB0eVN0YXRlQ29uZmlnIHtcbiAgICByZXR1cm4ge1xuICAgICAgdGl0bGU6IHRoaXMuY3VzdG9tVGl0bGUgfHwgJ05lbmh1bWEgUHJvcG9zdGEnLFxuICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgIHRoaXMuY3VzdG9tRGVzY3JpcHRpb24gfHwgJ1ZvY8OqIGFpbmRhIG7Do28gcG9zc3VpIG5lZ29jaWHDp8O1ZXMuJyxcbiAgICAgIGljb246ICfwn5OEJyxcbiAgICAgIGljb25Db2xvcjogJ3RleHQtZ3JheS01MDAnLFxuICAgICAgYmdDb2xvcjogJ2JnLWdyYXktMTAwJyxcbiAgICAgIHByaW1hcnlBY3Rpb25UZXh0OiB0aGlzLnByaW1hcnlBY3Rpb25UZXh0IHx8ICdBbsO6bmNpYXIgR3LDoXRpcycsXG4gICAgICBzZWNvbmRhcnlBY3Rpb25UZXh0OiB0aGlzLnNlY29uZGFyeUFjdGlvblRleHQsXG4gICAgfTtcbiAgfVxuXG4gIC8vIE3DqXRvZG8gcGFyYSBkZXRlcm1pbmFyIHNlIGRldmUgbW9zdHJhciBvIGNvbXBvbmVudGVcbiAgc2hvdWxkU2hvd0VtcHR5U3RhdGUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChcbiAgICAgIHRoaXMuY2FyZC5sZW5ndGggPT09IDAgfHxcbiAgICAgIFsnZmluYWxpemFkbycsICdjYW5jZWxhZG8nLCAnaW5kaXNwb27DrXZlbCcsICdpbmRpc3Bvbml2ZWwnXS5pbmNsdWRlcyhcbiAgICAgICAgdGhpcy5zdGF0dXNQZWRpZG8/LnRvTG93ZXJDYXNlKClcbiAgICAgIClcbiAgICApO1xuICB9XG5cbiAgb25QcmltYXJ5QWN0aW9uKCkge1xuICAgIHRoaXMucHJpbWFyeUFjdGlvbi5lbWl0KCk7XG4gIH1cblxuICBvblNlY29uZGFyeUFjdGlvbigpIHtcbiAgICB0aGlzLnNlY29uZGFyeUFjdGlvbi5lbWl0KCk7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJzaG91bGRTaG93RW1wdHlTdGF0ZSgpXCIgY2xhc3M9XCJlbXB0eS1zdGF0ZS1jb250YWluZXJcIj5cbiAgPGRpdlxuICAgIGNsYXNzPVwiZW1wdHktc3RhdGUtY2FyZCBtYXgtdy1tZCBteC1hdXRvIGJnLXdoaXRlIHNoYWRvdy14bCByb3VuZGVkLTN4bCBwLTggYm9yZGVyIGJvcmRlci1ncmF5LTEwMFwiXG4gID5cbiAgICA8IS0tIMONY29uZSBkaW7Dom1pY28gLS0+XG4gICAgPGRpdiBjbGFzcz1cImVtcHR5LXN0YXRlLWljb24gbWItNiBmbGV4IGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwicmVsYXRpdmVcIj5cbiAgICAgICAgPCEtLSDDjWNvbmUgcHJpbmNpcGFsIC0tPlxuICAgICAgICA8ZGl2IFtjbGFzc109XCJlbXB0eVN0YXRlQ29uZmlnLmljb25Db2xvclwiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LTZ4bFwiPlxuICAgICAgICAgICAge3sgZW1wdHlTdGF0ZUNvbmZpZy5pY29uIH19XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQmFja2dyb3VuZCBkZWNvcmF0aXZvIC0tPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiYWJzb2x1dGUgLXotMTAgaW5zZXQtMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIFtjbGFzc109XCJlbXB0eVN0YXRlQ29uZmlnLmJnQ29sb3JcIlxuICAgICAgICAgICAgY2xhc3M9XCJ3LTMyIGgtMzIgcm91bmRlZC1mdWxsIG9wYWNpdHktNTBcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gQ29udGXDumRvIGRhIG1lbnNhZ2VtIC0tPlxuICAgIDxkaXYgY2xhc3M9XCJlbXB0eS1zdGF0ZS1jb250ZW50IHRleHQtY2VudGVyIHNwYWNlLXktNFwiPlxuICAgICAgPCEtLSBUw610dWxvIC0tPlxuICAgICAgPGgzIGNsYXNzPVwidGV4dC0yeGwgZm9udC1ib2xkIHRleHQtZ3JheS05MDAgbWItMlwiPlxuICAgICAgICB7eyBlbXB0eVN0YXRlQ29uZmlnLnRpdGxlIH19XG4gICAgICA8L2gzPlxuXG4gICAgICA8IS0tIERlc2NyacOnw6NvIC0tPlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LWdyYXktNjAwIHRleHQtbGcgbGVhZGluZy1yZWxheGVkIHB4LTRcIj5cbiAgICAgICAge3sgZW1wdHlTdGF0ZUNvbmZpZy5kZXNjcmlwdGlvbiB9fVxuICAgICAgPC9wPlxuXG4gICAgICA8IS0tIEluZm9ybWHDp8O1ZXMgYWRpY2lvbmFpcyBiYXNlYWRhcyBubyBzdGF0dXMgLS0+XG4gICAgICA8ZGl2ICpuZ0lmPVwic3RhdHVzUGVkaWRvID09PSAnZmluYWxpemFkbydcIiBjbGFzcz1cIm10LTRcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWZsZXggaXRlbXMtY2VudGVyIGdhcC0yIGJnLWdyZWVuLTUwIHRleHQtZ3JlZW4tNzAwIHB4LTQgcHktMiByb3VuZGVkLWZ1bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtY2hlY2stY2lyY2xlXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj5TZXJ2acOnbyBhdmFsaWFkbyBlIGZpbmFsaXphZG88L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNQZWRpZG8gPT09ICdjYW5jZWxhZG8nXCIgY2xhc3M9XCJtdC00XCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cImlubGluZS1mbGV4IGl0ZW1zLWNlbnRlciBnYXAtMiBiZy1yZWQtNTAgdGV4dC1yZWQtNzAwIHB4LTQgcHktMiByb3VuZGVkLWZ1bGxcIlxuICAgICAgICA+XG4gICAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtZXhjbGFtYXRpb24tY2lyY2xlXCI+PC9pPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1tZWRpdW1cIj5DYW5jZWxhZG8gcGVsbyBwcmVzdGFkb3IgZG8gc2VydmnDp288L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8IS0tIEHDp8O1ZXMgLS0+XG4gICAgPGRpdiBjbGFzcz1cIm10LTggZmxleCBmbGV4LWNvbCBzbTpmbGV4LXJvdyBnYXAtNCBqdXN0aWZ5LWNlbnRlclwiPlxuICAgICAgPCEtLSBBw6fDo28gUHJpbcOhcmlhIC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgICAoY2xpY2spPVwib25QcmltYXJ5QWN0aW9uKClcIlxuICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJ2JnLWdyZWVuLTYwMCBob3ZlcjpiZy1ncmVlbi03MDAnOiBzdGF0dXNQZWRpZG8gPT09ICdmaW5hbGl6YWRvJyxcbiAgICAgICAgICAnYmctcmVkLTYwMCBob3ZlcjpiZy1yZWQtNzAwJzogc3RhdHVzUGVkaWRvID09PSAnY2FuY2VsYWRvJyxcbiAgICAgICAgICAnYmctYmx1ZS02MDAgJzpcbiAgICAgICAgICAgIHN0YXR1c1BlZGlkbyA9PT0gJ2luZGlzcG9uw612ZWwnIHx8IHN0YXR1c1BlZGlkbyA9PT0gJ2luZGlzcG9uaXZlbCcsXG4gICAgICAgICAgJ2JnLXByaW1hcnktNjAwIGhvdmVyOmJnLXByaW1hcnktNzAwJzogY2FyZC5sZW5ndGggPT09IDBcbiAgICAgICAgfVwiXG4gICAgICAgIGNsYXNzPVwiY29sLTEyIGJ0biBidG4tcHJpbWFyeVwiXG4gICAgICA+XG4gICAgICAgIHt7IGVtcHR5U3RhdGVDb25maWcucHJpbWFyeUFjdGlvblRleHQgfX1cbiAgICAgIDwvYnV0dG9uPlxuXG4gICAgICA8IS0tIEHDp8OjbyBTZWN1bmTDoXJpYSAtLT5cbiAgICAgIDxidXR0b25cbiAgICAgICAgKm5nSWY9XCJlbXB0eVN0YXRlQ29uZmlnLnNlY29uZGFyeUFjdGlvblRleHRcIlxuICAgICAgICAoY2xpY2spPVwib25TZWNvbmRhcnlBY3Rpb24oKVwiXG4gICAgICAgIGNsYXNzPVwiY29sLTEyIGJ0biBidG4tb3V0bGluZS1wcmltYXJ5XCJcbiAgICAgID5cbiAgICAgICAge3sgZW1wdHlTdGF0ZUNvbmZpZy5zZWNvbmRhcnlBY3Rpb25UZXh0IH19XG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cblxuICAgIDwhLS0gTGluayBkZSBhanVkYSAob3BjaW9uYWwpIC0tPlxuICAgIDxkaXYgKm5nSWY9XCJzdGF0dXNQZWRpZG8gPT09ICdjYW5jZWxhZG8nXCIgY2xhc3M9XCJtdC02IHRleHQtY2VudGVyXCI+XG4gICAgICA8YVxuICAgICAgICBocmVmPVwiI1wiXG4gICAgICAgIGNsYXNzPVwidGV4dC1zbSB0ZXh0LWJsdWUtNjAwIGhvdmVyOnRleHQtYmx1ZS04MDAgaG92ZXI6dW5kZXJsaW5lXCJcbiAgICAgID5cbiAgICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtcXVlc3Rpb24tY2lyY2xlIG1yLTJcIj48L2k+XG4gICAgICAgIFByZWNpc2EgZGUgYWp1ZGE/IEVudHJlIGVtIGNvbnRhdG8gY29tIG8gc3Vwb3J0ZVxuICAgICAgPC9hPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
@@ -0,0 +1,74 @@
1
+ import { Component, HostListener, Input, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/router";
4
+ import * as i2 from "@angular/common";
5
+ export class NavComponent {
6
+ constructor(router, el) {
7
+ this.router = router;
8
+ this.el = el;
9
+ this.changeNavColor = false;
10
+ this.openClose = false;
11
+ this.message = '';
12
+ this.lastScrollPosition = 0;
13
+ this.isHeaderVisible = true;
14
+ this.headerHeight = 0;
15
+ this.isMobile = false;
16
+ this.hasOffer = false;
17
+ }
18
+ ngAfterViewInit() {
19
+ this.checkMobile();
20
+ // Obtém a altura do header-menu após a view ser inicializada
21
+ const headerMenu = this.el.nativeElement.querySelector('[header-menu]');
22
+ if (headerMenu) {
23
+ this.headerHeight = headerMenu.offsetHeight;
24
+ }
25
+ }
26
+ ngOnInit() {
27
+ this.hasOffer = this.router.url.includes('offer');
28
+ }
29
+ onResize() {
30
+ this.checkMobile();
31
+ }
32
+ checkMobile() {
33
+ this.isMobile = window.innerWidth < 768; // 768px é o breakpoint padrão do Tailwind para md
34
+ if (!this.isMobile) {
35
+ this.isHeaderVisible = true; // Garante que fique visível em desktop
36
+ }
37
+ }
38
+ menu() {
39
+ this.openClose = !this.openClose;
40
+ }
41
+ receiveMessage(event) {
42
+ this.message = event;
43
+ }
44
+ onWindowScroll() {
45
+ if (!this.isMobile)
46
+ return;
47
+ const currentScrollPosition = window.pageYOffset || document.documentElement.scrollTop;
48
+ // Scroll DOWN - esconde o header
49
+ if (currentScrollPosition > this.lastScrollPosition &&
50
+ currentScrollPosition > 50) {
51
+ this.isHeaderVisible = false;
52
+ }
53
+ // Scroll UP - mostra o header
54
+ else if (currentScrollPosition < this.lastScrollPosition) {
55
+ this.isHeaderVisible = true;
56
+ }
57
+ this.lastScrollPosition = currentScrollPosition;
58
+ }
59
+ }
60
+ NavComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, deps: [{ token: i1.Router }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
61
+ NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavComponent, selector: "lib-nav", inputs: { changeNavColor: "changeNavColor" }, host: { listeners: { "window:resize": "onResize()", "window:scroll": "onWindowScroll()" } }, ngImport: i0, template: "<!-- Overlay -->\n<div\n *ngIf=\"openClose\"\n (click)=\"openClose = false\"\n class=\"fixed inset-0 bg-black bg-opacity-40 z-40 md:hidden\"\n></div>\n\n<!-- Navbar Container -->\n<div\n class=\"fixed top-0 left-0 right-0 z-50 shadow-none transition-transform duration-300 ease-out \"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n [style.backgroundColor]=\"\n changeNavColor ? 'var(--primary)' : 'var(--primary)'\n \"\n>\n <!-- Main Navbar -->\n <div class=\"w-full\">\n <div class=\"mx-auto px-2 h-16 flex items-center justify-between\">\n <!-- Left Content -->\n <div class=\"flex-1 flex justify-start\">\n <ng-content select=\"[left-content]\"></ng-content>\n </div>\n\n <!-- Center Content -->\n <div class=\"flex-1 flex justify-center\">\n <ng-content select=\"[central-content]\"></ng-content>\n </div>\n\n <!-- Right Content -->\n <div class=\"flex-1\" style=\"display: flex; justify-content: flex-end\">\n <ng-content select=\"[right-content]\"></ng-content>\n </div>\n </div>\n </div>\n\n <!-- Header Menu (Submenu) -->\n <div header-menu class=\"w-full hr-nav\">\n <ng-content select=\"[header-menu]\"></ng-content>\n </div>\n</div>\n", styles: [".navbar-ajust{background-color:var(--medium);padding:1em}.container-fluid{display:flex;justify-content:space-between;align-items:center}.navbar-left,.navbar-right{flex:1;display:flex;justify-content:flex-start}.navbar-right{justify-content:flex-end}.navbar-center{flex:2;display:flex;justify-content:center}:host{display:block}.-translate-y-full{transform:translateY(calc(-100% - 1px))}@media (max-width: 767px){.-translate-y-full{transform:translateY(calc(-100% - 1px))}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'lib-nav', template: "<!-- Overlay -->\n<div\n *ngIf=\"openClose\"\n (click)=\"openClose = false\"\n class=\"fixed inset-0 bg-black bg-opacity-40 z-40 md:hidden\"\n></div>\n\n<!-- Navbar Container -->\n<div\n class=\"fixed top-0 left-0 right-0 z-50 shadow-none transition-transform duration-300 ease-out \"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n [style.backgroundColor]=\"\n changeNavColor ? 'var(--primary)' : 'var(--primary)'\n \"\n>\n <!-- Main Navbar -->\n <div class=\"w-full\">\n <div class=\"mx-auto px-2 h-16 flex items-center justify-between\">\n <!-- Left Content -->\n <div class=\"flex-1 flex justify-start\">\n <ng-content select=\"[left-content]\"></ng-content>\n </div>\n\n <!-- Center Content -->\n <div class=\"flex-1 flex justify-center\">\n <ng-content select=\"[central-content]\"></ng-content>\n </div>\n\n <!-- Right Content -->\n <div class=\"flex-1\" style=\"display: flex; justify-content: flex-end\">\n <ng-content select=\"[right-content]\"></ng-content>\n </div>\n </div>\n </div>\n\n <!-- Header Menu (Submenu) -->\n <div header-menu class=\"w-full hr-nav\">\n <ng-content select=\"[header-menu]\"></ng-content>\n </div>\n</div>\n", styles: [".navbar-ajust{background-color:var(--medium);padding:1em}.container-fluid{display:flex;justify-content:space-between;align-items:center}.navbar-left,.navbar-right{flex:1;display:flex;justify-content:flex-start}.navbar-right{justify-content:flex-end}.navbar-center{flex:2;display:flex;justify-content:center}:host{display:block}.-translate-y-full{transform:translateY(calc(-100% - 1px))}@media (max-width: 767px){.-translate-y-full{transform:translateY(calc(-100% - 1px))}}\n"] }]
65
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { changeNavColor: [{
66
+ type: Input
67
+ }], onResize: [{
68
+ type: HostListener,
69
+ args: ['window:resize']
70
+ }], onWindowScroll: [{
71
+ type: HostListener,
72
+ args: ['window:scroll', []]
73
+ }] } });
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXZCLE1BQU0sT0FBTyxZQUFZO0lBYXZCLFlBQW9CLE1BQWMsRUFBVSxFQUFjO1FBQXRDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBWmpELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXpDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQix1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRW1DLENBQUM7SUFFOUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQiw2REFBNkQ7UUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsa0RBQWtEO1FBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsdUNBQXVDO1NBQ3JFO0lBQ0gsQ0FBQztJQUNNLElBQUk7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTNCLE1BQU0scUJBQXFCLEdBQ3pCLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFM0QsaUNBQWlDO1FBQ2pDLElBQ0UscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjtZQUMvQyxxQkFBcUIsR0FBRyxFQUFFLEVBQzFCO1lBQ0EsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFDRCw4QkFBOEI7YUFDekIsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUM7SUFDbEQsQ0FBQzs7eUdBcEVVLFlBQVk7NkZBQVosWUFBWSwwTENkekIsMHRDQXdDQTsyRkQxQmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTO3NIQUtWLGNBQWM7c0JBQXRCLEtBQUs7Z0JBNkJOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlO2dCQW9CN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXYuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjaGFuZ2VOYXZDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG9wZW5DbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBsYXN0U2Nyb2xsUG9zaXRpb24gPSAwO1xuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xuICBoZWFkZXJIZWlnaHQgPSAwO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIGhhc09mZmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGVja01vYmlsZSgpO1xuXG4gICAgLy8gT2J0w6ltIGEgYWx0dXJhIGRvIGhlYWRlci1tZW51IGFww7NzIGEgdmlldyBzZXIgaW5pY2lhbGl6YWRhXG4gICAgY29uc3QgaGVhZGVyTWVudSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbaGVhZGVyLW1lbnVdJyk7XG4gICAgaWYgKGhlYWRlck1lbnUpIHtcbiAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVhZGVyTWVudS5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNPZmZlciA9IHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnb2ZmZXInKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLmNoZWNrTW9iaWxlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTW9iaWxlKCkge1xuICAgIHRoaXMuaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODsgLy8gNzY4cHggw6kgbyBicmVha3BvaW50IHBhZHLDo28gZG8gVGFpbHdpbmQgcGFyYSBtZFxuICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSB0cnVlOyAvLyBHYXJhbnRlIHF1ZSBmaXF1ZSB2aXPDrXZlbCBlbSBkZXNrdG9wXG4gICAgfVxuICB9XG4gIHB1YmxpYyBtZW51KCkge1xuICAgIHRoaXMub3BlbkNsb3NlID0gIXRoaXMub3BlbkNsb3NlO1xuICB9XG5cbiAgcmVjZWl2ZU1lc3NhZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMubWVzc2FnZSA9IGV2ZW50O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcblxuICAgIC8vIFNjcm9sbCBET1dOIC0gZXNjb25kZSBvIGhlYWRlclxuICAgIGlmIChcbiAgICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+IHRoaXMubGFzdFNjcm9sbFBvc2l0aW9uICYmXG4gICAgICBjdXJyZW50U2Nyb2xsUG9zaXRpb24gPiA1MFxuICAgICkge1xuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gU2Nyb2xsIFVQIC0gbW9zdHJhIG8gaGVhZGVyXG4gICAgZWxzZSBpZiAoY3VycmVudFNjcm9sbFBvc2l0aW9uIDwgdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgIHRoaXMuaXNIZWFkZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmxhc3RTY3JvbGxQb3NpdGlvbiA9IGN1cnJlbnRTY3JvbGxQb3NpdGlvbjtcbiAgfVxufVxuIiwiPCEtLSBPdmVybGF5IC0tPlxuPGRpdlxuICAqbmdJZj1cIm9wZW5DbG9zZVwiXG4gIChjbGljayk9XCJvcGVuQ2xvc2UgPSBmYWxzZVwiXG4gIGNsYXNzPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjayBiZy1vcGFjaXR5LTQwIHotNDAgbWQ6aGlkZGVuXCJcbj48L2Rpdj5cblxuPCEtLSBOYXZiYXIgQ29udGFpbmVyIC0tPlxuPGRpdlxuICBjbGFzcz1cImZpeGVkIHRvcC0wIGxlZnQtMCByaWdodC0wIHotNTAgc2hhZG93LW5vbmUgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGVhc2Utb3V0IFwiXG4gIFtjbGFzcy4tdHJhbnNsYXRlLXktZnVsbF09XCIhaXNIZWFkZXJWaXNpYmxlXCJcbiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJcbiAgICBjaGFuZ2VOYXZDb2xvciA/ICd2YXIoLS1wcmltYXJ5KScgOiAndmFyKC0tcHJpbWFyeSknXG4gIFwiXG4+XG4gIDwhLS0gTWFpbiBOYXZiYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBweC0yIGgtMTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8IS0tIExlZnQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2VudGVyIENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NlbnRyYWwtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSaWdodCBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBIZWFkZXIgTWVudSAoU3VibWVudSkgLS0+XG4gIDxkaXYgaGVhZGVyLW1lbnUgY2xhc3M9XCJ3LWZ1bGwgaHItbmF2XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1tZW51XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -0,0 +1,22 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TuduComponentsComponent {
4
+ constructor() { }
5
+ ngOnInit() {
6
+ }
7
+ }
8
+ TuduComponentsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ TuduComponentsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: TuduComponentsComponent, selector: "lib-tudu-components", ngImport: i0, template: `
10
+ <p>
11
+ tudu-components works!sss
12
+ </p>
13
+ `, isInline: true });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsComponent, decorators: [{
15
+ type: Component,
16
+ args: [{ selector: 'lib-tudu-components', template: `
17
+ <p>
18
+ tudu-components works!sss
19
+ </p>
20
+ ` }]
21
+ }], ctorParameters: function () { return []; } });
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL3R1ZHUtY29tcG9uZW50cy5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFZbEQsTUFBTSxPQUFPLHVCQUF1QjtJQUVsQyxnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQzs7b0hBTFUsdUJBQXVCO3dHQUF2Qix1QkFBdUIsMkRBUnhCOzs7O0dBSVQ7MkZBSVUsdUJBQXVCO2tCQVZuQyxTQUFTOytCQUNFLHFCQUFxQixZQUNyQjs7OztHQUlUIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXR1ZHUtY29tcG9uZW50cycsXG4gIHRlbXBsYXRlOiBgXG4gICAgPHA+XG4gICAgICB0dWR1LWNvbXBvbmVudHMgd29ya3Mhc3NzXG4gICAgPC9wPlxuICBgLFxuICBzdHlsZXM6IFtcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBUdWR1Q29tcG9uZW50c0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG59XG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { TuduComponentsComponent } from './tudu-components.component';
3
+ import { CommonModule } from '@angular/common';
4
+ import { CardLayoutComponent } from '../lib/components/card-layout/card-layout.component';
5
+ import { NavComponent } from './components/nav/nav.component';
6
+ import { FallbackMessageComponent } from './components/fallback-message/fallback-message.component';
7
+ import * as i0 from "@angular/core";
8
+ export class TuduComponentsModule {
9
+ }
10
+ TuduComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ TuduComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent, FallbackMessageComponent], imports: [CommonModule], exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent, FallbackMessageComponent] });
12
+ TuduComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, imports: [CommonModule] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent, FallbackMessageComponent],
17
+ imports: [CommonModule],
18
+ exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent, FallbackMessageComponent],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDOztBQU9wRyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBSmhCLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSx3QkFBd0IsYUFDekYsWUFBWSxhQUNaLHVCQUF1QixFQUFFLG1CQUFtQixFQUFFLFlBQVksRUFBRSx3QkFBd0I7a0hBRW5GLG9CQUFvQixZQUhyQixZQUFZOzJGQUdYLG9CQUFvQjtrQkFMaEMsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxtQkFBbUIsRUFBRSxZQUFZLEVBQUUsd0JBQXdCLENBQUM7b0JBQ3BHLE9BQU8sRUFBRSxDQUFDLFlBQVksQ0FBQztvQkFDdkIsT0FBTyxFQUFFLENBQUMsdUJBQXVCLEVBQUUsbUJBQW1CLEVBQUUsWUFBWSxFQUFFLHdCQUF3QixDQUFDO2lCQUNoRyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUdWR1Q29tcG9uZW50c0NvbXBvbmVudCB9IGZyb20gJy4vdHVkdS1jb21wb25lbnRzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2FyZExheW91dENvbXBvbmVudCB9IGZyb20gJy4uL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmFsbGJhY2tNZXNzYWdlQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQnO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFtUdWR1Q29tcG9uZW50c0NvbXBvbmVudCwgQ2FyZExheW91dENvbXBvbmVudCwgTmF2Q29tcG9uZW50LCBGYWxsYmFja01lc3NhZ2VDb21wb25lbnRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZXhwb3J0czogW1R1ZHVDb21wb25lbnRzQ29tcG9uZW50LCBDYXJkTGF5b3V0Q29tcG9uZW50LCBOYXZDb21wb25lbnQsIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFR1ZHVDb21wb25lbnRzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,14 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ export class TuduComponentsService {
4
+ constructor() { }
5
+ }
6
+ TuduComponentsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
7
+ TuduComponentsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsService, providedIn: 'root' });
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsService, decorators: [{
9
+ type: Injectable,
10
+ args: [{
11
+ providedIn: 'root'
12
+ }]
13
+ }], ctorParameters: function () { return []; } });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi90dWR1LWNvbXBvbmVudHMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8scUJBQXFCO0lBRWhDLGdCQUFnQixDQUFDOztrSEFGTixxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZwQixNQUFNOzJGQUVQLHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFR1ZHVDb21wb25lbnRzU2VydmljZSB7XG5cbiAgY29uc3RydWN0b3IoKSB7IH1cbn1cbiJdfQ==
@@ -0,0 +1,11 @@
1
+ /*
2
+ * Public API Surface of tudu-components
3
+ */
4
+ export * from './lib/tudu-components.component';
5
+ export * from './lib/tudu-components.module'; // ← Se criou este módulo
6
+ export * from './lib/components/card-layout/card-layout.component';
7
+ export * from './lib/components/nav/nav.component';
8
+ export * from './lib/components/fallback-message/fallback-message.component';
9
+ export * from './lib/tudu-components.service';
10
+ // export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyxDQUFDLHlCQUF5QjtBQUV2RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLCtCQUErQixDQUFDO0FBQzlDLDZFQUE2RSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgdHVkdS1jb21wb25lbnRzXG4gKi9cbmV4cG9ydCAqIGZyb20gJy4vbGliL3R1ZHUtY29tcG9uZW50cy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLm1vZHVsZSc7IC8vIOKGkCBTZSBjcmlvdSBlc3RlIG3Ds2R1bG9cblxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9uYXYvbmF2LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLnNlcnZpY2UnO1xuLy8gZXhwb3J0ICogZnJvbSAnLi9saWIvY2FyZC1sYXlvdXQubW9kdWxlJzsgLy8g4oaQIE91IHNlIHVzb3UgQ2FyZExheW91dE1vZHVsZVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy90dWR1LWNvbXBvbmVudHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==