j-DatePicker
- it's improved clone of
j-Calendar - supports dark mode
- supports touch gestures (swipe) and fixed full size on mobile
Configuration:
firstday {Number}first day in the week (default:DEF.firstdayofweek)today {String}a label for theSet todaybuttonclear {String}a label for theClearbuttondays {String}days e.g.SU,MO,TU,WE,TH,FR,SA(default).months {String}months e.g.January,February,...(default).
The component must be called manually or works with j-Input component automatically. The component is a singleton.
- important add the calendar component under
<body>element
Usage
var opt = {};
opt.element = YOUR_ELEMENT;
opt.value = new Date();
// or opt.value = 'path.to.date'; --> then "opt.callback" is disabled
// opt.align {String} : align "left" (default), "center" or "right"
// opt.position {String} : position "top" (default) or "bottom"
// NEW: opt.clock {Boolean} : enables time (default: false)
// NEW: opt.ampm {Boolean} : enables AM/PM (default: false)
opt.clear = false; // Removes "clear" button from datepicker. If this property is not specified as "false" - "clear" button will be shown
opt.callback = function(newdate) {
console.log('date has been changed');
};
// IMPORTANT - opt.callback() can receive "null" value as a parameter, so this check should be taken into consideration when callback function is being created.
// opt.offsetX {Number} "x" offset
// opt.offsetY {Number} "y" offset
// opt.close {Function} optional, this function can determine closing of DatePicker
// NEW and OPTIONAL
// It's callend when the DatePicker changes year/month
opt.badges = function(date, append) {
// Appends small and red badges to the current view/month
append([date1, date2, date3]);
};
SETTER('datepicker/show', opt);Use it with <ui-component name="datepicker">. When the component is not loaded yet, jComponent downloads it on first use from the address in DEF.fallback (the Componentator CDN by default). Author: Peter Širka. Source: the Componentator components repository, MIT license.
<a href="#datepicker">SHOW DATEPICKER: <b><ui-bind path="form.date" config="html:value?value.format('dd.MM.yyyy'):DEF.empty"></ui-bind></b></a>
<ui-component name="datepicker" config="today:Set today;firstday:0"></ui-component>
<script>
var form = {};
form.date = new Date();
$('a[href="#datepicker"]').on('click', function(e) {
var opt = {};
opt.value = 'form.date';
opt.element = this;
// Append badges
opt.badges = function(date, append) {
setTimeout(function() {
append([date.add('-5 days'), date.add('-2 days'), date.add('3 days'), date.add('8 days')])
}, 1000);
};
SETTER('datepicker/show', opt);
});
</script>