@seniorsistemas/angular-components 19.5.4 → 19.5.5

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 (77) hide show
  1. package/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.d.ts +2 -0
  2. package/accordion/lib/accordion/models/accordion-button-settings.d.ts +5 -0
  3. package/button/lib/button/button.component.d.ts +5 -1
  4. package/esm2022/accordion/lib/accordion/components/accordion-panel/accordion-panel.component.mjs +11 -3
  5. package/esm2022/accordion/lib/accordion/models/accordion-button-settings.mjs +1 -1
  6. package/esm2022/button/lib/button/button.component.mjs +9 -3
  7. package/esm2022/confirm-dialog/lib/popup-confirm-dialog/popup-confirm-dialog.component.mjs +1 -1
  8. package/esm2022/content-generator/lib/content-generator/content-generator.component.mjs +1 -1
  9. package/esm2022/dynamic-form/dynamic-form/components/grid/row/row.component.mjs +2 -2
  10. package/esm2022/dynamic-form/dynamic-form/components/lookup/lookup.component.mjs +2 -2
  11. package/esm2022/dynamic-form/dynamic-form/form-field/fields/bignumber/bignumber-field.component.mjs +2 -2
  12. package/esm2022/dynamic-form/dynamic-form/form-field/fields/boolean/boolean-radio-field/boolean-field.component.mjs +1 -1
  13. package/esm2022/dynamic-form/dynamic-form/form-field/fields/button-field/button-field.component.mjs +1 -1
  14. package/esm2022/dynamic-form/dynamic-form/form-field/fields/number/number-field.component.mjs +2 -2
  15. package/esm2022/dynamic-form/dynamic-form/form-field/fields/password/password-field.component.mjs +2 -2
  16. package/esm2022/dynamic-form/dynamic-form/form-field/fields/radio-button/radio-button-field.component.mjs +2 -2
  17. package/esm2022/dynamic-form/dynamic-form/form-field/fields/text/text-field.component.mjs +2 -2
  18. package/esm2022/empty-state/lib/empty-state/empty-state.component.mjs +1 -1
  19. package/esm2022/file-picker/lib/file-picker/file-picker.component.mjs +1 -1
  20. package/esm2022/global-search/lib/global-search/components/dropdown/global-search-dropdown-item.component.mjs +1 -1
  21. package/esm2022/global-search/lib/global-search/global-search.component.mjs +2 -2
  22. package/esm2022/help-popover/lib/help-popover/help-popover/help-popover.component.mjs +1 -1
  23. package/esm2022/image-cropper/lib/image-cropper/image-cropper.component.mjs +1 -1
  24. package/esm2022/inline-edit/lib/inline-edit/components/fields/inline-edit-number/inline-edit-number.component.mjs +1 -1
  25. package/esm2022/inline-edit/lib/inline-edit/components/inline-edit-item/inline-edit-item.component.mjs +1 -1
  26. package/esm2022/kanban/lib/kanban/components/kanban-column/kanban-column.component.mjs +1 -1
  27. package/esm2022/object-card/lib/object-card/elements/field/object-card-field.component.mjs +1 -1
  28. package/esm2022/object-card/lib/object-card/elements/main/object-card-main.component.mjs +1 -1
  29. package/esm2022/picklist/lib/picklist/picklist.component.mjs +2 -2
  30. package/esm2022/profile-picture-picker/lib/profile-picture-picker/profile-picture-picker.component.mjs +1 -1
  31. package/esm2022/select/lib/select/select.component.mjs +86 -4
  32. package/esm2022/shared/lib/accessibility/datepicker-no-period-tab.directive.mjs +541 -0
  33. package/esm2022/shared/public-api.mjs +2 -1
  34. package/esm2022/spotlight/lib/spotlight/spotlight.component.mjs +2 -2
  35. package/esm2022/table/lib/table/table-paging/table-paging.component.mjs +1 -1
  36. package/fesm2022/seniorsistemas-angular-components-accordion.mjs +10 -2
  37. package/fesm2022/seniorsistemas-angular-components-accordion.mjs.map +1 -1
  38. package/fesm2022/seniorsistemas-angular-components-button.mjs +8 -2
  39. package/fesm2022/seniorsistemas-angular-components-button.mjs.map +1 -1
  40. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs +1 -1
  41. package/fesm2022/seniorsistemas-angular-components-confirm-dialog.mjs.map +1 -1
  42. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs +1 -1
  43. package/fesm2022/seniorsistemas-angular-components-content-generator.mjs.map +1 -1
  44. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs +9 -9
  45. package/fesm2022/seniorsistemas-angular-components-dynamic-form.mjs.map +1 -1
  46. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs +1 -1
  47. package/fesm2022/seniorsistemas-angular-components-empty-state.mjs.map +1 -1
  48. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs +1 -1
  49. package/fesm2022/seniorsistemas-angular-components-file-picker.mjs.map +1 -1
  50. package/fesm2022/seniorsistemas-angular-components-global-search.mjs +2 -2
  51. package/fesm2022/seniorsistemas-angular-components-global-search.mjs.map +1 -1
  52. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs +1 -1
  53. package/fesm2022/seniorsistemas-angular-components-help-popover.mjs.map +1 -1
  54. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs +1 -1
  55. package/fesm2022/seniorsistemas-angular-components-image-cropper.mjs.map +1 -1
  56. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs +2 -2
  57. package/fesm2022/seniorsistemas-angular-components-inline-edit.mjs.map +1 -1
  58. package/fesm2022/seniorsistemas-angular-components-kanban.mjs +1 -1
  59. package/fesm2022/seniorsistemas-angular-components-kanban.mjs.map +1 -1
  60. package/fesm2022/seniorsistemas-angular-components-object-card.mjs +2 -2
  61. package/fesm2022/seniorsistemas-angular-components-object-card.mjs.map +1 -1
  62. package/fesm2022/seniorsistemas-angular-components-picklist.mjs +1 -1
  63. package/fesm2022/seniorsistemas-angular-components-picklist.mjs.map +1 -1
  64. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs +1 -1
  65. package/fesm2022/seniorsistemas-angular-components-profile-picture-picker.mjs.map +1 -1
  66. package/fesm2022/seniorsistemas-angular-components-select.mjs +85 -3
  67. package/fesm2022/seniorsistemas-angular-components-select.mjs.map +1 -1
  68. package/fesm2022/seniorsistemas-angular-components-shared.mjs +541 -3
  69. package/fesm2022/seniorsistemas-angular-components-shared.mjs.map +1 -1
  70. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs +1 -1
  71. package/fesm2022/seniorsistemas-angular-components-spotlight.mjs.map +1 -1
  72. package/fesm2022/seniorsistemas-angular-components-table.mjs +1 -1
  73. package/fesm2022/seniorsistemas-angular-components-table.mjs.map +1 -1
  74. package/package.json +7 -7
  75. package/select/lib/select/select.component.d.ts +40 -2
  76. package/shared/lib/accessibility/datepicker-no-period-tab.directive.d.ts +177 -0
  77. package/shared/public-api.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"seniorsistemas-angular-components-shared.mjs","sources":["../../projects/angular-components/shared/src/lib/shared/models/severities.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.html","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.module.ts","../../projects/angular-components/shared/src/lib/shared/helpers.ts","../../projects/angular-components/shared/src/lib/accessibility/paginator-accessibility.directive.ts","../../projects/angular-components/shared/src/lib/accessibility/table-checkbox-accessibility.directive.ts","../../projects/angular-components/shared/src/seniorsistemas-angular-components-shared.ts"],"sourcesContent":["export type Severities = 'default' | 'info' | 'warn' | 'error' | 'success';\n\nexport enum EnumSeverity {\n Default = 'default',\n Info = 'info',\n Warn = 'warn',\n Error = 'error',\n Success = 'success',\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BorderButtonOptions } from '../models/border-button-options';\nimport { Severities } from '../models/severities';\n\n/**\n * @description Botão com borda que varia de estilo de acordo com a severidade informada.\n * Utilizado internamente por outros componentes da biblioteca.\n *\n * @category Shared\n */\n@Component({\n selector: 's-border-button',\n templateUrl: './border-button.component.html',\n styleUrls: ['./border-button.component.scss'],\n})\nexport class BorderButtonComponent {\n /** @description Nível de severidade que define a cor e estilo do botão. @default 'default' */\n @Input()\n public severity: Severities = 'default';\n\n /** @description Opções de configuração do botão (rótulo, ação, etc.). */\n @Input()\n public options?: BorderButtonOptions;\n}\n\n","<button\n class=\"border-button\"\n [ngClass]=\"{\n 'border-button--severity-default': severity === 'default',\n 'border-button--severity-info': severity === 'info',\n 'border-button--severity-warn': severity === 'warn',\n 'border-button--severity-error': severity === 'error',\n 'border-button--severity-success': severity === 'success',\n 'border-button--disabled': options?.disabled ? options?.disabled(severity) : false,\n }\"\n (click)=\"options?.onClick ? options?.onClick(severity) : null\"\n [sTooltip]=\"options?.tooltip?.(severity)\"\n tooltipPosition=\"left\"\n [disabled]=\"options?.disabled ? options?.disabled(severity) : false\"\n>\n <span class=\"border-button__label\">\n {{ options?.label ? options?.label(severity) : null }}\n </span>\n @if (options?.icon ? options?.icon(severity) : false) {\n <span class=\"border-button__icon {{ options?.icon(severity) }}\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { BorderButtonComponent } from \"./border-button.component\";\nimport { TooltipModule } from \"@seniorsistemas/angular-components/tooltip\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule { }\n","/**\n * A decorator that can be used to disable functions based on a boolean property on the component.\n *\n * @param disabledField The name of the boolean property that will be used to determine if the decorated\n * function should be disabled. Defaults to 'disabled'.\n * @returns A decorator function that can be used to decorate a function.\n *\n * @example\n * class MyComponent {\n * disabled = true;\n *\n * @CheckDisabled()\n * onClick() {\n * console.log('Button was clicked');\n * }\n * }\n */\nexport function CheckDisabled(disabledField = 'disabled') {\n return function (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args: any[]) {\n const self = this as Record<string, any>;\n if (self[disabledField]) {\n return;\n }\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n","import { Directive, ElementRef, OnInit, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Diretiva para melhorar a acessibilidade dos botões do paginador PrimeNG\n * Adiciona tabindex=\"0\" aos botões habilitados e tabindex=\"-1\" aos desabilitados\n * Adiciona aria-labels traduzidos para os botões do paginador\n */\n@Directive({\n selector: '[sPaginatorAccessibility]',\n standalone: true\n})\nexport class PaginatorAccessibilityDirective implements OnInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly translateService = inject(TranslateService);\n\n private observer: MutationObserver | null = null;\n private readonly equalWebSpanMarker = 'data-equalweb-sr-only';\n private isObserverPaused = false;\n private observedPaginatorElement: Element | null = null;\n\n ngOnInit() {\n // Aguarda o próximo ciclo para garantir que o paginador foi renderizado\n setTimeout(() => {\n this.updatePaginatorButtons();\n this.observePaginatorChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private updatePaginatorButtons() {\n const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n if (!paginatorElement) {\n return;\n }\n\n // Atualiza botões de navegação (first, prev, next, last)\n const navigationSelectors = {\n '.p-paginator-first': this.translateService.instant('platform.angular_components.aria_first_page'),\n '.p-paginator-prev': this.translateService.instant('platform.angular_components.aria_previous_page'),\n '.p-paginator-next': this.translateService.instant('platform.angular_components.aria_next_page'),\n '.p-paginator-last': this.translateService.instant('platform.angular_components.aria_last_page'),\n '.p-select-label': this.translateService.instant('platform.angular_components.aria_page_selection')\n };\n\n Object.entries(navigationSelectors).forEach(([selector, label]) => {\n const button = paginatorElement.querySelector(selector);\n if (button) {\n const isDisabled = this.isButtonDisabled(button);\n this.updateTabIndex(button, isDisabled);\n if (isDisabled) {\n this.renderer.removeAttribute(button, 'data-ind-readable');\n } else {\n this.renderer.setAttribute(button, 'data-ind-readable', 'true');\n }\n this.renderer.setAttribute(button, 'aria-label', label);\n this.applyEqualWebTextFix(button, label, isDisabled);\n }\n });\n\n // Atualiza botões de página numérica\n const pageButtons = paginatorElement.querySelectorAll('.p-paginator-page');\n pageButtons.forEach((button: Element) => {\n const pageNumber = this.getPaginatorPageNumber(button);\n if (pageNumber) {\n const isDisabled = this.isButtonDisabled(button);\n const isSelected = button.classList.contains('p-paginator-page-selected');\n const ariaLabel = isSelected \n ? this.translateService.instant('platform.angular_components.aria_current_page', { page: pageNumber })\n : this.translateService.instant('platform.angular_components.aria_page_number', { page: pageNumber });\n this.renderer.setAttribute(button, 'aria-label', ariaLabel);\n this.updateTabIndex(button, isDisabled);\n this.applyEqualWebTextFix(button, ariaLabel, isDisabled);\n \n if (isSelected) {\n this.renderer.setAttribute(button, 'aria-current', 'page');\n } else {\n this.renderer.removeAttribute(button, 'aria-current');\n }\n }\n });\n }\n\n private isButtonDisabled(button: Element): boolean {\n return button.hasAttribute('disabled') || button.classList.contains('p-disabled');\n }\n\n private updateTabIndex(button: Element, isDisabled: boolean) {\n if (isDisabled) {\n this.renderer.removeAttribute(button, 'tabindex');\n return;\n }\n\n this.renderer.setAttribute(button, 'tabindex', '0');\n }\n\n private getPaginatorPageNumber(button: Element): string {\n const buttonElement = button as HTMLElement;\n\n // Evita pegar texto do span sr-only criado pela diretiva.\n const visualLabel = buttonElement.querySelector(`span:not([${this.equalWebSpanMarker}])`);\n const visualText = visualLabel?.textContent?.trim();\n if (visualText) {\n return visualText;\n }\n\n // Fallback para casos em que o PrimeNG renderiza sem span interno.\n const srOnlyText = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`)?.textContent?.trim() || '';\n const fullText = buttonElement.textContent?.trim() || '';\n return fullText.replace(srOnlyText, '').trim();\n }\n\n private applyEqualWebTextFix(button: Element, accessibleText: string, isDisabled: boolean) {\n const buttonElement = button as HTMLElement;\n\n // Oculta spans visuais do PrimeNG para o script do EqualWeb.\n const visualSpans = buttonElement.querySelectorAll(`span:not([${this.equalWebSpanMarker}])`);\n visualSpans.forEach((span: Element) => {\n this.renderer.setAttribute(span, 'aria-hidden', 'true');\n });\n\n const existingSrOnly = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`);\n\n // Não mantém texto extra em botões desabilitados.\n if (isDisabled) {\n if (existingSrOnly) {\n this.renderer.removeChild(buttonElement, existingSrOnly);\n }\n return;\n }\n\n if (existingSrOnly) {\n this.renderer.removeAttribute(existingSrOnly, 'tabindex');\n this.renderer.setProperty(existingSrOnly, 'textContent', accessibleText);\n return;\n }\n\n const srOnlySpan = this.renderer.createElement('span');\n this.renderer.addClass(srOnlySpan, 'sr-only');\n this.renderer.setAttribute(srOnlySpan, this.equalWebSpanMarker, 'true');\n this.renderer.removeAttribute(srOnlySpan, 'tabindex');\n const srOnlyText = this.renderer.createText(accessibleText);\n this.renderer.appendChild(srOnlySpan, srOnlyText);\n this.renderer.appendChild(buttonElement, srOnlySpan);\n }\n\n private observePaginatorChanges() {\n const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n if (!paginatorElement) {\n return;\n }\n\n this.observedPaginatorElement = paginatorElement;\n\n // Observa mudanças no paginador (quando botões são habilitados/desabilitados)\n this.observer = new MutationObserver(() => {\n this.updateWithObserverPaused();\n });\n\n this.startObserving();\n }\n\n private updateWithObserverPaused() {\n if (!this.observer || this.isObserverPaused) {\n return;\n }\n\n this.isObserverPaused = true;\n this.observer.disconnect();\n\n try {\n this.updatePaginatorButtons();\n } finally {\n this.startObserving();\n this.isObserverPaused = false;\n }\n }\n\n private startObserving() {\n if (!this.observer || !this.observedPaginatorElement) {\n return;\n }\n\n this.observer.observe(this.observedPaginatorElement, {\n attributes: true,\n childList: true,\n subtree: true,\n attributeFilter: ['disabled', 'class', 'tabindex']\n });\n }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, inject } from '@angular/core';\n\n/**\n * Diretiva para corrigir a acessibilidade de checkboxes em tabelas PrimeNG.\n *\n * Propaga o `aria-label` dos custom elements wrapper (`p-tablecheckbox` e\n * `p-tableheadercheckbox`) para os `<input type=\"checkbox\">` internos e\n * remove o atributo do wrapper, eliminando as violações WCAG 4.1.2:\n * - `label` (crítica): input sem nome acessível\n * - `aria-prohibited-attr` (séria): aria-label em custom element sem role ARIA\n *\n * Remove também o `aria-label` do `p-checkbox` intermediário e monitora\n * mutations de atributo para re-aplicar o label correto caso o binding\n * interno do PrimeNG sobrescreva o valor no input via change detection.\n *\n * Utiliza MutationObserver para tratar linhas adicionadas dinamicamente\n * (paginação, lazy loading).\n *\n * Uso: `<p-table sTableCheckboxAccessibility ...>`\n */\n@Directive({\n selector: '[sTableCheckboxAccessibility]',\n standalone: true,\n})\nexport class TableCheckboxAccessibilityDirective implements OnInit, OnDestroy {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private childListObserver: MutationObserver | null = null;\n private attributeObserver: MutationObserver | null = null;\n private isChildListPaused = false;\n private isAttributePaused = false;\n private readonly observedElements: Element[] = [];\n private readonly inputLabelMap = new Map<Element, string>();\n\n private static readonly CHECKBOX_SELECTOR = 'p-tablecheckbox, p-tableheadercheckbox';\n private static readonly INNER_CHECKBOX_SELECTOR = 'p-checkbox';\n private static readonly INPUT_SELECTOR = 'input[type=\"checkbox\"]';\n private static readonly ARIA_LABEL_ATTR = 'aria-label';\n\n ngOnInit() {\n setTimeout(() => {\n this.updateCheckboxLabels();\n this.observeTableChanges();\n });\n }\n\n ngOnDestroy() {\n this.childListObserver?.disconnect();\n this.attributeObserver?.disconnect();\n this.inputLabelMap.clear();\n }\n\n private updateCheckboxLabels() {\n const host = this.el.nativeElement;\n const checkboxWrappers = host.querySelectorAll(TableCheckboxAccessibilityDirective.CHECKBOX_SELECTOR);\n\n checkboxWrappers.forEach((wrapper) => {\n const wrapperAriaLabel = wrapper.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n if (!wrapperAriaLabel?.trim()) {\n return;\n }\n\n const input = wrapper.querySelector(TableCheckboxAccessibilityDirective.INPUT_SELECTOR);\n if (!input) {\n return;\n }\n\n this.applyLabelToInput(input, wrapperAriaLabel);\n wrapper.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n this.removeInnerCheckboxAriaLabel(wrapper);\n });\n }\n\n private applyLabelToInput(input: Element, label: string) {\n this.inputLabelMap.set(input, label);\n input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, label);\n }\n\n private removeInnerCheckboxAriaLabel(wrapper: Element) {\n const innerCheckbox = wrapper.querySelector(TableCheckboxAccessibilityDirective.INNER_CHECKBOX_SELECTOR);\n if (innerCheckbox) {\n innerCheckbox.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n }\n }\n\n private observeTableChanges() {\n const host = this.el.nativeElement;\n const tbody = host.querySelector('tbody');\n const thead = host.querySelector('thead');\n\n if (tbody) {\n this.observedElements.push(tbody);\n }\n if (thead) {\n this.observedElements.push(thead);\n }\n\n if (this.observedElements.length === 0) {\n return;\n }\n\n this.childListObserver = new MutationObserver(() => {\n this.handleChildListMutation();\n });\n\n this.attributeObserver = new MutationObserver((mutations) => {\n this.handleAttributeMutations(mutations);\n });\n\n this.startObserving();\n }\n\n private handleAttributeMutations(mutations: MutationRecord[]) {\n if (this.isAttributePaused) {\n return;\n }\n\n this.isAttributePaused = true;\n\n try {\n mutations\n .filter((m) => m.attributeName === TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR)\n .forEach((mutation) => {\n const target = mutation.target as Element;\n const tagName = target.tagName?.toLowerCase();\n\n if (tagName === 'p-checkbox') {\n target.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n } else if (tagName === 'input') {\n this.enforceInputLabel(target);\n } else {\n // Outros elementos não precisam de tratamento\n }\n });\n } finally {\n this.isAttributePaused = false;\n }\n }\n\n private enforceInputLabel(input: Element) {\n const correctLabel = this.inputLabelMap.get(input);\n if (!correctLabel) {\n return;\n }\n\n const currentLabel = input.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n if (currentLabel !== correctLabel) {\n input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, correctLabel);\n }\n }\n\n private handleChildListMutation() {\n if (!this.childListObserver || this.isChildListPaused) {\n return;\n }\n\n this.isChildListPaused = true;\n this.childListObserver.disconnect();\n\n try {\n this.updateCheckboxLabels();\n } finally {\n this.startObserving();\n this.isChildListPaused = false;\n }\n }\n\n private startObserving() {\n const { childListObserver, attributeObserver, observedElements } = this;\n\n if (!childListObserver) {\n return;\n }\n\n observedElements.forEach((element) => {\n childListObserver.observe(element, {\n childList: true,\n subtree: true,\n });\n\n if (attributeObserver) {\n attributeObserver.observe(element, {\n attributes: true,\n subtree: true,\n attributeFilter: [TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR],\n });\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"seniorsistemas-angular-components-shared.mjs","sources":["../../projects/angular-components/shared/src/lib/shared/models/severities.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.ts","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.component.html","../../projects/angular-components/shared/src/lib/shared/border-button/border-button.module.ts","../../projects/angular-components/shared/src/lib/shared/helpers.ts","../../projects/angular-components/shared/src/lib/accessibility/datepicker-no-period-tab.directive.ts","../../projects/angular-components/shared/src/lib/accessibility/paginator-accessibility.directive.ts","../../projects/angular-components/shared/src/lib/accessibility/table-checkbox-accessibility.directive.ts","../../projects/angular-components/shared/src/seniorsistemas-angular-components-shared.ts"],"sourcesContent":["export type Severities = 'default' | 'info' | 'warn' | 'error' | 'success';\n\nexport enum EnumSeverity {\n Default = 'default',\n Info = 'info',\n Warn = 'warn',\n Error = 'error',\n Success = 'success',\n}\n","import { Component, Input } from '@angular/core';\n\nimport { BorderButtonOptions } from '../models/border-button-options';\nimport { Severities } from '../models/severities';\n\n/**\n * @description Botão com borda que varia de estilo de acordo com a severidade informada.\n * Utilizado internamente por outros componentes da biblioteca.\n *\n * @category Shared\n */\n@Component({\n selector: 's-border-button',\n templateUrl: './border-button.component.html',\n styleUrls: ['./border-button.component.scss'],\n})\nexport class BorderButtonComponent {\n /** @description Nível de severidade que define a cor e estilo do botão. @default 'default' */\n @Input()\n public severity: Severities = 'default';\n\n /** @description Opções de configuração do botão (rótulo, ação, etc.). */\n @Input()\n public options?: BorderButtonOptions;\n}\n\n","<button\n class=\"border-button\"\n [ngClass]=\"{\n 'border-button--severity-default': severity === 'default',\n 'border-button--severity-info': severity === 'info',\n 'border-button--severity-warn': severity === 'warn',\n 'border-button--severity-error': severity === 'error',\n 'border-button--severity-success': severity === 'success',\n 'border-button--disabled': options?.disabled ? options?.disabled(severity) : false,\n }\"\n (click)=\"options?.onClick ? options?.onClick(severity) : null\"\n [sTooltip]=\"options?.tooltip?.(severity)\"\n tooltipPosition=\"left\"\n [disabled]=\"options?.disabled ? options?.disabled(severity) : false\"\n>\n <span class=\"border-button__label\">\n {{ options?.label ? options?.label(severity) : null }}\n </span>\n @if (options?.icon ? options?.icon(severity) : false) {\n <span class=\"border-button__icon {{ options?.icon(severity) }}\"></span>\n }\n</button>\n","import { CommonModule } from \"@angular/common\";\nimport { NgModule } from \"@angular/core\";\nimport { BorderButtonComponent } from \"./border-button.component\";\nimport { TooltipModule } from \"@seniorsistemas/angular-components/tooltip\";\n\n@NgModule({\n imports: [CommonModule, TooltipModule],\n declarations: [BorderButtonComponent],\n exports: [BorderButtonComponent]\n})\nexport class BorderButtonModule { }\n","/**\n * A decorator that can be used to disable functions based on a boolean property on the component.\n *\n * @param disabledField The name of the boolean property that will be used to determine if the decorated\n * function should be disabled. Defaults to 'disabled'.\n * @returns A decorator function that can be used to decorate a function.\n *\n * @example\n * class MyComponent {\n * disabled = true;\n *\n * @CheckDisabled()\n * onClick() {\n * console.log('Button was clicked');\n * }\n * }\n */\nexport function CheckDisabled(disabledField = 'disabled') {\n return function (_target: any, _propertyKey: string, descriptor: PropertyDescriptor) {\n const originalMethod = descriptor.value;\n descriptor.value = function (...args: any[]) {\n const self = this as Record<string, any>;\n if (self[disabledField]) {\n return;\n }\n return originalMethod.apply(this, args);\n };\n\n return descriptor;\n };\n}\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, HostListener, LOCALE_ID, OnDestroy, Renderer2, inject } from '@angular/core';\nimport { DatePicker } from 'primeng/datepicker';\n\n/**\n * CSS customizado injetado globalmente para focus-visible nos internals do DatePicker.\n * Necessário porque com `appendTo=\"body\"` o overlay fica fora do host component,\n * e estilos com `:host ::ng-deep` ou ViewEncapsulation.Emulated não alcançam.\n */\nconst FOCUS_STYLE_ID = 's-datepicker-a11y-focus-styles';\n\n/** Delay em ms para foco pós-abertura e navegação (permite NVDA processar dialog announce). */\nconst FOCUS_DELAY_MS = 50;\n\n/** Delay em ms para debounce do MutationObserver (evita re-execução por ripple/animações). */\nconst MUTATION_DEBOUNCE_MS = 100;\n\n/** Attribute name constant to avoid SonarQube literal duplication warning. */\nconst ARIA_LABEL_ATTR = 'aria-label';\nconst FOCUS_STYLES = `\n.p-datepicker-day:focus-visible,\n.p-datepicker-day.s-datepicker-day-focused {\n outline: 2px solid var(--p-primary-color, #3b82f6) !important;\n outline-offset: -2px;\n border-radius: 4px;\n}\n.p-datepicker-month:focus-visible,\n.p-datepicker-month.s-datepicker-day-focused {\n outline: 2px solid var(--p-primary-color, #3b82f6) !important;\n outline-offset: -2px;\n border-radius: 4px;\n}\n.p-datepicker-year:focus-visible,\n.p-datepicker-year.s-datepicker-day-focused {\n outline: 2px solid var(--p-primary-color, #3b82f6) !important;\n outline-offset: -2px;\n border-radius: 4px;\n}\n.p-datepicker-select-month:focus-visible,\n.p-datepicker-select-year:focus-visible {\n outline: 2px solid var(--p-primary-color, #3b82f6) !important;\n outline-offset: 2px;\n border-radius: 4px;\n}\n.p-datepicker-prev-button:focus-visible,\n.p-datepicker-next-button:focus-visible {\n outline: 2px solid var(--p-primary-color, #3b82f6) !important;\n outline-offset: 2px;\n border-radius: 50%;\n}\n`;\n\n/**\n * Traduções pt-BR para aria-labels do DatePicker PrimeNG.\n * PrimeNG usa `getTranslation()` que retorna inglês por padrão\n * se não configurado via `PrimeNGConfig.setTranslation()`.\n *\n * Keys correspondem ao texto exato renderizado pelo PrimeNG no DOM:\n * - \"Previous Month\" (não \"Prev Month\")\n * - \"Choose Date\", \"Choose Month\", \"Choose Year\"\n */\nconst PREV_DECADE_PT = 'Década anterior';\nconst PREV_DECADE_ES = 'Década anterior';\n\nconst ARIA_TRANSLATIONS_PT_BR: Record<string, string> = {\n 'Choose Date': 'Selecionar data',\n 'Choose Month': 'Selecionar mês',\n 'Choose Year': 'Selecionar ano',\n 'Previous Month': 'Mês anterior',\n 'Next Month': 'Próximo mês',\n 'Previous Year': 'Ano anterior',\n 'Next Year': 'Próximo ano',\n 'Previous Decade': PREV_DECADE_PT,\n 'Next Decade': 'Próxima década',\n 'Prev Month': 'Mês anterior',\n 'Prev Year': 'Ano anterior',\n 'Prev Decade': PREV_DECADE_PT,\n};\n\nconst ARIA_TRANSLATIONS_ES: Record<string, string> = {\n 'Choose Date': 'Seleccionar fecha',\n 'Choose Month': 'Seleccionar mes',\n 'Choose Year': 'Seleccionar año',\n 'Previous Month': 'Mes anterior',\n 'Next Month': 'Próximo mes',\n 'Previous Year': 'Año anterior',\n 'Next Year': 'Próximo año',\n 'Previous Decade': PREV_DECADE_ES,\n 'Next Decade': 'Próxima década',\n 'Prev Month': 'Mes anterior',\n 'Prev Year': 'Año anterior',\n 'Prev Decade': PREV_DECADE_ES,\n};\n\nconst ARIA_TRANSLATIONS: Record<string, Record<string, string>> = {\n 'pt-BR': ARIA_TRANSLATIONS_PT_BR,\n 'pt': ARIA_TRANSLATIONS_PT_BR,\n 'es': ARIA_TRANSLATIONS_ES,\n 'es-CO': ARIA_TRANSLATIONS_ES,\n 'es-ES': ARIA_TRANSLATIONS_ES,\n};\n\n/**\n * Diretiva para corrigir a acessibilidade do painel do DatePicker PrimeNG.\n *\n * Resolve os seguintes problemas:\n *\n * 1. **Foco inicial ao abrir overlay**: move foco programaticamente para\n * a célula selecionada, hoje, ou primeira célula disponível — evitando\n * que NVDA leia toda estrutura do grid ao entrar no painel.\n *\n * 2. **Re-foco ao trocar view (mês/ano)**: ao navegar para views de mês ou\n * ano, o DOM é destruído e recriado. Sem intervenção, foco escapa para\n * `<body>` e NVDA lê conteúdo fora do overlay. A diretiva re-foca o\n * primeiro elemento interativo da nova view.\n *\n * 3. **Focus-visible nos elementos internos**: injeta CSS global com\n * outline para todos elementos interativos do overlay, garantindo\n * feedback visual mesmo com `appendTo=\"body\"`.\n *\n * 4. **aria-label enriquecido nos day cells**: PrimeNG seta apenas o\n * número do dia. A diretiva sobrescreve com data completa formatada\n * (ex: \"3 de junho de 2026, Qua\") — NVDA narra label sem precisar\n * contextualizar toda grid.\n *\n * 5. **View de meses/anos sem tabindex**: spans de mês/ano recebem\n * `tabindex=\"0\"` e `role=\"option\"` para navegação por teclado.\n *\n * Utiliza `MutationObserver` para detectar mudanças internas de view,\n * já que PrimeNG não emite eventos para essas transições.\n *\n * **CSS**: A diretiva injeta um `<style>` global no `<head>` (uma vez).\n * Para projetos que preferem controle manual, desabilite via Input\n * `[sDatepickerInjectStyles]=\"false\"` e importe os estilos manualmente.\n *\n * Uso: `<p-datepicker sDatepickerNoPeriodTab ...>`\n *\n * @category Directives\n */\n@Directive({\n selector: '[sDatepickerNoPeriodTab]',\n standalone: true,\n})\nexport class DatepickerNoPeriodTabDirective implements OnDestroy {\n private readonly datePicker = inject(DatePicker);\n private readonly renderer = inject(Renderer2);\n private readonly locale = inject(LOCALE_ID);\n private readonly document = inject(DOCUMENT);\n private observer: MutationObserver | null = null;\n private focusListenerCleanups: Array<() => void> = [];\n\n constructor() {\n this.injectGlobalFocusStyles();\n }\n\n @HostListener('onShow')\n public onPanelShow(): void {\n setTimeout(() => {\n this.fixPanelAccessibility();\n // Não chamar focusBestTarget() aqui — PrimeNG initFocusableCell()\n // já move foco pro day cell com tabindex=\"0\" na abertura.\n // Chamar de novo causa double-announce no NVDA.\n setTimeout(() => this.observePanelChanges(), MUTATION_DEBOUNCE_MS);\n }, FOCUS_DELAY_MS);\n }\n\n @HostListener('onMonthChange')\n @HostListener('onYearChange')\n public onNavigationChange(): void {\n setTimeout(() => {\n this.fixPanelAccessibility();\n this.focusBestTarget();\n }, FOCUS_DELAY_MS);\n }\n\n public ngOnDestroy(): void {\n this.disconnectObserver();\n this.removeFocusListeners();\n }\n\n /**\n * Move foco para melhor alvo disponível no painel.\n * Usado ao abrir overlay e ao trocar view (mês/ano).\n *\n * Ao abrir: evita que NVDA leia toda estrutura do grid.\n * Ao trocar view: previne foco escapar para `<body>` quando\n * PrimeNG destrói DOM da view anterior.\n *\n * Prioridade: selecionado > hoje > primeiro disponível.\n * Pula se foco já está no target correto (evita double-announce no NVDA).\n */\n private focusBestTarget(): void {\n const panel = this.datePicker.overlay;\n if (!panel) {\n return;\n }\n\n const target = this.findFocusTarget(panel);\n if (target && this.document.activeElement !== target) {\n target.tabIndex = 0;\n target.focus();\n }\n }\n\n /**\n * Injeta CSS global de focus-visible no `<head>` do documento.\n * Executa apenas uma vez (idempotente via ID do style element).\n * Necessário porque overlay com `appendTo=\"body\"` fica fora do\n * escopo de ViewEncapsulation do componente host.\n */\n private injectGlobalFocusStyles(): void {\n if (this.document.getElementById(FOCUS_STYLE_ID)) {\n return;\n }\n\n const style = this.renderer.createElement('style');\n this.renderer.setAttribute(style, 'id', FOCUS_STYLE_ID);\n this.renderer.setAttribute(style, 'type', 'text/css');\n const text = this.renderer.createText(FOCUS_STYLES);\n this.renderer.appendChild(style, text);\n this.renderer.appendChild(this.document.head, style);\n }\n\n /**\n * Encontra melhor elemento para receber foco no painel atual.\n * Busca em ordem: selecionado → hoje → primeiro disponível.\n * Funciona para views de dias, meses e anos.\n */\n private findFocusTarget(panel: HTMLElement): HTMLElement | null {\n // View de dias\n const selectedDay = panel.querySelector<HTMLElement>(\n '.p-datepicker-day-selected, .p-datepicker-day[aria-selected=\"true\"]'\n );\n if (selectedDay) {\n return selectedDay;\n }\n\n const today = panel.querySelector<HTMLElement>('.p-datepicker-today .p-datepicker-day');\n if (today) {\n return today;\n }\n\n // View de meses\n const selectedMonth = panel.querySelector<HTMLElement>('.p-datepicker-month.p-datepicker-month-selected');\n if (selectedMonth) {\n return selectedMonth;\n }\n const firstMonth = panel.querySelector<HTMLElement>('.p-datepicker-month:not(.p-disabled)');\n if (firstMonth) {\n return firstMonth;\n }\n\n // View de anos\n const selectedYear = panel.querySelector<HTMLElement>('.p-datepicker-year.p-datepicker-year-selected');\n if (selectedYear) {\n return selectedYear;\n }\n const firstYear = panel.querySelector<HTMLElement>('.p-datepicker-year:not(.p-disabled)');\n if (firstYear) {\n return firstYear;\n }\n\n // Fallback: primeiro day cell disponível\n const firstDay = panel.querySelector<HTMLElement>('.p-datepicker-day:not(.p-disabled)');\n return firstDay;\n }\n\n /**\n * Aplica correções de acessibilidade no painel do DatePicker,\n * independente da view interna ativa (dias, meses ou anos).\n */\n private fixPanelAccessibility(): void {\n const panel = this.datePicker.overlay;\n if (!panel) {\n return;\n }\n\n panel.querySelectorAll<HTMLElement>('.p-datepicker-select-month, .p-datepicker-select-year').forEach((btn) => {\n this.renderer.setAttribute(btn, 'tabindex', '0');\n });\n\n panel.querySelectorAll<HTMLElement>('.p-datepicker-month:not([tabindex])').forEach((month) => {\n this.renderer.setAttribute(month, 'tabindex', '0');\n this.renderer.setAttribute(month, 'role', 'option');\n });\n\n panel.querySelectorAll<HTMLElement>('.p-datepicker-year:not([tabindex])').forEach((year) => {\n this.renderer.setAttribute(year, 'tabindex', '0');\n this.renderer.setAttribute(year, 'role', 'option');\n });\n\n this.applyGridcellRoleToDays(panel);\n this.enrichDayCellAriaLabels(panel);\n this.enrichGridAriaLabel(panel);\n this.translateAriaLabels(panel);\n this.fixNavigationButtonLabels(panel);\n this.removeApplicationRoleFromContainer(panel);\n this.setupFocusTracking(panel);\n }\n\n /**\n * Adiciona `role=\"gridcell\"` nos `<span class=\"p-datepicker-day\">` que recebem foco.\n *\n * PrimeNG coloca `tabindex` no `<span>` dentro do `<td>`, mas sem role explícito.\n * NVDA não entra automaticamente em focus mode quando foca um elemento sem\n * role de widget (gridcell, button, etc). Resultado: NVDA fica em browse mode\n * e lê toda a tabela sequencialmente ao invés de anunciar só a célula focada.\n *\n * Ao adicionar `role=\"gridcell\"` no span focável, NVDA reconhece que é um\n * widget interativo e entra em focus mode — anunciando apenas o aria-label\n * da célula focada.\n */\n private applyGridcellRoleToDays(panel: HTMLElement): void {\n panel.querySelectorAll<HTMLElement>('.p-datepicker-day:not(.p-disabled)').forEach((daySpan) => {\n if (!daySpan.getAttribute('role')) {\n this.renderer.setAttribute(daySpan, 'role', 'gridcell');\n }\n });\n }\n\n /**\n * Enriquece `aria-label` dos day cells com data completa formatada.\n * PrimeNG por padrão usa apenas o número do dia, forçando NVDA\n * a narrar contexto de grid (linha/coluna/weekday) para informar a data.\n * Com aria-label completo, NVDA narra diretamente a data sem verbosidade.\n */\n private enrichDayCellAriaLabels(panel: HTMLElement): void {\n const { currentMonth, currentYear } = this.datePicker;\n\n if (currentMonth == null || currentYear == null) {\n return;\n }\n\n const weekdayHeaders = panel.querySelectorAll<HTMLElement>('.p-datepicker-weekday');\n const weekdays: string[] = [];\n weekdayHeaders.forEach((header) => {\n weekdays.push(header.textContent?.trim() || '');\n });\n\n const rows = panel.querySelectorAll<HTMLElement>('.p-datepicker-day-view tbody tr');\n rows.forEach((row) => {\n const cells = row.querySelectorAll<HTMLElement>('td');\n cells.forEach((cell, cellIndex) => {\n const daySpan = cell.querySelector<HTMLElement>('.p-datepicker-day');\n if (!daySpan) {\n return;\n }\n\n const dayNumber = parseInt(daySpan.textContent?.trim() || '0', 10);\n if (!dayNumber) {\n return;\n }\n\n const isOtherMonth = cell.classList.contains('p-datepicker-other-month');\n if (isOtherMonth) {\n return;\n }\n\n const date = new Date(currentYear, currentMonth, dayNumber);\n const formattedDate = this.formatDateForAriaLabel(date);\n const weekday = weekdays[cellIndex] || '';\n const ariaLabel = weekday ? `${formattedDate}, ${weekday}` : formattedDate;\n\n this.renderer.setAttribute(daySpan, ARIA_LABEL_ATTR, ariaLabel);\n });\n });\n }\n\n /**\n * Adiciona aria-label no grid com mês/ano atual para dar contexto\n * imediato ao NVDA ao entrar na tabela de dias.\n * Exemplo: \"Calendário, Junho 2026\"\n */\n private enrichGridAriaLabel(panel: HTMLElement): void {\n const grid = panel.querySelector<HTMLElement>('.p-datepicker-day-view[role=\"grid\"]');\n if (!grid) {\n return;\n }\n\n const { currentMonth, currentYear } = this.datePicker;\n if (currentMonth == null || currentYear == null) {\n return;\n }\n\n const monthName = new Date(currentYear, currentMonth, 1).toLocaleDateString('pt-BR', {\n month: 'long',\n });\n const capitalizedMonth = monthName.charAt(0).toUpperCase() + monthName.slice(1);\n const label = `Calendário, ${capitalizedMonth} ${currentYear}`;\n this.renderer.setAttribute(grid, ARIA_LABEL_ATTR, label);\n }\n\n /**\n * Formata data para aria-label legível por leitor de tela.\n * Sempre usa pt-BR para garantir consistência com labels traduzidos,\n * independente do LOCALE_ID configurado no Angular.\n * Exemplo: \"3 de junho de 2026\"\n */\n private formatDateForAriaLabel(date: Date): string {\n try {\n return date.toLocaleDateString('pt-BR', {\n day: 'numeric',\n month: 'long',\n year: 'numeric',\n });\n } catch {\n return `${date.getDate()}/${date.getMonth() + 1}/${date.getFullYear()}`;\n }\n }\n\n /**\n * Retorna locale string para formatação.\n */\n private getLocale(): string {\n return this.locale || 'pt-BR';\n }\n\n /**\n * Traduz aria-labels dos botões do header que PrimeNG renderiza em inglês.\n * PrimeNG usa `getTranslation('chooseDate')` etc, que retorna inglês\n * se `PrimeNGConfig.setTranslation()` não foi configurado pelo projeto.\n *\n * Busca botões com aria-label em inglês e traduz pro locale atual.\n */\n private translateAriaLabels(panel: HTMLElement): void {\n const translations = this.getTranslations();\n\n // Dialog aria-label (\"Choose Date\")\n const dialog = panel.closest('[role=\"dialog\"]') || panel;\n const dialogLabel = dialog.getAttribute(ARIA_LABEL_ATTR);\n if (dialogLabel && translations[dialogLabel]) {\n this.renderer.setAttribute(dialog, ARIA_LABEL_ATTR, translations[dialogLabel]);\n }\n\n // Botões \"Choose Month\" e \"Choose Year\" no header\n panel.querySelectorAll<HTMLElement>('.p-datepicker-select-month, .p-datepicker-select-year').forEach((btn) => {\n const label = btn.getAttribute(ARIA_LABEL_ATTR);\n if (label && translations[label]) {\n this.renderer.setAttribute(btn, ARIA_LABEL_ATTR, translations[label]);\n }\n });\n }\n\n /**\n * Corrige aria-label dos botões prev/next do PrimeNG.\n * PrimeNG usa `p-button` component que seta `aria-label` no host element `<p-button>`,\n * mas NVDA foca o `<button>` interno que não herda o label do custom element.\n *\n * Estrutura DOM: `<p-button aria-label=\"Previous Month\"><button class=\"p-datepicker-prev-button\">...</button></p-button>`\n *\n * Fix: lê aria-label do `<p-button>` host, traduz, e propaga pro `<button>` interno.\n */\n private fixNavigationButtonLabels(panel: HTMLElement): void {\n const translations = this.getTranslations();\n\n // Buscar <p-button> hosts que contém os botões prev/next\n const pButtons = panel.querySelectorAll<HTMLElement>('p-button');\n pButtons.forEach((pBtn) => {\n const innerButton = pBtn.querySelector<HTMLElement>(\n 'button.p-datepicker-prev-button, button.p-datepicker-next-button'\n );\n if (!innerButton) {\n return;\n }\n\n let label = pBtn.getAttribute(ARIA_LABEL_ATTR) || '';\n\n // Traduzir\n if (label && translations[label]) {\n label = translations[label];\n this.renderer.setAttribute(pBtn, ARIA_LABEL_ATTR, label);\n }\n\n // Propagar pro <button> interno\n if (label) {\n this.renderer.setAttribute(innerButton, ARIA_LABEL_ATTR, label);\n }\n });\n }\n\n /**\n * Remove `role=\"application\"` do container do calendário.\n *\n * PrimeNG seta `role=\"application\"` no `.p-datepicker-calendar-container`\n * para que arrow keys cheguem no JavaScript sem interceptação do browse mode.\n * Porém `role=\"grid\"` na table já garante esse comportamento — NVDA entra\n * automaticamente em focus mode ao focar uma gridcell.\n *\n * O `role=\"application\"` no container PAI causa NVDA a despeja o conteúdo\n * virtual do container inteiro ao entrar no dialog, antes de pousar na célula.\n * Removê-lo resolve a leitura excessiva sem quebrar navegação por setas.\n */\n private removeApplicationRoleFromContainer(panel: HTMLElement): void {\n const calendarContainer = panel.querySelector<HTMLElement>('.p-datepicker-calendar-container');\n if (calendarContainer?.getAttribute('role') === 'application') {\n this.renderer.removeAttribute(calendarContainer, 'role');\n }\n }\n\n /**\n * Retorna mapa de traduções pro locale atual.\n * Se locale é inglês ou não reconhecido, fallback pra pt-BR\n * (assumimos que labels em inglês devem ser traduzidos).\n */\n private getTranslations(): Record<string, string> {\n const locale = this.getLocale();\n return ARIA_TRANSLATIONS[locale]\n || ARIA_TRANSLATIONS[locale.split('-')[0]]\n || ARIA_TRANSLATIONS_PT_BR;\n }\n\n /**\n * Adiciona listeners de focus/blur nos elementos interativos para\n * garantir indicador visual quando `.focus()` é chamado programaticamente.\n *\n * `:focus-visible` pode não ser aplicado quando foco é movido via JS,\n * então usamos classe auxiliar `s-datepicker-day-focused` como fallback.\n */\n private setupFocusTracking(panel: HTMLElement): void {\n this.removeFocusListeners();\n\n const focusableElements = panel.querySelectorAll<HTMLElement>(\n '.p-datepicker-day, .p-datepicker-month, .p-datepicker-year'\n );\n focusableElements.forEach((el) => {\n const focusCleanup = this.renderer.listen(el, 'focus', () => {\n this.renderer.addClass(el, 's-datepicker-day-focused');\n });\n const blurCleanup = this.renderer.listen(el, 'blur', () => {\n this.renderer.removeClass(el, 's-datepicker-day-focused');\n });\n this.focusListenerCleanups.push(focusCleanup, blurCleanup);\n });\n }\n\n /**\n * Remove listeners de focus/blur registrados anteriormente.\n */\n private removeFocusListeners(): void {\n this.focusListenerCleanups.forEach((cleanup) => cleanup());\n this.focusListenerCleanups = [];\n }\n\n /**\n * Observa mudanças no DOM do painel para reaplicar correções\n * quando o PrimeNG troca a view interna (dias → meses → anos).\n * Usa debounce e só reage a childList changes (não attributes)\n * para evitar loop infinito com as próprias mutações da diretiva.\n */\n private observePanelChanges(): void {\n this.disconnectObserver();\n\n const panel = this.datePicker.overlay;\n if (!panel) {\n return;\n }\n\n let debounceTimer: ReturnType<typeof setTimeout> | null = null;\n let isProcessing = false;\n\n this.observer = new MutationObserver((mutations) => {\n if (isProcessing) {\n return;\n }\n\n // Só reagir se houve adição/remoção de nós (troca de view)\n const hasStructuralChange = mutations.some(\n (m) => m.type === 'childList' && (m.addedNodes.length > 0 || m.removedNodes.length > 0)\n );\n\n if (!hasStructuralChange) {\n return;\n }\n\n if (debounceTimer) {\n clearTimeout(debounceTimer);\n }\n debounceTimer = setTimeout(() => {\n isProcessing = true;\n this.fixPanelAccessibility();\n this.focusBestTarget();\n isProcessing = false;\n }, MUTATION_DEBOUNCE_MS);\n });\n\n this.observer.observe(panel, {\n childList: true,\n subtree: true,\n });\n }\n\n private disconnectObserver(): void {\n if (this.observer) {\n this.observer.disconnect();\n this.observer = null;\n }\n }\n}\n","import { Directive, ElementRef, OnInit, Renderer2, OnDestroy, inject } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\n\n/**\n * Diretiva para melhorar a acessibilidade dos botões do paginador PrimeNG\n * Adiciona tabindex=\"0\" aos botões habilitados e tabindex=\"-1\" aos desabilitados\n * Adiciona aria-labels traduzidos para os botões do paginador\n */\n@Directive({\n selector: '[sPaginatorAccessibility]',\n standalone: true\n})\nexport class PaginatorAccessibilityDirective implements OnInit, OnDestroy {\n private readonly el = inject(ElementRef);\n private readonly renderer = inject(Renderer2);\n private readonly translateService = inject(TranslateService);\n\n private observer: MutationObserver | null = null;\n private readonly equalWebSpanMarker = 'data-equalweb-sr-only';\n private isObserverPaused = false;\n private observedPaginatorElement: Element | null = null;\n\n ngOnInit() {\n // Aguarda o próximo ciclo para garantir que o paginador foi renderizado\n setTimeout(() => {\n this.updatePaginatorButtons();\n this.observePaginatorChanges();\n });\n }\n\n ngOnDestroy() {\n if (this.observer) {\n this.observer.disconnect();\n }\n }\n\n private updatePaginatorButtons() {\n const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n if (!paginatorElement) {\n return;\n }\n\n // Atualiza botões de navegação (first, prev, next, last)\n const navigationSelectors = {\n '.p-paginator-first': this.translateService.instant('platform.angular_components.aria_first_page'),\n '.p-paginator-prev': this.translateService.instant('platform.angular_components.aria_previous_page'),\n '.p-paginator-next': this.translateService.instant('platform.angular_components.aria_next_page'),\n '.p-paginator-last': this.translateService.instant('platform.angular_components.aria_last_page'),\n '.p-select-label': this.translateService.instant('platform.angular_components.aria_page_selection')\n };\n\n Object.entries(navigationSelectors).forEach(([selector, label]) => {\n const button = paginatorElement.querySelector(selector);\n if (button) {\n const isDisabled = this.isButtonDisabled(button);\n this.updateTabIndex(button, isDisabled);\n if (isDisabled) {\n this.renderer.removeAttribute(button, 'data-ind-readable');\n } else {\n this.renderer.setAttribute(button, 'data-ind-readable', 'true');\n }\n this.renderer.setAttribute(button, 'aria-label', label);\n this.applyEqualWebTextFix(button, label, isDisabled);\n }\n });\n\n // Atualiza botões de página numérica\n const pageButtons = paginatorElement.querySelectorAll('.p-paginator-page');\n pageButtons.forEach((button: Element) => {\n const pageNumber = this.getPaginatorPageNumber(button);\n if (pageNumber) {\n const isDisabled = this.isButtonDisabled(button);\n const isSelected = button.classList.contains('p-paginator-page-selected');\n const ariaLabel = isSelected \n ? this.translateService.instant('platform.angular_components.aria_current_page', { page: pageNumber })\n : this.translateService.instant('platform.angular_components.aria_page_number', { page: pageNumber });\n this.renderer.setAttribute(button, 'aria-label', ariaLabel);\n this.updateTabIndex(button, isDisabled);\n this.applyEqualWebTextFix(button, ariaLabel, isDisabled);\n \n if (isSelected) {\n this.renderer.setAttribute(button, 'aria-current', 'page');\n } else {\n this.renderer.removeAttribute(button, 'aria-current');\n }\n }\n });\n }\n\n private isButtonDisabled(button: Element): boolean {\n return button.hasAttribute('disabled') || button.classList.contains('p-disabled');\n }\n\n private updateTabIndex(button: Element, isDisabled: boolean) {\n if (isDisabled) {\n this.renderer.removeAttribute(button, 'tabindex');\n return;\n }\n\n this.renderer.setAttribute(button, 'tabindex', '0');\n }\n\n private getPaginatorPageNumber(button: Element): string {\n const buttonElement = button as HTMLElement;\n\n // Evita pegar texto do span sr-only criado pela diretiva.\n const visualLabel = buttonElement.querySelector(`span:not([${this.equalWebSpanMarker}])`);\n const visualText = visualLabel?.textContent?.trim();\n if (visualText) {\n return visualText;\n }\n\n // Fallback para casos em que o PrimeNG renderiza sem span interno.\n const srOnlyText = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`)?.textContent?.trim() || '';\n const fullText = buttonElement.textContent?.trim() || '';\n return fullText.replace(srOnlyText, '').trim();\n }\n\n private applyEqualWebTextFix(button: Element, accessibleText: string, isDisabled: boolean) {\n const buttonElement = button as HTMLElement;\n\n // Oculta spans visuais do PrimeNG para o script do EqualWeb.\n const visualSpans = buttonElement.querySelectorAll(`span:not([${this.equalWebSpanMarker}])`);\n visualSpans.forEach((span: Element) => {\n this.renderer.setAttribute(span, 'aria-hidden', 'true');\n });\n\n const existingSrOnly = buttonElement.querySelector(`span[${this.equalWebSpanMarker}=\"true\"]`);\n\n // Não mantém texto extra em botões desabilitados.\n if (isDisabled) {\n if (existingSrOnly) {\n this.renderer.removeChild(buttonElement, existingSrOnly);\n }\n return;\n }\n\n if (existingSrOnly) {\n this.renderer.removeAttribute(existingSrOnly, 'tabindex');\n this.renderer.setProperty(existingSrOnly, 'textContent', accessibleText);\n return;\n }\n\n const srOnlySpan = this.renderer.createElement('span');\n this.renderer.addClass(srOnlySpan, 'sr-only');\n this.renderer.setAttribute(srOnlySpan, this.equalWebSpanMarker, 'true');\n this.renderer.removeAttribute(srOnlySpan, 'tabindex');\n const srOnlyText = this.renderer.createText(accessibleText);\n this.renderer.appendChild(srOnlySpan, srOnlyText);\n this.renderer.appendChild(buttonElement, srOnlySpan);\n }\n\n private observePaginatorChanges() {\n const paginatorElement = this.el.nativeElement.querySelector('p-paginator');\n if (!paginatorElement) {\n return;\n }\n\n this.observedPaginatorElement = paginatorElement;\n\n // Observa mudanças no paginador (quando botões são habilitados/desabilitados)\n this.observer = new MutationObserver(() => {\n this.updateWithObserverPaused();\n });\n\n this.startObserving();\n }\n\n private updateWithObserverPaused() {\n if (!this.observer || this.isObserverPaused) {\n return;\n }\n\n this.isObserverPaused = true;\n this.observer.disconnect();\n\n try {\n this.updatePaginatorButtons();\n } finally {\n this.startObserving();\n this.isObserverPaused = false;\n }\n }\n\n private startObserving() {\n if (!this.observer || !this.observedPaginatorElement) {\n return;\n }\n\n this.observer.observe(this.observedPaginatorElement, {\n attributes: true,\n childList: true,\n subtree: true,\n attributeFilter: ['disabled', 'class', 'tabindex']\n });\n }\n}\n","import { Directive, ElementRef, OnInit, OnDestroy, inject } from '@angular/core';\n\n/**\n * Diretiva para corrigir a acessibilidade de checkboxes em tabelas PrimeNG.\n *\n * Propaga o `aria-label` dos custom elements wrapper (`p-tablecheckbox` e\n * `p-tableheadercheckbox`) para os `<input type=\"checkbox\">` internos e\n * remove o atributo do wrapper, eliminando as violações WCAG 4.1.2:\n * - `label` (crítica): input sem nome acessível\n * - `aria-prohibited-attr` (séria): aria-label em custom element sem role ARIA\n *\n * Remove também o `aria-label` do `p-checkbox` intermediário e monitora\n * mutations de atributo para re-aplicar o label correto caso o binding\n * interno do PrimeNG sobrescreva o valor no input via change detection.\n *\n * Utiliza MutationObserver para tratar linhas adicionadas dinamicamente\n * (paginação, lazy loading).\n *\n * Uso: `<p-table sTableCheckboxAccessibility ...>`\n */\n@Directive({\n selector: '[sTableCheckboxAccessibility]',\n standalone: true,\n})\nexport class TableCheckboxAccessibilityDirective implements OnInit, OnDestroy {\n private readonly el = inject<ElementRef<HTMLElement>>(ElementRef);\n\n private childListObserver: MutationObserver | null = null;\n private attributeObserver: MutationObserver | null = null;\n private isChildListPaused = false;\n private isAttributePaused = false;\n private readonly observedElements: Element[] = [];\n private readonly inputLabelMap = new Map<Element, string>();\n\n private static readonly CHECKBOX_SELECTOR = 'p-tablecheckbox, p-tableheadercheckbox';\n private static readonly INNER_CHECKBOX_SELECTOR = 'p-checkbox';\n private static readonly INPUT_SELECTOR = 'input[type=\"checkbox\"]';\n private static readonly ARIA_LABEL_ATTR = 'aria-label';\n\n ngOnInit() {\n setTimeout(() => {\n this.updateCheckboxLabels();\n this.observeTableChanges();\n });\n }\n\n ngOnDestroy() {\n this.childListObserver?.disconnect();\n this.attributeObserver?.disconnect();\n this.inputLabelMap.clear();\n }\n\n private updateCheckboxLabels() {\n const host = this.el.nativeElement;\n const checkboxWrappers = host.querySelectorAll(TableCheckboxAccessibilityDirective.CHECKBOX_SELECTOR);\n\n checkboxWrappers.forEach((wrapper) => {\n const wrapperAriaLabel = wrapper.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n if (!wrapperAriaLabel?.trim()) {\n return;\n }\n\n const input = wrapper.querySelector(TableCheckboxAccessibilityDirective.INPUT_SELECTOR);\n if (!input) {\n return;\n }\n\n this.applyLabelToInput(input, wrapperAriaLabel);\n wrapper.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n this.removeInnerCheckboxAriaLabel(wrapper);\n });\n }\n\n private applyLabelToInput(input: Element, label: string) {\n this.inputLabelMap.set(input, label);\n input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, label);\n }\n\n private removeInnerCheckboxAriaLabel(wrapper: Element) {\n const innerCheckbox = wrapper.querySelector(TableCheckboxAccessibilityDirective.INNER_CHECKBOX_SELECTOR);\n if (innerCheckbox) {\n innerCheckbox.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n }\n }\n\n private observeTableChanges() {\n const host = this.el.nativeElement;\n const tbody = host.querySelector('tbody');\n const thead = host.querySelector('thead');\n\n if (tbody) {\n this.observedElements.push(tbody);\n }\n if (thead) {\n this.observedElements.push(thead);\n }\n\n if (this.observedElements.length === 0) {\n return;\n }\n\n this.childListObserver = new MutationObserver(() => {\n this.handleChildListMutation();\n });\n\n this.attributeObserver = new MutationObserver((mutations) => {\n this.handleAttributeMutations(mutations);\n });\n\n this.startObserving();\n }\n\n private handleAttributeMutations(mutations: MutationRecord[]) {\n if (this.isAttributePaused) {\n return;\n }\n\n this.isAttributePaused = true;\n\n try {\n mutations\n .filter((m) => m.attributeName === TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR)\n .forEach((mutation) => {\n const target = mutation.target as Element;\n const tagName = target.tagName?.toLowerCase();\n\n if (tagName === 'p-checkbox') {\n target.removeAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n } else if (tagName === 'input') {\n this.enforceInputLabel(target);\n } else {\n // Outros elementos não precisam de tratamento\n }\n });\n } finally {\n this.isAttributePaused = false;\n }\n }\n\n private enforceInputLabel(input: Element) {\n const correctLabel = this.inputLabelMap.get(input);\n if (!correctLabel) {\n return;\n }\n\n const currentLabel = input.getAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR);\n if (currentLabel !== correctLabel) {\n input.setAttribute(TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR, correctLabel);\n }\n }\n\n private handleChildListMutation() {\n if (!this.childListObserver || this.isChildListPaused) {\n return;\n }\n\n this.isChildListPaused = true;\n this.childListObserver.disconnect();\n\n try {\n this.updateCheckboxLabels();\n } finally {\n this.startObserving();\n this.isChildListPaused = false;\n }\n }\n\n private startObserving() {\n const { childListObserver, attributeObserver, observedElements } = this;\n\n if (!childListObserver) {\n return;\n }\n\n observedElements.forEach((element) => {\n childListObserver.observe(element, {\n childList: true,\n subtree: true,\n });\n\n if (attributeObserver) {\n attributeObserver.observe(element, {\n attributes: true,\n subtree: true,\n attributeFilter: [TableCheckboxAccessibilityDirective.ARIA_LABEL_ATTR],\n });\n }\n });\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -190,7 +190,7 @@ class SpotlightComponent {
190
190
  }
