ngx-opalbytes-components 1.28.0 → 1.30.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (43) hide show
  1. package/README.md +298 -0
  2. package/cli/cao-comp.cjs +10 -10
  3. package/fesm2022/ngx-opalbytes-components.mjs +394 -6
  4. package/fesm2022/ngx-opalbytes-components.mjs.map +1 -1
  5. package/package.json +1 -1
  6. package/src/lib/shared/components/avatar/avatar.constants.ts +17 -0
  7. package/src/lib/shared/components/avatar/avatar.css +44 -0
  8. package/src/lib/shared/components/avatar/avatar.html +27 -0
  9. package/src/lib/shared/components/avatar/avatar.model.ts +3 -0
  10. package/src/lib/shared/components/avatar/avatar.spec.ts +88 -0
  11. package/src/lib/shared/components/avatar/avatar.stories.ts +85 -0
  12. package/src/lib/shared/components/avatar/avatar.ts +83 -0
  13. package/src/lib/shared/components/avatar/index.ts +3 -0
  14. package/src/lib/shared/components/breadcrumb/breadcrumb.css +105 -0
  15. package/src/lib/shared/components/breadcrumb/breadcrumb.html +108 -0
  16. package/src/lib/shared/components/breadcrumb/breadcrumb.model.ts +54 -0
  17. package/src/lib/shared/components/breadcrumb/breadcrumb.spec.ts +93 -0
  18. package/src/lib/shared/components/breadcrumb/breadcrumb.stories.ts +122 -0
  19. package/src/lib/shared/components/breadcrumb/breadcrumb.ts +72 -0
  20. package/src/lib/shared/components/breadcrumb/index.ts +2 -0
  21. package/src/lib/shared/components/index.ts +5 -1
  22. package/src/lib/shared/components/popover/index.ts +3 -0
  23. package/src/lib/shared/components/popover/popover.css +149 -0
  24. package/src/lib/shared/components/popover/popover.html +44 -0
  25. package/src/lib/shared/components/popover/popover.model.ts +19 -0
  26. package/src/lib/shared/components/popover/popover.spec.ts +22 -0
  27. package/src/lib/shared/components/popover/popover.stories.ts +0 -0
  28. package/src/lib/shared/components/popover/popover.ts +312 -0
  29. package/src/lib/shared/components/progress-bar/index.ts +2 -0
  30. package/src/lib/shared/components/progress-bar/progress-bar.css +141 -0
  31. package/src/lib/shared/components/progress-bar/progress-bar.html +39 -0
  32. package/src/lib/shared/components/progress-bar/progress-bar.model.ts +8 -0
  33. package/src/lib/shared/components/progress-bar/progress-bar.spec.ts +94 -0
  34. package/src/lib/shared/components/progress-bar/progress-bar.stories.ts +53 -0
  35. package/src/lib/shared/components/progress-bar/progress-bar.ts +50 -0
  36. package/src/lib/shared/components/progress-spinner/index.ts +2 -0
  37. package/src/lib/shared/components/progress-spinner/progress-spinner.css +90 -0
  38. package/src/lib/shared/components/progress-spinner/progress-spinner.html +50 -0
  39. package/src/lib/shared/components/progress-spinner/progress-spinner.model.ts +8 -0
  40. package/src/lib/shared/components/progress-spinner/progress-spinner.spec.ts +85 -0
  41. package/src/lib/shared/components/progress-spinner/progress-spinner.stories.ts +73 -0
  42. package/src/lib/shared/components/progress-spinner/progress-spinner.ts +71 -0
  43. package/types/ngx-opalbytes-components.d.ts +262 -3
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.token.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion-item/accordion-item.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion-item/accordion-item.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-content.directive.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-label.directive.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-panel.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-group/tab-group.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-group/tab-group.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-icon/base-icon.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-icon/base-icon.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/kpi/kpi.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/kpi/kpi.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/skeleton/skeleton.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/skeleton/skeleton.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/form-field.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/form-field.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/error-state-matcher.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/hint/hint.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/hint/hint.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/error/error.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/error/error.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/card/card.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/card/card.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-toggle/base-toggle.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-toggle/base-toggle.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/slide-toggle/slide-toggle.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/slide-toggle/slide-toggle.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-group.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/checkbox/checkbox.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/checkbox/checkbox.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-filter-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-filter-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-pagination.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/widget.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/base-widget.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/base-widget.html","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\n\n/** Posição do ícone de expandir/recolher em relação ao texto do cabeçalho. */\nexport type CaoAccordionTogglePosition = 'before' | 'after';\n\n/** Alinhamento horizontal de texto (cabeçalho ou conteúdo). */\nexport type CaoAccordionAlign = 'start' | 'center' | 'end';\n\n/**\n * Modo de exibição do accordion.\n * - `default`: painéis unidos dentro de um único contorno arredondado.\n * - `flat`: painéis unidos, sem bordas laterais nem cantos arredondados.\n * - `separated`: cada painel é um cartão independente, separado por `gap`.\n */\nexport type CaoAccordionDisplayMode = 'default' | 'flat' | 'separated';\n\n/** Contrato mínimo que um item precisa expor para ser controlado pelo accordion. */\nexport interface ICaoAccordionItemRef {\n readonly expanded: Signal<boolean>;\n readonly isDisabled: Signal<boolean>;\n open(): void;\n close(): void;\n}\n\n/**\n * Contrato do accordion consumido pelos itens.\n * Existe para evitar import circular entre `accordion` e `accordion-item`.\n */\nexport interface ICaoAccordionHost {\n readonly multi: Signal<boolean>;\n readonly hideToggle: Signal<boolean>;\n readonly togglePosition: Signal<CaoAccordionTogglePosition>;\n readonly headerAlign: Signal<CaoAccordionAlign>;\n readonly displayMode: Signal<CaoAccordionDisplayMode>;\n register(item: ICaoAccordionItemRef): void;\n unregister(item: ICaoAccordionItemRef): void;\n notifyOpened(item: ICaoAccordionItemRef): void;\n}\n\nexport const CAO_ACCORDION = new InjectionToken<ICaoAccordionHost>('CAO_ACCORDION');","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n CAO_ACCORDION,\n CaoAccordionAlign,\n CaoAccordionDisplayMode,\n CaoAccordionTogglePosition,\n ICaoAccordionHost,\n ICaoAccordionItemRef,\n} from './accordion.token';\n\nconst HEADER_SELECTOR = '.cao-accordion-item__header:not(:disabled)';\n\n/**\n * Container de `<cao-accordion-item>`. Controla o modo de expansão (único ou múltiplo),\n * a navegação por teclado e o tema (cores, posições e visibilidade) herdado pelos itens.\n */\n@Component({\n selector: 'cao-accordion',\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CAO_ACCORDION, useExisting: forwardRef(() => CaoAccordionComponent) }],\n})\nexport class CaoAccordionComponent implements ICaoAccordionHost {\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly items = new Set<ICaoAccordionItemRef>();\n\n // ----- Comportamento -----\n /** Permite vários itens expandidos ao mesmo tempo. */\n readonly multi = input<boolean>(false);\n /** Oculta o ícone de expandir/recolher em todos os itens (cada item pode sobrescrever). */\n readonly hideToggle = input<boolean>(false);\n /** Exibe ou oculta o accordion inteiro. */\n readonly isVisible = input<boolean>(true);\n /** Atributo `data-cy` para testes E2E. */\n readonly dataCy = input<string>('');\n\n // ----- Posição / layout -----\n readonly togglePosition = input<CaoAccordionTogglePosition>('after');\n readonly headerAlign = input<CaoAccordionAlign>('start');\n readonly contentAlign = input<CaoAccordionAlign>('start');\n readonly displayMode = input<CaoAccordionDisplayMode>('default');\n\n // ----- Cores -----\n readonly headerBgColor = input<string>('');\n readonly headerTextColor = input<string>('');\n readonly headerHoverBgColor = input<string>('');\n readonly headerActiveBgColor = input<string>('');\n readonly activeColor = input<string>('');\n readonly contentBgColor = input<string>('');\n readonly contentTextColor = input<string>('');\n readonly borderColor = input<string>('');\n readonly disabledColor = input<string>('');\n readonly focusRingColor = input<string>('');\n readonly iconColor = input<string>('');\n\n // ----- Dimensões / animação -----\n readonly borderRadius = input<string>('');\n readonly gap = input<string>('');\n readonly headerPadding = input<string>('');\n readonly contentPadding = input<string>('');\n readonly animationDuration = input<string>('');\n\n private readonly hostStyle = computed(() => ({\n '--cao-accordion-header-bg': this.headerBgColor() || null,\n '--cao-accordion-header-text': this.headerTextColor() || null,\n '--cao-accordion-header-hover-bg': this.headerHoverBgColor() || null,\n '--cao-accordion-header-active-bg': this.headerActiveBgColor() || null,\n '--cao-accordion-active-color': this.activeColor() || null,\n '--cao-accordion-content-bg': this.contentBgColor() || null,\n '--cao-accordion-content-text': this.contentTextColor() || null,\n '--cao-accordion-border-color': this.borderColor() || null,\n '--cao-accordion-disabled-color': this.disabledColor() || null,\n '--cao-accordion-focus-ring': this.focusRingColor() || null,\n '--cao-accordion-icon-color': this.iconColor() || null,\n '--cao-accordion-radius': this.borderRadius() || null,\n '--cao-accordion-gap': this.gap() || null,\n '--cao-accordion-header-padding': this.headerPadding() || null,\n '--cao-accordion-content-padding': this.contentPadding() || null,\n '--cao-accordion-duration': this.animationDuration() || null,\n '--cao-accordion-content-align': this.contentAlign(),\n }));\n\n @HostBinding('style')\n get styleBinding(): Record<string, string | null> {\n return this.hostStyle();\n }\n\n @HostBinding('attr.data-cy')\n get dataCyAttr(): string | null {\n return this.dataCy() || null;\n }\n\n @HostBinding('class.cao-accordion--hidden')\n get hiddenClass(): boolean {\n return !this.isVisible();\n }\n\n @HostBinding('class.cao-accordion--default')\n get defaultModeClass(): boolean {\n return this.displayMode() === 'default';\n }\n\n @HostBinding('class.cao-accordion--flat')\n get flatModeClass(): boolean {\n return this.displayMode() === 'flat';\n }\n\n @HostBinding('class.cao-accordion--separated')\n get separatedModeClass(): boolean {\n return this.displayMode() === 'separated';\n }\n\n /** Expande todos os itens. Só tem efeito quando `multi` está ativo. */\n openAll(): void {\n if (!this.multi()) {\n return;\n }\n this.items.forEach((item) => item.open());\n }\n\n /** Recolhe todos os itens. */\n closeAll(): void {\n this.items.forEach((item) => item.close());\n }\n\n register(item: ICaoAccordionItemRef): void {\n this.items.add(item);\n }\n\n unregister(item: ICaoAccordionItemRef): void {\n this.items.delete(item);\n }\n\n /** Chamado pelos itens ao expandir: no modo único, recolhe os demais. */\n notifyOpened(item: ICaoAccordionItemRef): void {\n if (this.multi()) {\n return;\n }\n this.items.forEach((other) => {\n if (other !== item && other.expanded()) {\n other.close();\n }\n });\n }\n\n /** Navegação por teclado entre cabeçalhos: ↑ ↓ Home End. */\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n const root = this.host.nativeElement;\n const target = event.target as HTMLElement | null;\n\n if (!target?.classList.contains('cao-accordion-item__header') || target.closest('cao-accordion') !== root) {\n return;\n }\n\n const headers = Array.from(root.querySelectorAll<HTMLElement>(HEADER_SELECTOR)).filter(\n (header) => header.closest('cao-accordion') === root && !header.closest('.cao-accordion-item--hidden'),\n );\n const current = headers.indexOf(target);\n const last = headers.length - 1;\n let next: number;\n\n switch (event.key) {\n case 'ArrowDown':\n next = current >= last ? 0 : current + 1;\n break;\n case 'ArrowUp':\n next = current <= 0 ? last : current - 1;\n break;\n case 'Home':\n next = 0;\n break;\n case 'End':\n next = last;\n break;\n default:\n return;\n }\n\n event.preventDefault();\n headers[next]?.focus();\n }\n}","<ng-content />","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n HostBinding,\n inject,\n input,\n model,\n output,\n untracked,\n} from '@angular/core';\n\nimport { CAO_ACCORDION, CaoAccordionAlign, CaoAccordionTogglePosition, ICaoAccordionItemRef } from '../accordion/accordion.token';\n\n\nlet nextId = 0;\n\n/**\n * Item do accordion. Pode ser usado dentro de `<cao-accordion>` ou isolado (como um cartão expansível).\n * Os inputs de cor/posição, quando informados, sobrescrevem os valores definidos no accordion.\n */\n@Component({\n selector: 'cao-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrl: './accordion-item.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoAccordionItemComponent implements ICaoAccordionItemRef {\n private readonly accordion = inject(CAO_ACCORDION, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n private previousExpanded: boolean | null = null;\n\n protected readonly headerId = `cao-accordion-header-${nextId}`;\n protected readonly panelId = `cao-accordion-panel-${nextId++}`;\n\n // ----- Conteúdo -----\n readonly label = input<string>('');\n readonly description = input<string>('');\n /** Nível do heading (aria-level) do cabeçalho. */\n readonly headingLevel = input<number>(3);\n\n // ----- Estado -----\n /** Estado de expansão. Suporta two-way binding: `[(expanded)]`. */\n readonly expanded = model<boolean>(false);\n readonly isDisabled = input<boolean>(false);\n /** Exibe ou oculta o item. */\n readonly isVisible = input<boolean>(true);\n readonly dataCy = input<string>('');\n\n // ----- Posição (sobrescreve o accordion quando informado) -----\n readonly hideToggle = input<boolean | undefined>(undefined);\n readonly togglePosition = input<CaoAccordionTogglePosition | undefined>(undefined);\n readonly headerAlign = input<CaoAccordionAlign | undefined>(undefined);\n\n // ----- Cores (sobrescrevem o accordion quando informadas) -----\n readonly headerBgColor = input<string>('');\n readonly headerTextColor = input<string>('');\n readonly headerActiveBgColor = input<string>('');\n readonly activeColor = input<string>('');\n readonly contentBgColor = input<string>('');\n readonly contentTextColor = input<string>('');\n readonly borderColor = input<string>('');\n readonly iconColor = input<string>('');\n\n // ----- Eventos -----\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n protected readonly toggleHidden = computed(\n () => this.hideToggle() ?? this.accordion?.hideToggle() ?? false,\n );\n protected readonly togglePos = computed(\n () => this.togglePosition() ?? this.accordion?.togglePosition() ?? 'after',\n );\n private readonly align = computed(() => this.headerAlign() ?? this.accordion?.headerAlign() ?? 'start');\n private readonly isCard = computed(() => (this.accordion?.displayMode() ?? 'separated') === 'separated');\n\n protected readonly headerDataCy = computed(() => (this.dataCy() ? `${this.dataCy()}-header` : null));\n protected readonly panelDataCy = computed(() => (this.dataCy() ? `${this.dataCy()}-content` : null));\n\n private readonly hostStyle = computed(() => ({\n '--cao-accordion-header-bg': this.headerBgColor() || null,\n '--cao-accordion-header-text': this.headerTextColor() || null,\n '--cao-accordion-header-active-bg': this.headerActiveBgColor() || null,\n '--cao-accordion-active-color': this.activeColor() || null,\n '--cao-accordion-content-bg': this.contentBgColor() || null,\n '--cao-accordion-content-text': this.contentTextColor() || null,\n '--cao-accordion-border-color': this.borderColor() || null,\n '--cao-accordion-icon-color': this.iconColor() || null,\n '--cao-accordion-header-align': this.align(),\n }));\n\n @HostBinding('style')\n get styleBinding(): Record<string, string | null> {\n return this.hostStyle();\n }\n\n @HostBinding('attr.data-cy')\n get dataCyAttr(): string | null {\n return this.dataCy() || null;\n }\n\n @HostBinding('class.cao-accordion-item--hidden')\n get hiddenClass(): boolean {\n return !this.isVisible();\n }\n\n @HostBinding('class.cao-accordion-item--expanded')\n get expandedClass(): boolean {\n return this.expanded();\n }\n\n @HostBinding('class.cao-accordion-item--card')\n get cardClass(): boolean {\n return this.isCard();\n }\n\n constructor() {\n this.accordion?.register(this);\n this.destroyRef.onDestroy(() => this.accordion?.unregister(this));\n\n effect(() => {\n const isExpanded = this.expanded();\n untracked(() => this.handleExpandedChange(isExpanded));\n });\n }\n\n /** Alterna o estado (ignorado quando o item está desabilitado). */\n toggle(): void {\n if (this.isDisabled()) {\n return;\n }\n this.expanded.update((value) => !value);\n }\n\n open(): void {\n this.expanded.set(true);\n }\n\n close(): void {\n this.expanded.set(false);\n }\n\n private handleExpandedChange(isExpanded: boolean): void {\n if (isExpanded) {\n this.accordion?.notifyOpened(this);\n }\n\n if (this.previousExpanded !== null && this.previousExpanded !== isExpanded) {\n const event = isExpanded ? this.opened : this.closed;\n event.emit();\n }\n this.previousExpanded = isExpanded;\n }\n}","<div class=\"cao-accordion-item\">\n <div class=\"cao-accordion-item__heading\" role=\"heading\" [attr.aria-level]=\"headingLevel()\">\n <button\n type=\"button\"\n class=\"cao-accordion-item__header\"\n [class.cao-accordion-item__header--toggle-before]=\"togglePos() === 'before'\"\n [id]=\"headerId\"\n [disabled]=\"isDisabled()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"panelId\"\n [attr.data-cy]=\"headerDataCy()\"\n (click)=\"toggle()\">\n <span class=\"cao-accordion-item__text\">\n <span class=\"cao-accordion-item__label\">{{ label() }}</span>\n @if (description()) {\n <span class=\"cao-accordion-item__description\">{{ description() }}</span>\n }\n <ng-content select=\"[caoAccordionHeader]\" />\n </span>\n\n @if (!toggleHidden()) {\n <svg\n class=\"cao-accordion-item__icon\"\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\">\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n }\n </button>\n </div>\n\n <div\n class=\"cao-accordion-item__panel\"\n role=\"region\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.data-cy]=\"panelDataCy()\">\n <div class=\"cao-accordion-item__panel-inner\">\n <div class=\"cao-accordion-item__content\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\n@Component({\n standalone: true,\n selector: \"cao-button\",\n templateUrl: \"./base-button.component.html\",\n styleUrls: [\"./base-button.component.scss\"],\n imports: [CommonModule, MatTooltipModule, LucideDynamicIcon],\n})\nexport class CaoBaseButtonComponent implements OnInit{\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n @Input() iconColor?: string;\n @Input() strokeWidthIcon = 1\n @Input() minTextToTooltip = 20\n @Input() iconSize = 24\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= this.minTextToTooltip){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n class=\"base-button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [class.dark-mode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [disabled]=\"isDisabled || isLoading\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\">\n @if (leadingIcon) {\n <span class=\"leading-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"leadingIcon\" [size]=\"iconSize\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"leadingIcon\" [style.width]=\"iconSize\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span class=\"trailing-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"trailingIcon\" [size]=\"iconSize\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"trailingIcon\" [style.width]=\"iconSize\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from \"@angular/forms\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\n\nexport type CaoTypeInputs = 'text' | 'textarea' | 'number' | 'password' | 'date'\n\n@Component({\n standalone: true,\n selector: \"cao-input\",\n templateUrl: \"./base-input.html\",\n styleUrls: [\"./base-input.css\"],\n imports: [CommonModule, FormsModule, NgxMaskDirective, MatTooltipModule, LucideDynamicIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CaoBaseInput,\n multi: true,\n },\n provideNgxMask(),\n ],\n})\nexport class CaoBaseInput implements ControlValueAccessor {\n @Input() type: CaoTypeInputs = \"text\" ;\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"form-field input-component\" [class.search-mode]=\"searchMode\">\n <div class=\"input-wrapper\" [class.has-leading-icon]=\"_leadingIcon\" [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n @if (_leadingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\"/>\n </div>\n } } @switch (type) { \n @case ('textarea') {\n <textarea matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [rows]=\"textareaRows\" [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\"\n [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"></textarea>\n } \n @default {\n <input matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"below\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\" [type]=\"type\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\" [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (change)=\"onInputChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" />\n } } @if (_trailingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n } } \n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n CommonModule\n} from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n forwardRef,\n inject,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n Renderer2,\n ViewContainerRef,\n AfterViewInit,\n TemplateRef\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport {\n Observable,\n Subscription,\n startWith,\n map,\n BehaviorSubject,\n combineLatest\n} from \"rxjs\";\n\n\nexport interface ICaoAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.component.html\",\n styleUrls: [\"./autocomplete.component.scss\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n LucideDynamicIcon,\n OverlayModule,\n CdkScrollable\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class CaoAutocompleteComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: ICaoAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() _leadingIcon?: string;\n @Input() _trailingIcon?: string;\n @Input() optionIcon?: string;\n @Input() optionIConColor?: string;\n @Input() isLucideOptionIcon?: boolean;\n @Input() autocompleteBgColor = 'white';\n @Input() strokeWidthIcon = 1;\n @Input() isDisabled = false;\n @Input() inputHeigth = '50px';\n @Input() iconSize = 24\n\n @Input() checkIcon = '✓';\n @Input() showCheckIcon = true;\n @Input() isLucideCheckIcon = false;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoAutoCompleteOption>();\n @Output() readonly blurEvent = new EventEmitter<void>();\n @Output() readonly focusEvent = new EventEmitter<void>();\n\n @Output() readonly leadingIconClick = new EventEmitter<MouseEvent | Event>();\n @Output() readonly trailingIconClick = new EventEmitter<MouseEvent | Event>();\n\n @ViewChild('inputEl') inputEl!: ElementRef<HTMLInputElement>;\n @ViewChild('wrapper', { static: true }) wrapperEl!: ElementRef<HTMLDivElement>;\n \n // CORREÇÃO: ViewChild para o ng-template\n @ViewChild('panel', { static: true }) panelTemplate!: TemplateRef<any>;\n\n /** controla apenas o texto digitado / exibido no input */\n internalControl = new FormControl<string>(\"\");\n filteredOptions$!: Observable<ICaoAutoCompleteOption[]>;\n filteredOptionsList: ICaoAutoCompleteOption[] = [];\n\n isFocused = false;\n isPanelOpen = false;\n activeIndex = -1;\n\n private static uidSeq = 0;\n readonly listboxId = `cao-autocomplete-listbox-${CaoAutocompleteComponent.uidSeq++}`;\n\n private selectedOption: ICaoAutoCompleteOption | null = null;\n private options$ = new BehaviorSubject<ICaoAutoCompleteOption[]>([]);\n /** indica se o valor atual do internalControl foi digitado pelo usuário (e não escrito programaticamente) */\n private isUserTyping = false;\n private el = inject(ElementRef<HTMLElement>);\n private cdr = inject(ChangeDetectorRef);\n private renderer = inject(Renderer2);\n \n // Injeções do CDK Overlay\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private scrollDispatcher = inject(ScrollDispatcher);\n\n private sub = new Subscription();\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal<any> | null = null;\n\n private onChange: (value: ICaoAutoCompleteOption | string | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n ngOnInit(): void {\n this.setInputHeight();\n this.filteredOptions$ = combineLatest([\n this.internalControl.valueChanges.pipe(startWith(\"\")),\n this.options$,\n ]).pipe(\n map(([value]) => this.filter(value || \"\"))\n );\n\n this.sub.add(\n this.filteredOptions$.subscribe((list) => {\n this.filteredOptionsList = list;\n this.activeIndex = list.length ? 0 : -1;\n // Atualiza o overlay se estiver aberto e anexado\n if (this.isPanelOpen && this.portal && this.overlayRef?.hasAttached()) {\n this.overlayRef?.updatePosition();\n }\n })\n );\n\n this.sub.add(\n this.control.valueChanges.subscribe((value) => {\n this.writeDisplayValue(value);\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n })\n );\n\n this.setStyle();\n this.setupOverlay();\n }\n\n ngAfterViewInit(): void {\n // CORREÇÃO: Usando o TemplateRef obtido do ViewChild\n this.portal = new TemplatePortal(\n this.panelTemplate,\n this.viewContainerRef\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.options$.next(changes['options'].currentValue ?? []);\n }\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.closeOverlay();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private setupOverlay(): void {\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n \n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.wrapperEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n }\n ])\n .withDefaultOffsetX(0)\n .withFlexibleDimensions(false)\n .withViewportMargin(8),\n scrollStrategy: scrollStrategy,\n hasBackdrop: false,\n backdropClass: '',\n minWidth: 200,\n maxHeight: 260,\n });\n\n // Fecha o overlay quando houver scroll fora do elemento\n this.scrollDispatcher.scrolled().subscribe((scrollable) => {\n if (this.isPanelOpen) {\n const overlayEl = this.overlayRef?.overlayElement;\n if (scrollable instanceof CdkScrollable) {\n const scrollableEl = scrollable.getElementRef().nativeElement;\n if (overlayEl?.contains(scrollableEl)) {\n return;\n }\n }\n this.closePanel();\n }\n });\n }\n\n private closeOverlay(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n this.isPanelOpen = false;\n }\n\n private openOverlay(): void {\n if (!this.overlayRef || !this.portal) {return;}\n\n this.overlayRef.updateSize({\n width: this.wrapperEl.nativeElement.offsetWidth,\n });\n\n if (!this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n }\n\n this.overlayRef.updatePosition();\n\n this.isPanelOpen = true;\n this.cdr.markForCheck();\n }\n\n private setStyle(): void {\n this.renderer.setStyle(\n this.el.nativeElement,\n '--autocomplete-bg-color',\n this.autocompleteBgColor\n );\n }\n\n // ---------- Painel ----------\n\n openPanel(): void {\n if (this.isDisabled || this.isPanelOpen) { return; }\n \n if (this.selectedOption && !this.isUserTyping) {\n // Ao reabrir com uma opção já selecionada (e sem edição manual do usuário),\n // exibe todas as opções, com a selecionada no topo.\n this.filteredOptionsList = this.filter(\"\");\n const idx = this.filteredOptionsList.findIndex(o => o.id === this.selectedOption?.id);\n this.activeIndex = idx >= 0 ? idx : (this.filteredOptionsList.length ? 0 : -1);\n }\n\n this.openOverlay();\n }\n\n closePanel(): void {\n if (!this.isPanelOpen) { return; }\n this.closeOverlay();\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.isPanelOpen) { return; }\n const target = event.target as Node;\n const clickedInsideHost = this.el.nativeElement.contains(target);\n const clickedInsideOverlay = this.overlayRef?.overlayElement?.contains(target);\n \n if (!clickedInsideHost && !clickedInsideOverlay) {\n this.closePanel();\n }\n }\n\n // ---------- Eventos do input ----------\n\n onFocus(): void {\n this.isFocused = true;\n this.focusEvent.emit();\n this.onTouched();\n this.openPanel();\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.blurEvent.emit();\n this.onTouched();\n\n // Não fecha o overlay imediatamente no blur para permitir seleção\n setTimeout(() => {\n if (!this.isPanelOpen) {return;}\n const activeElement = document.activeElement;\n const isOverlayElement = this.overlayRef?.overlayElement?.contains(activeElement);\n const isInputElement = this.inputEl?.nativeElement === activeElement;\n \n if (!isOverlayElement && !isInputElement) {\n this.closePanel();\n }\n }, 150);\n }\n\n onInputKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isPanelOpen) { this.openPanel(); return; }\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isPanelOpen) { this.openPanel(); return; }\n this.moveActiveIndex(-1);\n break;\n case 'Enter':\n if (this.isPanelOpen && this.activeIndex >= 0) {\n event.preventDefault();\n const option = this.filteredOptionsList[this.activeIndex];\n if (option) { this.selectItem(option); }\n }\n break;\n case 'Escape':\n if (this.isPanelOpen) {\n event.preventDefault();\n this.closePanel();\n } else {\n this.clearSelection();\n }\n break;\n case 'Tab':\n this.closePanel();\n break;\n }\n }\n\n private moveActiveIndex(step: number): void {\n if (!this.filteredOptionsList.length) { return; }\n const total = this.filteredOptionsList.length;\n this.activeIndex = (this.activeIndex + step + total) % total;\n this.cdr.markForCheck();\n }\n\n // ---------- Seleção ----------\n\n selectItem(option: ICaoAutoCompleteOption): void {\n this.selectedOption = option;\n this.writeDisplayValue(option, { emitEvent: false });\n this.control.setValue(option, { emitEvent: false });\n this.onChange(option);\n this.itemSelected.emit(option);\n\n // Reordena a lista filtrada para que a opção selecionada fique no topo\n this.filteredOptionsList = this.moveSelectedToTop(this.filteredOptionsList, option);\n\n this.closePanel();\n\n // Remove o foco do input após a seleção\n this.inputEl?.nativeElement.blur();\n this.isFocused = false;\n\n this.cdr.markForCheck();\n }\n\n selectOption(option: ICaoAutoCompleteOption): void {\n this.selectItem(option);\n }\n\n clearSelection(): void {\n this.selectedOption = null;\n this.writeDisplayValue(\"\", { emitEvent: false });\n this.control.setValue(null, { emitEvent: true });\n this.onChange(null);\n this.onTouched();\n this.closePanel();\n }\n\n onLeadingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.onFocus()\n this.leadingIconClick.emit(event);\n }\n\n onTrailingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.onFocus()\n this.trailingIconClick.emit(event);\n }\n\n // ---------- Filtro / display ----------\n\n private filter(value: string): ICaoAutoCompleteOption[] {\n const filterValue = (value || \"\").toLowerCase();\n const currentOptions = this.options$.getValue();\n\n if (!currentOptions?.length) {\n return [];\n }\n\n const matched = currentOptions.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n\n return this.selectedOption ? this.moveSelectedToTop(matched, this.selectedOption) : matched;\n }\n\n /** Move a opção selecionada para o início da lista, mantendo a ordem das demais */\n private moveSelectedToTop(\n list: ICaoAutoCompleteOption[],\n selected: ICaoAutoCompleteOption\n ): ICaoAutoCompleteOption[] {\n const selectedIndex = list.findIndex((o) => o.id === selected.id);\n\n if (selectedIndex <= 0) {\n return list;\n }\n\n const reordered = [...list];\n const [selectedItem] = reordered.splice(selectedIndex, 1);\n reordered.unshift(selectedItem);\n return reordered;\n }\n\n private writeDisplayValue(\n value: ICaoAutoCompleteOption | string | null | undefined,\n options: { emitEvent?: boolean } = { emitEvent: false }\n ): void {\n const text = value && typeof value === \"object\" ? this.displayFn(value) : (value ?? \"\");\n this.isUserTyping = false;\n this.internalControl.setValue(text, options);\n }\n\n /** Marca que o usuário está digitando manualmente no campo (ativa o filtro por texto) */\n onUserInput(): void {\n this.isUserTyping = true;\n }\n\n displayFn(option: ICaoAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n isOptionSelected(option: ICaoAutoCompleteOption): boolean {\n return this.selectedOption?.id !== undefined && this.selectedOption?.id === option.id;\n }\n \n trackByOptionId(_: number, option: ICaoAutoCompleteOption): string | number {\n return option.id ?? option.nome;\n }\n\n optionId(option: ICaoAutoCompleteOption): string {\n const key = (option.id ?? option.nome).toString().replace(/[^a-zA-Z0-9_-]/g, '-');\n return `${this.listboxId}-opt-${key}`;\n }\n\n get activeOptionId(): string | null {\n if (!this.isPanelOpen || this.activeIndex < 0) {\n return null;\n }\n const option = this.filteredOptionsList[this.activeIndex];\n return option ? this.optionId(option) : null;\n }\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) { return \"CPF inválido\"; }\n if (this.control.hasError(\"cellPhoneInvalid\")) { return \"Número inválido\"; }\n if (this.control.hasError(\"emailInvalid\")) { return \"Email inválido\"; }\n if (this.control.hasError(\"cnpjInvalid\")) { return \"CNPJ inválido\"; }\n if (this.control.hasError(\"rgInvalid\")) { return \"RG inválido\"; }\n if (this.control.hasError(\"dateInvalid\")) { return \"Data inválida\"; }\n if (this.control.hasError(\"dateStartInvalid\")) { return \"Data Inicial inválida\"; }\n if (this.control.hasError(\"dateEndInvalid\")) { return \"Data Final inválida\"; }\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: ICaoAutoCompleteOption | string): void {\n this.writeDisplayValue(value, { emitEvent: false });\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n }\n\n registerOnChange(fn: (value: ICaoAutoCompleteOption | string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setInputHeight(): void {\n this.renderer.setStyle(\n this.el.nativeElement,\n \"--form-field-height\",\n this.inputHeigth\n );\n }\n}","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"dataCy\">{{ label }}</label>\n }\n\n <div class=\"rnv-autocomplete-field autocomplete\">\n <div\n #wrapper\n class=\"input-wrapper\"\n [class.has-leading-icon]=\"_leadingIcon\"\n [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\"\n [class.invalid]=\"control?.touched && control?.invalid\"\n [class.valid]=\"control?.touched && control?.valid && control?.value\">\n\n @if (_leadingIcon) {\n @if (isLucideIcon) {\n <div class=\"icon\"\n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\">\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\"\n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\">\n <img alt=\"ícone de início\" [style.width]=\"iconSize\" [src]=\"_leadingIcon\" />\n </div>\n }\n }\n\n <input\n #inputEl\n type=\"text\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isPanelOpen\"\n [attr.aria-controls]=\"isPanelOpen ? listboxId : null\"\n [attr.aria-activedescendant]=\"activeOptionId\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [formControl]=\"internalControl\"\n [attr.data-cy]=\"dataCy\"\n [id]=\"dataCy\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (input)=\"onUserInput()\"\n (keydown)=\"onInputKeydown($event)\" />\n\n @if (_trailingIcon) {\n @if (isLucideIcon) {\n <div\n tabindex=\"0\"\n class=\"icon trailing-icon\"\n (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\">\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div\n tabindex=\"0\"\n class=\"icon trailing-icon\"\n (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\">\n <img alt=\"ícone de fim\" [style.width]=\"iconSize\" [src]=\"_trailingIcon\" />\n </div>\n }\n }\n </div>\n\n @if (errorText) {\n <span class=\"error-text\">{{ errorText }}</span>\n }\n </div>\n</div>\n\n<ng-template #panel>\n <div\n class=\"autocomplete-panel\"\n cdkScrollable\n role=\"listbox\"\n [id]=\"listboxId\"\n [style.width]=\"'100%'\"\n [style.max-height]=\"'260px'\"\n [style.background]=\"autocompleteBgColor\">\n \n @if (!filteredOptionsList.length) {\n <div class=\"empty-state\">Nenhum resultado encontrado</div>\n }\n\n @for (option of filteredOptionsList; track trackByOptionId($index, option)) {\n <div\n class=\"option-item\"\n role=\"option\"\n [id]=\"optionId(option)\"\n [class.active]=\"$index === activeIndex\"\n [class.selected]=\"isOptionSelected(option)\"\n [attr.aria-selected]=\"$index === activeIndex\"\n (mousedown)=\"$event.preventDefault(); selectOption(option)\"\n (mouseenter)=\"activeIndex = $index\">\n <span>{{ option.nome }}</span>\n\n <div class=\"option-item-icons\">\n @if (showCheckIcon && isOptionSelected(option)) {\n @if (isLucideCheckIcon) {\n <svg class=\"check-icon\" [strokeWidth]=\"strokeWidthIcon\" [lucideIcon]=\"checkIcon\" [style.color]=\"iconColor\"></svg>\n } @else {\n <span class=\"check-icon\">{{ checkIcon }}</span>\n }\n }\n\n @if (optionIcon) {\n @if (isLucideOptionIcon) {\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"optionIcon\" [style.color]=\"optionIConColor || iconColor\"></svg>\n } @else {\n <img alt=\"\" [src]=\"optionIcon\" />\n }\n }\n </div>\n </div>\n }\n </div>\n</ng-template>","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nexport interface ICaoDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoDropDownComponent),\n multi: true,\n },\n ],\n})\nexport class CaoDropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: ICaoDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: ICaoDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoDropDownOption>();\n\n isOpen = false;\n selectedItem?: ICaoDropDownOption;\n filteredOptions: ICaoDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: ICaoDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: ICaoDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n imports: [ CommonModule ]\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute?:string;\n @Input() footerText?:string;\n @Input() isFixed = true;\n}\n","<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatTimepickerModule } from \"@angular/material/timepicker\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n MatTimepickerModule\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-paginator',\n imports: [MaterialModule],\n templateUrl: './paginator.html',\n styleUrl: './paginator.css',\n})\nexport class Paginator {\n @Input() totalItems = 0;\n @Input() pageSize = 10;\n @Input() currentPage = 1;\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() customClass = \"\";\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n onPageEvent(event: PageEvent): void {\n this.pageEvent.emit(event)\n }\n}\n","<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatTimepickerOption } from '@angular/material/timepicker';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-time-picker',\n imports: [ MaterialModule, CommonModule, ReactiveFormsModule, ],\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimePicker {\n @Input() control: FormControl<Date | null> = new FormControl<Date | null>(null);\n @Input() isDisabled = false;\n @Input() dataCy?: string;\n @Input() set min(v: string) {\n this._min = v;\n this.minInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label >= this._min);\n }\n @Input() set max(v: string) {\n this._max = v;\n this.maxInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label <= this._max);\n }\n\n minInNumber = 7;\n maxInNumber = 23;\n\n @Output() readonly timeChange = new EventEmitter<Date>();\n\n private _min = \"07:00\";\n private _max = \"23:00\";\n\n customOptions: MatTimepickerOption<Date>[] = this.generateTimeOptions();\n\n constructor(private _adapter: DateAdapter<any>) {\n this._adapter.setLocale(\"pt-BR\");\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n if (this.control.hasError(\"required\") || (this.control.touched && !this.control.value)) {\n return \"*Campo obrigatório\";\n }\n if (this.control.hasError(\"quarterHour\") && this.control.touched) {\n return \"Formato inválido\";\n }\n return null;\n }\n\n private convertStringInNumber(hour: string): number{\n const explodedHour = parseInt(hour.split(\":\")[0])\n if(typeof explodedHour !== 'number'){\n return explodedHour\n }\n return explodedHour\n }\n\n private generateTimeOptions(): MatTimepickerOption<Date>[] {\n const options: MatTimepickerOption<Date>[] = [];\n const baseDate = new Date(2025, 0, 1);\n\n for (let hour = this.minInNumber; hour <= this.maxInNumber; hour++) {\n for (let minute = 0; minute < 60; minute += 15) {\n if (hour === this.maxInNumber && minute > 0) {continue;}\n const date = new Date(baseDate);\n date.setHours(hour, minute, 0);\n const label = `${hour.toString().padStart(2, \"0\")}:${minute.toString().padStart(2, \"0\")}`;\n options.push({ label, value: date });\n }\n }\n\n return options;\n }\n\n updateTimeOptions(options: MatTimepickerOption<Date>[]): void {\n this.customOptions = options;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"time-picker-wrapper\">\n <mat-form-field\n class=\"custom-timepicker\"\n [ngClass]=\"{\n 'invalid': control?.touched && control?.invalid,\n 'valid': control?.touched && control?.valid\n }\">\n <input\n matInput\n placeholder=\"00:00\"\n [formControl]=\"control\"\n [matTimepicker]=\"picker\"\n [min]=\"min\"\n [max]=\"max\"\n [disabled]=\"isDisabled\"\n [attr.data-cy]=\"dataCy\"\n (blur)=\"control?.markAsTouched()\" />\n <mat-timepicker-toggle matSuffix [for]=\"picker\" />\n <mat-timepicker #picker [options]=\"customOptions\" (selected)=\"timeChange.emit($event.value)\" />\n </mat-form-field>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-step\",\n standalone: true,\n templateUrl: \"./step.html\",\n styleUrl: \"./step.css\",\n imports: [CommonModule],\n})\nexport class StepComponent {\n @Input() title = \"\";\n @Input() isActive = false;\n}\n","<div class=\"step d-flex aic jcc\" [ngClass]=\"{'active': isActive}\"> {{ title }} </div>\n","import { AfterContentInit, EventEmitter, Output , ContentChildren, Input, QueryList , Component } from \"@angular/core\";\n\n\nimport { StepComponent } from \"./step/step\";\n\n@Component({\n selector: \"cao-stepper\",\n standalone: true,\n templateUrl: \"./stepper.html\",\n styleUrl: \"./stepper.css\",\n})\nexport class StepperComponent implements AfterContentInit {\n constructor() {}\n @ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n @Input() title!: string;\n activeStepIndex = 0;\n lengthStep = 0;\n showLine = true;\n\n @Output() readonly maxReachedEvent: EventEmitter<null> = new EventEmitter<null>();\n\n ngAfterContentInit(): void {\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n this.lengthStep = this.steps.length;\n }\n }\n\n nextStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex < this.steps.length - 1) {\n this.activeStepIndex++;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n } else {\n this.maxReachedEvent.emit(null);\n }\n }\n }\n\n prevStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex > 0) {\n this.steps.toArray()[this.activeStepIndex].isActive = false;\n this.activeStepIndex--;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n }\n }\n }\n\n resetStepper() {\n this.activeStepIndex = 0;\n this.steps.forEach((step) => (step.isActive = false));\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n }\n }\n}\n","@if(title){\n<h3 class=\"stepper-title\">{{ title }}</h3>\n}\n<div class=\"d-flex step-container aic jcsb\">\n @if (showLine) {\n <div class=\"line\"></div>\n }\n <div class=\"steps d-flex aic jcsb\">\n <ng-content />\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[caoTabContent]',\n standalone: true,\n})\nexport class CaoTabContentDirective {}","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[caoTabLabel]',\n standalone: true,\n})\nexport class CaoTabLabelDirective {}","import { Component, ContentChild, Input, TemplateRef, ViewChild } from \"@angular/core\"\n\nimport { CaoTabContentDirective } from \"./tab-content.directive\"\nimport { CaoTabLabelDirective } from \"./tab-label.directive\"\n\n@Component({\n selector: \"cao-tab-panel\",\n imports: [],\n template: `\n <ng-template #implicitContent>\n <ng-content />\n </ng-template>\n `,\n styleUrl: \"./tab-panel.css\",\n})\nexport class CaoTabPanel {\n @Input() label = ''\n @Input() isLucideIcon = true\n @Input() trailingIcon: string | null = null\n @Input() leadingIcon: string | null = null\n @Input() isDisabled = false\n\n @ContentChild(CaoTabLabelDirective, { read: TemplateRef })\n labelTemplate?: TemplateRef<unknown>;\n\n @ContentChild(CaoTabContentDirective, { read: TemplateRef })\n lazyContent?: TemplateRef<unknown>;\n\n @ViewChild('implicitContent', { static: true })\n content!: TemplateRef<unknown>;\n }\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n signal,\n WritableSignal,\n inject,\n PLATFORM_ID,\n ElementRef,\n ViewChildren,\n ViewChild,\n HostBinding,\n} from '@angular/core';\n\nimport { LucideDynamicIcon } from '@lucide/angular';\nimport { Subscription } from 'rxjs';\n\nimport { CaoTabPanel } from '../tab-panel/tab-panel';\n\n\nexport interface ICaoTabChangeEvent {\n previousIndex: number;\n index: number;\n tab: CaoTabPanel;\n}\n\n@Component({\n selector: 'cao-tab-group',\n standalone: true,\n imports: [NgTemplateOutlet, LucideDynamicIcon],\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss',\n host: { class: 'cao-tab-group' },\n})\nexport class CaoTabGroup implements AfterContentInit, OnDestroy {\n @HostBinding('style')\n get _hostStyles(): Record<string, string> {\n return {\n '--cao-tab-label-height': this.labelHeight,\n '--cao-tab-label-px': this.labelPaddingX,\n '--cao-tab-label-gap': this.labelGap,\n '--cao-tab-color-text': this.colorText,\n '--cao-tab-color-active': this.colorActive,\n '--cao-tab-color-hover-bg': this.colorHoverBg,\n '--cao-tab-color-disabled': this.colorDisabled,\n '--cao-tab-color-ink-bar': this.colorInkBar,\n '--cao-tab-color-header-border': this.colorHeaderBorder,\n '--cao-tab-ink-bar-height': this.inkBarHeight,\n '--cao-tab-content-pt': this.contentPaddingTop,\n '--cao-tab-radius': this.labelRadius,\n };\n }\n @Input()\n set selectedIndex(val: number) {\n this.selectIndex(val, false);\n }\n get selectedIndex(): number {\n return this.activeIndex();\n }\n\n @Input() labelHeight = '48px';\n @Input() labelPaddingX = '16px';\n @Input() labelGap = '6px';\n @Input() colorText = '#6b7280';\n @Input() colorActive = '#4f46e5';\n @Input() colorHoverBg = '#f3f4f6';\n @Input() colorDisabled = '#d1d5db';\n @Input() colorInkBar = '#4f46e5';\n @Input() colorHeaderBorder = '#e5e7eb';\n @Input() inkBarHeight = '2px';\n @Input() contentPaddingTop = '20px';\n @Input() labelRadius = '4px';\n @Input() animationDuration = '300ms';\n @Input() dynamicHeight = false;\n\n @Input() labelAlign: 'start' | 'center' | 'end' = 'start';\n @Input() iconColorActive = ''\n @Input() iconColorInactive = ''\n @Input() strokeWidthIcon = 1\n\n @Output() readonly selectedTabChange = new EventEmitter<ICaoTabChangeEvent>();\n\n @Output() readonly focusChange = new EventEmitter<number>();\n\n @ContentChildren(CaoTabPanel) tabs!: QueryList<CaoTabPanel>;\n @ViewChildren('tabBtn') tabBtns!: QueryList<ElementRef<HTMLButtonElement>>;\n @ViewChild('inkBar') inkBar!: ElementRef<HTMLElement>;\n\n readonly activeIndex: WritableSignal<number> = signal(0);\n\n private activatedSet = new Set<number>();\n\n tabList: CaoTabPanel[] = [];\n\n private subs = new Subscription();\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n ngAfterContentInit(): void {\n this.tabList = this.tabs.toArray();\n this.activatedSet.add(this.activeIndex());\n\n this.subs.add(\n this.tabs.changes.subscribe(() => {\n this.tabList = this.tabs.toArray();\n const safe = Math.min(this.activeIndex(), this.tabList.length - 1);\n this.activeIndex.set(Math.max(0, safe));\n this.scheduleInkBar();\n })\n );\n\n this.scheduleInkBar();\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n selectTab(index: number): void {\n this.selectIndex(index, true);\n }\n\n get activeTab(): CaoTabPanel | null {\n return this.tabList[this.activeIndex()] ?? null;\n }\n\n isActive(index: number): boolean {\n return this.activeIndex() === index;\n }\n wasActivated(index: number): boolean {\n return this.activatedSet.has(index);\n }\n\n onTabClick(index: number): void {\n if (this.tabList[index]?.isDisabled) {return;}\n this.selectIndex(index, true);\n }\n\n onKeydown(event: KeyboardEvent, currentIndex: number): void {\n let next = currentIndex;\n\n switch (event.key) {\n case 'ArrowRight': next = this.nextEnabled(currentIndex, 1); break;\n case 'ArrowLeft': next = this.nextEnabled(currentIndex, -1); break;\n case 'Home': next = this.nextEnabled(-1, 1); break;\n case 'End': next = this.nextEnabled(this.tabList.length, -1); break;\n default: return;\n }\n\n event.preventDefault();\n this.selectIndex(next, true);\n this.focusTab(next);\n }\n\n onFocus(index: number): void {\n this.focusChange.emit(index);\n }\n\n private nextEnabled(from: number, dir: 1 | -1): number {\n const tabs = this.tabList;\n let idx = from + dir;\n while (idx >= 0 && idx < tabs.length) {\n if (!tabs[idx].isDisabled) {return idx;}\n idx += dir;\n }\n return from;\n }\n\n private selectIndex(index: number, emit: boolean): void {\n if (!this.tabList) {\n this.activeIndex.set(Math.max(0, index));\n return;\n }\n const clamped = Math.max(0, Math.min(index, this.tabList.length - 1));\n const previous = this.activeIndex();\n if (clamped === previous && emit) {return;}\n\n this.activeIndex.set(clamped);\n this.activatedSet.add(clamped);\n\n if (emit) {\n this.selectedTabChange.emit({\n previousIndex: previous,\n index: clamped,\n tab: this.tabList[clamped],\n });\n }\n\n this.scheduleInkBar();\n }\n\n private focusTab(index: number): void {\n this.tabBtns?.toArray()[index]?.nativeElement?.focus();\n }\n\n scheduleInkBar(): void {\n if (!this.isBrowser) {return;}\n requestAnimationFrame(() => this.updateInkBar());\n }\n\n private updateInkBar(): void {\n const btns = this.tabBtns?.toArray();\n const bar = this.inkBar?.nativeElement;\n if (!btns || !bar) {return;}\n\n const btn = btns[this.activeIndex()]?.nativeElement;\n if (!btn) {return;}\n\n bar.style.width = `${btn.offsetWidth}px`;\n bar.style.transform = `translateX(${btn.offsetLeft}px)`;\n bar.style.transitionDuration = this.animationDuration;\n }\n}","<div\n #header\n [class]=\"'cao-tab-header cao-tab-header--align-' + labelAlign\"\n>\n <div class=\"cao-tab-label-list\" role=\"tablist\">\n @for (tab of tabList; track $index; let i = $index) {\n <button\n #tabBtn\n role=\"tab\"\n type=\"button\"\n class=\"cao-tab-label\"\n [class.cao-tab-label--active]=\"isActive(i)\"\n [class.cao-tab-label--disabled]=\"tab.isDisabled\"\n [attr.aria-selected]=\"isActive(i)\"\n [attr.aria-disabled]=\"tab.isDisabled || null\"\n [attr.tabindex]=\"isActive(i) ? 0 : -1\"\n [attr.id]=\"'cao-tab-label-' + i\"\n [attr.aria-controls]=\"'cao-tab-content-' + i\"\n (click)=\"onTabClick(i)\"\n (keydown)=\"onKeydown($event, i)\"\n (focus)=\"onFocus(i)\"\n >\n @if (tab.leadingIcon) {\n <span class=\"leading-icon\">\n @if (tab.isLucideIcon) {\n <svg [lucideIcon]=\"tab.leadingIcon\" [style.color]=\"isActive(i) ? iconColorActive : iconColorInactive\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"tab.leadingIcon\" />\n }\n </span>\n }\n\n @if (tab.labelTemplate) {\n <ng-container [ngTemplateOutlet]=\"tab.labelTemplate\" />\n } @else {\n <span class=\"cao-tab-labeltext\">{{ tab.label }}</span>\n }\n\n @if (tab.trailingIcon) {\n <span class=\"trailing-icon\">\n @if (tab.isLucideIcon) {\n <svg [lucideIcon]=\"tab.trailingIcon\" [style.color]=\"isActive(i) ? iconColorActive : iconColorInactive\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"tab.trailingIcon\" />\n }\n </span>\n }\n </button>\n }\n </div>\n\n <!-- Ink bar animado -->\n <div class=\"cao-tab-ink-bar-track\">\n <div #inkBar class=\"cao-tab-ink-bar\"></div>\n </div>\n</div>\n\n<!-- ═══ Tab Bodies ════════════════════════════════════════════════════════ -->\n<div\n class=\"cao-tab-body-wrapper\"\n [class.cao-tab-body-wrapper--dynamic]=\"dynamicHeight\"\n>\n @for (tab of tabList; track $index; let i = $index) {\n <div\n role=\"tabpanel\"\n class=\"cao-tab-body\"\n [class.cao-tab-body--active]=\"isActive(i)\"\n [attr.id]=\"'cao-tab-content-' + i\"\n [attr.aria-labelledby]=\"'cao-tab-label-' + i\"\n [attr.aria-hidden]=\"!isActive(i)\"\n [style.--cao-tab-anim-duration]=\"animationDuration\"\n >\n <div class=\"cao-tab-bodycontent\">\n @if (tab.lazyContent) {\n @if (isActive(i) || wasActivated(i)) {\n <ng-container [ngTemplateOutlet]=\"tab.lazyContent\" />\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"tab.content\" />\n }\n </div>\n </div>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { LucideDynamicIcon } from '@lucide/angular';\n\n@Component({\n selector: 'cao-base-icon',\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: './base-icon.html',\n styleUrl: './base-icon.css',\n})\nexport class CaoBaseIcon {\n @Input() imgSource = \"\"\n @Input() isLucideIcon = true\n @Input() strokeWidthIcon = 1\n @Input() iconColor = \"\"\n @Input() size = 32\n}\n","@if (imgSource) {\n @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"imgSource\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\" [size]=\"size\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"imgSource\" />\n </div>\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, input } from \"@angular/core\";\n\nexport interface ICaoImage {\n src: string;\n alt: string;\n}\nexport interface ICaoKPI {\n title: string;\n value: string;\n textColor: string;\n borderColor: string;\n icon: ICaoImage;\n}\n\n@Component({\n selector: \"cao-kpi\",\n imports: [CommonModule],\n templateUrl: \"./kpi.html\",\n styleUrl: \"./kpi.css\",\n standalone: true,\n})\nexport class CaoKpi {\n readonly kpiData = input.required<ICaoKPI>();\n}\n","<div\n class=\"flex flex-col py-2 pt-2.25 px-3.75 rounded-card border-b w-46.25 bg-(--color-white)\"\n [style.border-color]=\"kpiData().borderColor\">\n <div class=\"flex w-full justify-end\">\n <img class=\"w-6 h-6 mr-2\" [src]=\"kpiData().icon.src\" [alt]=\"kpiData().icon.alt\" />\n </div>\n <div class=\"flex flex-col pl-1.5\">\n <p class=\"text-2xl\" [style.color]=\"kpiData().textColor\">{{ kpiData().value }}</p>\n <h3 class=\"text-base\" [style.color]=\"kpiData().textColor\">{{ kpiData().title }}</h3>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\n\nexport type CaoSkeletonVariant = 'rect' | 'circle' | 'text';\n\n@Component({\n selector: 'cao-skeleton',\n imports: [CommonModule],\n templateUrl: './skeleton.html',\n styleUrl: './skeleton.css',\n})\nexport class CaoSkeletonComponent {\n borderRadius = input('14px');\n width = input('100%');\n height = input('100%');\n bgColor = input<string>(\"#e2e8f0\");\n shine = input<string>(\"#f8fafc\");\n variant = input<CaoSkeletonVariant>('rect');\n speed = input<string>('2s');\n size = input<string>();\n animationDeg = input<string>('90deg');\n\n skeletonStyles = computed(() => {\n const styles: Record<string, string> = {\n '--skeleton-width': this.size() || this.width(),\n '--skeleton-height': this.size() || this.height(),\n '--skeleton-speed': this.speed(),\n '--skeleton-animation-deg': this.animationDeg(),\n };\n\n if (this.bgColor()) {\n styles['--skeleton-bg'] = this.bgColor()!;\n }\n\n if (this.shine()) {\n styles['--skeleton-shine'] = this.shine()!;\n }\n\n if (this.variant() !== 'circle') {\n styles['--skeleton-radius'] = this.borderRadius();\n }\n\n\n return styles;\n });\n}","<span class=\"cao-skeleton\" [ngClass]=\"'cao-skeleton--' + variant()\" [style]=\"skeletonStyles()\">\n <span class=\"cao-skeleton__shimmer\"></span>\n</span>","import { Component, computed, input, Input } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\n\nimport { IErrorStateMatcher } from './error-state-matcher';\nimport { IFormFieldControl } from './form-field-control';\nimport { CaoBaseIcon } from '../base-icon/base-icon';\n\n@Component({\n selector: 'cao-form-field',\n imports: [CaoBaseIcon],\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n})\nexport class CaoFormField extends CaoBaseIcon implements IFormFieldControl {\n inputBackground = input<string>();\n borderColor = input<string>();\n borderWidth = input<string>();\n borderRadius = input<string>();\n errorColor = input<string>();\n labelColor = input<string>();\n hintColor = input<string>();\n textColor = input<string>();\n focusBorderColor = input<string>();\n successBorderColor = input<string>();\n\n formFieldStyles = computed(() => {\n const styles: Record<string, string> = {};\n\n if (this.inputBackground()) {\n styles['--cao-form-field-bg-background'] = this.inputBackground()!;\n }\n if (this.borderColor()) {\n styles['--cao-form-field-border-color'] = this.borderColor()!;\n }\n if (this.borderWidth()) {\n styles['--cao-form-field-border-width'] = this.borderWidth()!;\n }\n if (this.borderRadius()) {\n styles['--cao-form-field-border-radius'] = this.borderRadius()!;\n }\n if (this.errorColor()) {\n styles['--cao-form-field-color-error'] = this.errorColor()!;\n }\n if (this.labelColor()) {\n styles['--cao-form-field-color-label'] = this.labelColor()!;\n }\n if (this.hintColor()) {\n styles['--cao-form-field-color-hint'] = this.hintColor()!;\n }\n if (this.textColor()) {\n styles['--cao-form-field-color-text'] = this.textColor()!;\n }\n if (this.focusBorderColor()) {\n styles['--cao-form-field-focus-border'] = this.focusBorderColor()!;\n }\n if (this.successBorderColor()) {\n styles['--cao-form-field-success-border'] = this.successBorderColor()!;\n }\n\n return styles;\n });\n @Input() label = '';\n @Input() labelInside = false;\n @Input() hintLabel = '';\n @Input() control: AbstractControl | null = null;\n @Input() forId = '';\n @Input() errorStateMatcher?: IErrorStateMatcher;\n @Input() leadingIcon?: string;\n @Input() trailingIcon?: string;\n\n _isSubmitted = false;\n _focused = false;\n\n get id(): string {\n return this.forId;\n }\n\n get disabled(): boolean {\n return !!this.control?.disabled;\n }\n\n get required(): boolean {\n if (!this.control) {\n return false;\n }\n const hasValidator =\n typeof this.control.hasValidator === 'function'\n ? this.control.hasValidator(Validators.required)\n : false;\n return hasValidator;\n }\n\n get floating(): boolean {\n return this._focused || !!this.control?.value;\n }\n\n get errorStateActive(): boolean {\n const control = this.control;\n if (!control) {\n return false;\n }\n const matcher = this.errorStateMatcher;\n return matcher\n ? matcher.isErrorState(control, this)\n : !!(control.invalid && (control.touched || control.dirty || this._isSubmitted));\n }\n\n onFocusIn(): void {\n this._focused = true;\n if (this.control && !this._isSubmitted) {\n this.control.markAsTouched();\n }\n }\n\n onFocusOut(): void {\n this._focused = false;\n }\n}","<div\n class=\"cao-form-field\"\n [class.label-inside]=\"labelInside\"\n [class.error-state]=\"errorStateActive\"\n [class.disabled]=\"disabled\"\n [class.required]=\"required\"\n [style]=\"formFieldStyles()\">\n @if (label && !labelInside) {\n <label class=\"cao-form-field__label\" [for]=\"forId\">{{ label }}</label>\n }\n <div class=\"input-field\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\n @if (leadingIcon) {\n <cao-base-icon\n [isLucideIcon]=\"isLucideIcon\"\n [strokeWidthIcon]=\"strokeWidthIcon\"\n [imgSource]=\"leadingIcon\"\n [iconColor]=\"iconColor\"\n [size]=\"size\" />\n }\n <div class=\"input-slot\">\n @if (label && labelInside) {\n <label\n class=\"cao-form-field__label cao-form-field__label--float\"\n [class.cao-form-field__label--floated]=\"floating\"\n [for]=\"forId\">{{ label }}</label>\n }\n <ng-content select=\"[caoInput]\" />\n <ng-content select=\"cao-input\" />\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <ng-content select=\"textarea\" />\n <ng-content select=\"h2\" />\n <ng-content />\n </div>\n @if (trailingIcon) {\n <cao-base-icon\n [isLucideIcon]=\"isLucideIcon\"\n [iconColor]=\"iconColor\"\n [size]=\"size\"\n [imgSource]=\"trailingIcon\"\n [strokeWidthIcon]=\"strokeWidthIcon\" />\n }\n </div>\n <div class=\"subscript-wrapper\">\n @if (hintLabel) {\n <small class=\"cao-form-field__hint\">{{ hintLabel }}</small>\n }\n <ng-content select=\"cao-hint\" />\n <ng-content select=\"cao-error\" />\n </div>\n</div>","import { AbstractControl } from '@angular/forms';\n\nimport { IFormFieldControl } from './form-field-control';\n\nexport interface IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean;\n}\n\nexport class ErrorStateMatcher implements IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean {\n if (!control) {\n return false;\n }\n const isSubmitted = formFieldControl && (formFieldControl as any)._isSubmitted;\n return !!(\n control.invalid &&\n (control.touched || control.dirty || isSubmitted)\n );\n }\n}\n\nexport class ShowOnDirtyErrorStateMatcher implements IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean {\n if (!control) {\n return false;\n }\n const isSubmitted = formFieldControl && (formFieldControl as any)._isSubmitted;\n return !!(control.invalid && (control.dirty || isSubmitted));\n }\n}\n\nexport const DEFAULT_ERROR_STATE_MATCHER = new ErrorStateMatcher();\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'cao-hint',\n imports: [],\n templateUrl: './hint.html',\n styleUrl: './hint.css',\n})\nexport class CaoHint {}\n","<span class=\"cao-hint\"><ng-content /></span>\n","import { Component, inject, Input } from '@angular/core';\n\nimport { IErrorStateMatcher } from '../form-field/error-state-matcher';\nimport { CaoFormField } from '../form-field/form-field';\n\n@Component({\n selector: 'cao-error',\n imports: [],\n templateUrl: './error.html',\n styleUrl: './error.css',\n})\nexport class CaoError {\n @Input() errorStateMatcher?: IErrorStateMatcher;\n\n private readonly formField = inject(CaoFormField, { optional: true }) as\n | CaoFormField\n | null;\n\n get control() {\n return this.formField?.control ?? null;\n }\n\n get hasErrorState(): boolean {\n const control = this.control;\n if (!control) {\n return false;\n }\n const matcher = this.errorStateMatcher ?? this.formField?.errorStateMatcher;\n return matcher\n ? matcher.isErrorState(control, this.formField)\n : !!(control.invalid && (control.touched || control.dirty));\n }\n}\n","@if (hasErrorState) {\n <div class=\"cao-error\" role=\"alert\">\n <ng-content />\n </div>\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\n\nexport type CaoCardVariant = \"horizontal\" | \"square\";\n\nexport interface ICaoCardBadge {\n label: string;\n color?: string;\n borderColor?: string;\n bg?: string;\n}\n\nexport interface ICaoCardMeta {\n icon: string;\n label: string;\n}\n\nexport interface ICaoCardAvatar {\n initials?: string;\n src?: string;\n color?: string;\n}\n\n\n@Component({\n selector: \"cao-card\",\n templateUrl: \"./card.component.html\",\n styleUrl: \"./card.component.css\",\n imports: [CommonModule, MatTooltip],\n})\nexport class CaoCardComponent {\n @Input() variant: CaoCardVariant = \"horizontal\";\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() detail?: string;\n @Input() detailColor?: string;\n @Input() icon?: string;\n @Input() avatar?: ICaoCardAvatar;\n @Input() meta?: ICaoCardMeta[];\n @Input() badge?: ICaoCardBadge;\n @Input() selected = false;\n @Input() clickable = false;\n @Input() bgColor=\"bg-white\"\n @Input() borderColor=\"border-gray-200\"\n\n @Output() readonly cardClick = new EventEmitter<void>();\n\n get avatarBg(): string {\n return this.avatar?.color ?? \"bg-orange-400\";\n }\n\n handleClick(): void {\n if (this.clickable) {this.cardClick.emit();}\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.clickable && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n this.cardClick.emit();\n }\n }\n}\n","@switch (variant) {\n @case ('horizontal') {\n <div\n class=\"card card-horizontal\"\n [class.card-clickable]=\"clickable\"\n [class.card-hover-shadow]=\"clickable\"\n [class.card-selected]=\"selected\"\n [ngClass]=\"[bgColor, borderColor]\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable ? 0 : null\"\n (click)=\"handleClick()\"\n (keydown)=\"handleKeydown($event)\">\n \n @if (avatar) {\n <div class=\"card-avatar-container\" [ngClass]=\"avatarBg\">\n @if (avatar.src) {\n <img \n class=\"card-avatar-img\" \n [src]=\"avatar.src\" \n [alt]=\"title\" />\n } @else { \n {{ avatar.initials }} \n }\n </div>\n } @else if (icon) {\n <div class=\"card-icon-container\">\n <img \n class=\"card-icon-img\" \n [src]=\"icon\" \n [alt]=\"title\" />\n </div>\n }\n\n <div class=\"card-content\">\n @if (title) {\n <span class=\"card-title\">{{ title }}</span>\n }\n @if (subtitle) {\n <span class=\"card-subtitle\">{{ subtitle }}</span>\n }\n @if (detail) {\n <span class=\"card-detail\" [ngClass]=\"detailColor ?? ''\">\n {{ detail }}\n </span>\n }\n <ng-content />\n </div>\n\n @if (badge || (meta && meta.length)) {\n <div class=\"card-badge-wrapper\">\n @if (badge) {\n <div \n class=\"card-badge\"\n [ngClass]=\"[badge.color ?? '', badge.borderColor ?? '']\"\n [style.background-color]=\"badge.bg\">\n {{ badge.label }}\n </div>\n }\n @if (meta && meta.length) {\n <div class=\"card-meta-list\">\n @for (m of meta; track m.label) {\n <div class=\"card-meta-item\">\n <img \n class=\"card-meta-icon\" \n [src]=\"m.icon\" \n [alt]=\"m.label\" />\n <span>{{ m.label }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n\n @case ('square') {\n <div\n class=\"card card-square\"\n [class.card-clickable]=\"clickable\"\n [class.card-hover-bg]=\"clickable\"\n [class.card-hover-bold]=\"clickable\"\n [class.card-selected]=\"selected\"\n [class.card-selected-border-2]=\"selected\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable ? 0 : null\"\n [matTooltip]=\"title\"\n (click)=\"handleClick()\"\n (keydown)=\"handleKeydown($event)\">\n \n <div class=\"card-square-content\">\n <span class=\"card-square-title\">{{ title }}</span>\n \n @if (icon) {\n <img \n class=\"card-square-icon\" \n [src]=\"icon\" \n [alt]=\"title\" />\n }\n </div>\n </div>\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\n\nimport { MaterialModule } from \"../../../material.module\";\n\n@Component({\n selector: \"cao-base-toggle\",\n standalone: true,\n templateUrl: \"./base-toggle.component.html\",\n styleUrl: \"./base-toggle.component.scss\",\n imports: [CommonModule, MaterialModule],\n})\nexport class CaoBaseToggleComponent {\n @Input() type = \"text\";\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n @Input() isChecked = false;\n @Input() checkedTextPlaceholder = \"\";\n @Input() uncheckedTextPlaceholder = \"\";\n\n @Output() readonly statusChanged = new EventEmitter<CaoBaseToggleComponent>();\n\n @ViewChild(\"checkbox\") checkboxInput!: HTMLInputElement;\n\n onToggleCheckbox() {\n if (this.isDisabled) {\n return;\n }\n\n this.isChecked = !this.isChecked;\n\n this.statusChanged.emit(this);\n }\n}\n","<div class=\"d-flex col aic jcc base-toggle\">\n <input #checkbox type=\"checkbox\" class=\"checkbox\" [checked]=\"isChecked\" [disabled]=\"isDisabled\" />\n <div\n class=\"d-flex checkbox-element aic jcsb\"\n tabindex=\"0\"\n role=\"button\"\n [class.activated-toggle]=\"isChecked\"\n (click)=\"onToggleCheckbox()\"\n (keydown.enter)=\"onToggleCheckbox()\"\n (keydown.space)=\"onToggleCheckbox(); $event.preventDefault()\">\n @if (isChecked) {\n <mat-icon class=\"eye-icon\" />\n <div class=\"check-text\"> Ativada </div>\n <div class=\"line\"></div>\n <p class=\"unchecked\">Desativar</p>\n }@else {\n <mat-icon class=\"fa-circle\" />\n <div class=\"check-text\"> Não ativada </div>\n <div class=\"line\"></div>\n <p>Ativar</p>\n }\n </div>\n @if(isChecked){\n <span>{{ checkedTextPlaceholder }} ativada com sucesso</span>\n } @else{\n <span>Clique para ativar {{ uncheckedTextPlaceholder }}</span>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n Output,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\nexport interface ICaoSlideToggleChangeEvent {\n checked: boolean;\n source: CaoSlideToggleComponent;\n}\n\n@Component({\n selector: \"cao-slide-toggle\",\n standalone: true,\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: \"./slide-toggle.component.html\",\n styleUrl: \"./slide-toggle.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoSlideToggleComponent),\n multi: true,\n },\n ],\n})\nexport class CaoSlideToggleComponent implements ControlValueAccessor {\n @Input() checked = false;\n @Input() isDisabled = false;\n @Input() label = \"\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() name = \"\";\n @Input() id = \"\";\n @Input() ariaLabel = \"\";\n @Input() dataCy = \"\";\n @Input() required = false;\n\n @Input() trackColor?: string;\n @Input() trackCheckedColor?: string;\n @Input() thumbColor?: string;\n @Input() thumbCheckedColor?: string;\n @Input() disabledTrackColor?: string;\n @Input() disabledThumbColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() trackWidth?: string;\n @Input() trackHeight?: string;\n @Input() thumbSize?: string;\n @Input() animationDuration?: string;\n\n @Input() thumbIcon = \"\";\n @Input() thumbCheckedIcon = \"\";\n @Input() isLucideThumbIcon = false;\n @Input() thumbIconColor = \"\";\n @Input() thumbCheckedIconColor = \"\";\n @Input() thumbIconSize: string | number = 12;\n @Input() thumbIconStrokeWidth: string | number = 2;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n @Output() readonly toggleChange = new EventEmitter<ICaoSlideToggleChangeEvent>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n get resolvedThumbIcon(): string {\n return this.checked && this.thumbCheckedIcon\n ? this.thumbCheckedIcon\n : this.thumbIcon;\n }\n\n get resolvedThumbIconColor(): string {\n return this.checked\n ? this.thumbCheckedIconColor || this.thumbIconColor\n : this.thumbIconColor;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.trackColor) {\n styles[\"--cao-slide-toggle-track\"] = this.trackColor;\n }\n if (this.trackCheckedColor) {\n styles[\"--cao-slide-toggle-track-checked\"] = this.trackCheckedColor;\n }\n if (this.thumbColor) {\n styles[\"--cao-slide-toggle-thumb\"] = this.thumbColor;\n }\n if (this.thumbCheckedColor) {\n styles[\"--cao-slide-toggle-thumb-checked\"] = this.thumbCheckedColor;\n }\n if (this.disabledTrackColor) {\n styles[\"--cao-slide-toggle-track-disabled\"] = this.disabledTrackColor;\n }\n if (this.disabledThumbColor) {\n styles[\"--cao-slide-toggle-thumb-disabled\"] = this.disabledThumbColor;\n }\n if (this.labelColor) {\n styles[\"--cao-slide-toggle-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-slide-toggle-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-slide-toggle-focus-ring\"] = this.focusRingColor;\n }\n if (this.trackWidth) {\n styles[\"--cao-slide-toggle-track-width\"] = this.trackWidth;\n }\n if (this.trackHeight) {\n styles[\"--cao-slide-toggle-track-height\"] = this.trackHeight;\n }\n if (this.thumbSize) {\n styles[\"--cao-slide-toggle-thumb-size\"] = this.thumbSize;\n }\n if (this.animationDuration) {\n styles[\"--cao-slide-toggle-duration\"] = this.animationDuration;\n }\n if (this.resolvedThumbIconColor) {\n styles[\"--cao-slide-toggle-thumb-icon-color\"] = this.resolvedThumbIconColor;\n }\n\n styles[\"--cao-slide-toggle-thumb-icon-size\"] = this.toCssLength(\n this.thumbIconSize,\n );\n\n return styles;\n }\n\n toggle(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.updateChecked(!this.checked, true);\n }\n\n setChecked(value: boolean): void {\n if (this.isDisabled) {\n return;\n }\n\n this.updateChecked(value, true);\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n onInputChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.updateChecked(target.checked, true);\n }\n\n onEnter(event: Event): void {\n if (this.isDisabled) {\n return;\n }\n\n event.preventDefault();\n this.toggle();\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked = !!value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private toCssLength(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n }\n\n private updateChecked(value: boolean, emit: boolean): void {\n if (this.isDisabled) {\n return;\n }\n\n this.checked = value;\n this.onChange(value);\n\n if (emit) {\n this.checkedChange.emit(value);\n this.toggleChange.emit({ checked: value, source: this });\n }\n\n this.cdr.markForCheck();\n }\n}\n","<label\n class=\"cao-slide-toggle\"\n [class.cao-slide-toggle--checked]=\"checked\"\n [class.cao-slide-toggle--disabled]=\"isDisabled\"\n [class.cao-slide-toggle--label-before]=\"labelPosition === 'before'\">\n <input\n #input\n class=\"cao-slide-toggle__input\"\n type=\"checkbox\"\n role=\"switch\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n [attr.name]=\"name || null\"\n [attr.id]=\"id || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($event)\" />\n\n <span class=\"cao-slide-toggle__track\" aria-hidden=\"true\">\n <span class=\"cao-slide-toggle__thumb\">\n @if (resolvedThumbIcon) {\n @if (isLucideThumbIcon) {\n <svg\n class=\"cao-slide-toggle__thumb-icon\"\n [lucideIcon]=\"resolvedThumbIcon\"\n [size]=\"thumbIconSize\"\n [strokeWidth]=\"thumbIconStrokeWidth\"></svg>\n } @else {\n <img\n class=\"cao-slide-toggle__thumb-icon\"\n alt=\"\"\n [src]=\"resolvedThumbIcon\" />\n }\n }\n </span>\n </span>\n\n <span class=\"cao-slide-toggle__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n Output,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport type { CaoRadioButtonComponent } from \"./radio-button.component\";\n\nlet nextRadioGroupId = 0;\n\nexport interface ICaoRadioChangeEvent {\n value: unknown;\n source: CaoRadioButtonComponent;\n}\n\n@Component({\n selector: \"cao-radio-group\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./radio-group.component.css\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoRadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoRadioGroupComponent implements ControlValueAccessor {\n @Input() value: unknown = undefined;\n @Input() name = \"\";\n @Input() isDisabled = false;\n @Input() required = false;\n @Input() orientation: \"vertical\" | \"horizontal\" = \"vertical\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() compareWith: (option: unknown, value: unknown) => boolean = (\n option,\n value,\n ) => option === value;\n\n @Input() color?: string;\n @Input() unselectedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() size?: string;\n @Input() animationDuration?: string;\n @Input() gap?: string;\n\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly valueChange = new EventEmitter<unknown>();\n @Output() readonly selectionChange = new EventEmitter<ICaoRadioChangeEvent>();\n\n readonly resolvedName = `cao-radio-group-${nextRadioGroupId++}`;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private formDisabled = false;\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isEffectivelyDisabled(): boolean {\n return this.isDisabled || this.formDisabled;\n }\n\n @HostBinding(\"attr.role\")\n readonly role = \"radiogroup\";\n\n @HostBinding(\"class.cao-radio-group--horizontal\")\n get isHorizontal(): boolean {\n return this.orientation === \"horizontal\";\n }\n\n @HostBinding(\"class.cao-radio-group--disabled\")\n get isDisabledClass(): boolean {\n return this.isEffectivelyDisabled;\n }\n\n @HostBinding(\"attr.aria-label\")\n get ariaLabelAttr(): string | null {\n return this.ariaLabel || null;\n }\n\n @HostBinding(\"attr.aria-labelledby\")\n get ariaLabelledByAttr(): string | null {\n return this.ariaLabelledBy || null;\n }\n\n @HostBinding(\"attr.aria-disabled\")\n get ariaDisabledAttr(): boolean | null {\n return this.isEffectivelyDisabled || null;\n }\n\n @HostBinding(\"attr.aria-required\")\n get ariaRequiredAttr(): boolean | null {\n return this.required || null;\n }\n\n @HostBinding(\"attr.data-cy\")\n get dataCyAttr(): string | null {\n return this.dataCy || null;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-radio-color\"] = this.color;\n }\n if (this.unselectedColor) {\n styles[\"--cao-radio-unselected\"] = this.unselectedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-radio-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-radio-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-radio-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-radio-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-radio-size\"] = this.size;\n }\n if (this.animationDuration) {\n styles[\"--cao-radio-duration\"] = this.animationDuration;\n }\n if (this.gap) {\n styles[\"--cao-radio-gap\"] = this.gap;\n }\n\n return styles;\n }\n\n get groupName(): string {\n return this.name || this.resolvedName;\n }\n\n isValueSelected(value: unknown): boolean {\n return this.compareWith(this.value, value);\n }\n\n select(button: CaoRadioButtonComponent): void {\n if (this.isEffectivelyDisabled || button.effectiveDisabled) {\n return;\n }\n\n if (this.compareWith(this.value, button.value)) {\n this.markAsTouched();\n return;\n }\n\n this.value = button.value;\n this.onChange(this.value);\n this.valueChange.emit(this.value);\n this.selectionChange.emit({ value: this.value, source: button });\n this.markAsTouched();\n this.cdr.markForCheck();\n }\n\n markAsTouched(): void {\n this.onTouched();\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n writeValue(value: unknown): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n} from \"@angular/core\";\n\nimport { CaoRadioGroupComponent } from \"./radio-group.component\";\n\nlet nextRadioId = 0;\n\n@Component({\n selector: \"cao-radio-button\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./radio-button.component.html\",\n styleUrl: \"./radio-button.component.css\",\n})\nexport class CaoRadioButtonComponent {\n @Input() value: unknown = undefined;\n @Input() label = \"\";\n @Input() isDisabled = false;\n @Input() labelPosition?: \"before\" | \"after\";\n @Input() id = \"\";\n @Input() name = \"\";\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n\n @Input() color?: string;\n @Input() unselectedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() size?: string;\n @Input() animationDuration?: string;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n private readonly uid = `cao-radio-${nextRadioId++}`;\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => CaoRadioGroupComponent))\n readonly group: CaoRadioGroupComponent | null,\n ) {}\n\n get effectiveDisabled(): boolean {\n return this.isDisabled || !!this.group?.isEffectivelyDisabled;\n }\n\n get effectiveLabelPosition(): \"before\" | \"after\" {\n return this.labelPosition ?? this.group?.labelPosition ?? \"after\";\n }\n\n get effectiveName(): string {\n return this.name || this.group?.groupName || this.uid;\n }\n\n get inputId(): string {\n return this.id || this.uid;\n }\n\n get isSelected(): boolean {\n return this.group?.isValueSelected(this.value) ?? false;\n }\n\n get isRequired(): boolean {\n return this.group?.required ?? false;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-radio-color\"] = this.color;\n }\n if (this.unselectedColor) {\n styles[\"--cao-radio-unselected\"] = this.unselectedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-radio-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-radio-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-radio-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-radio-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-radio-size\"] = this.size;\n }\n if (this.animationDuration) {\n styles[\"--cao-radio-duration\"] = this.animationDuration;\n }\n\n return styles;\n }\n\n select(): void {\n if (this.effectiveDisabled) {\n return;\n }\n\n this.group?.select(this);\n }\n\n onBlur(): void {\n this.group?.markAsTouched();\n }\n\n enable(): void {\n this.isDisabled = false;\n }\n\n disable(): void {\n this.isDisabled = true;\n }\n}\n","<label\n class=\"cao-radio\"\n [class.cao-radio--checked]=\"isSelected\"\n [class.cao-radio--disabled]=\"effectiveDisabled\"\n [class.cao-radio--label-before]=\"effectiveLabelPosition === 'before'\">\n <input\n #input\n class=\"cao-radio__input\"\n type=\"radio\"\n [checked]=\"isSelected\"\n [disabled]=\"effectiveDisabled\"\n [required]=\"isRequired\"\n [attr.name]=\"effectiveName\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"select()\"\n (blur)=\"onBlur()\" />\n\n <span class=\"cao-radio__control\" aria-hidden=\"true\">\n <span class=\"cao-radio__dot\"></span>\n </span>\n\n <span class=\"cao-radio__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { Subscription } from \"rxjs\";\n\nlet nextCheckboxId = 0;\n\nexport interface ICaoCheckboxChangeEvent {\n checked: boolean;\n source: CaoCheckboxComponent;\n}\n\n@Component({\n selector: \"cao-checkbox\",\n standalone: true,\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: \"./checkbox.component.html\",\n styleUrl: \"./checkbox.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CaoCheckboxComponent implements ControlValueAccessor, OnChanges, OnDestroy {\n @Input() checked = false;\n @Input() indeterminate = false;\n @Input() isDisabled = false;\n @Input() required = false;\n @Input() label = \"\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() name = \"\";\n @Input() id = \"\";\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n @Input() control?: AbstractControl | null;\n @Input() errorMessage = \"\";\n\n @Input() color?: string;\n @Input() uncheckedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n\n @Input() size?: string;\n @Input() borderRadius?: string;\n @Input() animationDuration?: string;\n\n @Input() checkedIcon = \"\";\n @Input() uncheckedIcon = \"\";\n @Input() indeterminateIcon = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() checkedIconColor = \"\";\n @Input() uncheckedIconColor = \"\";\n @Input() iconSize: string | number = 14;\n @Input() iconStrokeWidth: string | number = 2.5;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n @Output() readonly checkboxChange = new EventEmitter<ICaoCheckboxChangeEvent>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly uid = `cao-checkbox-${nextCheckboxId++}`;\n private controlSub?: Subscription;\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"control\"]) {\n this.controlSub?.unsubscribe();\n this.controlSub = this.control?.statusChanges.subscribe(() =>\n this.cdr.markForCheck(),\n );\n }\n }\n\n ngOnDestroy(): void {\n this.controlSub?.unsubscribe();\n }\n\n get inputId(): string {\n return this.id || this.uid;\n }\n\n get hasError(): boolean {\n return !!this.errorMessage;\n }\n\n get hasInvalidState(): boolean {\n return !!(this.control?.touched && this.control?.invalid);\n }\n\n get hasValidState(): boolean {\n return !!(this.control?.touched && this.control?.valid);\n }\n\n get resolvedIconColor(): string {\n if (this.indeterminate) {\n return this.iconColor || this.checkedIconColor;\n }\n\n return this.checked\n ? this.checkedIconColor || this.iconColor\n : this.uncheckedIconColor || this.iconColor;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-checkbox-color\"] = this.color;\n }\n if (this.uncheckedColor) {\n styles[\"--cao-checkbox-unselected\"] = this.uncheckedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-checkbox-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-checkbox-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-checkbox-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-checkbox-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-checkbox-size\"] = this.size;\n }\n if (this.borderRadius) {\n styles[\"--cao-checkbox-radius\"] = this.borderRadius;\n }\n if (this.animationDuration) {\n styles[\"--cao-checkbox-duration\"] = this.animationDuration;\n }\n if (this.resolvedIconColor) {\n styles[\"--cao-checkbox-icon-color\"] = this.resolvedIconColor;\n }\n\n styles[\"--cao-checkbox-icon-size\"] = this.toCssLength(this.iconSize);\n\n return styles;\n }\n\n toggle(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.setChecked(!this.checked, true);\n }\n\n setChecked(value: boolean, emit = true): void {\n if (this.isDisabled) {\n return;\n }\n\n const wasIndeterminate = this.indeterminate;\n\n this.checked = value;\n this.indeterminate = false;\n this.onChange(value);\n\n if (emit) {\n this.checkedChange.emit(value);\n this.checkboxChange.emit({ checked: value, source: this });\n }\n\n if (wasIndeterminate) {\n this.indeterminateChange.emit(false);\n }\n\n this.cdr.markForCheck();\n }\n\n setIndeterminate(value: boolean): void {\n if (this.isDisabled || this.indeterminate === value) {\n return;\n }\n\n this.indeterminate = value;\n this.indeterminateChange.emit(value);\n this.cdr.markForCheck();\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n onInputChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.setChecked(target.checked, true);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked = !!value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private toCssLength(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n }\n}\n","<label\n class=\"cao-checkbox\"\n [class.cao-checkbox--checked]=\"checked && !indeterminate\"\n [class.cao-checkbox--indeterminate]=\"indeterminate\"\n [class.cao-checkbox--disabled]=\"isDisabled\"\n [class.cao-checkbox--label-before]=\"labelPosition === 'before'\"\n [class.cao-checkbox--invalid]=\"hasInvalidState\"\n [class.cao-checkbox--valid]=\"hasValidState\">\n <input\n #input\n class=\"cao-checkbox__input\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n [attr.name]=\"name || null\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n <span class=\"cao-checkbox__control\" aria-hidden=\"true\">\n @if (indeterminate) {\n @if (indeterminateIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"indeterminateIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"indeterminateIcon\" />\n }\n } @else {\n <svg\n class=\"cao-checkbox__icon cao-checkbox__icon--default\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n }\n } @else if (checked) {\n @if (checkedIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"checkedIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"checkedIcon\" />\n }\n } @else {\n <svg\n class=\"cao-checkbox__icon cao-checkbox__icon--default\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n }\n } @else if (uncheckedIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"uncheckedIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"uncheckedIcon\" />\n }\n }\n </span>\n\n <span class=\"cao-checkbox__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import { EventEmitter, Injectable, Output } from \"@angular/core\";\n\nimport { Subject, Observable } from \"rxjs\";\n\nimport { IModal, ModalType } from \"./base-modal.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseModalService {\n constructor() { }\n @Output() readonly toggleModalEvent = new EventEmitter<IModal>();\n @Output() readonly closeAllModalsEvent = new EventEmitter<boolean>();\n @Output() readonly openModal = new EventEmitter<IModal>();\n\n private modalResultSubject = new Subject<any>();\n\n emitModalResult(result: any) {\n this.modalResultSubject.next(result);\n }\n\n onModalResult(): Observable<any> {\n return this.modalResultSubject.asObservable();\n }\n\n toggleModal(modalInfo: IModal) {\n this.toggleModalEvent.emit(modalInfo);\n }\n\n closeAllModals() {\n this.closeAllModalsEvent.emit(true);\n }\n\n showModal(_selectedModal: ModalType, data?: any) {\n this.closeAllModals();\n const modalInfo: IModal = {\n type: _selectedModal,\n data: data,\n status: true,\n };\n this.openModal.emit(modalInfo);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\n\nimport { ModalTypeClass, ModalTypeSize } from './base-modal.interface';\nimport { BaseModalService } from './base-modal.service';\n\n@Component({\n selector: 'cao-modal',\n imports: [CommonModule],\n templateUrl: './base-modal.html',\n styleUrl: './base-modal.css',\n})\nexport class BaseModal<T> {\n @Input() showModal = false;\n @Input() title = \"\";\n @Input() data!: T;\n @Input() modalTypeClass: ModalTypeClass = \"default\";\n @Input() modalClass = \"modal-default\";\n @Input() modalSize: ModalTypeSize = \"w-70\";\n @Input() closeOnOverlayClick = false;\n\n protected modalService = inject(BaseModalService);\n\n closeModals() { }\n\n closeModalsWithoutDialog() {\n this.modalService.closeAllModals();\n }\n\n onOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.closeModals();\n }\n }\n}\n","<div aria-hidden=\"true\" class=\"modal\" tabIndex=\"0\" [class.show]=\"showModal\" (keydown)=\"onOverlayClick()\"\n (click)=\"onOverlayClick()\">\n <div aria-hidden=\"true\" class=\"modal-dialog\" tabIndex=\"1\" [ngClass]=\"[modalSize, modalClass]\"\n (keydown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n</div>","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { DialogType, IDialogConfig } from './base-dialog.interface';\n\n@Component({\n selector: 'cao-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseDialog } from \"./base-dialog\";\nimport { IDialogConfig } from \"./base-dialog.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseDialogService {\n constructor(private overlay: Overlay) { }\n\n open(config: IDialogConfig): OverlayRef {\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n backdropClass: \"dialog-backdrop\",\n });\n\n const dialogPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(dialogPortal);\n\n componentRef.instance.config = config;\n\n componentRef.instance.closeDialog = () => {\n overlayRef.dispose();\n };\n\n return overlayRef;\n }\n\n generateComponentPortal(): typeof BaseDialog{\n return BaseDialog;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { ITableConfig, IColumnConfig } from \"./base-table.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseTableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) { return \"STRING\"; }\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n inject\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\n\nimport { BaseFilterTableService } from \"./base-filter-table.service\";\nimport { IColumnConfig, ITableConfig } from \"./base-table.interface\";\nimport { BaseTableService } from \"./base-table.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\n\nexport function getPtBrPaginatorIntlBaseTable(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBaseTable() }],\n})\nexport class BaseTable implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n protected tableService = inject(BaseTableService)\n protected liveAnnouncer = inject(LiveAnnouncer)\n protected filterTableService = inject(BaseFilterTableService)\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTablePaginatedService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BasePaginationService {\n private pageSubject = new BehaviorSubject<number>(1);\n private pageSizeSubject = new BehaviorSubject<number>(10);\n private totalItemsSubject = new BehaviorSubject<number>(0);\n\n public currentPage$: Observable<number> = this.pageSubject.asObservable();\n public pageSize$: Observable<number> = this.pageSizeSubject.asObservable();\n public totalItems$: Observable<number> = this.totalItemsSubject.asObservable();\n\n constructor() {}\n\n /**\n * Sets the current page number\n * @param page The page number to set\n */\n setPage(page: number): void {\n if (page !== this.pageSubject.value) {\n this.pageSubject.next(page);\n }\n }\n\n /**\n * Sets the page size\n * @param size The page size to set\n */\n setPageSize(size: number): void {\n if (size !== this.pageSizeSubject.value) {\n this.pageSizeSubject.next(size);\n }\n }\n\n /**\n * Sets the total number of items\n * @param total The total number of items\n */\n setTotalItems(total: number): void {\n if (total !== this.totalItemsSubject.value) {\n this.totalItemsSubject.next(total);\n }\n }\n\n /**\n * Gets the current page\n */\n getCurrentPage(): number {\n return this.pageSubject.value;\n }\n\n /**\n * Gets the current page size\n */\n getPageSize(): number {\n return this.pageSizeSubject.value;\n }\n\n /**\n * Gets the total number of items\n */\n getTotalItems(): number {\n return this.totalItemsSubject.value;\n }\n\n /**\n * Resets pagination to default values\n */\n reset(): void {\n this.pageSubject.next(1);\n this.pageSizeSubject.next(10);\n this.totalItemsSubject.next(0);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TablePaginatedService {\n private tableConfigSubject = new BehaviorSubject<ITablePaginatedConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnPaginatedConfig[]>([]);\n\n tableConfig$: Observable<ITablePaginatedConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnPaginatedConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnPaginatedConfig[], customConfig?: Partial<ITablePaginatedConfig>): void {\n const tableConfig: ITablePaginatedConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnPaginatedConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnPaginatedConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnPaginatedConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n inject,\n ViewChild,\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { BaseFilterTablePaginatedService } from \"./base-filter-table-paginated.service\";\nimport { BasePaginationService } from \"./base-pagination.service\";\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\nimport { TablePaginatedService } from \"./base-table-paginated.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\nexport function getPtBrPaginatorIntlBasePaginated(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n@Component({\n selector: \"cao-table-paginated\",\n templateUrl: \"./base-table-paginated.html\",\n styleUrl: \"./base-table-paginated.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, MaterialModule],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBasePaginated() }],\n})\nexport class BaseTablePaginated implements OnInit, OnDestroy {\n private paginationSubscriptions: Subscription[] = [];\n @Input() getColumnCssClass?: (columnKey: string, value: any) => string | null;\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n @Output() readonly rowClicked = new EventEmitter<any>();\n\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITablePaginatedConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n\n protected paginationService = inject(BasePaginationService);\n protected tableService = inject(TablePaginatedService);\n protected liveAnnouncer = inject(LiveAnnouncer);\n protected filterTableService = inject(BaseFilterTablePaginatedService);\n\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n\n this.paginationSubscriptions.push(\n this.paginationService.currentPage$.subscribe((page) => {\n if (this.currentPage !== page) {\n this.onPageChanged(page);\n }\n }),\n\n this.paginationService.pageSize$.subscribe((size) => {\n if (this.pageSize !== size) {\n this.onPageSizeChanged(size);\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n this.paginationSubscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n updateTotalItems(newTotalItens?: number): void {\n this.totalItems = newTotalItens ?? this.totalItems;\n this.paginationService.setTotalItems(this.totalItems);\n\n const lastPage = this.pageSize > 0 ? Math.ceil(this.totalItems / this.pageSize) : 1;\n const lastValidPage = lastPage > 0 ? lastPage : 1;\n\n if (this.currentPage > lastValidPage) {\n this.paginationService.setPage(1);\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnType(column: string): IColumnPaginatedConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n handlePageChange(event: PageEvent): void {\n this.pageSize = event.pageSize;\n this.paginationService.setPageSize(event.pageSize);\n this.pageChanged.emit(event.pageIndex);\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n onRowClick(row: any): void {\n this.rowClicked.emit(row);\n }\n\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <table mat-table matSort [dataSource]=\"dataSource\" (matSortChange)=\"announceSortChange($event)\">\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell mat-sort-header class=\"table-header\">\n {{ getColumnHeader(column) }}\n </th>\n <td *matCellDef=\"let element\" mat-cell class=\"table-cell\">\n @switch (getColumnType(column)) { @case ('STRING') { @if (getColumnCssClass &&\n getColumnCssClass(column, element[getColumnElement(column)])) {\n <span [class]=\"getColumnCssClass(column, element[getColumnElement(column)])\">\n {{ element[getColumnElement(column)] }}\n </span>\n } @else {\n <span>{{ element[getColumnElement(column)] }}</span>\n } } @case ('BOOLEAN') {\n <mat-checkbox disabled [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button type=\"button\" mat-icon-button [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td\n *matFooterCellDef\n mat-footer-cell\n class=\"table-cell\"\n [attr.colspan]=\"displayedColumns.length\">\n Total de Registros: {{ totalItems }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row (click)=\"onRowClick(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row class=\"mat-row-footer\"></tr>\n </table>\n @if(totalItems > 0){\n\n <mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n } @else {\n <div class=\"no-data-container\">\n <h2>{{ tableConfig?.result?.noData ?? 'Não há dados disponíveis' }}</h2>\n <p>{{ tableConfig?.result?.defaultMessage ?? 'Adicione alguns dados' }}</p>\n </div>\n } }\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { AlertType } from './base-alert.interface';\n\n@Component({\n selector: 'cao-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n\n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseAlert } from \"./base-alert\";\nimport { IAlertConfig } from \"./base-alert.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseAlertService {\n constructor(private overlay: Overlay) { }\n protected defaultTime = 3000\n\n show(config: IAlertConfig): void {\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().centerHorizontally().top(\"10%\"),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const alertPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(alertPortal);\n componentRef.instance.data = config;\n\n setTimeout(() => {\n overlayRef.dispose();\n }, this.defaultTime);\n }\n\n generateComponentPortal(): typeof BaseAlert{\n return BaseAlert;\n }\n}\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType } from \"@angular/cdk/portal\";\nimport { Injectable, inject } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { CaoBaseWidgetComponent } from \"./base-widget\";\nimport { ICaoWidgetOptions } from \"./base-widget.interface\";\n\n\n@Injectable({ providedIn: \"root\" })\nexport class CaoWidgetService {\n private readonly overlay = inject(Overlay);\n private overlayRef: ReturnType<Overlay[\"create\"]> | null = null;\n\n open<TComponent>(component: ComponentType<TComponent>, options: ICaoWidgetOptions = {}): void {\n const substituindoWidget = !!this.overlayRef;\n if (this.overlayRef) {\n this.close();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n this.overlayRef = overlayRef;\n\n const ref = overlayRef.attach(new ComponentPortal<TComponent>(component));\n const instance = ref.instance as CaoBaseWidgetComponent;\n\n for (const [key, value] of Object.entries(options.inputs ?? {})) {\n (ref.setInput as (inputName: string, value: unknown) => void)(key, value);\n }\n\n if (options.data !== undefined) {\n (ref.setInput as (inputName: string, value: unknown) => void)(\"widgetData\", options.data);\n }\n\n const subscriptions = new Subscription();\n let disposed = false;\n\n if (!(substituindoWidget && history.state?.widget)) {\n history.pushState({ widget: true }, \"\");\n }\n\n const onPopState = () => {\n dispose();\n options.onClose?.();\n };\n window.addEventListener(\"popstate\", onPopState);\n\n const dispose = () => {\n if (disposed) {return;}\n disposed = true;\n window.removeEventListener(\"popstate\", onPopState);\n subscriptions.unsubscribe();\n overlayRef.dispose();\n if (this.overlayRef === overlayRef) {\n this.overlayRef = null;\n }\n };\n\n subscriptions.add(instance.save.subscribe(() => options.onSave?.()));\n subscriptions.add(instance.deleted.subscribe(() => options.onDelete?.()));\n subscriptions.add(\n instance.closeRequest.subscribe(() => {\n if (history.state?.widget) {\n history.back();\n } else {\n dispose();\n }\n options.onClose?.();\n })\n );\n\n overlayRef.detachments().subscribe(() => {\n disposed = true;\n window.removeEventListener(\"popstate\", onPopState);\n subscriptions.unsubscribe();\n if (this.overlayRef === overlayRef) {\n this.overlayRef = null;\n }\n });\n\n ref.changeDetectorRef.detectChanges();\n }\n\n close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, DestroyRef, HostListener, inject, input, output, signal } from \"@angular/core\";\n\nimport { CaoWidgetService } from './widget.service';\n\nexport type CaoWidgetDirection = \"left\" | \"right\" | \"top\" | \"bottom\";\n\n@Component({\n selector: \"cao-base-widget\",\n imports: [CommonModule],\n templateUrl: \"./base-widget.html\",\n styleUrl: \"./base-widget.css\",\n})\nexport class CaoBaseWidgetComponent<TData = unknown> {\n private static readonly CLOSE_ANIMATION_MS = 250;\n\n title = input(\"Titulo\")\n subtitle = input(\"\")\n widgetIcon = input(\"\")\n\n cancelTextButton = input(\"Cancelar\")\n saveTextButton = input(\"Gerar\")\n displayActionButton = input(true)\n displaySaveButton = input(true)\n displayCancelButton = input(true)\n shouldCloseWhenCancel = input(true)\n widgetDirection = input<CaoWidgetDirection>(\"right\")\n typeCancel = input<\"cancel\" | \"back\">(\"cancel\")\n saveDisabled = input(false)\n saveIcon = input(\"arrow-right\")\n saveIconPosition = input<\"leading\" | \"trailing\">(\"trailing\")\n closeOnClickOutside = input(true)\n confirmOnClose = input(false)\n widgetData = input<TData | undefined>(undefined)\n\n readonly save = output<void>()\n readonly deleted = output<void>()\n readonly cancelEvent = output<void>()\n readonly closeRequest = output<void>()\n\n readonly closing = signal(false)\n private mouseDownOnBackdrop = false;\n private closeStarted = false;\n private closeEmitted = false;\n private closeConfirmationOpen = false;\n\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly widgetService = inject(CaoWidgetService)\n\n closeWidget(): void {\n if (this.closeStarted) {return;}\n \n this.startClose();\n }\n\n saveWidget(): void {\n this.save.emit();\n }\n\n cancelWidget(): void {\n this.cancelEvent.emit();\n }\n\n deletedWidget(): void {\n this.deleted.emit();\n }\n\n onAnimationEnd(event: AnimationEvent): void {\n if (!this.closing() || event.target !== event.currentTarget) {return;}\n this.emitCloseRequest();\n }\n\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n if (this.closeConfirmationOpen) {\n this.closeConfirmationOpen = false;\n return;\n }\n this.closeWidget();\n }\n\n\n protected forwardCloseRequest(): void {\n this.closeRequest.emit();\n }\n\n onBackdropMouseDown(event: MouseEvent): void {\n this.mouseDownOnBackdrop = event.target === event.currentTarget;\n }\n\n onBackdropMouseUp(event: MouseEvent): void {\n const closeRequested =\n this.mouseDownOnBackdrop &&\n event.target === event.currentTarget &&\n this.closeOnClickOutside();\n this.mouseDownOnBackdrop = false;\n\n if (closeRequested) {\n this.closeWidget();\n }\n }\n\n private startClose(): void {\n if (this.closeStarted) {return;}\n this.closeStarted = true;\n this.closing.set(true);\n setTimeout(() => this.emitCloseRequest(), CaoBaseWidgetComponent.CLOSE_ANIMATION_MS);\n }\n\n\n private emitCloseRequest(): void {\n if (this.closeEmitted) {return;}\n this.closeEmitted = true;\n this.closeRequest.emit();\n }\n}","<div\n class=\"widget-backdrop\"\n role=\"presentation\"\n tabindex=\"-1\"\n [ngClass]=\"widgetDirection()\"\n [class.widget-backdrop--closing]=\"closing()\"\n (mousedown)=\"onBackdropMouseDown($event)\"\n (mouseup)=\"onBackdropMouseUp($event)\"\n (animationend)=\"onAnimationEnd($event)\">\n <div\n class=\"widget-panel\"\n [class.widget-panel--closing]=\"closing()\"\n (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\">\n <div class=\"widget-body\">\n <div class=\"widget-header\">\n <div class=\"widget-title\">\n <h1>{{ title() }}</h1>\n <h2>{{ subtitle() }}</h2>\n </div>\n <ng-content select=\"widget-title\" />\n </div>\n <div class=\"widget-scroll\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4","i3","i6","i9","i5","i7","i8"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-opalbytes-components.mjs","sources":["../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.token.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion/accordion.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion-item/accordion-item.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/accordion-item/accordion-item.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-button/base-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-input/base-input.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-time-range/base-time-range.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/autocomplete/autocomplete.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/drop-down/drop-down.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/links-button/links-button.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/footer/footer.html","../../../projects/ngx-opalbytes-components/src/lib/material.module.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/paginator/paginator.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/time-picker/time-picker.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/step/step.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/stepper/stepper.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-content.directive.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-label.directive.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-panel/tab-panel.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-group/tab-group.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/tab-group/tab-group.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-icon/base-icon.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-icon/base-icon.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/kpi/kpi.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/kpi/kpi.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/skeleton/skeleton.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/skeleton/skeleton.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/form-field.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/form-field.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/form-field/error-state-matcher.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/hint/hint.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/hint/hint.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/error/error.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/error/error.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/card/card.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/card/card.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-toggle/base-toggle.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/base-toggle/base-toggle.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/slide-toggle/slide-toggle.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/slide-toggle/slide-toggle.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-group.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-button.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/radio/radio-button.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/checkbox/checkbox.component.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/checkbox/checkbox.component.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/breadcrumb/breadcrumb.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/breadcrumb/breadcrumb.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/progress-bar/progress-bar.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/progress-bar/progress-bar.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/progress-spinner/progress-spinner.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/progress-spinner/progress-spinner.html","../../../projects/ngx-opalbytes-components/src/lib/shared/components/popover/popover.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/components/popover/popover.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-modal/base-modal.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-dialog/base-dialog.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-filter-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table/base-table.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-filter-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-pagination.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-table-paginated/base-table-paginated.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.html","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-alert/base-alert.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/widget.service.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/base-widget.ts","../../../projects/ngx-opalbytes-components/src/lib/shared/features/base-widget/base-widget.html","../../../projects/ngx-opalbytes-components/src/ngx-opalbytes-components.ts"],"sourcesContent":["import { InjectionToken, Signal } from '@angular/core';\n\n/** Posição do ícone de expandir/recolher em relação ao texto do cabeçalho. */\nexport type CaoAccordionTogglePosition = 'before' | 'after';\n\n/** Alinhamento horizontal de texto (cabeçalho ou conteúdo). */\nexport type CaoAccordionAlign = 'start' | 'center' | 'end';\n\n/**\n * Modo de exibição do accordion.\n * - `default`: painéis unidos dentro de um único contorno arredondado.\n * - `flat`: painéis unidos, sem bordas laterais nem cantos arredondados.\n * - `separated`: cada painel é um cartão independente, separado por `gap`.\n */\nexport type CaoAccordionDisplayMode = 'default' | 'flat' | 'separated';\n\n/** Contrato mínimo que um item precisa expor para ser controlado pelo accordion. */\nexport interface ICaoAccordionItemRef {\n readonly expanded: Signal<boolean>;\n readonly isDisabled: Signal<boolean>;\n open(): void;\n close(): void;\n}\n\n/**\n * Contrato do accordion consumido pelos itens.\n * Existe para evitar import circular entre `accordion` e `accordion-item`.\n */\nexport interface ICaoAccordionHost {\n readonly multi: Signal<boolean>;\n readonly hideToggle: Signal<boolean>;\n readonly togglePosition: Signal<CaoAccordionTogglePosition>;\n readonly headerAlign: Signal<CaoAccordionAlign>;\n readonly displayMode: Signal<CaoAccordionDisplayMode>;\n register(item: ICaoAccordionItemRef): void;\n unregister(item: ICaoAccordionItemRef): void;\n notifyOpened(item: ICaoAccordionItemRef): void;\n}\n\nexport const CAO_ACCORDION = new InjectionToken<ICaoAccordionHost>('CAO_ACCORDION');","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n HostBinding,\n HostListener,\n inject,\n input,\n} from '@angular/core';\n\nimport {\n CAO_ACCORDION,\n CaoAccordionAlign,\n CaoAccordionDisplayMode,\n CaoAccordionTogglePosition,\n ICaoAccordionHost,\n ICaoAccordionItemRef,\n} from './accordion.token';\n\nconst HEADER_SELECTOR = '.cao-accordion-item__header:not(:disabled)';\n\n/**\n * Container de `<cao-accordion-item>`. Controla o modo de expansão (único ou múltiplo),\n * a navegação por teclado e o tema (cores, posições e visibilidade) herdado pelos itens.\n */\n@Component({\n selector: 'cao-accordion',\n templateUrl: './accordion.component.html',\n styleUrl: './accordion.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [{ provide: CAO_ACCORDION, useExisting: forwardRef(() => CaoAccordionComponent) }],\n})\nexport class CaoAccordionComponent implements ICaoAccordionHost {\n private readonly host = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly items = new Set<ICaoAccordionItemRef>();\n\n // ----- Comportamento -----\n /** Permite vários itens expandidos ao mesmo tempo. */\n readonly multi = input<boolean>(false);\n /** Oculta o ícone de expandir/recolher em todos os itens (cada item pode sobrescrever). */\n readonly hideToggle = input<boolean>(false);\n /** Exibe ou oculta o accordion inteiro. */\n readonly isVisible = input<boolean>(true);\n /** Atributo `data-cy` para testes E2E. */\n readonly dataCy = input<string>('');\n\n // ----- Posição / layout -----\n readonly togglePosition = input<CaoAccordionTogglePosition>('after');\n readonly headerAlign = input<CaoAccordionAlign>('start');\n readonly contentAlign = input<CaoAccordionAlign>('start');\n readonly displayMode = input<CaoAccordionDisplayMode>('default');\n\n // ----- Cores -----\n readonly headerBgColor = input<string>('');\n readonly headerTextColor = input<string>('');\n readonly headerHoverBgColor = input<string>('');\n readonly headerActiveBgColor = input<string>('');\n readonly activeColor = input<string>('');\n readonly contentBgColor = input<string>('');\n readonly contentTextColor = input<string>('');\n readonly borderColor = input<string>('');\n readonly disabledColor = input<string>('');\n readonly focusRingColor = input<string>('');\n readonly iconColor = input<string>('');\n\n // ----- Dimensões / animação -----\n readonly borderRadius = input<string>('');\n readonly gap = input<string>('');\n readonly headerPadding = input<string>('');\n readonly contentPadding = input<string>('');\n readonly animationDuration = input<string>('');\n\n private readonly hostStyle = computed(() => ({\n '--cao-accordion-header-bg': this.headerBgColor() || null,\n '--cao-accordion-header-text': this.headerTextColor() || null,\n '--cao-accordion-header-hover-bg': this.headerHoverBgColor() || null,\n '--cao-accordion-header-active-bg': this.headerActiveBgColor() || null,\n '--cao-accordion-active-color': this.activeColor() || null,\n '--cao-accordion-content-bg': this.contentBgColor() || null,\n '--cao-accordion-content-text': this.contentTextColor() || null,\n '--cao-accordion-border-color': this.borderColor() || null,\n '--cao-accordion-disabled-color': this.disabledColor() || null,\n '--cao-accordion-focus-ring': this.focusRingColor() || null,\n '--cao-accordion-icon-color': this.iconColor() || null,\n '--cao-accordion-radius': this.borderRadius() || null,\n '--cao-accordion-gap': this.gap() || null,\n '--cao-accordion-header-padding': this.headerPadding() || null,\n '--cao-accordion-content-padding': this.contentPadding() || null,\n '--cao-accordion-duration': this.animationDuration() || null,\n '--cao-accordion-content-align': this.contentAlign(),\n }));\n\n @HostBinding('style')\n get styleBinding(): Record<string, string | null> {\n return this.hostStyle();\n }\n\n @HostBinding('attr.data-cy')\n get dataCyAttr(): string | null {\n return this.dataCy() || null;\n }\n\n @HostBinding('class.cao-accordion--hidden')\n get hiddenClass(): boolean {\n return !this.isVisible();\n }\n\n @HostBinding('class.cao-accordion--default')\n get defaultModeClass(): boolean {\n return this.displayMode() === 'default';\n }\n\n @HostBinding('class.cao-accordion--flat')\n get flatModeClass(): boolean {\n return this.displayMode() === 'flat';\n }\n\n @HostBinding('class.cao-accordion--separated')\n get separatedModeClass(): boolean {\n return this.displayMode() === 'separated';\n }\n\n /** Expande todos os itens. Só tem efeito quando `multi` está ativo. */\n openAll(): void {\n if (!this.multi()) {\n return;\n }\n this.items.forEach((item) => item.open());\n }\n\n /** Recolhe todos os itens. */\n closeAll(): void {\n this.items.forEach((item) => item.close());\n }\n\n register(item: ICaoAccordionItemRef): void {\n this.items.add(item);\n }\n\n unregister(item: ICaoAccordionItemRef): void {\n this.items.delete(item);\n }\n\n /** Chamado pelos itens ao expandir: no modo único, recolhe os demais. */\n notifyOpened(item: ICaoAccordionItemRef): void {\n if (this.multi()) {\n return;\n }\n this.items.forEach((other) => {\n if (other !== item && other.expanded()) {\n other.close();\n }\n });\n }\n\n /** Navegação por teclado entre cabeçalhos: ↑ ↓ Home End. */\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n const root = this.host.nativeElement;\n const target = event.target as HTMLElement | null;\n\n if (!target?.classList.contains('cao-accordion-item__header') || target.closest('cao-accordion') !== root) {\n return;\n }\n\n const headers = Array.from(root.querySelectorAll<HTMLElement>(HEADER_SELECTOR)).filter(\n (header) => header.closest('cao-accordion') === root && !header.closest('.cao-accordion-item--hidden'),\n );\n const current = headers.indexOf(target);\n const last = headers.length - 1;\n let next: number;\n\n switch (event.key) {\n case 'ArrowDown':\n next = current >= last ? 0 : current + 1;\n break;\n case 'ArrowUp':\n next = current <= 0 ? last : current - 1;\n break;\n case 'Home':\n next = 0;\n break;\n case 'End':\n next = last;\n break;\n default:\n return;\n }\n\n event.preventDefault();\n headers[next]?.focus();\n }\n}","<ng-content />","import {\n ChangeDetectionStrategy,\n Component,\n computed,\n DestroyRef,\n effect,\n HostBinding,\n inject,\n input,\n model,\n output,\n untracked,\n} from '@angular/core';\n\nimport { CAO_ACCORDION, CaoAccordionAlign, CaoAccordionTogglePosition, ICaoAccordionItemRef } from '../accordion/accordion.token';\n\n\nlet nextId = 0;\n\n/**\n * Item do accordion. Pode ser usado dentro de `<cao-accordion>` ou isolado (como um cartão expansível).\n * Os inputs de cor/posição, quando informados, sobrescrevem os valores definidos no accordion.\n */\n@Component({\n selector: 'cao-accordion-item',\n templateUrl: './accordion-item.component.html',\n styleUrl: './accordion-item.component.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoAccordionItemComponent implements ICaoAccordionItemRef {\n private readonly accordion = inject(CAO_ACCORDION, { optional: true });\n private readonly destroyRef = inject(DestroyRef);\n private previousExpanded: boolean | null = null;\n\n protected readonly headerId = `cao-accordion-header-${nextId}`;\n protected readonly panelId = `cao-accordion-panel-${nextId++}`;\n\n // ----- Conteúdo -----\n readonly label = input<string>('');\n readonly description = input<string>('');\n /** Nível do heading (aria-level) do cabeçalho. */\n readonly headingLevel = input<number>(3);\n\n // ----- Estado -----\n /** Estado de expansão. Suporta two-way binding: `[(expanded)]`. */\n readonly expanded = model<boolean>(false);\n readonly isDisabled = input<boolean>(false);\n /** Exibe ou oculta o item. */\n readonly isVisible = input<boolean>(true);\n readonly dataCy = input<string>('');\n\n // ----- Posição (sobrescreve o accordion quando informado) -----\n readonly hideToggle = input<boolean | undefined>(undefined);\n readonly togglePosition = input<CaoAccordionTogglePosition | undefined>(undefined);\n readonly headerAlign = input<CaoAccordionAlign | undefined>(undefined);\n\n // ----- Cores (sobrescrevem o accordion quando informadas) -----\n readonly headerBgColor = input<string>('');\n readonly headerTextColor = input<string>('');\n readonly headerActiveBgColor = input<string>('');\n readonly activeColor = input<string>('');\n readonly contentBgColor = input<string>('');\n readonly contentTextColor = input<string>('');\n readonly borderColor = input<string>('');\n readonly iconColor = input<string>('');\n\n // ----- Eventos -----\n readonly opened = output<void>();\n readonly closed = output<void>();\n\n protected readonly toggleHidden = computed(\n () => this.hideToggle() ?? this.accordion?.hideToggle() ?? false,\n );\n protected readonly togglePos = computed(\n () => this.togglePosition() ?? this.accordion?.togglePosition() ?? 'after',\n );\n private readonly align = computed(() => this.headerAlign() ?? this.accordion?.headerAlign() ?? 'start');\n private readonly isCard = computed(() => (this.accordion?.displayMode() ?? 'separated') === 'separated');\n\n protected readonly headerDataCy = computed(() => (this.dataCy() ? `${this.dataCy()}-header` : null));\n protected readonly panelDataCy = computed(() => (this.dataCy() ? `${this.dataCy()}-content` : null));\n\n private readonly hostStyle = computed(() => ({\n '--cao-accordion-header-bg': this.headerBgColor() || null,\n '--cao-accordion-header-text': this.headerTextColor() || null,\n '--cao-accordion-header-active-bg': this.headerActiveBgColor() || null,\n '--cao-accordion-active-color': this.activeColor() || null,\n '--cao-accordion-content-bg': this.contentBgColor() || null,\n '--cao-accordion-content-text': this.contentTextColor() || null,\n '--cao-accordion-border-color': this.borderColor() || null,\n '--cao-accordion-icon-color': this.iconColor() || null,\n '--cao-accordion-header-align': this.align(),\n }));\n\n @HostBinding('style')\n get styleBinding(): Record<string, string | null> {\n return this.hostStyle();\n }\n\n @HostBinding('attr.data-cy')\n get dataCyAttr(): string | null {\n return this.dataCy() || null;\n }\n\n @HostBinding('class.cao-accordion-item--hidden')\n get hiddenClass(): boolean {\n return !this.isVisible();\n }\n\n @HostBinding('class.cao-accordion-item--expanded')\n get expandedClass(): boolean {\n return this.expanded();\n }\n\n @HostBinding('class.cao-accordion-item--card')\n get cardClass(): boolean {\n return this.isCard();\n }\n\n constructor() {\n this.accordion?.register(this);\n this.destroyRef.onDestroy(() => this.accordion?.unregister(this));\n\n effect(() => {\n const isExpanded = this.expanded();\n untracked(() => this.handleExpandedChange(isExpanded));\n });\n }\n\n /** Alterna o estado (ignorado quando o item está desabilitado). */\n toggle(): void {\n if (this.isDisabled()) {\n return;\n }\n this.expanded.update((value) => !value);\n }\n\n open(): void {\n this.expanded.set(true);\n }\n\n close(): void {\n this.expanded.set(false);\n }\n\n private handleExpandedChange(isExpanded: boolean): void {\n if (isExpanded) {\n this.accordion?.notifyOpened(this);\n }\n\n if (this.previousExpanded !== null && this.previousExpanded !== isExpanded) {\n const event = isExpanded ? this.opened : this.closed;\n event.emit();\n }\n this.previousExpanded = isExpanded;\n }\n}","<div class=\"cao-accordion-item\">\n <div class=\"cao-accordion-item__heading\" role=\"heading\" [attr.aria-level]=\"headingLevel()\">\n <button\n type=\"button\"\n class=\"cao-accordion-item__header\"\n [class.cao-accordion-item__header--toggle-before]=\"togglePos() === 'before'\"\n [id]=\"headerId\"\n [disabled]=\"isDisabled()\"\n [attr.aria-expanded]=\"expanded()\"\n [attr.aria-controls]=\"panelId\"\n [attr.data-cy]=\"headerDataCy()\"\n (click)=\"toggle()\">\n <span class=\"cao-accordion-item__text\">\n <span class=\"cao-accordion-item__label\">{{ label() }}</span>\n @if (description()) {\n <span class=\"cao-accordion-item__description\">{{ description() }}</span>\n }\n <ng-content select=\"[caoAccordionHeader]\" />\n </span>\n\n @if (!toggleHidden()) {\n <svg\n class=\"cao-accordion-item__icon\"\n viewBox=\"0 0 24 24\"\n width=\"20\"\n height=\"20\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\"\n focusable=\"false\">\n <path d=\"m6 9 6 6 6-6\" />\n </svg>\n }\n </button>\n </div>\n\n <div\n class=\"cao-accordion-item__panel\"\n role=\"region\"\n [id]=\"panelId\"\n [attr.aria-labelledby]=\"headerId\"\n [attr.data-cy]=\"panelDataCy()\">\n <div class=\"cao-accordion-item__panel-inner\">\n <div class=\"cao-accordion-item__content\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, OnInit, Output } from \"@angular/core\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\n@Component({\n standalone: true,\n selector: \"cao-button\",\n templateUrl: \"./base-button.component.html\",\n styleUrls: [\"./base-button.component.scss\"],\n imports: [CommonModule, MatTooltipModule, LucideDynamicIcon],\n})\nexport class CaoBaseButtonComponent implements OnInit{\n @Output() readonly buttonClick = new EventEmitter<void>();\n\n @Input() buttonText = \"Clique!\";\n @Input() isDarkMode = false;\n @Input() isDisabled = false;\n @Input() isLoading = false;\n @Input() btnClass = \"\";\n\n @Input() tooltip?:string;\n @Input() trailingIcon?: string;\n @Input() leadingIcon?: string;\n @Input() isLucideIcon = true;\n @Input() dataCy?: string;\n @Input() iconColor?: string;\n @Input() strokeWidthIcon = 1\n @Input() minTextToTooltip = 20\n @Input() iconSize = 24\n\n ngOnInit(): void {\n if (!this.dataCy) {\n this.dataCy = `btn-${this.buttonText.replace(/\\s+/g, '-').toLowerCase()}`;\n }\n\n if(!this.tooltip && this.buttonText.length >= this.minTextToTooltip){\n this.tooltip = this.buttonText\n }\n }\n\n onClick(): void {\n if (!this.isDisabled && !this.isLoading) {\n this.buttonClick.emit();\n }\n }\n}\n","<button\n type=\"button\"\n class=\"base-button\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n [matTooltip]=\"tooltip\"\n [matTooltipDisabled]=\"!tooltip\"\n [class.dark-mode]=\"isDarkMode\"\n [class.disabled]=\"isDisabled\"\n [class.loading]=\"isLoading\"\n [disabled]=\"isDisabled || isLoading\"\n [attr.data-cy]=\"dataCy\"\n (click)=\"onClick()\">\n @if (leadingIcon) {\n <span class=\"leading-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"leadingIcon\" [size]=\"iconSize\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"leadingIcon\" [style.width]=\"iconSize\" />\n }\n </span>\n } {{ buttonText }} @if (trailingIcon) {\n <span class=\"trailing-icon\">\n @if (isLucideIcon) {\n <svg [lucideIcon]=\"trailingIcon\" [size]=\"iconSize\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"trailingIcon\" [style.width]=\"iconSize\" />\n }\n </span>\n } @if (isLoading) {\n <span class=\"loader\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR, FormsModule } from \"@angular/forms\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { NgxMaskDirective, provideNgxMask } from \"ngx-mask\";\n\nexport type CaoTypeInputs = 'text' | 'textarea' | 'number' | 'password' | 'date'\n\n@Component({\n standalone: true,\n selector: \"cao-input\",\n templateUrl: \"./base-input.html\",\n styleUrls: [\"./base-input.css\"],\n imports: [CommonModule, FormsModule, NgxMaskDirective, MatTooltipModule, LucideDynamicIcon],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: CaoBaseInput,\n multi: true,\n },\n provideNgxMask(),\n ],\n})\nexport class CaoBaseInput implements ControlValueAccessor {\n @Input() type: CaoTypeInputs = \"text\" ;\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"form-field input-component\" [class.search-mode]=\"searchMode\">\n <div class=\"input-wrapper\" [class.has-leading-icon]=\"_leadingIcon\" [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\">\n @if (_leadingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"_leadingIcon\"/>\n </div>\n } } @switch (type) { \n @case ('textarea') {\n <textarea matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"above\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [rows]=\"textareaRows\" [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\"\n [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (focus)=\"onFocus()\" (blur)=\"onBlur()\"></textarea>\n } \n @default {\n <input matTooltip=\"{{ tooltip }}\" matTooltipPosition=\"below\" matTooltipClass=\"custom-arrow-tooltip\" [attr.data-cy]=\"dataCy\" [type]=\"type\"\n [placeholder]=\"placeholder\" [disabled]=\"isDisabled\" [ngClass]=\"[\n inputClass,\n control?.touched && control?.invalid ? 'invalid' : '',\n control?.touched && control?.valid && control?.value ? 'valid' : ''\n ]\" [attr.maxlength]=\"maxLength\"\n [mask]=\"mask\" [allowNegativeNumbers]=\"allowNegativeNumbers\" [thousandSeparator]=\"thousandSeparator\" [decimalMarker]=\"decimalMarker\" [separatorLimit]=\"separatorLimit\" [(ngModel)]=\"value\" (input)=\"onInput($event)\"\n (change)=\"onInputChange($event)\" (focus)=\"onFocus()\" (blur)=\"onBlur()\" />\n } } @if (_trailingIcon) { @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de fim\" [src]=\"_trailingIcon\" />\n </div>\n } } \n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { MatDatepickerModule, MatDateRangeInput } from '@angular/material/datepicker';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\n@Component({\n selector: 'cao-base-time-range',\n imports: [MatFormFieldModule, MatInputModule, MatDatepickerModule],\n templateUrl: './base-time-range.html',\n styleUrl: './base-time-range.css',\n})\nexport class BaseTimeRange implements OnInit{\n @Input() label = \"\";\n @Input() max: Date | undefined;\n @Input() minDate: Date | undefined;\n @Input() maxDate: Date | undefined;\n @Input() startDate: Date | undefined;\n @Input() finalDate: Date | undefined;\n @Input() dataCy?: string\n @Input() controlName = \"\";\n\n @Output() readonly rangeSelected = new EventEmitter<Date[]>();\n\n @ViewChild(MatDateRangeInput) dateRangeInput!: MatDateRangeInput<Date>;\n\n ngOnInit(): void {\n if(!this.dataCy){\n this.dataCy = `time-range-${this.label}`\n }\n }\n\n onSelectStartDate(event: any) {\n const date = event.target.value as Date;\n this.startDate = date;\n this.finalDate = undefined;\n\n const maxDate = new Date(date);\n maxDate.setDate(maxDate.getDate() + 30);\n\n this.maxDate = maxDate;\n }\n\n onInputMaxDate(event: any) {\n const finalDate = event.target.value as Date;\n if (this.startDate && finalDate) {\n const data = [this.startDate, finalDate];\n this.rangeSelected.emit(data);\n }\n }\n\n clearInputs() {\n this.max = undefined;\n this.minDate = undefined;\n this.maxDate = undefined;\n this.startDate = undefined;\n this.finalDate = undefined;\n\n this.dateRangeInput._startInput.value = \"\";\n this.dateRangeInput._endInput.value = \"\";\n }\n}\n","<label class=\"label-dropw-down\" [for]=\"controlName\">{{ label }}</label>\n<mat-form-field class=\"input-data-field\" subscriptSizing=\"dynamic\" appearance=\"outline\">\n <mat-date-range-input [rangePicker]=\"picker\" [max]=\"maxDate\"\n [attr.dataCy]=\"this.dataCy\"\n >\n <input\n #startDateInput\n matStartDate\n placeholder=\"DATA INÍCIO\"\n [tabIndex]=\"1\"\n [value]=\"startDate\"\n (dateInput)=\"onSelectStartDate($event)\" />\n <input\n #endDateInput\n matEndDate\n placeholder=\"DATA FIM\"\n [tabIndex]=\"2\"\n [value]=\"finalDate\"\n (dateInput)=\"onInputMaxDate($event)\" />\n </mat-date-range-input>\n <mat-datepicker-toggle matIconSuffix [for]=\"picker\" />\n <mat-date-range-picker #picker />\n</mat-form-field>\n","import { Overlay, OverlayRef, OverlayModule } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CdkScrollable, ScrollDispatcher } from '@angular/cdk/scrolling';\nimport {\n CommonModule\n} from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n OnInit,\n Output,\n ViewChild,\n forwardRef,\n inject,\n OnChanges,\n OnDestroy,\n SimpleChanges,\n Renderer2,\n ViewContainerRef,\n AfterViewInit,\n TemplateRef\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport {\n Observable,\n Subscription,\n startWith,\n map,\n BehaviorSubject,\n combineLatest\n} from \"rxjs\";\n\n\nexport interface ICaoAutoCompleteOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n}\n\n@Component({\n selector: \"cao-autocomplete\",\n templateUrl: \"./autocomplete.component.html\",\n styleUrls: [\"./autocomplete.component.scss\"],\n standalone: true,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n LucideDynamicIcon,\n OverlayModule,\n CdkScrollable\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoAutocompleteComponent),\n multi: true,\n },\n ],\n})\nexport class CaoAutocompleteComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit, ControlValueAccessor {\n @Input() label = \"\";\n @Input() placeholder = \"\";\n @Input() options: ICaoAutoCompleteOption[] = [];\n @Input() control: AbstractControl = new FormControl();\n @Input() dataCy = \"\";\n @Input() controlName = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() _leadingIcon?: string;\n @Input() _trailingIcon?: string;\n @Input() optionIcon?: string;\n @Input() optionIConColor?: string;\n @Input() isLucideOptionIcon?: boolean;\n @Input() autocompleteBgColor = 'white';\n @Input() strokeWidthIcon = 1;\n @Input() isDisabled = false;\n @Input() inputHeigth = '50px';\n @Input() iconSize = 24\n\n @Input() checkIcon = '✓';\n @Input() showCheckIcon = true;\n @Input() isLucideCheckIcon = false;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoAutoCompleteOption>();\n @Output() readonly blurEvent = new EventEmitter<void>();\n @Output() readonly focusEvent = new EventEmitter<void>();\n\n @Output() readonly leadingIconClick = new EventEmitter<MouseEvent | Event>();\n @Output() readonly trailingIconClick = new EventEmitter<MouseEvent | Event>();\n\n @ViewChild('inputEl') inputEl!: ElementRef<HTMLInputElement>;\n @ViewChild('wrapper', { static: true }) wrapperEl!: ElementRef<HTMLDivElement>;\n \n // CORREÇÃO: ViewChild para o ng-template\n @ViewChild('panel', { static: true }) panelTemplate!: TemplateRef<any>;\n\n /** controla apenas o texto digitado / exibido no input */\n internalControl = new FormControl<string>(\"\");\n filteredOptions$!: Observable<ICaoAutoCompleteOption[]>;\n filteredOptionsList: ICaoAutoCompleteOption[] = [];\n\n isFocused = false;\n isPanelOpen = false;\n activeIndex = -1;\n\n private static uidSeq = 0;\n readonly listboxId = `cao-autocomplete-listbox-${CaoAutocompleteComponent.uidSeq++}`;\n\n private selectedOption: ICaoAutoCompleteOption | null = null;\n private options$ = new BehaviorSubject<ICaoAutoCompleteOption[]>([]);\n /** indica se o valor atual do internalControl foi digitado pelo usuário (e não escrito programaticamente) */\n private isUserTyping = false;\n private el = inject(ElementRef<HTMLElement>);\n private cdr = inject(ChangeDetectorRef);\n private renderer = inject(Renderer2);\n \n // Injeções do CDK Overlay\n private overlay = inject(Overlay);\n private viewContainerRef = inject(ViewContainerRef);\n private scrollDispatcher = inject(ScrollDispatcher);\n\n private sub = new Subscription();\n private overlayRef: OverlayRef | null = null;\n private portal: TemplatePortal<any> | null = null;\n\n private onChange: (value: ICaoAutoCompleteOption | string | null) => void = () => { };\n private onTouched: () => void = () => { };\n\n ngOnInit(): void {\n this.setInputHeight();\n this.filteredOptions$ = combineLatest([\n this.internalControl.valueChanges.pipe(startWith(\"\")),\n this.options$,\n ]).pipe(\n map(([value]) => this.filter(value || \"\"))\n );\n\n this.sub.add(\n this.filteredOptions$.subscribe((list) => {\n this.filteredOptionsList = list;\n this.activeIndex = list.length ? 0 : -1;\n // Atualiza o overlay se estiver aberto e anexado\n if (this.isPanelOpen && this.portal && this.overlayRef?.hasAttached()) {\n this.overlayRef?.updatePosition();\n }\n })\n );\n\n this.sub.add(\n this.control.valueChanges.subscribe((value) => {\n this.writeDisplayValue(value);\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n })\n );\n\n this.setStyle();\n this.setupOverlay();\n }\n\n ngAfterViewInit(): void {\n // CORREÇÃO: Usando o TemplateRef obtido do ViewChild\n this.portal = new TemplatePortal(\n this.panelTemplate,\n this.viewContainerRef\n );\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['options']) {\n this.options$.next(changes['options'].currentValue ?? []);\n }\n }\n\n ngOnDestroy(): void {\n this.sub.unsubscribe();\n this.closeOverlay();\n if (this.overlayRef) {\n this.overlayRef.dispose();\n this.overlayRef = null;\n }\n }\n\n private setupOverlay(): void {\n const scrollStrategy = this.overlay.scrollStrategies.reposition();\n \n this.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position()\n .flexibleConnectedTo(this.wrapperEl)\n .withPositions([\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n offsetY: 4,\n },\n {\n originX: 'start',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n offsetY: -4,\n }\n ])\n .withDefaultOffsetX(0)\n .withFlexibleDimensions(false)\n .withViewportMargin(8),\n scrollStrategy: scrollStrategy,\n hasBackdrop: false,\n backdropClass: '',\n minWidth: 200,\n maxHeight: 260,\n });\n\n // Fecha o overlay quando houver scroll fora do elemento\n this.scrollDispatcher.scrolled().subscribe((scrollable) => {\n if (this.isPanelOpen) {\n const overlayEl = this.overlayRef?.overlayElement;\n if (scrollable instanceof CdkScrollable) {\n const scrollableEl = scrollable.getElementRef().nativeElement;\n if (overlayEl?.contains(scrollableEl)) {\n return;\n }\n }\n this.closePanel();\n }\n });\n }\n\n private closeOverlay(): void {\n if (this.overlayRef?.hasAttached()) {\n this.overlayRef.detach();\n }\n this.isPanelOpen = false;\n }\n\n private openOverlay(): void {\n if (!this.overlayRef || !this.portal) {return;}\n\n this.overlayRef.updateSize({\n width: this.wrapperEl.nativeElement.offsetWidth,\n });\n\n if (!this.overlayRef.hasAttached()) {\n this.overlayRef.attach(this.portal);\n }\n\n this.overlayRef.updatePosition();\n\n this.isPanelOpen = true;\n this.cdr.markForCheck();\n }\n\n private setStyle(): void {\n this.renderer.setStyle(\n this.el.nativeElement,\n '--autocomplete-bg-color',\n this.autocompleteBgColor\n );\n }\n\n // ---------- Painel ----------\n\n openPanel(): void {\n if (this.isDisabled || this.isPanelOpen) { return; }\n \n if (this.selectedOption && !this.isUserTyping) {\n // Ao reabrir com uma opção já selecionada (e sem edição manual do usuário),\n // exibe todas as opções, com a selecionada no topo.\n this.filteredOptionsList = this.filter(\"\");\n const idx = this.filteredOptionsList.findIndex(o => o.id === this.selectedOption?.id);\n this.activeIndex = idx >= 0 ? idx : (this.filteredOptionsList.length ? 0 : -1);\n }\n\n this.openOverlay();\n }\n\n closePanel(): void {\n if (!this.isPanelOpen) { return; }\n this.closeOverlay();\n this.cdr.markForCheck();\n }\n\n @HostListener('document:click', ['$event'])\n onDocumentClick(event: MouseEvent): void {\n if (!this.isPanelOpen) { return; }\n const target = event.target as Node;\n const clickedInsideHost = this.el.nativeElement.contains(target);\n const clickedInsideOverlay = this.overlayRef?.overlayElement?.contains(target);\n \n if (!clickedInsideHost && !clickedInsideOverlay) {\n this.closePanel();\n }\n }\n\n // ---------- Eventos do input ----------\n\n onFocus(): void {\n this.isFocused = true;\n this.focusEvent.emit();\n this.onTouched();\n this.openPanel();\n }\n\n onBlur(): void {\n this.isFocused = false;\n this.blurEvent.emit();\n this.onTouched();\n\n // Não fecha o overlay imediatamente no blur para permitir seleção\n setTimeout(() => {\n if (!this.isPanelOpen) {return;}\n const activeElement = document.activeElement;\n const isOverlayElement = this.overlayRef?.overlayElement?.contains(activeElement);\n const isInputElement = this.inputEl?.nativeElement === activeElement;\n \n if (!isOverlayElement && !isInputElement) {\n this.closePanel();\n }\n }, 150);\n }\n\n onInputKeydown(event: KeyboardEvent): void {\n switch (event.key) {\n case 'ArrowDown':\n event.preventDefault();\n if (!this.isPanelOpen) { this.openPanel(); return; }\n this.moveActiveIndex(1);\n break;\n case 'ArrowUp':\n event.preventDefault();\n if (!this.isPanelOpen) { this.openPanel(); return; }\n this.moveActiveIndex(-1);\n break;\n case 'Enter':\n if (this.isPanelOpen && this.activeIndex >= 0) {\n event.preventDefault();\n const option = this.filteredOptionsList[this.activeIndex];\n if (option) { this.selectItem(option); }\n }\n break;\n case 'Escape':\n if (this.isPanelOpen) {\n event.preventDefault();\n this.closePanel();\n } else {\n this.clearSelection();\n }\n break;\n case 'Tab':\n this.closePanel();\n break;\n }\n }\n\n private moveActiveIndex(step: number): void {\n if (!this.filteredOptionsList.length) { return; }\n const total = this.filteredOptionsList.length;\n this.activeIndex = (this.activeIndex + step + total) % total;\n this.cdr.markForCheck();\n }\n\n // ---------- Seleção ----------\n\n selectItem(option: ICaoAutoCompleteOption): void {\n this.selectedOption = option;\n this.writeDisplayValue(option, { emitEvent: false });\n this.control.setValue(option, { emitEvent: false });\n this.onChange(option);\n this.itemSelected.emit(option);\n\n // Reordena a lista filtrada para que a opção selecionada fique no topo\n this.filteredOptionsList = this.moveSelectedToTop(this.filteredOptionsList, option);\n\n this.closePanel();\n\n // Remove o foco do input após a seleção\n this.inputEl?.nativeElement.blur();\n this.isFocused = false;\n\n this.cdr.markForCheck();\n }\n\n selectOption(option: ICaoAutoCompleteOption): void {\n this.selectItem(option);\n }\n\n clearSelection(): void {\n this.selectedOption = null;\n this.writeDisplayValue(\"\", { emitEvent: false });\n this.control.setValue(null, { emitEvent: true });\n this.onChange(null);\n this.onTouched();\n this.closePanel();\n }\n\n onLeadingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.onFocus()\n this.leadingIconClick.emit(event);\n }\n\n onTrailingIconClick(event: MouseEvent | Event): void {\n event.stopPropagation();\n this.onFocus()\n this.trailingIconClick.emit(event);\n }\n\n // ---------- Filtro / display ----------\n\n private filter(value: string): ICaoAutoCompleteOption[] {\n const filterValue = (value || \"\").toLowerCase();\n const currentOptions = this.options$.getValue();\n\n if (!currentOptions?.length) {\n return [];\n }\n\n const matched = currentOptions.filter((option) => {\n const nomeMatch = option.nome.toLowerCase().includes(filterValue);\n const idMatch = option.id?.toString().toLowerCase().includes(filterValue);\n return nomeMatch || idMatch;\n });\n\n return this.selectedOption ? this.moveSelectedToTop(matched, this.selectedOption) : matched;\n }\n\n /** Move a opção selecionada para o início da lista, mantendo a ordem das demais */\n private moveSelectedToTop(\n list: ICaoAutoCompleteOption[],\n selected: ICaoAutoCompleteOption\n ): ICaoAutoCompleteOption[] {\n const selectedIndex = list.findIndex((o) => o.id === selected.id);\n\n if (selectedIndex <= 0) {\n return list;\n }\n\n const reordered = [...list];\n const [selectedItem] = reordered.splice(selectedIndex, 1);\n reordered.unshift(selectedItem);\n return reordered;\n }\n\n private writeDisplayValue(\n value: ICaoAutoCompleteOption | string | null | undefined,\n options: { emitEvent?: boolean } = { emitEvent: false }\n ): void {\n const text = value && typeof value === \"object\" ? this.displayFn(value) : (value ?? \"\");\n this.isUserTyping = false;\n this.internalControl.setValue(text, options);\n }\n\n /** Marca que o usuário está digitando manualmente no campo (ativa o filtro por texto) */\n onUserInput(): void {\n this.isUserTyping = true;\n }\n\n displayFn(option: ICaoAutoCompleteOption): string {\n return option && option.nome ? option.nome : \"\";\n }\n\n isOptionSelected(option: ICaoAutoCompleteOption): boolean {\n return this.selectedOption?.id !== undefined && this.selectedOption?.id === option.id;\n }\n \n trackByOptionId(_: number, option: ICaoAutoCompleteOption): string | number {\n return option.id ?? option.nome;\n }\n\n optionId(option: ICaoAutoCompleteOption): string {\n const key = (option.id ?? option.nome).toString().replace(/[^a-zA-Z0-9_-]/g, '-');\n return `${this.listboxId}-opt-${key}`;\n }\n\n get activeOptionId(): string | null {\n if (!this.isPanelOpen || this.activeIndex < 0) {\n return null;\n }\n const option = this.filteredOptionsList[this.activeIndex];\n return option ? this.optionId(option) : null;\n }\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n\n const isEmpty = this.control.value === null || this.control.value === \"\";\n\n if (this.control.hasError(\"required\") && isEmpty) {\n return \"*Campo obrigatório\";\n }\n\n if (this.control.touched && this.control.invalid) {\n if (this.control.hasError(\"cpfInvalid\")) { return \"CPF inválido\"; }\n if (this.control.hasError(\"cellPhoneInvalid\")) { return \"Número inválido\"; }\n if (this.control.hasError(\"emailInvalid\")) { return \"Email inválido\"; }\n if (this.control.hasError(\"cnpjInvalid\")) { return \"CNPJ inválido\"; }\n if (this.control.hasError(\"rgInvalid\")) { return \"RG inválido\"; }\n if (this.control.hasError(\"dateInvalid\")) { return \"Data inválida\"; }\n if (this.control.hasError(\"dateStartInvalid\")) { return \"Data Inicial inválida\"; }\n if (this.control.hasError(\"dateEndInvalid\")) { return \"Data Final inválida\"; }\n return \"Formato inválido\";\n }\n\n return null;\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n writeValue(value: ICaoAutoCompleteOption | string): void {\n this.writeDisplayValue(value, { emitEvent: false });\n this.selectedOption = value && typeof value === \"object\" ? value : null;\n }\n\n registerOnChange(fn: (value: ICaoAutoCompleteOption | string | null) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState?(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n setInputHeight(): void {\n this.renderer.setStyle(\n this.el.nativeElement,\n \"--form-field-height\",\n this.inputHeigth\n );\n }\n}","<div class=\"form-field\">\n @if (label) {\n <label [for]=\"dataCy\">{{ label }}</label>\n }\n\n <div class=\"rnv-autocomplete-field autocomplete\">\n <div\n #wrapper\n class=\"input-wrapper\"\n [class.has-leading-icon]=\"_leadingIcon\"\n [class.has-trailing-icon]=\"_trailingIcon\"\n [class.focused]=\"isFocused\"\n [class.invalid]=\"control?.touched && control?.invalid\"\n [class.valid]=\"control?.touched && control?.valid && control?.value\">\n\n @if (_leadingIcon) {\n @if (isLucideIcon) {\n <div class=\"icon\"\n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\">\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"_leadingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div class=\"icon\"\n tabindex=\"0\"\n (click)=\"onLeadingIconClick($event)\"\n (keydown.enter)=\"onLeadingIconClick($event)\">\n <img alt=\"ícone de início\" [style.width]=\"iconSize\" [src]=\"_leadingIcon\" />\n </div>\n }\n }\n\n <input\n #inputEl\n type=\"text\"\n autocomplete=\"off\"\n role=\"combobox\"\n aria-haspopup=\"listbox\"\n [attr.aria-expanded]=\"isPanelOpen\"\n [attr.aria-controls]=\"isPanelOpen ? listboxId : null\"\n [attr.aria-activedescendant]=\"activeOptionId\"\n [placeholder]=\"placeholder\"\n [disabled]=\"isDisabled\"\n [formControl]=\"internalControl\"\n [attr.data-cy]=\"dataCy\"\n [id]=\"dataCy\"\n (focus)=\"onFocus()\"\n (blur)=\"onBlur()\"\n (input)=\"onUserInput()\"\n (keydown)=\"onInputKeydown($event)\" />\n\n @if (_trailingIcon) {\n @if (isLucideIcon) {\n <div\n tabindex=\"0\"\n class=\"icon trailing-icon\"\n (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\">\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"_trailingIcon\" [style.color]=\"iconColor\"></svg>\n </div>\n } @else {\n <div\n tabindex=\"0\"\n class=\"icon trailing-icon\"\n (click)=\"onTrailingIconClick($event)\"\n (keydown.enter)=\"onTrailingIconClick($event)\">\n <img alt=\"ícone de fim\" [style.width]=\"iconSize\" [src]=\"_trailingIcon\" />\n </div>\n }\n }\n </div>\n\n @if (errorText) {\n <span class=\"error-text\">{{ errorText }}</span>\n }\n </div>\n</div>\n\n<ng-template #panel>\n <div\n class=\"autocomplete-panel\"\n cdkScrollable\n role=\"listbox\"\n [id]=\"listboxId\"\n [style.width]=\"'100%'\"\n [style.max-height]=\"'260px'\"\n [style.background]=\"autocompleteBgColor\">\n \n @if (!filteredOptionsList.length) {\n <div class=\"empty-state\">Nenhum resultado encontrado</div>\n }\n\n @for (option of filteredOptionsList; track trackByOptionId($index, option)) {\n <div\n class=\"option-item\"\n role=\"option\"\n [id]=\"optionId(option)\"\n [class.active]=\"$index === activeIndex\"\n [class.selected]=\"isOptionSelected(option)\"\n [attr.aria-selected]=\"$index === activeIndex\"\n (mousedown)=\"$event.preventDefault(); selectOption(option)\"\n (mouseenter)=\"activeIndex = $index\">\n <span>{{ option.nome }}</span>\n\n <div class=\"option-item-icons\">\n @if (showCheckIcon && isOptionSelected(option)) {\n @if (isLucideCheckIcon) {\n <svg class=\"check-icon\" [strokeWidth]=\"strokeWidthIcon\" [lucideIcon]=\"checkIcon\" [style.color]=\"iconColor\"></svg>\n } @else {\n <span class=\"check-icon\">{{ checkIcon }}</span>\n }\n }\n\n @if (optionIcon) {\n @if (isLucideOptionIcon) {\n <svg [strokeWidth]=\"strokeWidthIcon\" [size]=\"iconSize\" [lucideIcon]=\"optionIcon\" [style.color]=\"optionIConColor || iconColor\"></svg>\n } @else {\n <img alt=\"\" [src]=\"optionIcon\" />\n }\n }\n </div>\n </div>\n }\n </div>\n</ng-template>","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ElementRef,\n EventEmitter,\n Input,\n Output,\n ViewEncapsulation,\n forwardRef,\n OnInit,\n OnDestroy,\n ChangeDetectorRef,\n} from \"@angular/core\";\nimport {\n AbstractControl,\n ControlValueAccessor,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n FormControl,\n} from \"@angular/forms\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\n\nexport interface ICaoDropDownOption {\n id?: string | number;\n nome: string;\n icon?: string;\n iconPosition?: string;\n dataCy?: string;\n}\n\n@Component({\n selector: \"cao-drop-down\",\n templateUrl: \"./drop-down.html\",\n styleUrl: \"./drop-down.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [\n MatIconModule,\n CommonModule,\n MatTooltipModule,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoDropDownComponent),\n multi: true,\n },\n ],\n})\nexport class CaoDropDownComponent implements ControlValueAccessor, OnInit, OnDestroy {\n @Input() textHeader = \"SELECIONE UM ITEM\";\n @Input() options: ICaoDropDownOption[] = [];\n @Input() dropDownClass = \"\";\n @Input() styleDropDown: { [klass: string]: unknown } = {};\n @Input() control?: AbstractControl | null;\n @Input() controlName = \"\";\n @Input() isDisabled = false;\n @Input() tooltip = \"\";\n @Input() dropDirectionInput: \"up\" | \"down\" = \"down\";\n @Input() dataCy?: string = \"\";\n\n @Input() trackByFn?: (index: number, item: ICaoDropDownOption) => unknown;\n @Input() compareWith?: (option: unknown, value: unknown) => boolean;\n @Input() ariaLabel?: string;\n @Input() ariaLabelledBy?: string;\n @Input() listAriaLabel?: string;\n\n @Output() readonly itemSelected = new EventEmitter<ICaoDropDownOption>();\n\n isOpen = false;\n selectedItem?: ICaoDropDownOption;\n filteredOptions: ICaoDropDownOption[] = [];\n searchControl = new FormControl(\"\");\n isTouched = false;\n isFocused = false;\n dropDirection: string | undefined;\n removeValidBorder = false;\n\n\n focusedIndex = -1;\n\n private _handleClickOutside = this.onClickOutside.bind(this);\n\n constructor(\n private _eref: ElementRef,\n private cdr: ChangeDetectorRef\n ) { }\n\n ngOnInit(): void {\n document.addEventListener(\"click\", this._handleClickOutside, true);\n this.filteredOptions = [...this.options];\n\n this.searchControl.valueChanges.subscribe((value) => {\n this.filterOptions(value || \"\");\n this.focusedIndex = -1\n });\n }\n\n ngOnDestroy(): void {\n document.removeEventListener(\"click\", this._handleClickOutside, true);\n }\n\n get activeDescendant(): string | null {\n if (this.isOpen && this.focusedIndex >= 0 && this.filteredOptions[this.focusedIndex]) {\n return `option-${this.dataCy}-${this.focusedIndex}`;\n }\n return null;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled) { return };\n\n this.checkAvailableSpace();\n this.isOpen = !this.isOpen;\n this.isFocused = this.isOpen;\n this.markAsTouched();\n\n if (this.isOpen) {\n this.searchControl.setValue(\"\");\n this.filteredOptions = [...this.options];\n this.removeValidBorder = false;\n this.focusedIndex = -1;\n\n\n setTimeout(() => {\n if (this.isOpen) {\n const searchInput = this._eref.nativeElement.querySelector('.dropdown-search input');\n if (searchInput) {\n searchInput.focus();\n }\n }\n });\n } else {\n this.focusedIndex = -1;\n }\n\n this.cdr.detectChanges();\n }\n\n selectItem(option: ICaoDropDownOption): void {\n if (this.isDisabled) { return };\n\n this.selectedItem = option;\n this.isOpen = false;\n this.focusedIndex = -1;\n this.itemSelected.emit(option);\n this.onChange(option);\n this.markAsTouched();\n this.cdr.detectChanges();\n }\n\n clear(): void {\n this.selectedItem = undefined;\n this.onChange(null);\n this.cdr.detectChanges();\n }\n\n filterOptions(searchTerm: string) {\n if (!searchTerm) {\n this.filteredOptions = [...this.options];\n return;\n }\n const lowerCaseSearchTerm = searchTerm.toLowerCase();\n this.filteredOptions = this.options.filter(\n (option) =>\n option.nome.toLowerCase().includes(lowerCaseSearchTerm) ||\n option.id?.toString().toLowerCase().includes(lowerCaseSearchTerm)\n );\n }\n\n trackBy(index: number, item: ICaoDropDownOption): unknown {\n return this.trackByFn ? this.trackByFn(index, item) : item.id;\n }\n\n private onClickOutside(event: MouseEvent): void {\n if (!this._eref.nativeElement.contains(event.target)) {\n if (this.isOpen) {\n this.isOpen = false;\n }\n if (this.isFocused) {\n this.isFocused = false;\n }\n this.focusedIndex = -1;\n this.markAsTouched();\n this.removeValidBorder = true;\n this.cdr.detectChanges();\n }\n }\n\n onArrowDown(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = 0;\n } else {\n\n this.focusedIndex = (this.focusedIndex + 1) % this.filteredOptions.length;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onArrowUp(event: Event): void {\n if (this.isDisabled) { return };\n\n event.preventDefault();\n event.stopPropagation();\n\n if (this.filteredOptions.length === 0) { return };\n\n if (this.focusedIndex === -1) {\n\n this.focusedIndex = this.filteredOptions.length - 1;\n } else {\n\n this.focusedIndex = this.focusedIndex <= 0\n ? this.filteredOptions.length - 1\n : this.focusedIndex - 1;\n }\n\n this.scrollIntoView();\n this.cdr.detectChanges();\n }\n\n onSearchEnter(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n\n if (this.focusedIndex >= 0 && this.focusedIndex < this.filteredOptions.length) {\n this.selectItem(this.filteredOptions[this.focusedIndex]);\n } else if (this.filteredOptions.length > 0) {\n\n this.selectItem(this.filteredOptions[0]);\n }\n }\n\n closeDropdown(): void {\n if (this.isDisabled) { return };\n\n this.isOpen = false;\n this.focusedIndex = -1;\n this.isFocused = false;\n this.cdr.detectChanges();\n }\n\n private scrollIntoView(): void {\n if (!this.isOpen || this.focusedIndex === -1) { return };\n\n setTimeout(() => {\n const element = document.getElementById(`option-${this.dataCy}-${this.focusedIndex}`);\n if (element) {\n element.scrollIntoView({\n block: 'nearest',\n behavior: 'smooth'\n });\n }\n }, 0);\n }\n\n checkAvailableSpace(): void {\n if (this.dropDirectionInput === \"up\") {\n this.dropDirection = \"up\";\n return;\n }\n\n const rect = this._eref.nativeElement.getBoundingClientRect();\n const windowHeight = window.innerHeight;\n const dropdownHeight = 200\n\n const spaceBelow = windowHeight - rect.bottom;\n this.dropDirection = spaceBelow < dropdownHeight ? \"up\" : \"down\";\n }\n\n\n writeValue(value: unknown): void {\n if (value !== null && value !== undefined) {\n const match = this.options.find((opt) =>\n this.compareWith\n ? this.compareWith(opt, value)\n : opt.id === (typeof value === \"object\" && value ? (value as any).id : value)\n );\n\n if (match) {\n this.selectedItem = match;\n } else {\n const matchByName = this.options.find((opt) => opt.nome === value);\n if (matchByName) {\n this.selectedItem = matchByName;\n }\n }\n } else {\n this.selectedItem = undefined;\n }\n this.cdr.detectChanges();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n onChange: (value: unknown) => void = () => { };\n onTouched = () => { };\n\n get errorText(): string | null {\n if (!this.control) { return null; }\n if (this.control.hasError(\"required\")) {\n return \"*Campo obrigatório\";\n }\n return null;\n }\n\n private markAsTouched() {\n if (!this.isTouched) {\n this.onTouched();\n this.isTouched = true;\n this.control?.markAsTouched();\n }\n }\n\n get controlNameValue(): string {\n return this.controlName;\n }\n}","<div\n class=\"dropdown-container\"\n role=\"combobox\"\n [ngClass]=\"[\n dropDownClass,\n isDisabled ? 'disabled' : '',\n control?.touched && control?.invalid ? 'invalid' : '',\n (control?.touched && control?.valid && selectedItem && isFocused && !removeValidBorder) ? 'valid' : ''\n ]\"\n [ngStyle]=\"styleDropDown\"\n [attr.aria-expanded]=\"isOpen\"\n [attr.aria-haspopup]=\"'listbox'\"\n [attr.aria-controls]=\"isOpen ? ('dropdown-list-' + dataCy) : null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-disabled]=\"isDisabled\"\n [attr.aria-activedescendant]=\"activeDescendant\"\n [attr.data-cy]=\"dataCy\">\n \n <div\n class=\"dropdown-header\"\n matTooltipPosition=\"below\"\n matTooltipClass=\"custom-arrow-tooltip\"\n tabindex=\"0\"\n role=\"button\"\n [matTooltip]=\"tooltip\"\n [attr.aria-disabled]=\"isDisabled\"\n (click)=\"!isDisabled && toggleDropdown()\"\n (keydown.enter)=\"!isDisabled && toggleDropdown()\"\n (keydown.space)=\"!isDisabled && toggleDropdown(); $event.preventDefault()\"\n (keydown.arrowdown)=\"!isDisabled && onArrowDown($event)\"\n (keydown.arrowup)=\"!isDisabled && onArrowUp($event)\"\n (keydown.escape)=\"!isDisabled && closeDropdown()\">\n <span id=\"dropdown-label-{{dataCy}}\">{{ selectedItem?.nome ?? textHeader }}</span>\n <mat-icon aria-hidden=\"true\">{{ isOpen ? 'expand_less' : 'expand_more' }}</mat-icon>\n </div>\n\n @if (isOpen) {\n <ul \n class=\"dropdown-list\" \n role=\"listbox\"\n [id]=\"'dropdown-list-' + dataCy\"\n [ngClass]=\"{ 'drop-up': dropDirection === 'up', 'dropdown-secundary': dropDownClass === 'dropdown-secundary' }\"\n [attr.aria-label]=\"listAriaLabel || 'Opções'\"\n [attr.aria-labelledby]=\"'dropdown-label-' + dataCy\">\n \n\n <li class=\"dropdown-search\" role=\"none\">\n <input \n type=\"text\" \n placeholder=\"Buscar por código ou nome...\" \n role=\"searchbox\"\n aria-label=\"Buscar opções\"\n [formControl]=\"searchControl\"\n (keydown.arrowdown)=\"onArrowDown($event)\"\n (keydown.arrowup)=\"onArrowUp($event)\"\n (keydown.enter)=\"onSearchEnter($event)\"\n (keydown.escape)=\"closeDropdown()\" />\n </li>\n \n\n @for (item of filteredOptions; track $index) { \n @if(item && item.nome) {\n <li\n class=\"dropdown-item\"\n role=\"option\"\n [ngClass]=\"{\n 'icon-right': item.iconPosition === 'right',\n 'selected': item === selectedItem,\n 'focused': $index === focusedIndex\n }\"\n [attr.id]=\"'option-' + dataCy + '-' + $index\"\n [attr.aria-selected]=\"item === selectedItem\"\n [attr.tabindex]=\"$index === focusedIndex ? 0 : -1\"\n [attr.data-cy]=\"item.dataCy\"\n (click)=\"selectItem(item)\"\n (keydown.enter)=\"selectItem(item)\"\n (keydown.space)=\"selectItem(item); $event.preventDefault()\"\n (mouseenter)=\"focusedIndex = $index\">\n @if (item.icon && item.iconPosition !== 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n } \n <span>{{ item.nome }}</span>\n @if (item.icon && item.iconPosition === 'right') {\n <mat-icon class=\"dropdown-icon\" aria-hidden=\"true\">{{ item.icon }}</mat-icon>\n }\n </li>\n } \n }\n </ul>\n }\n \n @if (control?.touched && control?.invalid && errorText) {\n <div class=\"message-error\">{{ errorText }}</div>\n }\n</div>","import { Component, inject, Input, Signal } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\n\nexport interface INavContent {\n title: string;\n links: INavLink[];\n permissions?: string[];\n directRoute?: boolean;\n}\nexport interface INavLink {\n text: string;\n url: string;\n disabled?: boolean;\n isValidationRequired?: boolean;\n dataCy?: string;\n directRoute?: boolean;\n}\n\n@Component({\n standalone: true,\n selector: \"cao-links-button\",\n templateUrl: \"./links-button.html\",\n styleUrl: \"./links-button.css\",\n})\nexport class LinksButton {\n @Input({ required: true }) navContent!: Signal<INavContent>;\n router = inject(Router);\n route = inject(ActivatedRoute);\n\n isValidationRequired(link: INavLink) {\n if (link.disabled) {\n return;\n }\n link.directRoute ? this.directRoute(link.url) : this.navigateTo(link.url);\n }\n\n private navigateTo(url: string) {\n this.router.navigate([url], { relativeTo: this.route });\n }\n\n private directRoute(url: string) {\n this.router.navigate([url]);\n }\n\n}\n","<div class=\"links-info\">\n @if (navContent()) {\n <h2>{{ navContent().title }}</h2>\n <div class=\"links\">\n @for (link of navContent().links; track $index) {\n <div\n class=\"link\"\n role=\"button\"\n tabindex=\"0\"\n [tabIndex]=\"link.disabled ? -1 : 0\"\n [class.disabled]=\"link.disabled\"\n [attr.data-cy]=\"link.dataCy\"\n [attr.aria-disabled]=\"link.disabled\"\n (click)=\"isValidationRequired(link)\"\n (keydown.enter)=\"isValidationRequired(link)\"\n (keydown.space)=\"isValidationRequired(link); $event.preventDefault()\"\n >\n {{ link.text }}\n </div>\n }\n </div>\n }\n</div>","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-footer\",\n templateUrl: \"./footer.html\",\n styleUrl: \"./footer.css\",\n imports: [ CommonModule ]\n})\nexport class Footer {\n currentYear: number = new Date().getFullYear();\n @Input() currentRoute?:string;\n @Input() footerText?:string;\n @Input() isFixed = true;\n}\n","<footer class=\"footer-element\" [class.fixed]=\"isFixed\">\n <div class=\"flex col\">\n <ng-content />\n @if(footerText){\n <ul class=\"footer-end\">\n <li>{{ footerText }} © {{ currentYear }}</li>\n </ul>\n }\n </div>\n</footer>\n","import { OverlayModule } from \"@angular/cdk/overlay\";\nimport { NgModule } from \"@angular/core\";\nimport { MatAutocompleteModule } from \"@angular/material/autocomplete\";\nimport { MatButtonModule } from \"@angular/material/button\";\nimport { MatCardModule } from \"@angular/material/card\";\nimport { MatCheckboxModule } from \"@angular/material/checkbox\";\nimport { MatChipsModule } from \"@angular/material/chips\";\nimport { MatNativeDateModule , MAT_DATE_LOCALE } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\nimport { MatDialogModule } from \"@angular/material/dialog\";\nimport { MatDividerModule } from \"@angular/material/divider\";\nimport { MatExpansionModule } from \"@angular/material/expansion\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { MatIconModule } from \"@angular/material/icon\";\nimport { MatInputModule } from \"@angular/material/input\";\nimport { MatListModule } from \"@angular/material/list\";\nimport { MatMenuModule } from \"@angular/material/menu\";\nimport { MatPaginatorModule } from \"@angular/material/paginator\";\nimport { MatProgressBarModule } from \"@angular/material/progress-bar\";\nimport { MatProgressSpinnerModule } from \"@angular/material/progress-spinner\";\nimport { MatRadioModule } from \"@angular/material/radio\";\nimport { MatSelectModule } from \"@angular/material/select\";\nimport { MatSidenavModule } from \"@angular/material/sidenav\";\nimport { MatSlideToggleModule } from \"@angular/material/slide-toggle\";\nimport { MatSliderModule } from \"@angular/material/slider\";\nimport { MatSnackBarModule } from \"@angular/material/snack-bar\";\nimport { MatSortModule } from \"@angular/material/sort\";\nimport { MatTableModule } from \"@angular/material/table\";\nimport { MatTabsModule } from \"@angular/material/tabs\";\nimport { MatTimepickerModule } from \"@angular/material/timepicker\";\nimport { MatToolbarModule } from \"@angular/material/toolbar\";\nimport { MatTooltipModule } from \"@angular/material/tooltip\";\nimport { MatTreeModule } from \"@angular/material/tree\";\n\n\nconst modules = [\n OverlayModule,\n MatSnackBarModule,\n MatAutocompleteModule,\n MatButtonModule,\n MatCardModule,\n MatCheckboxModule,\n MatChipsModule,\n MatDatepickerModule,\n MatDialogModule,\n MatDividerModule,\n MatExpansionModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n MatMenuModule,\n MatNativeDateModule,\n MatProgressBarModule,\n MatProgressSpinnerModule,\n MatPaginatorModule,\n MatRadioModule,\n MatSliderModule,\n MatSlideToggleModule,\n MatSortModule,\n MatSelectModule,\n MatTableModule,\n MatTabsModule,\n MatTooltipModule,\n MatSidenavModule,\n MatListModule,\n MatToolbarModule,\n MatTreeModule,\n MatTimepickerModule\n];\n@NgModule({\n imports: [modules],\n exports: [modules],\n providers: [{ provide: MAT_DATE_LOCALE, useValue: \"pt-BR\" }],\n})\nexport class MaterialModule {}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { PageEvent } from '@angular/material/paginator';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-paginator',\n imports: [MaterialModule],\n templateUrl: './paginator.html',\n styleUrl: './paginator.css',\n})\nexport class Paginator {\n @Input() totalItems = 0;\n @Input() pageSize = 10;\n @Input() currentPage = 1;\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() customClass = \"\";\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n onPageEvent(event: PageEvent): void {\n this.pageEvent.emit(event)\n }\n}\n","<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />","import { CommonModule } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { DateAdapter } from '@angular/material/core';\nimport { MatTimepickerOption } from '@angular/material/timepicker';\n\nimport { MaterialModule } from '../../../material.module';\n\n@Component({\n selector: 'cao-time-picker',\n imports: [ MaterialModule, CommonModule, ReactiveFormsModule, ],\n templateUrl: './time-picker.html',\n styleUrl: './time-picker.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class TimePicker {\n @Input() control: FormControl<Date | null> = new FormControl<Date | null>(null);\n @Input() isDisabled = false;\n @Input() dataCy?: string;\n @Input() set min(v: string) {\n this._min = v;\n this.minInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label >= this._min);\n }\n @Input() set max(v: string) {\n this._max = v;\n this.maxInNumber = this.convertStringInNumber(v)\n this.customOptions = this.generateTimeOptions().filter((option) => option.label <= this._max);\n }\n\n minInNumber = 7;\n maxInNumber = 23;\n\n @Output() readonly timeChange = new EventEmitter<Date>();\n\n private _min = \"07:00\";\n private _max = \"23:00\";\n\n customOptions: MatTimepickerOption<Date>[] = this.generateTimeOptions();\n\n constructor(private _adapter: DateAdapter<any>) {\n this._adapter.setLocale(\"pt-BR\");\n }\n\n get errorText(): string | null {\n if (!this.control) {return null;}\n\n if (this.control.hasError(\"required\") || (this.control.touched && !this.control.value)) {\n return \"*Campo obrigatório\";\n }\n if (this.control.hasError(\"quarterHour\") && this.control.touched) {\n return \"Formato inválido\";\n }\n return null;\n }\n\n private convertStringInNumber(hour: string): number{\n const explodedHour = parseInt(hour.split(\":\")[0])\n if(typeof explodedHour !== 'number'){\n return explodedHour\n }\n return explodedHour\n }\n\n private generateTimeOptions(): MatTimepickerOption<Date>[] {\n const options: MatTimepickerOption<Date>[] = [];\n const baseDate = new Date(2025, 0, 1);\n\n for (let hour = this.minInNumber; hour <= this.maxInNumber; hour++) {\n for (let minute = 0; minute < 60; minute += 15) {\n if (hour === this.maxInNumber && minute > 0) {continue;}\n const date = new Date(baseDate);\n date.setHours(hour, minute, 0);\n const label = `${hour.toString().padStart(2, \"0\")}:${minute.toString().padStart(2, \"0\")}`;\n options.push({ label, value: date });\n }\n }\n\n return options;\n }\n\n updateTimeOptions(options: MatTimepickerOption<Date>[]): void {\n this.customOptions = options;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n}\n","<div class=\"time-picker-wrapper\">\n <mat-form-field\n class=\"custom-timepicker\"\n [ngClass]=\"{\n 'invalid': control?.touched && control?.invalid,\n 'valid': control?.touched && control?.valid\n }\">\n <input\n matInput\n placeholder=\"00:00\"\n [formControl]=\"control\"\n [matTimepicker]=\"picker\"\n [min]=\"min\"\n [max]=\"max\"\n [disabled]=\"isDisabled\"\n [attr.data-cy]=\"dataCy\"\n (blur)=\"control?.markAsTouched()\" />\n <mat-timepicker-toggle matSuffix [for]=\"picker\" />\n <mat-timepicker #picker [options]=\"customOptions\" (selected)=\"timeChange.emit($event.value)\" />\n </mat-form-field>\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\n\n@Component({\n selector: \"cao-step\",\n standalone: true,\n templateUrl: \"./step.html\",\n styleUrl: \"./step.css\",\n imports: [CommonModule],\n})\nexport class StepComponent {\n @Input() title = \"\";\n @Input() isActive = false;\n}\n","<div class=\"step d-flex aic jcc\" [ngClass]=\"{'active': isActive}\"> {{ title }} </div>\n","import { AfterContentInit, EventEmitter, Output , ContentChildren, Input, QueryList , Component } from \"@angular/core\";\n\n\nimport { StepComponent } from \"./step/step\";\n\n@Component({\n selector: \"cao-stepper\",\n standalone: true,\n templateUrl: \"./stepper.html\",\n styleUrl: \"./stepper.css\",\n})\nexport class StepperComponent implements AfterContentInit {\n constructor() {}\n @ContentChildren(StepComponent) steps!: QueryList<StepComponent>;\n @Input() title!: string;\n activeStepIndex = 0;\n lengthStep = 0;\n showLine = true;\n\n @Output() readonly maxReachedEvent: EventEmitter<null> = new EventEmitter<null>();\n\n ngAfterContentInit(): void {\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n this.lengthStep = this.steps.length;\n }\n }\n\n nextStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex < this.steps.length - 1) {\n this.activeStepIndex++;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n } else {\n this.maxReachedEvent.emit(null);\n }\n }\n }\n\n prevStep() {\n if (this.steps.length > 0) {\n if (this.activeStepIndex > 0) {\n this.steps.toArray()[this.activeStepIndex].isActive = false;\n this.activeStepIndex--;\n this.steps.toArray()[this.activeStepIndex].isActive = true;\n }\n }\n }\n\n resetStepper() {\n this.activeStepIndex = 0;\n this.steps.forEach((step) => (step.isActive = false));\n if (this.steps.length > 0) {\n this.steps.toArray()[0].isActive = true;\n }\n }\n}\n","@if(title){\n<h3 class=\"stepper-title\">{{ title }}</h3>\n}\n<div class=\"d-flex step-container aic jcsb\">\n @if (showLine) {\n <div class=\"line\"></div>\n }\n <div class=\"steps d-flex aic jcsb\">\n <ng-content />\n </div>\n</div>\n","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[caoTabContent]',\n standalone: true,\n})\nexport class CaoTabContentDirective {}","import { Directive } from '@angular/core';\n\n@Directive({\n selector: '[caoTabLabel]',\n standalone: true,\n})\nexport class CaoTabLabelDirective {}","import { Component, ContentChild, Input, TemplateRef, ViewChild } from \"@angular/core\"\n\nimport { CaoTabContentDirective } from \"./tab-content.directive\"\nimport { CaoTabLabelDirective } from \"./tab-label.directive\"\n\n@Component({\n selector: \"cao-tab-panel\",\n imports: [],\n template: `\n <ng-template #implicitContent>\n <ng-content />\n </ng-template>\n `,\n styleUrl: \"./tab-panel.css\",\n})\nexport class CaoTabPanel {\n @Input() label = ''\n @Input() isLucideIcon = true\n @Input() trailingIcon: string | null = null\n @Input() leadingIcon: string | null = null\n @Input() isDisabled = false\n\n @ContentChild(CaoTabLabelDirective, { read: TemplateRef })\n labelTemplate?: TemplateRef<unknown>;\n\n @ContentChild(CaoTabContentDirective, { read: TemplateRef })\n lazyContent?: TemplateRef<unknown>;\n\n @ViewChild('implicitContent', { static: true })\n content!: TemplateRef<unknown>;\n }\n","import { isPlatformBrowser, NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n ContentChildren,\n QueryList,\n AfterContentInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n signal,\n WritableSignal,\n inject,\n PLATFORM_ID,\n ElementRef,\n ViewChildren,\n ViewChild,\n HostBinding,\n} from '@angular/core';\n\nimport { LucideDynamicIcon } from '@lucide/angular';\nimport { Subscription } from 'rxjs';\n\nimport { CaoTabPanel } from '../tab-panel/tab-panel';\n\n\nexport interface ICaoTabChangeEvent {\n previousIndex: number;\n index: number;\n tab: CaoTabPanel;\n}\n\n@Component({\n selector: 'cao-tab-group',\n standalone: true,\n imports: [NgTemplateOutlet, LucideDynamicIcon],\n templateUrl: './tab-group.component.html',\n styleUrl: './tab-group.component.scss',\n host: { class: 'cao-tab-group' },\n})\nexport class CaoTabGroup implements AfterContentInit, OnDestroy {\n @HostBinding('style')\n get _hostStyles(): Record<string, string> {\n return {\n '--cao-tab-label-height': this.labelHeight,\n '--cao-tab-label-px': this.labelPaddingX,\n '--cao-tab-label-gap': this.labelGap,\n '--cao-tab-color-text': this.colorText,\n '--cao-tab-color-active': this.colorActive,\n '--cao-tab-color-hover-bg': this.colorHoverBg,\n '--cao-tab-color-disabled': this.colorDisabled,\n '--cao-tab-color-ink-bar': this.colorInkBar,\n '--cao-tab-color-header-border': this.colorHeaderBorder,\n '--cao-tab-ink-bar-height': this.inkBarHeight,\n '--cao-tab-content-pt': this.contentPaddingTop,\n '--cao-tab-radius': this.labelRadius,\n };\n }\n @Input()\n set selectedIndex(val: number) {\n this.selectIndex(val, false);\n }\n get selectedIndex(): number {\n return this.activeIndex();\n }\n\n @Input() labelHeight = '48px';\n @Input() labelPaddingX = '16px';\n @Input() labelGap = '6px';\n @Input() colorText = '#6b7280';\n @Input() colorActive = '#4f46e5';\n @Input() colorHoverBg = '#f3f4f6';\n @Input() colorDisabled = '#d1d5db';\n @Input() colorInkBar = '#4f46e5';\n @Input() colorHeaderBorder = '#e5e7eb';\n @Input() inkBarHeight = '2px';\n @Input() contentPaddingTop = '20px';\n @Input() labelRadius = '4px';\n @Input() animationDuration = '300ms';\n @Input() dynamicHeight = false;\n\n @Input() labelAlign: 'start' | 'center' | 'end' = 'start';\n @Input() iconColorActive = ''\n @Input() iconColorInactive = ''\n @Input() strokeWidthIcon = 1\n\n @Output() readonly selectedTabChange = new EventEmitter<ICaoTabChangeEvent>();\n\n @Output() readonly focusChange = new EventEmitter<number>();\n\n @ContentChildren(CaoTabPanel) tabs!: QueryList<CaoTabPanel>;\n @ViewChildren('tabBtn') tabBtns!: QueryList<ElementRef<HTMLButtonElement>>;\n @ViewChild('inkBar') inkBar!: ElementRef<HTMLElement>;\n\n readonly activeIndex: WritableSignal<number> = signal(0);\n\n private activatedSet = new Set<number>();\n\n tabList: CaoTabPanel[] = [];\n\n private subs = new Subscription();\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n ngAfterContentInit(): void {\n this.tabList = this.tabs.toArray();\n this.activatedSet.add(this.activeIndex());\n\n this.subs.add(\n this.tabs.changes.subscribe(() => {\n this.tabList = this.tabs.toArray();\n const safe = Math.min(this.activeIndex(), this.tabList.length - 1);\n this.activeIndex.set(Math.max(0, safe));\n this.scheduleInkBar();\n })\n );\n\n this.scheduleInkBar();\n }\n\n ngOnDestroy(): void {\n this.subs.unsubscribe();\n }\n\n selectTab(index: number): void {\n this.selectIndex(index, true);\n }\n\n get activeTab(): CaoTabPanel | null {\n return this.tabList[this.activeIndex()] ?? null;\n }\n\n isActive(index: number): boolean {\n return this.activeIndex() === index;\n }\n wasActivated(index: number): boolean {\n return this.activatedSet.has(index);\n }\n\n onTabClick(index: number): void {\n if (this.tabList[index]?.isDisabled) {return;}\n this.selectIndex(index, true);\n }\n\n onKeydown(event: KeyboardEvent, currentIndex: number): void {\n let next = currentIndex;\n\n switch (event.key) {\n case 'ArrowRight': next = this.nextEnabled(currentIndex, 1); break;\n case 'ArrowLeft': next = this.nextEnabled(currentIndex, -1); break;\n case 'Home': next = this.nextEnabled(-1, 1); break;\n case 'End': next = this.nextEnabled(this.tabList.length, -1); break;\n default: return;\n }\n\n event.preventDefault();\n this.selectIndex(next, true);\n this.focusTab(next);\n }\n\n onFocus(index: number): void {\n this.focusChange.emit(index);\n }\n\n private nextEnabled(from: number, dir: 1 | -1): number {\n const tabs = this.tabList;\n let idx = from + dir;\n while (idx >= 0 && idx < tabs.length) {\n if (!tabs[idx].isDisabled) {return idx;}\n idx += dir;\n }\n return from;\n }\n\n private selectIndex(index: number, emit: boolean): void {\n if (!this.tabList) {\n this.activeIndex.set(Math.max(0, index));\n return;\n }\n const clamped = Math.max(0, Math.min(index, this.tabList.length - 1));\n const previous = this.activeIndex();\n if (clamped === previous && emit) {return;}\n\n this.activeIndex.set(clamped);\n this.activatedSet.add(clamped);\n\n if (emit) {\n this.selectedTabChange.emit({\n previousIndex: previous,\n index: clamped,\n tab: this.tabList[clamped],\n });\n }\n\n this.scheduleInkBar();\n }\n\n private focusTab(index: number): void {\n this.tabBtns?.toArray()[index]?.nativeElement?.focus();\n }\n\n scheduleInkBar(): void {\n if (!this.isBrowser) {return;}\n requestAnimationFrame(() => this.updateInkBar());\n }\n\n private updateInkBar(): void {\n const btns = this.tabBtns?.toArray();\n const bar = this.inkBar?.nativeElement;\n if (!btns || !bar) {return;}\n\n const btn = btns[this.activeIndex()]?.nativeElement;\n if (!btn) {return;}\n\n bar.style.width = `${btn.offsetWidth}px`;\n bar.style.transform = `translateX(${btn.offsetLeft}px)`;\n bar.style.transitionDuration = this.animationDuration;\n }\n}","<div\n #header\n [class]=\"'cao-tab-header cao-tab-header--align-' + labelAlign\"\n>\n <div class=\"cao-tab-label-list\" role=\"tablist\">\n @for (tab of tabList; track $index; let i = $index) {\n <button\n #tabBtn\n role=\"tab\"\n type=\"button\"\n class=\"cao-tab-label\"\n [class.cao-tab-label--active]=\"isActive(i)\"\n [class.cao-tab-label--disabled]=\"tab.isDisabled\"\n [attr.aria-selected]=\"isActive(i)\"\n [attr.aria-disabled]=\"tab.isDisabled || null\"\n [attr.tabindex]=\"isActive(i) ? 0 : -1\"\n [attr.id]=\"'cao-tab-label-' + i\"\n [attr.aria-controls]=\"'cao-tab-content-' + i\"\n (click)=\"onTabClick(i)\"\n (keydown)=\"onKeydown($event, i)\"\n (focus)=\"onFocus(i)\"\n >\n @if (tab.leadingIcon) {\n <span class=\"leading-icon\">\n @if (tab.isLucideIcon) {\n <svg [lucideIcon]=\"tab.leadingIcon\" [style.color]=\"isActive(i) ? iconColorActive : iconColorInactive\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"tab.leadingIcon\" />\n }\n </span>\n }\n\n @if (tab.labelTemplate) {\n <ng-container [ngTemplateOutlet]=\"tab.labelTemplate\" />\n } @else {\n <span class=\"cao-tab-labeltext\">{{ tab.label }}</span>\n }\n\n @if (tab.trailingIcon) {\n <span class=\"trailing-icon\">\n @if (tab.isLucideIcon) {\n <svg [lucideIcon]=\"tab.trailingIcon\" [style.color]=\"isActive(i) ? iconColorActive : iconColorInactive\" [strokeWidth]=\"strokeWidthIcon\"></svg>\n } @else {\n <img alt=\"icon\" [src]=\"tab.trailingIcon\" />\n }\n </span>\n }\n </button>\n }\n </div>\n\n <!-- Ink bar animado -->\n <div class=\"cao-tab-ink-bar-track\">\n <div #inkBar class=\"cao-tab-ink-bar\"></div>\n </div>\n</div>\n\n<!-- ═══ Tab Bodies ════════════════════════════════════════════════════════ -->\n<div\n class=\"cao-tab-body-wrapper\"\n [class.cao-tab-body-wrapper--dynamic]=\"dynamicHeight\"\n>\n @for (tab of tabList; track $index; let i = $index) {\n <div\n role=\"tabpanel\"\n class=\"cao-tab-body\"\n [class.cao-tab-body--active]=\"isActive(i)\"\n [attr.id]=\"'cao-tab-content-' + i\"\n [attr.aria-labelledby]=\"'cao-tab-label-' + i\"\n [attr.aria-hidden]=\"!isActive(i)\"\n [style.--cao-tab-anim-duration]=\"animationDuration\"\n >\n <div class=\"cao-tab-bodycontent\">\n @if (tab.lazyContent) {\n @if (isActive(i) || wasActivated(i)) {\n <ng-container [ngTemplateOutlet]=\"tab.lazyContent\" />\n }\n } @else {\n <ng-container [ngTemplateOutlet]=\"tab.content\" />\n }\n </div>\n </div>\n }\n</div>","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { LucideDynamicIcon } from '@lucide/angular';\n\n@Component({\n selector: 'cao-base-icon',\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: './base-icon.html',\n styleUrl: './base-icon.css',\n})\nexport class CaoBaseIcon {\n @Input() imgSource = \"\"\n @Input() isLucideIcon = true\n @Input() strokeWidthIcon = 1\n @Input() iconColor = \"\"\n @Input() size = 32\n}\n","@if (imgSource) {\n @if (isLucideIcon) {\n <div class=\"icon\">\n <svg [lucideIcon]=\"imgSource\" [style.color]=\"iconColor\" [strokeWidth]=\"strokeWidthIcon\" [size]=\"size\"></svg>\n </div>\n } @else {\n <div class=\"icon\">\n <img alt=\"ícone de início\" [src]=\"imgSource\" />\n </div>\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, input } from \"@angular/core\";\n\nexport interface ICaoImage {\n src: string;\n alt: string;\n}\nexport interface ICaoKPI {\n title: string;\n value: string;\n textColor: string;\n borderColor: string;\n icon: ICaoImage;\n}\n\n@Component({\n selector: \"cao-kpi\",\n imports: [CommonModule],\n templateUrl: \"./kpi.html\",\n styleUrl: \"./kpi.css\",\n standalone: true,\n})\nexport class CaoKpi {\n readonly kpiData = input.required<ICaoKPI>();\n}\n","<div\n class=\"flex flex-col py-2 pt-2.25 px-3.75 rounded-card border-b w-46.25 bg-(--color-white)\"\n [style.border-color]=\"kpiData().borderColor\">\n <div class=\"flex w-full justify-end\">\n <img class=\"w-6 h-6 mr-2\" [src]=\"kpiData().icon.src\" [alt]=\"kpiData().icon.alt\" />\n </div>\n <div class=\"flex flex-col pl-1.5\">\n <p class=\"text-2xl\" [style.color]=\"kpiData().textColor\">{{ kpiData().value }}</p>\n <h3 class=\"text-base\" [style.color]=\"kpiData().textColor\">{{ kpiData().title }}</h3>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, computed, input } from '@angular/core';\n\nexport type CaoSkeletonVariant = 'rect' | 'circle' | 'text';\n\n@Component({\n selector: 'cao-skeleton',\n imports: [CommonModule],\n templateUrl: './skeleton.html',\n styleUrl: './skeleton.css',\n})\nexport class CaoSkeletonComponent {\n borderRadius = input('14px');\n width = input('100%');\n height = input('100%');\n bgColor = input<string>(\"#e2e8f0\");\n shine = input<string>(\"#f8fafc\");\n variant = input<CaoSkeletonVariant>('rect');\n speed = input<string>('2s');\n size = input<string>();\n animationDeg = input<string>('90deg');\n\n skeletonStyles = computed(() => {\n const styles: Record<string, string> = {\n '--skeleton-width': this.size() || this.width(),\n '--skeleton-height': this.size() || this.height(),\n '--skeleton-speed': this.speed(),\n '--skeleton-animation-deg': this.animationDeg(),\n };\n\n if (this.bgColor()) {\n styles['--skeleton-bg'] = this.bgColor()!;\n }\n\n if (this.shine()) {\n styles['--skeleton-shine'] = this.shine()!;\n }\n\n if (this.variant() !== 'circle') {\n styles['--skeleton-radius'] = this.borderRadius();\n }\n\n\n return styles;\n });\n}","<span class=\"cao-skeleton\" [ngClass]=\"'cao-skeleton--' + variant()\" [style]=\"skeletonStyles()\">\n <span class=\"cao-skeleton__shimmer\"></span>\n</span>","import { Component, computed, input, Input } from '@angular/core';\nimport { AbstractControl, Validators } from '@angular/forms';\n\nimport { IErrorStateMatcher } from './error-state-matcher';\nimport { IFormFieldControl } from './form-field-control';\nimport { CaoBaseIcon } from '../base-icon/base-icon';\n\n@Component({\n selector: 'cao-form-field',\n imports: [CaoBaseIcon],\n templateUrl: './form-field.html',\n styleUrl: './form-field.css',\n})\nexport class CaoFormField extends CaoBaseIcon implements IFormFieldControl {\n inputBackground = input<string>();\n borderColor = input<string>();\n borderWidth = input<string>();\n borderRadius = input<string>();\n errorColor = input<string>();\n labelColor = input<string>();\n hintColor = input<string>();\n textColor = input<string>();\n focusBorderColor = input<string>();\n successBorderColor = input<string>();\n\n formFieldStyles = computed(() => {\n const styles: Record<string, string> = {};\n\n if (this.inputBackground()) {\n styles['--cao-form-field-bg-background'] = this.inputBackground()!;\n }\n if (this.borderColor()) {\n styles['--cao-form-field-border-color'] = this.borderColor()!;\n }\n if (this.borderWidth()) {\n styles['--cao-form-field-border-width'] = this.borderWidth()!;\n }\n if (this.borderRadius()) {\n styles['--cao-form-field-border-radius'] = this.borderRadius()!;\n }\n if (this.errorColor()) {\n styles['--cao-form-field-color-error'] = this.errorColor()!;\n }\n if (this.labelColor()) {\n styles['--cao-form-field-color-label'] = this.labelColor()!;\n }\n if (this.hintColor()) {\n styles['--cao-form-field-color-hint'] = this.hintColor()!;\n }\n if (this.textColor()) {\n styles['--cao-form-field-color-text'] = this.textColor()!;\n }\n if (this.focusBorderColor()) {\n styles['--cao-form-field-focus-border'] = this.focusBorderColor()!;\n }\n if (this.successBorderColor()) {\n styles['--cao-form-field-success-border'] = this.successBorderColor()!;\n }\n\n return styles;\n });\n @Input() label = '';\n @Input() labelInside = false;\n @Input() hintLabel = '';\n @Input() control: AbstractControl | null = null;\n @Input() forId = '';\n @Input() errorStateMatcher?: IErrorStateMatcher;\n @Input() leadingIcon?: string;\n @Input() trailingIcon?: string;\n\n _isSubmitted = false;\n _focused = false;\n\n get id(): string {\n return this.forId;\n }\n\n get disabled(): boolean {\n return !!this.control?.disabled;\n }\n\n get required(): boolean {\n if (!this.control) {\n return false;\n }\n const hasValidator =\n typeof this.control.hasValidator === 'function'\n ? this.control.hasValidator(Validators.required)\n : false;\n return hasValidator;\n }\n\n get floating(): boolean {\n return this._focused || !!this.control?.value;\n }\n\n get errorStateActive(): boolean {\n const control = this.control;\n if (!control) {\n return false;\n }\n const matcher = this.errorStateMatcher;\n return matcher\n ? matcher.isErrorState(control, this)\n : !!(control.invalid && (control.touched || control.dirty || this._isSubmitted));\n }\n\n onFocusIn(): void {\n this._focused = true;\n if (this.control && !this._isSubmitted) {\n this.control.markAsTouched();\n }\n }\n\n onFocusOut(): void {\n this._focused = false;\n }\n}","<div\n class=\"cao-form-field\"\n [class.label-inside]=\"labelInside\"\n [class.error-state]=\"errorStateActive\"\n [class.disabled]=\"disabled\"\n [class.required]=\"required\"\n [style]=\"formFieldStyles()\">\n @if (label && !labelInside) {\n <label class=\"cao-form-field__label\" [for]=\"forId\">{{ label }}</label>\n }\n <div class=\"input-field\" (focusin)=\"onFocusIn()\" (focusout)=\"onFocusOut()\">\n @if (leadingIcon) {\n <cao-base-icon\n [isLucideIcon]=\"isLucideIcon\"\n [strokeWidthIcon]=\"strokeWidthIcon\"\n [imgSource]=\"leadingIcon\"\n [iconColor]=\"iconColor\"\n [size]=\"size\" />\n }\n <div class=\"input-slot\">\n @if (label && labelInside) {\n <label\n class=\"cao-form-field__label cao-form-field__label--float\"\n [class.cao-form-field__label--floated]=\"floating\"\n [for]=\"forId\">{{ label }}</label>\n }\n <ng-content select=\"[caoInput]\" />\n <ng-content select=\"cao-input\" />\n <ng-content select=\"input\" />\n <ng-content select=\"select\" />\n <ng-content select=\"textarea\" />\n <ng-content select=\"h2\" />\n <ng-content />\n </div>\n @if (trailingIcon) {\n <cao-base-icon\n [isLucideIcon]=\"isLucideIcon\"\n [iconColor]=\"iconColor\"\n [size]=\"size\"\n [imgSource]=\"trailingIcon\"\n [strokeWidthIcon]=\"strokeWidthIcon\" />\n }\n </div>\n <div class=\"subscript-wrapper\">\n @if (hintLabel) {\n <small class=\"cao-form-field__hint\">{{ hintLabel }}</small>\n }\n <ng-content select=\"cao-hint\" />\n <ng-content select=\"cao-error\" />\n </div>\n</div>","import { AbstractControl } from '@angular/forms';\n\nimport { IFormFieldControl } from './form-field-control';\n\nexport interface IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean;\n}\n\nexport class ErrorStateMatcher implements IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean {\n if (!control) {\n return false;\n }\n const isSubmitted = formFieldControl && (formFieldControl as any)._isSubmitted;\n return !!(\n control.invalid &&\n (control.touched || control.dirty || isSubmitted)\n );\n }\n}\n\nexport class ShowOnDirtyErrorStateMatcher implements IErrorStateMatcher {\n isErrorState(\n control: AbstractControl | null,\n formFieldControl: IFormFieldControl | null\n ): boolean {\n if (!control) {\n return false;\n }\n const isSubmitted = formFieldControl && (formFieldControl as any)._isSubmitted;\n return !!(control.invalid && (control.dirty || isSubmitted));\n }\n}\n\nexport const DEFAULT_ERROR_STATE_MATCHER = new ErrorStateMatcher();\n","import { Component } from '@angular/core';\n\n@Component({\n selector: 'cao-hint',\n imports: [],\n templateUrl: './hint.html',\n styleUrl: './hint.css',\n})\nexport class CaoHint {}\n","<span class=\"cao-hint\"><ng-content /></span>\n","import { Component, inject, Input } from '@angular/core';\n\nimport { IErrorStateMatcher } from '../form-field/error-state-matcher';\nimport { CaoFormField } from '../form-field/form-field';\n\n@Component({\n selector: 'cao-error',\n imports: [],\n templateUrl: './error.html',\n styleUrl: './error.css',\n})\nexport class CaoError {\n @Input() errorStateMatcher?: IErrorStateMatcher;\n\n private readonly formField = inject(CaoFormField, { optional: true }) as\n | CaoFormField\n | null;\n\n get control() {\n return this.formField?.control ?? null;\n }\n\n get hasErrorState(): boolean {\n const control = this.control;\n if (!control) {\n return false;\n }\n const matcher = this.errorStateMatcher ?? this.formField?.errorStateMatcher;\n return matcher\n ? matcher.isErrorState(control, this.formField)\n : !!(control.invalid && (control.touched || control.dirty));\n }\n}\n","@if (hasErrorState) {\n <div class=\"cao-error\" role=\"alert\">\n <ng-content />\n </div>\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output } from \"@angular/core\";\nimport { MatTooltip } from \"@angular/material/tooltip\";\n\nexport type CaoCardVariant = \"horizontal\" | \"square\";\n\nexport interface ICaoCardBadge {\n label: string;\n color?: string;\n borderColor?: string;\n bg?: string;\n}\n\nexport interface ICaoCardMeta {\n icon: string;\n label: string;\n}\n\nexport interface ICaoCardAvatar {\n initials?: string;\n src?: string;\n color?: string;\n}\n\n\n@Component({\n selector: \"cao-card\",\n templateUrl: \"./card.component.html\",\n styleUrl: \"./card.component.css\",\n imports: [CommonModule, MatTooltip],\n})\nexport class CaoCardComponent {\n @Input() variant: CaoCardVariant = \"horizontal\";\n @Input() title?: string;\n @Input() subtitle?: string;\n @Input() detail?: string;\n @Input() detailColor?: string;\n @Input() icon?: string;\n @Input() avatar?: ICaoCardAvatar;\n @Input() meta?: ICaoCardMeta[];\n @Input() badge?: ICaoCardBadge;\n @Input() selected = false;\n @Input() clickable = false;\n @Input() bgColor=\"bg-white\"\n @Input() borderColor=\"border-gray-200\"\n\n @Output() readonly cardClick = new EventEmitter<void>();\n\n get avatarBg(): string {\n return this.avatar?.color ?? \"bg-orange-400\";\n }\n\n handleClick(): void {\n if (this.clickable) {this.cardClick.emit();}\n }\n\n handleKeydown(event: KeyboardEvent): void {\n if (this.clickable && (event.key === \"Enter\" || event.key === \" \")) {\n event.preventDefault();\n this.cardClick.emit();\n }\n }\n}\n","@switch (variant) {\n @case ('horizontal') {\n <div\n class=\"card card-horizontal\"\n [class.card-clickable]=\"clickable\"\n [class.card-hover-shadow]=\"clickable\"\n [class.card-selected]=\"selected\"\n [ngClass]=\"[bgColor, borderColor]\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable ? 0 : null\"\n (click)=\"handleClick()\"\n (keydown)=\"handleKeydown($event)\">\n \n @if (avatar) {\n <div class=\"card-avatar-container\" [ngClass]=\"avatarBg\">\n @if (avatar.src) {\n <img \n class=\"card-avatar-img\" \n [src]=\"avatar.src\" \n [alt]=\"title\" />\n } @else { \n {{ avatar.initials }} \n }\n </div>\n } @else if (icon) {\n <div class=\"card-icon-container\">\n <img \n class=\"card-icon-img\" \n [src]=\"icon\" \n [alt]=\"title\" />\n </div>\n }\n\n <div class=\"card-content\">\n @if (title) {\n <span class=\"card-title\">{{ title }}</span>\n }\n @if (subtitle) {\n <span class=\"card-subtitle\">{{ subtitle }}</span>\n }\n @if (detail) {\n <span class=\"card-detail\" [ngClass]=\"detailColor ?? ''\">\n {{ detail }}\n </span>\n }\n <ng-content />\n </div>\n\n @if (badge || (meta && meta.length)) {\n <div class=\"card-badge-wrapper\">\n @if (badge) {\n <div \n class=\"card-badge\"\n [ngClass]=\"[badge.color ?? '', badge.borderColor ?? '']\"\n [style.background-color]=\"badge.bg\">\n {{ badge.label }}\n </div>\n }\n @if (meta && meta.length) {\n <div class=\"card-meta-list\">\n @for (m of meta; track m.label) {\n <div class=\"card-meta-item\">\n <img \n class=\"card-meta-icon\" \n [src]=\"m.icon\" \n [alt]=\"m.label\" />\n <span>{{ m.label }}</span>\n </div>\n }\n </div>\n }\n </div>\n }\n </div>\n }\n\n @case ('square') {\n <div\n class=\"card card-square\"\n [class.card-clickable]=\"clickable\"\n [class.card-hover-bg]=\"clickable\"\n [class.card-hover-bold]=\"clickable\"\n [class.card-selected]=\"selected\"\n [class.card-selected-border-2]=\"selected\"\n [attr.role]=\"clickable ? 'button' : null\"\n [attr.tabindex]=\"clickable ? 0 : null\"\n [matTooltip]=\"title\"\n (click)=\"handleClick()\"\n (keydown)=\"handleKeydown($event)\">\n \n <div class=\"card-square-content\">\n <span class=\"card-square-title\">{{ title }}</span>\n \n @if (icon) {\n <img \n class=\"card-square-icon\" \n [src]=\"icon\" \n [alt]=\"title\" />\n }\n </div>\n </div>\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, EventEmitter, Input, Output, ViewChild } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\n\nimport { MaterialModule } from \"../../../material.module\";\n\n@Component({\n selector: \"cao-base-toggle\",\n standalone: true,\n templateUrl: \"./base-toggle.component.html\",\n styleUrl: \"./base-toggle.component.scss\",\n imports: [CommonModule, MaterialModule],\n})\nexport class CaoBaseToggleComponent {\n @Input() type = \"text\";\n @Input() placeholder = \"\";\n @Input() inputClass = \"\";\n @Input() value: string | number | boolean | Date = \"\";\n @Input() errorMessage = \"\";\n @Input() isDisabled = false;\n @Input() maxLength?: number;\n @Input() searchMode = false;\n @Input() showBorder = false;\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() mask?: string;\n @Input() control?: AbstractControl | null;\n @Input() tooltip = \"\";\n @Input() dataCy?: string = \"\";\n @Input() textareaRows?: string = \"\";\n\n @Input() decimalMarker: \".\" | \",\" | [\".\", \",\"] = \",\";\n @Input() thousandSeparator = \".\";\n @Input() allowNegativeNumbers = false;\n @Input() separatorLimit = \"\";\n\n @Input() set leadingIcon(value: string) {\n this._leadingIcon = value;\n this.icon = true;\n }\n\n @Input() set trailingIcon(value: string) {\n this._trailingIcon = value;\n this.icon = true;\n }\n\n @Output() readonly valueChange = new EventEmitter<string>();\n @Output() readonly searchClick = new EventEmitter<void>();\n @Output() readonly inputChange = new EventEmitter<string>();\n\n isFocused = false;\n icon = false;\n _leadingIcon?: string;\n _trailingIcon?: string;\n\n onChange: any = () => { };\n onTouched: any = () => { };\n\n get hasError() {\n return !!this.errorMessage;\n }\n\n @Input() controlName = \"\";\n\n get controlNameValue(): string {\n return this.controlName;\n }\n\n onInput(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.onChange(newValue);\n this.valueChange.emit(newValue);\n }\n\n onInputChange(event: Event) {\n const newValue = (event.target as HTMLInputElement).value;\n this.value = newValue;\n this.inputChange.emit(newValue);\n }\n\n onFocus() {\n this.isFocused = true;\n this.onTouched();\n }\n\n onBlur() {\n this.isFocused = false;\n this.onTouched();\n\n if (this.control?.touched && this.control?.valid && this.control?.value) {\n setTimeout(() => {\n const active = document.activeElement as HTMLElement;\n const current = document.querySelector(`[formcontrolname=\"${this.controlNameValue}\"]`);\n if (!current || !active || !current.contains(active)) {\n this.control?.markAsUntouched();\n }\n });\n }\n }\n\n onSearchClick() {\n this.searchClick.emit();\n }\n\n writeValue(value: string | null | undefined): void {\n this.value = value || \"\";\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n @Input() isChecked = false;\n @Input() checkedTextPlaceholder = \"\";\n @Input() uncheckedTextPlaceholder = \"\";\n\n @Output() readonly statusChanged = new EventEmitter<CaoBaseToggleComponent>();\n\n @ViewChild(\"checkbox\") checkboxInput!: HTMLInputElement;\n\n onToggleCheckbox() {\n if (this.isDisabled) {\n return;\n }\n\n this.isChecked = !this.isChecked;\n\n this.statusChanged.emit(this);\n }\n}\n","<div class=\"d-flex col aic jcc base-toggle\">\n <input #checkbox type=\"checkbox\" class=\"checkbox\" [checked]=\"isChecked\" [disabled]=\"isDisabled\" />\n <div\n class=\"d-flex checkbox-element aic jcsb\"\n tabindex=\"0\"\n role=\"button\"\n [class.activated-toggle]=\"isChecked\"\n (click)=\"onToggleCheckbox()\"\n (keydown.enter)=\"onToggleCheckbox()\"\n (keydown.space)=\"onToggleCheckbox(); $event.preventDefault()\">\n @if (isChecked) {\n <mat-icon class=\"eye-icon\" />\n <div class=\"check-text\"> Ativada </div>\n <div class=\"line\"></div>\n <p class=\"unchecked\">Desativar</p>\n }@else {\n <mat-icon class=\"fa-circle\" />\n <div class=\"check-text\"> Não ativada </div>\n <div class=\"line\"></div>\n <p>Ativar</p>\n }\n </div>\n @if(isChecked){\n <span>{{ checkedTextPlaceholder }} ativada com sucesso</span>\n } @else{\n <span>Clique para ativar {{ uncheckedTextPlaceholder }}</span>\n }\n</div>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n Output,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\n\nexport interface ICaoSlideToggleChangeEvent {\n checked: boolean;\n source: CaoSlideToggleComponent;\n}\n\n@Component({\n selector: \"cao-slide-toggle\",\n standalone: true,\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: \"./slide-toggle.component.html\",\n styleUrl: \"./slide-toggle.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoSlideToggleComponent),\n multi: true,\n },\n ],\n})\nexport class CaoSlideToggleComponent implements ControlValueAccessor {\n @Input() checked = false;\n @Input() isDisabled = false;\n @Input() label = \"\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() name = \"\";\n @Input() id = \"\";\n @Input() ariaLabel = \"\";\n @Input() dataCy = \"\";\n @Input() required = false;\n\n @Input() trackColor?: string;\n @Input() trackCheckedColor?: string;\n @Input() thumbColor?: string;\n @Input() thumbCheckedColor?: string;\n @Input() disabledTrackColor?: string;\n @Input() disabledThumbColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() trackWidth?: string;\n @Input() trackHeight?: string;\n @Input() thumbSize?: string;\n @Input() animationDuration?: string;\n\n @Input() thumbIcon = \"\";\n @Input() thumbCheckedIcon = \"\";\n @Input() isLucideThumbIcon = false;\n @Input() thumbIconColor = \"\";\n @Input() thumbCheckedIconColor = \"\";\n @Input() thumbIconSize: string | number = 12;\n @Input() thumbIconStrokeWidth: string | number = 2;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n @Output() readonly toggleChange = new EventEmitter<ICaoSlideToggleChangeEvent>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n get resolvedThumbIcon(): string {\n return this.checked && this.thumbCheckedIcon\n ? this.thumbCheckedIcon\n : this.thumbIcon;\n }\n\n get resolvedThumbIconColor(): string {\n return this.checked\n ? this.thumbCheckedIconColor || this.thumbIconColor\n : this.thumbIconColor;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.trackColor) {\n styles[\"--cao-slide-toggle-track\"] = this.trackColor;\n }\n if (this.trackCheckedColor) {\n styles[\"--cao-slide-toggle-track-checked\"] = this.trackCheckedColor;\n }\n if (this.thumbColor) {\n styles[\"--cao-slide-toggle-thumb\"] = this.thumbColor;\n }\n if (this.thumbCheckedColor) {\n styles[\"--cao-slide-toggle-thumb-checked\"] = this.thumbCheckedColor;\n }\n if (this.disabledTrackColor) {\n styles[\"--cao-slide-toggle-track-disabled\"] = this.disabledTrackColor;\n }\n if (this.disabledThumbColor) {\n styles[\"--cao-slide-toggle-thumb-disabled\"] = this.disabledThumbColor;\n }\n if (this.labelColor) {\n styles[\"--cao-slide-toggle-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-slide-toggle-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-slide-toggle-focus-ring\"] = this.focusRingColor;\n }\n if (this.trackWidth) {\n styles[\"--cao-slide-toggle-track-width\"] = this.trackWidth;\n }\n if (this.trackHeight) {\n styles[\"--cao-slide-toggle-track-height\"] = this.trackHeight;\n }\n if (this.thumbSize) {\n styles[\"--cao-slide-toggle-thumb-size\"] = this.thumbSize;\n }\n if (this.animationDuration) {\n styles[\"--cao-slide-toggle-duration\"] = this.animationDuration;\n }\n if (this.resolvedThumbIconColor) {\n styles[\"--cao-slide-toggle-thumb-icon-color\"] = this.resolvedThumbIconColor;\n }\n\n styles[\"--cao-slide-toggle-thumb-icon-size\"] = this.toCssLength(\n this.thumbIconSize,\n );\n\n return styles;\n }\n\n toggle(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.updateChecked(!this.checked, true);\n }\n\n setChecked(value: boolean): void {\n if (this.isDisabled) {\n return;\n }\n\n this.updateChecked(value, true);\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n onInputChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.updateChecked(target.checked, true);\n }\n\n onEnter(event: Event): void {\n if (this.isDisabled) {\n return;\n }\n\n event.preventDefault();\n this.toggle();\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked = !!value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private toCssLength(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n }\n\n private updateChecked(value: boolean, emit: boolean): void {\n if (this.isDisabled) {\n return;\n }\n\n this.checked = value;\n this.onChange(value);\n\n if (emit) {\n this.checkedChange.emit(value);\n this.toggleChange.emit({ checked: value, source: this });\n }\n\n this.cdr.markForCheck();\n }\n}\n","<label\n class=\"cao-slide-toggle\"\n [class.cao-slide-toggle--checked]=\"checked\"\n [class.cao-slide-toggle--disabled]=\"isDisabled\"\n [class.cao-slide-toggle--label-before]=\"labelPosition === 'before'\">\n <input\n #input\n class=\"cao-slide-toggle__input\"\n type=\"checkbox\"\n role=\"switch\"\n [checked]=\"checked\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n [attr.name]=\"name || null\"\n [attr.id]=\"id || null\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\"\n (keydown.enter)=\"onEnter($event)\" />\n\n <span class=\"cao-slide-toggle__track\" aria-hidden=\"true\">\n <span class=\"cao-slide-toggle__thumb\">\n @if (resolvedThumbIcon) {\n @if (isLucideThumbIcon) {\n <svg\n class=\"cao-slide-toggle__thumb-icon\"\n [lucideIcon]=\"resolvedThumbIcon\"\n [size]=\"thumbIconSize\"\n [strokeWidth]=\"thumbIconStrokeWidth\"></svg>\n } @else {\n <img\n class=\"cao-slide-toggle__thumb-icon\"\n alt=\"\"\n [src]=\"resolvedThumbIcon\" />\n }\n }\n </span>\n </span>\n\n <span class=\"cao-slide-toggle__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n Output,\n} from \"@angular/core\";\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport type { CaoRadioButtonComponent } from \"./radio-button.component\";\n\nlet nextRadioGroupId = 0;\n\nexport interface ICaoRadioChangeEvent {\n value: unknown;\n source: CaoRadioButtonComponent;\n}\n\n@Component({\n selector: \"cao-radio-group\",\n standalone: true,\n template: \"<ng-content />\",\n styleUrl: \"./radio-group.component.css\",\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoRadioGroupComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoRadioGroupComponent implements ControlValueAccessor {\n @Input() value: unknown = undefined;\n @Input() name = \"\";\n @Input() isDisabled = false;\n @Input() required = false;\n @Input() orientation: \"vertical\" | \"horizontal\" = \"vertical\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() compareWith: (option: unknown, value: unknown) => boolean = (\n option,\n value,\n ) => option === value;\n\n @Input() color?: string;\n @Input() unselectedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() size?: string;\n @Input() animationDuration?: string;\n @Input() gap?: string;\n\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly valueChange = new EventEmitter<unknown>();\n @Output() readonly selectionChange = new EventEmitter<ICaoRadioChangeEvent>();\n\n readonly resolvedName = `cao-radio-group-${nextRadioGroupId++}`;\n\n private readonly cdr = inject(ChangeDetectorRef);\n private formDisabled = false;\n private onChange: (value: unknown) => void = () => {};\n private onTouched: () => void = () => {};\n\n get isEffectivelyDisabled(): boolean {\n return this.isDisabled || this.formDisabled;\n }\n\n @HostBinding(\"attr.role\")\n readonly role = \"radiogroup\";\n\n @HostBinding(\"class.cao-radio-group--horizontal\")\n get isHorizontal(): boolean {\n return this.orientation === \"horizontal\";\n }\n\n @HostBinding(\"class.cao-radio-group--disabled\")\n get isDisabledClass(): boolean {\n return this.isEffectivelyDisabled;\n }\n\n @HostBinding(\"attr.aria-label\")\n get ariaLabelAttr(): string | null {\n return this.ariaLabel || null;\n }\n\n @HostBinding(\"attr.aria-labelledby\")\n get ariaLabelledByAttr(): string | null {\n return this.ariaLabelledBy || null;\n }\n\n @HostBinding(\"attr.aria-disabled\")\n get ariaDisabledAttr(): boolean | null {\n return this.isEffectivelyDisabled || null;\n }\n\n @HostBinding(\"attr.aria-required\")\n get ariaRequiredAttr(): boolean | null {\n return this.required || null;\n }\n\n @HostBinding(\"attr.data-cy\")\n get dataCyAttr(): string | null {\n return this.dataCy || null;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-radio-color\"] = this.color;\n }\n if (this.unselectedColor) {\n styles[\"--cao-radio-unselected\"] = this.unselectedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-radio-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-radio-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-radio-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-radio-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-radio-size\"] = this.size;\n }\n if (this.animationDuration) {\n styles[\"--cao-radio-duration\"] = this.animationDuration;\n }\n if (this.gap) {\n styles[\"--cao-radio-gap\"] = this.gap;\n }\n\n return styles;\n }\n\n get groupName(): string {\n return this.name || this.resolvedName;\n }\n\n isValueSelected(value: unknown): boolean {\n return this.compareWith(this.value, value);\n }\n\n select(button: CaoRadioButtonComponent): void {\n if (this.isEffectivelyDisabled || button.effectiveDisabled) {\n return;\n }\n\n if (this.compareWith(this.value, button.value)) {\n this.markAsTouched();\n return;\n }\n\n this.value = button.value;\n this.onChange(this.value);\n this.valueChange.emit(this.value);\n this.selectionChange.emit({ value: this.value, source: button });\n this.markAsTouched();\n this.cdr.markForCheck();\n }\n\n markAsTouched(): void {\n this.onTouched();\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n writeValue(value: unknown): void {\n this.value = value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: unknown) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.formDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport {\n Component,\n forwardRef,\n HostBinding,\n Inject,\n Input,\n Optional,\n} from \"@angular/core\";\n\nimport { CaoRadioGroupComponent } from \"./radio-group.component\";\n\nlet nextRadioId = 0;\n\n@Component({\n selector: \"cao-radio-button\",\n standalone: true,\n imports: [CommonModule],\n templateUrl: \"./radio-button.component.html\",\n styleUrl: \"./radio-button.component.css\",\n})\nexport class CaoRadioButtonComponent {\n @Input() value: unknown = undefined;\n @Input() label = \"\";\n @Input() isDisabled = false;\n @Input() labelPosition?: \"before\" | \"after\";\n @Input() id = \"\";\n @Input() name = \"\";\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n\n @Input() color?: string;\n @Input() unselectedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n @Input() size?: string;\n @Input() animationDuration?: string;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n private readonly uid = `cao-radio-${nextRadioId++}`;\n\n constructor(\n @Optional()\n @Inject(forwardRef(() => CaoRadioGroupComponent))\n readonly group: CaoRadioGroupComponent | null,\n ) {}\n\n get effectiveDisabled(): boolean {\n return this.isDisabled || !!this.group?.isEffectivelyDisabled;\n }\n\n get effectiveLabelPosition(): \"before\" | \"after\" {\n return this.labelPosition ?? this.group?.labelPosition ?? \"after\";\n }\n\n get effectiveName(): string {\n return this.name || this.group?.groupName || this.uid;\n }\n\n get inputId(): string {\n return this.id || this.uid;\n }\n\n get isSelected(): boolean {\n return this.group?.isValueSelected(this.value) ?? false;\n }\n\n get isRequired(): boolean {\n return this.group?.required ?? false;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-radio-color\"] = this.color;\n }\n if (this.unselectedColor) {\n styles[\"--cao-radio-unselected\"] = this.unselectedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-radio-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-radio-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-radio-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-radio-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-radio-size\"] = this.size;\n }\n if (this.animationDuration) {\n styles[\"--cao-radio-duration\"] = this.animationDuration;\n }\n\n return styles;\n }\n\n select(): void {\n if (this.effectiveDisabled) {\n return;\n }\n\n this.group?.select(this);\n }\n\n onBlur(): void {\n this.group?.markAsTouched();\n }\n\n enable(): void {\n this.isDisabled = false;\n }\n\n disable(): void {\n this.isDisabled = true;\n }\n}\n","<label\n class=\"cao-radio\"\n [class.cao-radio--checked]=\"isSelected\"\n [class.cao-radio--disabled]=\"effectiveDisabled\"\n [class.cao-radio--label-before]=\"effectiveLabelPosition === 'before'\">\n <input\n #input\n class=\"cao-radio__input\"\n type=\"radio\"\n [checked]=\"isSelected\"\n [disabled]=\"effectiveDisabled\"\n [required]=\"isRequired\"\n [attr.name]=\"effectiveName\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"select()\"\n (blur)=\"onBlur()\" />\n\n <span class=\"cao-radio__control\" aria-hidden=\"true\">\n <span class=\"cao-radio__dot\"></span>\n </span>\n\n <span class=\"cao-radio__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n forwardRef,\n HostBinding,\n inject,\n Input,\n OnChanges,\n OnDestroy,\n Output,\n SimpleChanges,\n} from \"@angular/core\";\nimport { AbstractControl, ControlValueAccessor, NG_VALUE_ACCESSOR } from \"@angular/forms\";\n\nimport { LucideDynamicIcon } from \"@lucide/angular\";\nimport { Subscription } from \"rxjs\";\n\nlet nextCheckboxId = 0;\n\nexport interface ICaoCheckboxChangeEvent {\n checked: boolean;\n source: CaoCheckboxComponent;\n}\n\n@Component({\n selector: \"cao-checkbox\",\n standalone: true,\n imports: [CommonModule, LucideDynamicIcon],\n templateUrl: \"./checkbox.component.html\",\n styleUrl: \"./checkbox.component.css\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => CaoCheckboxComponent),\n multi: true,\n },\n ],\n})\nexport class CaoCheckboxComponent implements ControlValueAccessor, OnChanges, OnDestroy {\n @Input() checked = false;\n @Input() indeterminate = false;\n @Input() isDisabled = false;\n @Input() required = false;\n @Input() label = \"\";\n @Input() labelPosition: \"before\" | \"after\" = \"after\";\n @Input() name = \"\";\n @Input() id = \"\";\n @Input() ariaLabel = \"\";\n @Input() ariaLabelledBy = \"\";\n @Input() dataCy = \"\";\n @Input() control?: AbstractControl | null;\n @Input() errorMessage = \"\";\n\n @Input() color?: string;\n @Input() uncheckedColor?: string;\n @Input() disabledColor?: string;\n @Input() labelColor?: string;\n @Input() disabledLabelColor?: string;\n @Input() focusRingColor?: string;\n\n @Input() size?: string;\n @Input() borderRadius?: string;\n @Input() animationDuration?: string;\n\n @Input() checkedIcon = \"\";\n @Input() uncheckedIcon = \"\";\n @Input() indeterminateIcon = \"\";\n @Input() isLucideIcon = false;\n @Input() iconColor = \"\";\n @Input() checkedIconColor = \"\";\n @Input() uncheckedIconColor = \"\";\n @Input() iconSize: string | number = 14;\n @Input() iconStrokeWidth: string | number = 2.5;\n\n @Input() set disabled(value: boolean) {\n this.isDisabled = value;\n this.cdr.markForCheck();\n }\n\n get disabled(): boolean {\n return this.isDisabled;\n }\n\n @Output() readonly checkedChange = new EventEmitter<boolean>();\n @Output() readonly indeterminateChange = new EventEmitter<boolean>();\n @Output() readonly checkboxChange = new EventEmitter<ICaoCheckboxChangeEvent>();\n\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly uid = `cao-checkbox-${nextCheckboxId++}`;\n private controlSub?: Subscription;\n private onChange: (value: boolean) => void = () => {};\n private onTouched: () => void = () => {};\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes[\"control\"]) {\n this.controlSub?.unsubscribe();\n this.controlSub = this.control?.statusChanges.subscribe(() =>\n this.cdr.markForCheck(),\n );\n }\n }\n\n ngOnDestroy(): void {\n this.controlSub?.unsubscribe();\n }\n\n get inputId(): string {\n return this.id || this.uid;\n }\n\n get hasError(): boolean {\n return !!this.errorMessage;\n }\n\n get hasInvalidState(): boolean {\n return !!(this.control?.touched && this.control?.invalid);\n }\n\n get hasValidState(): boolean {\n return !!(this.control?.touched && this.control?.valid);\n }\n\n get resolvedIconColor(): string {\n if (this.indeterminate) {\n return this.iconColor || this.checkedIconColor;\n }\n\n return this.checked\n ? this.checkedIconColor || this.iconColor\n : this.uncheckedIconColor || this.iconColor;\n }\n\n @HostBinding(\"style\")\n get hostStyles(): Record<string, string> {\n const styles: Record<string, string> = {};\n\n if (this.color) {\n styles[\"--cao-checkbox-color\"] = this.color;\n }\n if (this.uncheckedColor) {\n styles[\"--cao-checkbox-unselected\"] = this.uncheckedColor;\n }\n if (this.disabledColor) {\n styles[\"--cao-checkbox-disabled\"] = this.disabledColor;\n }\n if (this.labelColor) {\n styles[\"--cao-checkbox-label\"] = this.labelColor;\n }\n if (this.disabledLabelColor) {\n styles[\"--cao-checkbox-label-disabled\"] = this.disabledLabelColor;\n }\n if (this.focusRingColor) {\n styles[\"--cao-checkbox-focus-ring\"] = this.focusRingColor;\n }\n if (this.size) {\n styles[\"--cao-checkbox-size\"] = this.size;\n }\n if (this.borderRadius) {\n styles[\"--cao-checkbox-radius\"] = this.borderRadius;\n }\n if (this.animationDuration) {\n styles[\"--cao-checkbox-duration\"] = this.animationDuration;\n }\n if (this.resolvedIconColor) {\n styles[\"--cao-checkbox-icon-color\"] = this.resolvedIconColor;\n }\n\n styles[\"--cao-checkbox-icon-size\"] = this.toCssLength(this.iconSize);\n\n return styles;\n }\n\n toggle(): void {\n if (this.isDisabled) {\n return;\n }\n\n this.setChecked(!this.checked, true);\n }\n\n setChecked(value: boolean, emit = true): void {\n if (this.isDisabled) {\n return;\n }\n\n const wasIndeterminate = this.indeterminate;\n\n this.checked = value;\n this.indeterminate = false;\n this.onChange(value);\n\n if (emit) {\n this.checkedChange.emit(value);\n this.checkboxChange.emit({ checked: value, source: this });\n }\n\n if (wasIndeterminate) {\n this.indeterminateChange.emit(false);\n }\n\n this.cdr.markForCheck();\n }\n\n setIndeterminate(value: boolean): void {\n if (this.isDisabled || this.indeterminate === value) {\n return;\n }\n\n this.indeterminate = value;\n this.indeterminateChange.emit(value);\n this.cdr.markForCheck();\n }\n\n enable(): void {\n this.isDisabled = false;\n this.cdr.markForCheck();\n }\n\n disable(): void {\n this.isDisabled = true;\n this.cdr.markForCheck();\n }\n\n onInputChange(event: Event): void {\n const target = event.target as HTMLInputElement;\n this.setChecked(target.checked, true);\n }\n\n onBlur(): void {\n this.onTouched();\n }\n\n writeValue(value: boolean | null): void {\n this.checked = !!value;\n this.cdr.markForCheck();\n }\n\n registerOnChange(fn: (value: boolean) => void): void {\n this.onChange = fn;\n }\n\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n this.cdr.markForCheck();\n }\n\n private toCssLength(value: string | number): string {\n return typeof value === \"number\" ? `${value}px` : value;\n }\n}\n","<label\n class=\"cao-checkbox\"\n [class.cao-checkbox--checked]=\"checked && !indeterminate\"\n [class.cao-checkbox--indeterminate]=\"indeterminate\"\n [class.cao-checkbox--disabled]=\"isDisabled\"\n [class.cao-checkbox--label-before]=\"labelPosition === 'before'\"\n [class.cao-checkbox--invalid]=\"hasInvalidState\"\n [class.cao-checkbox--valid]=\"hasValidState\">\n <input\n #input\n class=\"cao-checkbox__input\"\n type=\"checkbox\"\n [checked]=\"checked\"\n [indeterminate]=\"indeterminate\"\n [disabled]=\"isDisabled\"\n [required]=\"required\"\n [attr.name]=\"name || null\"\n [attr.id]=\"inputId\"\n [attr.aria-label]=\"ariaLabel || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy || null\"\n [attr.data-cy]=\"dataCy || null\"\n (change)=\"onInputChange($event)\"\n (blur)=\"onBlur()\" />\n\n <span class=\"cao-checkbox__control\" aria-hidden=\"true\">\n @if (indeterminate) {\n @if (indeterminateIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"indeterminateIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"indeterminateIcon\" />\n }\n } @else {\n <svg\n class=\"cao-checkbox__icon cao-checkbox__icon--default\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <line x1=\"5\" y1=\"12\" x2=\"19\" y2=\"12\" />\n </svg>\n }\n } @else if (checked) {\n @if (checkedIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"checkedIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"checkedIcon\" />\n }\n } @else {\n <svg\n class=\"cao-checkbox__icon cao-checkbox__icon--default\"\n viewBox=\"0 0 24 24\"\n aria-hidden=\"true\">\n <polyline points=\"20 6 9 17 4 12\" />\n </svg>\n }\n } @else if (uncheckedIcon) {\n @if (isLucideIcon) {\n <svg\n class=\"cao-checkbox__icon\"\n [lucideIcon]=\"uncheckedIcon\"\n [size]=\"iconSize\"\n [strokeWidth]=\"iconStrokeWidth\"></svg>\n } @else {\n <img class=\"cao-checkbox__icon\" alt=\"\" [src]=\"uncheckedIcon\" />\n }\n }\n </span>\n\n <span class=\"cao-checkbox__label\">\n @if (label) {\n {{ label }}\n } @else {\n <ng-content />\n }\n </span>\n</label>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { RouterLink } from '@angular/router';\n\nimport { ICaoBreadcrumbItem, ICaoBreadcrumbItemClickEvent } from './breadcrumb.model';\nimport { CaoBaseIcon } from '../base-icon/base-icon';\n\n@Component({\n selector: 'cao-breadcrumb',\n imports: [NgTemplateOutlet, RouterLink, CaoBaseIcon],\n templateUrl: './breadcrumb.html',\n styleUrl: './breadcrumb.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoBreadcrumbComponent {\n /** Itens do breadcrumb. O último item é tratado como página atual. */\n readonly items = input<ICaoBreadcrumbItem[]>([]);\n /** Item \"home\" opcional, sempre exibido como primeiro item. */\n readonly home = input<ICaoBreadcrumbItem | undefined>(undefined);\n\n /** Texto do divisor. Padrão: `'/'`. Ignorado se `separatorIcon` for informado. */\n readonly separator = input<string>('/');\n /** Ícone do divisor (nome Lucide ou imagem). Tem prioridade sobre `separator`. */\n readonly separatorIcon = input<string>('');\n readonly isLucideSeparatorIcon = input<boolean>(true);\n readonly separatorIconSize = input<number>(14);\n readonly separatorIconStrokeWidth = input<number>(1.5);\n\n readonly linkColor = input<string>('');\n readonly linkHoverColor = input<string>('');\n readonly currentColor = input<string>('');\n readonly separatorColor = input<string>('');\n readonly fontSize = input<string>('');\n readonly gap = input<string>('');\n\n readonly ariaLabel = input<string>('Breadcrumb');\n readonly dataCy = input<string>('');\n\n /** Emitido ao clicar em qualquer item interativo. */\n readonly itemClick = output<ICaoBreadcrumbItemClickEvent>();\n\n protected readonly allItems = computed<ICaoBreadcrumbItem[]>(() => {\n const home = this.home();\n return home ? [home, ...this.items()] : this.items();\n });\n\n protected isInteractive(item: ICaoBreadcrumbItem, isLast: boolean): boolean {\n return !isLast && !item.disabled && (this.hasLink(item) || !!item.href || !!item.command);\n }\n\n protected hasLink(item: ICaoBreadcrumbItem): boolean {\n return item.link !== undefined && item.link !== null;\n }\n\n protected onItemClick(item: ICaoBreadcrumbItem, index: number, event: Event): void {\n if (item.disabled) {\n event.preventDefault();\n return;\n }\n const payload: ICaoBreadcrumbItemClickEvent = { item, index, originalEvent: event };\n item.command?.(payload);\n this.itemClick.emit(payload);\n }\n\n protected iconPosition(item: ICaoBreadcrumbItem): 'left' | 'right' {\n return item.iconPosition ?? 'left';\n }\n\n protected isLucide(item: ICaoBreadcrumbItem): boolean {\n return item.isLucideIcon ?? true;\n }\n}","<ng-template #content let-item let-index=\"index\">\n @if (item.icon && iconPosition(item) === 'left') {\n <ng-container *ngTemplateOutlet=\"icon; context: { $implicit: item }\" />\n }\n @if (item.label) {\n <span class=\"cao-breadcrumb__label\">{{ item.label }}</span>\n }\n @if (item.icon && iconPosition(item) === 'right') {\n <ng-container *ngTemplateOutlet=\"icon; context: { $implicit: item }\" />\n }\n @if (item.badge !== undefined && item.badge !== null && item.badge !== '') {\n <span\n class=\"cao-breadcrumb__badge\"\n [style.color]=\"item.badgeColor || null\"\n [style.background-color]=\"item.badgeBgColor || null\"\n [attr.data-cy]=\"item.dataCy ? item.dataCy + '-badge' : null\">\n {{ item.badge }}\n </span>\n }\n</ng-template>\n\n<ng-template #icon let-item>\n <span class=\"cao-breadcrumb__icon\" aria-hidden=\"true\">\n <cao-base-icon\n [imgSource]=\"item.icon\"\n [isLucideIcon]=\"isLucide(item)\"\n [iconColor]=\"item.iconColor ?? ''\"\n [strokeWidthIcon]=\"item.iconStrokeWidth ?? 1.5\"\n [size]=\"item.iconSize ?? 16\" />\n </span>\n</ng-template>\n\n@if (allItems().length) {\n <nav\n class=\"cao-breadcrumb\"\n [attr.aria-label]=\"ariaLabel()\"\n [attr.data-cy]=\"dataCy() || null\"\n [style.--cao-breadcrumb-link-color]=\"linkColor() || null\"\n [style.--cao-breadcrumb-link-hover-color]=\"linkHoverColor() || null\"\n [style.--cao-breadcrumb-current-color]=\"currentColor() || null\"\n [style.--cao-breadcrumb-separator-color]=\"separatorColor() || null\"\n [style.--cao-breadcrumb-font-size]=\"fontSize() || null\"\n [style.--cao-breadcrumb-gap]=\"gap() || null\">\n <ol class=\"cao-breadcrumb__list\">\n @for (item of allItems(); track $index; let i = $index; let last = $last) {\n <li\n class=\"cao-breadcrumb__item\"\n [class.cao-breadcrumb__item--current]=\"last\"\n [class.cao-breadcrumb__item--disabled]=\"item.disabled\"\n [attr.data-cy]=\"item.dataCy || null\">\n @if (isInteractive(item, last)) {\n @if (hasLink(item)) {\n <a\n class=\"cao-breadcrumb__action\"\n [routerLink]=\"item.link\"\n [queryParams]=\"item.queryParams\"\n [target]=\"item.target ?? '_self'\"\n [attr.aria-label]=\"item.ariaLabel || null\"\n (click)=\"onItemClick(item, i, $event)\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: item, index: i }\" />\n </a>\n } @else if (item.href) {\n <a\n class=\"cao-breadcrumb__action\"\n [attr.href]=\"item.href\"\n [attr.target]=\"item.target || null\"\n [attr.rel]=\"item.target === '_blank' ? 'noopener noreferrer' : null\"\n [attr.aria-label]=\"item.ariaLabel || null\"\n (click)=\"onItemClick(item, i, $event)\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: item, index: i }\" />\n </a>\n } @else {\n <button\n type=\"button\"\n class=\"cao-breadcrumb__action\"\n [attr.aria-label]=\"item.ariaLabel || null\"\n (click)=\"onItemClick(item, i, $event)\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: item, index: i }\" />\n </button>\n }\n } @else {\n <span\n class=\"cao-breadcrumb__text\"\n [attr.aria-current]=\"last ? 'page' : null\"\n [attr.aria-disabled]=\"item.disabled ? 'true' : null\"\n [attr.aria-label]=\"item.ariaLabel || null\">\n <ng-container *ngTemplateOutlet=\"content; context: { $implicit: item, index: i }\" />\n </span>\n }\n </li>\n\n @if (!last) {\n <li class=\"cao-breadcrumb__separator\" role=\"presentation\" aria-hidden=\"true\">\n @if (separatorIcon()) {\n <cao-base-icon\n [imgSource]=\"separatorIcon()\"\n [isLucideIcon]=\"isLucideSeparatorIcon()\"\n [strokeWidthIcon]=\"separatorIconStrokeWidth()\"\n [size]=\"separatorIconSize()\" />\n } @else {\n {{ separator() }}\n }\n </li>\n }\n }\n </ol>\n </nav>\n}","import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\nimport { CaoProgressBarMode } from './progress-bar.model';\n\nconst clampPercent = (value: number): number => Math.min(100, Math.max(0, Number.isFinite(value) ? value : 0));\n\n@Component({\n selector: 'cao-progress-bar',\n templateUrl: './progress-bar.html',\n styleUrl: './progress-bar.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoProgressBarComponent {\n /** Modo de exibição. Padrão: `'determinate'`. */\n readonly mode = input<CaoProgressBarMode>('determinate');\n /** Progresso de 0 a 100 (modos `determinate` e `buffer`). */\n readonly value = input(0, { transform: numberAttribute });\n /** Valor do buffer de 0 a 100 (modo `buffer`). */\n readonly bufferValue = input(0, { transform: numberAttribute });\n\n /** Cor da barra de progresso (qualquer cor CSS). */\n readonly color = input<string>('');\n /** Cor do trilho. */\n readonly trackColor = input<string>('');\n /** Cor do buffer (modo `buffer`). */\n readonly bufferColor = input<string>('');\n /** Altura da barra. */\n readonly height = input<string>('4px');\n /** Raio da borda. Padrão: totalmente arredondada. */\n readonly borderRadius = input<string>('');\n /** Duração do ciclo da animação nos modos indeterminado/query/buffer. */\n readonly animationDuration = input<string>('');\n /** Exibe o percentual ao lado da barra (modos `determinate` e `buffer`). */\n readonly showValue = input<boolean>(false);\n\n readonly ariaLabel = input<string>('');\n readonly ariaLabelledBy = input<string>('');\n readonly dataCy = input<string>('');\n\n protected readonly clampedValue = computed<number>(() => clampPercent(this.value()));\n protected readonly clampedBuffer = computed<number>(() => clampPercent(this.bufferValue()));\n\n protected readonly hasValue = computed<boolean>(() => this.mode() === 'determinate' || this.mode() === 'buffer');\n\n protected readonly ariaValueNow = computed<number | null>(() =>\n this.hasValue() ? Math.round(this.clampedValue()) : null,\n );\n\n protected readonly valueLabel = computed<string>(() => `${Math.round(this.clampedValue())}%`);\n}","<div\n class=\"cao-progress-bar\"\n [style.--cao-progress-bar-color]=\"color() || null\"\n [style.--cao-progress-bar-track-color]=\"trackColor() || null\"\n [style.--cao-progress-bar-buffer-color]=\"bufferColor() || null\"\n [style.--cao-progress-bar-duration]=\"animationDuration() || null\">\n <div\n class=\"cao-progress-bar__track\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [attr.aria-valuenow]=\"ariaValueNow()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n [attr.data-cy]=\"dataCy() || null\"\n [style.height]=\"height()\"\n [style.border-radius]=\"borderRadius() || null\">\n @switch (mode()) {\n @case ('determinate') {\n <div class=\"cao-progress-bar__fill\" [style.width.%]=\"clampedValue()\"></div>\n }\n @case ('buffer') {\n <div class=\"cao-progress-bar__dots\" [style.left.%]=\"clampedBuffer()\"></div>\n <div class=\"cao-progress-bar__buffer\" [style.width.%]=\"clampedBuffer()\"></div>\n <div class=\"cao-progress-bar__fill\" [style.width.%]=\"clampedValue()\"></div>\n }\n @default {\n <div class=\"cao-progress-bar__inner\" [class.cao-progress-bar__inner--query]=\"mode() === 'query'\">\n <div class=\"cao-progress-bar__bar cao-progress-bar__bar--primary\"></div>\n <div class=\"cao-progress-bar__bar cao-progress-bar__bar--secondary\"></div>\n </div>\n }\n }\n </div>\n\n @if (showValue() && hasValue()) {\n <span class=\"cao-progress-bar__value\" aria-hidden=\"true\">{{ valueLabel() }}</span>\n }\n</div>","import { ChangeDetectionStrategy, Component, computed, input, numberAttribute } from '@angular/core';\n\nimport { CaoProgressSpinnerLinecap, CaoProgressSpinnerMode } from './progress-spinner.model';\n\nconst MIN_DIAMETER = 8;\n\nconst clampPercent = (value: number): number => Math.min(100, Math.max(0, Number.isFinite(value) ? value : 0));\n\n@Component({\n selector: 'cao-progress-spinner',\n templateUrl: './progress-spinner.html',\n styleUrl: './progress-spinner.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class CaoProgressSpinnerComponent {\n /** Modo de exibição. Padrão: `'indeterminate'`. */\n readonly mode = input<CaoProgressSpinnerMode>('indeterminate');\n /** Progresso de 0 a 100 (modo `determinate`). */\n readonly value = input(0, { transform: numberAttribute });\n /** Diâmetro em px. */\n readonly diameter = input(48, { transform: numberAttribute });\n /** Espessura do traço em px. `0` = automático (10% do diâmetro). */\n readonly strokeWidth = input(0, { transform: numberAttribute });\n /** Formato da ponta do traço. */\n readonly strokeLinecap = input<CaoProgressSpinnerLinecap>('round');\n\n /** Cor do indicador (qualquer cor CSS). */\n readonly color = input<string>('');\n /** Cor do trilho (círculo de fundo). Padrão: transparente. */\n readonly trackColor = input<string>('');\n /** Duração de uma volta completa no modo indeterminado. */\n readonly animationDuration = input<string>('');\n /** Exibe o percentual no centro (modo `determinate`). */\n readonly showValue = input<boolean>(false);\n /** Cor do percentual. */\n readonly textColor = input<string>('');\n\n readonly ariaLabel = input<string>('');\n readonly ariaLabelledBy = input<string>('');\n readonly dataCy = input<string>('');\n\n protected readonly isDeterminate = computed<boolean>(() => this.mode() === 'determinate');\n\n protected readonly size = computed<number>(() => {\n const diameter = this.diameter();\n return Number.isFinite(diameter) ? Math.max(MIN_DIAMETER, diameter) : 48;\n });\n\n protected readonly stroke = computed<number>(() => {\n const width = this.strokeWidth();\n const raw = width > 0 ? width : this.size() * 0.1;\n return Math.min(Math.max(raw, 1), this.size() / 2);\n });\n\n protected readonly center = computed<number>(() => this.size() / 2);\n protected readonly radius = computed<number>(() => (this.size() - this.stroke()) / 2);\n protected readonly circumference = computed<number>(() => 2 * Math.PI * this.radius());\n\n protected readonly clampedValue = computed<number>(() => clampPercent(this.value()));\n\n protected readonly dashOffset = computed<number | null>(() =>\n this.isDeterminate() ? this.circumference() * (1 - this.clampedValue() / 100) : null,\n );\n\n protected readonly ariaValueNow = computed<number | null>(() =>\n this.isDeterminate() ? Math.round(this.clampedValue()) : null,\n );\n\n protected readonly valueLabel = computed<string>(() => `${Math.round(this.clampedValue())}%`);\n protected readonly fontSize = computed<number>(() => Math.max(8, Math.round(this.size() * 0.24)));\n}","<div\n class=\"cao-progress-spinner\"\n role=\"progressbar\"\n aria-valuemin=\"0\"\n aria-valuemax=\"100\"\n [class.cao-progress-spinner--determinate]=\"isDeterminate()\"\n [class.cao-progress-spinner--indeterminate]=\"!isDeterminate()\"\n [attr.aria-valuenow]=\"ariaValueNow()\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n [attr.data-cy]=\"dataCy() || null\"\n [style.width.px]=\"size()\"\n [style.height.px]=\"size()\"\n [style.--cao-progress-spinner-color]=\"color() || null\"\n [style.--cao-progress-spinner-track-color]=\"trackColor() || null\"\n [style.--cao-progress-spinner-duration]=\"animationDuration() || null\"\n [style.--cao-progress-spinner-text-color]=\"textColor() || null\"\n [style.--cao-progress-spinner-circumference]=\"circumference() + 'px'\">\n <svg\n class=\"cao-progress-spinner__svg\"\n focusable=\"false\"\n aria-hidden=\"true\"\n [attr.width]=\"size()\"\n [attr.height]=\"size()\"\n [attr.viewBox]=\"'0 0 ' + size() + ' ' + size()\">\n <circle\n class=\"cao-progress-spinner__track\"\n fill=\"none\"\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"stroke()\" />\n <circle\n class=\"cao-progress-spinner__indicator\"\n fill=\"none\"\n [attr.cx]=\"center()\"\n [attr.cy]=\"center()\"\n [attr.r]=\"radius()\"\n [attr.stroke-width]=\"stroke()\"\n [attr.stroke-linecap]=\"strokeLinecap()\"\n [attr.stroke-dasharray]=\"circumference()\"\n [attr.stroke-dashoffset]=\"dashOffset()\" />\n </svg>\n\n @if (showValue() && isDeterminate()) {\n <span class=\"cao-progress-spinner__value\" aria-hidden=\"true\" [style.font-size.px]=\"fontSize()\">\n {{ valueLabel() }}\n </span>\n }\n</div>","import { ConnectedOverlayPositionChange, Overlay, OverlayRef, ConnectedPosition } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { CommonModule } from '@angular/common';\nimport {\n ChangeDetectionStrategy,\n Component,\n DestroyRef,\n ElementRef,\n TemplateRef,\n ViewContainerRef,\n booleanAttribute,\n inject,\n input,\n numberAttribute,\n output,\n signal,\n viewChild,\n} from '@angular/core';\n\nimport { Subscription } from 'rxjs';\n\nimport { CaoPopoverAlign, CaoPopoverPosition, CaoPopoverTarget, ICaoPopoverShowOptions } from './popover.model';\n\nexport const CAO_POPOVER_POSITION_PREFIX = 'cao-popover-pos-';\n\nconst OPPOSITE: Record<CaoPopoverPosition, CaoPopoverPosition> = {\n top: 'bottom',\n bottom: 'top',\n left: 'right',\n right: 'left',\n};\n\nconst PERPENDICULAR: Record<CaoPopoverPosition, CaoPopoverPosition[]> = {\n top: ['right', 'left'],\n bottom: ['right', 'left'],\n left: ['bottom', 'top'],\n right: ['bottom', 'top'],\n};\n\nfunction toConnectedPosition(position: CaoPopoverPosition, align: CaoPopoverAlign, offset: number): ConnectedPosition {\n const panelClass = `${CAO_POPOVER_POSITION_PREFIX}${position}`;\n\n if (position === 'top' || position === 'bottom') {\n return {\n originX: align,\n originY: position === 'bottom' ? 'bottom' : 'top',\n overlayX: align,\n overlayY: position === 'bottom' ? 'top' : 'bottom',\n offsetY: position === 'bottom' ? offset : -offset,\n panelClass,\n };\n }\n\n const vertical = align === 'start' ? 'top' : align === 'end' ? 'bottom' : 'center';\n return {\n originX: position === 'right' ? 'end' : 'start',\n originY: vertical,\n overlayX: position === 'right' ? 'start' : 'end',\n overlayY: vertical,\n offsetX: position === 'right' ? offset : -offset,\n panelClass,\n };\n}\n\n/** Posição preferida seguida das alternativas (oposta e perpendiculares) usadas quando não há espaço. */\nexport function buildPopoverPositions(\n position: CaoPopoverPosition,\n align: CaoPopoverAlign,\n offset: number,\n): ConnectedPosition[] {\n const order = [position, OPPOSITE[position], ...PERPENDICULAR[position]];\n return order.map((item) => toConnectedPosition(item, align, offset));\n}\n\nconst FOCUSABLE_SELECTOR =\n 'a[href], button:not([disabled]), input:not([disabled]), select:not([disabled]), textarea:not([disabled]), [tabindex]:not([tabindex=\"-1\"])';\n\nlet nextId = 0;\n\n@Component({\n selector: 'cao-popover',\n templateUrl: './popover.html',\n imports: [CommonModule],\n styleUrl: './popover.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n exportAs: 'caoPopover',\n})\nexport class CaoPopoverComponent {\n private readonly overlay = inject(Overlay);\n private readonly viewContainerRef = inject(ViewContainerRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly panelTemplate = viewChild.required<TemplateRef<unknown>>('panelTemplate');\n\n private overlayRef: OverlayRef | null = null;\n private origin: HTMLElement | null = null;\n private subscriptions = new Subscription();\n private focusMoved = false;\n private readonly openState = signal(false);\n\n protected readonly panelId = `cao-popover-${nextId++}`;\n protected readonly placement = signal<CaoPopoverPosition>('bottom');\n\n /** Lado do elemento de origem em que o popover aparece. Se não houver espaço, o CDK escolhe outro lado. */\n readonly position = input<CaoPopoverPosition>('bottom');\n /** Alinhamento em relação ao elemento de origem. */\n readonly align = input<CaoPopoverAlign>('center');\n /** Distância (px) entre a origem e o popover. */\n readonly offset = input(10, { transform: numberAttribute });\n /** Exibe a seta apontando para a origem. */\n readonly showArrow = input(true, { transform: booleanAttribute });\n /** Fecha ao clicar fora do popover. */\n readonly dismissable = input(true, { transform: booleanAttribute });\n /** Fecha ao pressionar `Esc`. */\n readonly closeOnEscape = input(true, { transform: booleanAttribute });\n /** Exibe o botão de fechar no canto superior direito. */\n readonly showCloseIcon = input(false, { transform: booleanAttribute });\n /** Move o foco para o primeiro elemento focável do popover ao abrir (e devolve à origem ao fechar). */\n readonly focusOnShow = input(true, { transform: booleanAttribute });\n\n /** Largura fixa do popover (ex.: `'320px'`). */\n readonly width = input<string>('');\n /** Largura máxima. */\n readonly maxWidth = input<string>('360px');\n readonly bgColor = input<string>('');\n readonly textColor = input<string>('');\n readonly borderColor = input<string>('');\n readonly borderRadius = input<string>('');\n readonly padding = input<string>('');\n /** Classe(s) CSS adicionais aplicadas ao painel do popover. */\n readonly styleClass = input<string>('');\n /** Classe(s) CSS adicionais aplicadas ao painel do overlay (CDK). */\n readonly panelClass = input<string | string[]>('');\n\n readonly role = input<string>('dialog');\n readonly ariaLabel = input<string>('');\n readonly ariaLabelledBy = input<string>('');\n readonly closeAriaLabel = input<string>('Fechar');\n readonly dataCy = input<string>('');\n\n /** Emitido após o popover ser aberto. */\n readonly shown = output<void>();\n /** Emitido após o popover ser fechado. */\n readonly hidden = output<void>();\n /** Emitido quando o ponteiro entra/sai do painel (usado pelo gatilho `hover`). */\n readonly panelHoverChange = output<boolean>();\n\n /** `true` enquanto o popover está aberto. */\n readonly isOpen = this.openState.asReadonly();\n\n constructor() {\n this.destroyRef.onDestroy(() => this.dispose());\n }\n\n /** Abre o popover se estiver fechado (ou aberto em outra origem); fecha se já estiver aberto na mesma origem. */\n toggle(event?: Event | null, target?: CaoPopoverTarget, options: ICaoPopoverShowOptions = {}): void {\n const origin = this.resolveOrigin(event, target);\n if (!origin) {\n return;\n }\n if (this.openState() && this.origin === origin) {\n this.hide();\n return;\n }\n this.show(event, origin, options);\n }\n\n /** Abre o popover ancorado em `target` (ou em `event.currentTarget`). */\n show(event?: Event | null, target?: CaoPopoverTarget, options: ICaoPopoverShowOptions = {}): void {\n const origin = this.resolveOrigin(event, target);\n if (!origin) {\n return;\n }\n if (this.openState()) {\n if (this.origin === origin) {\n return;\n }\n this.close(false);\n }\n\n this.origin = origin;\n this.placement.set(this.position());\n\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(origin)\n .withPositions(buildPopoverPositions(this.position(), this.align(), this.offset()))\n .withFlexibleDimensions(false)\n .withPush(false)\n .withViewportMargin(8);\n\n const overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n panelClass: this.panelClass(),\n });\n this.overlayRef = overlayRef;\n\n this.subscriptions.add(positionStrategy.positionChanges.subscribe((change) => this.onPositionChange(change)));\n this.subscriptions.add(\n overlayRef.outsidePointerEvents().subscribe((event) => {\n if (this.dismissable() && !this.origin?.contains(event.target as Node)) {\n this.close(false);\n }\n }),\n );\n this.subscriptions.add(\n overlayRef.keydownEvents().subscribe((event) => {\n if (event.key === 'Escape' && this.closeOnEscape()) {\n event.preventDefault();\n this.close(true);\n }\n }),\n );\n\n overlayRef.attach(new TemplatePortal(this.panelTemplate(), this.viewContainerRef));\n this.openState.set(true);\n this.setOriginAria(origin, true);\n\n if (options.focus ?? this.focusOnShow()) {\n this.focusPanel(overlayRef.overlayElement);\n }\n this.shown.emit();\n }\n\n /** Fecha o popover. */\n hide(): void {\n this.close(true);\n }\n\n /** Recalcula a posição (útil se a origem mudou de lugar ou o conteúdo mudou de tamanho). */\n reposition(): void {\n this.overlayRef?.updatePosition();\n }\n\n /** Indica se o nó está dentro do painel do popover aberto. */\n containsNode(node: Node | null | undefined): boolean {\n return !!node && !!this.overlayRef?.overlayElement.contains(node);\n }\n\n protected onCloseClick(): void {\n this.close(true);\n }\n\n private close(restoreFocus: boolean): void {\n const overlayRef = this.overlayRef;\n if (!overlayRef) {\n return;\n }\n const origin = this.origin;\n const shouldRestoreFocus = restoreFocus && this.focusMoved;\n\n this.overlayRef = null;\n this.origin = null;\n this.focusMoved = false;\n this.subscriptions.unsubscribe();\n this.subscriptions = new Subscription();\n overlayRef.dispose();\n\n this.openState.set(false);\n this.setOriginAria(origin, false);\n if (shouldRestoreFocus) {\n origin?.focus({ preventScroll: true });\n }\n this.hidden.emit();\n }\n\n private dispose(): void {\n this.subscriptions.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.origin = null;\n }\n\n private onPositionChange(change: ConnectedOverlayPositionChange): void {\n const panelClass = change.connectionPair.panelClass;\n const value = Array.isArray(panelClass) ? panelClass[0] : panelClass;\n if (typeof value === 'string' && value.startsWith(CAO_POPOVER_POSITION_PREFIX)) {\n this.placement.set(value.slice(CAO_POPOVER_POSITION_PREFIX.length) as CaoPopoverPosition);\n }\n }\n\n private resolveOrigin(event?: Event | null, target?: CaoPopoverTarget): HTMLElement | null {\n if (target) {\n return target instanceof ElementRef ? target.nativeElement : target;\n }\n return (event?.currentTarget ?? event?.target ?? null) as HTMLElement | null;\n }\n\n private focusPanel(overlayElement: HTMLElement): void {\n const panel = overlayElement.querySelector<HTMLElement>('.cao-popover');\n const target = panel?.querySelector<HTMLElement>(`.cao-popover__content ${FOCUSABLE_SELECTOR}`) ?? panel;\n if (target) {\n target.focus({ preventScroll: true });\n this.focusMoved = true;\n }\n }\n\n private setOriginAria(origin: HTMLElement | null, open: boolean): void {\n if (!origin) {\n return;\n }\n origin.setAttribute('aria-expanded', String(open));\n if (open) {\n if (this.role() === 'dialog') {\n origin.setAttribute('aria-haspopup', 'dialog');\n }\n origin.setAttribute('aria-controls', this.panelId);\n } else {\n origin.removeAttribute('aria-controls');\n }\n }\n}","<ng-template #panelTemplate>\n <div\n [ngClass]=\"'cao-popover'\"\n tabindex=\"-1\"\n [id]=\"panelId\"\n [class]=\"styleClass()\"\n [class.cao-popover--top]=\"placement() === 'top'\"\n [class.cao-popover--bottom]=\"placement() === 'bottom'\"\n [class.cao-popover--left]=\"placement() === 'left'\"\n [class.cao-popover--right]=\"placement() === 'right'\"\n [class.cao-popover--align-start]=\"align() === 'start'\"\n [class.cao-popover--align-center]=\"align() === 'center'\"\n [class.cao-popover--align-end]=\"align() === 'end'\"\n [class.cao-popover--no-arrow]=\"!showArrow()\"\n [attr.role]=\"role() || null\"\n [attr.aria-label]=\"ariaLabel() || null\"\n [attr.aria-labelledby]=\"ariaLabelledBy() || null\"\n [attr.data-cy]=\"dataCy() || null\"\n [style.width]=\"width() || null\"\n [style.max-width]=\"maxWidth() || null\"\n [style.--cao-popover-bg]=\"bgColor() || null\"\n [style.--cao-popover-text]=\"textColor() || null\"\n [style.--cao-popover-border-color]=\"borderColor() || null\"\n [style.--cao-popover-radius]=\"borderRadius() || null\"\n [style.--cao-popover-padding]=\"padding() || null\"\n (mouseenter)=\"panelHoverChange.emit(true)\"\n (mouseleave)=\"panelHoverChange.emit(false)\">\n @if (showArrow()) {\n <span class=\"cao-popover__arrow\" aria-hidden=\"true\"></span>\n }\n\n <div class=\"cao-popover__content\" [class.cao-popover__content--with-close]=\"showCloseIcon()\">\n <ng-content />\n </div>\n\n @if (showCloseIcon()) {\n <button type=\"button\" class=\"cao-popover__close\" [attr.aria-label]=\"closeAriaLabel()\" (click)=\"onCloseClick()\">\n <svg viewBox=\"0 0 24 24\" width=\"14\" height=\"14\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" aria-hidden=\"true\" focusable=\"false\">\n <path d=\"M6 6l12 12M18 6L6 18\" />\n </svg>\n </button>\n }\n </div>\n</ng-template>","import { EventEmitter, Injectable, Output } from \"@angular/core\";\n\nimport { Subject, Observable } from \"rxjs\";\n\nimport { IModal, ModalType } from \"./base-modal.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseModalService {\n constructor() { }\n @Output() readonly toggleModalEvent = new EventEmitter<IModal>();\n @Output() readonly closeAllModalsEvent = new EventEmitter<boolean>();\n @Output() readonly openModal = new EventEmitter<IModal>();\n\n private modalResultSubject = new Subject<any>();\n\n emitModalResult(result: any) {\n this.modalResultSubject.next(result);\n }\n\n onModalResult(): Observable<any> {\n return this.modalResultSubject.asObservable();\n }\n\n toggleModal(modalInfo: IModal) {\n this.toggleModalEvent.emit(modalInfo);\n }\n\n closeAllModals() {\n this.closeAllModalsEvent.emit(true);\n }\n\n showModal(_selectedModal: ModalType, data?: any) {\n this.closeAllModals();\n const modalInfo: IModal = {\n type: _selectedModal,\n data: data,\n status: true,\n };\n this.openModal.emit(modalInfo);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, inject, Input } from '@angular/core';\n\nimport { ModalTypeClass, ModalTypeSize } from './base-modal.interface';\nimport { BaseModalService } from './base-modal.service';\n\n@Component({\n selector: 'cao-modal',\n imports: [CommonModule],\n templateUrl: './base-modal.html',\n styleUrl: './base-modal.css',\n})\nexport class BaseModal<T> {\n @Input() showModal = false;\n @Input() title = \"\";\n @Input() data!: T;\n @Input() modalTypeClass: ModalTypeClass = \"default\";\n @Input() modalClass = \"modal-default\";\n @Input() modalSize: ModalTypeSize = \"w-70\";\n @Input() closeOnOverlayClick = false;\n\n protected modalService = inject(BaseModalService);\n\n closeModals() { }\n\n closeModalsWithoutDialog() {\n this.modalService.closeAllModals();\n }\n\n onOverlayClick() {\n if (this.closeOnOverlayClick) {\n this.closeModals();\n }\n }\n}\n","<div aria-hidden=\"true\" class=\"modal\" tabIndex=\"0\" [class.show]=\"showModal\" (keydown)=\"onOverlayClick()\"\n (click)=\"onOverlayClick()\">\n <div aria-hidden=\"true\" class=\"modal-dialog\" tabIndex=\"1\" [ngClass]=\"[modalSize, modalClass]\"\n (keydown)=\"$event.stopPropagation()\" (click)=\"$event.stopPropagation()\">\n <ng-content />\n </div>\n</div>","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { Component, Input } from '@angular/core';\n\nimport { DialogType, IDialogConfig } from './base-dialog.interface';\n\n@Component({\n selector: 'cao-dialog',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-dialog.html',\n styleUrl: './base-dialog.css',\n})\nexport class BaseDialog {\n @Input() config!: IDialogConfig;\n\n closeDialog: () => void = this.noop;\n\n protected iconPaths: Record<DialogType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n private noop(): void {\n return\n }\n\n getIconPath(): string {\n return this.iconPaths[this.config.type];\n }\n\n handleConfirm(): void {\n this.config.onConfirm?.();\n this.closeDialog();\n }\n\n handleCancel(): void {\n this.config.onCancel?.();\n this.closeDialog();\n }\n}","\n<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [fill]=\"true\" [ngSrc]=\"config.logoIcon ?? ''\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\" [ngClass]=\"config.type\">\n <div class=\"title\">{{ config.title }}</div>\n <div class=\"message\">{{ config.message }}</div>\n <div class=\"button-container\">\n @if (config.cancelButtonText) {\n <button\n type=\"button\"\n class=\"cancel-button\"\n [attr.data-cy]=\"config.cancelButtonText\"\n (keydown)=\"handleCancel()\"\n (click)=\"handleCancel()\">\n {{ config.cancelButtonText }}\n </button>\n } @if (config.confirmButtonText) {\n <button\n type=\"button\"\n class=\"confirm-button\"\n [ngClass]=\"config.type\"\n [attr.data-cy]=\"config.confirmButtonText\"\n (click)=\"handleConfirm()\"\n (keydown)=\"handleConfirm()\"\n >\n {{ config.confirmButtonText }}\n </button>\n }\n </div>\n </div>\n <div class=\"icon-container\">\n <img alt=\"Dialog Icon\" class=\"alert-icon\" [fill]=\"true\" [ngSrc]=\"getIconPath()\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay, OverlayRef } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseDialog } from \"./base-dialog\";\nimport { IDialogConfig } from \"./base-dialog.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseDialogService {\n constructor(private overlay: Overlay) { }\n\n open(config: IDialogConfig): OverlayRef {\n const overlayRef = this.overlay.create({\n hasBackdrop: true,\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n backdropClass: \"dialog-backdrop\",\n });\n\n const dialogPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(dialogPortal);\n\n componentRef.instance.config = config;\n\n componentRef.instance.closeDialog = () => {\n overlayRef.dispose();\n };\n\n return overlayRef;\n }\n\n generateComponentPortal(): typeof BaseDialog{\n return BaseDialog;\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTableService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { ITableConfig, IColumnConfig } from \"./base-table.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseTableService {\n private tableConfigSubject = new BehaviorSubject<ITableConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnConfig[]>([]);\n\n tableConfig$: Observable<ITableConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnConfig[], customConfig?: Partial<ITableConfig>): void {\n const tableConfig: ITableConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnConfig[\"type\"] {\n if (value === null || value === undefined) { return \"STRING\"; }\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule, NgOptimizedImage } from \"@angular/common\";\nimport {\n Component,\n OnInit,\n AfterViewInit,\n OnDestroy,\n Input,\n ViewChild,\n Output,\n EventEmitter,\n inject\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\n\nimport { BaseFilterTableService } from \"./base-filter-table.service\";\nimport { IColumnConfig, ITableConfig } from \"./base-table.interface\";\nimport { BaseTableService } from \"./base-table.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\n\nexport function getPtBrPaginatorIntlBaseTable(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n\n@Component({\n selector: \"cao-table\",\n templateUrl: \"./base-table.html\",\n styleUrls: [\"./base-table.css\"],\n imports: [CommonModule, MaterialModule, NgOptimizedImage],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBaseTable() }],\n})\nexport class BaseTable implements OnInit, AfterViewInit, OnDestroy {\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n @Input() isPaginatedByServer = false;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITableConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n getAllColumns(): string[] {\n return [\"select\", ...this.displayedColumns];\n }\n\n protected tableService = inject(BaseTableService)\n protected liveAnnouncer = inject(LiveAnnouncer)\n protected filterTableService = inject(BaseFilterTableService)\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n }\n\n ngAfterViewInit(): void {\n this.dataSource.sort = this.sort;\n\n // Connect paginator if available\n setTimeout(() => {\n if (this.paginator) {\n this.dataSource.paginator = this.paginator;\n this.paginator.pageIndex = this.currentPage - 1;\n this.paginator.pageSize = this.pageSize;\n this.paginator.showFirstLastButtons = this.showFirstLastButtons;\n }\n });\n this.selection.changed.subscribe(() => {\n this.selectionChanged.emit(this.selection.selected);\n });\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n toggleColumnVisibility(columnKey: string): void {\n this.tableService.toggleColumnVisibility(columnKey);\n }\n\n isColumnVisible(column: string): boolean {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return true;\n }\n return this.tableConfig.columnData[column].visible !== false;\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnType(column: string): IColumnConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n\n isAllSelected(): boolean {\n if (\n !this.paginator ||\n !this.dataSource.filteredData ||\n this.dataSource.filteredData.length === 0\n ) {\n return false;\n }\n\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n if (currentPageData.length === 0) {\n return false;\n }\n\n return currentPageData.every((row) => this.selection.isSelected(row));\n }\n\n toggleAllRows(): void {\n if (!this.paginator || !this.dataSource.filteredData) {\n return;\n }\n\n if (this.isAllSelected()) {\n this.selection.clear();\n } else {\n const startIndex = this.paginator.pageIndex * this.paginator.pageSize;\n const endIndex = Math.min(\n startIndex + this.paginator.pageSize,\n this.dataSource.filteredData.length\n );\n const currentPageData = this.dataSource.filteredData.slice(startIndex, endIndex);\n\n currentPageData.forEach((row) => this.selection.select(row));\n }\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n trackByFn(index: number, item: any): any {\n return item;\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n /**\n * Handle pagination events from Mat Paginator\n */\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n /**\n * Navigate to first page programmatically\n */\n goToFirstPage(): void {\n if (this.currentPage !== 1) {\n this.onPageChanged(1);\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n }\n }\n\n /**\n * Navigate to last page programmatically\n */\n goToLastPage(): void {\n const lastPage = Math.max(1, Math.ceil(this.totalItems / this.pageSize));\n if (this.currentPage !== lastPage) {\n this.onPageChanged(lastPage);\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n /**\n * Update total items when data changes\n */\n updateTotalItems(): void {\n if (this.isPaginatedByServer) {\n return;\n }\n\n this.totalItems = this.dataSource.data.length;\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <div class=\"table-controls\">\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </div>\n\n <table\n mat-table\n matSort\n class=\"mat-elevation-z8\"\n [dataSource]=\"dataSource\"\n (matSortChange)=\"announceSortChange($event)\">\n <ng-container matColumnDef=\"select\">\n <th *matHeaderCellDef mat-header-cell>\n <mat-checkbox\n data-cy=\"checkbox-select-all\"\n [checked]=\"selection.hasValue() && isAllSelected()\"\n [indeterminate]=\"selection.hasValue() && !isAllSelected()\"\n (change)=\"$event ? toggleAllRows() : null\" />\n </th>\n <td *matCellDef=\"let row\" mat-cell>\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-select-row-' + row.id\"\n [checked]=\"selection.isSelected(row)\"\n (click)=\"$event.stopPropagation()\"\n (change)=\"$event ? selection.toggle(row) : null\" />\n </td>\n </ng-container>\n\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell [mat-sort-header]=\"column\">\n <span>{{ getColumnHeader(column) }}</span>\n <img\n alt=\"icone\"\n [ngSrc]=\"'.src/assets/svg/arrow-left-double.svg'\"\n [fill]=\"true\"\n [matMenuTriggerFor]=\"menuColunas\" />\n <mat-menu #menuColunas=\"matMenu\">\n @for (column of allColumns; track column) {\n <button\n mat-menu-item\n [type]=\"'button'\" (click)=\"toggleColumnVisibility(column)\">\n <mat-checkbox\n [attr.data-cy]=\"'checkbox-toggle-column-' + column\"\n [checked]=\"isColumnVisible(column)\">\n {{ getColumnHeader(column) }}\n </mat-checkbox>\n </button>\n }\n </mat-menu>\n </th>\n <td *matCellDef=\"let element\" mat-cell>\n @switch (getColumnType(column)) { @case ('STRING') {\n <span>{{ element[getColumnElement(column)] }}</span>\n } @case ('BOOLEAN') {\n <mat-checkbox\n disabled\n [attr.data-cy]=\"'checkbox-value-' + column + '-' + element.id\"\n [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button\n mat-icon-button\n [type]=\"'button'\" [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } @default {\n <span>{{ element[getColumnElement(column)] }}</span>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td *matFooterCellDef mat-footer-cell [attr.colspan]=\"displayedColumns.length + 1\">\n Total de Registros: {{ dataSource.data.length }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"getAllColumns()\" mat-header-row></tr>\n <tr\n *matRowDef=\"let row; columns: getAllColumns();\"\n mat-row\n (click)=\"selection.toggle(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row></tr>\n </table>\n }\n</div>\n\n<mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n\n@if (!tableConfig || tableConfig.data.length === 0) {\n<div class=\"no-data-container\">\n <h2 class=\"no-data-title\">{{ tableConfig?.result?.noData || 'Não há dados disponíveis' }}</h2>\n <p class=\"no-data-message\"\n >{{ tableConfig?.result?.defaultMessage || 'Adicione alguns dados' }}</p\n >\n</div>\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { Subject } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseFilterTablePaginatedService {\n private filterSubject = new Subject<string>();\n\n filter$ = this.filterSubject.asObservable();\n\n updateFilter(filterValue: string) {\n this.filterSubject.next(filterValue);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable } from \"rxjs\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BasePaginationService {\n private pageSubject = new BehaviorSubject<number>(1);\n private pageSizeSubject = new BehaviorSubject<number>(10);\n private totalItemsSubject = new BehaviorSubject<number>(0);\n\n public currentPage$: Observable<number> = this.pageSubject.asObservable();\n public pageSize$: Observable<number> = this.pageSizeSubject.asObservable();\n public totalItems$: Observable<number> = this.totalItemsSubject.asObservable();\n\n constructor() {}\n\n /**\n * Sets the current page number\n * @param page The page number to set\n */\n setPage(page: number): void {\n if (page !== this.pageSubject.value) {\n this.pageSubject.next(page);\n }\n }\n\n /**\n * Sets the page size\n * @param size The page size to set\n */\n setPageSize(size: number): void {\n if (size !== this.pageSizeSubject.value) {\n this.pageSizeSubject.next(size);\n }\n }\n\n /**\n * Sets the total number of items\n * @param total The total number of items\n */\n setTotalItems(total: number): void {\n if (total !== this.totalItemsSubject.value) {\n this.totalItemsSubject.next(total);\n }\n }\n\n /**\n * Gets the current page\n */\n getCurrentPage(): number {\n return this.pageSubject.value;\n }\n\n /**\n * Gets the current page size\n */\n getPageSize(): number {\n return this.pageSizeSubject.value;\n }\n\n /**\n * Gets the total number of items\n */\n getTotalItems(): number {\n return this.totalItemsSubject.value;\n }\n\n /**\n * Resets pagination to default values\n */\n reset(): void {\n this.pageSubject.next(1);\n this.pageSizeSubject.next(10);\n this.totalItemsSubject.next(0);\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { BehaviorSubject, Observable, map } from \"rxjs\";\n\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\n\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class TablePaginatedService {\n private tableConfigSubject = new BehaviorSubject<ITablePaginatedConfig | null>(null);\n private dataSubject = new BehaviorSubject<any[]>([]);\n private columnsSubject = new BehaviorSubject<IColumnPaginatedConfig[]>([]);\n\n tableConfig$: Observable<ITablePaginatedConfig | null> = this.tableConfigSubject.asObservable();\n columns$: Observable<IColumnPaginatedConfig[]> = this.columnsSubject.asObservable();\n data$: Observable<any[]> = this.dataSubject.asObservable();\n\n visibleColumns$: Observable<string[]> = this.columns$.pipe(\n map((columns) =>\n columns.filter((col) => col.visible).map((col) => col.key || col.element || \"\")\n )\n );\n\n createTable(data: any[], columns?: IColumnPaginatedConfig[], customConfig?: Partial<ITablePaginatedConfig>): void {\n const tableConfig: ITablePaginatedConfig = {\n columns: columns ? columns.map((col) => col.key || col.element || \"\") : [],\n data,\n columnData: {},\n result: {\n noData: \"Não há dados para o filtro selecionado.\",\n defaultMessage: \"Nenhum resultado encontrado.\",\n },\n ...customConfig,\n };\n\n if (data.length > 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || this.inferColumnType(data[0][col.key || col.element || \"\"]),\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n } else if (data.length === 0 && columns) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = {\n ...col,\n type: col.type || \"STRING\",\n visible: col.visible !== undefined ? col.visible : true,\n };\n });\n tableConfig.columnData = columnData;\n }\n\n this.tableConfigSubject.next(tableConfig);\n this.columnsSubject.next(columns || []);\n this.dataSubject.next(data);\n }\n\n private inferColumnType(value: any): IColumnPaginatedConfig[\"type\"] {\n if (value === null || value === undefined) {return \"STRING\";}\n switch (typeof value) {\n case \"boolean\":\n return \"BOOLEAN\";\n case \"number\":\n return \"NUMBER\";\n case \"string\":\n return this.isValidDate(value) ? \"DATE\" : \"STRING\";\n default:\n return \"STRING\";\n }\n }\n\n private isValidDate(value: string): boolean {\n return !isNaN(Date.parse(value));\n }\n\n toggleColumnVisibility(columnKey: string): void {\n const currentColumns = this.columnsSubject.value;\n const updatedColumns = currentColumns.map((col) =>\n col.key === columnKey || col.element === columnKey ? { ...col, visible: !col.visible } : col\n );\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const updatedColumnData = { ...currentConfig.columnData };\n const columnToUpdate = Object.keys(updatedColumnData).find((key) => key === columnKey);\n\n if (columnToUpdate) {\n updatedColumnData[columnToUpdate].visible = !updatedColumnData[columnToUpdate].visible;\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columnData: updatedColumnData,\n });\n }\n }\n\n this.columnsSubject.next(updatedColumns);\n }\n\n getVisibleColumns(): IColumnPaginatedConfig[] {\n return this.columnsSubject.value.filter((col) => col.visible);\n }\n\n setColumns(columns: IColumnPaginatedConfig[]): void {\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n const columnData: Record<string, IColumnPaginatedConfig> = {};\n columns.forEach((col) => {\n columnData[col.key || col.element || \"\"] = col;\n });\n\n this.tableConfigSubject.next({\n ...currentConfig,\n columns: columns.map((col) => col.key || col.element || \"\"),\n columnData,\n });\n }\n this.columnsSubject.next(columns);\n }\n\n setData(data: any[]): void {\n this.dataSubject.next(data);\n\n const currentConfig = this.tableConfigSubject.value;\n if (currentConfig) {\n this.tableConfigSubject.next({\n ...currentConfig,\n data,\n });\n }\n }\n\n updateTableData(data: any[]): void {\n this.setData(data);\n }\n}","import { LiveAnnouncer } from \"@angular/cdk/a11y\";\nimport { SelectionModel } from \"@angular/cdk/collections\";\nimport { CommonModule } from \"@angular/common\";\nimport {\n Component,\n ViewEncapsulation,\n OnInit,\n OnDestroy,\n Input,\n Output,\n EventEmitter,\n inject,\n ViewChild,\n} from \"@angular/core\";\nimport { MatPaginator, MatPaginatorIntl, PageEvent } from \"@angular/material/paginator\";\nimport { MatSort, Sort } from \"@angular/material/sort\";\nimport { MatTableDataSource } from \"@angular/material/table\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { BaseFilterTablePaginatedService } from \"./base-filter-table-paginated.service\";\nimport { BasePaginationService } from \"./base-pagination.service\";\nimport { IColumnPaginatedConfig, ITablePaginatedConfig } from \"./base-table-paginated.interface\";\nimport { TablePaginatedService } from \"./base-table-paginated.service\";\nimport { MaterialModule } from \"../../../material.module\";\n\nexport function getPtBrPaginatorIntlBasePaginated(): MatPaginatorIntl {\n const paginatorIntl = new MatPaginatorIntl();\n paginatorIntl.itemsPerPageLabel = \"Itens por página:\";\n paginatorIntl.nextPageLabel = \"Próxima página\";\n paginatorIntl.previousPageLabel = \"Página anterior\";\n paginatorIntl.firstPageLabel = \"Primeira página\";\n paginatorIntl.lastPageLabel = \"Última página\";\n paginatorIntl.getRangeLabel = (page: number, pageSize: number, length: number) => {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n const startIndex = page * pageSize;\n const endIndex = Math.min(startIndex + pageSize, length);\n return `${startIndex + 1} – ${endIndex} de ${length}`;\n };\n return paginatorIntl;\n}\n\n@Component({\n selector: \"cao-table-paginated\",\n templateUrl: \"./base-table-paginated.html\",\n styleUrl: \"./base-table-paginated.css\",\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, MaterialModule],\n providers: [{ provide: MatPaginatorIntl, useValue: getPtBrPaginatorIntlBasePaginated() }],\n})\nexport class BaseTablePaginated implements OnInit, OnDestroy {\n private paginationSubscriptions: Subscription[] = [];\n @Input() getColumnCssClass?: (columnKey: string, value: any) => string | null;\n @Input() customClass = \"\";\n @Input() pageSizeOptions: number[] = [5, 10, 20, 50];\n @Input() showFirstLastButtons = true;\n\n @Output() readonly pageChanged = new EventEmitter<number>();\n @Output() readonly pageSizeChanged = new EventEmitter<number>();\n @Output() readonly firstPageClicked = new EventEmitter<void>();\n @Output() readonly lastPageClicked = new EventEmitter<void>();\n @Output() readonly selectionChanged = new EventEmitter<any[]>();\n @Output() readonly pageEvent = new EventEmitter<PageEvent>();\n @Output() readonly rowClicked = new EventEmitter<any>();\n\n\n dataSource = new MatTableDataSource<any>([]);\n selection = new SelectionModel<any>(true, []);\n allColumns: string[] = [];\n displayedColumns: string[] = [];\n filterValue = \"\";\n private configSubscription: Subscription | null = null;\n private visibleColumnsSubscription: Subscription | null = null;\n private dataSubscription: Subscription | null = null;\n private filterSubscription: Subscription | null = null;\n tableConfig: ITablePaginatedConfig | null = null;\n\n @ViewChild(MatSort) sort!: MatSort;\n @ViewChild(MatPaginator) paginator!: MatPaginator;\n\n totalItems = 0;\n pageSize = 10;\n currentPage = 1;\n private previousPage = 1;\n\n\n protected paginationService = inject(BasePaginationService);\n protected tableService = inject(TablePaginatedService);\n protected liveAnnouncer = inject(LiveAnnouncer);\n protected filterTableService = inject(BaseFilterTablePaginatedService);\n\n\n constructor(\n ) {\n this.initializeSortingAccessor();\n this.initializeFilterPredicate();\n }\n\n onPageChanged(page: number): void {\n this.currentPage = page;\n this.pageChanged.emit(page);\n\n if (this.paginator && this.paginator.pageIndex !== page - 1) {\n this.paginator.pageIndex = page - 1;\n }\n }\n\n ngOnInit(): void {\n this.configSubscription = this.tableService.tableConfig$.subscribe((config) => {\n if (config) {\n this.tableConfig = config;\n this.allColumns = config.columns;\n }\n });\n this.visibleColumnsSubscription = this.tableService.visibleColumns$.subscribe(\n (visibleColumns) => {\n this.displayedColumns = visibleColumns.filter((col) => col !== \"select\");\n }\n );\n this.dataSubscription = this.tableService.data$.subscribe((data) => {\n this.dataSource.data = data;\n this.updateTotalItems();\n });\n this.filterSubscription = this.filterTableService.filter$.subscribe((filterValue) => {\n this.filterValue = filterValue;\n this.applyFilter();\n });\n\n this.paginationSubscriptions.push(\n this.paginationService.currentPage$.subscribe((page) => {\n if (this.currentPage !== page) {\n this.onPageChanged(page);\n }\n }),\n\n this.paginationService.pageSize$.subscribe((size) => {\n if (this.pageSize !== size) {\n this.onPageSizeChanged(size);\n }\n })\n );\n }\n\n ngOnDestroy(): void {\n this.configSubscription?.unsubscribe();\n this.visibleColumnsSubscription?.unsubscribe();\n this.dataSubscription?.unsubscribe();\n this.filterSubscription?.unsubscribe();\n this.paginationSubscriptions.forEach((sub) => sub.unsubscribe());\n }\n\n updateTotalItems(newTotalItens?: number): void {\n this.totalItems = newTotalItens ?? this.totalItems;\n this.paginationService.setTotalItems(this.totalItems);\n\n const lastPage = this.pageSize > 0 ? Math.ceil(this.totalItems / this.pageSize) : 1;\n const lastValidPage = lastPage > 0 ? lastPage : 1;\n\n if (this.currentPage > lastValidPage) {\n this.paginationService.setPage(1);\n }\n }\n\n onPageSizeChanged(pageSize: number): void {\n this.pageSize = pageSize;\n this.pageSizeChanged.emit(pageSize);\n\n if (this.paginator && this.paginator.pageSize !== pageSize) {\n this.paginator.pageSize = pageSize;\n }\n }\n\n getColumnHeader(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].header || column;\n }\n\n getColumnElement(column: string): string {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return column;\n }\n return this.tableConfig.columnData[column].element || column;\n }\n\n getColumnType(column: string): IColumnPaginatedConfig[\"type\"] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return \"STRING\";\n }\n return this.tableConfig.columnData[column].type || \"STRING\";\n }\n\n announceSortChange(sortState: Sort): void {\n if (sortState.direction) {\n this.liveAnnouncer.announce(\n `Ordenado ${sortState.direction === \"asc\" ? \"ascendente\" : \"descendente\"}`\n );\n } else {\n this.liveAnnouncer.announce(\"Ordenação removida\");\n }\n }\n\n handlePageChange(event: PageEvent): void {\n this.pageSize = event.pageSize;\n this.paginationService.setPageSize(event.pageSize);\n this.pageChanged.emit(event.pageIndex);\n }\n\n applyFilter(): void {\n const normalizedFilter = this.filterValue.trim().toLowerCase();\n this.dataSource.filter = normalizedFilter;\n }\n\n initializeSortingAccessor(): void {\n this.dataSource.sortingDataAccessor = (item, property) => {\n const value = item[property];\n if (typeof value === \"string\") {\n return value.toLowerCase();\n } else if (typeof value === \"number\") {\n return value;\n } else if (typeof value === \"boolean\") {\n return value ? 1 : 0;\n } else if (value instanceof Date) {\n return value.valueOf();\n } else if (value === null) {\n return \"\";\n } else if (value === undefined) {\n return undefined;\n } else if (typeof value === \"object\") {\n return value.toString();\n }\n return value;\n };\n }\n\n initializeFilterPredicate(): void {\n this.dataSource.filterPredicate = (data: any, filter: string) => {\n const searchTerms = filter.trim().toLowerCase();\n if (!searchTerms) {\n return true;\n }\n const dataStr = Object.keys(data).reduce((currentTerm: string, key: string) => {\n const value = data[key];\n return (\n currentTerm +\n (value !== null && value !== undefined ? value.toString().toLowerCase() : \"\")\n );\n }, \"\");\n return dataStr.indexOf(searchTerms) !== -1;\n };\n }\n\n onRowClick(row: any): void {\n this.rowClicked.emit(row);\n }\n\n onPageEvent(event: PageEvent): void {\n const newPage = event.pageIndex + 1;\n const isFirstPage = newPage === 1 && this.previousPage !== 1;\n const isLastPage =\n newPage === Math.ceil(this.totalItems / event.pageSize) && newPage !== this.previousPage;\n // Handle page size changes\n if (event.pageSize !== this.pageSize) {\n this.onPageSizeChanged(event.pageSize);\n }\n\n // Handle page changes\n if (newPage !== this.currentPage) {\n this.previousPage = this.currentPage; // Store previous page for first/last detection\n this.onPageChanged(newPage);\n\n // Emit specific events for first/last page navigation\n if (isFirstPage) {\n this.firstPageClicked.emit();\n this.liveAnnouncer.announce(\"Primeira página\");\n } else if (isLastPage) {\n this.lastPageClicked.emit();\n this.liveAnnouncer.announce(\"Última página\");\n }\n }\n\n this.pageEvent.emit(event)\n }\n\n getColumnButtons(column: string): any[] {\n if (!this.tableConfig || !this.tableConfig.columnData || !this.tableConfig.columnData[column]) {\n return [];\n }\n return this.tableConfig.columnData[column].buttons || [];\n }\n}\n","<div class=\"table-container\" [ngClass]=\"customClass\">\n @if (tableConfig) {\n <table mat-table matSort [dataSource]=\"dataSource\" (matSortChange)=\"announceSortChange($event)\">\n @for (column of displayedColumns; track column) {\n <ng-container [matColumnDef]=\"column\">\n <th *matHeaderCellDef mat-header-cell mat-sort-header class=\"table-header\">\n {{ getColumnHeader(column) }}\n </th>\n <td *matCellDef=\"let element\" mat-cell class=\"table-cell\">\n @switch (getColumnType(column)) { @case ('STRING') { @if (getColumnCssClass &&\n getColumnCssClass(column, element[getColumnElement(column)])) {\n <span [class]=\"getColumnCssClass(column, element[getColumnElement(column)])\">\n {{ element[getColumnElement(column)] }}\n </span>\n } @else {\n <span>{{ element[getColumnElement(column)] }}</span>\n } } @case ('BOOLEAN') {\n <mat-checkbox disabled [checked]=\"element[getColumnElement(column)]\" />\n } @case ('DATE') {\n <span>{{ element[getColumnElement(column)] | date:'mediumDate' }}</span>\n } @case ('NUMBER') {\n <span>{{ element[getColumnElement(column)] | number:'1.2-2' }}</span>\n } @case ('SINGLE_BUTTON') {\n <div>\n @for (btn of getColumnButtons(column); track btn) {\n <button type=\"button\" mat-icon-button [matTooltip]=\"btn.tooltip\" (click)=\"btn.onClick(element)\">\n <mat-icon>{{ btn.icon }}</mat-icon>\n </button>\n }\n </div>\n } }\n </td>\n </ng-container>\n }\n\n <ng-container matColumnDef=\"footer\">\n <td\n *matFooterCellDef\n mat-footer-cell\n class=\"table-cell\"\n [attr.colspan]=\"displayedColumns.length\">\n Total de Registros: {{ totalItems }}\n </td>\n </ng-container>\n\n <tr *matHeaderRowDef=\"displayedColumns\" mat-header-row></tr>\n <tr *matRowDef=\"let row; columns: displayedColumns;\" mat-row (click)=\"onRowClick(row)\"></tr>\n <tr *matFooterRowDef=\"['footer']\" mat-footer-row class=\"mat-row-footer\"></tr>\n </table>\n @if(totalItems > 0){\n\n <mat-paginator\n #paginator\n aria-label=\"Select page\"\n [length]=\"totalItems\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n [pageIndex]=\"currentPage - 1\"\n [hidePageSize]=\"false\"\n [showFirstLastButtons]=\"showFirstLastButtons\"\n (page)=\"onPageEvent($event)\" />\n } @else {\n <div class=\"no-data-container\">\n <h2>{{ tableConfig?.result?.noData ?? 'Não há dados disponíveis' }}</h2>\n <p>{{ tableConfig?.result?.defaultMessage ?? 'Adicione alguns dados' }}</p>\n </div>\n } }\n</div>\n","import { CommonModule, NgOptimizedImage } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\n\nimport { AlertType } from './base-alert.interface';\n\n@Component({\n selector: 'cao-alert',\n imports: [CommonModule, NgOptimizedImage],\n templateUrl: './base-alert.html',\n styleUrl: './base-alert.css',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BaseAlert implements OnInit {\n data!: {\n type: AlertType;\n title: string;\n message: string;\n alertIcon?: string\n };\n\n iconPath!: string;\n titleClass!: string;\n\n private iconPaths: Record<AlertType, string> = {\n success: \"https://placehold.co/600x400\",\n error: \"https://placehold.co/600x400\",\n info: \"https://placehold.co/600x400\",\n warning: \"https://placehold.co/600x400\",\n };\n\n ngOnInit(): void {\n this.iconPath = this.iconPaths[this.data.type];\n this.titleClass = `title-${this.data.type}`;\n }\n}\n","<div class=\"dialog-container\">\n <div class=\"dialog-content\">\n <img alt=\"Logo\" class=\"logo\" [ngSrc]=\"data.alertIcon ?? ''\" [fill]=\"true\" />\n <div class=\"alert-wrapper\">\n <div class=\"text-content\">\n @if (data.title) {\n <div class=\"title\" [ngClass]=\"titleClass\">{{ data.title }}</div>\n } @if (data.title && data.message) {\n <div class=\"message-spacer\"></div>\n } @if (data.message) {\n <div class=\"message\">{{ data.message }}</div>\n }\n </div>\n <div class=\"icon-container\">\n <img alt=\"Alert Icon\" class=\"alert-icon\" [ngSrc]=\"iconPath\" [fill]=\"true\" />\n </div>\n </div>\n </div>\n</div>\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal } from \"@angular/cdk/portal\";\nimport { Injectable } from \"@angular/core\";\n\nimport { BaseAlert } from \"./base-alert\";\nimport { IAlertConfig } from \"./base-alert.interface\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class BaseAlertService {\n constructor(private overlay: Overlay) { }\n protected defaultTime = 3000\n\n show(config: IAlertConfig): void {\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global().centerHorizontally().top(\"10%\"),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n\n const alertPortal = new ComponentPortal(this.generateComponentPortal());\n const componentRef = overlayRef.attach(alertPortal);\n componentRef.instance.data = config;\n\n setTimeout(() => {\n overlayRef.dispose();\n }, this.defaultTime);\n }\n\n generateComponentPortal(): typeof BaseAlert{\n return BaseAlert;\n }\n}\n","import { Overlay } from \"@angular/cdk/overlay\";\nimport { ComponentPortal, ComponentType } from \"@angular/cdk/portal\";\nimport { Injectable, inject } from \"@angular/core\";\n\nimport { Subscription } from \"rxjs\";\n\nimport { CaoBaseWidgetComponent } from \"./base-widget\";\nimport { ICaoWidgetOptions } from \"./base-widget.interface\";\n\n\n@Injectable({ providedIn: \"root\" })\nexport class CaoWidgetService {\n private readonly overlay = inject(Overlay);\n private overlayRef: ReturnType<Overlay[\"create\"]> | null = null;\n\n open<TComponent>(component: ComponentType<TComponent>, options: ICaoWidgetOptions = {}): void {\n const substituindoWidget = !!this.overlayRef;\n if (this.overlayRef) {\n this.close();\n }\n\n const overlayRef = this.overlay.create({\n hasBackdrop: false,\n positionStrategy: this.overlay.position().global(),\n scrollStrategy: this.overlay.scrollStrategies.block(),\n });\n this.overlayRef = overlayRef;\n\n const ref = overlayRef.attach(new ComponentPortal<TComponent>(component));\n const instance = ref.instance as CaoBaseWidgetComponent;\n\n for (const [key, value] of Object.entries(options.inputs ?? {})) {\n (ref.setInput as (inputName: string, value: unknown) => void)(key, value);\n }\n\n if (options.data !== undefined) {\n (ref.setInput as (inputName: string, value: unknown) => void)(\"widgetData\", options.data);\n }\n\n const subscriptions = new Subscription();\n let disposed = false;\n\n if (!(substituindoWidget && history.state?.widget)) {\n history.pushState({ widget: true }, \"\");\n }\n\n const onPopState = () => {\n dispose();\n options.onClose?.();\n };\n window.addEventListener(\"popstate\", onPopState);\n\n const dispose = () => {\n if (disposed) {return;}\n disposed = true;\n window.removeEventListener(\"popstate\", onPopState);\n subscriptions.unsubscribe();\n overlayRef.dispose();\n if (this.overlayRef === overlayRef) {\n this.overlayRef = null;\n }\n };\n\n subscriptions.add(instance.save.subscribe(() => options.onSave?.()));\n subscriptions.add(instance.deleted.subscribe(() => options.onDelete?.()));\n subscriptions.add(\n instance.closeRequest.subscribe(() => {\n if (history.state?.widget) {\n history.back();\n } else {\n dispose();\n }\n options.onClose?.();\n })\n );\n\n overlayRef.detachments().subscribe(() => {\n disposed = true;\n window.removeEventListener(\"popstate\", onPopState);\n subscriptions.unsubscribe();\n if (this.overlayRef === overlayRef) {\n this.overlayRef = null;\n }\n });\n\n ref.changeDetectorRef.detectChanges();\n }\n\n close(): void {\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n}","import { CommonModule } from \"@angular/common\";\nimport { Component, DestroyRef, HostListener, inject, input, output, signal } from \"@angular/core\";\n\nimport { CaoWidgetService } from './widget.service';\n\nexport type CaoWidgetDirection = \"left\" | \"right\" | \"top\" | \"bottom\";\n\n@Component({\n selector: \"cao-base-widget\",\n imports: [CommonModule],\n templateUrl: \"./base-widget.html\",\n styleUrl: \"./base-widget.css\",\n})\nexport class CaoBaseWidgetComponent<TData = unknown> {\n private static readonly CLOSE_ANIMATION_MS = 250;\n\n title = input(\"Titulo\")\n subtitle = input(\"\")\n widgetIcon = input(\"\")\n\n cancelTextButton = input(\"Cancelar\")\n saveTextButton = input(\"Gerar\")\n displayActionButton = input(true)\n displaySaveButton = input(true)\n displayCancelButton = input(true)\n shouldCloseWhenCancel = input(true)\n widgetDirection = input<CaoWidgetDirection>(\"right\")\n typeCancel = input<\"cancel\" | \"back\">(\"cancel\")\n saveDisabled = input(false)\n saveIcon = input(\"arrow-right\")\n saveIconPosition = input<\"leading\" | \"trailing\">(\"trailing\")\n closeOnClickOutside = input(true)\n confirmOnClose = input(false)\n widgetData = input<TData | undefined>(undefined)\n\n readonly save = output<void>()\n readonly deleted = output<void>()\n readonly cancelEvent = output<void>()\n readonly closeRequest = output<void>()\n\n readonly closing = signal(false)\n private mouseDownOnBackdrop = false;\n private closeStarted = false;\n private closeEmitted = false;\n private closeConfirmationOpen = false;\n\n protected readonly destroyRef = inject(DestroyRef);\n protected readonly widgetService = inject(CaoWidgetService)\n\n closeWidget(): void {\n if (this.closeStarted) {return;}\n \n this.startClose();\n }\n\n saveWidget(): void {\n this.save.emit();\n }\n\n cancelWidget(): void {\n this.cancelEvent.emit();\n }\n\n deletedWidget(): void {\n this.deleted.emit();\n }\n\n onAnimationEnd(event: AnimationEvent): void {\n if (!this.closing() || event.target !== event.currentTarget) {return;}\n this.emitCloseRequest();\n }\n\n\n @HostListener('document:keydown.escape')\n onEscapeKey(): void {\n if (this.closeConfirmationOpen) {\n this.closeConfirmationOpen = false;\n return;\n }\n this.closeWidget();\n }\n\n\n protected forwardCloseRequest(): void {\n this.closeRequest.emit();\n }\n\n onBackdropMouseDown(event: MouseEvent): void {\n this.mouseDownOnBackdrop = event.target === event.currentTarget;\n }\n\n onBackdropMouseUp(event: MouseEvent): void {\n const closeRequested =\n this.mouseDownOnBackdrop &&\n event.target === event.currentTarget &&\n this.closeOnClickOutside();\n this.mouseDownOnBackdrop = false;\n\n if (closeRequested) {\n this.closeWidget();\n }\n }\n\n private startClose(): void {\n if (this.closeStarted) {return;}\n this.closeStarted = true;\n this.closing.set(true);\n setTimeout(() => this.emitCloseRequest(), CaoBaseWidgetComponent.CLOSE_ANIMATION_MS);\n }\n\n\n private emitCloseRequest(): void {\n if (this.closeEmitted) {return;}\n this.closeEmitted = true;\n this.closeRequest.emit();\n }\n}","<div\n class=\"widget-backdrop\"\n role=\"presentation\"\n tabindex=\"-1\"\n [ngClass]=\"widgetDirection()\"\n [class.widget-backdrop--closing]=\"closing()\"\n (mousedown)=\"onBackdropMouseDown($event)\"\n (mouseup)=\"onBackdropMouseUp($event)\"\n (animationend)=\"onAnimationEnd($event)\">\n <div\n class=\"widget-panel\"\n [class.widget-panel--closing]=\"closing()\"\n (mousedown)=\"$event.stopPropagation()\"\n (mouseup)=\"$event.stopPropagation()\">\n <div class=\"widget-body\">\n <div class=\"widget-header\">\n <div class=\"widget-title\">\n <h1>{{ title() }}</h1>\n <h2>{{ subtitle() }}</h2>\n </div>\n <ng-content select=\"widget-title\" />\n </div>\n <div class=\"widget-scroll\">\n <ng-content />\n </div>\n </div>\n </div>\n</div>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["nextId","i1","i2","i4","i3","i6","clampPercent","i9","i5","i7","i8"],"mappings":"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"}