tudu-components 0.2.18 → 0.2.20

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,78 +1,48 @@
1
1
  import { Component, Input } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/router";
4
- import * as i2 from "@angular/common";
3
+ import * as i1 from "@angular/common";
5
4
  export class CardLayoutComponent {
6
- constructor(route) {
7
- this.route = route;
5
+ constructor() {
8
6
  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);
7
+ this.cardTemplateIndicator = 0;
8
+ this.hideHeader = false;
9
+ this.hideDescription = false;
34
10
  }
35
11
  get badgeStyles() {
36
12
  const status = this.statusPedido?.toLowerCase();
37
13
  switch (status) {
38
14
  case 'finalizado':
39
- return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave
15
+ return { backgroundColor: 'var(--status-success-bg)', color: 'var(--status-success)' };
40
16
  case 'concluido':
41
- return { backgroundColor: '#0096881c', color: '#009688' }; // teal
17
+ return { backgroundColor: 'var(--status-teal-bg)', color: 'var(--status-teal)' };
42
18
  case 'cancelado':
43
19
  case 'expirado':
44
- return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
20
+ return { backgroundColor: 'var(--status-danger-bg)', color: 'var(--status-danger)' };
45
21
  case 'publicado':
46
- return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave
22
+ return { backgroundColor: 'var(--status-info-bg)', color: 'var(--status-info)' };
47
23
  case 'recusado':
48
- return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro
24
+ return { backgroundColor: 'var(--status-danger-bg)', color: 'var(--status-danger)' };
49
25
  case 'em negociacao':
50
- return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave
26
+ return { backgroundColor: 'var(--status-warning-bg)', color: 'var(--status-warning)' };
51
27
  case 'pendente':
52
- return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro
28
+ return { backgroundColor: 'var(--status-pending-bg)', color: 'var(--status-pending)' };
53
29
  default:
54
- return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão
55
- }
56
- }
57
- ngOnDestroy() {
58
- if (this.statusInterval) {
59
- clearInterval(this.statusInterval);
30
+ return { backgroundColor: 'var(--status-neutral-bg)', color: 'var(--status-neutral)' };
60
31
  }
61
32
  }
62
- verDetalhes() {
63
- alert('Abrir detalhes do serviço...');
64
- }
65
33
  }
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 });
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"] }] });
34
+ CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
35
+ CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator", hideHeader: "hideHeader", hideDescription: "hideDescription" }, ngImport: i0, template: "<div\n class=\"service-card group rounded-2xl border border-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 *ngIf=\"!hideDescription\"\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;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
68
36
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
69
37
  type: Component,
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"] }]
71
- }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
38
+ 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 *ngIf=\"!hideDescription\"\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;} .status-badge {display: inline-flex; align-items: center; gap: 4px; font-weight: 600; font-size: 12px; padding: 4px 10px; border-radius: 25px; text-transform: capitalize; transition: all .3s ease; i {color: inherit !important;}} .filter-tag {background: var(--tag-bg, #f9fafb); border: 1px solid var(--primary); border-radius: 9999px; padding: .25rem .75rem; color: var(--primary); font-size: 12px;} .details-btn {cursor: pointer;} .price {font-weight: 600; color: var(--background-color);} .service-address {font-size: 13px; color: rgb(212,212,212) !important;} .icon-style {display: flex; justify-content: center; align-items: center; background-color: var(--primary) !important; width: 40px; height: 40px; font-size: 20px; border-radius: 10px;} .service-title {flex: 1; min-width: 0; display: block; font-weight: 600; font-size: 1.1rem; ::ng-deep > * {display: block !important; white-space: nowrap !important; overflow: hidden !important; text-overflow: ellipsis !important; width: 100%;}}}.prestador-photo{width:100%;height:100%;object-fit:cover;border-radius:50%}.budget-card-footer button{width:100%;border-radius:8px;font-weight:600;transition:.2s}.status-badge i.notification-pulse{animation:pulse 2s infinite;border-radius:50%}:host-context(.has-notification) .status-badge i{animation:pulse 2s infinite}.service-card-header{display:none}@media (min-width: 768px){.service-card-header{display:block}}.service-card-header.force-show{display:block}\n"] }]
39
+ }], propDecorators: { statusPedido: [{
72
40
  type: Input
73
41
  }], cardTemplateIndicator: [{
74
42
  type: Input
75
43
  }], hideHeader: [{
76
44
  type: Input
45
+ }], hideDescription: [{
46
+ type: Input
77
47
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFrQjlCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBakJ4QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFDeEUsZUFBVSxHQUFZLEtBQUssQ0FBQyxDQUFDLHFDQUFxQztRQUUzRSxTQUFJLEdBQWEsQ0FBQyxhQUFhLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXhELGtCQUFhLEdBQUc7WUFDZCxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFO1lBQzVELEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLElBQUksRUFBRSxjQUFjLEVBQUUsSUFBSSxFQUFFLFlBQVksRUFBRTtZQUNyRSxFQUFFLEtBQUssRUFBRSxrQkFBa0IsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDbEUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1NBQ25FLENBQUM7UUFFRixrQkFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFdEMsa0JBQWEsR0FBVyxHQUFHLENBQUM7UUFHMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMvQixJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDdEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxTQUFTLENBQUM7Z0JBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQzthQUNsRDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDZCxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxHQUFHLEVBQUU7WUFDckMsS0FBSyxHQUFHLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDO1lBQ2hELElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNqRCxDQUFDLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFFVCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0lBQ25FLENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhELFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGNBQWM7WUFDM0UsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLE9BQU87WUFDcEUsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtZQUM5RSxLQUFLLFdBQVc7Z0JBQ2QsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsYUFBYTtZQUMxRSxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsaUJBQWlCO1lBQzlFLEtBQUssZUFBZTtnQkFDbEIsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsZ0JBQWdCO1lBQzdFLEtBQUssVUFBVTtnQkFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxhQUFhO1lBQzFFO2dCQUNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGVBQWU7U0FDN0U7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN2QixhQUFhLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQztJQUN4QyxDQUFDOztnSEFyRVUsbUJBQW1CO29HQUFuQixtQkFBbUIsMktDUmhDLG9vRkErRUE7MkZEdkVhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7NkZBS2xCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1jYXJkLWxheW91dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYXJkLWxheW91dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgQ2FyZExheW91dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHN0YXR1c1BlZGlkbzogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGNhcmRUZW1wbGF0ZUluZGljYXRvcjogbnVtYmVyID0gMDsgLy8gMSBwYXJhIHNlcnZpw6dvLCAyIHBhcmEgY2FuZGlkYXR1cmFcbiAgQElucHV0KCkgaGlkZUhlYWRlcjogYm9vbGVhbiA9IGZhbHNlOyAvLyAxIHBhcmEgc2VydmnDp28sIDIgcGFyYSBjYW5kaWRhdHVyYVxuXG4gIHRhZ3M6IHN0cmluZ1tdID0gWydSZXNpZGVuY2lhbCcsICdVcmdlbnRlJywgJ0Vsw6l0cmljYSddO1xuXG4gIHN0YXR1c09wdGlvbnMgPSBbXG4gICAgeyBjbGFzczogJ3N0YXR1cy1hY3RpdmUnLCB0ZXh0OiAnQXRpdm8nLCBpY29uOiAnZmEtY2lyY2xlJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtcGVuZGluZycsIHRleHQ6ICdFbSBhbmRhbWVudG8nLCBpY29uOiAnZmEtc3Bpbm5lcicgfSxcbiAgICB7IGNsYXNzOiAnc3RhdHVzLWNvbXBsZXRlZCcsIHRleHQ6ICdDb25jbHXDrWRvJywgaWNvbjogJ2ZhLWNoZWNrJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtY2FuY2VsbGVkJywgdGV4dDogJ0NhbmNlbGFkbycsIGljb246ICdmYS10aW1lcycgfSxcbiAgXTtcblxuICBjdXJyZW50U3RhdHVzID0gdGhpcy5zdGF0dXNPcHRpb25zWzBdO1xuICBwcml2YXRlIHN0YXR1c0ludGVydmFsOiBhbnk7XG4gIGZsb3dJbmRpY2F0b3I6IHN0cmluZyA9ICcxJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucm91dGUudXJsLmluY2x1ZGVzKCdidWRnZXRzJykpIHtcbiAgICAgICAgdGhpcy5mbG93SW5kaWNhdG9yID0gJ2J1ZGdldHMnO1xuICAgICAgICBjb25zb2xlLmxvZygnYXNkYXNkYWRzYXNkYScsIHRoaXMuZmxvd0luZGljYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHRoaXMuc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1cyA9IHRoaXMuc3RhdHVzT3B0aW9uc1tpbmRleF07XG4gICAgfSwgMzAwMCk7XG5cbiAgICBjb25zb2xlLmxvZygnY2FyZFRlbXBsYXRlSW5kaWNhdG9yJywgdGhpcy5jYXJkVGVtcGxhdGVJbmRpY2F0b3IpO1xuICB9XG5cbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjNGNhZjUwMjAnLCBjb2xvcjogJyM0Y2FmNTAnIH07IC8vIHZlcmRlIHN1YXZlXG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA5Njg4MWMnLCBjb2xvcjogJyMwMDk2ODgnIH07IC8vIHRlYWxcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICBjYXNlICdleHBpcmFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyNmZjUyNTIxYycsIGNvbG9yOiAnI2ZmNTI1MicgfTsgLy8gdmVybWVsaG8gY2xhcm9cbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyMwMDk2ZmYxYycsIGNvbG9yOiAnIzI1YTVmZicgfTsgLy8gYXp1bCBzdWF2ZVxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjZmY1MjUyMWMnLCBjb2xvcjogJyNmZjUyNTInIH07IC8vIHZlcm1lbGhvIGNsYXJvXG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2ZmYWIyNTFmJywgY29sb3I6ICcjZmY5ODAwJyB9OyAvLyBsYXJhbmphIHN1YXZlXG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyM5YTFmYWQxYycsIGNvbG9yOiAnIzdlNTdjMicgfTsgLy8gcm94byBjbGFyb1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2UwZTBlMDFjJywgY29sb3I6ICcjNzU3NTc1JyB9OyAvLyBjaW56YSBwYWRyw6NvXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0dXNJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgdmVyRGV0YWxoZXMoKSB7XG4gICAgYWxlcnQoJ0FicmlyIGRldGFsaGVzIGRvIHNlcnZpw6dvLi4uJyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgZ3JvdXAgcm91bmRlZC0yeGwgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgYmctd2hpdGUgc2hhZG93LXNtIGhvdmVyOnNoYWRvdy1tZCB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItNSBvdmVyZmxvdy1oaWRkZW5cIlxuPlxuICA8ZGl2XG4gICAgW2NsYXNzLmZvcmNlLXNob3ddPVwiIWhpZGVIZWFkZXJcIlxuICAgIGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgZ2FwLTMgcC0zLjUgYm9yZGVyLWIgYm9yZGVyLXNsYXRlLTUwIGJnLXNsYXRlLTUwLzMwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJpY29uLXN0eWxlIGZsZXgtc2hyaW5rLTAgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWljb25dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZmxleC0xIG1pbi13LTBcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW4gZ2FwLTJcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidHJ1bmNhdGUgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTgwMCB0ZXh0LVsxNXB4XSBsZWFkaW5nLXRpZ2h0XCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLXRpdGxlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2RldGFpbHMtYnRuXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cInRydW5jYXRlIHRleHQtWzExcHhdIGZvbnQtbWVkaXVtIHRleHQtc2xhdGUtNDAwIG10LTAuNSB0cmFja2luZy13aWRlclwiXG4gICAgICA+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzZXJ2aWNlLWFkZHJlc3NdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJwLTRcIj5cbiAgICA8ZGl2ICpuZ0lmPVwiY2FyZFRlbXBsYXRlSW5kaWNhdG9yID09PSAxXCIgY2xhc3M9XCJtYi00XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIG1iLTNcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1iYWRnZVwiIFtuZ1N0eWxlXT1cImJhZGdlU3R5bGVzXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3N0YXR1cy1iYWRnZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ0ZXh0LXhzIHRleHQtZ3JheS01MCBmb250LXNlbWlib2xkIHB4LTIuNSBweS0xIHJvdW5kZWQtZnVsbCBiZy1ncmF5LTQwMC8xMCB0ZXh0LWdyYXktNTAwIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcmRlci1udW1iZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTEuNSBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpbHRlci10YWddXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInRleHQteHMgZm9udC1zZW1pYm9sZCB0ZXh0LXNsYXRlLTYwMCBtYi0zXCJcbiAgICAgICpuZ0lmPVwic3RhdHVzUGVkaWRvID09PSAnZmluYWxpemFkbydcIlxuICAgID5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb25jbHVzaW9uLWRhdGVdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cInRleHQtc2xhdGUtNzAwIHRleHQtc21cIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltpbmZvLXJvd11cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwibXQtNyBmb250LWJvbGQgdGV4dC1lbWVyYWxkLTYwMCB0ZXh0LWJhc2VcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltwcmljZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cIm10LTMgcC0zIGJnLXNsYXRlLTUwIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIHJvdW5kZWQteGxcIlxuICAgID5cbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNsYXRlLTUwMCB0ZXh0LXhzIGxlYWRpbmctcmVsYXhlZCBpdGFsaWNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2Rlc2NyaXB0aW9uXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicHgtNCBweS0zIGJnLXNsYXRlLTUwLzUwIGJvcmRlci10IGJvcmRlci1zbGF0ZS0xMDBcIj5cbiAgICA8ZGl2IGNsYXNzPVwidy1mdWxsXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWFpbi1idG5dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7QUFPakQsTUFBTSxPQUFPLG1CQUFtQjtJQUxoQztRQU1XLGlCQUFZLEdBQVcsRUFBRSxDQUFDO1FBQzFCLDBCQUFxQixHQUFXLENBQUMsQ0FBQztRQUNsQyxlQUFVLEdBQVksS0FBSyxDQUFDO1FBQzVCLG9CQUFlLEdBQVksS0FBSyxDQUFDO0tBeUIzQztJQXZCQyxJQUFJLFdBQVc7UUFDYixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxDQUFDO1FBRWhELFFBQVEsTUFBTSxFQUFFO1lBQ2QsS0FBSyxZQUFZO2dCQUNmLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7WUFDekYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxXQUFXLENBQUM7WUFDakIsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsdUJBQXVCLEVBQUUsS0FBSyxFQUFFLG9CQUFvQixFQUFFLENBQUM7WUFDbkYsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUseUJBQXlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQixFQUFFLENBQUM7WUFDdkYsS0FBSyxlQUFlO2dCQUNsQixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGLEtBQUssVUFBVTtnQkFDYixPQUFPLEVBQUUsZUFBZSxFQUFFLDBCQUEwQixFQUFFLEtBQUssRUFBRSx1QkFBdUIsRUFBRSxDQUFDO1lBQ3pGO2dCQUNFLE9BQU8sRUFBRSxlQUFlLEVBQUUsMEJBQTBCLEVBQUUsS0FBSyxFQUFFLHVCQUF1QixFQUFFLENBQUM7U0FDMUY7SUFDSCxDQUFDOztnSEE1QlUsbUJBQW1CO29HQUFuQixtQkFBbUIsK01DUGhDLHNxRkFnRkE7MkZEekVhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxpQkFBaUI7OEJBS2xCLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0cscUJBQXFCO3NCQUE3QixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csZUFBZTtzQkFBdkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNhcmQtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1sYXlvdXQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkTGF5b3V0Q29tcG9uZW50IHtcbiAgQElucHV0KCkgc3RhdHVzUGVkaWRvOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY2FyZFRlbXBsYXRlSW5kaWNhdG9yOiBudW1iZXIgPSAwO1xuICBASW5wdXQoKSBoaWRlSGVhZGVyOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGhpZGVEZXNjcmlwdGlvbjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIGdldCBiYWRnZVN0eWxlcygpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCBzdGF0dXMgPSB0aGlzLnN0YXR1c1BlZGlkbz8udG9Mb3dlckNhc2UoKTtcblxuICAgIHN3aXRjaCAoc3RhdHVzKSB7XG4gICAgICBjYXNlICdmaW5hbGl6YWRvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLXN1Y2Nlc3MtYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtc3VjY2VzcyknIH07XG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtdGVhbC1iZyknLCBjb2xvcjogJ3ZhcigtLXN0YXR1cy10ZWFsKScgfTtcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICBjYXNlICdleHBpcmFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1kYW5nZXItYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyKScgfTtcbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1pbmZvLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLWluZm8pJyB9O1xuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS1zdGF0dXMtZGFuZ2VyLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLWRhbmdlciknIH07XG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLXdhcm5pbmctYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtd2FybmluZyknIH07XG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXN0YXR1cy1wZW5kaW5nLWJnKScsIGNvbG9yOiAndmFyKC0tc3RhdHVzLXBlbmRpbmcpJyB9O1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tc3RhdHVzLW5ldXRyYWwtYmcpJywgY29sb3I6ICd2YXIoLS1zdGF0dXMtbmV1dHJhbCknIH07XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2XG4gIGNsYXNzPVwic2VydmljZS1jYXJkIGdyb3VwIHJvdW5kZWQtMnhsIGJvcmRlciBib3JkZXItc2xhdGUtMTAwIGJnLXdoaXRlIHNoYWRvdy1zbSBob3ZlcjpzaGFkb3ctbWQgdHJhbnNpdGlvbi1hbGwgZHVyYXRpb24tMzAwIHJlbGF0aXZlIG1iLTUgb3ZlcmZsb3ctaGlkZGVuXCJcbj5cbiAgPGRpdlxuICAgIFtjbGFzcy5mb3JjZS1zaG93XT1cIiFoaWRlSGVhZGVyXCJcbiAgICBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGdhcC0zIHAtMy41IGJvcmRlci1iIGJvcmRlci1zbGF0ZS01MCBiZy1zbGF0ZS01MC8zMFwiXG4gID5cbiAgICA8ZGl2IGNsYXNzPVwiaWNvbi1zdHlsZSBmbGV4LXNocmluay0wIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktY2VudGVyXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS1pY29uXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGZsZXgtMSBtaW4tdy0wXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuIGdhcC0yXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInRydW5jYXRlIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS04MDAgdGV4dC1bMTVweF0gbGVhZGluZy10aWdodFwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS10aXRsZV1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1zaHJpbmstMFwiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXRhaWxzLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDxkaXZcbiAgICAgICAgY2xhc3M9XCJ0cnVuY2F0ZSB0ZXh0LVsxMXB4XSBmb250LW1lZGl1bSB0ZXh0LXNsYXRlLTQwMCBtdC0wLjUgdHJhY2tpbmctd2lkZXJcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc2VydmljZS1hZGRyZXNzXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwicC00XCI+XG4gICAgPGRpdiAqbmdJZj1cImNhcmRUZW1wbGF0ZUluZGljYXRvciA9PT0gMVwiIGNsYXNzPVwibWItNFwiPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBtYi0zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJzdGF0dXMtYmFkZ2VcIiBbbmdTdHlsZV09XCJiYWRnZVN0eWxlc1wiPlxuICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltzdGF0dXMtYmFkZ2VdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAgZm9udC1zZW1pYm9sZCBweC0yLjUgcHktMSByb3VuZGVkLWZ1bGwgYmctZ3JheS00MDAvMTAgdGV4dC1ncmF5LTUwMCBmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWNlbnRlclwiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbb3JkZXItbnVtYmVyXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC13cmFwIGdhcC0xLjUgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltmaWx0ZXItdGFnXVwiPjwvbmctY29udGVudD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJ0ZXh0LXhzIGZvbnQtc2VtaWJvbGQgdGV4dC1zbGF0ZS02MDAgbWItM1wiXG4gICAgICAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nXCJcbiAgICA+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbY29uY2x1c2lvbi1kYXRlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXNsYXRlLTcwMCB0ZXh0LXNtXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbaW5mby1yb3ddXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cIm10LTcgZm9udC1ib2xkIHRleHQtZW1lcmFsZC02MDAgdGV4dC1iYXNlXCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcHJpY2VdXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nSWY9XCIhaGlkZURlc2NyaXB0aW9uXCJcbiAgICAgIGNsYXNzPVwibXQtMyBwLTMgYmctc2xhdGUtNTAgYm9yZGVyIGJvcmRlci1zbGF0ZS0xMDAgcm91bmRlZC14bFwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cInRleHQtc2xhdGUtNTAwIHRleHQteHMgbGVhZGluZy1yZWxheGVkIGl0YWxpY1wiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbZGVzY3JpcHRpb25dXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJweC00IHB5LTMgYmctc2xhdGUtNTAvNTAgYm9yZGVyLXQgYm9yZGVyLXNsYXRlLTEwMFwiPlxuICAgIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIlttYWluLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
@@ -0,0 +1,78 @@
1
+ import { Component, EventEmitter, Input, Output, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ export class PopupComponent {
5
+ constructor() {
6
+ this.isOpen = false;
7
+ this.type = 'info';
8
+ this.title = '';
9
+ this.message = '';
10
+ this.duration = 4000;
11
+ this.closed = new EventEmitter();
12
+ this.isClosing = false;
13
+ }
14
+ // Getters para as classes - Evita erro de parser no HTML
15
+ get barColor() {
16
+ const colors = {
17
+ success: 'bg-green-500',
18
+ error: 'bg-red-500',
19
+ warning: 'bg-amber-500',
20
+ info: 'bg-blue-500',
21
+ };
22
+ return colors[this.type] || 'bg-blue-500';
23
+ }
24
+ get iconClass() {
25
+ const icons = {
26
+ success: 'fa-check-circle text-green-500',
27
+ error: 'fa-times-circle text-red-500',
28
+ warning: 'fa-exclamation-triangle text-amber-500',
29
+ info: 'fa-info-circle text-blue-500',
30
+ };
31
+ return `fas ${icons[this.type]}`;
32
+ }
33
+ get animationClass() {
34
+ return this.isClosing
35
+ ? 'animate-slide-out-right'
36
+ : 'animate-slide-in-right';
37
+ }
38
+ ngOnChanges(changes) {
39
+ if (changes['isOpen']?.currentValue === true) {
40
+ this.isClosing = false;
41
+ this.startTimer();
42
+ }
43
+ }
44
+ startTimer() {
45
+ if (this.timer)
46
+ clearTimeout(this.timer);
47
+ this.timer = setTimeout(() => this.closePopup(), this.duration);
48
+ }
49
+ closePopup() {
50
+ if (this.isClosing)
51
+ return;
52
+ this.isClosing = true;
53
+ setTimeout(() => {
54
+ this.isOpen = false;
55
+ this.isClosing = false;
56
+ this.closed.emit();
57
+ }, 400);
58
+ }
59
+ }
60
+ PopupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
61
+ PopupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: PopupComponent, selector: "lib-popup", inputs: { isOpen: "isOpen", type: "type", title: "title", message: "message", duration: "duration" }, outputs: { closed: "closed" }, usesOnChanges: true, ngImport: i0, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\n <div\n [class]=\"\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\n animationClass\n \"\n >\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\n\n <div class=\"flex-shrink-0 mr-3\">\n <i [class]=\"iconClass + ' text-xl'\"></i>\n </div>\n\n <div class=\"flex-grow pr-4 text-left\">\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\n </div>\n\n <button\n (click)=\"closePopup()\"\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\n >\n <i class=\"fas fa-times text-sm\"></i>\n </button>\n </div>\n</div>\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: PopupComponent, decorators: [{
63
+ type: Component,
64
+ args: [{ selector: 'lib-popup', standalone: false, template: "<div *ngIf=\"isOpen\" class=\"fixed top-6 z-[10000] w-full max-w-[320px]\">\n <div\n [class]=\"\n 'bg-white border border-gray-100 rounded-2xl shadow-2xl flex p-4 overflow-hidden relative ' +\n animationClass\n \"\n >\n <div [class]=\"'absolute left-0 top-0 bottom-0 w-1.5 ' + barColor\"></div>\n\n <div class=\"flex-shrink-0 mr-3\">\n <i [class]=\"iconClass + ' text-xl'\"></i>\n </div>\n\n <div class=\"flex-grow pr-4 text-left\">\n <h4 class=\"text-sm font-bold text-gray-900 leading-tight\">{{ title }}</h4>\n <p class=\"text-[11px] text-gray-500 mt-1 leading-snug\">{{ message }}</p>\n </div>\n\n <button\n (click)=\"closePopup()\"\n class=\"flex-shrink-0 text-gray-300 hover:text-gray-500 transition-colors\"\n >\n <i class=\"fas fa-times text-sm\"></i>\n </button>\n </div>\n</div>\n", styles: [".animate-slide-in-right{animation:slideIn .4s cubic-bezier(.25,1,.5,1) forwards}.animate-slide-out-right{animation:slideOut .4s cubic-bezier(.5,0,.75,0) forwards}@keyframes slideIn{0%{opacity:0;transform:translate(100%)}to{opacity:1;transform:translate(0)}}@keyframes slideOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(100%)}}\n"] }]
65
+ }], propDecorators: { isOpen: [{
66
+ type: Input
67
+ }], type: [{
68
+ type: Input
69
+ }], title: [{
70
+ type: Input
71
+ }], message: [{
72
+ type: Input
73
+ }], duration: [{
74
+ type: Input
75
+ }], closed: [{
76
+ type: Output
77
+ }] } });
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9wb3B1cC9wb3B1cC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL3BvcHVwL3BvcHVwLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFFTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7OztBQVV2QixNQUFNLE9BQU8sY0FBYztJQU4zQjtRQU9XLFdBQU0sR0FBRyxLQUFLLENBQUM7UUFDZixTQUFJLEdBQWMsTUFBTSxDQUFDO1FBQ3pCLFVBQUssR0FBRyxFQUFFLENBQUM7UUFDWCxZQUFPLEdBQUcsRUFBRSxDQUFDO1FBQ2IsYUFBUSxHQUFHLElBQUksQ0FBQztRQUVmLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBRTVDLGNBQVMsR0FBRyxLQUFLLENBQUM7S0FtRG5CO0lBaERDLHlEQUF5RDtJQUN6RCxJQUFJLFFBQVE7UUFDVixNQUFNLE1BQU0sR0FBRztZQUNiLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLEtBQUssRUFBRSxZQUFZO1lBQ25CLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLElBQUksRUFBRSxhQUFhO1NBQ3BCLENBQUM7UUFDRixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksYUFBYSxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxNQUFNLEtBQUssR0FBRztZQUNaLE9BQU8sRUFBRSxnQ0FBZ0M7WUFDekMsS0FBSyxFQUFFLDhCQUE4QjtZQUNyQyxPQUFPLEVBQUUsd0NBQXdDO1lBQ2pELElBQUksRUFBRSw4QkFBOEI7U0FDckMsQ0FBQztRQUNGLE9BQU8sT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDbkMsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxTQUFTO1lBQ25CLENBQUMsQ0FBQyx5QkFBeUI7WUFDM0IsQ0FBQyxDQUFDLHdCQUF3QixDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUUsWUFBWSxLQUFLLElBQUksRUFBRTtZQUM1QyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7SUFDSCxDQUFDO0lBRU8sVUFBVTtRQUNoQixJQUFJLElBQUksQ0FBQyxLQUFLO1lBQUUsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6QyxJQUFJLENBQUMsS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUFFLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFFRCxVQUFVO1FBQ1IsSUFBSSxJQUFJLENBQUMsU0FBUztZQUFFLE9BQU87UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7UUFDdEIsVUFBVSxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1lBQ3BCLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO0lBQ1YsQ0FBQzs7MkdBM0RVLGNBQWM7K0ZBQWQsY0FBYywyTUNqQjNCLGkyQkEwQkE7MkZEVGEsY0FBYztrQkFOMUIsU0FBUzsrQkFDRSxXQUFXLGNBQ1QsS0FBSzs4QkFLUixNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkFFSSxNQUFNO3NCQUFmLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUG9wdXBUeXBlID0gJ3N1Y2Nlc3MnIHwgJ2Vycm9yJyB8ICd3YXJuaW5nJyB8ICdpbmZvJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLXBvcHVwJyxcbiAgc3RhbmRhbG9uZTogZmFsc2UsXG4gIHRlbXBsYXRlVXJsOiAnLi9wb3B1cC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BvcHVwLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgUG9wdXBDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xuICBASW5wdXQoKSBpc09wZW4gPSBmYWxzZTtcbiAgQElucHV0KCkgdHlwZTogUG9wdXBUeXBlID0gJ2luZm8nO1xuICBASW5wdXQoKSB0aXRsZSA9ICcnO1xuICBASW5wdXQoKSBtZXNzYWdlID0gJyc7XG4gIEBJbnB1dCgpIGR1cmF0aW9uID0gNDAwMDtcblxuICBAT3V0cHV0KCkgY2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG4gIGlzQ2xvc2luZyA9IGZhbHNlO1xuICBwcml2YXRlIHRpbWVyOiBhbnk7XG5cbiAgLy8gR2V0dGVycyBwYXJhIGFzIGNsYXNzZXMgLSBFdml0YSBlcnJvIGRlIHBhcnNlciBubyBIVE1MXG4gIGdldCBiYXJDb2xvcigpOiBzdHJpbmcge1xuICAgIGNvbnN0IGNvbG9ycyA9IHtcbiAgICAgIHN1Y2Nlc3M6ICdiZy1ncmVlbi01MDAnLFxuICAgICAgZXJyb3I6ICdiZy1yZWQtNTAwJyxcbiAgICAgIHdhcm5pbmc6ICdiZy1hbWJlci01MDAnLFxuICAgICAgaW5mbzogJ2JnLWJsdWUtNTAwJyxcbiAgICB9O1xuICAgIHJldHVybiBjb2xvcnNbdGhpcy50eXBlXSB8fCAnYmctYmx1ZS01MDAnO1xuICB9XG5cbiAgZ2V0IGljb25DbGFzcygpOiBzdHJpbmcge1xuICAgIGNvbnN0IGljb25zID0ge1xuICAgICAgc3VjY2VzczogJ2ZhLWNoZWNrLWNpcmNsZSB0ZXh0LWdyZWVuLTUwMCcsXG4gICAgICBlcnJvcjogJ2ZhLXRpbWVzLWNpcmNsZSB0ZXh0LXJlZC01MDAnLFxuICAgICAgd2FybmluZzogJ2ZhLWV4Y2xhbWF0aW9uLXRyaWFuZ2xlIHRleHQtYW1iZXItNTAwJyxcbiAgICAgIGluZm86ICdmYS1pbmZvLWNpcmNsZSB0ZXh0LWJsdWUtNTAwJyxcbiAgICB9O1xuICAgIHJldHVybiBgZmFzICR7aWNvbnNbdGhpcy50eXBlXX1gO1xuICB9XG5cbiAgZ2V0IGFuaW1hdGlvbkNsYXNzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuaXNDbG9zaW5nXG4gICAgICA/ICdhbmltYXRlLXNsaWRlLW91dC1yaWdodCdcbiAgICAgIDogJ2FuaW1hdGUtc2xpZGUtaW4tcmlnaHQnO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzWydpc09wZW4nXT8uY3VycmVudFZhbHVlID09PSB0cnVlKSB7XG4gICAgICB0aGlzLmlzQ2xvc2luZyA9IGZhbHNlO1xuICAgICAgdGhpcy5zdGFydFRpbWVyKCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzdGFydFRpbWVyKCkge1xuICAgIGlmICh0aGlzLnRpbWVyKSBjbGVhclRpbWVvdXQodGhpcy50aW1lcik7XG4gICAgdGhpcy50aW1lciA9IHNldFRpbWVvdXQoKCkgPT4gdGhpcy5jbG9zZVBvcHVwKCksIHRoaXMuZHVyYXRpb24pO1xuICB9XG5cbiAgY2xvc2VQb3B1cCgpIHtcbiAgICBpZiAodGhpcy5pc0Nsb3NpbmcpIHJldHVybjtcbiAgICB0aGlzLmlzQ2xvc2luZyA9IHRydWU7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmlzT3BlbiA9IGZhbHNlO1xuICAgICAgdGhpcy5pc0Nsb3NpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuY2xvc2VkLmVtaXQoKTtcbiAgICB9LCA0MDApO1xuICB9XG59XG4iLCI8ZGl2ICpuZ0lmPVwiaXNPcGVuXCIgY2xhc3M9XCJmaXhlZCB0b3AtNiB6LVsxMDAwMF0gdy1mdWxsIG1heC13LVszMjBweF1cIj5cbiAgPGRpdlxuICAgIFtjbGFzc109XCJcbiAgICAgICdiZy13aGl0ZSBib3JkZXIgYm9yZGVyLWdyYXktMTAwIHJvdW5kZWQtMnhsIHNoYWRvdy0yeGwgZmxleCBwLTQgb3ZlcmZsb3ctaGlkZGVuIHJlbGF0aXZlICcgK1xuICAgICAgYW5pbWF0aW9uQ2xhc3NcbiAgICBcIlxuICA+XG4gICAgPGRpdiBbY2xhc3NdPVwiJ2Fic29sdXRlIGxlZnQtMCB0b3AtMCBib3R0b20tMCB3LTEuNSAnICsgYmFyQ29sb3JcIj48L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJmbGV4LXNocmluay0wIG1yLTNcIj5cbiAgICAgIDxpIFtjbGFzc109XCJpY29uQ2xhc3MgKyAnIHRleHQteGwnXCI+PC9pPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgtZ3JvdyBwci00IHRleHQtbGVmdFwiPlxuICAgICAgPGg0IGNsYXNzPVwidGV4dC1zbSBmb250LWJvbGQgdGV4dC1ncmF5LTkwMCBsZWFkaW5nLXRpZ2h0XCI+e3sgdGl0bGUgfX08L2g0PlxuICAgICAgPHAgY2xhc3M9XCJ0ZXh0LVsxMXB4XSB0ZXh0LWdyYXktNTAwIG10LTEgbGVhZGluZy1zbnVnXCI+e3sgbWVzc2FnZSB9fTwvcD5cbiAgICA8L2Rpdj5cblxuICAgIDxidXR0b25cbiAgICAgIChjbGljayk9XCJjbG9zZVBvcHVwKClcIlxuICAgICAgY2xhc3M9XCJmbGV4LXNocmluay0wIHRleHQtZ3JheS0zMDAgaG92ZXI6dGV4dC1ncmF5LTUwMCB0cmFuc2l0aW9uLWNvbG9yc1wiXG4gICAgPlxuICAgICAgPGkgY2xhc3M9XCJmYXMgZmEtdGltZXMgdGV4dC1zbVwiPjwvaT5cbiAgICA8L2J1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -5,6 +5,7 @@ import { CustomModalComponent } from './components/custom-modal/custom-modal.com
5
5
  import { FallbackMessageComponent } from './components/fallback-message/fallback-message.component';
