Asmait Ermias

Asmait Ermias

1612926720

Mobile Friendly Datetime Picker for Vue

vue-datetime

Mobile friendly datetime picker for Vue. Supports date, datetime and time modes, i18n and more.

Demo

Go to demo.

demo

Installation

Bundler (Webpack, Rollup…)

yarn add luxon vue-datetime weekstart

Or

npm install --save luxon vue-datetime weekstart

weekstart is optional, is used to get the first day of the week.

Register
import Vue from 'vue'
import { Datetime } from 'vue-datetime'
// You need a specific loader for CSS files
import 'vue-datetime/dist/vue-datetime.css'

Vue.use(Datetime)
Register manually
Global
import { Datetime } from 'vue-datetime';

Vue.component('datetime', Datetime);
Local
import { Datetime } from 'vue-datetime';

Vue.extend({
  template: '...',
  components: {
    datetime: Datetime
  }
});

Browser

Download vue, luxon, weekstart and vue-datetime or use a CDN like unpkg.

<link rel="stylesheet" href="vue-datetime.css"></link>
<script src="vue.js"></script>
<script src="luxon.js"></script>
<script src="weekstart.js"></script>
<script src="vue-datetime.js"></script>

The component registers itself automatically as <datetime>. If you want to use a different name then register it explicitly:

Vue.component('vue-datetime', window.VueDatetime.Datetime);

weekstart is optional, is used to get the first day of the week.

Usage

Minimal

<datetime v-model="date"></datetime>

Setup

Parameters

Parameter Type Default Description
v-model (required) ISO 8601 String - Datetime.
type String date Picker type: date, datetime or time.
input-id String '' Id for the input.
input-class String, Array or Object '' Class for the input.
input-style String, Array or Object '' Style for the input.
hidden-name String null Name for hidden input with raw value. See #51.
value-zone String UTC Time zone for the value.
zone String local Time zone for the picker.
format Object or String DateTime.DATE_MED, DateTime.DATETIME_MED or DateTime.TIME_24_SIMPLE Input date format. Luxon presets or tokens.
phrases Object {ok: 'Ok', cancel: 'Cancel'} Phrases.
use12-hour Boolean false Display 12 hour (AM/PM) mode
hour-step Number 1 Hour step.
minute-step Number 1 Minute step.
min-datetime ISO 8601 String null Minimum datetime.
max-datetime ISO 8601 String null Maximum datetime.
auto Boolean false Auto continue/close on select.
week-start Number auto from locale if weekstart is available or 1 First day of the week. 1 is Monday and 7 is Sunday.
flow Array Depends of type Customize steps flow, steps available: time, date, month, year. Example: [‘year’, ‘date’, ‘time’]
title String '' Popup title.
hide-backdrop Boolean false Show/Hide backdrop.
backdrop-click Boolean true Enable/Disable backdrop click to cancel (outside click).

Input inherits all props not defined above but style and class will be inherited by root element. See inheritAttrs option

The component is based on Luxon, check out documentation to set time zones and format.

Internationalization

Date internationalization depends on luxon. Set the default locale.

import { Settings } from 'luxon'

Settings.defaultLocale = 'es'

Events

Component emits the input event to work with v-model. More info.

close event is emitted when the popup closes.

Also, input text inherits all component events.

Slots

You can customize the component using named slots.

Available slots: before, after, button-cancel and button-confirm

Button customization example:
<datetime v-model="date" input-id="startDate">
  <label for="startDate" slot="before">Field Label</label>
  <
  <template slot="button-cancel">
    <fa :icon="['far', 'times']"></fa>
    Cancel
  </template>
  <template slot="button-confirm">
    <fa :icon="['fas', 'check-circle']"></fa>
    Confirm
  </template>
</datetime>

You can also use slot-scope to determine which view is currently active:

<template slot="button-confirm" slot-scope="scope">
  <
  <
</template>

Theming

Theming is supported by overwriting CSS classes.

Development

Launch lint and tests

yarn test

Launch visual tests

yarn dev

Build

Bundle the js and css to the dist folder:

yarn build

Download Details:

Author: drongen

Demo: https://mariomka.github.io/vue-datetime/

Source Code: https://github.com/drongen/vue-datetime

#vue #vuejs #javascript

What is GEEK

Buddha Community

