Home

Awesome

ngx-countdown

Simple, easy and performance countdown for angular

NPM version Ci codecov

Demo

Usage

1. Install

npm install ngx-countdown --save

import CountdownModule

import { CountdownModule } from 'ngx-countdown';

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

2、Template

<countdown #cd [config]="config" (event)="handleEvent($event)" />

Method

NameDescription
begin()Start countdown, you must manually call when demand: false
restart()Restart countdown
stop()Stop countdown, must call restart when stopped, it's different from pause, unable to recover
pause()Pause countdown, you can use resume to recover again
resume()Resume countdown

How call component methods

@ViewChild('cd', { static: false }) private countdown: CountdownComponent;
this.countdown.begin();

Standalone

@Component({
  template: `<countdown />`,
  standalone: true,
  imports: [CountdownComponent],
})
export class App

API

countdown

NameTypeDefaultSummary
configCountdownConfig-Config
eventEventEmitter<CountdownEvent>-Events

CountdownConfig

NameTypeDefaultSummary
demandbooleanfalseStart the counter on demand, must call begin() to starting
leftTimenumber0Calculate the remaining time based on the server, e.g: 10,5.5, (Unit: seconds)
stopTimenumber-Refers to counting down from local time to end time (Unit: Milliseconds second UNIX timestamp)
formatstringHH:mm:ssFormats a date value, pls refer to Accepted patterns
prettyText(text: string) => string-Beautify text, generally used to convert formatted time text into HTML
notifynumber[], number-Should be trigger type notify event on the x second. When values is 0 will be trigger every time
formatDateCountdownFormatFn-Default based on the implementation of formatDate in @angular/common, You can changed to other libs, e.g: date-fns
timezonestring+0000A timezone offset (such as '+0430'), or a standard UTC/GMT. When not supplied, uses the end-user's local system timezone

CountdownEvent

NameTypeSummary
actionstart,stop,restart,pause,resume,notify,doneAction of the event
statusCountdownStatusStatus of the countdown
leftnumberNumber of remaining milliseconds
textstringFormat the text

Global Config

bootstrapApplication(AppComponent, {
  providers: [provideCountdown({ format: `mm:ss` })],
}).catch((err) => console.error(err));

Troubleshooting

Please follow this guidelines when reporting bugs and feature requests:

  1. Use GitHub Issues board to report bugs and feature requests (not our email address)
  2. Please always write steps to reproduce the error. That way we can focus on fixing the bug, not scratching our heads trying to reproduce it.

Thanks for understanding!

License

The MIT License (see the LICENSE file for the full text)