6
6
  import { NavComponent } from './components/nav/nav.component';
7
7
  import { TuduComponentsComponent } from './tudu-components.component';
8
+ import { PopupComponent } from '../public-api';
8
9
  import * as i0 from "@angular/core";
9
10
  export class TuduComponentsModule {
10
11
  }
@@ -13,11 +14,13 @@ TuduComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", ve
13
14
  CardLayoutComponent,
14
15
  NavComponent,
15
16
  FallbackMessageComponent,
16
- CustomModalComponent], imports: [CommonModule], exports: [TuduComponentsComponent,
17
+ CustomModalComponent,
18
+ PopupComponent], imports: [CommonModule], exports: [TuduComponentsComponent,
17
19
  CardLayoutComponent,
18
20
  NavComponent,
19
21
  FallbackMessageComponent,
20
- CustomModalComponent] });
22
+ CustomModalComponent,
23
+ PopupComponent] });
21
24
  TuduComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, imports: [CommonModule] });
22
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: TuduComponentsModule, decorators: [{
23
26
  type: NgModule,
@@ -28,6 +31,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
28
31
  NavComponent,
29
32
  FallbackMessageComponent,
30
33
  CustomModalComponent,
34
+ PopupComponent,
31
35
  ],
32
36
  imports: [CommonModule],
33
37
  exports: [
@@ -36,7 +40,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
36
40
  NavComponent,
37
41
  FallbackMessageComponent,
38
42
  CustomModalComponent,
43
+ PopupComponent,
39
44
  ],
40
45
  }]