Mobile Friendly Datetime Picker for Vue
Luna  Mosciski

Luna Mosciski

1600583123

8 Popular Websites That Use The Vue.JS Framework

In this article, we are going to list out the most popular websites using Vue JS as their frontend framework.

Vue JS is one of those elite progressive JavaScript frameworks that has huge demand in the web development industry. Many popular websites are developed using Vue in their frontend development because of its imperative features.

This framework was created by Evan You and still it is maintained by his private team members. Vue is of course an open-source framework which is based on MVVM concept (Model-view view-Model) and used extensively in building sublime user-interfaces and also considered a prime choice for developing single-page heavy applications.

Released in February 2014, Vue JS has gained 64,828 stars on Github, making it very popular in recent times.

Evan used Angular JS on many operations while working for Google and integrated many features in Vue to cover the flaws of Angular.

“I figured, what if I could just extract the part that I really liked about Angular and build something really lightweight." - Evan You

#vuejs #vue #vue-with-laravel #vue-top-story #vue-3 #build-vue-frontend #vue-in-laravel #vue.js

Ellis Herbert

Ellis Herbert

1578589885

Build Vue Mobile Toolkit for Financial Scenarios

mand-mobile

A Vue mobile UI toolkit, based on Vue.js 2, designed for financial scenarios

Preview

You can scan the following QR code to access the examples:

QR code

Install & Usage

Template for new project

Vue CLI 2

New project can be initialized and integrated with mand-mobile by vue-cli-2 with mand-mobile-template.

vue init mand-mobile/mand-mobile-template my-project

Vue CLI 3

New project can be initialized and integrated with mand-mobile by vue-cli with vue-cli-plugin-mand.

vue create my-project
cd my-project
npm install --save-dev vue-cli-plugin-mand
vue invoke mand

Manually

npm install mand-mobile --save

Import

import { Button } from 'mand-mobile'
  • Manually import
import Button from 'mand-mobile/lib/button'
  • Totally import
import Vue from 'vue'
import mandMobile from 'mand-mobile'
import 'mand-mobile/lib/mand-mobile.css'

Vue.use(mandMobile)

Usage

Select the components you need to build your webapp. Find more details in Quick Start.

Development

git clone git@github.com:didi/mand-mobile.git
cd mand-mobile
npm install
npm run dev

Open your browser and visit http://127.0.0.1:4000. Find more details in Development Guide.


DEMO | DOWNLOAD

#vue #vue-mobile #vue-mobile-ui #vue-js

Rahim Makhani

Rahim Makhani

1616669264

On-Demand Mobile App Development Services in USA

Mobile apps are developing day-by-day and the usage of mobile apps is also increasing. There are many mobile app development company that are providing services for on-demand mobile app development services.

One of the leading mobile app development company in the USA is Nevina Infotech. It is the best known for providing on-demand app development services till now.

Our On-Demand Mobile App Development Services:-

iPhone App Development
Android App Development
iPad App Development
Game App Development
ionic App Development
Wearable App Development
Flutter App Development

#mobile app development company #mobile app development services #mobile application development services #mobile application development company #mobile app development company usa

Saul  Alaniz

Saul Alaniz

1650810840

Angular Datepicker: Cómo Usar Datepicker En Angular 13

Angular Material  está funcionando desde cero con componentes de interfaz de usuario significativos y modernos que funcionan en la web , dispositivos móviles y computadoras de escritorio

Los componentes de Angular Material nos ayudarán a construir una interfaz de usuario y una experiencia de usuario atractivas , páginas web y aplicaciones web consistentes y funcionales, manteniendo los principios de diseño web modernos, como la portabilidad y compatibilidad del navegador, la independencia del dispositivo y la degradación elegante.

Selector de fecha angular

Angular Datepicker es un componente de material incorporado que nos permite ingresar la fecha a través de la entrada de texto o eligiendo la fecha de un calendario. Angular Material Datepicker permite a los usuarios ingresar la fecha a través de la entrada de texto o eligiendo la fecha del calendario. Material Datepicker consta de varios componentes y directivas que funcionan juntos.

Se compone de varios componentes angulares y directivas que funcionan en conjunto. Primero, necesitamos instalar Angular. Estamos usando  Angular CLI para instalar  Angular.

Paso 1: Instale la CLI angular.

Escriba el siguiente comando.

