tudu-components 0.0.2 → 0.2.1

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.
@@ -7,6 +7,7 @@ export class CardLayoutComponent {
7
7
  this.route = route;
8
8
  this.statusPedido = '';
9
9
  this.cardTemplateIndicator = 0; // 1 para serviço, 2 para candidatura
10
+ this.hideHeader = false; // 1 para serviço, 2 para candidatura
10
11
  this.tags = ['Residencial', 'Urgente', 'Elétrica'];
11
12
  this.statusOptions = [
12
13
  { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },
@@ -62,13 +63,15 @@ export class CardLayoutComponent {
62
63
  }
63
64
  }
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 });
65
- CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator" }, 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=\"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}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
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"] }] });
66
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
67
68
  type: Component,
68
- 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=\"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}\n"] }]
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"] }]
69
70
  }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
70
71
  type: Input
71
72
  }], cardTemplateIndicator: [{
72
73
  type: Input
74
+ }], hideHeader: [{
75
+ type: Input
73
76
  }] } });
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1sYXlvdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVkdS1jb21wb25lbnRzL3NyYy9saWIvY29tcG9uZW50cy9jYXJkLWxheW91dC9jYXJkLWxheW91dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL2NhcmQtbGF5b3V0L2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXpELE1BQU0sT0FBTyxtQkFBbUI7SUFpQjlCLFlBQW9CLEtBQWE7UUFBYixVQUFLLEdBQUwsS0FBSyxDQUFRO1FBaEJ4QixpQkFBWSxHQUFXLEVBQUUsQ0FBQztRQUMxQiwwQkFBcUIsR0FBVyxDQUFDLENBQUMsQ0FBQyxxQ0FBcUM7UUFFakYsU0FBSSxHQUFhLENBQUMsYUFBYSxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV4RCxrQkFBYSxHQUFHO1lBQ2QsRUFBRSxLQUFLLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRTtZQUM1RCxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxJQUFJLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDckUsRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsVUFBVSxFQUFFO1lBQ2xFLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLElBQUksRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtTQUNuRSxDQUFDO1FBRUYsa0JBQWEsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXRDLGtCQUFhLEdBQVcsR0FBRyxDQUFDO1FBRzFCLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDL0IsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3RDLElBQUksQ0FBQyxhQUFhLEdBQUcsU0FBUyxDQUFDO2dCQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDbEQ7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDO1FBQ2QsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsR0FBRyxFQUFFO1lBQ3JDLEtBQUssR0FBRyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztZQUNoRCxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDakQsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRVQsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsRUFBRSxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUNuRSxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztRQUVoRCxRQUFRLE1BQU0sRUFBRTtZQUNkLEtBQUssWUFBWTtnQkFDZixPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxjQUFjO1lBQzNFLEtBQUssV0FBVztnQkFDZCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxPQUFPO1lBQ3BFLEtBQUssV0FBVztnQkFDZCxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxpQkFBaUI7WUFDOUUsS0FBSyxXQUFXO2dCQUNkLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGFBQWE7WUFDMUUsS0FBSyxVQUFVO2dCQUNiLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGlCQUFpQjtZQUM5RSxLQUFLLGVBQWU7Z0JBQ2xCLE9BQU8sRUFBRSxlQUFlLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsQ0FBQyxDQUFDLGdCQUFnQjtZQUM3RSxLQUFLLFVBQVU7Z0JBQ2IsT0FBTyxFQUFFLGVBQWUsRUFBRSxXQUFXLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxDQUFDLENBQUMsYUFBYTtZQUMxRTtnQkFDRSxPQUFPLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLENBQUMsQ0FBQyxlQUFlO1NBQzdFO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdkIsYUFBYSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsQ0FBQztTQUNwQztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsS0FBSyxDQUFDLDhCQUE4QixDQUFDLENBQUM7SUFDeEMsQ0FBQzs7Z0hBbkVVLG1CQUFtQjtvR0FBbkIsbUJBQW1CLGlKQ1JoQyx1bEdBbUdBOzJGRDNGYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsaUJBQWlCOzZGQUtsQixZQUFZO3NCQUFwQixLQUFLO2dCQUNHLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLWNhcmQtbGF5b3V0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtbGF5b3V0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY2FyZC1sYXlvdXQuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDYXJkTGF5b3V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQElucHV0KCkgc3RhdHVzUGVkaWRvOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgY2FyZFRlbXBsYXRlSW5kaWNhdG9yOiBudW1iZXIgPSAwOyAvLyAxIHBhcmEgc2VydmnDp28sIDIgcGFyYSBjYW5kaWRhdHVyYVxuXG4gIHRhZ3M6IHN0cmluZ1tdID0gWydSZXNpZGVuY2lhbCcsICdVcmdlbnRlJywgJ0Vsw6l0cmljYSddO1xuXG4gIHN0YXR1c09wdGlvbnMgPSBbXG4gICAgeyBjbGFzczogJ3N0YXR1cy1hY3RpdmUnLCB0ZXh0OiAnQXRpdm8nLCBpY29uOiAnZmEtY2lyY2xlJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtcGVuZGluZycsIHRleHQ6ICdFbSBhbmRhbWVudG8nLCBpY29uOiAnZmEtc3Bpbm5lcicgfSxcbiAgICB7IGNsYXNzOiAnc3RhdHVzLWNvbXBsZXRlZCcsIHRleHQ6ICdDb25jbHXDrWRvJywgaWNvbjogJ2ZhLWNoZWNrJyB9LFxuICAgIHsgY2xhc3M6ICdzdGF0dXMtY2FuY2VsbGVkJywgdGV4dDogJ0NhbmNlbGFkbycsIGljb246ICdmYS10aW1lcycgfSxcbiAgXTtcblxuICBjdXJyZW50U3RhdHVzID0gdGhpcy5zdGF0dXNPcHRpb25zWzBdO1xuICBwcml2YXRlIHN0YXR1c0ludGVydmFsOiBhbnk7XG4gIGZsb3dJbmRpY2F0b3I6IHN0cmluZyA9ICcxJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlOiBSb3V0ZXIpIHtcbiAgICB0aGlzLnJvdXRlLmV2ZW50cy5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMucm91dGUudXJsLmluY2x1ZGVzKCdidWRnZXRzJykpIHtcbiAgICAgICAgdGhpcy5mbG93SW5kaWNhdG9yID0gJ2J1ZGdldHMnO1xuICAgICAgICBjb25zb2xlLmxvZygnYXNkYXNkYWRzYXNkYScsIHRoaXMuZmxvd0luZGljYXRvcik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBsZXQgaW5kZXggPSAwO1xuICAgIHRoaXMuc3RhdHVzSW50ZXJ2YWwgPSBzZXRJbnRlcnZhbCgoKSA9PiB7XG4gICAgICBpbmRleCA9IChpbmRleCArIDEpICUgdGhpcy5zdGF0dXNPcHRpb25zLmxlbmd0aDtcbiAgICAgIHRoaXMuY3VycmVudFN0YXR1cyA9IHRoaXMuc3RhdHVzT3B0aW9uc1tpbmRleF07XG4gICAgfSwgMzAwMCk7XG5cbiAgICBjb25zb2xlLmxvZygnY2FyZFRlbXBsYXRlSW5kaWNhdG9yJywgdGhpcy5jYXJkVGVtcGxhdGVJbmRpY2F0b3IpO1xuICB9XG5cbiAgZ2V0IGJhZGdlU3R5bGVzKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMuc3RhdHVzUGVkaWRvPy50b0xvd2VyQ2FzZSgpO1xuXG4gICAgc3dpdGNoIChzdGF0dXMpIHtcbiAgICAgIGNhc2UgJ2ZpbmFsaXphZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjNGNhZjUwMjAnLCBjb2xvcjogJyM0Y2FmNTAnIH07IC8vIHZlcmRlIHN1YXZlXG4gICAgICBjYXNlICdjb25jbHVpZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjMDA5Njg4MWMnLCBjb2xvcjogJyMwMDk2ODgnIH07IC8vIHRlYWxcbiAgICAgIGNhc2UgJ2NhbmNlbGFkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyNmZjUyNTIxYycsIGNvbG9yOiAnI2ZmNTI1MicgfTsgLy8gdmVybWVsaG8gY2xhcm9cbiAgICAgIGNhc2UgJ3B1YmxpY2Fkbyc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyMwMDk2ZmYxYycsIGNvbG9yOiAnIzI1YTVmZicgfTsgLy8gYXp1bCBzdWF2ZVxuICAgICAgY2FzZSAncmVjdXNhZG8nOlxuICAgICAgICByZXR1cm4geyBiYWNrZ3JvdW5kQ29sb3I6ICcjZmY1MjUyMWMnLCBjb2xvcjogJyNmZjUyNTInIH07IC8vIHZlcm1lbGhvIGNsYXJvXG4gICAgICBjYXNlICdlbSBuZWdvY2lhY2FvJzpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2ZmYWIyNTFmJywgY29sb3I6ICcjZmY5ODAwJyB9OyAvLyBsYXJhbmphIHN1YXZlXG4gICAgICBjYXNlICdwZW5kZW50ZSc6XG4gICAgICAgIHJldHVybiB7IGJhY2tncm91bmRDb2xvcjogJyM5YTFmYWQxYycsIGNvbG9yOiAnIzdlNTdjMicgfTsgLy8gcm94byBjbGFyb1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuIHsgYmFja2dyb3VuZENvbG9yOiAnI2UwZTBlMDFjJywgY29sb3I6ICcjNzU3NTc1JyB9OyAvLyBjaW56YSBwYWRyw6NvXG4gICAgfVxuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgaWYgKHRoaXMuc3RhdHVzSW50ZXJ2YWwpIHtcbiAgICAgIGNsZWFySW50ZXJ2YWwodGhpcy5zdGF0dXNJbnRlcnZhbCk7XG4gICAgfVxuICB9XG5cbiAgdmVyRGV0YWxoZXMoKSB7XG4gICAgYWxlcnQoJ0FicmlyIGRldGFsaGVzIGRvIHNlcnZpw6dvLi4uJyk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQgcm91bmRlZC14bCBzaGFkb3ctbWQgb3ZlcmZsb3ctaGlkZGVuIGJnLXdoaXRlIGhvdmVyOnNoYWRvdy1sZyB0cmFuc2l0aW9uLWFsbCBkdXJhdGlvbi0zMDAgcmVsYXRpdmUgbWItNVwiXG4+XG4gIDwhLS0gSEVBREVSIC0tPlxuICA8ZGl2XG4gICAgY2xhc3M9XCJzZXJ2aWNlLWNhcmQtaGVhZGVyIGZsZXggaXRlbXMtY2VudGVyIGp1c3RpZnktYmV0d2VlbiBwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMjAwXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGRpdiBjbGFzcz1cImljb24tc3R5bGVcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlcnZpY2UtaWNvbl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJzZXJ2aWNlLXRpdGxlIHRydW5jYXRlIHctZnVsbFwiPlxuICAgICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlcnZpY2UtdGl0bGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJcIj5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXRhaWxzLWJ0bl1cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2XG4gICAgICAgICAgY2xhc3M9XCJ3aGl0ZXNwYWNlLW5vd3JhcCBvdmVyZmxvdy1oaWRkZW4gdGV4dC1lbGxpcHNpc1wiXG4gICAgICAgICAgc3R5bGU9XCJmb250LXNpemU6IDEycHg7IGNvbG9yOiB2YXIoLS10YWItbGluaylcIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3NlcnZpY2UtYWRkcmVzc11cIj48L25nLWNvbnRlbnQ+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuXG4gIDwhLS0gQk9EWSAtLT5cbiAgPGRpdiBjbGFzcz1cInNlcnZpY2UtY2FyZC1ib2R5IHAtNCBzcGFjZS15LTNcIj5cbiAgICA8ZGl2PlxuICAgICAgPGRpdlxuICAgICAgICBjbGFzcz1cImZsZXggZmxleC1jb2wgaXRlbXMtc3RhcnQgZ2FwLTMgYm9yZGVyLWIgYm9yZGVyLWdyYXktMTAwIHBiLTMgbWItM1wiXG4gICAgICAgICpuZ0lmPVwiY2FyZFRlbXBsYXRlSW5kaWNhdG9yID09PSAxXCJcbiAgICAgID5cbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1iZXR3ZWVuIHctZnVsbCBwYi0yXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInN0YXR1cy1iYWRnZVwiIFtuZ1N0eWxlXT1cImJhZGdlU3R5bGVzXCI+XG4gICAgICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbc3RhdHVzLWJhZGdlXVwiPjwvbmctY29udGVudD5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwidGV4dC14cyB0ZXh0LWdyYXktNTAgZm9udC1zZW1pYm9sZFwiXG4gICAgICAgICAgICBzdHlsZT1cIlxuICAgICAgICAgICAgICBiYWNrZ3JvdW5kLWNvbG9yOiAjZDNkM2QzMmM7XG4gICAgICAgICAgICAgIGNvbG9yOiBncmV5O1xuICAgICAgICAgICAgICBib3JkZXItcmFkaXVzOiAyNXB4O1xuICAgICAgICAgICAgICBkaXNwbGF5OiBmbGV4O1xuICAgICAgICAgICAgICBqdXN0aWZ5LWNvbnRlbnQ6IGNlbnRlcjtcbiAgICAgICAgICAgICAgYWxpZ24taXRlbXM6IGNlbnRlcjtcbiAgICAgICAgICAgICAgcGFkZGluZzogNHB4IDEwcHg7XG4gICAgICAgICAgICBcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltvcmRlci1udW1iZXJdXCI+PC9uZy1jb250ZW50PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LXdyYXAgZ2FwLTIgaXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2ZpbHRlci10YWddXCI+PC9uZy1jb250ZW50PlxuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvZGl2PlxuXG4gICAgICA8ZGl2IGNsYXNzPVwiZnctc2VtaWJvbGRcIiAqbmdJZj1cInN0YXR1c1BlZGlkbyA9PT0gJ2ZpbmFsaXphZG8nXCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltjb25jbHVzaW9uLWRhdGVdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2luZm8tcm93XVwiPjwvbmctY29udGVudD5cblxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltkZXNjcmlwdGlvbl1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuXG4gIDwhLS0gRk9PVEVSIC0tPlxuXG4gIDxkaXZcbiAgICBjbGFzcz1cInNlcnZpY2UtY2FyZC1mb290ZXIgZmxleCBqdXN0aWZ5LWNlbnRlciBpdGVtcy1jZW50ZXIgcC0zIGJvcmRlci10IGJvcmRlci1ncmF5LTEwMCBiZy1ncmF5LTUwIGdhcC0xXCJcbiAgPlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW21haW4tYnRuXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cImZ3LXNlbWlib2xkIGNvbC02XCJcbiAgICAgIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ByaWNlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDwhLS0gPGRpdlxuICAgIFxuICAgIGNsYXNzPVwiZmxleCByb3cganVzdGlmeS1iZXR3ZWVuIGl0ZW1zLWNlbnRlciBwLTMgYm9yZGVyLXQgYm9yZGVyLWdyYXktMTAwIGJnLWdyYXktNTBcIlxuICA+XG4gICAgPGRpdiBjbGFzcz1cImNvbC02XCI+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbbWFpbi1idG5dXCI+PC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJjb2wtNlwiPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW3ByaWNlXVwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+IC0tPlxuPC9kaXY+XG4iXX0=
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
@@ -1,4 +1,4 @@
1
- import { Component, HostListener } from '@angular/core';
1
+ import { Component, HostListener, Input, } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/router";
4
4
  import * as i2 from "@angular/common";
