Angular Moment Picker: Pick times and dates in Angular.js applications

Recommend this page to a friend!
  Info   View files Documentation   View files View files (44)   DownloadInstall with Composer Download .zip   Reputation   Support forum   Blog    
Ratings Unique User Downloads Download Rankings
Not yet rated by the usersTotal: 28 All time: 527 This week: 2Up
Version License JavaScript version Categories
angular-moment-picke 1.0Custom (specified...5Time and Date, Forms
Description Author

This package can be used to pick times and dates in Angular.js applications.

It implements a directive for Angular.js that implements inputs to the the user pick a time or a date of a day.

Innovation Award
JavaScript Programming Innovation award nominee
May 2017
Number 2
Many applications need to let users pick dates or times of the day.

There are many components that can be used to let the use pick a date values.

This package also lets users pick a specific time value.

Manuel Lemos
Picture of Logik group
  Performance   Level  
Name: Logik group <contact>
Classes: 1 package by
Country: United States United States
Age: ???
All time rank: 18218 in United States United States
Week rank: 6 Up2 in United States United States Up
Innovation award
Innovation award
Nominee: 1x

Details

Angular Moment Picker

Join the chat at https://gitter.im/indrimuska/angular-moment-picker Build Status

NPM version NPM downloads MIT License CDNJS

Check out the homepage at http://indrimuska.github.io/angular-moment-picker/.

Angular Moment Picker is a native AngularJS directive for date and time picker that uses Moment.js and does not require jQuery.

<p align="center">

<a href="http://indrimuska.github.io/angular-moment-picker/">
    <img src="http://indrimuska.github.io/angular-moment-picker/img/angular-moment-picker.gif" alt="Angular Moment Picker demo">
</a>

</p>

Installation

Get Angular Moment Picker from npm, bower or git:

  npm install angular-moment-picker
bower install moment-picker
  git clone   https://github.com/indrimuska/angular-moment-picker.git

Include style and script in your page:

<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.4.4/angular.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment-with-locales.js"></script>
<script src="//cdn.rawgit.com/indrimuska/angular-moment-picker/master/dist/angular-moment-picker.min.js"></script>
<link href="//cdn.rawgit.com/indrimuska/angular-moment-picker/master/dist/angular-moment-picker.min.css" rel="stylesheet">

Add moment-picker dependency to your module:

var myApp = angular.module('myApp', ['moment-picker']);

Provide the attribute to your element:

<div moment-picker="myDate"> {{ myDate }} </div>

Demo

Check out the demo page at http://indrimuska.github.io/angular-moment-picker/.

The views

*Decade view|Year view|Month view* :---:|:---:|:---: Decade view | Year view | Month view *Day view|Hour view|Minute view* Day view | Hour view | Minute view

Additional themes

Angular Moment Picker provides the following additional themes. Each theme has a dedicate stylesheet to be included in the application the overrides the default style.

- Material UI - Plunker

   <link href="//cdn.rawgit.com/indrimuska/angular-moment-picker/master/dist/themes/material-ui.min.css" rel="stylesheet">

A preview of the each theme is available here.

Options

To configure Angular Moment Picker you have to add to your element or your input the attribute relative to the options you want to set.

<div moment-picker="ctrl.birthday" locale="fr" format="LL">
    Mon anniversaire est le {{ ctrl.birthday }}
</div>

<input moment-picker="ctrl.dateFormatted" ng-model="ctrl.momentDate" format="DD/MM/YYYY">

Property | Default | Description | Sample ---|---|---|--- moment-picker | | Two-way bindable property as formatted datetime string. | Plunker ng-model | | Two-way bindable property as Moment.js object. | Plunker locale | "en" | Locale code. <sup>1</sup> | Plunker format | "L LTS" | Format of the output value and min/max date. <sup>1</sup> | Plunker min-view | "decade" | Minimum navigable view. | Plunker max-view | "minute" | Maximum navigable view. | Plunker start-view | "year" | Initial view when the picker is open. | Plunker min-date | | Two-way bindable property representing the minimum selectable date (as String in the same format of the value, or as a Moment.js object). | Plunker max-date | | Two-way bindable property representing the maximum selectable date (as String in the same format of the value, or as a Moment.js object). | Plunker start-date | | Two-way bindable property representing the initial date to be shown in picker (as String in the same format of the value, or as a Moment.js object). | Plunker disable | false | Disables the picker if truly. | Plunker position | | Sets a fixed position for the picker. Available values are "top left", "top right", "bottom left", "bottom right". | Plunker inline | false | Views the picker inline. | Plunker validate | true | Forces picker value between the range minDate and maxDate. | Plunker autoclose | true | Closes the picker after selecting a date. | Plunker set-on-select | false | Updates picker model after selecting a date in each view. | Plunker is-open | | Open/closes the picker when set to true or false. | Plunker today | false | Highlights the current day. | Plunker keyboard | false | Allows using the keyboard to navigate the picker. | Plunker show-header | true | Shows the header in the view. | Plunker additions | { top: undefined, bottom: undefined } | Template url for custom contents above and below each picker views (inside the dialog). | Plunker

Methods

Append your method to your element and define its behavior in the controller.

<div moment-picker="ctrl.exhibition" format="dddd D MMMM" selectable="ctrl.isSelectable(date, type)">
    Next exhibition is on {{ ctrl.exhibition }}.
</div>

ctrl.isSelectable = function (date, type) {
    // disable all Sundays in the Month View
    return type != 'day' || date.format('dddd') != 'Sunday';
};

Method | Parameters | Description | Sample ---|---|---|--- selectable | date, type | Return true if the given date can be selected in the current view. Please note that this method is called for every date in the view, every time a view is rendered, so be careful, it may affect performances. | Plunker

Events

As for methods, to bind an event you only need to attach the right property to your picker.

<div moment-picker="ctrl.meeting" format="HH:mm A" change="ctrl.onChange(newValue, oldValue)">
    The meeting starts at {{ ctrl.meeting }}.
</div>

ctrl.onChange = function (newValue, oldValue) {
    $log.log('Meeting changed from ' + oldValue + ' to ' + newValue);
};

Event | Parameters | Description | Sample ---|---|---|--- change | newValue, oldValue | Function fired upon change in picker value. | Plunker

momentPickerProvider

Angular Moment Picker comes out with its own provider, in order to define your own configuration for all the pickers in your app.

angular
    .module('myApp', ['moment-picker'])
    .config(['momentPickerProvider', function (momentPickerProvider) {
        momentPickerProvider.options({
            /.../
        });
    }]);

Property | Default | Description ---|---|--- locale | "en" | Locale code. <sup>1</sup> format | "L LTS" | Format of the output value and min/max date. <sup>1</sup> min-view | "decade" | Minimum navigable view. max-view | "minute" | Maximum navigable view. start-view | "year" | Initial view after picker opening. position | | Sets a fixed position for the picker. Available values are "top left", "top right", "bottom left", "bottom right". inline | false | Views the picker inline. validate | true | Forces picker value between the range minDate and maxDate. autoclose | true | Closes the picker after selecting a date. set-on-select | false | Updates picker model after selecting a date in each view. today | false | Highlights the current day. keyboard | false | Allows using the keyboard to navigate the picker. show-header | true | Shows the header in the view. left-arrow | "&larr;" | Left arrow string (HTML allowed). right-arrow | "&rarr;" | Right arrow string (HTML allowed). additions | { top: undefined, bottom: undefined } | Template url for custom contents above and below each picker views (inside the dialog). years-format | "YYYY" | Years format in decade view. months-format | "MMM" | Months format in year view. days-format | "D" | Days format in month view. hours-format | "HH:[00]" | Hours format in day view. hours-start | 0 | First rendered hour in day view (24h format). hours-end | 23 | Last rendered hour in day view (24h format). minutes-format | <sup>2</sub> | Minutes format in hour view. minutes-step | 5 | Step between each visible minute in hour view. minutes-start | 0 | First rendered minute in hour view. minutes-end | 59 | Last rendered minute in hour view. seconds-format | "ss" | Seconds format in minute view. seconds-step | 1 | Step between each visible second in minute view. seconds-start | 0 | First rendered second in minute view. seconds-end | 59 | Last rendered second in minute view.

Notes

  1. Locale codes and format tokens are available at http://momentjs.com/.
  2. Locale format `LT` without meridiem part (AM/PM, am/pm).

Builder

Try the online Angular Moment Picker Builder:

http://indrimuska.github.io/angular-moment-picker/#builder.

Dev scripts

- npm run build: compile sources and generate built files in dist folder. - npm run minify: generate built files and minified ones. - npm run release: increase package version and compile the project. - npm run test: run all tests in the tests folder.

License

Copyright (c) 2015 Indri Muska. Licensed under the MIT license.

  Files folder image Files  
File Role Description
Files folder image.vscode (2 files)
Files folder imagedist (4 files, 1 directory)
Files folder imagesrc (8 files, 2 directories)
Files folder imagetests (5 files, 1 directory)
Accessible without login Plain text file .travis.yml Data Auxiliary data
Accessible without login Plain text file bower.json Data Auxiliary data
Plain text file karma.conf.js Class Class source
Accessible without login Plain text file LICENSE Lic. License text
Accessible without login Plain text file package.json Data Auxiliary data
Accessible without login Plain text file README.md Doc. Documentation
Accessible without login Plain text file tsconfig.json Data Auxiliary data
Accessible without login Plain text file tslint.json Data Auxiliary data
Plain text file webpack.config.js Class Class source

  Files folder image Files  /  .vscode  
File Role Description
  Accessible without login Plain text file settings.json Data Auxiliary data
  Accessible without login Plain text file tasks.json Data Auxiliary data

  Files folder image Files  /  dist  
File Role Description
Files folder imagethemes (3 files)
  Accessible without login Plain text file angular-moment-picker.css Data Auxiliary data
  Plain text file angular-moment-picker.js Class Class source
  Accessible without login Plain text file angular-moment-picker.min.css Data Auxiliary data
  Plain text file angular-moment-picker.min.js Class Class source

  Files folder image Files  /  dist  /  themes  
File Role Description
  Accessible without login Plain text file material-ui.css Data Auxiliary data
  Accessible without login Plain text file material-ui.min.css Data Auxiliary data
  Accessible without login Plain text file README.md Doc. Documentation

  Files folder image Files  /  src  
File Role Description
Files folder imagethemes (1 file)
Files folder imageviews (7 files)
  Accessible without login Plain text file definitions.d.ts Data Auxiliary data
  Plain text file directive.ts Class Class source
  Accessible without login Plain text file helpers.ts Data Auxiliary data
  Accessible without login Plain text file index.less Data Auxiliary data
  Accessible without login Plain text file index.ts Example Example script
  Plain text file provider.ts Class Class source
  Accessible without login HTML file template.tpl.html Doc. Documentation
  Accessible without login Plain text file utility.ts Data Auxiliary data

  Files folder image Files  /  src  /  themes  
File Role Description
  Accessible without login Plain text file material-ui.less Data Auxiliary data

  Files folder image Files  /  src  /  views  
File Role Description
  Plain text file dayView.ts Class Class source
  Plain text file decadeView.ts Class Class source
  Plain text file hourView.ts Class Class source
  Accessible without login Plain text file index.ts Data Auxiliary data
  Plain text file minuteView.ts Class Class source
  Plain text file monthView.ts Class Class source
  Plain text file yearView.ts Class Class source

  Files folder image Files  /  tests  
File Role Description
Files folder imageproperties (5 files)
  Accessible without login Plain text file elementCreation.ts Data Auxiliary data
  Accessible without login Plain text file hacks.ts Data Auxiliary data
  Accessible without login Plain text file openClosePicker.ts Data Auxiliary data
  Accessible without login Plain text file utility.ts Data Auxiliary data
  Accessible without login Plain text file value.ts Data Auxiliary data

  Files folder image Files  /  tests  /  properties  
File Role Description
  Accessible without login Plain text file isOpen.ts Data Auxiliary data
  Accessible without login Plain text file keyboard.ts Data Auxiliary data
  Accessible without login Plain text file locale.ts Data Auxiliary data
  Accessible without login Plain text file startDate.ts Data Auxiliary data
  Accessible without login Plain text file validate.ts Data Auxiliary data

 Version Control Unique User Downloads Download Rankings  
 100%
Total:28
This week:0
All time:527
This week:2Up