npm install -g @angular/cli

Ahora, crea el proyecto Angular usando el siguiente comando.

 

ng new datepicker

Paso 2: Instale otras bibliotecas.

Ingrese al proyecto e instale  hammerjs  usando el siguiente comando.

npm install --save hammerjs

Hammer.js es la dependencia opcional y ayuda con la compatibilidad táctil para algunos componentes.

Ahora, instale  Angular Material Angular Animations  usando el siguiente comando.

npm install --save @angular/material @angular/animations @angular/cdk

Ahora, incluya  hammerjs  dentro del  archivo angular.json  . Puede encontrar este archivo en la raíz del proyecto.

Paso 3: importa un tema preconstruido e íconos de materiales.

Angular Material viene con algunos temas prediseñados. Estos temas han resaltado los colores y el estilo básico.

Los principales temas disponibles son  rosa índigoámbar morado oscuro ,  verde púrpura  y  gris azulado rosa .

Para importar el tema, puede agregar el siguiente código a su archivo global  styles.css  . El archivo está dentro de la carpeta src  .

@import '~@angular/material/prebuilt-themes/indigo-pink.css';

También puede acceder a los íconos de Material Design  y usar íconos con nombre con un   componente <mat-icon> .

Si queremos importarlos a su proyecto, podemos agregar esto a la sección principal del   archivo raíz index.html de su proyecto.

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Datepicker</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
  <app-root></app-root>
</body>
</html>

Paso 4: cree un archivo de módulo de material personalizado.

Dentro de la carpeta src,>> app  , cree un archivo llamado  material.module.ts  y agregue el siguiente código.

// material.module.ts

import { NgModule } from '@angular/core';
import { MatDatepickerModule } from '@angular/material';

@NgModule({
  imports: [
    MatDatepickerModule
  ],
  exports: [
    MatDatepickerModule
  ]
})

export class MaterialModule {}

Hemos importado MatDatepickerModule, MatNativeDateModule  y otros componentes que necesitamos en nuestra  aplicación de ejemplo Angular Datepicker  .

Podemos agregar componentes adicionales en el futuro si es necesario.

Este archivo se escribe solo porque es fácil incluir todos los componentes de Material en este archivo, y luego este archivo se importará dentro de  app.module.ts.

// material.module.ts

import { NgModule } from '@angular/core';
import { MatDatepickerModule,
        MatNativeDateModule,
        MatFormFieldModule,
        MatInputModule } from '@angular/material';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
  imports: [
    MatDatepickerModule,
    MatFormFieldModule,
    MatNativeDateModule,
    MatInputModule,
    BrowserAnimationsModule
  ],
  exports: [
    MatDatepickerModule,
    MatFormFieldModule,
    MatNativeDateModule,
    MatInputModule,
    BrowserAnimationsModule
  ],
  providers: [ MatDatepickerModule ],
})

export class MaterialModule {}

Paso 5: importe MaterialModule en un archivo app.module.ts.

Importe MaterialModule dentro del archivo app.module.ts  .

// app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { MaterialModule } from './material.module';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    MaterialModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

Además, finalmente, escriba el código HTML de Datepicker dentro del archivo app.component.html  .

<!-- app.component.html -->

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

Guarde el archivo, vaya a una terminal o cmd e inicie Angular Development Server.

ng serve --open

Ejemplo de selector de fecha angular |  Cómo usar el selector de fechas en Angular

Vaya al navegador y vea algo como la imagen de abajo.

Tutorial de ejemplo de selector de fechas de Angular 6Paso 6: Conectar un selector de fechas a una entrada

Un selector de fecha consta de entrada de texto y una ventana emergente de calendario, conectados a través de la propiedad matDatePicker  en la entrada de texto.

<input [matDatepicker]="myDatepicker">
<mat-datepicker #myDatepicker></mat-datepicker>

Hay un botón de alternar selector de fecha opcional disponible. El botón de alternar se puede agregar al ejemplo anterior:

<input [matDatepicker]="myDatepicker">
<mat-datepicker-toggle [for]="myDatepicker"></mat-datepicker-toggle>
<mat-datepicker #myDatepicker></mat-datepicker>

Funciona de la misma manera con una entrada que es parte de un <mat-form-field> y un botón de alternar se puede usar fácilmente como prefijo o sufijo en la entrada de material:

