mapa-library-ui 2.8.0 → 2.10.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 (36) hide show
  1. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +14 -2
  2. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  3. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +14 -2
  4. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  5. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +14 -2
  6. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
  7. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +14 -2
  8. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  9. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +14 -2
  10. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  11. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +14 -2
  12. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
  13. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +14 -2
  14. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
  15. package/fesm2022/mapa-library-ui-src-lib-components-group-report.mjs +64 -9
  16. package/fesm2022/mapa-library-ui-src-lib-components-group-report.mjs.map +1 -1
  17. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +14 -2
  18. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
  19. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs +14 -2
  20. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs.map +1 -1
  21. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs +14 -2
  22. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs.map +1 -1
  23. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +63 -8
  24. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
  25. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +14 -2
  26. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
  27. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs +14 -2
  28. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs.map +1 -1
  29. package/fesm2022/mapa-library-ui.mjs +296 -156
  30. package/fesm2022/mapa-library-ui.mjs.map +1 -1
  31. package/index.d.ts +67 -15
  32. package/mapa-library-ui-2.10.0.tgz +0 -0
  33. package/package.json +2 -2
  34. package/src/lib/components/group-report/index.d.ts +2 -0
  35. package/src/lib/components/table/index.d.ts +14 -1
  36. package/mapa-library-ui-2.8.0.tgz +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-components-filters.mjs","sources":["../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/icon/src/icon.component.ts","../../../projects/mapa-library-ui/src/lib/components/icon/src/icon.component.html","../../../projects/mapa-library-ui/src/lib/components/icon/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/checkbox/src/checkbox.component.ts","../../../projects/mapa-library-ui/src/lib/components/checkbox/src/checkbox.component.html","../../../projects/mapa-library-ui/src/lib/components/checkbox/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/i18n/mapa-ui-texts.ts","../../../projects/mapa-library-ui/src/lib/core/services/mapa-i18n.service.ts","../../../projects/mapa-library-ui/src/lib/core/services/validation-message-resolver.service.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.html","../../../projects/mapa-library-ui/src/lib/core/services/html-sanitizer.service.ts","../../../projects/mapa-library-ui/src/lib/core/pipes/safe-html.pipe.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/directives/mapa-mask-autofill-sync.directive.ts","../../../projects/mapa-library-ui/src/lib/core/directives/mat-input-autosize.directive.ts","../../../projects/mapa-library-ui/src/lib/components/input/src/input.component.ts","../../../projects/mapa-library-ui/src/lib/components/input/src/input.component.html","../../../projects/mapa-library-ui/src/lib/components/input/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/filters/src/filters.component.ts","../../../projects/mapa-library-ui/src/lib/components/filters/src/filters.component.html","../../../projects/mapa-library-ui/src/lib/components/filters/public-api.ts","../../../projects/mapa-library-ui/src/filters.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-filters.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n standalone: true,\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Input() shape: 'pill' | 'rounded' = 'rounded';\n @Input() fullWidth = false;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [class.mapa-button--rounded]=\"shape === 'rounded'\"\n [class.mapa-button--full-width]=\"fullWidth\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button>\n","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconRegistry } from \"@angular/material/icon\";\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'mapa-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class IconComponent {\n @Input() svg: string | null | undefined;\n\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {}\n\n ngOnChanges(): void {\n this.registerCustomIcons(this.svg!);\n }\n\n registerCustomIcons(svg: string): void {\n this.matIconRegistry.addSvgIcon(\n svg,\n this.domSanitizer.bypassSecurityTrustResourceUrl(`../../../../assets/${svg}.svg`)\n );\n }\n}\n","<mat-icon *ngIf=\"svg\" [svgIcon]=\"svg\"></mat-icon>\n<mat-icon *ngIf=\"!svg\"><ng-content></ng-content></mat-icon>\n","/*\n * Public API Surface of mapa-library-ui icon\n */\n\nexport * from './src/icon.component';\n","import { Component, Input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'mapa-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n imports: [ReactiveFormsModule, MatCheckboxModule],\n standalone: true\n})\nexport class CheckboxComponent {\n @Input() color: 'primary' | 'basic' | null | undefined;\n @Input() formControl!: FormControl;\n}\n","<mat-checkbox\n [formControl]=\"formControl\"\n [class.primary]=\"color === 'primary'\"\n [class.basic]=\"color === 'basic'\"\n>\n</mat-checkbox>\n","/*\n * Public API Surface of mapa-library-ui icon\n */\n\nexport * from './src/checkbox.component';\n","import { InjectionToken, Provider } from '@angular/core';\nimport type {\n MapaUiTextGroups,\n PartialMapaUiTexts,\n ValidationContext,\n ValidationTextResolver,\n} from 'mapa-frontend-i18n';\n\nexport type MapaUiTexts = MapaUiTextGroups;\nexport type ValidationMessageContext = ValidationContext;\nexport type { PartialMapaUiTexts, ValidationTextResolver };\n\nexport const MAPA_UI_TEXTS = new InjectionToken<PartialMapaUiTexts>(\n 'MAPA_UI_TEXTS',\n);\n\nfunction formatPaginatorRange(\n page: number,\n pageSize: number,\n length: number,\n): string {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n\n const safeLength = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < safeLength\n ? Math.min(startIndex + pageSize, safeLength)\n : startIndex + pageSize;\n\n return `${startIndex + 1} - ${endIndex} de ${safeLength}`;\n}\n\nfunction formatPaginatorShowingRange(\n page: number,\n pageSize: number,\n length: number,\n): string {\n if (length === 0 || pageSize === 0) {\n return 'Mostrando 0 - 0 de 0 item';\n }\n\n const safeLength = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < safeLength\n ? Math.min(startIndex + pageSize, safeLength)\n : startIndex + pageSize;\n const itemLabel = safeLength === 1 ? 'item' : 'itens';\n\n return `Mostrando ${startIndex + 1} - ${endIndex} de ${safeLength} ${itemLabel}`;\n}\n\nfunction formatItemCount(count: number): string {\n return `${count} ${count === 1 ? 'item' : 'itens'}`;\n}\n\nconst DEFAULT_MAPA_UI_TEXTS: MapaUiTexts = {\n common: {\n selectAll: 'Selecionar todos',\n retry: 'Tentar novamente',\n },\n filters: {\n clear: 'Limpar filtros',\n submit: 'Filtrar',\n },\n datepicker: {\n startDatePlaceholder: 'Data inicial',\n endDatePlaceholder: 'Data final',\n },\n capability: {\n groupAverageTitle: 'Média geral do grupo',\n individualAverageTitle: 'Média geral do indivíduo',\n conceptTitle: 'Conceito',\n resultTitle: 'Resultado',\n positiveIndicatorsTitle: 'Indicadores positivos',\n negativeIndicatorsTitle: 'Indicadores negativos',\n riskIndicatorsTitle: 'Indicadores de risco',\n precipitationRiskTitle: 'Risco de acidente por precipitação',\n negligenceRiskTitle: 'Risco de acidente por negligência',\n negativeDirectionLabel: 'Direção Negativa |',\n positiveDirectionLabel: 'Direção Positiva |',\n },\n report: {\n summarized: 'Resumida',\n detailed: 'Detalhada',\n list: 'Lista',\n chart: 'Gráfico',\n viewModeLabel: 'Modo de visualização',\n readingInformationTitle: 'Informações de leitura',\n dimensionTitle: 'Dimensão',\n conceptTitle: 'Conceito',\n classificationTitle: 'Classificação',\n resultReadingTitle: 'Leitura do resultado',\n resultTitle: 'Resultado',\n globalAverageTitle: 'Média global',\n factorsTitle: 'Fatores relativos à organização e ao trabalho',\n strongPointsTitle: 'Pontos fortes',\n attentionPointsTitle: 'Pontos de atenção',\n vulnerabilitiesTitle: 'Vulnerabilidades socioemocionais',\n positiveDirectionLabel: 'Direção positiva',\n negativeDirectionLabel: 'Direção negativa',\n lowerIntensityLabel: 'Menos intensamente',\n higherIntensityLabel: 'Mais intensamente',\n noClassification: 'Sem classificação',\n emptyState: 'Não há resultados disponíveis para esta seção.',\n interpretationTitle: 'Interpretação',\n detailedListLabel: 'Lista detalhada',\n groupAverageTitle: 'Média geral do grupo',\n groupDistributionLabel: 'Distribuição do grupo',\n overallPercentageTitle: '% Geral',\n summarizedReportTitle: 'Relatório resumido',\n detailedReportTitle: 'Relatório detalhado',\n competenciesAndDimensionsTitle: 'Competências e dimensões',\n parameterizationRankingTitle: 'Ranqueamento da parametrização',\n groupsTitle: 'Grupos',\n competenciesTitle: 'Competências',\n finalClassificationTitle: 'Classificação final',\n evaluationDateTitle: 'Data da avaliação',\n unitTitle: 'Unidade',\n positionTitle: 'Cargo',\n scaleConceptTitle: 'Conceito da escala',\n psychosocialFactorsTitle: 'Fatores psicossociais',\n editConclusionLabel: 'Editar conclusão',\n addConclusionLabel: 'Adicionar conclusão',\n meterLabel: (name: string, value: number) => `${name}: ${value}%`,\n gaugeLabel: (name: string, value: number) => `${name}: ${value}%`,\n itemCountLabel: formatItemCount,\n },\n paginator: {\n itemsPerPage: 'Itens por página',\n nextPage: 'Próxima página',\n previousPage: 'Página anterior',\n rangeLabel: formatPaginatorRange,\n showingRangeLabel: formatPaginatorShowingRange,\n },\n warning: {\n lowReliabilityTitle: 'Nível baixo de confiabilidade no(s) teste(s):',\n expirationLimitTitle: 'O prazo de validade do(s) teste(s) está no limite:',\n },\n table: {\n emptyTitle: 'Não foram encontrados resultados',\n emptySubtitle: '',\n loading: 'Carregando resultados',\n errorTitle: 'Não foi possível carregar os resultados.',\n selectAllVisible: 'Selecionar todos os itens desta página',\n selectionColumn: 'Seleção',\n selectRow: 'Selecionar item',\n selectNamedRow: (item: string) => `Selecionar ${item}`,\n },\n validation: {\n cnpj: 'CNPJ inválido',\n cpf: 'CPF inválido',\n email: 'E-mail inválido',\n max: (context?: ValidationContext) =>\n `O valor máximo permitido é ${context?.max ?? ''}`.trim(),\n maxLength: (context?: ValidationContext) =>\n `O máximo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),\n min: (context?: ValidationContext) =>\n `O valor mínimo permitido é ${context?.min ?? ''}`.trim(),\n minLength: (context?: ValidationContext) =>\n `O mínimo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),\n pattern: 'Formato inválido',\n required: 'Campo obrigatório',\n },\n};\n\nfunction getDefaultTexts(): MapaUiTexts {\n return DEFAULT_MAPA_UI_TEXTS;\n}\n\nexport function mergeMapaUiTexts(\n customTexts?: PartialMapaUiTexts | null,\n): MapaUiTexts {\n const defaults = getDefaultTexts();\n\n return {\n common: { ...defaults.common, ...(customTexts?.common ?? {}) },\n filters: { ...defaults.filters, ...(customTexts?.filters ?? {}) },\n datepicker: { ...defaults.datepicker, ...(customTexts?.datepicker ?? {}) },\n capability: { ...defaults.capability, ...(customTexts?.capability ?? {}) },\n report: { ...defaults.report, ...(customTexts?.report ?? {}) },\n paginator: { ...defaults.paginator, ...(customTexts?.paginator ?? {}) },\n warning: { ...defaults.warning, ...(customTexts?.warning ?? {}) },\n table: { ...defaults.table, ...(customTexts?.table ?? {}) },\n validation: { ...defaults.validation, ...(customTexts?.validation ?? {}) },\n };\n}\n\nexport function provideMapaUiTexts(texts: PartialMapaUiTexts): Provider {\n return {\n provide: MAPA_UI_TEXTS,\n useValue: texts,\n };\n}\n","import { Inject, Injectable, Injector, Optional, inject, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport {\n MAPA_UI_TEXTS,\n MapaUiTexts,\n PartialMapaUiTexts,\n ValidationMessageContext,\n ValidationTextResolver,\n mergeMapaUiTexts,\n} from \"../i18n/mapa-ui-texts\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MapaI18nService {\n private readonly injector = inject(Injector);\n private readonly textsState = signal<MapaUiTexts>(mergeMapaUiTexts());\n\n readonly textsSignal = this.textsState.asReadonly();\n readonly texts$ = toObservable(this.textsSignal, { injector: this.injector });\n\n constructor(\n @Optional() @Inject(MAPA_UI_TEXTS) customTexts: PartialMapaUiTexts | null\n ) {\n if (customTexts) {\n this.textsState.set(mergeMapaUiTexts(customTexts));\n }\n }\n\n get texts(): MapaUiTexts {\n return this.textsState();\n }\n\n setTexts(texts: PartialMapaUiTexts): void {\n this.textsState.set(mergeMapaUiTexts(texts));\n }\n\n resolveValidationText(\n key: keyof MapaUiTexts[\"validation\"],\n context?: ValidationMessageContext\n ): string {\n return this.resolveText(this.texts.validation[key], context);\n }\n\n private resolveText(\n value: ValidationTextResolver,\n context?: ValidationMessageContext\n ): string {\n return typeof value === \"function\" ? value(context) : value;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AbstractControl, ValidationErrors } from \"@angular/forms\";\nimport { Errors } from \"../elements/errors\";\nimport { MapaI18nService } from \"./mapa-i18n.service\";\n\ntype ValidationKey =\n | \"required\"\n | \"minlength\"\n | \"maxlength\"\n | \"cpf\"\n | \"cnpj\"\n | \"email\"\n | \"pattern\"\n | \"min\"\n | \"max\";\n\ntype ErrorOverrides = Errors & {\n maxlength?: string;\n minlength?: string;\n};\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ValidationMessageResolverService {\n private readonly errorOrder: ValidationKey[] = [\n \"required\",\n \"minlength\",\n \"maxlength\",\n \"cpf\",\n \"cnpj\",\n \"email\",\n \"pattern\",\n \"min\",\n \"max\",\n ];\n\n constructor(private readonly i18n: MapaI18nService) {}\n\n resolveFirstError(\n control?: AbstractControl | null,\n errors?: Errors\n ): string | null {\n const validationErrors = control?.errors;\n\n if (!validationErrors) {\n return null;\n }\n\n const firstErrorKey = this.errorOrder.find((key) => control?.hasError(key));\n\n if (!firstErrorKey) {\n return null;\n }\n\n return this.resolveErrorMessage(firstErrorKey, validationErrors, errors);\n }\n\n private resolveErrorMessage(\n errorKey: ValidationKey,\n validationErrors: ValidationErrors,\n errors?: Errors\n ): string {\n const errorOverrides = errors as ErrorOverrides | undefined;\n const customMessage = this.getCustomMessage(errorKey, errorOverrides);\n\n if (customMessage) {\n return customMessage;\n }\n\n const errorValue = validationErrors[errorKey];\n\n switch (errorKey) {\n case \"minlength\":\n return this.i18n.resolveValidationText(\"minLength\", errorValue);\n case \"maxlength\":\n return this.i18n.resolveValidationText(\"maxLength\", errorValue);\n case \"min\":\n return this.i18n.resolveValidationText(\"min\", errorValue);\n case \"max\":\n return this.i18n.resolveValidationText(\"max\", errorValue);\n default:\n return this.i18n.resolveValidationText(errorKey);\n }\n }\n\n private getCustomMessage(\n errorKey: ValidationKey,\n errors?: ErrorOverrides\n ): string | undefined {\n if (!errors) {\n return undefined;\n }\n\n switch (errorKey) {\n case \"minlength\":\n return errors.minLength ?? errors.minlength;\n case \"maxlength\":\n return errors.maxLength ?? errors.maxlength;\n default:\n return errors[errorKey];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { Errors } from \"../../elements/errors\";\nimport { ValidationMessageResolverService } from \"../../services/validation-message-resolver.service\";\n\n@Component({\n selector: \"mapa-form-errors\",\n imports: [CommonModule, MatFormFieldModule],\n templateUrl: \"./form-errors.component.html\"\n})\nexport class MapaFormErrorsComponent {\n @Input() control?: AbstractControl | null;\n @Input() errors?: Errors;\n\n constructor(\n private readonly validationMessageResolver: ValidationMessageResolverService\n ) {}\n\n get message(): string | null {\n return this.validationMessageResolver.resolveFirstError(\n this.control,\n this.errors\n );\n }\n}\n","<span *ngIf=\"message\">\n {{ message }}\n</span>\n","import { Injectable, SecurityContext } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nexport function sanitizeHtmlContent(\n sanitizer: DomSanitizer,\n value?: string | null\n): string {\n return sanitizer.sanitize(SecurityContext.HTML, value ?? \"\") ?? \"\";\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class HtmlSanitizerService {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n sanitize(value?: string | null): string {\n return sanitizeHtmlContent(this.sanitizer, value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HtmlSanitizerService } from \"../services/html-sanitizer.service\";\n\n@Pipe({\n name: \"safeHtml\",\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly htmlSanitizer: HtmlSanitizerService) {}\n\n transform(value?: string | null): string {\n return this.htmlSanitizer.sanitize(value);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition } from \"@angular/cdk/overlay\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n forwardRef,\n inject,\n signal,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport { EMPTY, merge, Subscription } from \"rxjs\";\nimport { ButtonComponent } from \"../../button/public-api\";\nimport { MapaFormErrorsComponent } from \"../../../core/components/form-errors/form-errors.component\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { SafeHtmlPipe } from \"../../../core/pipes/safe-html.pipe\";\nimport { MapaI18nService } from \"../../../core/services/mapa-i18n.service\";\n\n@Component({\n selector: \"mapa-dropdown\",\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ButtonComponent,\n MapaFormErrorsComponent,\n SafeHtmlPipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MapaDropdownComponent),\n multi: true,\n },\n ],\n templateUrl: \"./dropdown.component.html\",\n styleUrl: \"./dropdown.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapaDropdownComponent implements ControlValueAccessor {\n private readonly i18n = inject(MapaI18nService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isOpenState = signal(false);\n private readonly overlayWidthState = signal(0);\n private formControlValue!: FormControl<unknown>;\n private formControlChanges?: Subscription;\n\n @Input({ required: true }) element!: Dropdown;\n @Input({ required: true })\n set formControl(control: FormControl<unknown>) {\n this.formControlChanges?.unsubscribe();\n this.formControlValue = control;\n this.formControlChanges = merge(\n control.events,\n control.parent?.events ?? EMPTY,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n get formControl(): FormControl<unknown> {\n return this.formControlValue;\n }\n @Input() formControlSearch?: FormControl<string | null>;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n @Output() openedChange = new EventEmitter<boolean>();\n\n @ViewChild(\"triggerButton\")\n private triggerButton?: ElementRef<HTMLButtonElement>;\n @ViewChild(\"searchInput\")\n private searchInput?: ElementRef<HTMLInputElement>;\n\n readonly overlayPositions: ConnectedPosition[] = [\n {\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 8,\n },\n {\n originX: \"start\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n offsetY: -8,\n },\n ];\n\n writeValue(_value: unknown): void {\n // The inner control is bound directly through the formControl input.\n }\n\n registerOnChange(_fn: (value: unknown) => void): void {\n // Changes are propagated by the supplied formControl.\n }\n\n registerOnTouched(_fn: () => void): void {\n // Touch state is propagated by the supplied formControl.\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // Disabled state is propagated by the supplied formControl.\n }\n\n isOpen(): boolean {\n return this.isOpenState();\n }\n\n overlayWidth(): number {\n return this.overlayWidthState();\n }\n\n isMultiple(): boolean {\n return !!this.element.multiple;\n }\n\n isDisabled(): boolean {\n return !!this.formControl?.disabled;\n }\n\n hasGroups(): boolean {\n return this.isElementGroup(this.element.options?.[0]);\n }\n\n selectedOptions(): ElementOption[] {\n const value = this.formControl?.value;\n\n if (Array.isArray(value)) {\n return value.filter((option): option is ElementOption =>\n this.isElementOption(option),\n );\n }\n\n return this.isElementOption(value) ? [value] : [];\n }\n\n selectedLabel(): string {\n const selected = this.selectedOptions();\n if (!selected.length) {\n return this.element.placeholder || \"\";\n }\n\n return selected.map((option) => option.value).join(\", \");\n }\n\n isOptionSelected(option: ElementOption): boolean {\n return this.selectedOptions().some(\n (selected) => selected.key === option.key,\n );\n }\n\n hasValue(): boolean {\n return this.selectedOptions().length > 0;\n }\n\n get selectAllLabel(): string {\n return this.i18n.textsSignal().common.selectAll;\n }\n\n isAllSelected(): boolean {\n const options = this.visibleOptions();\n return (\n options.length > 0 &&\n options.every((option) => this.isOptionSelected(option))\n );\n }\n\n isIndeterminate(): boolean {\n const options = this.visibleOptions();\n const selectedCount = options.filter((option) =>\n this.isOptionSelected(option),\n ).length;\n return selectedCount > 0 && selectedCount < options.length;\n }\n\n toggleSelectAll(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const options = this.visibleOptions();\n const next = this.isAllSelected() ? [] : options.slice();\n this.formControl.setValue(next);\n this.markControlAsChanged();\n }\n\n options(): ElementOption[] {\n if (this.hasGroups()) {\n return (this.element.options as ElementGroup[]).flatMap(\n (group) => group.options,\n );\n }\n\n return (this.element.options as ElementOption[]) ?? [];\n }\n\n filteredOptions(): ElementOption[] {\n const options = this.hasGroups() ? [] : this.options();\n const searchTerm = this.normalizedSearchTerm();\n\n if (!searchTerm) {\n return options;\n }\n\n return options.filter((option) =>\n this.normalizeValue(option.value).includes(searchTerm),\n );\n }\n\n filteredGroups(): ElementGroup[] {\n if (!this.hasGroups()) {\n return [];\n }\n\n const groups = this.element.options as ElementGroup[];\n const searchTerm = this.normalizedSearchTerm();\n\n if (!searchTerm) {\n return groups;\n }\n\n return groups\n .map((group) => ({\n label: group.label,\n options: this.normalizeValue(group.label).includes(searchTerm)\n ? group.options\n : group.options.filter((option) =>\n this.normalizeValue(option.value).includes(searchTerm),\n ),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n visibleOptions(): ElementOption[] {\n return this.hasGroups()\n ? this.filteredGroups().flatMap((group) => group.options)\n : this.filteredOptions();\n }\n\n hasSearch(): boolean {\n return !!this.searchControl;\n }\n\n searchPlaceholder(): string {\n return this.element.search?.placeholder ?? \"\";\n }\n\n emptyStateLabel(): string {\n return this.element.search?.noEntriesFoundLabel ?? \"\";\n }\n\n shouldShowError(): boolean {\n return (\n this.formControl.invalid &&\n (this.formControl.dirty || this.formControl.touched)\n );\n }\n\n optionPadding(option: ElementOption): number {\n const level = Math.max(0, option.childrenLevel ?? 0);\n return level === 0 ? 16 : 10 + level * 20;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const isOpening = !this.isOpenState();\n this.setOpenState(isOpening);\n\n if (isOpening) {\n this.overlayWidthState.set(\n this.triggerButton?.nativeElement.offsetWidth ?? 0,\n );\n this.searchControl?.setValue(\"\", { emitEvent: true });\n setTimeout(() => {\n this.triggerButton?.nativeElement.blur();\n this.searchInput?.nativeElement.focus();\n this.searchInput?.nativeElement.select();\n });\n return;\n }\n\n this.markAsTouchedIfEmpty();\n }\n\n selectOption(option: ElementOption): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isMultiple()) {\n this.toggleOption(option);\n return;\n }\n\n this.formControl.setValue(option);\n this.markControlAsChanged();\n this.closeDropdown();\n }\n\n clearValue(event: Event): void {\n event.stopPropagation();\n if (this.isDisabled()) {\n return;\n }\n\n this.formControl.setValue(this.isMultiple() ? [] : null);\n this.markControlAsChanged();\n }\n\n closeDropdown(): void {\n if (this.isOpenState()) {\n this.setOpenState(false);\n }\n this.searchControl?.setValue(\"\", { emitEvent: true });\n this.markAsTouchedIfEmpty();\n }\n\n handleOverlayOutsideClick(event: Event): void {\n if (this.triggerButton?.nativeElement.contains(event.target as Node)) {\n return;\n }\n this.closeDropdown();\n }\n\n @HostListener(\"window:resize\")\n handleWindowResize(): void {\n if (this.isOpenState()) {\n this.overlayWidthState.set(\n this.triggerButton?.nativeElement.offsetWidth ?? 0,\n );\n }\n }\n\n get searchControl(): FormControl<string | null> | undefined {\n return (this.element.search?.formControl ?? this.formControlSearch) as\n | FormControl<string | null>\n | undefined;\n }\n\n private toggleOption(option: ElementOption): void {\n const current = this.selectedOptions();\n const next = this.isOptionSelected(option)\n ? current.filter((selected) => selected.key !== option.key)\n : [...current, option];\n this.formControl.setValue(next);\n this.markControlAsChanged();\n }\n\n private normalizedSearchTerm(): string {\n return this.normalizeValue(this.searchControl?.value?.trim());\n }\n\n private normalizeValue(value?: string | null): string {\n return (value ?? \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLocaleLowerCase();\n }\n\n private isElementGroup(\n value: ElementOption | ElementGroup | undefined,\n ): value is ElementGroup {\n return !!value && \"label\" in value && \"options\" in value;\n }\n\n private isElementOption(value: unknown): value is ElementOption {\n return (\n !!value &&\n typeof value === \"object\" &&\n \"key\" in value &&\n \"value\" in value\n );\n }\n\n private markControlAsChanged(): void {\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n }\n\n private markAsTouchedIfEmpty(): void {\n if (!this.hasValue()) {\n this.formControl.markAsTouched();\n }\n }\n\n private setOpenState(isOpen: boolean): void {\n this.isOpenState.set(isOpen);\n this.openedChange.emit(isOpen);\n }\n}\n","<div\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--open]=\"isOpen()\"\n [class.mapa-dropdown--invalid]=\"shouldShowError()\"\n [class.mapa-dropdown--disabled]=\"isDisabled()\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n>\n @if (element.label) {\n <label class=\"mapa-dropdown__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <div class=\"mapa-dropdown__field-row\">\n <button\n #triggerButton\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"mapa-dropdown__trigger\"\n [class.mapa-dropdown__trigger--clearable]=\"hasValue() && element.clearValue\"\n [id]=\"element.key || null\"\n type=\"button\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleDropdown()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"listbox\"\n >\n <span\n class=\"mapa-dropdown__trigger-text\"\n [class.mapa-dropdown__trigger-text--placeholder]=\"!hasValue()\"\n [innerHTML]=\"selectedLabel() | safeHtml\"\n ></span>\n @if (hasValue() && !isDisabled() && element.clearValue) {\n <span\n class=\"mapa-dropdown__clear\"\n role=\"button\"\n aria-label=\"Limpar\"\n (click)=\"clearValue($event)\"\n >\n &times;\n </span>\n }\n </button>\n\n @if (element.actionButton) {\n <mapa-button\n class=\"mapa-dropdown__action\"\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n cdkConnectedOverlayPanelClass=\"mapa-dropdown__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-dropdown__panel\">\n @if (hasSearch()) {\n <input\n #searchInput\n class=\"mapa-dropdown__search-input\"\n type=\"text\"\n [formControl]=\"searchControl!\"\n [placeholder]=\"searchPlaceholder()\"\n />\n }\n\n <div class=\"mapa-dropdown__options\" role=\"listbox\">\n @if (isMultiple() && visibleOptions().length) {\n <button\n class=\"mapa-dropdown__option mapa-dropdown__option--select-all\"\n type=\"button\"\n (click)=\"toggleSelectAll()\"\n >\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isIndeterminate()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n />\n {{ selectAllLabel }}\n </button>\n }\n\n @if (hasGroups()) {\n @for (group of filteredGroups(); track group.label) {\n <div class=\"mapa-dropdown__group\" role=\"group\">\n <p class=\"mapa-dropdown__group-label\">{{ group.label }}</p>\n @for (option of group.options; track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n </div>\n }\n } @else {\n @for (option of filteredOptions(); track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n }\n\n @if (!visibleOptions().length) {\n <p class=\"mapa-dropdown__empty-state\">\n {{ emptyStateLabel() }}\n </p>\n }\n </div>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-dropdown__error\">\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-dropdown__hint\">{{ element.hint }}</p>\n }\n</div>\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\n","import { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Input,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { NgxMaskDirective, NgxMaskService } from 'ngx-mask';\nimport { filter } from 'rxjs/operators';\n\ntype MaskedElement = HTMLInputElement | HTMLTextAreaElement;\n\n/**\n * Máscaras numéricas cujo valor de modelo não é a simples projeção\n * \"texto renderizado menos caracteres especiais\". `separator` ainda altera\n * `NgxMaskService.specialCharacters` em runtime, o que quebra a simetria da\n * comparação feita aqui. Nenhuma delas é produzida por autofill.\n */\nconst SKIPPED_MASK_PREFIXES = ['separator', 'percent'];\n\n/**\n * Mantém o FormControl em sincronia com `input.value` quando o valor foi escrito\n * por algo que não é o usuário: autofill do navegador, gerenciador de senhas ou\n * extensão (geradores de CPF/CNPJ).\n *\n * A NgxMaskDirective é o ControlValueAccessor de todo input com máscara desta\n * biblioteca e só empurra valor para o modelo a partir do seu host listener de\n * `input`. O handler de `blur` chama `onTouch()` mas nunca `onChange()`, e não\n * existe listener de `change`. Um agente externo que atribui `element.value` sem\n * disparar um evento `input` nativo deixa o controle no valor anterior, mantendo\n * o erro `required` na tela até o usuário redigitar o campo.\n *\n * Esta diretiva detecta a divergência e reenvia o evento `input` que faltou,\n * fazendo a NgxMaskDirective analisar, re-renderizar e emitir exatamente como se\n * o usuário tivesse colado o valor. É no-op enquanto DOM e modelo concordam.\n */\n@Directive({\n selector: 'input[mask], textarea[mask]',\n standalone: true,\n exportAs: 'mapaMaskAutofillSync',\n host: {\n '(change)': 'reconcile()',\n '(focusout)': 'reconcile()',\n },\n})\nexport class MapaMaskAutofillSyncDirective implements OnInit {\n /** Permite desligar a reconciliação em um campo específico. */\n @Input({ transform: booleanAttribute }) mapaMaskAutofillSync = true;\n\n private readonly elementRef = inject<ElementRef<MaskedElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly autofillMonitor = inject(AutofillMonitor);\n private readonly maskDirective = inject(NgxMaskDirective, {\n self: true,\n optional: true,\n });\n private readonly maskService = inject(NgxMaskService, {\n self: true,\n optional: true,\n });\n private readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n private reconciling = false;\n\n ngOnInit(): void {\n // monitor() é idempotente por elemento e devolve um Subject compartilhado\n // com o MatInput, que já monitora este mesmo elemento. Nunca chamar\n // stopMonitoring(): ele completa esse Subject e remove o listener de\n // animação para todos os consumidores. O MatInput cuida do teardown.\n this.autofillMonitor\n .monitor(this.elementRef.nativeElement)\n .pipe(\n filter((event) => event.isAutofilled),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.reconcile());\n }\n\n /** Idempotente: não faz nada enquanto DOM e modelo concordam. */\n reconcile(): void {\n if (!this.mapaMaskAutofillSync || this.reconciling) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n // ngControl.control só existe depois do ngOnChanges da FormControlDirective,\n // por isso é lido aqui e não no construtor.\n const control = this.ngControl?.control;\n\n if (!control || control.disabled || element.readOnly) {\n return;\n }\n\n if (element instanceof HTMLInputElement && element.type === 'number') {\n return;\n }\n\n const mask = this.maskDirective?.mask() ?? '';\n\n if (SKIPPED_MASK_PREFIXES.some((prefix) => mask.startsWith(prefix))) {\n return;\n }\n\n if (this.isInSync(element, control, mask)) {\n return;\n }\n\n const previousValue = control.value;\n\n this.reconciling = true;\n\n try {\n // Reenvia o que o navegador deveria ter emitido. A NgxMaskDirective relê\n // element.value, reaplica a máscara, re-renderiza o campo e empurra o\n // valor pelo seu próprio pipeline de CVA — marcando o controle como dirty\n // e reexecutando todos os validadores.\n element.dispatchEvent(new Event('input', { bubbles: true }));\n\n if (control.value === previousValue) {\n // O evento não moveu o modelo. Acontece com controles criados como\n // { updateOn: 'blur' | 'submit' }, em que o value accessor apenas\n // enfileira a mudança em vez de comitá-la.\n control.setValue(this.toModelValue(element.value, mask));\n control.markAsDirty();\n }\n } finally {\n this.reconciling = false;\n }\n }\n\n private isInSync(\n element: MaskedElement,\n control: AbstractControl,\n mask: string\n ): boolean {\n return (\n this.toComparable(element.value, mask) ===\n this.toComparable(this.stringify(control.value), mask)\n );\n }\n\n /**\n * Sem máscara, o texto renderizado e o valor de modelo são a mesma string. Com\n * máscara eles diferem apenas pelos caracteres especiais, então limpar os dois\n * lados com as regras da própria NgxMaskService vale tanto para\n * `dropSpecialCharacters: true` quanto para `false`.\n */\n private toComparable(value: string, mask: string): string {\n return mask && this.maskService ? this.maskService.removeMask(value) : value;\n }\n\n private toModelValue(domValue: string, mask: string): string {\n return mask && this.maskService && this.maskService.dropSpecialCharacters\n ? this.maskService.removeMask(domValue)\n : domValue;\n }\n\n private stringify(value: unknown): string {\n return value === null || value === undefined ? '' : String(value);\n }\n}\n","/*\n* Originally from: https://github.com/anotherkitten/mat-input-autosize\n* @author: Ellie Larson (anotherkitten)\n*/\n\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n Input,\n Optional,\n Self,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgModel } from '@angular/forms';\nimport { MatInput } from '@angular/material/input';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[matInputAutosize]',\n standalone: true,\n})\nexport class MatInputAutosizeDirective implements AfterViewInit {\n inputElement: HTMLInputElement;\n hiddenText!: Text;\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() matInputAutosizeMaxWidth?: string | null;\n @Input() matInputAutosizeMinWidth = '120px';\n @Input() matInputAutosizeFontStyle?: string | null;\n\n constructor(\n el: ElementRef<HTMLInputElement>,\n @Self() private childMatInput: MatInput,\n @Optional() @Self() private childNgModel: NgModel\n ) {\n this.inputElement = el.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.checkErrors();\n this.overwriteParentWidth();\n this.createHiddenTextContainer();\n this.setOwnStyles();\n this.subscribeToChanges();\n }\n\n checkErrors(): void {\n if (!(this.inputElement instanceof HTMLInputElement)) {\n throw new Error('matInputAutosize directive must be on an input element');\n }\n\n if (!this.childMatInput) {\n throw new Error(\n 'Element with matInputAutosize directive must also have the matInput directive'\n );\n }\n }\n\n overwriteParentWidth(): void {\n Object.assign((this.inputElement.parentNode as HTMLElement).style, {\n width: '100%',\n });\n }\n\n createHiddenTextContainer(): void {\n const textContainer = document.createElement('div');\n Object.assign(textContainer.style, {\n display: 'inline-block',\n 'max-width': this.matInputAutosizeMaxWidth || null,\n 'min-width': `max(var(--mapa-input-autosize-preferred-width, 0px), ${this.matInputAutosizeMinWidth})`,\n font: this.matInputAutosizeFontStyle || null,\n visibility: 'hidden',\n 'white-space': 'pre',\n });\n this.inputElement.parentNode?.appendChild(textContainer);\n\n this.hiddenText = document.createTextNode(' ');\n textContainer.appendChild(this.hiddenText);\n }\n\n setOwnStyles(): void {\n Object.assign(this.inputElement.style, {\n position: 'absolute',\n left: '0',\n });\n }\n\n subscribeToChanges(): void {\n if (this.childNgModel) {\n this.childNgModel.control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.changeHiddenText(value));\n return;\n }\n\n fromEvent(this.inputElement, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeHiddenText(this.inputElement.value));\n }\n\n changeHiddenText = (newValue: unknown): void => {\n if (this.hiddenText) {\n this.hiddenText.data = `${newValue ?? ''} `;\n }\n };\n}\n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\nimport { ButtonComponent } from '../../button/public-api';\nimport { MapaFormErrorsComponent } from '../../../core/components/form-errors/form-errors.component';\nimport { MapaMaskAutofillSyncDirective } from '../../../core/directives/mapa-mask-autofill-sync.directive';\nimport { MatInputAutosizeDirective } from '../../../core/directives/mat-input-autosize.directive';\nimport { InputText } from '../../../core/elements/input-text';\n\n@Component({\n selector: 'mapa-input',\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgxMaskDirective,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ButtonComponent,\n MatInputAutosizeDirective,\n MapaMaskAutofillSyncDirective,\n MapaFormErrorsComponent,\n ],\n providers: [\n provideNgxMask(),\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MapaInputComponent),\n multi: true,\n },\n ],\n standalone: true\n})\nexport class MapaInputComponent implements ControlValueAccessor {\n @Input() formControl!: FormControl<unknown>;\n @Input() element!: InputText;\n @Input() type!: string;\n @Output() suffix: EventEmitter<void> = new EventEmitter<void>();\n\n writeValue(_value: unknown): void {\n // No-op: the inner <input> is bound directly to the @Input formControl,\n // so writes from the parent FormControl already propagate through it.\n }\n\n registerOnChange(_fn: (value: unknown) => void): void {\n // No-op: change propagation is handled by the DefaultValueAccessor on the\n // inner <input matInput [formControl]=\"formControl\"> binding.\n }\n\n registerOnTouched(_fn: () => void): void {\n // No-op for the same reason.\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // No-op: disabled state is propagated via the @Input formControl directly.\n }\n\n hasValue(): boolean {\n return !!this.formControl?.value;\n }\n\n clearValue(): void {\n this.formControl?.setValue(null);\n }\n\n suffixEmit(): void {\n this.suffix.emit();\n }\n}\n","<label *ngIf=\"element.label\" class=\"mapa-input__label\">\n {{ element.label }}\n</label>\n<div class=\"mapa-form--inline\">\n <mat-form-field\n class=\"mapa-input\"\n [class.mapa-input--autosize]=\"element.autosize\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n >\n <mat-icon *ngIf=\"element.prefix\" class=\"mapa-input--prefix\" matPrefix>\n {{ element.prefix }}\n </mat-icon>\n <input\n *ngIf=\"element.autosize\"\n matInput\n matInputAutosize\n [matInputAutosizeMinWidth]=\"element.autosizeMinWidth!\"\n [matInputAutosizeMaxWidth]=\"element.autosizeMaxWidth!\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n thousandSeparator=\".\"\n decimalMarker=\",\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <input\n matInput\n *ngIf=\"!element.autosize\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n type=\"button\"\n tabindex=\"-1\"\n matSuffix\n aria-label=\"Limpar\"\n (click)=\"clearValue()\"\n class=\"mapa-input--close\"\n >\n &times;\n </button>\n <mat-icon\n *ngIf=\"element.suffix\"\n class=\"mapa-input--suffix\"\n matSuffix\n (click)=\"suffix.emit()\"\n >\n {{ element.suffix }}\n </mat-icon>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n </mat-form-field>\n\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n</div>\n","/*\n * Public API Surface of mapa-library-ui input\n */\n\nexport * from './src/input.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonComponent } from '../../button/public-api';\nimport { CheckboxComponent } from '../../checkbox/public-api';\nimport { MapaDropdownComponent } from '../../dropdown/public-api';\nimport { MapaInputComponent } from '../../input/public-api';\nimport { ElementBase } from '../../../core/elements/element-base';\nimport { MapaI18nService } from '../../../core/services/mapa-i18n.service';\n\n@Component({\n selector: 'mapa-filters',\n templateUrl: './filters.component.html',\n styleUrl: './filters.component.scss',\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ButtonComponent,\n CheckboxComponent,\n MapaDropdownComponent,\n MapaInputComponent,\n ],\n standalone: true\n})\nexport class FiltersComponent {\n @Input() form!: FormGroup;\n @Input() elements!: ElementBase[];\n @Output() selectedValues = new EventEmitter<Record<string, unknown>>();\n \n constructor(private readonly i18n: MapaI18nService) {}\n\n get texts() {\n return this.i18n.textsSignal();\n }\n\n get clearFiltersLabel(): string {\n return this.texts.filters.clear;\n }\n\n get submitFiltersLabel(): string {\n return this.texts.filters.submit;\n }\n\n getFormControl(filterKey: string): FormControl<unknown> {\n return this.form.get(filterKey) as FormControl<unknown>;\n }\n\n clearFilters(): void {\n this.form.reset();\n }\n\n emitSelectedValues(): void {\n this.selectedValues.emit(this.form.getRawValue() as Record<string, unknown>);\n }\n}\n","<div class=\"filter\">\n <div *ngFor=\"let filter of elements\">\n <div *ngIf=\"filter.controlType === 'checkbox'\" class=\"filter__item--resizable\">\n <mapa-checkbox [formControl]=\"getFormControl(filter.key)\"></mapa-checkbox>\n </div>\n <div *ngIf=\"filter.controlType === 'dropdown'\" class=\"filter__item--resizable\">\n <mapa-dropdown\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-dropdown>\n </div>\n <div *ngIf=\"filter.controlType === 'input'\" class=\"filter__item\">\n <mapa-input\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-input>\n </div>\n </div>\n <div class=\"filter__item\">\n <mapa-button [color]=\"'basic'\" (clicked)=\"clearFilters()\">\n {{ clearFiltersLabel }}\n </mapa-button>\n <mapa-button\n [color]=\"'primary'\"\n [disabled]=\"!!form.invalid\"\n (clicked)=\"emitSelectedValues()\"\n >\n {{ submitFiltersLabel }}\n </mapa-button>\n </div>\n</div>\n\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/filters.component';\n","/*\n * Public API Surface of mapa-library-ui filters\n */\n\nexport * from './lib/components/button/public-api';\nexport * from './lib/components/icon/public-api';\nexport * from './lib/components/filters/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './filters';\n"],"names":["i2","i1.MapaI18nService","i1.ValidationMessageResolverService","i1","i1.HtmlSanitizerService","i4","i5","i3"],"mappings":"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"}
