UNPKG

ngx-mat-tui-calendar

Version:

Angular Material Design wrapper, supporting theming, for the Toast UI Calendar, suitable for web-based scheduling, events, appointments, and day planner applications.

103 lines 13 kB
// import { TZDate } from 'tui-calendar'; export class LocalDate { // month = 1 to 12 constructor(args) { let numbers; if (typeof args == 'string') { numbers = LocalDate.parse_YYYYMMDD(args); } else if (args instanceof LocalDate) { numbers = args.get(); } else if (args instanceof Date) { numbers = LocalDate.convertDateToNumbers(args); } else if (typeof args.toDate === 'function') { numbers = LocalDate.convertDateToNumbers(args.toDate()); } else if (args['_date'] instanceof Date) { numbers = LocalDate.convertDateToNumbers(args['_date']); } else if (args instanceof Object) { numbers = args; } this.date = LocalDate.convertNumbersToDate(numbers); } static convertToJsDate(args) { return (new LocalDate(args)).toDate(); } // return new LocalDate(date.getFullYear(), date.getMonth() + 1, date.getDate()); static parse_YYYYMMDD(str) { // yyyy-mm-dd const regexp = /^(\d\d\d\d)-(\d\d)-(\d\d)/g; let matches = Array.from(str.matchAll(regexp), m => ({ year: Number(m[1]), month: Number(m[2]), day: Number(m[3]) })); if (matches.length != 1) { console.error(`dateIn: unknown date format: ${str}`); return null; } return matches[0]; } static convertNumbersToDate({ year, month, day, hours, minutes, seconds, milliseconds }) { // month = 1 to 12 // start with today's *local* date. this is really important let date = new Date(); date.setDate(1); // very important date.setFullYear(year); date.setMonth((month == null) ? 0 : month - 1); date.setDate((day == null) ? 1 : day); date.setHours((hours == null) ? 0 : hours); date.setMinutes((minutes == null) ? 0 : minutes); date.setSeconds((seconds == null) ? 0 : seconds); date.setMilliseconds((milliseconds == null) ? 1 : milliseconds); return date; } static convertDateToNumbers(date) { // month = 1 to 12 return { year: date.getFullYear(), month: date.getMonth() + 1, day: date.getDate(), hours: date.getHours(), minutes: date.getMinutes(), seconds: date.getSeconds(), milliseconds: date.getMilliseconds(), }; } get() { return LocalDate.convertDateToNumbers(this.date); } toMsgFormat() { return this.toYYYYMMDD(); } toYYYYMMDD() { // yyyy-mm-dd let yyyy = this.date.getFullYear(); let mm = (this.date.getMonth() + 1).toString().padStart(2, '0'); let dd = (this.date.getDate()).toString().padStart(2, '0'); let str = `${yyyy}-${mm}-${dd}`; // console.warn(`date=${str}=${this.toDisplayFormat()}`); return str; } toDisplayDateFormat() { return this.date.toLocaleDateString("en-US", { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric', }); } toDisplayFormat() { return this.date.toString(); } toDate() { return this.date; } clearTime() { this.date.setHours(0, 0, 0, 1); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtdHVpLWNhbGVuZGFyL3NyYy9saWIvbG9jYWwtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx5Q0FBeUM7QUFFekMsTUFBTSxPQUFPLFNBQVM7SUFHcEIsa0JBQWtCO0lBQ2xCLFlBQVksSUFBSTtRQUNkLElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDM0IsT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUU7WUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUMvQixPQUFPLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzVDLE9BQU8sR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDekQ7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUc7WUFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUN6RDthQUFNLElBQUksSUFBSSxZQUFZLE1BQU0sRUFBRTtZQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSTtRQUN6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QVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLy8gaW1wb3J0IHsgVFpEYXRlIH0gZnJvbSAndHVpLWNhbGVuZGFyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2NhbERhdGUge1xyXG4gIGRhdGU6IERhdGU7XHJcblxyXG4gIC8vIG1vbnRoID0gMSB0byAxMlxyXG4gIGNvbnN0cnVjdG9yKGFyZ3MpIHtcclxuICAgIGxldCBudW1iZXJzO1xyXG4gICAgaWYgKHR5cGVvZiBhcmdzID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG51bWJlcnMgPSBMb2NhbERhdGUucGFyc2VfWVlZWU1NREQoYXJncyk7XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3MgaW5zdGFuY2VvZiBMb2NhbERhdGUpIHtcclxuICAgICAgbnVtYmVycyA9IGFyZ3MuZ2V0KCk7XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3MgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIG51bWJlcnMgPSBMb2NhbERhdGUuY29udmVydERhdGVUb051bWJlcnMoYXJncyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzLnRvRGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBudW1iZXJzID0gTG9jYWxEYXRlLmNvbnZlcnREYXRlVG9OdW1iZXJzKGFyZ3MudG9EYXRlKCkpO1xyXG4gICAgfSBlbHNlIGlmIChhcmdzWydfZGF0ZSddIGluc3RhbmNlb2YgRGF0ZSApIHtcclxuICAgICAgbnVtYmVycyA9IExvY2FsRGF0ZS5jb252ZXJ0RGF0ZVRvTnVtYmVycyhhcmdzWydfZGF0ZSddKTtcclxuICAgIH0gZWxzZSBpZiAoYXJncyBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBudW1iZXJzID0gYXJncztcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZSA9IExvY2FsRGF0ZS5jb252ZXJ0TnVtYmVyc1RvRGF0ZShudW1iZXJzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb252ZXJ0VG9Kc0RhdGUoYXJncykge1xyXG4gICAgcmV0dXJuIChuZXcgTG9jYWxEYXRlKGFyZ3MpKS50b0RhdGUoKTtcclxuICB9XHJcblxyXG5cclxuICAvLyByZXR1cm4gbmV3IExvY2FsRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIGRhdGUuZ2V0RGF0ZSgpKTtcclxuICBzdGF0aWMgcGFyc2VfWVlZWU1NREQoc3RyKSB7XHJcbiAgICAvLyB5eXl5LW1tLWRkXHJcbiAgICBjb25zdCByZWdleHAgPSAvXihcXGRcXGRcXGRcXGQpLShcXGRcXGQpLShcXGRcXGQpL2c7XHJcbiAgICBsZXQgbWF0Y2hlcyA9IEFycmF5LmZyb20oXHJcbiAgICAgIHN0ci5tYXRjaEFsbChyZWdleHApLCBtID0+ICh7XHJcbiAgICAgICAgeWVhcjogTnVtYmVyKG1bMV0pLFxyXG4gICAgICAgIG1vbnRoOiBOdW1iZXIobVsyXSksXHJcbiAgICAgICAgZGF5OiBOdW1iZXIobVszXSlcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZiAobWF0Y2hlcy5sZW5ndGggIT0gMSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBkYXRlSW46IHVua25vd24gZGF0ZSBmb3JtYXQ6ICR7c3RyfWApO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBtYXRjaGVzWzBdO1xyXG4gIH1cclxuICBzdGF0aWMgY29udmVydE51bWJlcnNUb0RhdGUoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcywgbWlsbGlzZWNvbmRzIH0pIHtcclxuICAgIC8vIG1vbnRoID0gMSB0byAxMlxyXG4gICAgLy8gc3RhcnQgd2l0aCB0b2RheSdzICpsb2NhbCogZGF0ZS4gdGhpcyBpcyByZWFsbHkgaW1wb3J0YW50XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBkYXRlLnNldERhdGUoMSk7IC8vIHZlcnkgaW1wb3J0YW50XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgZGF0ZS5zZXRNb250aCgobW9udGg9PW51bGwpID8gMCA6IG1vbnRoIC0gMSk7XHJcbiAgICBkYXRlLnNldERhdGUoKGRheT09bnVsbCkgPyAxIDogZGF5KTtcclxuICAgIGRhdGUuc2V0SG91cnMoKGhvdXJzPT1udWxsKSA/IDAgOiBob3Vycyk7XHJcbiAgICBkYXRlLnNldE1pbnV0ZXMoKG1pbnV0ZXM9PW51bGwpID8gMCA6IG1pbnV0ZXMpO1xyXG4gICAgZGF0ZS5zZXRTZWNvbmRzKChzZWNvbmRzPT1udWxsKSA/IDAgOiBzZWNvbmRzKTtcclxuICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzKChtaWxsaXNlY29uZHM9PW51bGwpID8gMSA6IG1pbGxpc2Vjb25kcyk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgY29udmVydERhdGVUb051bWJlcnMoZGF0ZSkge1xyXG4gICAgLy8gbW9udGggPSAxIHRvIDEyXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB5ZWFyOiBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIG1vbnRoOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkYXk6IGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBob3VyczogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBtaW51dGVzOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgc2Vjb25kczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIG1pbGxpc2Vjb25kczogZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQoKSB7XHJcbiAgICByZXR1cm4gTG9jYWxEYXRlLmNvbnZlcnREYXRlVG9OdW1iZXJzKHRoaXMuZGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b01zZ0Zvcm1hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRvWVlZWU1NREQoKTtcclxuICB9XHJcbiAgdG9ZWVlZTU1ERCgpIHtcclxuICAgIC8vIHl5eXktbW0tZGRcclxuXHJcbiAgICBsZXQgeXl5eSA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgbGV0IG1tID0gKHRoaXMuZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IGRkID0gKHRoaXMuZGF0ZS5nZXREYXRlKCkpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCBzdHIgPSBgJHt5eXl5fS0ke21tfS0ke2RkfWA7XHJcbiAgICAvLyBjb25zb2xlLndhcm4oYGRhdGU9JHtzdHJ9PSR7dGhpcy50b0Rpc3BsYXlGb3JtYXQoKX1gKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG4gIHRvRGlzcGxheURhdGVGb3JtYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcclxuICAgICAgd2Vla2RheTogJ3Nob3J0JyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICBtb250aDogJ3Nob3J0JyxcclxuICAgICAgZGF5OiAnbnVtZXJpYycsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdG9EaXNwbGF5Rm9ybWF0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZS50b1N0cmluZygpO1xyXG4gIH1cclxuICB0b0RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlO1xyXG4gIH1cclxuICBjbGVhclRpbWUoKSB7XHJcbiAgICB0aGlzLmRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19