<mat-form-field>
  <input matInput [matDatepicker]="myDatepicker">
  <mat-datepicker-toggle matSuffix [for]="myDatepicker"></mat-datepicker-toggle>
  <mat-datepicker #myDatepicker></mat-datepicker>
</mat-form-field>

Paso 7: Configuración de la vista de inicio del calendario

La  propiedad startView  de <mat-datepicker> podría usarse para establecer el aspecto que se mostrará cuando se abra el calendario por primera vez. Puede configurarse para  mesañovarios años ; de forma predeterminada, comenzará a ver el mes.

Un mes, año o rango de años en los que se abre un calendario se determina comprobando primero si alguna fecha está actualmente seleccionada y, de ser así, se abrirá en un mes o año que contenga esa fecha. De lo contrario, se abrirá en un mes o año, proporcionando la fecha de hoy.

Este comportamiento se puede anular fácilmente usando la  propiedad startAt de <mat-datepicker> . En este caso, se abrirá un calendario en el mes o año que contiene la  fecha startAt  .

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker startView="year" [startAt]="startDate"></mat-datepicker>
</mat-form-field>

Tutorial de ejemplo de selector de fecha de material angular

Puedes encontrar el código en Github.

CÓDIGO GITHUB

Validación de selector de fecha angular

Tres propiedades agregan la validación de fecha a la entrada del selector de fecha.

Los dos primeros son las propiedades min y max .

Además, para hacer cumplir la validación en la entrada, estas propiedades deshabilitarán todas las fechas en la ventana emergente del calendario antes o después de los valores respectivos y evitarán que el usuario avance el calendario más allá del mes o año (según la vista actual) que contiene la fecha mínima o máxima. .

Consulte el siguiente marcado HTML.

<mat-form-field class="example-full-width">
  <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

 Además, consulte el archivo mecanografiado relacionado con el marcado anterior.

import {Component} from '@angular/core';

/** @title Datepicker with min & max validation */
@Component({
  selector: 'datepicker-min-max-example',
  templateUrl: 'datepicker-min-max-example.html',
  styleUrls: ['datepicker-min-max-example.css'],
})
export class DatepickerMinMaxExample {
  minDate = new Date(2000, 0, 1);
  maxDate = new Date(2020, 0, 1);
}

La segunda forma de agregar la validación de fecha es usando la propiedad matDatepickerFilter de la entrada del selector de fecha.

Esta propiedad acepta una función de <D> => booleano (donde <D> es el tipo de fecha utilizado por el selector de fecha, consulte Elección de una implementación de fecha).

Un resultado verdadero indica que la fecha es válida y un resultado falso sugiere que no lo es.

Nuevamente, esto también deshabilitará las fechas en un calendario que no son válidas.

Sin embargo, una diferencia crítica entre usar matDatepickerFilter y usar min o max es que filtrar todas las fechas antes o después de cierto punto no evitará que un usuario avance un calendario más allá de ese punto.

Consulte el siguiente ejemplo de código. Vea primero el marcado HTML.

<mat-form-field class="example-full-width">
  <input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

 Ahora, vea el archivo TypeScript relacionado con el marcado anterior.

import {Component} from '@angular/core';

/** @title Datepicker with filter validation */
@Component({
  selector: 'datepicker-filter-example',
  templateUrl: 'datepicker-filter-example.html',
  styleUrls: ['datepicker-filter-example.css'],
})
export class DatepickerFilterExample {
  myFilter = (d: Date): boolean => {
    const day = d.getDay();
    // Prevent Saturday and Sunday from being selected.
    return day !== 0 && day !== 6;
  }
}

En este ejemplo, el usuario puede retroceder hasta 2005, pero todas las fechas anteriores no podrán seleccionarse. No podrán retroceder más en el calendario que 2000.

Si escriben manualmente una fecha antes del mínimo, después del máximo o filtrada, la entrada tendrá errores de validación.

Cada propiedad de validación tiene un error diferente que se puede verificar:

  1. Por ejemplo, el valor que viola una propiedad mínima tendrá el error matDatepickerMin.
  2. El valor que viola una propiedad máxima tendrá el error matDatepickerMax.
  3. El valor que viola una propiedad matDatepickerFilter tendrá el error matDatepickerFilter.