1
+ {"version":3,"file":"mapa-library-ui-src-lib-components-filters.mjs","sources":["../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.ts","../../../projects/mapa-library-ui/src/lib/components/button/src/button.component.html","../../../projects/mapa-library-ui/src/lib/components/button/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/icon/src/icon.component.ts","../../../projects/mapa-library-ui/src/lib/components/icon/src/icon.component.html","../../../projects/mapa-library-ui/src/lib/components/icon/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/checkbox/src/checkbox.component.ts","../../../projects/mapa-library-ui/src/lib/components/checkbox/src/checkbox.component.html","../../../projects/mapa-library-ui/src/lib/components/checkbox/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/i18n/mapa-ui-texts.ts","../../../projects/mapa-library-ui/src/lib/core/services/mapa-i18n.service.ts","../../../projects/mapa-library-ui/src/lib/core/services/validation-message-resolver.service.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.ts","../../../projects/mapa-library-ui/src/lib/core/components/form-errors/form-errors.component.html","../../../projects/mapa-library-ui/src/lib/core/services/html-sanitizer.service.ts","../../../projects/mapa-library-ui/src/lib/core/pipes/safe-html.pipe.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.ts","../../../projects/mapa-library-ui/src/lib/components/dropdown/src/dropdown.component.html","../../../projects/mapa-library-ui/src/lib/components/dropdown/public-api.ts","../../../projects/mapa-library-ui/src/lib/core/directives/mapa-mask-autofill-sync.directive.ts","../../../projects/mapa-library-ui/src/lib/core/directives/mat-input-autosize.directive.ts","../../../projects/mapa-library-ui/src/lib/components/input/src/input.component.ts","../../../projects/mapa-library-ui/src/lib/components/input/src/input.component.html","../../../projects/mapa-library-ui/src/lib/components/input/public-api.ts","../../../projects/mapa-library-ui/src/lib/components/filters/src/filters.component.ts","../../../projects/mapa-library-ui/src/lib/components/filters/src/filters.component.html","../../../projects/mapa-library-ui/src/lib/components/filters/public-api.ts","../../../projects/mapa-library-ui/src/filters.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-filters.ts"],"sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\n\n@Component({\n selector: 'mapa-button',\n templateUrl: './button.component.html',\n styleUrl: './button.component.scss',\n standalone: true,\n})\nexport class ButtonComponent {\n @Input() color: 'primary' | 'accent' | 'basic' | null | undefined;\n @Input() disabled!: boolean;\n @Input() shape: 'pill' | 'rounded' = 'rounded';\n @Input() fullWidth = false;\n @Output() clicked: EventEmitter<void> = new EventEmitter<void>();\n\n onClick(): void {\n this.clicked.emit();\n }\n}\n","<button\n class=\"mapa-button\"\n (click)=\"onClick()\"\n [class.primary]=\"color === 'primary'\"\n [class.accent]=\"color === 'accent'\"\n [class.basic]=\"color === 'basic'\"\n [class.mapa-button--rounded]=\"shape === 'rounded'\"\n [class.mapa-button--full-width]=\"fullWidth\"\n [disabled]=\"disabled\"\n>\n <ng-content></ng-content>\n</button>\n","/*\n * Public API Surface of mapa-library-ui button\n */\n\nexport * from './src/button.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, Input } from '@angular/core';\nimport { MatIconRegistry } from \"@angular/material/icon\";\nimport { MatIconModule } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@Component({\n selector: 'mapa-icon',\n templateUrl: './icon.component.html',\n styleUrl: './icon.component.scss',\n standalone: true,\n imports: [CommonModule, MatIconModule],\n})\nexport class IconComponent {\n @Input() svg: string | null | undefined;\n\n constructor(\n private matIconRegistry: MatIconRegistry,\n private domSanitizer: DomSanitizer\n ) {}\n\n ngOnChanges(): void {\n this.registerCustomIcons(this.svg!);\n }\n\n registerCustomIcons(svg: string): void {\n this.matIconRegistry.addSvgIcon(\n svg,\n this.domSanitizer.bypassSecurityTrustResourceUrl(`../../../../assets/${svg}.svg`)\n );\n }\n}\n","<mat-icon *ngIf=\"svg\" [svgIcon]=\"svg\"></mat-icon>\n<mat-icon *ngIf=\"!svg\"><ng-content></ng-content></mat-icon>\n","/*\n * Public API Surface of mapa-library-ui icon\n */\n\nexport * from './src/icon.component';\n","import { Component, Input } from '@angular/core';\nimport { FormControl, ReactiveFormsModule } from '@angular/forms';\nimport { MatCheckboxModule } from '@angular/material/checkbox';\n\n@Component({\n selector: 'mapa-checkbox',\n templateUrl: './checkbox.component.html',\n styleUrl: './checkbox.component.scss',\n imports: [ReactiveFormsModule, MatCheckboxModule],\n standalone: true\n})\nexport class CheckboxComponent {\n @Input() color: 'primary' | 'basic' | null | undefined;\n @Input() formControl!: FormControl;\n}\n","<mat-checkbox\n [formControl]=\"formControl\"\n [class.primary]=\"color === 'primary'\"\n [class.basic]=\"color === 'basic'\"\n>\n</mat-checkbox>\n","/*\n * Public API Surface of mapa-library-ui icon\n */\n\nexport * from './src/checkbox.component';\n","import { InjectionToken, Provider } from '@angular/core';\nimport type {\n MapaUiTextGroups,\n PartialMapaUiTexts,\n ValidationContext,\n ValidationTextResolver,\n} from 'mapa-frontend-i18n';\n\nexport type MapaUiTexts = MapaUiTextGroups;\nexport type ValidationMessageContext = ValidationContext;\nexport type { PartialMapaUiTexts, ValidationTextResolver };\n\nexport const MAPA_UI_TEXTS = new InjectionToken<PartialMapaUiTexts>(\n 'MAPA_UI_TEXTS',\n);\n\nfunction formatPaginatorRange(\n page: number,\n pageSize: number,\n length: number,\n): string {\n if (length === 0 || pageSize === 0) {\n return `0 de ${length}`;\n }\n\n const safeLength = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < safeLength\n ? Math.min(startIndex + pageSize, safeLength)\n : startIndex + pageSize;\n\n return `${startIndex + 1} - ${endIndex} de ${safeLength}`;\n}\n\nfunction formatPaginatorShowingRange(\n page: number,\n pageSize: number,\n length: number,\n): string {\n if (length === 0 || pageSize === 0) {\n return 'Mostrando 0 - 0 de 0 item';\n }\n\n const safeLength = Math.max(length, 0);\n const startIndex = page * pageSize;\n const endIndex =\n startIndex < safeLength\n ? Math.min(startIndex + pageSize, safeLength)\n : startIndex + pageSize;\n const itemLabel = safeLength === 1 ? 'item' : 'itens';\n\n return `Mostrando ${startIndex + 1} - ${endIndex} de ${safeLength} ${itemLabel}`;\n}\n\nfunction formatItemCount(count: number): string {\n return `${count} ${count === 1 ? 'item' : 'itens'}`;\n}\n\nconst DEFAULT_MAPA_UI_TEXTS: MapaUiTexts = {\n common: {\n selectAll: 'Selecionar todos',\n retry: 'Tentar novamente',\n },\n filters: {\n clear: 'Limpar filtros',\n submit: 'Filtrar',\n },\n datepicker: {\n startDatePlaceholder: 'Data inicial',\n endDatePlaceholder: 'Data final',\n },\n capability: {\n groupAverageTitle: 'Média geral do grupo',\n individualAverageTitle: 'Média geral do indivíduo',\n conceptTitle: 'Conceito',\n resultTitle: 'Resultado',\n positiveIndicatorsTitle: 'Indicadores positivos',\n negativeIndicatorsTitle: 'Indicadores negativos',\n riskIndicatorsTitle: 'Indicadores de risco',\n precipitationRiskTitle: 'Risco de acidente por precipitação',\n negligenceRiskTitle: 'Risco de acidente por negligência',\n negativeDirectionLabel: 'Direção Negativa |',\n positiveDirectionLabel: 'Direção Positiva |',\n },\n report: {\n summarized: 'Resumida',\n detailed: 'Detalhada',\n list: 'Lista',\n chart: 'Gráfico',\n viewModeLabel: 'Modo de visualização',\n readingInformationTitle: 'Informações de leitura',\n dimensionTitle: 'Dimensão',\n indicatorTitle: 'Indicador',\n conceptTitle: 'Conceito',\n classificationTitle: 'Classificação',\n resultReadingTitle: 'Leitura do resultado',\n resultTitle: 'Resultado',\n globalAverageTitle: 'Média global',\n factorsTitle: 'Fatores relativos à organização e ao trabalho',\n strongPointsTitle: 'Pontos fortes',\n attentionPointsTitle: 'Pontos de atenção',\n vulnerabilitiesTitle: 'Vulnerabilidades socioemocionais',\n positiveDirectionLabel: 'Direção positiva',\n negativeDirectionLabel: 'Direção negativa',\n lowerIntensityLabel: 'Menos intenso',\n higherIntensityLabel: 'Mais intenso',\n noClassification: 'Sem classificação',\n emptyState: 'Não há resultados disponíveis para esta seção.',\n interpretationTitle: 'Interpretação',\n detailedListLabel: 'Lista detalhada',\n groupAverageTitle: 'Média geral do grupo',\n groupDistributionLabel: 'Distribuição do grupo',\n overallPercentageTitle: '% Geral',\n summarizedReportTitle: 'Relatório resumido',\n detailedReportTitle: 'Relatório detalhado',\n competenciesAndDimensionsTitle: 'Competências e dimensões',\n parameterizationRankingTitle: 'Ranqueamento da parametrização',\n groupsTitle: 'Grupos',\n competenciesTitle: 'Competências',\n finalClassificationTitle: 'Classificação final',\n evaluationDateTitle: 'Data da avaliação',\n unitTitle: 'Unidade',\n positionTitle: 'Cargo',\n scaleConceptTitle: 'Conceito da escala',\n psychosocialFactorsTitle: 'Fatores psicossociais',\n editConclusionLabel: 'Editar conclusão',\n addConclusionLabel: 'Adicionar conclusão',\n meterLabel: (name: string, value: number) => `${name}: ${value}%`,\n gaugeLabel: (name: string, value: number) => `${name}: ${value}%`,\n itemCountLabel: formatItemCount,\n continueLabel: 'Continuar',\n newGroupTitle: 'Novo grupo',\n groupNameHint: 'Esse nome identifica o grupo nas tabelas, gráficos e legendas.',\n groupNameRequired: 'Informe o nome do grupo.',\n groupPeopleRequired: 'Selecione pelo menos uma pessoa para criar o grupo.',\n groupMinimumHint: 'Crie pelo menos dois grupos para comparar.',\n groupUnsavedHint: 'Salve ou cancele as alterações em edição antes de analisar os resultados.',\n groupSavedLabel: (name: string) => `Grupo ${name} salvo.`,\n groupCountLabel: (count: number, limit: number) => `${count} de ${limit} grupos criados`,\n scaleCountLabel: (count: number) =>\n `${count} ${count === 1 ? 'escala' : 'escalas'}`,\n },\n paginator: {\n itemsPerPage: 'Itens por página',\n nextPage: 'Próxima página',\n previousPage: 'Página anterior',\n rangeLabel: formatPaginatorRange,\n showingRangeLabel: formatPaginatorShowingRange,\n },\n warning: {\n lowReliabilityTitle: 'Nível baixo de confiabilidade no(s) teste(s):',\n expirationLimitTitle: 'O prazo de validade do(s) teste(s) está no limite:',\n },\n table: {\n emptyTitle: 'Não foram encontrados resultados',\n emptySubtitle: '',\n loading: 'Carregando resultados',\n errorTitle: 'Não foi possível carregar os resultados.',\n selectAllVisible: 'Selecionar todos os itens desta página',\n selectionColumn: 'Seleção',\n selectRow: 'Selecionar item',\n horizontalScrollHint: 'Role horizontalmente para ver todas as colunas →',\n selectNamedRow: (item: string) => `Selecionar ${item}`,\n },\n validation: {\n cnpj: 'CNPJ inválido',\n cpf: 'CPF inválido',\n email: 'E-mail inválido',\n max: (context?: ValidationContext) =>\n `O valor máximo permitido é ${context?.max ?? ''}`.trim(),\n maxLength: (context?: ValidationContext) =>\n `O máximo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),\n min: (context?: ValidationContext) =>\n `O valor mínimo permitido é ${context?.min ?? ''}`.trim(),\n minLength: (context?: ValidationContext) =>\n `O mínimo permitido é ${context?.requiredLength ?? ''} caracteres`.trim(),\n pattern: 'Formato inválido',\n required: 'Campo obrigatório',\n },\n};\n\nfunction getDefaultTexts(): MapaUiTexts {\n return DEFAULT_MAPA_UI_TEXTS;\n}\n\nexport function mergeMapaUiTexts(\n customTexts?: PartialMapaUiTexts | null,\n): MapaUiTexts {\n const defaults = getDefaultTexts();\n\n return {\n common: { ...defaults.common, ...(customTexts?.common ?? {}) },\n filters: { ...defaults.filters, ...(customTexts?.filters ?? {}) },\n datepicker: { ...defaults.datepicker, ...(customTexts?.datepicker ?? {}) },\n capability: { ...defaults.capability, ...(customTexts?.capability ?? {}) },\n report: { ...defaults.report, ...(customTexts?.report ?? {}) },\n paginator: { ...defaults.paginator, ...(customTexts?.paginator ?? {}) },\n warning: { ...defaults.warning, ...(customTexts?.warning ?? {}) },\n table: { ...defaults.table, ...(customTexts?.table ?? {}) },\n validation: { ...defaults.validation, ...(customTexts?.validation ?? {}) },\n };\n}\n\nexport function provideMapaUiTexts(texts: PartialMapaUiTexts): Provider {\n return {\n provide: MAPA_UI_TEXTS,\n useValue: texts,\n };\n}\n","import { Inject, Injectable, Injector, Optional, inject, signal } from \"@angular/core\";\nimport { toObservable } from \"@angular/core/rxjs-interop\";\nimport {\n MAPA_UI_TEXTS,\n MapaUiTexts,\n PartialMapaUiTexts,\n ValidationMessageContext,\n ValidationTextResolver,\n mergeMapaUiTexts,\n} from \"../i18n/mapa-ui-texts\";\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class MapaI18nService {\n private readonly injector = inject(Injector);\n private readonly textsState = signal<MapaUiTexts>(mergeMapaUiTexts());\n\n readonly textsSignal = this.textsState.asReadonly();\n readonly texts$ = toObservable(this.textsSignal, { injector: this.injector });\n\n constructor(\n @Optional() @Inject(MAPA_UI_TEXTS) customTexts: PartialMapaUiTexts | null\n ) {\n if (customTexts) {\n this.textsState.set(mergeMapaUiTexts(customTexts));\n }\n }\n\n get texts(): MapaUiTexts {\n return this.textsState();\n }\n\n setTexts(texts: PartialMapaUiTexts): void {\n this.textsState.set(mergeMapaUiTexts(texts));\n }\n\n resolveValidationText(\n key: keyof MapaUiTexts[\"validation\"],\n context?: ValidationMessageContext\n ): string {\n return this.resolveText(this.texts.validation[key], context);\n }\n\n private resolveText(\n value: ValidationTextResolver,\n context?: ValidationMessageContext\n ): string {\n return typeof value === \"function\" ? value(context) : value;\n }\n}\n","import { Injectable } from \"@angular/core\";\nimport { AbstractControl, ValidationErrors } from \"@angular/forms\";\nimport { Errors } from \"../elements/errors\";\nimport { MapaI18nService } from \"./mapa-i18n.service\";\n\ntype ValidationKey =\n | \"required\"\n | \"minlength\"\n | \"maxlength\"\n | \"cpf\"\n | \"cnpj\"\n | \"email\"\n | \"pattern\"\n | \"min\"\n | \"max\";\n\ntype ErrorOverrides = Errors & {\n maxlength?: string;\n minlength?: string;\n};\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class ValidationMessageResolverService {\n private readonly errorOrder: ValidationKey[] = [\n \"required\",\n \"minlength\",\n \"maxlength\",\n \"cpf\",\n \"cnpj\",\n \"email\",\n \"pattern\",\n \"min\",\n \"max\",\n ];\n\n constructor(private readonly i18n: MapaI18nService) {}\n\n resolveFirstError(\n control?: AbstractControl | null,\n errors?: Errors\n ): string | null {\n const validationErrors = control?.errors;\n\n if (!validationErrors) {\n return null;\n }\n\n const firstErrorKey = this.errorOrder.find((key) => control?.hasError(key));\n\n if (!firstErrorKey) {\n return null;\n }\n\n return this.resolveErrorMessage(firstErrorKey, validationErrors, errors);\n }\n\n private resolveErrorMessage(\n errorKey: ValidationKey,\n validationErrors: ValidationErrors,\n errors?: Errors\n ): string {\n const errorOverrides = errors as ErrorOverrides | undefined;\n const customMessage = this.getCustomMessage(errorKey, errorOverrides);\n\n if (customMessage) {\n return customMessage;\n }\n\n const errorValue = validationErrors[errorKey];\n\n switch (errorKey) {\n case \"minlength\":\n return this.i18n.resolveValidationText(\"minLength\", errorValue);\n case \"maxlength\":\n return this.i18n.resolveValidationText(\"maxLength\", errorValue);\n case \"min\":\n return this.i18n.resolveValidationText(\"min\", errorValue);\n case \"max\":\n return this.i18n.resolveValidationText(\"max\", errorValue);\n default:\n return this.i18n.resolveValidationText(errorKey);\n }\n }\n\n private getCustomMessage(\n errorKey: ValidationKey,\n errors?: ErrorOverrides\n ): string | undefined {\n if (!errors) {\n return undefined;\n }\n\n switch (errorKey) {\n case \"minlength\":\n return errors.minLength ?? errors.minlength;\n case \"maxlength\":\n return errors.maxLength ?? errors.maxlength;\n default:\n return errors[errorKey];\n }\n }\n}\n","import { CommonModule } from \"@angular/common\";\nimport { Component, Input } from \"@angular/core\";\nimport { AbstractControl } from \"@angular/forms\";\nimport { MatFormFieldModule } from \"@angular/material/form-field\";\nimport { Errors } from \"../../elements/errors\";\nimport { ValidationMessageResolverService } from \"../../services/validation-message-resolver.service\";\n\n@Component({\n selector: \"mapa-form-errors\",\n imports: [CommonModule, MatFormFieldModule],\n templateUrl: \"./form-errors.component.html\"\n})\nexport class MapaFormErrorsComponent {\n @Input() control?: AbstractControl | null;\n @Input() errors?: Errors;\n\n constructor(\n private readonly validationMessageResolver: ValidationMessageResolverService\n ) {}\n\n get message(): string | null {\n return this.validationMessageResolver.resolveFirstError(\n this.control,\n this.errors\n );\n }\n}\n","<span *ngIf=\"message\">\n {{ message }}\n</span>\n","import { Injectable, SecurityContext } from \"@angular/core\";\nimport { DomSanitizer } from \"@angular/platform-browser\";\n\nexport function sanitizeHtmlContent(\n sanitizer: DomSanitizer,\n value?: string | null\n): string {\n return sanitizer.sanitize(SecurityContext.HTML, value ?? \"\") ?? \"\";\n}\n\n@Injectable({\n providedIn: \"root\",\n})\nexport class HtmlSanitizerService {\n constructor(private readonly sanitizer: DomSanitizer) {}\n\n sanitize(value?: string | null): string {\n return sanitizeHtmlContent(this.sanitizer, value);\n }\n}\n","import { Pipe, PipeTransform } from \"@angular/core\";\nimport { HtmlSanitizerService } from \"../services/html-sanitizer.service\";\n\n@Pipe({\n name: \"safeHtml\",\n standalone: true,\n})\nexport class SafeHtmlPipe implements PipeTransform {\n constructor(private readonly htmlSanitizer: HtmlSanitizerService) {}\n\n transform(value?: string | null): string {\n return this.htmlSanitizer.sanitize(value);\n }\n}\n","import { CdkConnectedOverlay, CdkOverlayOrigin, ConnectedPosition } from \"@angular/cdk/overlay\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n ElementRef,\n EventEmitter,\n HostListener,\n Input,\n Output,\n ViewChild,\n forwardRef,\n inject,\n signal,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n ControlValueAccessor,\n FormControl,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport { EMPTY, merge, Subscription } from \"rxjs\";\nimport { ButtonComponent } from \"../../button/public-api\";\nimport { MapaFormErrorsComponent } from \"../../../core/components/form-errors/form-errors.component\";\nimport { Dropdown } from \"../../../core/elements/dropdown\";\nimport { ElementGroup } from \"../../../core/interfaces/element-group.interface\";\nimport { ElementOption } from \"../../../core/interfaces/element-option.interface\";\nimport { SafeHtmlPipe } from \"../../../core/pipes/safe-html.pipe\";\nimport { MapaI18nService } from \"../../../core/services/mapa-i18n.service\";\n\n@Component({\n selector: \"mapa-dropdown\",\n standalone: true,\n imports: [\n ReactiveFormsModule,\n CdkConnectedOverlay,\n CdkOverlayOrigin,\n ButtonComponent,\n MapaFormErrorsComponent,\n SafeHtmlPipe,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MapaDropdownComponent),\n multi: true,\n },\n ],\n templateUrl: \"./dropdown.component.html\",\n styleUrl: \"./dropdown.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class MapaDropdownComponent implements ControlValueAccessor {\n private readonly i18n = inject(MapaI18nService);\n private readonly cdr = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly isOpenState = signal(false);\n private readonly overlayWidthState = signal(0);\n private formControlValue!: FormControl<unknown>;\n private formControlChanges?: Subscription;\n\n @Input({ required: true }) element!: Dropdown;\n @Input({ required: true })\n set formControl(control: FormControl<unknown>) {\n this.formControlChanges?.unsubscribe();\n this.formControlValue = control;\n this.formControlChanges = merge(\n control.events,\n control.parent?.events ?? EMPTY,\n )\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.cdr.markForCheck());\n }\n\n get formControl(): FormControl<unknown> {\n return this.formControlValue;\n }\n @Input() formControlSearch?: FormControl<string | null>;\n @Input() border: \"soft\" | \"tag\" | \"highlight\" | null | undefined;\n @Output() openedChange = new EventEmitter<boolean>();\n\n @ViewChild(\"triggerButton\")\n private triggerButton?: ElementRef<HTMLButtonElement>;\n @ViewChild(\"searchInput\")\n private searchInput?: ElementRef<HTMLInputElement>;\n\n readonly overlayPositions: ConnectedPosition[] = [\n {\n originX: \"start\",\n originY: \"bottom\",\n overlayX: \"start\",\n overlayY: \"top\",\n offsetY: 8,\n },\n {\n originX: \"start\",\n originY: \"top\",\n overlayX: \"start\",\n overlayY: \"bottom\",\n offsetY: -8,\n },\n ];\n\n writeValue(_value: unknown): void {\n // The inner control is bound directly through the formControl input.\n }\n\n registerOnChange(_fn: (value: unknown) => void): void {\n // Changes are propagated by the supplied formControl.\n }\n\n registerOnTouched(_fn: () => void): void {\n // Touch state is propagated by the supplied formControl.\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // Disabled state is propagated by the supplied formControl.\n }\n\n isOpen(): boolean {\n return this.isOpenState();\n }\n\n overlayWidth(): number {\n return this.overlayWidthState();\n }\n\n isMultiple(): boolean {\n return !!this.element.multiple;\n }\n\n isDisabled(): boolean {\n return !!this.formControl?.disabled;\n }\n\n hasGroups(): boolean {\n return this.isElementGroup(this.element.options?.[0]);\n }\n\n selectedOptions(): ElementOption[] {\n const value = this.formControl?.value;\n\n if (Array.isArray(value)) {\n return value.filter((option): option is ElementOption =>\n this.isElementOption(option),\n );\n }\n\n return this.isElementOption(value) ? [value] : [];\n }\n\n selectedLabel(): string {\n const selected = this.selectedOptions();\n if (!selected.length) {\n return this.element.placeholder || \"\";\n }\n\n return selected.map((option) => option.value).join(\", \");\n }\n\n isOptionSelected(option: ElementOption): boolean {\n return this.selectedOptions().some(\n (selected) => selected.key === option.key,\n );\n }\n\n hasValue(): boolean {\n return this.selectedOptions().length > 0;\n }\n\n get selectAllLabel(): string {\n return this.i18n.textsSignal().common.selectAll;\n }\n\n isAllSelected(): boolean {\n const options = this.visibleOptions();\n return (\n options.length > 0 &&\n options.every((option) => this.isOptionSelected(option))\n );\n }\n\n isIndeterminate(): boolean {\n const options = this.visibleOptions();\n const selectedCount = options.filter((option) =>\n this.isOptionSelected(option),\n ).length;\n return selectedCount > 0 && selectedCount < options.length;\n }\n\n toggleSelectAll(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const options = this.visibleOptions();\n const next = this.isAllSelected() ? [] : options.slice();\n this.formControl.setValue(next);\n this.markControlAsChanged();\n }\n\n options(): ElementOption[] {\n if (this.hasGroups()) {\n return (this.element.options as ElementGroup[]).flatMap(\n (group) => group.options,\n );\n }\n\n return (this.element.options as ElementOption[]) ?? [];\n }\n\n filteredOptions(): ElementOption[] {\n const options = this.hasGroups() ? [] : this.options();\n const searchTerm = this.normalizedSearchTerm();\n\n if (!searchTerm) {\n return options;\n }\n\n return options.filter((option) =>\n this.normalizeValue(option.value).includes(searchTerm),\n );\n }\n\n filteredGroups(): ElementGroup[] {\n if (!this.hasGroups()) {\n return [];\n }\n\n const groups = this.element.options as ElementGroup[];\n const searchTerm = this.normalizedSearchTerm();\n\n if (!searchTerm) {\n return groups;\n }\n\n return groups\n .map((group) => ({\n label: group.label,\n options: this.normalizeValue(group.label).includes(searchTerm)\n ? group.options\n : group.options.filter((option) =>\n this.normalizeValue(option.value).includes(searchTerm),\n ),\n }))\n .filter((group) => group.options.length > 0);\n }\n\n visibleOptions(): ElementOption[] {\n return this.hasGroups()\n ? this.filteredGroups().flatMap((group) => group.options)\n : this.filteredOptions();\n }\n\n hasSearch(): boolean {\n return !!this.searchControl;\n }\n\n searchPlaceholder(): string {\n return this.element.search?.placeholder ?? \"\";\n }\n\n emptyStateLabel(): string {\n return this.element.search?.noEntriesFoundLabel ?? \"\";\n }\n\n shouldShowError(): boolean {\n return (\n this.formControl.invalid &&\n (this.formControl.dirty || this.formControl.touched)\n );\n }\n\n optionPadding(option: ElementOption): number {\n const level = Math.max(0, option.childrenLevel ?? 0);\n return level === 0 ? 16 : 10 + level * 20;\n }\n\n toggleDropdown(): void {\n if (this.isDisabled()) {\n return;\n }\n\n const isOpening = !this.isOpenState();\n this.setOpenState(isOpening);\n\n if (isOpening) {\n this.overlayWidthState.set(\n this.triggerButton?.nativeElement.offsetWidth ?? 0,\n );\n this.searchControl?.setValue(\"\", { emitEvent: true });\n setTimeout(() => {\n this.triggerButton?.nativeElement.blur();\n this.searchInput?.nativeElement.focus();\n this.searchInput?.nativeElement.select();\n });\n return;\n }\n\n this.markAsTouchedIfEmpty();\n }\n\n selectOption(option: ElementOption): void {\n if (this.isDisabled()) {\n return;\n }\n\n if (this.isMultiple()) {\n this.toggleOption(option);\n return;\n }\n\n this.formControl.setValue(option);\n this.markControlAsChanged();\n this.closeDropdown();\n }\n\n clearValue(event: Event): void {\n event.stopPropagation();\n if (this.isDisabled()) {\n return;\n }\n\n this.formControl.setValue(this.isMultiple() ? [] : null);\n this.markControlAsChanged();\n }\n\n closeDropdown(): void {\n if (this.isOpenState()) {\n this.setOpenState(false);\n }\n this.searchControl?.setValue(\"\", { emitEvent: true });\n this.markAsTouchedIfEmpty();\n }\n\n handleOverlayOutsideClick(event: Event): void {\n if (this.triggerButton?.nativeElement.contains(event.target as Node)) {\n return;\n }\n this.closeDropdown();\n }\n\n @HostListener(\"window:resize\")\n handleWindowResize(): void {\n if (this.isOpenState()) {\n this.overlayWidthState.set(\n this.triggerButton?.nativeElement.offsetWidth ?? 0,\n );\n }\n }\n\n get searchControl(): FormControl<string | null> | undefined {\n return (this.element.search?.formControl ?? this.formControlSearch) as\n | FormControl<string | null>\n | undefined;\n }\n\n private toggleOption(option: ElementOption): void {\n const current = this.selectedOptions();\n const next = this.isOptionSelected(option)\n ? current.filter((selected) => selected.key !== option.key)\n : [...current, option];\n this.formControl.setValue(next);\n this.markControlAsChanged();\n }\n\n private normalizedSearchTerm(): string {\n return this.normalizeValue(this.searchControl?.value?.trim());\n }\n\n private normalizeValue(value?: string | null): string {\n return (value ?? \"\")\n .normalize(\"NFD\")\n .replace(/[\\u0300-\\u036f]/g, \"\")\n .toLocaleLowerCase();\n }\n\n private isElementGroup(\n value: ElementOption | ElementGroup | undefined,\n ): value is ElementGroup {\n return !!value && \"label\" in value && \"options\" in value;\n }\n\n private isElementOption(value: unknown): value is ElementOption {\n return (\n !!value &&\n typeof value === \"object\" &&\n \"key\" in value &&\n \"value\" in value\n );\n }\n\n private markControlAsChanged(): void {\n this.formControl.markAsDirty();\n this.formControl.markAsTouched();\n }\n\n private markAsTouchedIfEmpty(): void {\n if (!this.hasValue()) {\n this.formControl.markAsTouched();\n }\n }\n\n private setOpenState(isOpen: boolean): void {\n this.isOpenState.set(isOpen);\n this.openedChange.emit(isOpen);\n }\n}\n","<div\n class=\"mapa-dropdown\"\n [class.mapa-dropdown--open]=\"isOpen()\"\n [class.mapa-dropdown--invalid]=\"shouldShowError()\"\n [class.mapa-dropdown--disabled]=\"isDisabled()\"\n [class.mapa-dropdown--highlight]=\"border === 'highlight'\"\n [class.mapa-dropdown--soft-border]=\"border === 'soft'\"\n [class.mapa-dropdown--tag]=\"border === 'tag'\"\n>\n @if (element.label) {\n <label class=\"mapa-dropdown__label\" [attr.for]=\"element.key || null\">\n {{ element.label }}\n </label>\n }\n\n <div class=\"mapa-dropdown__field-row\">\n <button\n #triggerButton\n cdkOverlayOrigin\n #origin=\"cdkOverlayOrigin\"\n class=\"mapa-dropdown__trigger\"\n [class.mapa-dropdown__trigger--clearable]=\"hasValue() && element.clearValue\"\n [id]=\"element.key || null\"\n type=\"button\"\n [disabled]=\"isDisabled()\"\n (click)=\"toggleDropdown()\"\n [attr.aria-expanded]=\"isOpen()\"\n aria-haspopup=\"listbox\"\n >\n <span\n class=\"mapa-dropdown__trigger-text\"\n [class.mapa-dropdown__trigger-text--placeholder]=\"!hasValue()\"\n [innerHTML]=\"selectedLabel() | safeHtml\"\n ></span>\n @if (hasValue() && !isDisabled() && element.clearValue) {\n <span\n class=\"mapa-dropdown__clear\"\n role=\"button\"\n aria-label=\"Limpar\"\n (click)=\"clearValue($event)\"\n >\n &times;\n </span>\n }\n </button>\n\n @if (element.actionButton) {\n <mapa-button\n class=\"mapa-dropdown__action\"\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n }\n </div>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"origin\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayPositions]=\"overlayPositions\"\n [cdkConnectedOverlayWidth]=\"overlayWidth()\"\n cdkConnectedOverlayPanelClass=\"mapa-dropdown__overlay-pane\"\n (overlayOutsideClick)=\"handleOverlayOutsideClick($event)\"\n >\n <div class=\"mapa-dropdown__panel\">\n @if (hasSearch()) {\n <input\n #searchInput\n class=\"mapa-dropdown__search-input\"\n type=\"text\"\n [formControl]=\"searchControl!\"\n [placeholder]=\"searchPlaceholder()\"\n />\n }\n\n <div class=\"mapa-dropdown__options\" role=\"listbox\">\n @if (isMultiple() && visibleOptions().length) {\n <button\n class=\"mapa-dropdown__option mapa-dropdown__option--select-all\"\n type=\"button\"\n (click)=\"toggleSelectAll()\"\n >\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isAllSelected()\"\n [indeterminate]=\"isIndeterminate()\"\n (click)=\"$event.stopPropagation(); toggleSelectAll()\"\n />\n {{ selectAllLabel }}\n </button>\n }\n\n @if (hasGroups()) {\n @for (group of filteredGroups(); track group.label) {\n <div class=\"mapa-dropdown__group\" role=\"group\">\n <p class=\"mapa-dropdown__group-label\">{{ group.label }}</p>\n @for (option of group.options; track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n </div>\n }\n } @else {\n @for (option of filteredOptions(); track option.key) {\n <button\n class=\"mapa-dropdown__option\"\n [class.mapa-dropdown__option--selected]=\"isOptionSelected(option)\"\n [style.padding-left.px]=\"optionPadding(option)\"\n type=\"button\"\n (click)=\"selectOption(option)\"\n >\n @if (isMultiple()) {\n <input\n class=\"mapa-dropdown__checkbox\"\n type=\"checkbox\"\n [checked]=\"isOptionSelected(option)\"\n (click)=\"$event.stopPropagation(); selectOption(option)\"\n />\n }\n <span [innerHTML]=\"option.value | safeHtml\"></span>\n </button>\n }\n }\n\n @if (!visibleOptions().length) {\n <p class=\"mapa-dropdown__empty-state\">\n {{ emptyStateLabel() }}\n </p>\n }\n </div>\n </div>\n </ng-template>\n\n @if (shouldShowError()) {\n <p class=\"mapa-dropdown__error\">\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </p>\n } @else if (element.hint) {\n <p class=\"mapa-dropdown__hint\">{{ element.hint }}</p>\n }\n</div>\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/dropdown.component';\n","import { AutofillMonitor } from '@angular/cdk/text-field';\nimport {\n DestroyRef,\n Directive,\n ElementRef,\n Input,\n OnInit,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { AbstractControl, NgControl } from '@angular/forms';\nimport { NgxMaskDirective, NgxMaskService } from 'ngx-mask';\nimport { filter } from 'rxjs/operators';\n\ntype MaskedElement = HTMLInputElement | HTMLTextAreaElement;\n\n/**\n * Máscaras numéricas cujo valor de modelo não é a simples projeção\n * \"texto renderizado menos caracteres especiais\". `separator` ainda altera\n * `NgxMaskService.specialCharacters` em runtime, o que quebra a simetria da\n * comparação feita aqui. Nenhuma delas é produzida por autofill.\n */\nconst SKIPPED_MASK_PREFIXES = ['separator', 'percent'];\n\n/**\n * Mantém o FormControl em sincronia com `input.value` quando o valor foi escrito\n * por algo que não é o usuário: autofill do navegador, gerenciador de senhas ou\n * extensão (geradores de CPF/CNPJ).\n *\n * A NgxMaskDirective é o ControlValueAccessor de todo input com máscara desta\n * biblioteca e só empurra valor para o modelo a partir do seu host listener de\n * `input`. O handler de `blur` chama `onTouch()` mas nunca `onChange()`, e não\n * existe listener de `change`. Um agente externo que atribui `element.value` sem\n * disparar um evento `input` nativo deixa o controle no valor anterior, mantendo\n * o erro `required` na tela até o usuário redigitar o campo.\n *\n * Esta diretiva detecta a divergência e reenvia o evento `input` que faltou,\n * fazendo a NgxMaskDirective analisar, re-renderizar e emitir exatamente como se\n * o usuário tivesse colado o valor. É no-op enquanto DOM e modelo concordam.\n */\n@Directive({\n selector: 'input[mask], textarea[mask]',\n standalone: true,\n exportAs: 'mapaMaskAutofillSync',\n host: {\n '(change)': 'reconcile()',\n '(focusout)': 'reconcile()',\n },\n})\nexport class MapaMaskAutofillSyncDirective implements OnInit {\n /** Permite desligar a reconciliação em um campo específico. */\n @Input({ transform: booleanAttribute }) mapaMaskAutofillSync = true;\n\n private readonly elementRef = inject<ElementRef<MaskedElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n private readonly autofillMonitor = inject(AutofillMonitor);\n private readonly maskDirective = inject(NgxMaskDirective, {\n self: true,\n optional: true,\n });\n private readonly maskService = inject(NgxMaskService, {\n self: true,\n optional: true,\n });\n private readonly ngControl = inject(NgControl, { self: true, optional: true });\n\n private reconciling = false;\n\n ngOnInit(): void {\n // monitor() é idempotente por elemento e devolve um Subject compartilhado\n // com o MatInput, que já monitora este mesmo elemento. Nunca chamar\n // stopMonitoring(): ele completa esse Subject e remove o listener de\n // animação para todos os consumidores. O MatInput cuida do teardown.\n this.autofillMonitor\n .monitor(this.elementRef.nativeElement)\n .pipe(\n filter((event) => event.isAutofilled),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe(() => this.reconcile());\n }\n\n /** Idempotente: não faz nada enquanto DOM e modelo concordam. */\n reconcile(): void {\n if (!this.mapaMaskAutofillSync || this.reconciling) {\n return;\n }\n\n const element = this.elementRef.nativeElement;\n // ngControl.control só existe depois do ngOnChanges da FormControlDirective,\n // por isso é lido aqui e não no construtor.\n const control = this.ngControl?.control;\n\n if (!control || control.disabled || element.readOnly) {\n return;\n }\n\n if (element instanceof HTMLInputElement && element.type === 'number') {\n return;\n }\n\n const mask = this.maskDirective?.mask() ?? '';\n\n if (SKIPPED_MASK_PREFIXES.some((prefix) => mask.startsWith(prefix))) {\n return;\n }\n\n if (this.isInSync(element, control, mask)) {\n return;\n }\n\n const previousValue = control.value;\n\n this.reconciling = true;\n\n try {\n // Reenvia o que o navegador deveria ter emitido. A NgxMaskDirective relê\n // element.value, reaplica a máscara, re-renderiza o campo e empurra o\n // valor pelo seu próprio pipeline de CVA — marcando o controle como dirty\n // e reexecutando todos os validadores.\n element.dispatchEvent(new Event('input', { bubbles: true }));\n\n if (control.value === previousValue) {\n // O evento não moveu o modelo. Acontece com controles criados como\n // { updateOn: 'blur' | 'submit' }, em que o value accessor apenas\n // enfileira a mudança em vez de comitá-la.\n control.setValue(this.toModelValue(element.value, mask));\n control.markAsDirty();\n }\n } finally {\n this.reconciling = false;\n }\n }\n\n private isInSync(\n element: MaskedElement,\n control: AbstractControl,\n mask: string\n ): boolean {\n return (\n this.toComparable(element.value, mask) ===\n this.toComparable(this.stringify(control.value), mask)\n );\n }\n\n /**\n * Sem máscara, o texto renderizado e o valor de modelo são a mesma string. Com\n * máscara eles diferem apenas pelos caracteres especiais, então limpar os dois\n * lados com as regras da própria NgxMaskService vale tanto para\n * `dropSpecialCharacters: true` quanto para `false`.\n */\n private toComparable(value: string, mask: string): string {\n return mask && this.maskService ? this.maskService.removeMask(value) : value;\n }\n\n private toModelValue(domValue: string, mask: string): string {\n return mask && this.maskService && this.maskService.dropSpecialCharacters\n ? this.maskService.removeMask(domValue)\n : domValue;\n }\n\n private stringify(value: unknown): string {\n return value === null || value === undefined ? '' : String(value);\n }\n}\n","/*\n* Originally from: https://github.com/anotherkitten/mat-input-autosize\n* @author: Ellie Larson (anotherkitten)\n*/\n\nimport {\n AfterViewInit,\n DestroyRef,\n Directive,\n ElementRef,\n Input,\n Optional,\n Self,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { NgModel } from '@angular/forms';\nimport { MatInput } from '@angular/material/input';\nimport { fromEvent } from 'rxjs';\n\n@Directive({\n selector: '[matInputAutosize]',\n standalone: true,\n})\nexport class MatInputAutosizeDirective implements AfterViewInit {\n inputElement: HTMLInputElement;\n hiddenText!: Text;\n private readonly destroyRef = inject(DestroyRef);\n\n @Input() matInputAutosizeMaxWidth?: string | null;\n @Input() matInputAutosizeMinWidth = '120px';\n @Input() matInputAutosizeFontStyle?: string | null;\n\n constructor(\n el: ElementRef<HTMLInputElement>,\n @Self() private childMatInput: MatInput,\n @Optional() @Self() private childNgModel: NgModel\n ) {\n this.inputElement = el.nativeElement;\n }\n\n ngAfterViewInit(): void {\n this.checkErrors();\n this.overwriteParentWidth();\n this.createHiddenTextContainer();\n this.setOwnStyles();\n this.subscribeToChanges();\n }\n\n checkErrors(): void {\n if (!(this.inputElement instanceof HTMLInputElement)) {\n throw new Error('matInputAutosize directive must be on an input element');\n }\n\n if (!this.childMatInput) {\n throw new Error(\n 'Element with matInputAutosize directive must also have the matInput directive'\n );\n }\n }\n\n overwriteParentWidth(): void {\n Object.assign((this.inputElement.parentNode as HTMLElement).style, {\n width: '100%',\n });\n }\n\n createHiddenTextContainer(): void {\n const textContainer = document.createElement('div');\n Object.assign(textContainer.style, {\n display: 'inline-block',\n 'max-width': this.matInputAutosizeMaxWidth || null,\n 'min-width': `max(var(--mapa-input-autosize-preferred-width, 0px), ${this.matInputAutosizeMinWidth})`,\n font: this.matInputAutosizeFontStyle || null,\n visibility: 'hidden',\n 'white-space': 'pre',\n });\n this.inputElement.parentNode?.appendChild(textContainer);\n\n this.hiddenText = document.createTextNode(' ');\n textContainer.appendChild(this.hiddenText);\n }\n\n setOwnStyles(): void {\n Object.assign(this.inputElement.style, {\n position: 'absolute',\n left: '0',\n });\n }\n\n subscribeToChanges(): void {\n if (this.childNgModel) {\n this.childNgModel.control.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => this.changeHiddenText(value));\n return;\n }\n\n fromEvent(this.inputElement, 'input')\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeHiddenText(this.inputElement.value));\n }\n\n changeHiddenText = (newValue: unknown): void => {\n if (this.hiddenText) {\n this.hiddenText.data = `${newValue ?? ''} `;\n }\n };\n}\n\n","import { CommonModule } from '@angular/common';\nimport {\n Component,\n EventEmitter,\n Input,\n Output,\n forwardRef,\n} from '@angular/core';\nimport {\n ControlValueAccessor,\n FormControl,\n FormsModule,\n NG_VALUE_ACCESSOR,\n ReactiveFormsModule,\n} from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { NgxMaskDirective, provideNgxMask } from 'ngx-mask';\n\nimport { ButtonComponent } from '../../button/public-api';\nimport { MapaFormErrorsComponent } from '../../../core/components/form-errors/form-errors.component';\nimport { MapaMaskAutofillSyncDirective } from '../../../core/directives/mapa-mask-autofill-sync.directive';\nimport { MatInputAutosizeDirective } from '../../../core/directives/mat-input-autosize.directive';\nimport { InputText } from '../../../core/elements/input-text';\n\n@Component({\n selector: 'mapa-input',\n templateUrl: './input.component.html',\n styleUrl: './input.component.scss',\n imports: [\n CommonModule,\n FormsModule,\n ReactiveFormsModule,\n NgxMaskDirective,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ButtonComponent,\n MatInputAutosizeDirective,\n MapaMaskAutofillSyncDirective,\n MapaFormErrorsComponent,\n ],\n providers: [\n provideNgxMask(),\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => MapaInputComponent),\n multi: true,\n },\n ],\n standalone: true\n})\nexport class MapaInputComponent implements ControlValueAccessor {\n @Input() formControl!: FormControl<unknown>;\n @Input() element!: InputText;\n @Input() type!: string;\n @Output() suffix: EventEmitter<void> = new EventEmitter<void>();\n\n writeValue(_value: unknown): void {\n // No-op: the inner <input> is bound directly to the @Input formControl,\n // so writes from the parent FormControl already propagate through it.\n }\n\n registerOnChange(_fn: (value: unknown) => void): void {\n // No-op: change propagation is handled by the DefaultValueAccessor on the\n // inner <input matInput [formControl]=\"formControl\"> binding.\n }\n\n registerOnTouched(_fn: () => void): void {\n // No-op for the same reason.\n }\n\n setDisabledState(_isDisabled: boolean): void {\n // No-op: disabled state is propagated via the @Input formControl directly.\n }\n\n hasValue(): boolean {\n return !!this.formControl?.value;\n }\n\n clearValue(): void {\n this.formControl?.setValue(null);\n }\n\n suffixEmit(): void {\n this.suffix.emit();\n }\n}\n","<label *ngIf=\"element.label\" class=\"mapa-input__label\">\n {{ element.label }}\n</label>\n<div class=\"mapa-form--inline\">\n <mat-form-field\n class=\"mapa-input\"\n [class.mapa-input--autosize]=\"element.autosize\"\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n >\n <mat-icon *ngIf=\"element.prefix\" class=\"mapa-input--prefix\" matPrefix>\n {{ element.prefix }}\n </mat-icon>\n <input\n *ngIf=\"element.autosize\"\n matInput\n matInputAutosize\n [matInputAutosizeMinWidth]=\"element.autosizeMinWidth!\"\n [matInputAutosizeMaxWidth]=\"element.autosizeMaxWidth!\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n thousandSeparator=\".\"\n decimalMarker=\",\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <input\n matInput\n *ngIf=\"!element.autosize\"\n [formControl]=\"formControl\"\n [placeholder]=\"element.placeholder || element.label\"\n [maxlength]=\"element.maxLength\"\n (keydown.enter)=\"suffixEmit()\"\n [type]=\"type\"\n [mask]=\"element.mask\"\n [autocomplete]=\"element.autocomplete\"\n [readOnly]=\"element.readonly\"\n />\n <button\n *ngIf=\"hasValue() && !formControl.disabled && element.clearValue\"\n type=\"button\"\n tabindex=\"-1\"\n matSuffix\n aria-label=\"Limpar\"\n (click)=\"clearValue()\"\n class=\"mapa-input--close\"\n >\n &times;\n </button>\n <mat-icon\n *ngIf=\"element.suffix\"\n class=\"mapa-input--suffix\"\n matSuffix\n (click)=\"suffix.emit()\"\n >\n {{ element.suffix }}\n </mat-icon>\n <mat-hint *ngIf=\"element.hint\">{{ element.hint }}</mat-hint>\n <mat-error>\n <mapa-form-errors\n [control]=\"formControl\"\n [errors]=\"element.errors\"\n ></mapa-form-errors>\n </mat-error>\n </mat-form-field>\n\n <div *ngIf=\"element.actionButton\" class=\"mapa-form--action\">\n <mapa-button\n color=\"basic\"\n (clicked)=\"element.actionButton.action.emit(true)\"\n >\n {{ element.actionButton.label }}\n </mapa-button>\n </div>\n</div>\n","/*\n * Public API Surface of mapa-library-ui input\n */\n\nexport * from './src/input.component';\n","import { CommonModule } from '@angular/common';\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\n\nimport { ButtonComponent } from '../../button/public-api';\nimport { CheckboxComponent } from '../../checkbox/public-api';\nimport { MapaDropdownComponent } from '../../dropdown/public-api';\nimport { MapaInputComponent } from '../../input/public-api';\nimport { ElementBase } from '../../../core/elements/element-base';\nimport { MapaI18nService } from '../../../core/services/mapa-i18n.service';\n\n@Component({\n selector: 'mapa-filters',\n templateUrl: './filters.component.html',\n styleUrl: './filters.component.scss',\n imports: [\n CommonModule,\n ReactiveFormsModule,\n ButtonComponent,\n CheckboxComponent,\n MapaDropdownComponent,\n MapaInputComponent,\n ],\n standalone: true\n})\nexport class FiltersComponent {\n @Input() form!: FormGroup;\n @Input() elements!: ElementBase[];\n @Output() selectedValues = new EventEmitter<Record<string, unknown>>();\n \n constructor(private readonly i18n: MapaI18nService) {}\n\n get texts() {\n return this.i18n.textsSignal();\n }\n\n get clearFiltersLabel(): string {\n return this.texts.filters.clear;\n }\n\n get submitFiltersLabel(): string {\n return this.texts.filters.submit;\n }\n\n getFormControl(filterKey: string): FormControl<unknown> {\n return this.form.get(filterKey) as FormControl<unknown>;\n }\n\n clearFilters(): void {\n this.form.reset();\n }\n\n emitSelectedValues(): void {\n this.selectedValues.emit(this.form.getRawValue() as Record<string, unknown>);\n }\n}\n","<div class=\"filter\">\n <div *ngFor=\"let filter of elements\">\n <div *ngIf=\"filter.controlType === 'checkbox'\" class=\"filter__item--resizable\">\n <mapa-checkbox [formControl]=\"getFormControl(filter.key)\"></mapa-checkbox>\n </div>\n <div *ngIf=\"filter.controlType === 'dropdown'\" class=\"filter__item--resizable\">\n <mapa-dropdown\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-dropdown>\n </div>\n <div *ngIf=\"filter.controlType === 'input'\" class=\"filter__item\">\n <mapa-input\n [formControl]=\"getFormControl(filter.key)\"\n [element]=\"filter\"\n ></mapa-input>\n </div>\n </div>\n <div class=\"filter__item\">\n <mapa-button [color]=\"'basic'\" (clicked)=\"clearFilters()\">\n {{ clearFiltersLabel }}\n </mapa-button>\n <mapa-button\n [color]=\"'primary'\"\n [disabled]=\"!!form.invalid\"\n (clicked)=\"emitSelectedValues()\"\n >\n {{ submitFiltersLabel }}\n </mapa-button>\n </div>\n</div>\n\n","/*\n * Public API Surface of mapa-library-ui dropdown\n */\n\nexport * from './src/filters.component';\n","/*\n * Public API Surface of mapa-library-ui filters\n */\n\nexport * from './lib/components/button/public-api';\nexport * from './lib/components/icon/public-api';\nexport * from './lib/components/filters/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './filters';\n"],"names":["i2","i1.MapaI18nService","i1.ValidationMessageResolverService","i1","i1.HtmlSanitizerService","i4","i5","i3"],"mappings":"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"}
@@ -117,6 +117,7 @@ const DEFAULT_MAPA_UI_TEXTS = {
117
117
  viewModeLabel: 'Modo de visualização',
118
118
  readingInformationTitle: 'Informações de leitura',
119
119
  dimensionTitle: 'Dimensão',
120
+ indicatorTitle: 'Indicador',
120
121
  conceptTitle: 'Conceito',
121
122
  classificationTitle: 'Classificação',
122
123
  resultReadingTitle: 'Leitura do resultado',
@@ -128,8 +129,8 @@ const DEFAULT_MAPA_UI_TEXTS = {
128
129
  vulnerabilitiesTitle: 'Vulnerabilidades socioemocionais',
129
130
  positiveDirectionLabel: 'Direção positiva',
130
131
  negativeDirectionLabel: 'Direção negativa',
131
- lowerIntensityLabel: 'Menos intensamente',
132
- higherIntensityLabel: 'Mais intensamente',
132
+ lowerIntensityLabel: 'Menos intenso',
133
+ higherIntensityLabel: 'Mais intenso',
133
134
  noClassification: 'Sem classificação',
134
135
  emptyState: 'Não há resultados disponíveis para esta seção.',
135
136
  interpretationTitle: 'Interpretação',
@@ -154,6 +155,16 @@ const DEFAULT_MAPA_UI_TEXTS = {
154
155
  meterLabel: (name, value) => `${name}: ${value}%`,
155
156
  gaugeLabel: (name, value) => `${name}: ${value}%`,
156
157
  itemCountLabel: formatItemCount,
158
+ continueLabel: 'Continuar',
159
+ newGroupTitle: 'Novo grupo',
160
+ groupNameHint: 'Esse nome identifica o grupo nas tabelas, gráficos e legendas.',
161
+ groupNameRequired: 'Informe o nome do grupo.',
162
+ groupPeopleRequired: 'Selecione pelo menos uma pessoa para criar o grupo.',
163
+ groupMinimumHint: 'Crie pelo menos dois grupos para comparar.',
164
+ groupUnsavedHint: 'Salve ou cancele as alterações em edição antes de analisar os resultados.',
165
+ groupSavedLabel: (name) => `Grupo ${name} salvo.`,
166
+ groupCountLabel: (count, limit) => `${count} de ${limit} grupos criados`,
167
+ scaleCountLabel: (count) => `${count} ${count === 1 ? 'escala' : 'escalas'}`,
157
168
  },
158
169
  paginator: {
159
170
  itemsPerPage: 'Itens por página',
@@ -174,6 +185,7 @@ const DEFAULT_MAPA_UI_TEXTS = {
174
185
  selectAllVisible: 'Selecionar todos os itens desta página',
175
186
  selectionColumn: 'Seleção',
176
187
  selectRow: 'Selecionar item',
188
+ horizontalScrollHint: 'Role horizontalmente para ver todas as colunas →',
177
189
  selectNamedRow: (item) => `Selecionar ${item}`,
178
190
  },
179
191
  validation: {