41
46
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDOztBQW1CdEUsTUFBTSxPQUFPLG9CQUFvQjs7aUhBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9CLGlCQWY3Qix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsb0JBQW9CLGFBRVosWUFBWSxhQUVwQix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsb0JBQW9CO2tIQUdYLG9CQUFvQixZQVRyQixZQUFZOzJGQVNYLG9CQUFvQjtrQkFqQmhDLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFO3dCQUNaLHVCQUF1Qjt3QkFDdkIsbUJBQW1CO3dCQUNuQixZQUFZO3dCQUNaLHdCQUF3Qjt3QkFDeEIsb0JBQW9CO3FCQUNyQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLG9CQUFvQjtxQkFDckI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDYXJkTGF5b3V0Q29tcG9uZW50IH0gZnJvbSAnLi4vbGliL2NvbXBvbmVudHMvY2FyZC1sYXlvdXQvY2FyZC1sYXlvdXQuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ3VzdG9tTW9kYWxDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY3VzdG9tLW1vZGFsL2N1c3RvbS1tb2RhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGYWxsYmFja01lc3NhZ2VDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvZmFsbGJhY2stbWVzc2FnZS9mYWxsYmFjay1tZXNzYWdlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9uYXYvbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFR1ZHVDb21wb25lbnRzQ29tcG9uZW50IH0gZnJvbSAnLi90dWR1LWNvbXBvbmVudHMuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBUdWR1Q29tcG9uZW50c0NvbXBvbmVudCxcclxuICAgIENhcmRMYXlvdXRDb21wb25lbnQsXHJcbiAgICBOYXZDb21wb25lbnQsXHJcbiAgICBGYWxsYmFja01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBDdXN0b21Nb2RhbENvbXBvbmVudCxcclxuICBdLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGVdLFxyXG4gIGV4cG9ydHM6IFtcclxuICAgIFR1ZHVDb21wb25lbnRzQ29tcG9uZW50LFxyXG4gICAgQ2FyZExheW91dENvbXBvbmVudCxcclxuICAgIE5hdkNvbXBvbmVudCxcclxuICAgIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIEN1c3RvbU1vZGFsQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUdWR1Q29tcG9uZW50c01vZHVsZSB7fVxyXG4iXX0=
47
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHVkdS1jb21wb25lbnRzLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scURBQXFELENBQUM7QUFDMUYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDeEYsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sMERBQTBELENBQUM7QUFDcEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdDQUFnQyxDQUFDO0FBQzlELE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBcUIvQyxNQUFNLE9BQU8sb0JBQW9COztpSEFBcEIsb0JBQW9CO2tIQUFwQixvQkFBb0IsaUJBakI3Qix1QkFBdUI7UUFDdkIsbUJBQW1CO1FBQ25CLFlBQVk7UUFDWix3QkFBd0I7UUFDeEIsb0JBQW9CO1FBQ3BCLGNBQWMsYUFFTixZQUFZLGFBRXBCLHVCQUF1QjtRQUN2QixtQkFBbUI7UUFDbkIsWUFBWTtRQUNaLHdCQUF3QjtRQUN4QixvQkFBb0I7UUFDcEIsY0FBYztrSEFHTCxvQkFBb0IsWUFWckIsWUFBWTsyRkFVWCxvQkFBb0I7a0JBbkJoQyxRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWix1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsY0FBYztxQkFDZjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7b0JBQ3ZCLE9BQU8sRUFBRTt3QkFDUCx1QkFBdUI7d0JBQ3ZCLG1CQUFtQjt3QkFDbkIsWUFBWTt3QkFDWix3QkFBd0I7d0JBQ3hCLG9CQUFvQjt3QkFDcEIsY0FBYztxQkFDZjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENhcmRMYXlvdXRDb21wb25lbnQgfSBmcm9tICcuLi9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDdXN0b21Nb2RhbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9jdXN0b20tbW9kYWwvY3VzdG9tLW1vZGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9mYWxsYmFjay1tZXNzYWdlL2ZhbGxiYWNrLW1lc3NhZ2UuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVHVkdUNvbXBvbmVudHNDb21wb25lbnQgfSBmcm9tICcuL3R1ZHUtY29tcG9uZW50cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBQb3B1cENvbXBvbmVudCB9IGZyb20gJy4uL3B1YmxpYy1hcGknO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICBkZWNsYXJhdGlvbnM6IFtcclxuICAgIFR1ZHVDb21wb25lbnRzQ29tcG9uZW50LFxyXG4gICAgQ2FyZExheW91dENvbXBvbmVudCxcclxuICAgIE5hdkNvbXBvbmVudCxcclxuICAgIEZhbGxiYWNrTWVzc2FnZUNvbXBvbmVudCxcclxuICAgIEN1c3RvbU1vZGFsQ29tcG9uZW50LFxyXG4gICAgUG9wdXBDb21wb25lbnQsXHJcbiAgXSxcclxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBUdWR1Q29tcG9uZW50c0NvbXBvbmVudCxcclxuICAgIENhcmRMYXlvdXRDb21wb25lbnQsXHJcbiAgICBOYXZDb21wb25lbnQsXHJcbiAgICBGYWxsYmFja01lc3NhZ2VDb21wb25lbnQsXHJcbiAgICBDdXN0b21Nb2RhbENvbXBvbmVudCxcclxuICAgIFBvcHVwQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUdWR1Q29tcG9uZW50c01vZHVsZSB7fVxyXG4iXX0=
@@ -1,12 +1,15 @@
1
1
  /*
2
2
  * Public API Surface of tudu-components
3
3
  */