Entrada angular y eventos de cambio

Los eventos nativos (entrada) y (cambio) de la entrada solo activarán la interacción del usuario con el elemento de entrada; no se activarán cuando el usuario seleccione la fecha de la ventana emergente del calendario.

Por lo tanto, una entrada de selector de fecha también admite eventos (dateInput) y (dateChange), que se activan cuando un usuario interactúa con una entrada o la ventana emergente.

El evento (dateInput) se activará siempre que el valor cambie debido a que el usuario escribe o selecciona una fecha del calendario. Del mismo modo, el evento (dateChange) se activará cada vez que el usuario termine de escribir la entrada (en <input> blur) o cuando un usuario elija la fecha de un calendario.

Consulte el siguiente marcado HTML.

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Input & change events"
         (dateInput)="addEvent('input', $event)" (dateChange)="addEvent('change', $event)">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

<div class="example-events">
  <div *ngFor="let e of events">{{e}}</div>
</div>

 Ahora, vea el archivo mecanografiado relacionado con ese marcado.

import {Component} from '@angular/core';
import {MatDatepickerInputEvent} from '@angular/material/datepicker';

/** @title Datepicker input and change events */
@Component({
  selector: 'datepicker-events-example',
  templateUrl: 'datepicker-events-example.html',
  styleUrls: ['datepicker-events-example.css'],
})
export class DatepickerEventsExample {
  events: string[] = [];

  addEvent(type: string, event: MatDatepickerInputEvent) {
    this.events.push(`${type}: ${event.value}`);
  }
}

Deshabilitar partes de Angular Datepicker

Al igual que con cualquier <entrada> estándar, es posible deshabilitar la entrada del selector de fecha agregando la propiedad deshabilitada.

De forma predeterminada, <mat-datepicker> y <mat-datepicker-toggle> heredarán su estado deshabilitado de <input>, pero esto se puede anular configurando una propiedad deshabilitada en el selector de fecha o los elementos de alternancia.

Esto es muy útil si desea deshabilitar la entrada de texto pero permitir la selección a través del calendario o viceversa.

Consulte el siguiente marcado HTML.

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp1" placeholder="Completely disabled" disabled>
    <mat-datepicker-toggle matSuffix [for]="dp1"></mat-datepicker-toggle>
    <mat-datepicker #dp1></mat-datepicker>
  </mat-form-field>
</p>

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp2" placeholder="Popup disabled">
    <mat-datepicker-toggle matSuffix [for]="dp2" disabled></mat-datepicker-toggle>
    <mat-datepicker #dp2></mat-datepicker>
  </mat-form-field>
</p>

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp3" placeholder="Input disabled" disabled>
    <mat-datepicker-toggle matSuffix [for]="dp3"></mat-datepicker-toggle>
    <mat-datepicker #dp3 disabled="false"></mat-datepicker>
  </mat-form-field>
</p>

 Ahora, vea el archivo mecanografiado.

import {Component} from '@angular/core';

/** @title Disabled datepicker */
@Component({
  selector: 'datepicker-disabled-example',
  templateUrl: 'datepicker-disabled-example.html',
  styleUrls: ['datepicker-disabled-example.css'],
})
export class DatepickerDisabledExample {}

Eso es todo por este tutorial. 

Fuente: https://appdividend.com/2022/02/16/angular-datepicker/

#angular 

渚  直樹

渚 直樹

1650810960

Angular Datepicker:Angular13でDatepickerを使用する方法

Angular Materialは、 Webモバイルデスクトップで機能 する重要で最新のUIコンポーネントを備えた地上運用です。 

Angular Materialコンポーネントは、ブラウザーの移植性と互換性、デバイスの独立性、適切な機能低下などの最新のWebデザイン原則を維持しながら、魅力的なUIUX、一貫性のある機能的なWebページ、およびWebアプリケーションを構築するのに役立ちます。

Angular Datepicker

Angular Datepickerは、テキスト入力またはカレンダーから日付を選択して日付を入力できる組み込みのマテリアルコンポーネントです。Angular Material Datepickerを使用すると、ユーザーはテキスト入力またはカレンダーから日付を選択して日付を入力できます。Material Datepickerは、連携して機能するいくつかのコンポーネントとディレクティブで構成されています。