@@ -6,6 +6,7 @@ export class NavComponent {
6
6
  constructor(router, el) {
7
7
  this.router = router;
8
8
  this.el = el;
9
+ this.changeNavColor = false;
9
10
  this.openClose = false;
10
11
  this.message = '';
11
12
  this.lastScrollPosition = 0;
@@ -57,15 +58,17 @@ export class NavComponent {
57
58
  }
58
59
  }
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 });
60
- NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavComponent, selector: "lib-nav", 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }] });
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"] }] });
61
62
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, decorators: [{
62
63
  type: Component,
63
- 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }]
64
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { onResize: [{
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: [{
65
68
  type: HostListener,
66
69
  args: ['window:resize']
67
70
  }], onWindowScroll: [{
68
71
  type: HostListener,
69
72
  args: ['window:scroll', []]
70
73
  }] } });
71
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQVUsTUFBTSxlQUFlLENBQUM7Ozs7QUFRNUUsTUFBTSxPQUFPLFlBQVk7SUFXdkIsWUFBb0IsTUFBYyxFQUFVLEVBQWM7UUFBdEMsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQVk7UUFWMUQsY0FBUyxHQUFZLEtBQUssQ0FBQztRQUMzQixZQUFPLEdBQVcsRUFBRSxDQUFDO1FBRXJCLHVCQUFrQixHQUFHLENBQUMsQ0FBQztRQUN2QixvQkFBZSxHQUFHLElBQUksQ0FBQztRQUN2QixpQkFBWSxHQUFHLENBQUMsQ0FBQztRQUNqQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWpCLGFBQVEsR0FBWSxLQUFLLENBQUM7SUFFbUMsQ0FBQztJQUU5RCxlQUFlO1FBQ2IsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRW5CLDZEQUE2RDtRQUM3RCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDeEUsSUFBSSxVQUFVLEVBQUU7WUFDZCxJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQyxZQUFZLENBQUM7U0FDN0M7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFHRCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLEdBQUcsTUFBTSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsQ0FBQyxrREFBa0Q7UUFDM0YsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUU7WUFDbEIsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsQ0FBQyx1Q0FBdUM7U0FDckU7SUFDSCxDQUFDO0lBQ00sSUFBSTtRQUNULElBQUksQ0FBQyxTQUFTLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO0lBQ25DLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBR0QsY0FBYztRQUNaLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUTtZQUFFLE9BQU87UUFFM0IsTUFBTSxxQkFBcUIsR0FDekIsTUFBTSxDQUFDLFdBQVcsSUFBSSxRQUFRLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQztRQUUzRCxpQ0FBaUM7UUFDakMsSUFDRSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCO1lBQy9DLHFCQUFxQixHQUFHLEVBQUUsRUFDMUI7WUFDQSxJQUFJLENBQUMsZUFBZSxHQUFHLEtBQUssQ0FBQztTQUM5QjtRQUNELDhCQUE4QjthQUN6QixJQUFJLHFCQUFxQixHQUFHLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtZQUN4RCxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQztTQUM3QjtRQUVELElBQUksQ0FBQyxrQkFBa0IsR0FBRyxxQkFBcUIsQ0FBQztJQUNsRCxDQUFDOzt5R0FsRVUsWUFBWTs2RkFBWixZQUFZLDRJQ1J6Qix1ckNBc0NBOzJGRDlCYSxZQUFZO2tCQUx4QixTQUFTOytCQUNFLFNBQVM7c0hBZ0NuQixRQUFRO3NCQURQLFlBQVk7dUJBQUMsZUFBZTtnQkFvQjdCLGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxlQUFlLEVBQUUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1uYXYnLFxuICB0ZW1wbGF0ZVVybDogJy4vbmF2LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbmF2LmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgTmF2Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgb3BlbkNsb3NlOiBib29sZWFuID0gZmFsc2U7XG4gIG1lc3NhZ2U6IHN0cmluZyA9ICcnO1xuXG4gIGxhc3RTY3JvbGxQb3NpdGlvbiA9IDA7XG4gIGlzSGVhZGVyVmlzaWJsZSA9IHRydWU7XG4gIGhlYWRlckhlaWdodCA9IDA7XG4gIGlzTW9iaWxlID0gZmFsc2U7XG5cbiAgaGFzT2ZmZXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJvdXRlcjogUm91dGVyLCBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLmNoZWNrTW9iaWxlKCk7XG5cbiAgICAvLyBPYnTDqW0gYSBhbHR1cmEgZG8gaGVhZGVyLW1lbnUgYXDDs3MgYSB2aWV3IHNlciBpbmljaWFsaXphZGFcbiAgICBjb25zdCBoZWFkZXJNZW51ID0gdGhpcy5lbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1toZWFkZXItbWVudV0nKTtcbiAgICBpZiAoaGVhZGVyTWVudSkge1xuICAgICAgdGhpcy5oZWFkZXJIZWlnaHQgPSBoZWFkZXJNZW51Lm9mZnNldEhlaWdodDtcbiAgICB9XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmhhc09mZmVyID0gdGhpcy5yb3V0ZXIudXJsLmluY2x1ZGVzKCdvZmZlcicpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIG9uUmVzaXplKCkge1xuICAgIHRoaXMuY2hlY2tNb2JpbGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tNb2JpbGUoKSB7XG4gICAgdGhpcy5pc01vYmlsZSA9IHdpbmRvdy5pbm5lcldpZHRoIDwgNzY4OyAvLyA3NjhweCDDqSBvIGJyZWFrcG9pbnQgcGFkcsOjbyBkbyBUYWlsd2luZCBwYXJhIG1kXG4gICAgaWYgKCF0aGlzLmlzTW9iaWxlKSB7XG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IHRydWU7IC8vIEdhcmFudGUgcXVlIGZpcXVlIHZpc8OtdmVsIGVtIGRlc2t0b3BcbiAgICB9XG4gIH1cbiAgcHVibGljIG1lbnUoKSB7XG4gICAgdGhpcy5vcGVuQ2xvc2UgPSAhdGhpcy5vcGVuQ2xvc2U7XG4gIH1cblxuICByZWNlaXZlTWVzc2FnZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5tZXNzYWdlID0gZXZlbnQ7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCd3aW5kb3c6c2Nyb2xsJywgW10pXG4gIG9uV2luZG93U2Nyb2xsKCkge1xuICAgIGlmICghdGhpcy5pc01vYmlsZSkgcmV0dXJuO1xuXG4gICAgY29uc3QgY3VycmVudFNjcm9sbFBvc2l0aW9uID1cbiAgICAgIHdpbmRvdy5wYWdlWU9mZnNldCB8fCBkb2N1bWVudC5kb2N1bWVudEVsZW1lbnQuc2Nyb2xsVG9wO1xuXG4gICAgLy8gU2Nyb2xsIERPV04gLSBlc2NvbmRlIG8gaGVhZGVyXG4gICAgaWYgKFxuICAgICAgY3VycmVudFNjcm9sbFBvc2l0aW9uID4gdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24gJiZcbiAgICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+IDUwXG4gICAgKSB7XG4gICAgICB0aGlzLmlzSGVhZGVyVmlzaWJsZSA9IGZhbHNlO1xuICAgIH1cbiAgICAvLyBTY3JvbGwgVVAgLSBtb3N0cmEgbyBoZWFkZXJcbiAgICBlbHNlIGlmIChjdXJyZW50U2Nyb2xsUG9zaXRpb24gPCB0aGlzLmxhc3RTY3JvbGxQb3NpdGlvbikge1xuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSB0cnVlO1xuICAgIH1cblxuICAgIHRoaXMubGFzdFNjcm9sbFBvc2l0aW9uID0gY3VycmVudFNjcm9sbFBvc2l0aW9uO1xuICB9XG59XG4iLCI8IS0tIE92ZXJsYXkgLS0+XG48ZGl2XG4gICpuZ0lmPVwib3BlbkNsb3NlXCJcbiAgKGNsaWNrKT1cIm9wZW5DbG9zZSA9IGZhbHNlXCJcbiAgY2xhc3M9XCJmaXhlZCBpbnNldC0wIGJnLWJsYWNrIGJnLW9wYWNpdHktNDAgei00MCBtZDpoaWRkZW5cIlxuPjwvZGl2PlxuXG48IS0tIE5hdmJhciBDb250YWluZXIgLS0+XG48ZGl2XG4gIGNsYXNzPVwiZml4ZWQgdG9wLTAgbGVmdC0wIHJpZ2h0LTAgei01MCBzaGFkb3ctbm9uZSB0cmFuc2l0aW9uLXRyYW5zZm9ybSBkdXJhdGlvbi0zMDAgZWFzZS1vdXQgaHItbmF2LWJvdHRvbVwiXG4gIFtjbGFzcy4tdHJhbnNsYXRlLXktZnVsbF09XCIhaXNIZWFkZXJWaXNpYmxlXCJcbiAgc3R5bGU9XCJiYWNrZ3JvdW5kLWNvbG9yOiB2YXIoLS1wcmltYXJ5KVwiXG4+XG4gIDwhLS0gTWFpbiBOYXZiYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBweC0yIGgtMTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8IS0tIExlZnQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2VudGVyIENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NlbnRyYWwtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSaWdodCBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBIZWFkZXIgTWVudSAoU3VibWVudSkgLS0+XG4gIDxkaXYgaGVhZGVyLW1lbnUgY2xhc3M9XCJ3LWZ1bGwgaHItbmF2XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1tZW51XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
74
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmF2LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1ZHUtY29tcG9uZW50cy9zcmMvbGliL2NvbXBvbmVudHMvbmF2L25hdi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWR1LWNvbXBvbmVudHMvc3JjL2xpYi9jb21wb25lbnRzL25hdi9uYXYuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFFVCxZQUFZLEVBQ1osS0FBSyxHQUVOLE1BQU0sZUFBZSxDQUFDOzs7O0FBUXZCLE1BQU0sT0FBTyxZQUFZO0lBYXZCLFlBQW9CLE1BQWMsRUFBVSxFQUFjO1FBQXRDLFdBQU0sR0FBTixNQUFNLENBQVE7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBWmpELG1CQUFjLEdBQVksS0FBSyxDQUFDO1FBRXpDLGNBQVMsR0FBWSxLQUFLLENBQUM7UUFDM0IsWUFBTyxHQUFXLEVBQUUsQ0FBQztRQUVyQix1QkFBa0IsR0FBRyxDQUFDLENBQUM7UUFDdkIsb0JBQWUsR0FBRyxJQUFJLENBQUM7UUFDdkIsaUJBQVksR0FBRyxDQUFDLENBQUM7UUFDakIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVqQixhQUFRLEdBQVksS0FBSyxDQUFDO0lBRW1DLENBQUM7SUFFOUQsZUFBZTtRQUNiLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQiw2REFBNkQ7UUFDN0QsTUFBTSxVQUFVLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQ3hFLElBQUksVUFBVSxFQUFFO1lBQ2QsSUFBSSxDQUFDLFlBQVksR0FBRyxVQUFVLENBQUMsWUFBWSxDQUFDO1NBQzdDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBR0QsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRU8sV0FBVztRQUNqQixJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLENBQUMsa0RBQWtEO1FBQzNGLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xCLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLENBQUMsdUNBQXVDO1NBQ3JFO0lBQ0gsQ0FBQztJQUNNLElBQUk7UUFDVCxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsY0FBYyxDQUFDLEtBQWE7UUFDMUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUdELGNBQWM7UUFDWixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVE7WUFBRSxPQUFPO1FBRTNCLE1BQU0scUJBQXFCLEdBQ3pCLE1BQU0sQ0FBQyxXQUFXLElBQUksUUFBUSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUM7UUFFM0QsaUNBQWlDO1FBQ2pDLElBQ0UscUJBQXFCLEdBQUcsSUFBSSxDQUFDLGtCQUFrQjtZQUMvQyxxQkFBcUIsR0FBRyxFQUFFLEVBQzFCO1lBQ0EsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7U0FDOUI7UUFDRCw4QkFBOEI7YUFDekIsSUFBSSxxQkFBcUIsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUU7WUFDeEQsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUM7U0FDN0I7UUFFRCxJQUFJLENBQUMsa0JBQWtCLEdBQUcscUJBQXFCLENBQUM7SUFDbEQsQ0FBQzs7eUdBcEVVLFlBQVk7NkZBQVosWUFBWSwwTENkekIsMHRDQXdDQTsyRkQxQmEsWUFBWTtrQkFMeEIsU0FBUzsrQkFDRSxTQUFTO3NIQUtWLGNBQWM7c0JBQXRCLEtBQUs7Z0JBNkJOLFFBQVE7c0JBRFAsWUFBWTt1QkFBQyxlQUFlO2dCQW9CN0IsY0FBYztzQkFEYixZQUFZO3VCQUFDLGVBQWUsRUFBRSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkluaXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbGliLW5hdicsXG4gIHRlbXBsYXRlVXJsOiAnLi9uYXYuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9uYXYuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBOYXZDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBjaGFuZ2VOYXZDb2xvcjogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIG9wZW5DbG9zZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlOiBzdHJpbmcgPSAnJztcblxuICBsYXN0U2Nyb2xsUG9zaXRpb24gPSAwO1xuICBpc0hlYWRlclZpc2libGUgPSB0cnVlO1xuICBoZWFkZXJIZWlnaHQgPSAwO1xuICBpc01vYmlsZSA9IGZhbHNlO1xuXG4gIGhhc09mZmVyOiBib29sZWFuID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByb3V0ZXI6IFJvdXRlciwgcHJpdmF0ZSBlbDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGVja01vYmlsZSgpO1xuXG4gICAgLy8gT2J0w6ltIGEgYWx0dXJhIGRvIGhlYWRlci1tZW51IGFww7NzIGEgdmlldyBzZXIgaW5pY2lhbGl6YWRhXG4gICAgY29uc3QgaGVhZGVyTWVudSA9IHRoaXMuZWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCdbaGVhZGVyLW1lbnVdJyk7XG4gICAgaWYgKGhlYWRlck1lbnUpIHtcbiAgICAgIHRoaXMuaGVhZGVySGVpZ2h0ID0gaGVhZGVyTWVudS5vZmZzZXRIZWlnaHQ7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5oYXNPZmZlciA9IHRoaXMucm91dGVyLnVybC5pbmNsdWRlcygnb2ZmZXInKTtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ3dpbmRvdzpyZXNpemUnKVxuICBvblJlc2l6ZSgpIHtcbiAgICB0aGlzLmNoZWNrTW9iaWxlKCk7XG4gIH1cblxuICBwcml2YXRlIGNoZWNrTW9iaWxlKCkge1xuICAgIHRoaXMuaXNNb2JpbGUgPSB3aW5kb3cuaW5uZXJXaWR0aCA8IDc2ODsgLy8gNzY4cHggw6kgbyBicmVha3BvaW50IHBhZHLDo28gZG8gVGFpbHdpbmQgcGFyYSBtZFxuICAgIGlmICghdGhpcy5pc01vYmlsZSkge1xuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSB0cnVlOyAvLyBHYXJhbnRlIHF1ZSBmaXF1ZSB2aXPDrXZlbCBlbSBkZXNrdG9wXG4gICAgfVxuICB9XG4gIHB1YmxpYyBtZW51KCkge1xuICAgIHRoaXMub3BlbkNsb3NlID0gIXRoaXMub3BlbkNsb3NlO1xuICB9XG5cbiAgcmVjZWl2ZU1lc3NhZ2UoZXZlbnQ6IHN0cmluZykge1xuICAgIHRoaXMubWVzc2FnZSA9IGV2ZW50O1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnNjcm9sbCcsIFtdKVxuICBvbldpbmRvd1Njcm9sbCgpIHtcbiAgICBpZiAoIXRoaXMuaXNNb2JpbGUpIHJldHVybjtcblxuICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA9XG4gICAgICB3aW5kb3cucGFnZVlPZmZzZXQgfHwgZG9jdW1lbnQuZG9jdW1lbnRFbGVtZW50LnNjcm9sbFRvcDtcblxuICAgIC8vIFNjcm9sbCBET1dOIC0gZXNjb25kZSBvIGhlYWRlclxuICAgIGlmIChcbiAgICAgIGN1cnJlbnRTY3JvbGxQb3NpdGlvbiA+IHRoaXMubGFzdFNjcm9sbFBvc2l0aW9uICYmXG4gICAgICBjdXJyZW50U2Nyb2xsUG9zaXRpb24gPiA1MFxuICAgICkge1xuICAgICAgdGhpcy5pc0hlYWRlclZpc2libGUgPSBmYWxzZTtcbiAgICB9XG4gICAgLy8gU2Nyb2xsIFVQIC0gbW9zdHJhIG8gaGVhZGVyXG4gICAgZWxzZSBpZiAoY3VycmVudFNjcm9sbFBvc2l0aW9uIDwgdGhpcy5sYXN0U2Nyb2xsUG9zaXRpb24pIHtcbiAgICAgIHRoaXMuaXNIZWFkZXJWaXNpYmxlID0gdHJ1ZTtcbiAgICB9XG5cbiAgICB0aGlzLmxhc3RTY3JvbGxQb3NpdGlvbiA9IGN1cnJlbnRTY3JvbGxQb3NpdGlvbjtcbiAgfVxufVxuIiwiPCEtLSBPdmVybGF5IC0tPlxuPGRpdlxuICAqbmdJZj1cIm9wZW5DbG9zZVwiXG4gIChjbGljayk9XCJvcGVuQ2xvc2UgPSBmYWxzZVwiXG4gIGNsYXNzPVwiZml4ZWQgaW5zZXQtMCBiZy1ibGFjayBiZy1vcGFjaXR5LTQwIHotNDAgbWQ6aGlkZGVuXCJcbj48L2Rpdj5cblxuPCEtLSBOYXZiYXIgQ29udGFpbmVyIC0tPlxuPGRpdlxuICBjbGFzcz1cImZpeGVkIHRvcC0wIGxlZnQtMCByaWdodC0wIHotNTAgc2hhZG93LW5vbmUgdHJhbnNpdGlvbi10cmFuc2Zvcm0gZHVyYXRpb24tMzAwIGVhc2Utb3V0IFwiXG4gIFtjbGFzcy4tdHJhbnNsYXRlLXktZnVsbF09XCIhaXNIZWFkZXJWaXNpYmxlXCJcbiAgW3N0eWxlLmJhY2tncm91bmRDb2xvcl09XCJcbiAgICBjaGFuZ2VOYXZDb2xvciA/ICd2YXIoLS1wcmltYXJ5KScgOiAndmFyKC0tcHJpbWFyeSknXG4gIFwiXG4+XG4gIDwhLS0gTWFpbiBOYXZiYXIgLS0+XG4gIDxkaXYgY2xhc3M9XCJ3LWZ1bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwibXgtYXV0byBweC0yIGgtMTYgZmxleCBpdGVtcy1jZW50ZXIganVzdGlmeS1iZXR3ZWVuXCI+XG4gICAgICA8IS0tIExlZnQgQ29udGVudCAtLT5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4LTEgZmxleCBqdXN0aWZ5LXN0YXJ0XCI+XG4gICAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cIltsZWZ0LWNvbnRlbnRdXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG5cbiAgICAgIDwhLS0gQ2VudGVyIENvbnRlbnQgLS0+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleC0xIGZsZXgganVzdGlmeS1jZW50ZXJcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2NlbnRyYWwtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPCEtLSBSaWdodCBDb250ZW50IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXgtMVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDsganVzdGlmeS1jb250ZW50OiBmbGV4LWVuZFwiPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJbcmlnaHQtY29udGVudF1cIj48L25nLWNvbnRlbnQ+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPCEtLSBIZWFkZXIgTWVudSAoU3VibWVudSkgLS0+XG4gIDxkaXYgaGVhZGVyLW1lbnUgY2xhc3M9XCJ3LWZ1bGwgaHItbmF2XCI+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiW2hlYWRlci1tZW51XVwiPjwvbmctY29udGVudD5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -29,6 +29,7 @@ class CardLayoutComponent {
29
29
  this.route = route;
30
30
  this.statusPedido = '';
31
31
  this.cardTemplateIndicator = 0; // 1 para serviço, 2 para candidatura
32
+ this.hideHeader = false; // 1 para serviço, 2 para candidatura
32
33
  this.tags = ['Residencial', 'Urgente', 'Elétrica'];
33
34
  this.statusOptions = [
34
35
  { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },
@@ -85,20 +86,23 @@ class CardLayoutComponent {
85
86
  }
86
87
  }
87
88
  CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
88
- CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator" }, 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=\"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}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
89
+ 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"] }] });
89
90
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
90
91
  type: Component,
91
- 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=\"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}\n"] }]
92
+ 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"] }]
92
93
  }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
