mapa-library-ui 1.7.3 → 2.0.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 (44) hide show
  1. package/README.md +2 -3
  2. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs +42 -35
  3. package/fesm2022/mapa-library-ui-src-lib-components-capability.mjs.map +1 -1
  4. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs +42 -35
  5. package/fesm2022/mapa-library-ui-src-lib-components-chart.mjs.map +1 -1
  6. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs +648 -125
  7. package/fesm2022/mapa-library-ui-src-lib-components-datepicker.mjs.map +1 -1
  8. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs +42 -35
  9. package/fesm2022/mapa-library-ui-src-lib-components-dropdown-tree.mjs.map +1 -1
  10. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs +42 -35
  11. package/fesm2022/mapa-library-ui-src-lib-components-dropdown.mjs.map +1 -1
  12. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs +42 -35
  13. package/fesm2022/mapa-library-ui-src-lib-components-filters.mjs.map +1 -1
  14. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs +569 -322
  15. package/fesm2022/mapa-library-ui-src-lib-components-form.mjs.map +1 -1
  16. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs +42 -35
  17. package/fesm2022/mapa-library-ui-src-lib-components-input.mjs.map +1 -1
  18. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs +42 -35
  19. package/fesm2022/mapa-library-ui-src-lib-components-scale-parameterization.mjs.map +1 -1
  20. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs +42 -35
  21. package/fesm2022/mapa-library-ui-src-lib-components-scale.mjs.map +1 -1
  22. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs +522 -581
  23. package/fesm2022/mapa-library-ui-src-lib-components-table.mjs.map +1 -1
  24. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs +42 -35
  25. package/fesm2022/mapa-library-ui-src-lib-components-textarea.mjs.map +1 -1
  26. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs +42 -35
  27. package/fesm2022/mapa-library-ui-src-lib-components-warning.mjs.map +1 -1
  28. package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs +1 -4
  29. package/fesm2022/mapa-library-ui-src-lib-core-utils.mjs.map +1 -1
  30. package/fesm2022/mapa-library-ui.mjs +1272 -1018
  31. package/fesm2022/mapa-library-ui.mjs.map +1 -1
  32. package/index.d.ts +350 -187
  33. package/mapa-library-ui-2.0.0.tgz +0 -0
  34. package/package.json +3 -10
  35. package/src/lib/components/datepicker/index.d.ts +165 -27
  36. package/src/lib/components/group-report/index.d.ts +6 -1
  37. package/src/lib/components/menu/index.d.ts +3 -1
  38. package/src/lib/components/report-item/index.d.ts +3 -1
  39. package/src/lib/components/table/index.d.ts +153 -100
  40. package/src/lib/core/utils/index.d.ts +1 -2
  41. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs +0 -733
  42. package/fesm2022/mapa-library-ui-src-lib-components-datepicker-range.mjs.map +0 -1
  43. package/mapa-library-ui-1.7.3.tgz +0 -0
  44. package/src/lib/components/datepicker-range/index.d.ts +0 -207