これは、連携して機能するさまざまな角度コンポーネントとディレクティブで構成されています。まず、Angularをインストールする必要があります。 AngularCLIを使用して Angularをインストールしてい ます。

ステップ1:AngularCLIをインストールします。

次のコマンドを入力します。

npm install -g @angular/cli

次に、次のコマンドを使用してAngularプロジェクトを作成します。

 

ng new datepicker

ステップ2:他のライブラリをインストールします。

プロジェクトに移動し、次のコマンドを使用してhammerjs をインストールし ます。

npm install --save hammerjs

Hammer.jsはオプションの依存関係であり、いくつかのコンポーネントのタッチサポートに役立ちます。

次に、次のコマンドを使用してAngularMaterial と AngularAnimations をインストール します。

npm install --save @angular/material @angular/animations @angular/cdk

ここで、  angular.json ファイル内に hammerjs を含めます。このファイルはプロジェクトのルートにあります。

ステップ3:作成済みのテーマとマテリアルアイコンをインポートします。

Angular Materialには、いくつかの事前に作成されたテーマが付属しています。これらのテーマは、色と基本的なスタイリングを際立たせています。

利用可能な主なテーマは、 インディゴピンク、 ディープパープルアンバー、 パープルグリーン、 ピンク ブルーグレーです。

テーマをインポートするには、次のコードをグローバル styles.css ファイルに追加します。ファイルはsrc フォルダー内にあります。

@import '~@angular/material/prebuilt-themes/indigo-pink.css';

マテリアルデザインアイコンにアクセスして、 <mat-icon> コンポーネント で名前付きアイコンを使用 することもできます。

それらをプロジェクトにインポートする場合は、これをプロジェクトのルート index.html ファイルのheadセクションに追加できます。

<!doctype html>
<html lang="en">
<head>
  <meta charset="utf-8">
  <title>Datepicker</title>
  <base href="/">

  <meta name="viewport" content="width=device-width, initial-scale=1">
  <link rel="icon" type="image/x-icon" href="favicon.ico">
  <link rel="stylesheet" href="https://fonts.googleapis.com/icon?family=Material+Icons">
</head>
<body>
  <app-root></app-root>
</body>
</html>

ステップ4:カスタムマテリアルモジュールファイルを作成します。

src、>> app フォルダー内に、 material.module.ts というファイルを1つ作成 し、次のコードを追加します。

// material.module.ts

import { NgModule } from '@angular/core';
import { MatDatepickerModule } from '@angular/material';

@NgModule({
  imports: [
    MatDatepickerModule
  ],
  exports: [
    MatDatepickerModule
  ]
})

export class MaterialModule {}

MatDatepickerModule、MatNativeDateModule、 およびAngularDatepickerサンプル アプリに必要なその他のコンポーネントを インポートしました。

必要に応じて、将来的にコンポーネントを追加できます。

このファイルにはすべてのマテリアルコンポーネントを 簡単に含めることができるため、このファイルは独自に作成され、このファイルはapp.module.ts内にインポートされます。

// material.module.ts

import { NgModule } from '@angular/core';
import { MatDatepickerModule,
        MatNativeDateModule,
        MatFormFieldModule,
        MatInputModule } from '@angular/material';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';

@NgModule({
  imports: [
    MatDatepickerModule,
    MatFormFieldModule,
    MatNativeDateModule,
    MatInputModule,
    BrowserAnimationsModule
  ],
  exports: [
    MatDatepickerModule,
    MatFormFieldModule,
    MatNativeDateModule,
    MatInputModule,
    BrowserAnimationsModule
  ],
  providers: [ MatDatepickerModule ],
})

export class MaterialModule {}

ステップ5:App.module.tsファイルにMaterialModuleをインポートします。

app.module.ts ファイル内にMaterialModuleをインポートします。

// app.module.ts

import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';

import { MaterialModule } from './material.module';

import { AppComponent } from './app.component';

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    MaterialModule
  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

また、最後に、app.component.html ファイル内にDatepickerHTMLコードを記述します。

<!-- app.component.html -->

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

ファイルを保存し、ターミナルまたはcmdに移動して、AngularDevelopmentServerを起動します。

ng serve --open

AngularDatepickerの例|  AngularでDatepickerを使用する方法

ブラウザに移動すると、次の画像のようなものが表示されます。

