feat(calendar): adiciona variações mês/ano e somente ano ao po-calendar e po-datepicker#2816
Open
devin-ai-integration[bot] wants to merge 8 commits intomasterfrom
Open
feat(calendar): adiciona variações mês/ano e somente ano ao po-calendar e po-datepicker#2816devin-ai-integration[bot] wants to merge 8 commits intomasterfrom
devin-ai-integration[bot] wants to merge 8 commits intomasterfrom
Conversation
Contributor
Author
🤖 Devin AI EngineerI'll be helping with this pull request! Here's what you should know: ✅ I will automatically:
Note: I can only respond to comments from users who have write access to this repository. ⚙️ Control Options:
|
Adiciona valores MonthYear e Year ao enum PoCalendarMode. Adiciona inputs p-mode e p-year-range ao po-calendar-base para suportar as novas variações de calendário. Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
Cria componente para variações mês/ano e somente ano do calendário. Inclui navegação por teclado, acessibilidade, i18n para 4 idiomas, estados desabilitados baseados em min/max date e testes unitários. Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
Adiciona po-calendar-month-year ao módulo e template do po-calendar. Exibe condicionalmente o picker de mês/ano ou ano baseado no modo. Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
Adiciona inputs p-mode e p-year-range ao datepicker base. Atualiza template para passar propriedades ao po-calendar. Adiciona navegação por teclado específica para modos mês/ano e ano. Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
ac36162 to
8ac4448
Compare
Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
b72250d to
41eb62e
Compare
Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
Co-Authored-By: arthur.polidorio <arthur.polidorio@totvs.com.br>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adiciona duas novas variações ao
po-calendarepo-datepicker:PoCalendarMode.MonthYear): exibe duas listas lado a lado (meses + anos) compo-buttontertiaryPoCalendarMode.Year): exibe apenas a lista de anosPrincipais mudanças:
MonthYeareYearemPoCalendarModePoCalendarMonthYearComponentcom template inline, navegação por teclado (Tab/Shift+Tab/Arrow/Enter/Space), i18n (pt/en/es/ru), e estados desabilitados via min/max datep-year-range(default 150) para customizar o intervalo de anospo-calendar(template condicional,writeValuecom parsing de"MM/YYYY"e"YYYY")po-datepicker(passap-modeep-year-range, ajusta keyboard handling)po-datepicker: suporte a digitação nos modosmonthYear(mm/YYYY) eyear(YYYY) com máscara, validação e sincronização bidirecional com o calendarpo-calendar/variacao-mes-anodo repopo-ui/po-style(PR #903)Modelo de valor:
"MM/YYYY"(ex:"05/2025")"YYYY"(ex:"2025")Updates since last revision
po-datepicker:buildMonthYearMask()(99/9999) ebuildYearMask()(9999)isMonthYearMode/isYearModeno base componenthandleMonthYearKeyup,handleYearKeyup,handleMonthYearBlur,handleYearBlur)parseMonthYearInput— valida mês 01-12 e ano > 0)syncCalendarMonthYear,syncCalendarYear)writeValueeformatToDateadaptados para aceitar strings nos novos modospo-calendar-month-year.component.tspo-datepicker.component.spec.tsepo-datepicker-base.component.spec.tsReview & Testing Checklist for Human
formatToDatemudou de(value: Date)para(value: any)— Verificar se consumidores externos dependem da tipagem anterior. A mudança permite retornar strings para monthYear/Year, mas relaxa o type safety.'Data inválida'como model value — Quando o input é inválido,callOnChange('Data inválida')é chamado. Isso não é internacionalizado e pode causar problemas em formulários que validam o model value. Considerar usarnullouundefinedem vez de uma string de erro.parseMonthYearInputsempre produz modelo com separador/— O display usa o separador do locale, mas o model value sempre usa/. Verificar se isso é consistente com o formato emitido pelo calendar (MM/YYYY). AwriteMonthYearValuefaz split por/no model, o que pode falhar se o model vier com outro separador.callOnChangevscontrolModel— Os modos monthYear/Year usamcallOnChangediretamente (string) em vez decontrolModel(Date). Isso bypassa a lógica de validação de data ISO existente. Confirmar que validators custom e reactive forms funcionam corretamente.setTimeout—focusMonthButton,focusYearButton,focusFirstMonth,focusFirstYear,scrollToSelectedYearusamsetTimeoutcom delays de 0/50/100ms e queries DOM diretas (querySelector). Verificar se funciona de forma confiável em diferentes velocidades de renderização.Plano de teste sugerido:
po-calendar/variacao-mes-ano) viaangular.jsonpo-datepickercom[p-mode]="'monthYear'"— digitar06/2025no input e verificar que o calendar sincroniza mês/anopo-datepickercom[p-mode]="'year'"— digitar2025no input e verificar que o calendar sincroniza o anop-min-date,p-max-date,ngModel, eformControl(reactive forms)Notes
standalone: falsee é declarado noPoCalendarModule, consistente com os componentes existentes.onYearListKeydowneonYearKeydown) do checklist anterior permanece relevante.@typescript-eslint/member-ordering) deve ser validado contra ostyleguide.mddo projeto.Link to Devin session: https://totvs.devinenterprise.com/sessions/d76cc54521ea46379983423f76b7cea5