93
94
  type: Input
94
95
  }], cardTemplateIndicator: [{
95
96
  type: Input
97
+ }], hideHeader: [{
98
+ type: Input
96
99
  }] } });
97
100
 
98
101
  class NavComponent {
99
102
  constructor(router, el) {
100
103
  this.router = router;
101
104
  this.el = el;
105
+ this.changeNavColor = false;
102
106
  this.openClose = false;
103
107
  this.message = '';
104
108
  this.lastScrollPosition = 0;
@@ -150,11 +154,13 @@ class NavComponent {
150
154
  }
151
155
  }
152
156
  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 });
153
- NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavComponent, selector: "lib-nav", 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }] });
157
+ 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"] }] });
154
158
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, decorators: [{
155
159
  type: Component,
156
- 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }]
157
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { onResize: [{
160
+ 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"] }]
161
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { changeNavColor: [{
162
+ type: Input
163
+ }], onResize: [{
158
164
  type: HostListener,
159
165
  args: ['window:resize']
160
166
  }], onWindowScroll: [{
@@ -1 +1 @@
1
- {"version":3,"file":"tudu-components.mjs","sources":["../../../projects/tudu-components/src/lib/tudu-components.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.html","../../../projects/tudu-components/src/lib/components/nav/nav.component.ts","../../../projects/tudu-components/src/lib/components/nav/nav.component.html","../../../projects/tudu-components/src/lib/tudu-components.module.ts","../../../projects/tudu-components/src/lib/tudu-components.service.ts","../../../projects/tudu-components/src/public-api.ts","../../../projects/tudu-components/src/tudu-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-tudu-components',\n template: `\n <p>\n tudu-components works!sss\n </p>\n `,\n styles: [\n ]\n})\nexport class TuduComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-card-layout',\n templateUrl: './card-layout.component.html',\n styleUrls: ['./card-layout.component.css'],\n})\nexport class CardLayoutComponent implements OnInit {\n @Input() statusPedido: string = '';\n @Input() cardTemplateIndicator: number = 0; // 1 para serviço, 2 para candidatura\n\n tags: string[] = ['Residencial', 'Urgente', 'Elétrica'];\n\n statusOptions = [\n { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },\n { class: 'status-pending', text: 'Em andamento', icon: 'fa-spinner' },\n { class: 'status-completed', text: 'Concluído', icon: 'fa-check' },\n { class: 'status-cancelled', text: 'Cancelado', icon: 'fa-times' },\n ];\n\n currentStatus = this.statusOptions[0];\n private statusInterval: any;\n flowIndicator: string = '1';\n\n constructor(private route: Router) {\n this.route.events.subscribe(() => {\n if (this.route.url.includes('budgets')) {\n this.flowIndicator = 'budgets';\n console.log('asdasdadsasda', this.flowIndicator);\n }\n });\n }\n\n ngOnInit() {\n let index = 0;\n this.statusInterval = setInterval(() => {\n index = (index + 1) % this.statusOptions.length;\n this.currentStatus = this.statusOptions[index];\n }, 3000);\n\n console.log('cardTemplateIndicator', this.cardTemplateIndicator);\n }\n\n get badgeStyles(): { [key: string]: string } {\n const status = this.statusPedido?.toLowerCase();\n\n switch (status) {\n case 'finalizado':\n return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave\n case 'concluido':\n return { backgroundColor: '#0096881c', color: '#009688' }; // teal\n case 'cancelado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'publicado':\n return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave\n case 'recusado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'em negociacao':\n return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave\n case 'pendente':\n return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro\n default:\n return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão\n }\n }\n\n ngOnDestroy() {\n if (this.statusInterval) {\n clearInterval(this.statusInterval);\n }\n }\n\n verDetalhes() {\n alert('Abrir detalhes do serviço...');\n }\n}\n","<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=\"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","import { Component, ElementRef, HostListener, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.css'],\n})\nexport class NavComponent implements OnInit {\n openClose: boolean = false;\n message: string = '';\n\n lastScrollPosition = 0;\n isHeaderVisible = true;\n headerHeight = 0;\n isMobile = false;\n\n hasOffer: boolean = false;\n\n constructor(private router: Router, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.checkMobile();\n\n // Obtém a altura do header-menu após a view ser inicializada\n const headerMenu = this.el.nativeElement.querySelector('[header-menu]');\n if (headerMenu) {\n this.headerHeight = headerMenu.offsetHeight;\n }\n }\n\n ngOnInit(): void {\n this.hasOffer = this.router.url.includes('offer');\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkMobile();\n }\n\n private checkMobile() {\n this.isMobile = window.innerWidth < 768; // 768px é o breakpoint padrão do Tailwind para md\n if (!this.isMobile) {\n this.isHeaderVisible = true; // Garante que fique visível em desktop\n }\n }\n public menu() {\n this.openClose = !this.openClose;\n }\n\n receiveMessage(event: string) {\n this.message = event;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (!this.isMobile) return;\n\n const currentScrollPosition =\n window.pageYOffset || document.documentElement.scrollTop;\n\n // Scroll DOWN - esconde o header\n if (\n currentScrollPosition > this.lastScrollPosition &&\n currentScrollPosition > 50\n ) {\n this.isHeaderVisible = false;\n }\n // Scroll UP - mostra o header\n else if (currentScrollPosition < this.lastScrollPosition) {\n this.isHeaderVisible = true;\n }\n\n this.lastScrollPosition = currentScrollPosition;\n }\n}\n","<!-- 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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","import { NgModule } from '@angular/core';\nimport { TuduComponentsComponent } from './tudu-components.component';\nimport { CommonModule } from '@angular/common';\nimport { CardLayoutComponent } from '../lib/components/card-layout/card-layout.component';\nimport { NavComponent } from './components/nav/nav.component';\n\n@NgModule({\n declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n imports: [CommonModule],\n exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n})\nexport class TuduComponentsModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TuduComponentsService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of tudu-components\n */\nexport * from './lib/tudu-components.component';\nexport * from './lib/tudu-components.module'; // ← Se criou este módulo\n\nexport * from './lib/components/card-layout/card-layout.component';\nexport * from './lib/components/nav/nav.component';\nexport * from './lib/tudu-components.service';\n// export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tudu-components.mjs","sources":["../../../projects/tudu-components/src/lib/tudu-components.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.html","../../../projects/tudu-components/src/lib/components/nav/nav.component.ts","../../../projects/tudu-components/src/lib/components/nav/nav.component.html","../../../projects/tudu-components/src/lib/tudu-components.module.ts","../../../projects/tudu-components/src/lib/tudu-components.service.ts","../../../projects/tudu-components/src/public-api.ts","../../../projects/tudu-components/src/tudu-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-tudu-components',\n template: `\n <p>\n tudu-components works!sss\n </p>\n `,\n styles: [\n ]\n})\nexport class TuduComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-card-layout',\n templateUrl: './card-layout.component.html',\n styleUrls: ['./card-layout.component.css'],\n})\nexport class CardLayoutComponent implements OnInit {\n @Input() statusPedido: string = '';\n @Input() cardTemplateIndicator: number = 0; // 1 para serviço, 2 para candidatura\n @Input() hideHeader: boolean = false; // 1 para serviço, 2 para candidatura\n\n tags: string[] = ['Residencial', 'Urgente', 'Elétrica'];\n\n statusOptions = [\n { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },\n { class: 'status-pending', text: 'Em andamento', icon: 'fa-spinner' },\n { class: 'status-completed', text: 'Concluído', icon: 'fa-check' },\n { class: 'status-cancelled', text: 'Cancelado', icon: 'fa-times' },\n ];\n\n currentStatus = this.statusOptions[0];\n private statusInterval: any;\n flowIndicator: string = '1';\n\n constructor(private route: Router) {\n this.route.events.subscribe(() => {\n if (this.route.url.includes('budgets')) {\n this.flowIndicator = 'budgets';\n console.log('asdasdadsasda', this.flowIndicator);\n }\n });\n }\n\n ngOnInit() {\n let index = 0;\n this.statusInterval = setInterval(() => {\n index = (index + 1) % this.statusOptions.length;\n this.currentStatus = this.statusOptions[index];\n }, 3000);\n\n console.log('cardTemplateIndicator', this.cardTemplateIndicator);\n }\n\n get badgeStyles(): { [key: string]: string } {\n const status = this.statusPedido?.toLowerCase();\n\n switch (status) {\n case 'finalizado':\n return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave\n case 'concluido':\n return { backgroundColor: '#0096881c', color: '#009688' }; // teal\n case 'cancelado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'publicado':\n return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave\n case 'recusado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'em negociacao':\n return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave\n case 'pendente':\n return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro\n default:\n return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão\n }\n }\n\n ngOnDestroy() {\n if (this.statusInterval) {\n clearInterval(this.statusInterval);\n }\n }\n\n verDetalhes() {\n alert('Abrir detalhes do serviço...');\n }\n}\n","<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","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.css'],\n})\nexport class NavComponent implements OnInit {\n @Input() changeNavColor: boolean = false;\n\n openClose: boolean = false;\n message: string = '';\n\n lastScrollPosition = 0;\n isHeaderVisible = true;\n headerHeight = 0;\n isMobile = false;\n\n hasOffer: boolean = false;\n\n constructor(private router: Router, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.checkMobile();\n\n // Obtém a altura do header-menu após a view ser inicializada\n const headerMenu = this.el.nativeElement.querySelector('[header-menu]');\n if (headerMenu) {\n this.headerHeight = headerMenu.offsetHeight;\n }\n }\n\n ngOnInit(): void {\n this.hasOffer = this.router.url.includes('offer');\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkMobile();\n }\n\n private checkMobile() {\n this.isMobile = window.innerWidth < 768; // 768px é o breakpoint padrão do Tailwind para md\n if (!this.isMobile) {\n this.isHeaderVisible = true; // Garante que fique visível em desktop\n }\n }\n public menu() {\n this.openClose = !this.openClose;\n }\n\n receiveMessage(event: string) {\n this.message = event;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (!this.isMobile) return;\n\n const currentScrollPosition =\n window.pageYOffset || document.documentElement.scrollTop;\n\n // Scroll DOWN - esconde o header\n if (\n currentScrollPosition > this.lastScrollPosition &&\n currentScrollPosition > 50\n ) {\n this.isHeaderVisible = false;\n }\n // Scroll UP - mostra o header\n else if (currentScrollPosition < this.lastScrollPosition) {\n this.isHeaderVisible = true;\n }\n\n this.lastScrollPosition = currentScrollPosition;\n }\n}\n","<!-- 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","import { NgModule } from '@angular/core';\nimport { TuduComponentsComponent } from './tudu-components.component';\nimport { CommonModule } from '@angular/common';\nimport { CardLayoutComponent } from '../lib/components/card-layout/card-layout.component';\nimport { NavComponent } from './components/nav/nav.component';\n\n@NgModule({\n declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n imports: [CommonModule],\n exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n})\nexport class TuduComponentsModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TuduComponentsService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of tudu-components\n */\nexport * from './lib/tudu-components.component';\nexport * from './lib/tudu-components.module'; // ← Se criou este módulo\n\nexport * from './lib/components/card-layout/card-layout.component';\nexport * from './lib/components/nav/nav.component';\nexport * from './lib/tudu-components.service';\n// export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -29,6 +29,7 @@ class CardLayoutComponent {
29
29
  this.route = route;
30
30
  this.statusPedido = '';
31
31
  this.cardTemplateIndicator = 0; // 1 para serviço, 2 para candidatura
32
+ this.hideHeader = false; // 1 para serviço, 2 para candidatura
32
33
  this.tags = ['Residencial', 'Urgente', 'Elétrica'];
33
34
  this.statusOptions = [
34
35
  { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },
@@ -84,20 +85,23 @@ class CardLayoutComponent {
84
85
  }
85
86
  }
86
87
  CardLayoutComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component });
87
- CardLayoutComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: CardLayoutComponent, selector: "lib-card-layout", inputs: { statusPedido: "statusPedido", cardTemplateIndicator: "cardTemplateIndicator" }, 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=\"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}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
88
+ 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"] }] });
88
89
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: CardLayoutComponent, decorators: [{
89
90
  type: Component,
90
- 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=\"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}\n"] }]
91
+ 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"] }]
91
92
  }], ctorParameters: function () { return [{ type: i1.Router }]; }, propDecorators: { statusPedido: [{
92
93
  type: Input
93
94
  }], cardTemplateIndicator: [{
94
95
  type: Input
96
+ }], hideHeader: [{
97
+ type: Input
95
98
  }] } });
96
99
 
97
100
  class NavComponent {
98
101
  constructor(router, el) {
99
102
  this.router = router;
100
103
  this.el = el;
104
+ this.changeNavColor = false;
101
105
  this.openClose = false;
102
106
  this.message = '';
103
107
  this.lastScrollPosition = 0;
@@ -149,11 +153,13 @@ class NavComponent {
149
153
  }
150
154
  }
151
155
  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 });
152
- NavComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.3.0", type: NavComponent, selector: "lib-nav", 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }] });
156
+ 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"] }] });
153
157
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImport: i0, type: NavComponent, decorators: [{
154
158
  type: Component,
155
- 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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"] }]
156
- }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { onResize: [{
159
+ 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"] }]
160
+ }], ctorParameters: function () { return [{ type: i1.Router }, { type: i0.ElementRef }]; }, propDecorators: { changeNavColor: [{
161
+ type: Input
162
+ }], onResize: [{
157
163
  type: HostListener,
158
164
  args: ['window:resize']
159
165
  }], onWindowScroll: [{
@@ -1 +1 @@
1
- {"version":3,"file":"tudu-components.mjs","sources":["../../../projects/tudu-components/src/lib/tudu-components.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.html","../../../projects/tudu-components/src/lib/components/nav/nav.component.ts","../../../projects/tudu-components/src/lib/components/nav/nav.component.html","../../../projects/tudu-components/src/lib/tudu-components.module.ts","../../../projects/tudu-components/src/lib/tudu-components.service.ts","../../../projects/tudu-components/src/public-api.ts","../../../projects/tudu-components/src/tudu-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-tudu-components',\n template: `\n <p>\n tudu-components works!sss\n </p>\n `,\n styles: [\n ]\n})\nexport class TuduComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-card-layout',\n templateUrl: './card-layout.component.html',\n styleUrls: ['./card-layout.component.css'],\n})\nexport class CardLayoutComponent implements OnInit {\n @Input() statusPedido: string = '';\n @Input() cardTemplateIndicator: number = 0; // 1 para serviço, 2 para candidatura\n\n tags: string[] = ['Residencial', 'Urgente', 'Elétrica'];\n\n statusOptions = [\n { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },\n { class: 'status-pending', text: 'Em andamento', icon: 'fa-spinner' },\n { class: 'status-completed', text: 'Concluído', icon: 'fa-check' },\n { class: 'status-cancelled', text: 'Cancelado', icon: 'fa-times' },\n ];\n\n currentStatus = this.statusOptions[0];\n private statusInterval: any;\n flowIndicator: string = '1';\n\n constructor(private route: Router) {\n this.route.events.subscribe(() => {\n if (this.route.url.includes('budgets')) {\n this.flowIndicator = 'budgets';\n console.log('asdasdadsasda', this.flowIndicator);\n }\n });\n }\n\n ngOnInit() {\n let index = 0;\n this.statusInterval = setInterval(() => {\n index = (index + 1) % this.statusOptions.length;\n this.currentStatus = this.statusOptions[index];\n }, 3000);\n\n console.log('cardTemplateIndicator', this.cardTemplateIndicator);\n }\n\n get badgeStyles(): { [key: string]: string } {\n const status = this.statusPedido?.toLowerCase();\n\n switch (status) {\n case 'finalizado':\n return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave\n case 'concluido':\n return { backgroundColor: '#0096881c', color: '#009688' }; // teal\n case 'cancelado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'publicado':\n return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave\n case 'recusado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'em negociacao':\n return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave\n case 'pendente':\n return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro\n default:\n return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão\n }\n }\n\n ngOnDestroy() {\n if (this.statusInterval) {\n clearInterval(this.statusInterval);\n }\n }\n\n verDetalhes() {\n alert('Abrir detalhes do serviço...');\n }\n}\n","<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=\"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","import { Component, ElementRef, HostListener, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.css'],\n})\nexport class NavComponent implements OnInit {\n openClose: boolean = false;\n message: string = '';\n\n lastScrollPosition = 0;\n isHeaderVisible = true;\n headerHeight = 0;\n isMobile = false;\n\n hasOffer: boolean = false;\n\n constructor(private router: Router, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.checkMobile();\n\n // Obtém a altura do header-menu após a view ser inicializada\n const headerMenu = this.el.nativeElement.querySelector('[header-menu]');\n if (headerMenu) {\n this.headerHeight = headerMenu.offsetHeight;\n }\n }\n\n ngOnInit(): void {\n this.hasOffer = this.router.url.includes('offer');\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkMobile();\n }\n\n private checkMobile() {\n this.isMobile = window.innerWidth < 768; // 768px é o breakpoint padrão do Tailwind para md\n if (!this.isMobile) {\n this.isHeaderVisible = true; // Garante que fique visível em desktop\n }\n }\n public menu() {\n this.openClose = !this.openClose;\n }\n\n receiveMessage(event: string) {\n this.message = event;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (!this.isMobile) return;\n\n const currentScrollPosition =\n window.pageYOffset || document.documentElement.scrollTop;\n\n // Scroll DOWN - esconde o header\n if (\n currentScrollPosition > this.lastScrollPosition &&\n currentScrollPosition > 50\n ) {\n this.isHeaderVisible = false;\n }\n // Scroll UP - mostra o header\n else if (currentScrollPosition < this.lastScrollPosition) {\n this.isHeaderVisible = true;\n }\n\n this.lastScrollPosition = currentScrollPosition;\n }\n}\n","<!-- 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 hr-nav-bottom\"\n [class.-translate-y-full]=\"!isHeaderVisible\"\n style=\"background-color: var(--primary)\"\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","import { NgModule } from '@angular/core';\nimport { TuduComponentsComponent } from './tudu-components.component';\nimport { CommonModule } from '@angular/common';\nimport { CardLayoutComponent } from '../lib/components/card-layout/card-layout.component';\nimport { NavComponent } from './components/nav/nav.component';\n\n@NgModule({\n declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n imports: [CommonModule],\n exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n})\nexport class TuduComponentsModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TuduComponentsService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of tudu-components\n */\nexport * from './lib/tudu-components.component';\nexport * from './lib/tudu-components.module'; // ← Se criou este módulo\n\nexport * from './lib/components/card-layout/card-layout.component';\nexport * from './lib/components/nav/nav.component';\nexport * from './lib/tudu-components.service';\n// export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tudu-components.mjs","sources":["../../../projects/tudu-components/src/lib/tudu-components.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.ts","../../../projects/tudu-components/src/lib/components/card-layout/card-layout.component.html","../../../projects/tudu-components/src/lib/components/nav/nav.component.ts","../../../projects/tudu-components/src/lib/components/nav/nav.component.html","../../../projects/tudu-components/src/lib/tudu-components.module.ts","../../../projects/tudu-components/src/lib/tudu-components.service.ts","../../../projects/tudu-components/src/public-api.ts","../../../projects/tudu-components/src/tudu-components.ts"],"sourcesContent":["import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-tudu-components',\n template: `\n <p>\n tudu-components works!sss\n </p>\n `,\n styles: [\n ]\n})\nexport class TuduComponentsComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { Component, Input, OnInit } from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-card-layout',\n templateUrl: './card-layout.component.html',\n styleUrls: ['./card-layout.component.css'],\n})\nexport class CardLayoutComponent implements OnInit {\n @Input() statusPedido: string = '';\n @Input() cardTemplateIndicator: number = 0; // 1 para serviço, 2 para candidatura\n @Input() hideHeader: boolean = false; // 1 para serviço, 2 para candidatura\n\n tags: string[] = ['Residencial', 'Urgente', 'Elétrica'];\n\n statusOptions = [\n { class: 'status-active', text: 'Ativo', icon: 'fa-circle' },\n { class: 'status-pending', text: 'Em andamento', icon: 'fa-spinner' },\n { class: 'status-completed', text: 'Concluído', icon: 'fa-check' },\n { class: 'status-cancelled', text: 'Cancelado', icon: 'fa-times' },\n ];\n\n currentStatus = this.statusOptions[0];\n private statusInterval: any;\n flowIndicator: string = '1';\n\n constructor(private route: Router) {\n this.route.events.subscribe(() => {\n if (this.route.url.includes('budgets')) {\n this.flowIndicator = 'budgets';\n console.log('asdasdadsasda', this.flowIndicator);\n }\n });\n }\n\n ngOnInit() {\n let index = 0;\n this.statusInterval = setInterval(() => {\n index = (index + 1) % this.statusOptions.length;\n this.currentStatus = this.statusOptions[index];\n }, 3000);\n\n console.log('cardTemplateIndicator', this.cardTemplateIndicator);\n }\n\n get badgeStyles(): { [key: string]: string } {\n const status = this.statusPedido?.toLowerCase();\n\n switch (status) {\n case 'finalizado':\n return { backgroundColor: '#4caf5020', color: '#4caf50' }; // verde suave\n case 'concluido':\n return { backgroundColor: '#0096881c', color: '#009688' }; // teal\n case 'cancelado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'publicado':\n return { backgroundColor: '#0096ff1c', color: '#25a5ff' }; // azul suave\n case 'recusado':\n return { backgroundColor: '#ff52521c', color: '#ff5252' }; // vermelho claro\n case 'em negociacao':\n return { backgroundColor: '#ffab251f', color: '#ff9800' }; // laranja suave\n case 'pendente':\n return { backgroundColor: '#9a1fad1c', color: '#7e57c2' }; // roxo claro\n default:\n return { backgroundColor: '#e0e0e01c', color: '#757575' }; // cinza padrão\n }\n }\n\n ngOnDestroy() {\n if (this.statusInterval) {\n clearInterval(this.statusInterval);\n }\n }\n\n verDetalhes() {\n alert('Abrir detalhes do serviço...');\n }\n}\n","<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","import {\n Component,\n ElementRef,\n HostListener,\n Input,\n OnInit,\n} from '@angular/core';\nimport { Router } from '@angular/router';\n\n@Component({\n selector: 'lib-nav',\n templateUrl: './nav.component.html',\n styleUrls: ['./nav.component.css'],\n})\nexport class NavComponent implements OnInit {\n @Input() changeNavColor: boolean = false;\n\n openClose: boolean = false;\n message: string = '';\n\n lastScrollPosition = 0;\n isHeaderVisible = true;\n headerHeight = 0;\n isMobile = false;\n\n hasOffer: boolean = false;\n\n constructor(private router: Router, private el: ElementRef) {}\n\n ngAfterViewInit() {\n this.checkMobile();\n\n // Obtém a altura do header-menu após a view ser inicializada\n const headerMenu = this.el.nativeElement.querySelector('[header-menu]');\n if (headerMenu) {\n this.headerHeight = headerMenu.offsetHeight;\n }\n }\n\n ngOnInit(): void {\n this.hasOffer = this.router.url.includes('offer');\n }\n\n @HostListener('window:resize')\n onResize() {\n this.checkMobile();\n }\n\n private checkMobile() {\n this.isMobile = window.innerWidth < 768; // 768px é o breakpoint padrão do Tailwind para md\n if (!this.isMobile) {\n this.isHeaderVisible = true; // Garante que fique visível em desktop\n }\n }\n public menu() {\n this.openClose = !this.openClose;\n }\n\n receiveMessage(event: string) {\n this.message = event;\n }\n\n @HostListener('window:scroll', [])\n onWindowScroll() {\n if (!this.isMobile) return;\n\n const currentScrollPosition =\n window.pageYOffset || document.documentElement.scrollTop;\n\n // Scroll DOWN - esconde o header\n if (\n currentScrollPosition > this.lastScrollPosition &&\n currentScrollPosition > 50\n ) {\n this.isHeaderVisible = false;\n }\n // Scroll UP - mostra o header\n else if (currentScrollPosition < this.lastScrollPosition) {\n this.isHeaderVisible = true;\n }\n\n this.lastScrollPosition = currentScrollPosition;\n }\n}\n","<!-- 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","import { NgModule } from '@angular/core';\nimport { TuduComponentsComponent } from './tudu-components.component';\nimport { CommonModule } from '@angular/common';\nimport { CardLayoutComponent } from '../lib/components/card-layout/card-layout.component';\nimport { NavComponent } from './components/nav/nav.component';\n\n@NgModule({\n declarations: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n imports: [CommonModule],\n exports: [TuduComponentsComponent, CardLayoutComponent, NavComponent],\n})\nexport class TuduComponentsModule {}\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TuduComponentsService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of tudu-components\n */\nexport * from './lib/tudu-components.component';\nexport * from './lib/tudu-components.module'; // ← Se criou este módulo\n\nexport * from './lib/components/card-layout/card-layout.component';\nexport * from './lib/components/nav/nav.component';\nexport * from './lib/tudu-components.service';\n// export * from './lib/card-layout.module'; // ← Ou se usou CardLayoutModule\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export declare class CardLayoutComponent implements OnInit {
5
5
  private route;
6
6
  statusPedido: string;
7
7
  cardTemplateIndicator: number;
8
+ hideHeader: boolean;
8
9
  tags: string[];
9
10
  statusOptions: {
10
11
  class: string;
@@ -26,5 +27,5 @@ export declare class CardLayoutComponent implements OnInit {
26
27
  ngOnDestroy(): void;
27
28
  verDetalhes(): void;
28
29
  static ɵfac: i0.ɵɵFactoryDeclaration<CardLayoutComponent, never>;
29
- static ɵcmp: i0.ɵɵComponentDeclaration<CardLayoutComponent, "lib-card-layout", never, { "statusPedido": "statusPedido"; "cardTemplateIndicator": "cardTemplateIndicator"; }, {}, never, ["[service-icon]", "[service-title]", "[details-btn]", "[service-address]", "[status-badge]", "[order-number]", "[filter-tag]", "[conclusion-date]", "[info-row]", "[description]", "[main-btn]", "[price]"], false>;
30
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardLayoutComponent, "lib-card-layout", never, { "statusPedido": "statusPedido"; "cardTemplateIndicator": "cardTemplateIndicator"; "hideHeader": "hideHeader"; }, {}, never, ["[service-icon]", "[service-title]", "[details-btn]", "[service-address]", "[status-badge]", "[order-number]", "[filter-tag]", "[conclusion-date]", "[info-row]", "[description]", "[main-btn]", "[price]"], false>;
30
31
  }
@@ -4,6 +4,7 @@ import * as i0 from "@angular/core";
4
4
  export declare class NavComponent implements OnInit {
5
5
  private router;
6
6
  private el;
7
+ changeNavColor: boolean;
7
8
  openClose: boolean;
8
9
  message: string;
9
10
  lastScrollPosition: number;
@@ -20,5 +21,5 @@ export declare class NavComponent implements OnInit {
20
21
  receiveMessage(event: string): void;
21
22
  onWindowScroll(): void;
22
23
  static ɵfac: i0.ɵɵFactoryDeclaration<NavComponent, never>;
23
- static ɵcmp: i0.ɵɵComponentDeclaration<NavComponent, "lib-nav", never, {}, {}, never, ["[left-content]", "[central-content]", "[right-content]", "[header-menu]"], false>;
24
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavComponent, "lib-nav", never, { "changeNavColor": "changeNavColor"; }, {}, never, ["[left-content]", "[central-content]", "[right-content]", "[header-menu]"], false>;
24
25
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "tudu-components",
3
- "version": "0.0.2",
3
+ "version": "0.2.1",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^17.3.0",
6
6
  "@angular/core": "^17.3.0"
@@ -28,4 +28,4 @@
28
28
  "default": "./fesm2020/tudu-components.mjs"
29
29
  }
30
30
  }
31
- }
31
+ }
Binary file