Angular6Datepickerサンプルチュートリアルステップ6:日付ピッカーを入力に接続する

日付ピッカーは、テキスト入力とカレンダーポップアップで構成され、テキスト入力のmatDatePicker プロパティを介して接続されます。

<input [matDatepicker]="myDatepicker">
<mat-datepicker #myDatepicker></mat-datepicker>

オプションの日付ピッカートグルボタンが利用可能です。上記の例にトグルボタンを追加できます。

<input [matDatepicker]="myDatepicker">
<mat-datepicker-toggle [for]="myDatepicker"></mat-datepicker-toggle>
<mat-datepicker #myDatepicker></mat-datepicker>

<mat-form-field>の一部である入力でも同じように機能し、トグルボタンをマテリアル入力のプレフィックスまたはサフィックスとして簡単に使用できます。

<mat-form-field>
  <input matInput [matDatepicker]="myDatepicker">
  <mat-datepicker-toggle matSuffix [for]="myDatepicker"></mat-datepicker-toggle>
  <mat-datepicker #myDatepicker></mat-datepicker>
</mat-form-field>

ステップ7:カレンダーの開始ビューを設定する

 <mat-datepicker>の startViewプロパティを使用して、カレンダーを最初に開いたときに表示される外観を設定できます。月、 、または 複数年に構成できます 。デフォルトでは、月表示を開始します。

カレンダーが開く月、年、または年の範囲は、最初に日付が現在選択されているかどうかを確認することによって決定され、選択されている場合は、その日付を含む月または年が開きます。それ以外の場合は、1か月または1年で開き、今日の日付を提供します。

この動作は、 <mat-datepicker>のstartAt プロパティを使用して簡単にオーバーライドできます。この場合、カレンダーは startAt 日付を含む月または年に開きます。

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker startView="year" [startAt]="startDate"></mat-datepicker>
</mat-form-field>

AngularMaterialDatepickerサンプルチュートリアル

コードはGithubにあります。

GITHUBコード

AngularDatepickerの検証

3つのプロパティにより、日付検証がdatepicker入力に追加されます。

最初の2つは、最小プロパティと最大プロパティです。

また、入力の検証を強制するために、これらのプロパティは、それぞれの値の前後のカレンダーポップアップのすべての日付を無効にし、ユーザーが最小または最大の日付を含む月または年(現在のビューに応じて)を超えてカレンダーを進めるのを防ぎます。

次のHTMLマークアップを参照してください。

