Visão geral da entrada de data e hora Blazor

    A Ignite UI for Blazor Date Time Input permite que o usuário defina e edite a data e a hora em um elemento de entrada escolhido. O usuário pode editar as partes de data e hora usando uma entrada mascarada editável. Além disso, é possível especificar um formato de exibição e entrada desejado, bem como valores mínimo e máximo para utilizar a validação.

    Usage

    Antes de usar o IgbDateTimeInput, você precisa registrá-lo da seguinte forma:

    // in Program.cs file
    
    builder.Services.AddIgniteUIBlazor(typeof(IgbDateTimeInputModule));
    

    Você também precisará vincular um arquivo CSS adicional para aplicar o estilo ao componente IgbDateTimeInput. O seguinte precisa ser colocado no arquivo wwwroot/index.html em um projeto Blazor Web Assembly ou no arquivo Pages/_Host.cshtml em um projeto Blazor Server:

    <link href="_content/IgniteUI.Blazor/themes/light/bootstrap.css" rel="stylesheet" />
    

    Value binding

    A maneira mais fácil de definir o valor do componente IgbDateTimeInput é passando um objeto Date para a propriedade Value:

    <IgbDateTimeInput @ref="DateTimeInputRef" Value="@Date">
        <IgbIcon IconName="clear" Collection="myIcons" slot="prefix" @onclick="OnClear"></IgbIcon>
    </IgbDateTimeInput>
    

    Keyboard Navigation

    O IgbDateTimeInput tem navegação intuitiva pelo teclado que facilita incrementar, decrementar ou pular entre diferentes DateParts, entre outros, sem precisar tocar no mouse.

    Chaves Descrição
    Mover um caractere para o início
    Mover um caractere para o final
    Casa Mover para o início
    Fim Mover para o final
    Ctrl / Comando + Mover para o início da seção de data/hora - atual ou esquerda
    Ctrl / Comando + Mover para o final da seção de data/hora - atual ou à direita
    Foco em uma parte de data/hora + Decrementa uma parte de data/hora
    Foco em uma parte de data/hora + Incrementa uma parte de data/hora
    Ctrl / Comando +; Define a data/hora atual como o valor do editor

    Setting formats

    O IgbDateTimeInput suporta diferentes formatos de exibição e entrada.

    Ele usa Intl.DateTimeFormat que permite que ele suporte opções de formato predefinidas, como long e short, medium e full. Além disso, ele também pode aceitar uma string personalizada construída a partir de caracteres suportados, como dd-MM-yy. Além disso, se nenhum DisplayFormat for fornecido, o componente usará o InputFormat como tal.

    Input Format

    A tabela abaixo mostra os formatos suportados pelo InputFormat do componente:

    Formatar Descrição
    d A data será convertida em zero à esquerda durante a edição.
    dd Data com um zero à esquerda explicitamente definido.
    M Mês, será forçado com um zero à esquerda durante a edição.
    MM Mês com um zero à esquerda explicitamente definido.
    yy Formato de ano curto.
    yyyy Formato de ano inteiro.
    h Horas no formato de 12 horas serão marcadas com um zero à esquerda durante a edição.
    hh Horas no formato de 12 horas com um zero à esquerda explicitamente definido.
    H Horas no formato de 24 horas serão forçadas com um zero à esquerda durante a edição.
    HH Horas no formato de 24 horas, com um zero à esquerda explicitamente definido.
    m Os minutos serão marcados com um zero à esquerda durante a edição.
    mm Minutos com um zero à esquerda explicitamente definido.
    tt Seção AM/PM para formato de 12 horas.

    Para definir um formato de entrada específico, passe-o como uma string para o IgbDateTimeInput. Isso definirá o formato de entrada esperado do usuário e o mask. Além disso, o InputFormat é baseado em localidade, então se nenhum for fornecido, o editor usará como padrão dd/MM/yyyy.

    <IgbDateTimeInput @ref="DateTimeInputRef" InputFormat="dd-MM-yy" DisplayFormat="medium">
        <IgbIcon IconName="clear" Collection="myIcons" slot="prefix" @onclick="OnClear"></IgbIcon>
    </IgbDateTimeInput>
    

    Se tudo correr bem, você deverá ver o seguinte no seu navegador:

    Display format

    A entrada de data e hora expõe formatos predefinidos para exibir data/hora de várias maneiras. Todos os exemplos abaixo são fornecidos em locale en-US.

    Opção Exemplo
    short 17/07/22, 12:00 AM
    medium 17 de julho de 2022, 12:00:00 AM
    long 17 de julho de 2022 às 12:00:00 AM GMT+3
    full Domingo, 17 de julho de 2022 às 12:00:00 AM Horário de verão da Europa Oriental
    shortDate 7/17/22
    mediumDate 17 de julho de 2022
    longDate 17 de julho de 2022
    fullDate Domingo, 17 de julho de 2022
    shortTime 12:00 AM
    mediumTime 12:00:00 AM
    longTime 12:00:00 AM GMT+3
    fullTime 12:00:00 AM Horário de verão da Europa Oriental

    Além disso, os usuários podem construir uma string displayFormat usando os símbolos suportados descritos na tabela a seguir.

    Tipo Formatar Descrição Exemplo
    Dia d Dígitos mínimos. 7, 17
    dd Zero preenchido. 07, 17
    Mês M Dígitos mínimos. 3, 10
    MM Zero preenchido. 03, 10
    MMM Abreviado Outubro
    MMMM Largo outubro
    MMMMM Estreito O
    Ano y Numérico 2022
    yy Dois dígitos 22
    yyy Numérico 2022
    yyyy Numérico 2022
    Hora 1-12 h Dígitos mínimos 1, 12
    hh Zero preenchido 01, 12
    Hora 1-24 H Dígitos mínimos 1, 23
    HH Zero preenchido 01, 23
    Minuto m Dígitos mínimos 1, 59
    mm Zero preenchido 01, 59
    Segundo s Dígitos mínimos 1, 59
    ss Zero preenchido 01, 59
    Período de tempo t Abreviado AM, PM
    tt Abreviado AM, PM
    ttt Curto meio-dia
    tttt Longo meio-dia
    ttttt Estreito não

    [!Note] Many locales use the same time period string, irrespective of the format specified. Also, it has an effect only if a 12-hour clock is used.

    Min/max value

    Você pode especificar as propriedades Min e Max para restringir a entrada e controlar a validade do componente. Assim como a propriedade Value, elas podem ser do tipo string.

    <IgbDateTimeInput @ref="DateTimeInputRef" Min="@MinDate" Max="@MaxDate">
        <IgbIcon IconName="clear" Collection="myIcons" slot="prefix" @onclick="OnClear"></IgbIcon>
    </IgbDateTimeInput>
    

    Se tudo correr bem, o componente será invalid se o valor for maior ou menor que as datas fornecidas. Veja o exemplo abaixo:

    Step up/down

    O IgbDateTimeInput expõe métodos públicos StepUp e StepDown. Eles incrementam ou decrementam um DatePart específico da data e hora atualmente definidas e podem ser usados de algumas maneiras.

    No primeiro cenário, se nenhuma DatePart específica for passada para o método, uma DatePart padrão será incrementada ou decrementada, com base no InputFormat especificado e na implementação do componente interno. No segundo cenário, você pode especificar explicitamente qual DatePart manipular, pois pode atender a diferentes requisitos. Além disso, ambos os métodos aceitam um parâmetro delta opcional do tipo number que pode ser usado para definir o passo stepUp/stepDown.

    Além disso, SpinDelta é uma propriedade que pode ser usada para aplicar um delta diferente a cada segmento de data e hora. Ele será aplicado ao girar com o teclado, a roda do mouse ou com os métodos StepUp e StepDown, desde que eles não tenham o parâmetro delta fornecido, pois ele terá precedência sobre SpinDelta.

    Experimente no exemplo abaixo:

    Styling

    The IgbDateTimeInput component exposes CSS parts for almost all of its inner elements. The following table lists all of the exposed CSS parts:

    Nome Descrição
    container O wrapper principal que contém todos os principais elementos de entrada.
    input O elemento de entrada nativo.
    label O elemento de rótulo nativo.
    prefix O wrapper de prefixo.
    suffix O wrapper de sufixo.
    helper-text O wrapper de texto auxiliar.
    igc-date-time-input::part(input) {
      background-color: var(--ig-primary-100);
      border-color: var(--ig-secondary-500);
      box-shadow: none;
    }
    
    igc-date-time-input::part(prefix),
    igc-date-time-input::part(suffix) {
      color: var(--ig-primary-600-contrast);
      background-color: var(--ig-primary-500);
      border-color: var(--ig-secondary-500);
    }
    

    API References

    Additional Resources