191
191
  }
192
192
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpotlightComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
193
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpotlightComponent, isStandalone: true, selector: "s-spotlight", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, currentStep: { classPropertyName: "currentStep", publicName: "currentStep", isSignal: true, isRequired: false, transformFunction: null }, totalSteps: { classPropertyName: "totalSteps", publicName: "totalSteps", isSignal: true, isRequired: false, transformFunction: null }, showDoNotShowAgain: { classPropertyName: "showDoNotShowAgain", publicName: "showDoNotShowAgain", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, arrowOffsetPx: { classPropertyName: "arrowOffsetPx", publicName: "arrowOffsetPx", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", next: "next", previous: "previous", understand: "understand" }, ngImport: i0, template: "<div\n [attr.role]=\"totalSteps() > 1 ? 'dialog' : 'tooltip'\"\n [attr.aria-modal]=\"totalSteps() > 1 ? 'true' : null\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.aria-describedby]=\"descId\"\n class=\"flex max-w-[342px]\"\n [ngClass]=\"isArrowLeft || isArrowRight ? 'flex-row' : 'flex-col'\"\n>\n @if (isArrowTop) {\n <ng-container *ngTemplateOutlet=\"arrowTopTemplate\"></ng-container>\n }\n\n @if (isArrowLeft) {\n <ng-container *ngTemplateOutlet=\"arrowLeftTemplate\"></ng-container>\n }\n\n <div\n class=\"relative flex w-full flex-col overflow-hidden rounded-[4px] bg-grayscale-0\"\n style=\"\n box-shadow:\n 0 3px 5px rgba(0, 0, 0, 0.2),\n 0 1px 18px rgba(0, 0, 0, 0.12),\n 0 6px 10px rgba(0, 0, 0, 0.14);\n \"\n >\n <!-- Regi\u00E3o aria-live para anuncia\u00E7\u00E3o de mudan\u00E7a de passo para leitores de tela -->\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n @if (totalSteps() > 1) {\n {{\n 'platform.angular_components.step_progress'\n | translate: { current: currentStep(), total: totalSteps() }\n }}\n }\n </span>\n <div class=\"flex h-[40px] w-full items-center justify-between p-[12px]\">\n <div class=\"flex min-w-0 flex-1 items-center gap-[8px]\">\n <h2\n [id]=\"titleId\"\n class=\"flex-1 overflow-hidden overflow-ellipsis whitespace-nowrap font-open-sans text-[14px] font-bold leading-[1.5] text-grayscale-90\"\n >\n @if (titleTemplate) {\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n } @else {\n {{ titleString }}\n }\n </h2>\n </div>\n <button\n (click)=\"onClose()\"\n class=\"flex h-[16px] w-[16px] flex-none items-center justify-center text-grayscale-90 transition-colors hover:text-grayscale-100\"\n [attr.aria-label]=\"'platform.angular_components.close' | translate\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n\n @if (content()) {\n <ng-container *ngTemplateOutlet=\"content()\"></ng-container>\n }\n\n <div class=\"flex w-full flex-col items-start gap-[20px] bg-grayscale-0 p-[12px]\">\n <div\n [id]=\"descId\"\n class=\"w-full whitespace-pre-wrap font-open-sans text-[14px] font-normal leading-[1.5] text-grayscale-90\"\n >\n @if (messageTemplate) {\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n } @else {\n {{ messageString }}\n }\n </div>\n\n <div class=\"flex w-full flex-wrap gap-3\">\n @if (totalSteps() > 1) {\n <p class=\"font-open-sans text-[14px] font-normal leading-[1.5] text-grayscale-90\">\n {{\n 'platform.angular_components.step_counter'\n | translate: { current: currentStep(), total: totalSteps() }\n }}\n </p>\n }\n\n @if (totalSteps() === 1 && showDoNotShowAgain()) {\n <s-checkbox\n [checked]=\"isDoNotShowAgainChecked()\"\n (checkedChange)=\"toggleDoNotShowAgain()\"\n [label]=\"'platform.angular_components.dont_show_again' | translate\"\n ></s-checkbox>\n }\n\n <div\n class=\"flex flex-wrap items-start justify-end gap-[8px]\"\n [ngClass]=\"totalSteps() > 1 ? 'w-full' : ''\"\n >\n @for (action of actions(); track action.label) {\n <s-button\n [label]=\"action.label\"\n (clicked)=\"action.handler()\"\n priority=\"default\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n }\n\n @if (totalSteps() > 1 && currentStep() > 1) {\n <s-button\n [label]=\"'platform.angular_components.back' | translate\"\n (clicked)=\"onPrevious()\"\n priority=\"default\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n }\n\n <s-button\n [label]=\"\n totalSteps() <= 1\n ? ('platform.angular_components.understood' | translate)\n : currentStep() < totalSteps()\n ? ('platform.angular_components.next' | translate)\n : ('platform.angular_components.complete' | translate)\n \"\n (clicked)=\"totalSteps() > 1 ? onNext() : onUnderstand()\"\n priority=\"secondary\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n </div>\n </div>\n </div>\n </div>\n\n @if (isArrowBottom) {\n <ng-container *ngTemplateOutlet=\"arrowBottomTemplate\"></ng-container>\n }\n\n @if (isArrowRight) {\n <ng-container *ngTemplateOutlet=\"arrowRightTemplate\"></ng-container>\n }\n</div>\n\n<!-- Arrow Templates -->\n<ng-template #arrowTopTemplate>\n <div\n class=\"relative z-10 flex h-[8px] w-full px-[12px] py-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowBottomTemplate>\n <div\n class=\"relative z-10 flex h-[8px] w-full px-[12px] py-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowLeftTemplate>\n <div\n class=\"relative z-10 flex w-[8px] flex-col items-center self-stretch px-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowRightTemplate>\n <div\n class=\"relative z-10 flex w-[8px] flex-col items-center self-stretch px-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel"], outputs: ["clicked"] }, { kind: "component", type: CheckboxComponent, selector: "s-checkbox", inputs: ["disabled", "checked", "indeterminate", "label", "ariaLabel", "ariaLabelledBy"], outputs: ["disabledChange", "checkedChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
193
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.14", type: SpotlightComponent, isStandalone: true, selector: "s-spotlight", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: false, transformFunction: null }, message: { classPropertyName: "message", publicName: "message", isSignal: true, isRequired: false, transformFunction: null }, content: { classPropertyName: "content", publicName: "content", isSignal: true, isRequired: false, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, currentStep: { classPropertyName: "currentStep", publicName: "currentStep", isSignal: true, isRequired: false, transformFunction: null }, totalSteps: { classPropertyName: "totalSteps", publicName: "totalSteps", isSignal: true, isRequired: false, transformFunction: null }, showDoNotShowAgain: { classPropertyName: "showDoNotShowAgain", publicName: "showDoNotShowAgain", isSignal: true, isRequired: false, transformFunction: null }, actions: { classPropertyName: "actions", publicName: "actions", isSignal: true, isRequired: false, transformFunction: null }, arrowOffsetPx: { classPropertyName: "arrowOffsetPx", publicName: "arrowOffsetPx", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { closed: "closed", next: "next", previous: "previous", understand: "understand" }, ngImport: i0, template: "<div\n [attr.role]=\"totalSteps() > 1 ? 'dialog' : 'tooltip'\"\n [attr.aria-modal]=\"totalSteps() > 1 ? 'true' : null\"\n [attr.aria-labelledby]=\"titleId\"\n [attr.aria-describedby]=\"descId\"\n class=\"flex max-w-[342px]\"\n [ngClass]=\"isArrowLeft || isArrowRight ? 'flex-row' : 'flex-col'\"\n>\n @if (isArrowTop) {\n <ng-container *ngTemplateOutlet=\"arrowTopTemplate\"></ng-container>\n }\n\n @if (isArrowLeft) {\n <ng-container *ngTemplateOutlet=\"arrowLeftTemplate\"></ng-container>\n }\n\n <div\n class=\"relative flex w-full flex-col overflow-hidden rounded-[4px] bg-grayscale-0\"\n style=\"\n box-shadow:\n 0 3px 5px rgba(0, 0, 0, 0.2),\n 0 1px 18px rgba(0, 0, 0, 0.12),\n 0 6px 10px rgba(0, 0, 0, 0.14);\n \"\n >\n <!-- Regi\u00E3o aria-live para anuncia\u00E7\u00E3o de mudan\u00E7a de passo para leitores de tela -->\n <span\n class=\"sr-only\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n >\n @if (totalSteps() > 1) {\n {{\n 'platform.angular_components.step_progress'\n | translate: { current: currentStep(), total: totalSteps() }\n }}\n }\n </span>\n <div class=\"flex h-[40px] w-full items-center justify-between p-[12px]\">\n <div class=\"flex min-w-0 flex-1 items-center gap-[8px]\">\n <h2\n [id]=\"titleId\"\n class=\"flex-1 overflow-hidden overflow-ellipsis whitespace-nowrap font-open-sans text-[14px] font-bold leading-[1.5] text-grayscale-90\"\n >\n @if (titleTemplate) {\n <ng-container *ngTemplateOutlet=\"titleTemplate\"></ng-container>\n } @else {\n {{ titleString }}\n }\n </h2>\n </div>\n <button\n (click)=\"onClose()\"\n class=\"flex h-[16px] w-[16px] flex-none items-center justify-center text-grayscale-90 transition-colors hover:text-grayscale-100\"\n [attr.aria-label]=\"'platform.angular_components.close' | translate\"\n >\n <i class=\"fas fa-times\"></i>\n </button>\n </div>\n\n @if (content()) {\n <ng-container *ngTemplateOutlet=\"content()\"></ng-container>\n }\n\n <div class=\"flex w-full flex-col items-start gap-[20px] bg-grayscale-0 p-[12px]\">\n <div\n [id]=\"descId\"\n class=\"w-full whitespace-pre-wrap font-open-sans text-[14px] font-normal leading-[1.5] text-grayscale-90\"\n >\n @if (messageTemplate) {\n <ng-container *ngTemplateOutlet=\"messageTemplate\"></ng-container>\n } @else {\n {{ messageString }}\n }\n </div>\n\n <div class=\"flex w-full flex-wrap gap-3\">\n @if (totalSteps() > 1) {\n <p class=\"font-open-sans text-[14px] font-normal leading-[1.5] text-grayscale-90\">\n {{\n 'platform.angular_components.step_counter'\n | translate: { current: currentStep(), total: totalSteps() }\n }}\n </p>\n }\n\n @if (totalSteps() === 1 && showDoNotShowAgain()) {\n <s-checkbox\n [checked]=\"isDoNotShowAgainChecked()\"\n (checkedChange)=\"toggleDoNotShowAgain()\"\n [label]=\"'platform.angular_components.dont_show_again' | translate\"\n ></s-checkbox>\n }\n\n <div\n class=\"flex flex-wrap items-start justify-end gap-[8px]\"\n [ngClass]=\"totalSteps() > 1 ? 'w-full' : ''\"\n >\n @for (action of actions(); track action.label) {\n <s-button\n [label]=\"action.label\"\n (clicked)=\"action.handler()\"\n priority=\"default\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n }\n\n @if (totalSteps() > 1 && currentStep() > 1) {\n <s-button\n [label]=\"'platform.angular_components.back' | translate\"\n (clicked)=\"onPrevious()\"\n priority=\"default\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n }\n\n <s-button\n [label]=\"\n totalSteps() <= 1\n ? ('platform.angular_components.understood' | translate)\n : currentStep() < totalSteps()\n ? ('platform.angular_components.next' | translate)\n : ('platform.angular_components.complete' | translate)\n \"\n (clicked)=\"totalSteps() > 1 ? onNext() : onUnderstand()\"\n priority=\"secondary\"\n size=\"small\"\n class=\"flex-none\"\n ></s-button>\n </div>\n </div>\n </div>\n </div>\n\n @if (isArrowBottom) {\n <ng-container *ngTemplateOutlet=\"arrowBottomTemplate\"></ng-container>\n }\n\n @if (isArrowRight) {\n <ng-container *ngTemplateOutlet=\"arrowRightTemplate\"></ng-container>\n }\n</div>\n\n<!-- Arrow Templates -->\n<ng-template #arrowTopTemplate>\n <div\n class=\"relative z-10 flex h-[8px] w-full px-[12px] py-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowBottomTemplate>\n <div\n class=\"relative z-10 flex h-[8px] w-full px-[12px] py-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowLeftTemplate>\n <div\n class=\"relative z-10 flex w-[8px] flex-col items-center self-stretch px-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n<ng-template #arrowRightTemplate>\n <div\n class=\"relative z-10 flex w-[8px] flex-col items-center self-stretch px-0\"\n [ngClass]=\"arrowAlignmentClass\"\n [ngStyle]=\"arrowPaddingStyle\"\n >\n <svg\n width=\"16\"\n height=\"8\"\n viewBox=\"0 0 16 8\"\n fill=\"none\"\n xmlns=\"http://www.w3.org/2000/svg\"\n class=\"text-grayscale-0\"\n [ngClass]=\"arrowRotation\"\n >\n <path\n d=\"M0 8L8 0L16 8\"\n fill=\"currentColor\"\n />\n </svg>\n </div>\n</ng-template>\n\n", dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i2.ButtonComponent, selector: "s-button", inputs: ["id", "label", "tooltip", "tooltipPosition", "iconClass", "rightIconClass", "caret", "styleClass", "baseZIndex", "disabled", "auxiliary", "type", "priority", "menuOptions", "size", "slide", "animation", "badge", "iconColor", "menuAriaLabel", "ariaLabel"], outputs: ["clicked"] }, { kind: "component", type: CheckboxComponent, selector: "s-checkbox", inputs: ["disabled", "checked", "indeterminate", "label", "ariaLabel", "ariaLabelledBy"], outputs: ["disabledChange", "checkedChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i3.TranslatePipe, name: "translate" }] });
194
194
  }
195
195
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.14", ngImport: i0, type: SpotlightComponent, decorators: [{
196
196
  type: Component,