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 +1 @@
1
- {"version":3,"file":"mapa-library-ui-src-lib-core-utils.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/utils/date-fns.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/date-locale.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/date.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/public-api.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-core-utils.ts"],"sourcesContent":["import {\n addMonths,\n format,\n getDate,\n getYear,\n isAfter,\n isValid,\n parse,\n parseISO,\n set,\n} from 'date-fns';\n\ntype DateInput = Date | string | number | null | undefined;\n\ninterface TimeParts {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n}\n\nconst ISO_DATE_RE = /^\\d{4}-\\d{2}-\\d{2}T/;\n\nconst toDateFnsFormat = (formatPattern: string) =>\n formatPattern\n .replaceAll('YYYY', 'yyyy')\n .replaceAll('DD', 'dd')\n .replaceAll('A', 'a');\n\nexport const parseDateValueFns = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): Date => {\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'number') {\n return new Date(value);\n }\n\n if (typeof value === 'string') {\n if (!value.trim()) {\n return new Date(NaN);\n }\n\n if (ISO_DATE_RE.test(value)) {\n return parseISO(value);\n }\n\n const parsed = parse(value, toDateFnsFormat(inputFormat), new Date());\n if (isValid(parsed)) {\n return parsed;\n }\n\n return new Date(value);\n }\n\n return new Date(NaN);\n};\n\nexport const formatDateValue = (\n value: DateInput,\n outputFormat = 'DD/MM/YYYY',\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n if (!isValid(parsed)) {\n return '';\n }\n\n return format(parsed, toDateFnsFormat(outputFormat));\n};\n\nexport const isValidDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): boolean => {\n const parsed = parseDateValueFns(value, inputFormat);\n return isValid(parsed);\n};\n\nexport const toIsoDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n return isValid(parsed) ? parsed.toISOString() : '';\n};\n\nexport const addMonthsToDateValue = (\n value: DateInput,\n months: number,\n inputFormat = 'DD/MM/YYYY',\n): Date => addMonths(parseDateValueFns(value, inputFormat), months);\n\nexport const setTimeOnDateValue = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): Date => set(parseDateValueFns(value, inputFormat), time);\n\nexport const toIsoDateValueWithTime = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = setTimeOnDateValue(value, time, inputFormat);\n return isValid(parsed) ? parsed.toISOString() : '';\n};\n\nexport const toIsoDateValueWithUtcTime = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n\n if (!isValid(parsed)) {\n return '';\n }\n\n const utcDate = new Date(parsed.getTime());\n utcDate.setUTCHours(\n time.hours ?? utcDate.getUTCHours(),\n time.minutes ?? utcDate.getUTCMinutes(),\n time.seconds ?? utcDate.getUTCSeconds(),\n time.milliseconds ?? utcDate.getUTCMilliseconds(),\n );\n\n return utcDate.toISOString();\n};\n\nexport const getYearFromDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): number => getYear(parseDateValueFns(value, inputFormat));\n\nexport const getDayOfMonthFromDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): number => getDate(parseDateValueFns(value, inputFormat));\n\nexport const isAfterDateValue = (\n value: DateInput,\n compareValue: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): boolean =>\n isAfter(\n parseDateValueFns(value, inputFormat),\n parseDateValueFns(compareValue, inputFormat),\n );\n","import { AppLanguage } from 'mapa-frontend-i18n';\nimport {\n formatDateValue,\n isValidDateValue,\n parseDateValueFns,\n toIsoDateValue,\n toIsoDateValueWithUtcTime,\n} from './date-fns.util';\n\nexport type DatepickerLocale = 'pt-BR' | 'es' | 'en';\nexport type DateFormatPattern = 'DD/MM/YYYY' | 'MM/DD/YYYY';\nexport type DateTimeFormatPattern =\n | 'DD/MM/YYYY HH:mm'\n | 'MM/DD/YYYY HH:mm';\n\nexport function toDatepickerLocale(language: AppLanguage): DatepickerLocale {\n return language === 'en' ? 'en' : language === 'es' ? 'es' : 'pt-BR';\n}\n\nexport function getDateFormatByLanguage(\n language: AppLanguage,\n): DateFormatPattern {\n return language === 'en' ? 'MM/DD/YYYY' : 'DD/MM/YYYY';\n}\n\nexport function getDateTimeFormatByLanguage(\n language: AppLanguage,\n): DateTimeFormatPattern {\n return language === 'en' ? 'MM/DD/YYYY HH:mm' : 'DD/MM/YYYY HH:mm';\n}\n\nexport function formatDateByLanguage(\n value: Date | string | number | null | undefined,\n language: AppLanguage,\n): string {\n return formatDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function formatDateTimeByLanguage(\n value: Date | string | number | null | undefined,\n language: AppLanguage,\n): string {\n return formatDateValue(value, getDateTimeFormatByLanguage(language));\n}\n\nexport function isValidDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): boolean {\n if (!value) {\n return false;\n }\n\n return isValidDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function parseDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): Date {\n return parseDateValueFns(value, getDateFormatByLanguage(language));\n}\n\nexport function toIsoDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): string {\n return toIsoDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function toIsoDateByLanguageWithUtcTime(\n value: string | null | undefined,\n language: AppLanguage,\n time: {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n },\n): string {\n return toIsoDateValueWithUtcTime(\n value,\n time,\n getDateFormatByLanguage(language),\n );\n}\n\nexport function reformatDateStringForLanguage(\n value: string | null | undefined,\n fromLanguage: AppLanguage,\n toLanguage: AppLanguage,\n): string {\n if (!value) {\n return '';\n }\n\n return formatDateValue(\n value,\n getDateFormatByLanguage(toLanguage),\n getDateFormatByLanguage(fromLanguage),\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","/*\n * Public API Surface of mapa-library-ui authorize\n */\nexport * from './date-fns.util';\nexport * from './date-locale.util';\nexport * from './date.util';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './util';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mapa-library-ui-src-lib-core-utils.mjs","sources":["../../../projects/mapa-library-ui/src/lib/core/utils/date-fns.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/date-locale.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/date.util.ts","../../../projects/mapa-library-ui/src/lib/core/utils/public-api.ts","../../../projects/mapa-library-ui/src/mapa-library-ui-src-lib-core-utils.ts"],"sourcesContent":["import {\n addMonths,\n format,\n getDate,\n getYear,\n isAfter,\n isValid,\n parse,\n parseISO,\n set,\n} from 'date-fns';\n\ntype DateInput = Date | string | number | null | undefined;\n\ninterface TimeParts {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n}\n\nconst ISO_DATE_RE = /^\\d{4}-\\d{2}-\\d{2}T/;\n\nconst toDateFnsFormat = (formatPattern: string) =>\n formatPattern\n .replaceAll('YYYY', 'yyyy')\n .replaceAll('DD', 'dd')\n .replaceAll('A', 'a');\n\nexport const parseDateValueFns = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): Date => {\n if (value instanceof Date) {\n return value;\n }\n\n if (typeof value === 'number') {\n return new Date(value);\n }\n\n if (typeof value === 'string') {\n if (!value.trim()) {\n return new Date(NaN);\n }\n\n if (ISO_DATE_RE.test(value)) {\n return parseISO(value);\n }\n\n const parsed = parse(value, toDateFnsFormat(inputFormat), new Date());\n if (isValid(parsed)) {\n return parsed;\n }\n\n return new Date(value);\n }\n\n return new Date(NaN);\n};\n\nexport const formatDateValue = (\n value: DateInput,\n outputFormat = 'DD/MM/YYYY',\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n if (!isValid(parsed)) {\n return '';\n }\n\n return format(parsed, toDateFnsFormat(outputFormat));\n};\n\nexport const isValidDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): boolean => {\n const parsed = parseDateValueFns(value, inputFormat);\n return isValid(parsed);\n};\n\nexport const toIsoDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n return isValid(parsed) ? parsed.toISOString() : '';\n};\n\nexport const addMonthsToDateValue = (\n value: DateInput,\n months: number,\n inputFormat = 'DD/MM/YYYY',\n): Date => addMonths(parseDateValueFns(value, inputFormat), months);\n\nexport const setTimeOnDateValue = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): Date => set(parseDateValueFns(value, inputFormat), time);\n\nexport const toIsoDateValueWithTime = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = setTimeOnDateValue(value, time, inputFormat);\n return isValid(parsed) ? parsed.toISOString() : '';\n};\n\nexport const toIsoDateValueWithUtcTime = (\n value: DateInput,\n time: TimeParts,\n inputFormat = 'DD/MM/YYYY',\n): string => {\n const parsed = parseDateValueFns(value, inputFormat);\n\n if (!isValid(parsed)) {\n return '';\n }\n\n const utcDate = new Date(parsed.getTime());\n utcDate.setUTCHours(\n time.hours ?? utcDate.getUTCHours(),\n time.minutes ?? utcDate.getUTCMinutes(),\n time.seconds ?? utcDate.getUTCSeconds(),\n time.milliseconds ?? utcDate.getUTCMilliseconds(),\n );\n\n return utcDate.toISOString();\n};\n\nexport const getYearFromDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): number => getYear(parseDateValueFns(value, inputFormat));\n\nexport const getDayOfMonthFromDateValue = (\n value: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): number => getDate(parseDateValueFns(value, inputFormat));\n\nexport const isAfterDateValue = (\n value: DateInput,\n compareValue: DateInput,\n inputFormat = 'DD/MM/YYYY',\n): boolean =>\n isAfter(\n parseDateValueFns(value, inputFormat),\n parseDateValueFns(compareValue, inputFormat),\n );\n","import { AppLanguage } from 'mapa-frontend-i18n';\nimport {\n formatDateValue,\n isValidDateValue,\n parseDateValueFns,\n toIsoDateValue,\n toIsoDateValueWithUtcTime,\n} from './date-fns.util';\n\nexport type DatepickerLocale = 'pt-BR' | 'es' | 'en';\nexport type DateFormatPattern = 'DD/MM/YYYY' | 'MM/DD/YYYY';\nexport type DateTimeFormatPattern =\n | 'DD/MM/YYYY HH:mm'\n | 'MM/DD/YYYY HH:mm';\n\nexport function toDatepickerLocale(language: AppLanguage): DatepickerLocale {\n return language === 'en' ? 'en' : language === 'es' ? 'es' : 'pt-BR';\n}\n\nexport function getDateFormatByLanguage(\n language: AppLanguage,\n): DateFormatPattern {\n return language === 'en' ? 'MM/DD/YYYY' : 'DD/MM/YYYY';\n}\n\nexport function getDateTimeFormatByLanguage(\n language: AppLanguage,\n): DateTimeFormatPattern {\n return language === 'en' ? 'MM/DD/YYYY HH:mm' : 'DD/MM/YYYY HH:mm';\n}\n\nexport function formatDateByLanguage(\n value: Date | string | number | null | undefined,\n language: AppLanguage,\n): string {\n return formatDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function formatDateTimeByLanguage(\n value: Date | string | number | null | undefined,\n language: AppLanguage,\n): string {\n return formatDateValue(value, getDateTimeFormatByLanguage(language));\n}\n\nexport function isValidDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): boolean {\n if (!value) {\n return false;\n }\n\n return isValidDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function parseDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): Date {\n return parseDateValueFns(value, getDateFormatByLanguage(language));\n}\n\nexport function toIsoDateByLanguage(\n value: string | null | undefined,\n language: AppLanguage,\n): string {\n return toIsoDateValue(value, getDateFormatByLanguage(language));\n}\n\nexport function toIsoDateByLanguageWithUtcTime(\n value: string | null | undefined,\n language: AppLanguage,\n time: {\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n },\n): string {\n return toIsoDateValueWithUtcTime(\n value,\n time,\n getDateFormatByLanguage(language),\n );\n}\n\nexport function reformatDateStringForLanguage(\n value: string | null | undefined,\n fromLanguage: AppLanguage,\n toLanguage: AppLanguage,\n): string {\n if (!value) {\n return '';\n }\n\n return formatDateValue(\n value,\n getDateFormatByLanguage(toLanguage),\n getDateFormatByLanguage(fromLanguage),\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 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","/*\n * Public API Surface of mapa-library-ui authorize\n */\nexport * from './date-fns.util';\nexport * from './date-locale.util';\nexport * from './date.util';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './util';\n"],"names":[],"mappings":"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"}