<mat-form-field class="example-full-width">
  <input matInput [min]="minDate" [max]="maxDate" [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

 また、上記のマークアップに関連するtypescriptファイルも参照してください。

import {Component} from '@angular/core';

/** @title Datepicker with min & max validation */
@Component({
  selector: 'datepicker-min-max-example',
  templateUrl: 'datepicker-min-max-example.html',
  styleUrls: ['datepicker-min-max-example.css'],
})
export class DatepickerMinMaxExample {
  minDate = new Date(2000, 0, 1);
  maxDate = new Date(2020, 0, 1);
}

日付検証を追加する2番目の方法は、datepicker入力のmatDatepickerFilterプロパティを使用することです。

このプロパティは、<D> =>ブール値の関数を受け入れます(<D>は、datepickerで使用される日付型です。日付の実装の選択を参照してください)。

真の結果は日付が有効であることを示し、偽の結果は日付が有効でないことを示します。

繰り返しますが、これにより、無効なカレンダーの日付も無効になります。

ただし、matDatepickerFilterを使用する場合とminまたはmaxを使用する場合の重要な違いは、特定のポイントの前後のすべての日付を除外しても、ユーザーがそのポイントを超えてカレンダーを進めることを妨げないことです。

次のコード例を参照してください。最初にHTMLマークアップを参照してください。

<mat-form-field class="example-full-width">
  <input matInput [matDatepickerFilter]="myFilter" [matDatepicker]="picker" placeholder="Choose a date">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

 ここで、上記のマークアップに関連するTypescriptファイルを参照してください。

import {Component} from '@angular/core';

/** @title Datepicker with filter validation */
@Component({
  selector: 'datepicker-filter-example',
  templateUrl: 'datepicker-filter-example.html',
  styleUrls: ['datepicker-filter-example.css'],
})
export class DatepickerFilterExample {
  myFilter = (d: Date): boolean => {
    const day = d.getDay();
    // Prevent Saturday and Sunday from being selected.
    return day !== 0 && day !== 6;
  }
}

この例では、ユーザーは2005年を過ぎて戻ることができますが、それ以前のすべての日付は選択できなくなります。彼らは2000年よりもカレンダーに戻ることはできません。

最小値の前、最大値の後、またはフィルターで除外された日付を手動で入力すると、入力に検証エラーが発生します。

各検証プロパティには、チェックできる異なるエラーがあります。

  1. たとえば、minプロパティに違反する値には、matDatepickerMinエラーがあります。
  2. maxプロパティに違反する値には、matDatepickerMaxエラーがあります。
  3. matDatepickerFilterプロパティに違反する値には、matDatepickerFilterエラーがあります。

角度入力および変更イベント

入力のネイティブ(入力)および(変更)イベントは、入力要素とのユーザーインタラクションのみをトリガーします。ユーザーがカレンダーポップアップから日付を選択しても、これらは起動しません。

したがって、datepicker入力は、(dateInput)および(dateChange)イベントもサポートします。これらは、ユーザーが入力またはポップアップのいずれかを操作したときにトリガーされます。

(dateInput)イベントは、ユーザーがカレンダーから日付を入力または選択したために値が変更されるたびに発生します。同様に、(dateChange)イベントは、ユーザーが入力の入力を終了するたびに(<input>ブラーで)、またはユーザーがカレンダーから日付を選択したときに発生します。

次のHTMLマークアップを参照してください。

<mat-form-field>
  <input matInput [matDatepicker]="picker" placeholder="Input & change events"
         (dateInput)="addEvent('input', $event)" (dateChange)="addEvent('change', $event)">
  <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
  <mat-datepicker #picker></mat-datepicker>
</mat-form-field>

<div class="example-events">
  <div *ngFor="let e of events">{{e}}</div>
</div>

 次に、そのマークアップに関連するtypescriptファイルを参照してください。

import {Component} from '@angular/core';
import {MatDatepickerInputEvent} from '@angular/material/datepicker';

/** @title Datepicker input and change events */
@Component({
  selector: 'datepicker-events-example',
  templateUrl: 'datepicker-events-example.html',
  styleUrls: ['datepicker-events-example.css'],
})
export class DatepickerEventsExample {
  events: string[] = [];

  addEvent(type: string, event: MatDatepickerInputEvent) {
    this.events.push(`${type}: ${event.value}`);
  }
}

AngularDatepickerの一部を無効にする

他の標準の<input>と同様に、disabledプロパティを追加することで、datepicker入力を無効にすることができます。

デフォルトでは、<mat-datepicker>と<mat-datepicker-toggle>は<input>から無効な状態を継承しますが、これは、datepickerまたはtoggle要素にdisabledプロパティを設定することでオーバーライドできます。

これは、テキスト入力を無効にしたいが、カレンダーを介した選択を許可したい場合、またはその逆の場合に非常に便利です。

次のHTMLマークアップを参照してください。

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp1" placeholder="Completely disabled" disabled>
    <mat-datepicker-toggle matSuffix [for]="dp1"></mat-datepicker-toggle>
    <mat-datepicker #dp1></mat-datepicker>
  </mat-form-field>
</p>

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp2" placeholder="Popup disabled">
    <mat-datepicker-toggle matSuffix [for]="dp2" disabled></mat-datepicker-toggle>
    <mat-datepicker #dp2></mat-datepicker>
  </mat-form-field>
</p>

<p>
  <mat-form-field>
    <input matInput [matDatepicker]="dp3" placeholder="Input disabled" disabled>
    <mat-datepicker-toggle matSuffix [for]="dp3"></mat-datepicker-toggle>
    <mat-datepicker #dp3 disabled="false"></mat-datepicker>
  </mat-form-field>
</p>

 ここで、typescriptファイルを参照してください。

import {Component} from '@angular/core';

/** @title Disabled datepicker */
@Component({
  selector: 'datepicker-disabled-example',
  templateUrl: 'datepicker-disabled-example.html',
  styleUrls: ['datepicker-disabled-example.css'],
})
export class DatepickerDisabledExample {}

このチュートリアルは以上です。 

ソース:https ://appdividend.com/2022/02/16/angular-datepicker/

#angular