
Security News
/Research
Wallet-Draining npm Package Impersonates Nodemailer to Hijack Crypto Transactions
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
ngx-multiple-dates
Advanced tools
Multiple dates picker based on Angular Material.
Compatible with Angular / CDK / Material **>= 9.x.x**. See Versioning.
Install dependency:
npm install --save ngx-multiple-dates
Include NgxMultipleDatesModule
to your module:
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
// Any of the supported date adapter should be imported. For more details - see
// https://material.angular.io/components/datepicker/overview#choosing-a-date-implementation-and-date-format-settings
import { MatNativeDateModule } from '@angular/material/core';
// import { MatDateFnsModule } from '@angular/material-date-fns-adapter';
// import { MatLuxonDateModule } from '@angular/material-luxon-adapter';
// import { MatMomentDateModule } from '@angular/material-moment-adapter';
import { MatDatepickerModule } from '@angular/material/datepicker';
import { MatIconModule } from '@angular/material/icon';
import { NgxMultipleDatesModule } from 'ngx-multiple-dates'; // module import
@NgModule({
imports: [
BrowserModule,
BrowserAnimationsModule,
MatNativeDateModule, // any of the supported date adapter should be imported
MatDatepickerModule,
MatIconModule,
NgxMultipleDatesModule // import to Angular
// ...
],
// ...
})
export class AppModule { }
Styles:
Add one of the prebuilt themes to angular.json
or your styles file:
@import 'ngx-multiple-dates/prebuilt-themes/azure-blue.css';
Or you can use custom SCSS theme
@import '~@angular/material/theming';
@import '~ngx-multiple-dates/theming'; // import library theme
@include mat-core();
// Palette
$primary: mat-palette($mat-indigo);
$accent: mat-palette($mat-pink);
$theme: mat-light-theme($primary, $accent); // theme
@include angular-material-theme($theme); // apply Angular Material styles
@include ngx-multiple-dates-theme($theme); // apply Angular Multiple Dates styles
// ...
@use '@angular/material' as mat;
@import '~ngx-multiple-dates/theming'; // import library theme
@include mat.core;
// Palette
$primary: mat.define-palette(mat.$indigo-palette);
$accent: mat.define-palette(mat.$pink-palette);
$theme: mat.define-light-theme($primary, $accent); // theme
@include mat.all-component-themes($theme); // apply Angular Material styles
@include ngx-multiple-dates-theme($theme); // apply Angular Multiple Dates styles
// ...
@use
rule supported:
@use '@angular/material' as mat;
@use 'ngx-multiple-dates' as ngxMultipleDates; // use library theme
@include mat.core;
// Palette
$primary: mat.define-palette(mat.$indigo-palette);
$accent: mat.define-palette(mat.$pink-palette);
$theme: mat.define-light-theme($primary, $accent); // theme
@include mat.all-component-themes($theme); // apply Angular Material styles
@include ngxMultipleDates.multiple-dates-theme($theme); // apply Angular Multiple Dates styles
// ...
@use '@angular/material' as mat;
@use 'ngx-multiple-dates' as ngxMultipleDates; // use library theme
@include mat.core;
// Palette
$primary: mat.define-palette(mat.$indigo-palette);
$accent: mat.define-palette(mat.$pink-palette);
$theme: mat.define-light-theme((
color: (
primary: $primary,
accent: $accent
)
)); // theme
@include mat.all-component-themes($theme); // apply Angular Material styles
@include ngxMultipleDates.multiple-dates-theme($theme); // apply Angular Multiple Dates styles
// ...
@use '@angular/material' as mat;
@use 'ngx-multiple-dates' as ngxMultipleDates; // use library theme
@include mat.core;
// Theme
$my-theme: mat.define-theme(
(
color: (
theme-type: light,
primary: mat.$azure-palette,
tertiary: mat.$blue-palette
),
density: (
scale: 0
)
)
);
@include mat.all-component-themes($theme); // apply Angular Material styles
@include ngxMultipleDates.multiple-dates-theme($theme); // apply Angular Multiple Dates styles
// ...
azure-blue.css
cyan-orange.css
magenta-violet.css
rose-red.css
Library tested for Angular / CDK / Material versions >= 9.x.x.
Use Angular Multiple Dates 1.x.x
for Angular Components <= 11.x.x
Later versions are consistant with major Angular Components version. E.g.:
Use v13.x.x
with Angular Components 13.x.x
.
Use v12.x.x
with Angular Components 12.x.x
.
<mat-form-field>
<ngx-multiple-dates [matDatepicker]="picker" placeholder="Excluded Dates" name="excludedDates"
[(ngModel)]="model">
</ngx-multiple-dates>
<mat-datepicker-toggle matPrefix [for]="picker"></mat-datepicker-toggle>
<mat-datepicker #picker></mat-datepicker>
</mat-form-field>
<mat-form-field class="full-width">
<ngx-multiple-dates [matDatepicker]="picker" placeholder="Excluded Dates"
name="excludedDates" [(ngModel)]="excludedDates">
</ngx-multiple-dates>
</mat-form-field>
<mat-calendar #picker></mat-calendar>
For more examples please visit the Demo page. Its source code is located here.
Selector: ngx-multiple-dates
Exported as: ngxMultipleDates
Properties
Name | Description |
---|---|
Input | |
@Input() value: D | null | The value of the ngx-multiple-dates control. |
@Input() matDatepicker: MatDatepicker<D> | MatCalendar<D> | The datepicker (or calendar - for inline view) that this ngx-multiple-dates element is associated with. |
@Input() color: ThemePalette | Theme color palette for the component. This API is supported in M2 themes only, it has no effect in M3 themes. For information on applying color variants in M3, see Using component color variants. |
@Input() placeholder: string | Placeholder to be shown if no value has been selected. |
@Input() required: boolean | Whether the component is required. |
@Input() disabled: boolean | Whether the component is disabled. |
@Input() matDatepickerFilter: (date: D) => boolean | Function that can be used to filter out dates within the datepicker. |
@Input() max: D | null | The maximum valid date. |
@Input() min: D | null | The minimum valid date. |
@Input() classes: Array<DateClass<D>> | Custom date classes. |
@Input() id: string | Unique id of the element. |
@Input() errorStateMatcher: ErrorStateMatcher | An object used to control when error messages are shown. |
@Input() format: string | The date/time components to include, using predefined options or a custom format string. See DatePipe Usage notes for more information. |
Output | |
@Output() dateChange: EventEmitter<MatDatepickerInputEvent<D>> | Emits when a change event is fired on this ngx-multiple-dates element. |
@Output() remove: EventEmitter<DateRemoveEvent<D>> | Emits on a date removal. |
Properties | |
resetModel: Date | Model used to reset datepicker selected value, so unselect just selected date will be possible. |
closeOnSelected: boolean | Whether datepicker should be closed on date selected, or opened to select more dates. |
empty: boolean | Whether the select has a value. |
shouldLabelFloat: boolean | Whether the MatFormField label should try to float. |
focused: boolean | Whether ngx-multiple-dates element has focus. |
errorState: boolean | Whether the control is in an error state. |
stateChanges: Observable<void> | Stream that emits whenever the state of the control changes such that the parent MatFormField needs to run change detection. |
ngControl: NgControl | Form control to manage component. |
controlType: 'ngx-multiple-dates' | A name for this control that can be used by mat-form-field. |
Methods
focus
Focuses the ngx-multiple-dates
element.
blur
Used to leave focus from the ngx-multiple-dates
element.
setDescribedByIds
Sets the list of element IDs that currently describe this control.
Parameters | |
---|---|
ids: string[] | Ids to set. |
onContainerClick
Handles a click on the control's container.
validate
Performs synchronous validation for the control.
Parameters | |
---|---|
control: AbstractControl | The control to validate against. |
Returns | |
ValidationErrors | null | A map of validation errors if validation fails, otherwise null . |
dateClass
Parameters | |
---|---|
date: D | Date to check if classes should be applied. |
Returns | |
MatCalendarCellCssClasses | CSS classes to apply. |
dateChanged
<input />
.Parameters | |
---|---|
event: MatDatepickerInputEvent<D> | Change event. |
remove
Parameters | |
---|---|
date: D | Value to remove. |
Run npm run build
to build the project. The build artifacts will be stored in the dist/
directory. Use the --prod
flag for a production build.
Run npm start
for a dev server. Navigate to http://localhost:4200/
. The app will automatically reload if you change any of the source files.
FAQs
Angular Multiple Dates
We found that ngx-multiple-dates demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
/Research
Malicious npm package impersonates Nodemailer and drains wallets by hijacking crypto transactions across multiple blockchains.
Security News
This episode explores the hard problem of reachability analysis, from static analysis limits to handling dynamic languages and massive dependency trees.
Security News
/Research
Malicious Nx npm versions stole secrets and wallet info using AI CLI tools; Socket’s AI scanner detected the supply chain attack and flagged the malware.