@@ -1 +0,0 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-components-datepicker-range.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/directives/mapa-mask-autofill-sync.directive.ts","../../../projects/mapa-library-ui/src/lib/core/utils/date.util.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/components/datepicker-range/src/datepicker-range.component.ts","../../../projects/mapa-library-ui/src/lib/components/datepicker-range/src/datepicker-range.component.html","../../../projects/mapa-library-ui/src/lib/components/datepicker-range/public-api.ts","../../../projects/mapa-library-ui/src/datepicker-range.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-components-datepicker-range.ts"],"sourcesContent":["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","import { getIntlLocale, getStoredAppLanguage } from \"mapa-frontend-i18n\";\n\nconst DAY_MONTH_YEAR_PATTERN = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\nconst MONTH_DAY_YEAR_PATTERN = /^(\\d{2})\\/(\\d{2})\\/(\\d{4})$/;\nconst ISO_DATE_PATTERN = /^\\d{4}-\\d{2}-\\d{2}([T ].*)?$/;\nconst DOCS_LANGUAGE_STORAGE_KEY = \"mapa-library-ui-docs-language\";\n\nexport type MapaDateLocale = \"pt-BR\" | \"en\" | \"es\";\nexport type MapaDateFormat = \"DD/MM/YYYY\" | \"MM/DD/YYYY\";\n\nexport type DateInput = Date | string | number | null | undefined;\n\nfunction isValidDate(date: Date): boolean {\n return !Number.isNaN(date.getTime());\n}\n\nfunction buildUtcDate(\n date: Date,\n dayOffset: number,\n hours: number,\n minutes: number,\n seconds: number,\n milliseconds: number,\n): Date {\n return new Date(\n Date.UTC(\n date.getFullYear(),\n date.getMonth(),\n date.getDate() + dayOffset,\n hours,\n minutes,\n seconds,\n milliseconds,\n ),\n );\n}\n\nexport function formatDateAsDayMonthYear(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const year = `${date.getFullYear()}`;\n\n return `${day}/${month}/${year}`;\n}\n\nexport function formatDateAsMonthDayYear(date: Date): string {\n const day = `${date.getDate()}`.padStart(2, \"0\");\n const month = `${date.getMonth() + 1}`.padStart(2, \"0\");\n const year = `${date.getFullYear()}`;\n\n return `${month}/${day}/${year}`;\n}\n\nexport function normalizeDateLocale(value: unknown): MapaDateLocale {\n if (typeof value !== \"string\") {\n return \"pt-BR\";\n }\n\n const normalizedValue = value.trim().toLowerCase();\n\n if (normalizedValue.startsWith(\"en\")) {\n return \"en\";\n }\n\n if (normalizedValue.startsWith(\"es\")) {\n return \"es\";\n }\n\n return \"pt-BR\";\n}\n\nfunction getDocsStoredLanguage(): string | null {\n if (typeof window === \"undefined\") {\n return null;\n }\n\n try {\n return window.localStorage.getItem(DOCS_LANGUAGE_STORAGE_KEY);\n } catch {\n return null;\n }\n}\n\nexport function getActiveDateLocale(): MapaDateLocale {\n return normalizeDateLocale(getDocsStoredLanguage() ?? getStoredAppLanguage());\n}\n\nexport function isMonthFirstDateLocale(locale = getActiveDateLocale()): boolean {\n return normalizeDateLocale(locale) === \"en\";\n}\n\nexport function getActiveDateFormat(locale = getActiveDateLocale()): MapaDateFormat {\n return isMonthFirstDateLocale(locale) ? \"MM/DD/YYYY\" : \"DD/MM/YYYY\";\n}\n\nexport function getActiveMaterialDateFormat(locale = getActiveDateLocale()): string {\n return isMonthFirstDateLocale(locale) ? \"MM/dd/yyyy\" : \"dd/MM/yyyy\";\n}\n\nexport function getDateInputMask(_locale = getActiveDateLocale()): string {\n return \"00/00/0000\";\n}\n\nexport function formatDateForLocale(date: Date, locale = getActiveDateLocale()): string {\n return isMonthFirstDateLocale(locale)\n ? formatDateAsMonthDayYear(date)\n : formatDateAsDayMonthYear(date);\n}\n\nfunction parseOrderedDate(\n value: string,\n pattern: RegExp,\n order: \"day-first\" | \"month-first\"\n): Date | null {\n const match = pattern.exec(value.trim());\n if (!match) {\n return null;\n }\n\n const [, firstValue, secondValue, yearValue] = match;\n const year = Number(yearValue);\n const month = Number(order === \"month-first\" ? firstValue : secondValue);\n const day = Number(order === \"month-first\" ? secondValue : firstValue);\n const parsedDate = new Date(year, month - 1, day);\n\n if (\n parsedDate.getFullYear() !== year ||\n parsedDate.getMonth() !== month - 1 ||\n parsedDate.getDate() !== day\n ) {\n return null;\n }\n\n return parsedDate;\n}\n\nexport function parseLocaleDateValue(\n value: string,\n locale = getActiveDateLocale()\n): Date | null {\n const normalizedLocale = normalizeDateLocale(locale);\n const parsers =\n normalizedLocale === \"en\"\n ? [\n () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, \"month-first\"),\n () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, \"day-first\"),\n ]\n : [\n () => parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, \"day-first\"),\n () => parseOrderedDate(value, MONTH_DAY_YEAR_PATTERN, \"month-first\"),\n ];\n\n for (const parse of parsers) {\n const parsedDate = parse();\n if (parsedDate) {\n return parsedDate;\n }\n }\n\n return null;\n}\n\nexport function parseDateValue(\n value: unknown,\n locale = getActiveDateLocale()\n): Date | null {\n if (value instanceof Date) {\n return isValidDate(value) ? new Date(value.getTime()) : null;\n }\n\n if (typeof value === \"number\") {\n const parsedDate = new Date(value);\n return isValidDate(parsedDate) ? parsedDate : null;\n }\n\n if (typeof value !== \"string\") {\n return null;\n }\n\n const trimmedValue = value.trim();\n if (!trimmedValue) {\n return null;\n }\n\n const localeDate = parseLocaleDateValue(trimmedValue, locale);\n if (localeDate) {\n return localeDate;\n }\n\n if (DAY_MONTH_YEAR_PATTERN.test(trimmedValue) || MONTH_DAY_YEAR_PATTERN.test(trimmedValue)) {\n return null;\n }\n\n const parsedDate = new Date(trimmedValue);\n return isValidDate(parsedDate) ? parsedDate : null;\n}\n\n/**\n * Parse estrito para o texto de um campo de data mascarado.\n *\n * Diferente de `parseDateValue`, não cai em `new Date(string)` para qualquer\n * entrada. O motor de datas do V8 aceita fragmentos numéricos e devolve datas\n * inventadas — `\"2\"` vira 01/02/2001 e `\"251220\"` vira o ano 251220 —, o que\n * fazia os datepickers moverem o calendário a cada tecla enquanto o usuário\n * ainda estava digitando.\n *\n * Aceita apenas uma data completa no formato do locale ativo (com validação de\n * faixa de dia/mês) ou uma data ISO-8601, para não quebrar valores vindos de\n * API que o consumidor grave direto no controle.\n */\nexport function parseDateFieldValue(\n value: unknown,\n locale = getActiveDateLocale()\n): Date | null {\n if (value instanceof Date || typeof value === \"number\") {\n return parseDateValue(value, locale);\n }\n\n if (typeof value !== \"string\") {\n return null;\n }\n\n const trimmedValue = value.trim();\n if (!trimmedValue) {\n return null;\n }\n\n const localeDate = parseLocaleDateValue(trimmedValue, locale);\n if (localeDate) {\n return localeDate;\n }\n\n return ISO_DATE_PATTERN.test(trimmedValue)\n ? parseDateValue(trimmedValue, locale)\n : null;\n}\n\nexport function isDateValue(value: unknown): boolean {\n return parseDateValue(value) !== null;\n}\n\nexport function parseBrazilianDate(value: string): Date | null {\n return parseOrderedDate(value, DAY_MONTH_YEAR_PATTERN, \"day-first\");\n}\n\nexport function normalizeDateInput(value: DateInput): Date | null {\n return parseDateValue(value);\n}\n\nexport function formatBrazilianDate(value: DateInput): string {\n const date = normalizeDateInput(value);\n return date ? formatDateAsDayMonthYear(date) : \"\";\n}\n\nexport function addDays(date: Date, days: number): Date {\n const nextDate = new Date(date);\n nextDate.setDate(nextDate.getDate() + days);\n return nextDate;\n}\n\nexport type LocaleDateStyle = \"short\" | \"medium\" | \"long\" | \"full\";\n\nexport function formatLocaleDate(\n value: DateInput,\n dateStyle: LocaleDateStyle = \"short\",\n): string {\n const date = normalizeDateInput(value);\n if (!date) {\n return \"\";\n }\n\n return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {\n dateStyle,\n }).format(date);\n}\n\nexport function formatLocaleDateTime(\n value: DateInput,\n options: { dateStyle?: LocaleDateStyle; timeStyle?: LocaleDateStyle } = {},\n): string {\n const date = normalizeDateInput(value);\n if (!date) {\n return \"\";\n }\n\n const { dateStyle = \"short\", timeStyle = \"short\" } = options;\n\n return new Intl.DateTimeFormat(getIntlLocale(getActiveDateLocale()), {\n dateStyle,\n timeStyle,\n }).format(date);\n}\n\nexport function getDefaultDateRange(days = 60): {\n startDate: string;\n endDate: string;\n} {\n const today = new Date();\n\n return {\n startDate: formatBrazilianDate(addDays(today, -days)),\n endDate: formatBrazilianDate(today),\n };\n}\n\nexport function getRelativeDateRange(daysBack: number): {\n startDate: Date;\n endDate: Date;\n} {\n const endDate = new Date();\n endDate.setHours(23, 59, 59, 999);\n\n const startDate = new Date();\n startDate.setHours(0, 0, 0, 0);\n startDate.setDate(startDate.getDate() - daysBack);\n\n return { startDate, endDate };\n}\n\nexport function toUtcRangeStartIso(value: DateInput): string | undefined {\n const date = normalizeDateInput(value);\n return date ? buildUtcDate(date, 0, 3, 0, 0, 0).toISOString() : undefined;\n}\n\nexport function toUtcRangeEndIso(value: DateInput): string | undefined {\n const date = normalizeDateInput(value);\n return date ? buildUtcDate(date, 1, 2, 59, 59, 999).toISOString() : undefined;\n}\n\nexport function toUtcDayExclusiveEndIso(value: DateInput): string | undefined {\n const date = normalizeDateInput(value);\n return date ? buildUtcDate(date, 1, 3, 0, 0, 0).toISOString() : undefined;\n}\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\nconst DEFAULT_MAPA_UI_TEXTS: MapaUiTexts = {\n common: {\n selectAll: \"Selecionar todos\",\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 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 },\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 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 { CommonModule } from \"@angular/common\";\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n Input,\n DoCheck,\n OnInit,\n inject,\n} from \"@angular/core\";\nimport { takeUntilDestroyed } from \"@angular/core/rxjs-interop\";\nimport {\n FormControl,\n FormGroup,\n ReactiveFormsModule,\n} from \"@angular/forms\";\nimport { DateAdapter, provideNativeDateAdapter } from \"@angular/material/core\";\nimport { MatDatepickerModule } from \"@angular/material/datepicker\";\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\";\nimport { MapaMaskAutofillSyncDirective } from \"../../../core/directives/mapa-mask-autofill-sync.directive\";\nimport { MapaI18nService } from \"../../../core/services/mapa-i18n.service\";\nimport {\n formatDateForLocale,\n getActiveDateFormat,\n getActiveDateLocale,\n getActiveMaterialDateFormat,\n getDateInputMask,\n MapaDateLocale,\n parseDateFieldValue,\n} from \"../../../core/utils/date.util\";\nimport { DatepickerRange } from \"../../../core/elements/datepicker-range\";\n\nexport interface MapaDatepickerRangeControlValue {\n startDate: string | null;\n endDate: string | null;\n}\n\nexport type MapaDatepickerRangeFormGroup = FormGroup;\n\ntype MapaDatepickerInternalRangeValue = {\n startDate: Date | null;\n endDate: Date | null;\n};\n\ntype MapaDatepickerInternalRangeFormGroup = FormGroup<{\n startDate: FormControl<MapaDatepickerInternalRangeValue[\"startDate\"]>;\n endDate: FormControl<MapaDatepickerInternalRangeValue[\"endDate\"]>;\n}>;\n\ntype MapaDatepickerRangeDisplayFormGroup = FormGroup<{\n startDate: FormControl<string | null>;\n endDate: FormControl<string | null>;\n}>;\n\nexport function getMapaDatepickerRangeFormats() {\n const dateInput = getActiveMaterialDateFormat();\n\n return {\n parse: {\n dateInput,\n },\n display: {\n dateInput,\n monthYearLabel: \"MMM YYYY\",\n dateA11yLabel: \"LL\",\n monthYearA11yLabel: \"MMMM YYYY\",\n },\n };\n}\n\n@Component({\n selector: \"mapa-datepicker-range\",\n templateUrl: \"./datepicker-range.component.html\",\n styleUrl: \"./datepicker-range.component.scss\",\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n CommonModule,\n ReactiveFormsModule,\n NgxMaskDirective,\n MapaMaskAutofillSyncDirective,\n MatDatepickerModule,\n MatFormFieldModule,\n MatIconModule,\n MatInputModule,\n ],\n providers: [\n provideNgxMask(),\n provideNativeDateAdapter(getMapaDatepickerRangeFormats()),\n ],\n standalone: true,\n})\nexport class MapaDatepickerRange implements OnInit, DoCheck {\n @Input() formGroup!: FormGroup;\n @Input() element!: DatepickerRange;\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly dateAdapter = inject(DateAdapter<Date>);\n private readonly emptyValue: MapaDatepickerRangeControlValue = {\n startDate: null,\n endDate: null,\n };\n private currentLocale: MapaDateLocale | null = null;\n\n readonly formDatepicker: MapaDatepickerInternalRangeFormGroup = new FormGroup({\n startDate: new FormControl<Date | null>(null),\n endDate: new FormControl<Date | null>(null),\n });\n\n readonly formDisplay: MapaDatepickerRangeDisplayFormGroup = new FormGroup({\n startDate: new FormControl<string | null>(null),\n endDate: new FormControl<string | null>(null),\n });\n\n rangeControl!: FormControl<MapaDatepickerRangeControlValue | null>;\n\n constructor(\n private readonly i18n: MapaI18nService,\n private readonly cdr: ChangeDetectorRef\n ) {}\n\n get texts() {\n return this.i18n.textsSignal();\n }\n\n get dateInputMask(): string {\n return getDateInputMask(this.getLocale());\n }\n\n get activeDateFormat(): string {\n return getActiveDateFormat(this.getLocale());\n }\n\n ngOnInit(): void {\n this.syncLocaleSettings();\n\n if (!this.element?.key) {\n throw new Error(\"mapa-datepicker-range requires element.key to resolve the target control.\");\n }\n\n this.rangeControl = this.formGroup.get(this.element.key) as FormControl<\n MapaDatepickerRangeControlValue | null\n >;\n\n if (!this.rangeControl) {\n throw new Error(\n `mapa-datepicker-range could not find control '${this.element.key}' in formGroup.`\n );\n }\n\n this.syncFromExternal(this.rangeControl.value);\n\n this.rangeControl.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.syncFromExternal(value);\n });\n\n this.formDisplay.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.updateExternalFromDisplay(value);\n });\n\n this.formDatepicker.valueChanges\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe((value) => {\n this.updateExternalFromDatepicker(value);\n });\n }\n\n ngDoCheck(): void {\n this.syncLocaleSettings();\n }\n\n get startDatePlaceholder(): string {\n return this.texts.datepicker.startDatePlaceholder;\n }\n\n get endDatePlaceholder(): string {\n return this.texts.datepicker.endDatePlaceholder;\n }\n\n private syncFromExternal(value: MapaDatepickerRangeControlValue | null): void {\n this.syncLocaleSettings();\n\n const nextValue = value ?? this.emptyValue;\n const displayValue: MapaDatepickerRangeControlValue = {\n startDate: nextValue.startDate,\n endDate: nextValue.endDate,\n };\n const datepickerValue: MapaDatepickerInternalRangeValue = {\n startDate: parseDateFieldValue(nextValue.startDate, this.getLocale()),\n endDate: parseDateFieldValue(nextValue.endDate, this.getLocale()),\n };\n\n const currentDisplay = this.formDisplay.getRawValue();\n if (\n currentDisplay.startDate !== displayValue.startDate ||\n currentDisplay.endDate !== displayValue.endDate\n ) {\n this.formDisplay.patchValue(displayValue, { emitEvent: false });\n }\n\n const currentDatepicker = this.formDatepicker.getRawValue();\n if (\n !this.areDatesEqual(currentDatepicker.startDate, datepickerValue.startDate) ||\n !this.areDatesEqual(currentDatepicker.endDate, datepickerValue.endDate)\n ) {\n this.formDatepicker.patchValue(datepickerValue, { emitEvent: false });\n }\n\n this.cdr.markForCheck();\n }\n\n private updateExternalFromDisplay(\n value: Partial<MapaDatepickerRangeControlValue>\n ): void {\n this.syncLocaleSettings();\n\n const nextValue: MapaDatepickerRangeControlValue = {\n startDate: value.startDate ?? null,\n endDate: value.endDate ?? null,\n };\n\n this.patchExternalValue(nextValue);\n\n const nextDatepickerValue: MapaDatepickerInternalRangeValue = {\n startDate: parseDateFieldValue(nextValue.startDate, this.getLocale()),\n endDate: parseDateFieldValue(nextValue.endDate, this.getLocale()),\n };\n this.formDatepicker.patchValue(nextDatepickerValue, { emitEvent: false });\n this.cdr.markForCheck();\n }\n\n private updateExternalFromDatepicker(\n value: Partial<MapaDatepickerInternalRangeValue>\n ): void {\n this.syncLocaleSettings();\n\n if (!value.startDate || !value.endDate) {\n return;\n }\n\n const nextValue: MapaDatepickerRangeControlValue = {\n startDate: formatDateForLocale(value.startDate, this.getLocale()),\n endDate: formatDateForLocale(value.endDate, this.getLocale()),\n };\n\n this.patchExternalValue(nextValue);\n this.formDisplay.patchValue(nextValue, { emitEvent: false });\n this.cdr.markForCheck();\n }\n\n private patchExternalValue(nextValue: MapaDatepickerRangeControlValue): void {\n const currentValue = this.rangeControl.value;\n\n if (\n currentValue?.startDate === nextValue.startDate &&\n currentValue?.endDate === nextValue.endDate\n ) {\n return;\n }\n\n this.rangeControl.patchValue(nextValue);\n }\n\n private areDatesEqual(first: Date | null, second: Date | null): boolean {\n if (first === second) {\n return true;\n }\n\n if (!first || !second) {\n return false;\n }\n\n return first.getTime() === second.getTime();\n }\n\n cleanDatepicker() {\n const defaultRange = {\n startDate: null,\n endDate: null,\n };\n\n this.formDatepicker.patchValue(defaultRange, { emitEvent: false });\n this.formDisplay.patchValue(defaultRange, { emitEvent: false });\n this.patchExternalValue(defaultRange);\n this.cdr.markForCheck();\n }\n\n private getLocale(): MapaDateLocale {\n return this.currentLocale ?? getActiveDateLocale();\n }\n\n private syncLocaleSettings(): void {\n const nextLocale = getActiveDateLocale();\n\n if (this.currentLocale === nextLocale) {\n return;\n }\n\n this.currentLocale = nextLocale;\n this.dateAdapter.setLocale(nextLocale);\n\n const datepickerValue = this.formDatepicker.getRawValue();\n const hasDateRange = !!datepickerValue.startDate && !!datepickerValue.endDate;\n\n if (hasDateRange) {\n const formattedRange: MapaDatepickerRangeControlValue = {\n startDate: formatDateForLocale(datepickerValue.startDate!, nextLocale),\n endDate: formatDateForLocale(datepickerValue.endDate!, nextLocale),\n };\n\n this.formDisplay.patchValue(formattedRange, { emitEvent: false });\n\n if (this.rangeControl) {\n this.patchExternalValue(formattedRange);\n }\n }\n\n this.cdr.markForCheck();\n }\n}\n\nexport type MapaDatepickerRangeComponent = MapaDatepickerRange;\n","@if (element.label) {\n <div class=\"mapa-datepicker-range__label\">\n {{ element.label }}\n </div>\n}\n<section class=\"mapa-datepicker-range\" [formGroup]=\"formDisplay\">\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__start-date\"\n >\n <input\n matInput\n formControlName=\"startDate\"\n [placeholder]=\"startDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n </mat-form-field>\n <div class=\"mapa-datepicker-range__divider\">&ndash;</div>\n <mat-form-field\n appearance=\"outline\"\n subscriptSizing=\"dynamic\"\n class=\"mapa-datepicker-range__end-date\"\n >\n <input\n matInput\n formControlName=\"endDate\"\n [placeholder]=\"endDatePlaceholder\"\n [mask]=\"dateInputMask\"\n [dropSpecialCharacters]=\"false\"\n [attr.data-date-format]=\"activeDateFormat\"\n />\n <button\n type=\"button\"\n matSuffix\n aria-label=\"Limpar\"\n class=\"mapa-datepicker-range__clear\"\n (click)=\"cleanDatepicker()\"\n tabindex=\"-1\"\n >\n &times;\n </button>\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-date-range-picker touchUi=\"true\" #picker></mat-date-range-picker>\n </mat-form-field>\n</section>\n<section class=\"mapa--hidden\">\n <mat-form-field [formGroup]=\"formDatepicker\">\n <mat-date-range-input [rangePicker]=\"picker\">\n <input matStartDate formControlName=\"startDate\" />\n <input matEndDate formControlName=\"endDate\" />\n </mat-date-range-input>\n </mat-form-field>\n</section>\n","/*\n * Public API Surface of mapa-library-ui datepicker-range\n */\n\nexport * from './src/datepicker-range.component';","/*\n * Public API Surface of mapa-library-ui datepicker-range\n */\n\nexport * from './lib/components/datepicker-range/public-api';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './datepicker-range';\n"],"names":["i1.MapaI18nService"],"mappings":"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"}
Binary file
@@ -1,207 +0,0 @@
1
- import * as mapa_frontend_i18n from 'mapa-frontend-i18n';
2
- import { MapaUiTextGroups, ValidationContext, PartialMapaUiTexts } from 'mapa-frontend-i18n';
3
- import * as i0 from '@angular/core';
4
- import { EventEmitter, OnInit, DoCheck, ChangeDetectorRef } from '@angular/core';
5
- import { FormControl, FormGroup } from '@angular/forms';
6
- import * as rxjs from 'rxjs';
7
-
8
- type MapaUiTexts = MapaUiTextGroups;
9
- type ValidationMessageContext = ValidationContext;
10
-
11
- declare class MapaI18nService {
12
- private readonly injector;
13
- private readonly textsState;
14
- readonly textsSignal: i0.Signal<mapa_frontend_i18n.MapaUiTextGroups>;
15
- readonly texts$: rxjs.Observable<mapa_frontend_i18n.MapaUiTextGroups>;
16
- constructor(customTexts: PartialMapaUiTexts | null);
17
- get texts(): MapaUiTexts;
18
- setTexts(texts: PartialMapaUiTexts): void;
19
- resolveValidationText(key: keyof MapaUiTexts["validation"], context?: ValidationMessageContext): string;
20
- private resolveText;
21
- static ɵfac: i0.ɵɵFactoryDeclaration<MapaI18nService, [{ optional: true; }]>;
22
- static ɵprov: i0.ɵɵInjectableDeclaration<MapaI18nService>;
23
- }
24
-
25
- interface ElementTreeNode {
26
- key: string;
27
- value: string;
28
- children?: ElementTreeNode[];
29
- isLeaf?: boolean;
30
- }
31
- interface ElementOption {
32
- key: string;
33
- value: string;
34
- children?: ElementOption[];
35
- childrenLevel?: number | null;
36
- }
37
-
38
- interface ElementGroup {
39
- label: string;
40
- options: ElementOption[];
41
- }
42
-
43
- interface ActionButton {
44
- label: string;
45
- action: EventEmitter<boolean>;
46
- }
47
-
48
- interface ElementSearch {
49
- placeholder?: string;
50
- noEntriesFoundLabel?: string;
51
- formControl?: FormControl;
52
- toggleAllCheckbox?: boolean;
53
- }
54
-
55
- interface Errors {
56
- required?: string;
57
- minLength?: string;
58
- cpf?: string;
59
- cnpj?: string;
60
- email?: string;
61
- pattern?: string;
62
- min?: string;
63
- max?: string;
64
- maxLength?: string;
65
- }
66
-
67
- interface Status {
68
- label: string;
69
- }
70
- declare class ElementBase {
71
- value: string;
72
- key: string;
73
- label: string;
74
- required: boolean;
75
- order: number;
76
- controlType: string;
77
- type: string;
78
- placeholder?: string;
79
- readonly: boolean;
80
- hint?: string;
81
- prefix?: string;
82
- suffix?: string;
83
- autosize?: boolean;
84
- autosizeMinWidth?: string;
85
- autosizeMaxWidth?: string;
86
- autosizeMinRow?: number;
87
- autosizeMaxRow?: number;
88
- options: ElementOption[] | ElementGroup[];
89
- tree: ElementTreeNode[];
90
- multiple?: boolean;
91
- search?: ElementSearch;
92
- maxLength: string | number | null;
93
- errors?: Errors;
94
- actionButton?: ActionButton;
95
- mask?: string;
96
- autocomplete?: string;
97
- clearValue?: boolean;
98
- minDate?: string | Date | null;
99
- maxDate?: string | Date | null;
100
- status?: Status[];
101
- checkParent?: boolean;
102
- checkChildren?: boolean;
103
- openedChange?: EventEmitter<boolean>;
104
- constructor(options?: {
105
- value?: string;
106
- key?: string;
107
- label?: string;
108
- required?: boolean;
109
- order?: number;
110
- controlType?: string;
111
- type?: string;
112
- placeholder?: string;
113
- readonly?: boolean;
114
- hint?: string;
115
- prefix?: string;
116
- suffix?: string;
117
- autosize?: boolean;
118
- autosizeMinWidth?: string;
119
- autosizeMaxWidth?: string;
120
- autosizeMinRow?: number;
121
- autosizeMaxRow?: number;
122
- options?: ElementOption[] | ElementGroup[];
123
- tree?: ElementTreeNode[];
124
- multiple?: boolean;
125
- search?: ElementSearch;
126
- maxLength?: string | number | null;
127
- errors?: Errors;
128
- actionButton?: ActionButton;
129
- mask?: string;
130
- autocomplete?: string;
131
- clearValue?: boolean;
132
- minDate?: string | Date | null;
133
- maxDate?: string | Date | null;
134
- status?: Status[];
135
- checkParent?: boolean;
136
- checkChildren?: boolean;
137
- openedChange?: EventEmitter<boolean>;
138
- });
139
- }
140
-
141
- declare class DatepickerRange extends ElementBase {
142
- controlType: string;
143
- }
144
-
145
- interface MapaDatepickerRangeControlValue {
146
- startDate: string | null;
147
- endDate: string | null;
148
- }
149
- type MapaDatepickerRangeFormGroup = FormGroup;
150
- type MapaDatepickerInternalRangeValue = {
151
- startDate: Date | null;
152
- endDate: Date | null;
153
- };
154
- type MapaDatepickerInternalRangeFormGroup = FormGroup<{
155
- startDate: FormControl<MapaDatepickerInternalRangeValue["startDate"]>;
156
- endDate: FormControl<MapaDatepickerInternalRangeValue["endDate"]>;
157
- }>;
158
- type MapaDatepickerRangeDisplayFormGroup = FormGroup<{
159
- startDate: FormControl<string | null>;
160
- endDate: FormControl<string | null>;
161
- }>;
162
- declare function getMapaDatepickerRangeFormats(): {
163
- parse: {
164
- dateInput: string;
165
- };
166
- display: {
167
- dateInput: string;
168
- monthYearLabel: string;
169
- dateA11yLabel: string;
170
- monthYearA11yLabel: string;
171
- };
172
- };
173
- declare class MapaDatepickerRange implements OnInit, DoCheck {
174
- private readonly i18n;
175
- private readonly cdr;
176
- formGroup: FormGroup;
177
- element: DatepickerRange;
178
- private readonly destroyRef;
179
- private readonly dateAdapter;
180
- private readonly emptyValue;
181
- private currentLocale;
182
- readonly formDatepicker: MapaDatepickerInternalRangeFormGroup;
183
- readonly formDisplay: MapaDatepickerRangeDisplayFormGroup;
184
- rangeControl: FormControl<MapaDatepickerRangeControlValue | null>;
185
- constructor(i18n: MapaI18nService, cdr: ChangeDetectorRef);
186
- get texts(): mapa_frontend_i18n.MapaUiTextGroups;
187
- get dateInputMask(): string;
188
- get activeDateFormat(): string;
189
- ngOnInit(): void;
190
- ngDoCheck(): void;
191
- get startDatePlaceholder(): string;
192
- get endDatePlaceholder(): string;
193
- private syncFromExternal;
194
- private updateExternalFromDisplay;
195
- private updateExternalFromDatepicker;
196
- private patchExternalValue;
197
- private areDatesEqual;
198
- cleanDatepicker(): void;
199
- private getLocale;
200
- private syncLocaleSettings;
201
- static ɵfac: i0.ɵɵFactoryDeclaration<MapaDatepickerRange, never>;
202
- static ɵcmp: i0.ɵɵComponentDeclaration<MapaDatepickerRange, "mapa-datepicker-range", never, { "formGroup": { "alias": "formGroup"; "required": false; }; "element": { "alias": "element"; "required": false; }; }, {}, never, never, true, never>;
203
- }
204
- type MapaDatepickerRangeComponent = MapaDatepickerRange;
205
-
206
- export { MapaDatepickerRange, getMapaDatepickerRangeFormats };
207
- export type { MapaDatepickerRangeComponent, MapaDatepickerRangeControlValue, MapaDatepickerRangeFormGroup };