4
+ // 1. Primeiro as bases e services
5
+ export * from './lib/tudu-components.service';
4
6
  export * from './lib/tudu-components.component';
5
- export * from './lib/tudu-components.module'; // Se criou este módulo
7
+ // 2. Depois os componentes individuais
6
8
  export * from './lib/components/card-layout/card-layout.component';
7
9
  export * from './lib/components/nav/nav.component';
8
10
  export * from './lib/components/fallback-message/fallback-message.component';
9
11
  export * from './lib/components/custom-modal/custom-modal.component';
10
- export * from './lib/tudu-components.service';
11
- // export * from './lib/card-layout.module'; // Ou se usou CardLayoutModule
12
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyxDQUFDLHlCQUF5QjtBQUV2RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsb0NBQW9DLENBQUM7QUFDbkQsY0FBYyw4REFBOEQsQ0FBQztBQUM3RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsK0JBQStCLENBQUM7QUFDOUMsNkVBQTZFIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIHR1ZHUtY29tcG9uZW50c1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R1ZHUtY29tcG9uZW50cy5tb2R1bGUnOyAvLyDihpAgU2UgY3Jpb3UgZXN0ZSBtw7NkdWxvXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2ZhbGxiYWNrLW1lc3NhZ2UvZmFsbGJhY2stbWVzc2FnZS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL2N1c3RvbS1tb2RhbC9jdXN0b20tbW9kYWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG4vLyBleHBvcnQgKiBmcm9tICcuL2xpYi9jYXJkLWxheW91dC5tb2R1bGUnOyAvLyDihpAgT3Ugc2UgdXNvdSBDYXJkTGF5b3V0TW9kdWxlXHJcbiJdfQ==
12
+ export * from './lib/components/popup/popup.component'; // ✅ Classe do popup pronta aqui
13
+ // 3. POR ÚLTIMO o módulo que declara todo mundo
14
+ export * from './lib/tudu-components.module';
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGtDQUFrQztBQUNsQyxjQUFjLCtCQUErQixDQUFDO0FBQzlDLGNBQWMsaUNBQWlDLENBQUM7QUFFaEQsdUNBQXVDO0FBQ3ZDLGNBQWMsb0RBQW9ELENBQUM7QUFDbkUsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLDhEQUE4RCxDQUFDO0FBQzdFLGNBQWMsc0RBQXNELENBQUM7QUFDckUsY0FBYyx3Q0FBd0MsQ0FBQyxDQUFDLGdDQUFnQztBQUV4RixnREFBZ0Q7QUFDaEQsY0FBYyw4QkFBOEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiB0dWR1LWNvbXBvbmVudHNcclxuICovXHJcblxyXG4vLyAxLiBQcmltZWlybyBhcyBiYXNlcyBlIHNlcnZpY2VzXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3R1ZHUtY29tcG9uZW50cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLmNvbXBvbmVudCc7XHJcblxyXG4vLyAyLiBEZXBvaXMgb3MgY29tcG9uZW50ZXMgaW5kaXZpZHVhaXNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9mYWxsYmFjay1tZXNzYWdlL2ZhbGxiYWNrLW1lc3NhZ2UuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvY29tcG9uZW50cy9jdXN0b20tbW9kYWwvY3VzdG9tLW1vZGFsLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NvbXBvbmVudHMvcG9wdXAvcG9wdXAuY29tcG9uZW50JzsgLy8g4pyFIENsYXNzZSBkbyBwb3B1cCBwcm9udGEgYXF1aVxyXG5cclxuLy8gMy4gUE9SIMOaTFRJTU8gbyBtw7NkdWxvIHF1ZSBkZWNsYXJhIHRvZG8gbXVuZG9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdHVkdS1jb21wb25lbnRzLm1vZHVsZSc7XHJcbiJdfQ==