ngx-mat-tui-calendar 12.0.8 → 12.0.12
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +7 -6
- package/bundles/ngx-mat-tui-calendar.umd.js +96 -70
- package/bundles/ngx-mat-tui-calendar.umd.js.map +1 -1
- package/esm2015/lib/local-date.js +3 -2
- package/esm2015/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.js +1 -1
- package/esm2015/lib/ngx-mat-tui-calendar.component.js +10 -1
- package/esm2015/lib/ngx-mat-tui-calendar.module.js +89 -61
- package/fesm2015/ngx-mat-tui-calendar.js +99 -61
- package/fesm2015/ngx-mat-tui-calendar.js.map +1 -1
- package/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.d.ts +1 -1
- package/lib/ngx-mat-tui-calendar.component.d.ts +1 -1
- package/lib/ngx-mat-tui-calendar.module.d.ts +1 -1
- package/package.json +1 -1
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"ngx-mat-tui-calendar.js","sources":["../../../projects/ngx-mat-tui-calendar/src/lib/local-date.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.module.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.service.ts","../../../projects/ngx-mat-tui-calendar/src/public-api.ts","../../../projects/ngx-mat-tui-calendar/src/ngx-mat-tui-calendar.ts"],"sourcesContent":["\r\n// import { TZDate } from 'tui-calendar';\r\n\r\nexport class LocalDate {\r\n date: Date;\r\n\r\n // month = 1 to 12\r\n constructor(args) {\r\n let numbers;\r\n if (typeof args == 'string') {\r\n numbers = LocalDate.parse_YYYYMMDD(args);\r\n } else if (args instanceof LocalDate) {\r\n numbers = args.get();\r\n } else if (args instanceof Date) {\r\n numbers = LocalDate.convertDateToNumbers(args);\r\n } else if (typeof args.toDate === 'function') {\r\n numbers = LocalDate.convertDateToNumbers(args.toDate());\r\n } else if (args['_date'] instanceof Date ) {\r\n numbers = LocalDate.convertDateToNumbers(args['_date']);\r\n } else if (args instanceof Object) {\r\n numbers = args;\r\n }\r\n this.date = LocalDate.convertNumbersToDate(numbers);\r\n }\r\n\r\n static convertToJsDate(args) {\r\n return (new LocalDate(args)).toDate();\r\n }\r\n\r\n\r\n // return new LocalDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n static parse_YYYYMMDD(str) {\r\n // yyyy-mm-dd\r\n const regexp = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/g;\r\n let matches = Array.from(\r\n str.matchAll(regexp), m => ({\r\n year: Number(m[1]),\r\n month: Number(m[2]),\r\n day: Number(m[3])\r\n })\r\n );\r\n if (matches.length != 1) {\r\n console.error(`dateIn: unknown date format: ${str}`);\r\n return null;\r\n }\r\n return matches[0];\r\n }\r\n static convertNumbersToDate({ year, month, day, hours, minutes, seconds, milliseconds }) {\r\n // month = 1 to 12\r\n // start with today's *local* date. this si really important\r\n let date = new Date();\r\n date.setFullYear(year);\r\n date.setMonth((month==null) ? 0 : month - 1);\r\n date.setDate((day==null) ? 1 : day);\r\n date.setHours((hours==null) ? 0 : hours);\r\n date.setMinutes((minutes==null) ? 0 : minutes);\r\n date.setSeconds((seconds==null) ? 0 : seconds);\r\n date.setMilliseconds((milliseconds==null) ? 1 : milliseconds);\r\n return date;\r\n }\r\n\r\n\r\n static convertDateToNumbers(date) {\r\n // month = 1 to 12\r\n return {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n hours: date.getHours(),\r\n minutes: date.getMinutes(),\r\n seconds: date.getSeconds(),\r\n milliseconds: date.getMilliseconds(),\r\n };\r\n }\r\n\r\n get() {\r\n return LocalDate.convertDateToNumbers(this.date);\r\n }\r\n\r\n toMsgFormat() {\r\n return this.toYYYYMMDD();\r\n }\r\n toYYYYMMDD() {\r\n // yyyy-mm-dd\r\n\r\n let yyyy = this.date.getFullYear();\r\n let mm = (this.date.getMonth() + 1).toString().padStart(2, '0');\r\n let dd = (this.date.getDate()).toString().padStart(2, '0');\r\n let str = `${yyyy}-${mm}-${dd}`;\r\n // console.warn(`date=${str}=${this.toDisplayFormat()}`);\r\n return str;\r\n }\r\n toDisplayDateFormat() {\r\n return this.date.toLocaleDateString(\"en-US\", {\r\n weekday: 'short',\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n });\r\n }\r\n toDisplayFormat() {\r\n return this.date.toString();\r\n }\r\n toDate() {\r\n return this.date;\r\n }\r\n clearTime() {\r\n this.date.setHours(0, 0, 0, 1);\r\n }\r\n\r\n}\r\n\r\n","import { Component, ElementRef, HostBinding, Inject, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, NgForm, ValidatorFn, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { DateType, default as Calendar, IEventScheduleObject, ISchedule, TZDate } from 'tui-calendar';\n\nimport { LocalDate } from '../local-date.js';\nimport { CalendarEditorOptions } from '../calendar-editor-options';\n\n\n@Component({\n selector: 'ngx-mat-tui-calendar-editor-dialog',\n templateUrl: './ngx-mat-tui-calendar-editor-dialog.component.html',\n styleUrls: ['./ngx-mat-tui-calendar-editor-dialog.component.scss']\n})\nexport class NgxMatTuiCalendarEditorDialogComponent implements OnInit {\n private id: string;\n titleStr: string = '';\n locationStr: string = '';\n closed: boolean = false;\n eventForm: FormGroup;\n date: Date;\n startDate: Date;\n endDate: Date;\n startTime: Date;\n endTime: Date;\n isAllDay: boolean = false;\n color: string;\n themeClass: string = '';\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: CalendarEditorOptions,\n private dialogRef: MatDialogRef<NgxMatTuiCalendarEditorDialogComponent>,\n ) {\n // console.log('NgxMatTuiCalendarEditorDialogComponent.constructor: schedule:', schedule);\n\n // console.log('NgxMatTuiCalendarEditorDialogComponent.constructor: data:', data);\n this.color = data.darkMode ? 'accent' : 'primary';\n\n const schedule = data.schedule;\n if (schedule == null) {\n this.id = null;\n } else {\n if (schedule.id) {\n this.id = schedule.id.toString();\n }\n }\n this.titleStr = (schedule.title) ? schedule.title.toString() : '';\n this.locationStr = (schedule.location) ? schedule.location.toString() : '';\n\n\n this.isAllDay = (schedule.isAllDay == true);\n\n this.startDate = LocalDate.convertToJsDate(schedule.start) as Date;\n this.endDate = LocalDate.convertToJsDate(schedule.end) as Date;\n\n this.startTime = new Date(this.startDate);\n this.endTime = new Date(this.endDate);\n this.startDate.setHours(0, 0, 0, 1);\n this.endDate.setHours(0, 0, 0, 1);\n\n this.eventForm = new FormGroup(\n {\n title: new FormControl(this.titleStr),\n location: new FormControl(this.locationStr),\n scheduleType: new FormControl((schedule.isAllDay == true) ? \"all-day\" : \"time-slot\"),\n start: new FormControl(this.startDate),\n end: new FormControl(this.endDate),\n date: new FormControl(this.startDate),\n time1: new FormControl(this.startTime),\n time2: new FormControl(this.endTime, [Validators.required]),\n },\n this.getDateValidator(),\n );\n\n }\n\n getDateValidator() {\n const validator: ValidatorFn = (group: FormGroup): { [key: string]: any } => {\n const scheduleType = group.get(\"scheduleType\").value;\n if (group.get(\"scheduleType\").value == \"time-slot\") {\n let time1 = group.get(\"time1\").value;\n let time2 = group.get(\"time2\").value;\n if (time1 >= time2) {\n return {\n dates: \"End time must be later than the start time\"\n };\n }\n }\n return {};\n };\n return validator;\n }\n\n\n ngOnInit(): void {\n // console.dir(`Dialog config: ${this.dialogConfig}`);\n // let start: Date = (LocalDate.convertToJsDate(this.schedule.start)).toDate();\n // let end: Date = (LocalDate.convertToJsDate(this.schedule.end)).toDate();\n // this.eventForm.get(\"date\").setValue(start);\n // this.eventForm.get(\"start\").setValue(start);\n // this.eventForm.get(\"end\").setValue(end);\n\n }\n\n\n\n onSave(form: NgForm) {\n // console.log(`onSave form.invalid=${form.invalid}; this.closed=${this.closed} this.titleStr=${this.titleStr}`);\n if (form.invalid || this.closed) return;\n let schedule = this.data.schedule;\n schedule.title = this.eventForm.get(\"title\").value;\n schedule.location = this.eventForm.get(\"location\").value;\n schedule.isAllDay = this.isAllDay;\n schedule.category = this.isAllDay ? 'allday' : 'time'; // CATEGORY MUST BE DEFINED: 'milestone', 'task', allday', 'time'\n if (this.isAllDay) {\n schedule.start = LocalDate.convertToJsDate(this.eventForm.get(\"start\").value) as Date;\n schedule.start.setHours(0, 0, 0, 1);\n schedule.end = LocalDate.convertToJsDate(this.eventForm.get(\"end\").value) as Date;\n schedule.end.setHours(0, 0, 0, 1);\n } else {\n this.startTime = LocalDate.convertToJsDate(this.eventForm.get(\"time1\").value) as Date;\n schedule.start = LocalDate.convertToJsDate(this.eventForm.get(\"date\").value) as Date;\n schedule.start.setHours(\n this.startTime.getHours(),\n this.startTime.getMinutes(),\n this.startTime.getSeconds(),\n this.startTime.getMilliseconds(),\n );\n this.endTime = LocalDate.convertToJsDate(this.eventForm.get(\"time2\").value) as Date;\n schedule.end = LocalDate.convertToJsDate(this.eventForm.get(\"date\").value) as Date;\n schedule.end.setHours(\n this.endTime.getHours(),\n this.endTime.getMinutes(),\n this.endTime.getSeconds(),\n this.endTime.getMilliseconds(),\n );\n }\n // console.log(`pop-up-event-editor.component.ts: user clicked SAVE event=${schedule}`);\n // this.eventOutput.emit(schedule);\n form.resetForm();\n this.closeMe(schedule);\n }\n\n onCancel() {\n // this.cancelled.emit();\n // console.log('openPopupScheduleEditor: user clicked CANCEL');\n this.closeMe(null);\n }\n\n onDelete() {\n // this.cancelled.emit();\n // console.log('openPopupScheduleEditor: user clicked DELETE');\n this.closeMe(this.data.schedule, true);\n }\n\n\n closeMe(schedule: ISchedule, performDelete?: boolean) {\n // console.log('closeMe: The dialog is closing', schedule);\n this.closed = true;\n this.dialogRef.close({ schedule, performDelete: (performDelete == true) });\n }\n\n log(str) {\n // console.warn(str);\n }\n\n onUseAllDay() {\n this.isAllDay = true;\n }\n onUseTimeSlot() {\n this.isAllDay = false;\n }\n\n}\n","<div [className]=\"data.themeClass + ' ' + 'event-editor'\">\n <form id=\"my-form\" [formGroup]=\"eventForm\" class=\"event-editor-form\" (submit)=\"onSave(postForm);\" #postForm=\"ngForm\">\n <div class=\"grid-wrapper\">\n <div class=\"grid-title\">\n <mat-form-field [color]=\"color\" class=\"editor-title\">\n <input matInput type=\"text\" name=\"title\" formControlName=\"title\" placeholder=\"Title\">\n <!-- <mat-error style=\"height: fit-content;\" *ngIf=\"title.invalid\">Please enter a title (of 1 characters or more)\n for\n your event.</mat-error> -->\n </mat-form-field>\n </div>\n <div class=\"grid-location\">\n <mat-form-field [color]=\"color\" class=\"editor-location\">\n <input matInput type=\"location\" name=\"location\" formControlName=\"location\" placeholder=\"Location\">\n </mat-form-field>\n </div>\n <div class=\"grid-radios\" style=\"display: flex;\">\n <mat-radio-group [color]=\"color\" aria-label=\"Select an option\" style=\"margin-bottom: 1em;\" name=\"scheduleType\"\n formControlName=\"scheduleType\" required>\n <mat-radio-button value=\"all-day\" (change)=\"onUseAllDay()\" id=\"button-all-day\" [color]=\"color\" class=\"radio-button\">All Day\n </mat-radio-button>\n <mat-radio-button value=\"time-slot\" (change)=\"onUseTimeSlot()\" id=\"button-time-slot\" [color]=\"color\" class=\"radio-button\">Time Slot\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"grid-date\">\n <mat-form-field *ngIf=\"isAllDay\" [color]=\"color\" class=\"date-range-form-field\" appearance=\"fill\">\n <mat-label [color]=\"color\">Pick a Date Range</mat-label>\n <mat-date-range-input [color]=\"color\" [panelClass]=\"data.themeClass\" [rangePicker]=\"rangePicker\" #dateRangeInput>\n <input matStartDate placeholder=\"Start date\" formControlName=\"start\" name=\"start\">\n <input matEndDate placeholder=\"End date\" formControlName=\"end\" name=\"end\">\n </mat-date-range-input>\n <mat-datepicker-toggle [color]=\"color\" [panelClass]=\"data.themeClass\" matSuffix [for]=\"rangePicker\"></mat-datepicker-toggle>\n <mat-date-range-picker [color]=\"color\" class=\"picker\" #rangePicker></mat-date-range-picker>\n </mat-form-field>\n <mat-form-field [color]=\"color\" *ngIf=\"!isAllDay\" class=\"date-form-field\" appearance=\"fill\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"dpicker\" formControlName=\"date\" name=\"date\">\n <mat-datepicker-toggle [color]=\"color\" matSuffix [for]=\"dpicker\"></mat-datepicker-toggle>\n <mat-datepicker [color]=\"color\" #dpicker></mat-datepicker>\n </mat-form-field>\n </div>\n <div *ngIf=\"!isAllDay\" class=\"grid-time time-slot\">\n <mat-form-field [color]=\"color\" class=\"form-field-time\" appearance=\"fill\">\n <mat-label>Start</mat-label>\n <input matTimepicker [color]=\"color\" [strict]=\"false\" id=\"timepicker-start\" mode=\"12h\" formControlName=\"time1\" name=\"time1\"\n placeholder=\"Please select time...\">\n </mat-form-field>\n <mat-form-field [color]=\"color\" class=\"form-field-time\" appearance=\"fill\">\n <mat-label>End</mat-label>\n <input matTimepicker [color]=\"color\" [strict]=\"false\" id=\"timepicker-end\" mode=\"12h\" formControlName=\"time2\" name=\"time2\"\n placeholder=\"Please select time...\">\n </mat-form-field>\n </div>\n <div *ngIf=\"!isAllDay\" class=\"grid-error\">\n <label *ngIf=\"eventForm.invalid\">{{ eventForm.errors?.dates }}</label>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"editor-footer\">\n <button mat-raised-button [color]=\"color\" id=\"editor-submit-button\" type=\"submit\" style=\"margin-right: 4px;\">SAVE</button>\n <button mat-raised-button id=\"editor-delete-button\" type=\"button\" (click)=\"onDelete()\" *ngIf=\"(data.schedule.id!=null)\">DELETE</button>\n <button mat-raised-button id=\"editor-cancel-button\" type=\"button\" (click)=\"onCancel()\">CANCEL</button>\n </div>\n </form>\n </div>","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ngx-mat-tui-calendar-wrapper',\n templateUrl: './ngx-mat-tui-calendar-wrapper.component.html',\n styleUrls: ['./ngx-mat-tui-calendar-wrapper.component.scss'],\n encapsulation: ViewEncapsulation.None, // this is needed so that our css rules override those in tui-calendar package\n})\nexport class NgxMatTuiCalendarWrapperComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div id=\"calendar\"></div> <!-- TUI Calendar gets instatited here -->\n","import { Component, ViewChild, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport distinctColors from 'distinct-colors';\r\nimport { Color } from \"chroma-js\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport {\r\n faCalendarCheck,\r\n faCaretSquareLeft,\r\n faCaretSquareRight,\r\n faTable,\r\n faColumns,\r\n faList,\r\n faListAlt,\r\n faForward,\r\n faFastBackward,\r\n faBackward,\r\n faCaretLeft,\r\n faCaretRight,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport {\r\n default as Calendar,\r\n ICalendarInfo,\r\n IEventDateObject,\r\n IEventMoreObject,\r\n IEventObject,\r\n IEventScheduleObject,\r\n IOptions,\r\n ISchedule,\r\n ITheme,\r\n ITimezone,\r\n IWeekOptions,\r\n TEventBeforeCreateSchedule,\r\n TZDate,\r\n} from 'tui-calendar';\r\n\r\n// project \r\nimport { LocalDate } from './local-date.js';\r\nimport { NgxMatTuiCalendarEditorDialogComponent } from './ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\r\nimport { CalendarOptions } from './calendar-options';\r\nimport { CalendarEditorOptions } from './calendar-editor-options';\r\n\r\n@Component({\r\n selector: 'ngx-mat-tui-calendar',\r\n templateUrl: './ngx-mat-tui-calendar.component.html',\r\n styleUrls: [\r\n './ngx-mat-tui-calendar.component.scss'\r\n ],\r\n})\r\nexport class NgxMatTuiCalendarComponent implements OnInit, OnChanges, OnDestroy {\r\n iconToday = faCalendarCheck;\r\n // iconPrev = faCaretSquareLeft;\r\n // iconNext = faCaretSquareRight;\r\n iconPrev = faCaretLeft;\r\n iconNext = faCaretRight;\r\n iconLongPrev = faBackward;\r\n iconLongNext = faForward;\r\n iconByMonth = faTable;\r\n iconByWeek = faColumns;\r\n iconByDay = faListAlt;\r\n\r\n calendar: Calendar; // the TUI Calendar Object\r\n calendarId: string;\r\n colors: Color[];\r\n colorIndex: number;\r\n @Output() userCreatedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Output() userUpdatedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Output() userDeletedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Input() options: CalendarOptions;\r\n appliedOptions: CalendarOptions; // this is needed for when options is not connected\r\n\r\n constructor(private dialog: MatDialog) {\r\n // we slice off the first color since it is gray\r\n this.colors = distinctColors({ lightMin: 70, count: 15 }).slice(1);\r\n this.colorIndex = 0;\r\n this.calendarId = uuidv4();\r\n\r\n this.appliedOptions = this.getDefaultOptions();\r\n }\r\n\r\n ngOnInit() {\r\n // console.warn(`calendar.component.ts: ngOnit`)\r\n this.createTUICalendar();\r\n this.bindCallbacks();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.warn(changes);\r\n if (this.calendar) {\r\n\r\n if (changes.options) {\r\n // console.warn(`change.option:`, changes.options);\r\n let options = changes.options.currentValue;\r\n this.setOptions(options);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.calendar.destroy();\r\n }\r\n\r\n onCalendarLongPrev() {\r\n let date: Date = (this.calendar.getDate() as TZDate).toDate();\r\n let days = 0;\r\n let months = 0;\r\n let years = 0;\r\n switch (this.calendar.getViewName()) {\r\n case 'day':\r\n days = -7;\r\n break;\r\n case 'week':\r\n days = -28;\r\n break;\r\n case 'month':\r\n years = -1;\r\n break;\r\n }\r\n date.setFullYear(date.getFullYear() + years);\r\n date.setMonth(date.getMonth() + months); // date class does the modular arithmetic\r\n date.setDate(date.getDate() + days); // date class does the modular arithmetic\r\n this.calendar.setDate(date);\r\n }\r\n\r\n onCalendarPrev() {\r\n this.calendar.prev();\r\n }\r\n\r\n onCalendarToday() {\r\n this.calendar.today();\r\n }\r\n\r\n onCalendarNext() {\r\n this.calendar.next();\r\n }\r\n\r\n onCalendarLongNext() {\r\n let date: Date = (this.calendar.getDate() as TZDate).toDate();\r\n let days = 0;\r\n let months = 0;\r\n let years = 0;\r\n switch (this.calendar.getViewName()) {\r\n case 'day':\r\n days = 7;\r\n break;\r\n case 'week':\r\n days = 28;\r\n break;\r\n case 'month':\r\n years = 1;\r\n break;\r\n }\r\n date.setFullYear(date.getFullYear() + years);\r\n date.setMonth(date.getMonth() + months); // date class does the modular arithmetic\r\n date.setDate(date.getDate() + days); // date class does the modular arithmetic\r\n this.calendar.setDate(date);\r\n }\r\n\r\n\r\n onMonthView() {\r\n this.calendar.changeView('month');\r\n }\r\n\r\n onWeekView() {\r\n this.calendar.changeView('week');\r\n }\r\n\r\n onDayView() {\r\n this.calendar.changeView('day');\r\n }\r\n\r\n\r\n getDate() {\r\n let date = this.calendar.getDate();\r\n let str = date.toDate().toLocaleDateString(\"en-US\", {\r\n year: 'numeric',\r\n month: 'short',\r\n });\r\n return str;\r\n }\r\n\r\n createTUICalendar() {\r\n let ioptions = this.preprocessIOptions(null);\r\n // console.warn(`calendar.component.ts: createTUICalendar: ioptions:`, ioptions);\r\n this.calendar = new Calendar('#calendar', ioptions);\r\n // console.warn(`calendar.component.ts: createTUICalendar: this.calendar:`, this.calendar);\r\n }\r\n\r\n\r\n bindCallbacks() {\r\n this.bindAfterRenderSchedule();\r\n this.bindClickTimezonesCollapseBtn();\r\n this.bindClickDayname();\r\n this.bindClickMore();\r\n this.bindClickSchedule();\r\n this.bindBeforeCreateSchedule();\r\n this.bindBeforeUpdateSchedule();\r\n this.bindBeforeDeleteSchedule();\r\n }\r\n\r\n bindAfterRenderSchedule() {\r\n let that = this;\r\n this.calendar.on('afterRenderSchedule', function (event: { schedule: ISchedule }) {\r\n // console.warn(`afterRenderSchedule`, event);\r\n });\r\n }\r\n\r\n bindClickTimezonesCollapseBtn() {\r\n let that = this;\r\n this.calendar.on('clickTimezonesCollapseBtn', function (timezonesCollapsed: boolean) {\r\n // console.warn(`clickTimezonesCollapseBtn`, timezonesCollapsed);\r\n });\r\n }\r\n\r\n\r\n bindClickDayname() {\r\n let that = this;\r\n this.calendar.on('clickDayname', function (event: IEventDateObject) {\r\n // console.warn(`clickDayname`, event);\r\n });\r\n }\r\n\r\n bindClickMore() {\r\n let that = this;\r\n this.calendar.on('clickMore', function (event: IEventMoreObject) {\r\n // console.warn(`clickMore`, event);\r\n });\r\n }\r\n\r\n bindClickSchedule() {\r\n // only works if useDetailPopup: false,\r\n let that = this;\r\n this.calendar.on('clickSchedule', function (event: IEventScheduleObject) {\r\n // console.warn(`clickSchedule`, event);\r\n let schedule: ISchedule = { ...event.schedule };\r\n schedule.start = (new LocalDate(schedule.start)).toDate();\r\n schedule.end = (new LocalDate(schedule.end)).toDate();\r\n that.openPopupScheduleEditor(schedule);\r\n });\r\n }\r\n\r\n bindBeforeCreateSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeCreateSchedule', function (event: TEventBeforeCreateSchedule) {\r\n // console.log(`beforeCreateSchedule`, event);\r\n let start: Date = (new LocalDate(event.start)).toDate();\r\n start.setHours(9);\r\n let end: Date = (new LocalDate(event.end)).toDate();\r\n end.setHours(10);\r\n that.openPopupScheduleEditor({\r\n title: '',\r\n start: start,\r\n end: end,\r\n id: null,\r\n } as ISchedule);\r\n });\r\n }\r\n\r\n bindBeforeUpdateSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeUpdateSchedule', function (event: IEventObject) {\r\n // console.log(`beforeUpdateSchedule`, event);\r\n that.updateScheduleAndNotifyParent(event);\r\n });\r\n }\r\n\r\n bindBeforeDeleteSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeDeleteSchedule', function (event: IEventScheduleObject) {\r\n // console.log(`beforeDeleteSchedule`, event.schedule);\r\n // console.log(`beforeDeleteSchedule`, event.schedule);\r\n that.deleteScheduleAndNotifyParent({ id: event.schedule.id, calendarId: event.schedule.calendarId });\r\n });\r\n }\r\n\r\n nextColor() {\r\n let color = this.colors[this.colorIndex++].hex();\r\n if (this.colorIndex >= this.colors.length) this.colorIndex = 0;\r\n return color;\r\n }\r\n\r\n createScheduleAndNotifyParent(args: ISchedule) {\r\n let schedule = this.createSchedule(args);\r\n this.userCreatedSchedule.emit(schedule);\r\n return schedule;\r\n }\r\n\r\n createSchedules(schedules: ISchedule[]) {\r\n let newSchedules = [];\r\n for (let schedule of schedules) {\r\n newSchedules.push(this.createSchedule(schedule));\r\n }\r\n return newSchedules;\r\n }\r\n\r\n createSchedule(args: ISchedule): ISchedule {\r\n // if (form.invalid) return;\r\n\r\n // create a color\r\n let color = this.nextColor();\r\n // console.log(color);\r\n\r\n // create an id\r\n let id = (args.id == null) ? '' : args.id.toString();\r\n if (id.length === 0) {\r\n id = uuidv4();\r\n }\r\n\r\n let start: Date = LocalDate.convertToJsDate(args.start);\r\n let end: Date = LocalDate.convertToJsDate(args.end);\r\n\r\n let schedule: ISchedule = {\r\n id,\r\n calendarId: (args.calendarId == null) ? this.calendarId : args.calendarId,\r\n title: args.title,\r\n start: start,\r\n end: end,\r\n category: args.category,\r\n isAllDay: args.isAllDay,\r\n dueDateClass: '',\r\n bgColor: color,\r\n } as ISchedule\r\n // console.log(`event-calendar.component.ts: createEvent:`, schedule);\r\n this.calendar.createSchedules([schedule]);\r\n return this.calendar.getSchedule(schedule.id, schedule.calendarId);\r\n }\r\n\r\n updateScheduleAndNotifyParent(args: ISchedule) {\r\n let schedule = this.updateSchedule(args);\r\n this.userUpdatedSchedule.emit(schedule);\r\n return schedule;\r\n }\r\n\r\n updateSchedule(schedule: ISchedule) {\r\n // console.log(`event-calendar.component.ts: updateSchedule:`, schedule);\r\n let calendarId = (schedule.calendarId == null) ? this.calendarId : schedule.calendarId;\r\n this.calendar.updateSchedule(schedule.id, calendarId, schedule, false);\r\n return this.calendar.getSchedule(schedule.id, calendarId);\r\n }\r\n\r\n getSchedule(args: { id: string, calendarId: string }) {\r\n // console.log(`event-calendar.component.ts: getSchedule:`, schedule);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n return this.calendar.getSchedule(args.id, calendarId);\r\n }\r\n\r\n deleteScheduleAndNotifyParent(args: { id: string, calendarId: string }) {\r\n this.deleteSchedule(args);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n this.userDeletedSchedule.emit({ id: args.id, calendarId });\r\n }\r\n\r\n deleteSchedule(args: { id: string, calendarId: string }) {\r\n // console.log(`event-calendar.component.ts: deleteSchedule:`, schedule);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n this.calendar.deleteSchedule(args.id, calendarId, false);\r\n }\r\n\r\n deleteAllSchedules() {\r\n this.calendar.clear();\r\n }\r\n\r\n openPopupScheduleEditor(schedule: ISchedule) {\r\n // console.log('openPopupScheduleEditor: calevent:', schedule);\r\n const dialogConfig = new MatDialogConfig();\r\n if (this.appliedOptions.themeClass) {\r\n dialogConfig.panelClass = this.appliedOptions.themeClass;\r\n }\r\n // console.warn(`options: `, this.appliedOptions);\r\n dialogConfig.data = { schedule, darkMode: this.appliedOptions.darkMode, themeClass: this.appliedOptions.themeClass } as CalendarEditorOptions;\r\n dialogConfig.autoFocus = true;\r\n const dialogRef = this.dialog.open(NgxMatTuiCalendarEditorDialogComponent, dialogConfig);\r\n // const dialogRef = this.dialog.open(NgxMatTuiCalendarScheduleEditorDialogComponent, {\r\n // data: schedule,\r\n // });\r\n dialogRef.afterClosed().subscribe((result: { schedule: ISchedule, performDelete: boolean }) => {\r\n // console.log('openPopupScheduleEditor: The dialog was closed', result);\r\n this.calendar.render(true); // <-- so that selection is cleared\r\n if (result && result.schedule) {\r\n let schedule = result.schedule;\r\n if (result.performDelete == true) {\r\n // delete\r\n // console.log(`openPopupScheduleEditor:afterCLosed: deleteSchedule`);\r\n this.deleteScheduleAndNotifyParent({ id: schedule.id, calendarId: schedule.calendarId });\r\n } else if (schedule.id == null) {\r\n // console.log(`openPopupScheduleEditor:afterCLosed: addSchedule`);\r\n this.createScheduleAndNotifyParent(schedule);\r\n } else {\r\n // console.log(`openPopupScheduleEditor:afterCLosed: updateSchedule`);\r\n this.updateScheduleAndNotifyParent(schedule);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n setOptions(options: CalendarOptions) {\r\n if (options == null) {\r\n options = this.getDefaultOptions();\r\n }\r\n options.ioptions = this.setIOptions(options.ioptions);\r\n this.appliedOptions = {...options};\r\n }\r\n\r\n setIOptions(ioptionsIn: IOptions) {\r\n let ioptions = this.preprocessIOptions(ioptionsIn);\r\n this.calendar.setOptions(ioptions);\r\n this.calendar.setTheme(ioptions.theme);\r\n this.calendar.render(true);\r\n return ioptions;\r\n }\r\n\r\n preprocessIOptions(ioptions: IOptions): IOptions {\r\n let defs: IOptions = this.getDefaultIOptions();\r\n if (ioptions == null) {\r\n ioptions = defs;\r\n } else {\r\n ioptions = { ...defs, ...ioptions };\r\n }\r\n ioptions.useCreationPopup = false;\r\n ioptions.useDetailPopup = false;\r\n if (!ioptions.theme) {\r\n ioptions.theme = this.getDefaultTheme();\r\n }\r\n return ioptions;\r\n }\r\n\r\n\r\n getDefaultOptions(): CalendarOptions {\r\n return {\r\n darkMode: false,\r\n themeClass: null,\r\n ioptions: this.getDefaultIOptions(),\r\n } as CalendarOptions;\r\n }\r\n\r\n getDefaultIOptions(): IOptions {\r\n return {\r\n defaultView: 'month',\r\n taskView: true,\r\n useCreationPopup: false,\r\n useDetailPopup: false,\r\n theme: this.getDefaultTheme(),\r\n template: {\r\n monthDayname: function (dayname) {\r\n return '<span class=\"calendar-week-dayname-name\">' + dayname.label + '</span>';\r\n }\r\n },\r\n week: {\r\n // startDayOfWeek: undefined,\r\n // daynames: undefined,\r\n narrowWeekend: false,\r\n // workweek: true,\r\n showTimezoneCollapseButton: true,\r\n timezonesCollapsed: true,\r\n hourStart: 7,\r\n hourEnd: 20,\r\n } as IWeekOptions,\r\n } as IOptions;\r\n\r\n }\r\n\r\n getColor(name: string): string {\r\n const el = document.getElementById(`theme-${name}`);\r\n if (el) {\r\n const style = window.getComputedStyle(el, null);\r\n // console.warn(`theme-${name} color:`, style.color);\r\n return style.color;\r\n }\r\n return '';\r\n }\r\n\r\n getDefaultTheme(): ITheme {\r\n function adjustHexOpacity(color, opacity) {\r\n const r = parseInt(color.slice(1, 3), 16);\r\n const g = parseInt(color.slice(3, 5), 16);\r\n const b = parseInt(color.slice(5, 7), 16);\r\n\r\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + opacity + ')';\r\n }\r\n\r\n // default keys and styles\r\n // TODO: apply Material Design Theme \r\n let background = this.getColor(\"background\");\r\n let border = this.getColor(\"divider\");\r\n let borderLight = this.getColor(\"divider-light\");\r\n let shadow = this.getColor(\"divider\");\r\n let highlight = this.getColor(\"highlight\");\r\n let primary = this.getColor(\"primary\");\r\n let warn = this.getColor(\"warn\");\r\n let text = this.getColor(\"foreground\");\r\n let primaryShaded = this.getColor(\"primary-shaded\");\r\n\r\n // tui-full-calendar-weekday-schedule-title\r\n //calendar-week-dayname-name\r\n return {\r\n 'common.border': `1px solid ${border}`,\r\n 'common.backgroundColor': background,\r\n 'common.holiday.color': warn,\r\n 'common.saturday.color': text,\r\n 'common.dayname.color': text,\r\n 'common.today.color': '#0f0',\r\n\r\n // creation guide style\r\n 'common.creationGuide.backgroundColor': primaryShaded,\r\n 'common.creationGuide.border': `1px solid ${highlight}`,\r\n\r\n // month header 'dayname'\r\n 'month.dayname.height': '31px',\r\n 'month.dayname.borderLeft': `1px solid ${border}`,\r\n 'month.dayname.paddingLeft': '10px',\r\n 'month.dayname.paddingRight': '10px',\r\n 'month.dayname.backgroundColor': 'inherit',\r\n 'month.dayname.fontSize': '12px',\r\n 'month.dayname.fontWeight': 'normal',\r\n 'month.dayname.textAlign': 'left',\r\n\r\n // month day grid cell 'day'\r\n 'month.holidayExceptThisMonth.color': 'rgba(255, 64, 64, 0.4)',\r\n 'month.dayExceptThisMonth.color': 'rgba(51, 51, 51, 0.4)',\r\n 'month.weekend.backgroundColor': 'inherit',\r\n 'month.day.fontSize': '14px',\r\n 'month.schedule.color': highlight,\r\n\r\n // month schedule style\r\n 'month.schedule.borderRadius': '2px',\r\n 'month.schedule.height': '24px',\r\n 'month.schedule.marginTop': '2px',\r\n 'month.schedule.marginLeft': '8px',\r\n 'month.schedule.marginRight': '8px',\r\n\r\n // month more view\r\n 'month.moreView.border': `1px solid ${border}`,\r\n 'month.moreView.boxShadow': `0 2px 6px 0 ${shadow}`,\r\n 'month.moreView.backgroundColor': background,\r\n 'month.moreView.paddingBottom': '17px',\r\n 'month.moreViewTitle.height': '44px',\r\n 'month.moreViewTitle.marginBottom': '12px',\r\n 'month.moreViewTitle.backgroundColor': 'inherit',\r\n 'month.moreViewTitle.borderBottom': 'none',\r\n 'month.moreViewTitle.padding': '12px 17px 0 17px',\r\n 'month.moreViewList.padding': '0 17px',\r\n\r\n // week header 'dayname'\r\n 'week.dayname.height': '42px',\r\n 'week.dayname.borderTop': `1px solid ${border}`,\r\n 'week.dayname.borderBottom': `1px solid ${border}`,\r\n 'week.dayname.borderLeft': 'inherit',\r\n 'week.dayname.paddingLeft': '0',\r\n 'week.dayname.backgroundColor': 'inherit',\r\n 'week.dayname.textAlign': 'left',\r\n 'week.today.color': text,\r\n 'week.pastDay.color': borderLight,\r\n\r\n // week vertical panel 'vpanel'\r\n 'week.vpanelSplitter.border': `1px solid ${border}`,\r\n 'week.vpanelSplitter.height': '3px',\r\n\r\n // week daygrid 'daygrid'\r\n 'week.daygrid.borderRight': `1px solid ${border}`,\r\n 'week.daygrid.backgroundColor': background,\r\n\r\n 'week.daygridLeft.width': '72px',\r\n 'week.daygridLeft.backgroundColor': background,\r\n 'week.daygridLeft.paddingRight': '8px',\r\n 'week.daygridLeft.borderRight': `1px solid ${border}`,\r\n\r\n\r\n 'week.today.backgroundColor': primaryShaded,\r\n 'week.weekend.backgroundColor': 'inherit',\r\n\r\n // week timegrid 'timegrid'\r\n 'week.timegridLeft.width': '72px',\r\n 'week.timegridLeft.backgroundColor': 'inherit',\r\n 'week.timegridLeft.borderRight': `1px solid ${border}`,\r\n 'week.timegridLeft.fontSize': '11px',\r\n 'week.timegridLeftTimezoneLabel.height': '40px',\r\n 'week.timegridLeftAdditionalTimezone.backgroundColor': background,\r\n\r\n 'week.timegridOneHour.height': '52px',\r\n 'week.timegridHalfHour.height': '26px',\r\n 'week.timegridHalfHour.borderBottom': 'none',\r\n 'week.timegridHorizontalLine.borderBottom': `1px solid ${border}`,\r\n\r\n 'week.timegrid.paddingRight': '8px',\r\n 'week.timegrid.borderRight': `1px solid ${border}`,\r\n 'week.timegridSchedule.borderRadius': '2px',\r\n 'week.timegridSchedule.paddingLeft': '2px',\r\n\r\n // #515ce6 is a slate blue\r\n\r\n 'week.currentTime.color': highlight,\r\n 'week.currentTime.fontSize': '11px',\r\n 'week.currentTime.fontWeight': 'normal',\r\n\r\n 'week.pastTime.color': borderLight,\r\n 'week.pastTime.fontWeight': 'normal',\r\n\r\n 'week.futureTime.color': border,\r\n 'week.futureTime.fontWeight': 'normal',\r\n\r\n 'week.currentTimeLinePast.border': `1px dashed ${highlight}`,\r\n 'week.currentTimeLineBullet.backgroundColor': highlight,\r\n 'week.currentTimeLineToday.border': `1px solid ${highlight}`,\r\n 'week.currentTimeLineFuture.border': 'none',\r\n\r\n // week creation guide style\r\n 'week.creationGuide.color': highlight,\r\n 'week.creationGuide.fontSize': '11px',\r\n 'week.creationGuide.fontWeight': 'bold',\r\n\r\n // week daygrid schedule style\r\n 'week.dayGridSchedule.borderRadius': '2px',\r\n 'week.dayGridSchedule.height': '24px',\r\n 'week.dayGridSchedule.marginTop': '2px',\r\n 'week.dayGridSchedule.marginLeft': '8px',\r\n 'week.dayGridSchedule.marginRight': '8px'\r\n } as ITheme;\r\n }\r\n\r\n}\r\n","<section class=\"content-container\">\r\n <!-- These divs are here so that we can read the theme colors for the tui theme -->\r\n <!-- The outer div gives the default color for when user does not provide an Angular theme -->\r\n <div style=\"color: blue;\"> <div id=\"theme-primary\"></div></div>\r\n <div style=\"color: blue;\"> <div id=\"theme-highlight\"></div></div>\r\n <div style=\"color: blue;\"> <div id=\"theme-accent\"></div></div>\r\n <div style=\"color: red;\"> <div id=\"theme-warn\"></div></div>\r\n <div style=\"color: rgba(0, 0, 255, 0.2);\"> <div id=\"theme-primary-shaded\"></div></div>\r\n <div style=\"color: #3e3e3e;\"> <div id=\"theme-foreground\"></div></div>\r\n <div style=\"color: #e0e0e0;\"> <div id=\"theme-divider\"></div></div>\r\n <div style=\"color: white;\"> <div id=\"theme-background\"></div></div>\r\n \r\n <div class=\"calendar-container\">\r\n <!-- calendar titlebar -->\r\n <mat-toolbar class=\"menu-bar\" color=\"primary\">\r\n <!-- <div style=\"align-self: center;display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\"> -->\r\n <div style=\"display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n width: 100%; \">\r\n <div class=\"left-div\">\r\n <!-- LEFT -->\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.5rem !important;\" \r\n (click)=\"onCalendarLongPrev()\">\r\n <fa-icon [icon]=\"iconLongPrev\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\" \r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 2rem !important;\" \r\n (click)=\"onCalendarPrev()\">\r\n <fa-icon [icon]=\"iconPrev\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.7rem !important;\" \r\n (click)=\"onCalendarToday()\">\r\n <fa-icon [icon]=\"iconToday\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\" \r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 2rem !important;\" \r\n (click)=\"onCalendarNext()\">\r\n <fa-icon [icon]=\"iconNext\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.5rem !important;\" \r\n (click)=\"onCalendarLongNext()\">\r\n <fa-icon [icon]=\"iconLongNext\"></fa-icon>\r\n </button>\r\n </div>\r\n <div class=\"center-div\">\r\n <!-- CENTER -->\r\n <span class=\"event-calendar-title\">{{ getDate() }}</span>\r\n </div>\r\n <div class=\"right-div\">\r\n \r\n <!-- RIGHT -->\r\n <mat-button-toggle-group class=\"view-button\" value=\"month\" id=\"@+id/toggleButton\" layout_width=\"wrap_content\"\r\n layout_height=\"wrap_content\">\r\n <mat-button-toggle mat-button value=\"month\" class=\"view-button\" (click)=\"onMonthView()\">\r\n <fa-icon [icon]=\"iconByMonth\"></fa-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle mat-button value=\"week\" class=\"view-button\" (click)=\"onWeekView()\">\r\n <fa-icon [icon]=\"iconByWeek\"></fa-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle mat-button value=\"day\" class=\"view-button\" (click)=\"onDayView()\">\r\n <fa-icon [icon]=\"iconByDay\"></fa-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <ngx-mat-tui-calendar-wrapper></ngx-mat-tui-calendar-wrapper>\r\n </div>\r\n \r\n </section>\r\n","\r\n// Angular modules\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FlexModule, FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { NgModule } from '@angular/core';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\n// Angular Material Design modules\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n// 3rd party modules\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { MatTimepickerModule } from 'mat-timepicker';\r\n\r\n// project modules\r\nimport { NgxMatTuiCalendarComponent } from './ngx-mat-tui-calendar.component';\r\nimport { NgxMatTuiCalendarWrapperComponent } from './ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component';\r\nimport { NgxMatTuiCalendarEditorDialogComponent } from './ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n NgxMatTuiCalendarComponent,\r\n NgxMatTuiCalendarWrapperComponent,\r\n NgxMatTuiCalendarEditorDialogComponent,\r\n ],\r\n imports: [\r\n BrowserAnimationsModule,\r\n BrowserModule,\r\n FlexLayoutModule,\r\n FlexModule, \r\n FormsModule,\r\n HttpClientModule,\r\n OverlayModule,\r\n ReactiveFormsModule,\r\n\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSlideToggleModule,\r\n MatToolbarModule,\r\n\r\n FontAwesomeModule,\r\n MatTimepickerModule,\r\n ],\r\n exports: [\r\n NgxMatTuiCalendarComponent,\r\n NgxMatTuiCalendarWrapperComponent,\r\n NgxMatTuiCalendarEditorDialogComponent,\r\n ],\r\n entryComponents: [\r\n NgxMatTuiCalendarComponent,\r\n NgxMatTuiCalendarWrapperComponent,\r\n NgxMatTuiCalendarEditorDialogComponent,\r\n ],\r\n})\r\nexport class NgxMatTuiCalendarModule { }\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxMatTuiCalendarService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of ngx-mat-tui-calendar\n */\n\nexport * from './lib/ngx-mat-tui-calendar.module';\nexport * from './lib/ngx-mat-tui-calendar.service';\nexport * from './lib/ngx-mat-tui-calendar.component';\nexport * from './lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\nexport * from './lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component';\n\nexport * from './lib/calendar-options';\nexport * from './lib/calendar-editor-options';\nexport * from './lib/local-date';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"ngx-mat-tui-calendar.js","sources":["../../../projects/ngx-mat-tui-calendar/src/lib/local-date.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.component.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.component.html","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.module.ts","../../../projects/ngx-mat-tui-calendar/src/lib/ngx-mat-tui-calendar.service.ts","../../../projects/ngx-mat-tui-calendar/src/public-api.ts","../../../projects/ngx-mat-tui-calendar/src/ngx-mat-tui-calendar.ts"],"sourcesContent":["\r\n// import { TZDate } from 'tui-calendar';\r\n\r\nexport class LocalDate {\r\n date: Date;\r\n\r\n // month = 1 to 12\r\n constructor(args) {\r\n let numbers;\r\n if (typeof args == 'string') {\r\n numbers = LocalDate.parse_YYYYMMDD(args);\r\n } else if (args instanceof LocalDate) {\r\n numbers = args.get();\r\n } else if (args instanceof Date) {\r\n numbers = LocalDate.convertDateToNumbers(args);\r\n } else if (typeof args.toDate === 'function') {\r\n numbers = LocalDate.convertDateToNumbers(args.toDate());\r\n } else if (args['_date'] instanceof Date ) {\r\n numbers = LocalDate.convertDateToNumbers(args['_date']);\r\n } else if (args instanceof Object) {\r\n numbers = args;\r\n }\r\n this.date = LocalDate.convertNumbersToDate(numbers);\r\n }\r\n\r\n static convertToJsDate(args) {\r\n return (new LocalDate(args)).toDate();\r\n }\r\n\r\n\r\n // return new LocalDate(date.getFullYear(), date.getMonth() + 1, date.getDate());\r\n static parse_YYYYMMDD(str) {\r\n // yyyy-mm-dd\r\n const regexp = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)/g;\r\n let matches = Array.from(\r\n str.matchAll(regexp), m => ({\r\n year: Number(m[1]),\r\n month: Number(m[2]),\r\n day: Number(m[3])\r\n })\r\n );\r\n if (matches.length != 1) {\r\n console.error(`dateIn: unknown date format: ${str}`);\r\n return null;\r\n }\r\n return matches[0];\r\n }\r\n static convertNumbersToDate({ year, month, day, hours, minutes, seconds, milliseconds }) {\r\n // month = 1 to 12\r\n // start with today's *local* date. this is really important\r\n let date = new Date();\r\n date.setDate(1); // very important\r\n date.setFullYear(year);\r\n date.setMonth((month==null) ? 0 : month - 1);\r\n date.setDate((day==null) ? 1 : day);\r\n date.setHours((hours==null) ? 0 : hours);\r\n date.setMinutes((minutes==null) ? 0 : minutes);\r\n date.setSeconds((seconds==null) ? 0 : seconds);\r\n date.setMilliseconds((milliseconds==null) ? 1 : milliseconds);\r\n return date;\r\n }\r\n\r\n\r\n static convertDateToNumbers(date) {\r\n // month = 1 to 12\r\n return {\r\n year: date.getFullYear(),\r\n month: date.getMonth() + 1,\r\n day: date.getDate(),\r\n hours: date.getHours(),\r\n minutes: date.getMinutes(),\r\n seconds: date.getSeconds(),\r\n milliseconds: date.getMilliseconds(),\r\n };\r\n }\r\n\r\n get() {\r\n return LocalDate.convertDateToNumbers(this.date);\r\n }\r\n\r\n toMsgFormat() {\r\n return this.toYYYYMMDD();\r\n }\r\n toYYYYMMDD() {\r\n // yyyy-mm-dd\r\n\r\n let yyyy = this.date.getFullYear();\r\n let mm = (this.date.getMonth() + 1).toString().padStart(2, '0');\r\n let dd = (this.date.getDate()).toString().padStart(2, '0');\r\n let str = `${yyyy}-${mm}-${dd}`;\r\n // console.warn(`date=${str}=${this.toDisplayFormat()}`);\r\n return str;\r\n }\r\n toDisplayDateFormat() {\r\n return this.date.toLocaleDateString(\"en-US\", {\r\n weekday: 'short',\r\n year: 'numeric',\r\n month: 'short',\r\n day: 'numeric',\r\n });\r\n }\r\n toDisplayFormat() {\r\n return this.date.toString();\r\n }\r\n toDate() {\r\n return this.date;\r\n }\r\n clearTime() {\r\n this.date.setHours(0, 0, 0, 1);\r\n }\r\n\r\n}\r\n\r\n","import { Component, ElementRef, HostBinding, Inject, Input, OnInit, ViewChild } from '@angular/core';\nimport { FormControl, FormGroup, NgForm, ValidatorFn, Validators } from '@angular/forms';\nimport { MatDialogRef, MAT_DIALOG_DATA, MatDialog, MatDialogConfig } from '@angular/material/dialog';\n\nimport { DateType, default as Calendar, IEventScheduleObject, ISchedule, TZDate } from 'tui-calendar';\n\nimport { LocalDate } from '../local-date.js';\nimport { CalendarEditorOptions } from '../calendar-editor-options';\n\n\n@Component({\n selector: 'ngx-mat-tui-calendar-editor-dialog',\n templateUrl: './ngx-mat-tui-calendar-editor-dialog.component.html',\n styleUrls: ['./ngx-mat-tui-calendar-editor-dialog.component.scss']\n})\nexport class NgxMatTuiCalendarEditorDialogComponent implements OnInit {\n private id: string;\n titleStr: string = '';\n locationStr: string = '';\n closed: boolean = false;\n eventForm: FormGroup;\n date: Date;\n startDate: Date;\n endDate: Date;\n startTime: Date;\n endTime: Date;\n isAllDay: boolean = false;\n color: string;\n themeClass: string = '';\n\n constructor(\n @Inject(MAT_DIALOG_DATA) public data: CalendarEditorOptions,\n public dialogRef: MatDialogRef<NgxMatTuiCalendarEditorDialogComponent>,\n ) {\n // console.log('NgxMatTuiCalendarEditorDialogComponent.constructor: schedule:', schedule);\n\n // console.log('NgxMatTuiCalendarEditorDialogComponent.constructor: data:', data);\n this.color = data.darkMode ? 'accent' : 'primary';\n\n const schedule = data.schedule;\n if (schedule == null) {\n this.id = null;\n } else {\n if (schedule.id) {\n this.id = schedule.id.toString();\n }\n }\n this.titleStr = (schedule.title) ? schedule.title.toString() : '';\n this.locationStr = (schedule.location) ? schedule.location.toString() : '';\n\n\n this.isAllDay = (schedule.isAllDay == true);\n\n this.startDate = LocalDate.convertToJsDate(schedule.start) as Date;\n this.endDate = LocalDate.convertToJsDate(schedule.end) as Date;\n\n this.startTime = new Date(this.startDate);\n this.endTime = new Date(this.endDate);\n this.startDate.setHours(0, 0, 0, 1);\n this.endDate.setHours(0, 0, 0, 1);\n\n this.eventForm = new FormGroup(\n {\n title: new FormControl(this.titleStr),\n location: new FormControl(this.locationStr),\n scheduleType: new FormControl((schedule.isAllDay == true) ? \"all-day\" : \"time-slot\"),\n start: new FormControl(this.startDate),\n end: new FormControl(this.endDate),\n date: new FormControl(this.startDate),\n time1: new FormControl(this.startTime),\n time2: new FormControl(this.endTime, [Validators.required]),\n },\n this.getDateValidator(),\n );\n\n }\n\n getDateValidator() {\n const validator: ValidatorFn = (group: FormGroup): { [key: string]: any } => {\n const scheduleType = group.get(\"scheduleType\").value;\n if (group.get(\"scheduleType\").value == \"time-slot\") {\n let time1 = group.get(\"time1\").value;\n let time2 = group.get(\"time2\").value;\n if (time1 >= time2) {\n return {\n dates: \"End time must be later than the start time\"\n };\n }\n }\n return {};\n };\n return validator;\n }\n\n\n ngOnInit(): void {\n // console.dir(`Dialog config: ${this.dialogConfig}`);\n // let start: Date = (LocalDate.convertToJsDate(this.schedule.start)).toDate();\n // let end: Date = (LocalDate.convertToJsDate(this.schedule.end)).toDate();\n // this.eventForm.get(\"date\").setValue(start);\n // this.eventForm.get(\"start\").setValue(start);\n // this.eventForm.get(\"end\").setValue(end);\n\n }\n\n\n\n onSave(form: NgForm) {\n // console.log(`onSave form.invalid=${form.invalid}; this.closed=${this.closed} this.titleStr=${this.titleStr}`);\n if (form.invalid || this.closed) return;\n let schedule = this.data.schedule;\n schedule.title = this.eventForm.get(\"title\").value;\n schedule.location = this.eventForm.get(\"location\").value;\n schedule.isAllDay = this.isAllDay;\n schedule.category = this.isAllDay ? 'allday' : 'time'; // CATEGORY MUST BE DEFINED: 'milestone', 'task', allday', 'time'\n if (this.isAllDay) {\n schedule.start = LocalDate.convertToJsDate(this.eventForm.get(\"start\").value) as Date;\n schedule.start.setHours(0, 0, 0, 1);\n schedule.end = LocalDate.convertToJsDate(this.eventForm.get(\"end\").value) as Date;\n schedule.end.setHours(0, 0, 0, 1);\n } else {\n this.startTime = LocalDate.convertToJsDate(this.eventForm.get(\"time1\").value) as Date;\n schedule.start = LocalDate.convertToJsDate(this.eventForm.get(\"date\").value) as Date;\n schedule.start.setHours(\n this.startTime.getHours(),\n this.startTime.getMinutes(),\n this.startTime.getSeconds(),\n this.startTime.getMilliseconds(),\n );\n this.endTime = LocalDate.convertToJsDate(this.eventForm.get(\"time2\").value) as Date;\n schedule.end = LocalDate.convertToJsDate(this.eventForm.get(\"date\").value) as Date;\n schedule.end.setHours(\n this.endTime.getHours(),\n this.endTime.getMinutes(),\n this.endTime.getSeconds(),\n this.endTime.getMilliseconds(),\n );\n }\n // console.log(`pop-up-event-editor.component.ts: user clicked SAVE event=${schedule}`);\n // this.eventOutput.emit(schedule);\n form.resetForm();\n this.closeMe(schedule);\n }\n\n onCancel() {\n // this.cancelled.emit();\n // console.log('openPopupScheduleEditor: user clicked CANCEL');\n this.closeMe(null);\n }\n\n onDelete() {\n // this.cancelled.emit();\n // console.log('openPopupScheduleEditor: user clicked DELETE');\n this.closeMe(this.data.schedule, true);\n }\n\n\n closeMe(schedule: ISchedule, performDelete?: boolean) {\n // console.log('closeMe: The dialog is closing', schedule);\n this.closed = true;\n this.dialogRef.close({ schedule, performDelete: (performDelete == true) });\n }\n\n log(str) {\n // console.warn(str);\n }\n\n onUseAllDay() {\n this.isAllDay = true;\n }\n onUseTimeSlot() {\n this.isAllDay = false;\n }\n\n}\n","<div [className]=\"data.themeClass + ' ' + 'event-editor'\">\n <form id=\"my-form\" [formGroup]=\"eventForm\" class=\"event-editor-form\" (submit)=\"onSave(postForm);\" #postForm=\"ngForm\">\n <div class=\"grid-wrapper\">\n <div class=\"grid-title\">\n <mat-form-field [color]=\"color\" class=\"editor-title\">\n <input matInput type=\"text\" name=\"title\" formControlName=\"title\" placeholder=\"Title\">\n <!-- <mat-error style=\"height: fit-content;\" *ngIf=\"title.invalid\">Please enter a title (of 1 characters or more)\n for\n your event.</mat-error> -->\n </mat-form-field>\n </div>\n <div class=\"grid-location\">\n <mat-form-field [color]=\"color\" class=\"editor-location\">\n <input matInput type=\"location\" name=\"location\" formControlName=\"location\" placeholder=\"Location\">\n </mat-form-field>\n </div>\n <div class=\"grid-radios\" style=\"display: flex;\">\n <mat-radio-group [color]=\"color\" aria-label=\"Select an option\" style=\"margin-bottom: 1em;\" name=\"scheduleType\"\n formControlName=\"scheduleType\" required>\n <mat-radio-button value=\"all-day\" (change)=\"onUseAllDay()\" id=\"button-all-day\" [color]=\"color\" class=\"radio-button\">All Day\n </mat-radio-button>\n <mat-radio-button value=\"time-slot\" (change)=\"onUseTimeSlot()\" id=\"button-time-slot\" [color]=\"color\" class=\"radio-button\">Time Slot\n </mat-radio-button>\n </mat-radio-group>\n </div>\n <div class=\"grid-date\">\n <mat-form-field *ngIf=\"isAllDay\" [color]=\"color\" class=\"date-range-form-field\" appearance=\"fill\">\n <mat-label [color]=\"color\">Pick a Date Range</mat-label>\n <mat-date-range-input [color]=\"color\" [panelClass]=\"data.themeClass\" [rangePicker]=\"rangePicker\" #dateRangeInput>\n <input matStartDate placeholder=\"Start date\" formControlName=\"start\" name=\"start\">\n <input matEndDate placeholder=\"End date\" formControlName=\"end\" name=\"end\">\n </mat-date-range-input>\n <mat-datepicker-toggle [color]=\"color\" [panelClass]=\"data.themeClass\" matSuffix [for]=\"rangePicker\"></mat-datepicker-toggle>\n <mat-date-range-picker [color]=\"color\" class=\"picker\" #rangePicker></mat-date-range-picker>\n </mat-form-field>\n <mat-form-field [color]=\"color\" *ngIf=\"!isAllDay\" class=\"date-form-field\" appearance=\"fill\">\n <mat-label>Choose a date</mat-label>\n <input matInput [matDatepicker]=\"dpicker\" formControlName=\"date\" name=\"date\">\n <mat-datepicker-toggle [color]=\"color\" matSuffix [for]=\"dpicker\"></mat-datepicker-toggle>\n <mat-datepicker [color]=\"color\" #dpicker></mat-datepicker>\n </mat-form-field>\n </div>\n <div *ngIf=\"!isAllDay\" class=\"grid-time time-slot\">\n <mat-form-field [color]=\"color\" class=\"form-field-time\" appearance=\"fill\">\n <mat-label>Start</mat-label>\n <input matTimepicker [color]=\"color\" [strict]=\"false\" id=\"timepicker-start\" mode=\"12h\" formControlName=\"time1\" name=\"time1\"\n placeholder=\"Please select time...\">\n </mat-form-field>\n <mat-form-field [color]=\"color\" class=\"form-field-time\" appearance=\"fill\">\n <mat-label>End</mat-label>\n <input matTimepicker [color]=\"color\" [strict]=\"false\" id=\"timepicker-end\" mode=\"12h\" formControlName=\"time2\" name=\"time2\"\n placeholder=\"Please select time...\">\n </mat-form-field>\n </div>\n <div *ngIf=\"!isAllDay\" class=\"grid-error\">\n <label *ngIf=\"eventForm.invalid\">{{ eventForm.errors?.dates }}</label>\n </div>\n </div>\n <mat-divider></mat-divider>\n <div class=\"editor-footer\">\n <button mat-raised-button [color]=\"color\" id=\"editor-submit-button\" type=\"submit\" style=\"margin-right: 4px;\">SAVE</button>\n <button mat-raised-button id=\"editor-delete-button\" type=\"button\" (click)=\"onDelete()\" *ngIf=\"(data.schedule.id!=null)\">DELETE</button>\n <button mat-raised-button id=\"editor-cancel-button\" type=\"button\" (click)=\"onCancel()\">CANCEL</button>\n </div>\n </form>\n </div>","import { Component, OnInit, ViewEncapsulation } from '@angular/core';\n\n@Component({\n selector: 'ngx-mat-tui-calendar-wrapper',\n templateUrl: './ngx-mat-tui-calendar-wrapper.component.html',\n styleUrls: ['./ngx-mat-tui-calendar-wrapper.component.scss'],\n encapsulation: ViewEncapsulation.None, // this is needed so that our css rules override those in tui-calendar package\n})\nexport class NgxMatTuiCalendarWrapperComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","<div id=\"calendar\"></div> <!-- TUI Calendar gets instatited here -->\n","import { Component, ViewChild, OnInit, Output, EventEmitter, Input, OnChanges, SimpleChanges, OnDestroy, ViewEncapsulation } from '@angular/core';\r\nimport { MatDialog, MatDialogConfig, MatDialogRef } from '@angular/material/dialog';\r\n\r\nimport distinctColors from 'distinct-colors';\r\nimport { Color } from \"chroma-js\";\r\nimport { v4 as uuidv4 } from 'uuid';\r\n\r\nimport {\r\n faCalendarCheck,\r\n faCaretSquareLeft,\r\n faCaretSquareRight,\r\n faTable,\r\n faColumns,\r\n faList,\r\n faListAlt,\r\n faForward,\r\n faFastBackward,\r\n faBackward,\r\n faCaretLeft,\r\n faCaretRight,\r\n} from '@fortawesome/free-solid-svg-icons';\r\nimport {\r\n default as Calendar,\r\n ICalendarInfo,\r\n IEventDateObject,\r\n IEventMoreObject,\r\n IEventObject,\r\n IEventScheduleObject,\r\n IOptions,\r\n ISchedule,\r\n ITheme,\r\n ITimezone,\r\n IWeekOptions,\r\n TEventBeforeCreateSchedule,\r\n TZDate,\r\n} from 'tui-calendar';\r\n\r\n// project \r\nimport { LocalDate } from './local-date.js';\r\nimport { NgxMatTuiCalendarEditorDialogComponent } from './ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\r\nimport { CalendarOptions } from './calendar-options';\r\nimport { CalendarEditorOptions } from './calendar-editor-options';\r\n\r\n@Component({\r\n selector: 'ngx-mat-tui-calendar',\r\n templateUrl: './ngx-mat-tui-calendar.component.html',\r\n styleUrls: [\r\n './ngx-mat-tui-calendar.component.scss'\r\n ],\r\n})\r\nexport class NgxMatTuiCalendarComponent implements OnInit, OnChanges, OnDestroy {\r\n iconToday = faCalendarCheck;\r\n // iconPrev = faCaretSquareLeft;\r\n // iconNext = faCaretSquareRight;\r\n iconPrev = faCaretLeft;\r\n iconNext = faCaretRight;\r\n iconLongPrev = faBackward;\r\n iconLongNext = faForward;\r\n iconByMonth = faTable;\r\n iconByWeek = faColumns;\r\n iconByDay = faListAlt;\r\n\r\n calendar: Calendar; // the TUI Calendar Object\r\n calendarId: string;\r\n colors: Color[];\r\n colorIndex: number;\r\n @Output() userCreatedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Output() userUpdatedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Output() userDeletedSchedule: EventEmitter<ISchedule> = new EventEmitter();\r\n @Input() options: CalendarOptions;\r\n appliedOptions: CalendarOptions; // this is needed for when options is not connected\r\n\r\n constructor(public dialog: MatDialog) {\r\n // we slice off the first color since it is gray\r\n this.colors = distinctColors({ lightMin: 70, count: 15 }).slice(1);\r\n this.colorIndex = 0;\r\n this.calendarId = uuidv4();\r\n\r\n this.appliedOptions = this.getDefaultOptions();\r\n }\r\n\r\n ngOnInit() {\r\n // console.warn(`calendar.component.ts: ngOnit`)\r\n this.createTUICalendar();\r\n this.bindCallbacks();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.warn(changes);\r\n if (this.calendar) {\r\n\r\n if (changes.options) {\r\n // console.warn(`change.option:`, changes.options);\r\n let options = changes.options.currentValue;\r\n this.setOptions(options);\r\n }\r\n }\r\n\r\n }\r\n\r\n ngOnDestroy() {\r\n this.calendar.destroy();\r\n }\r\n\r\n onCalendarLongPrev() {\r\n let date: Date = (this.calendar.getDate() as TZDate).toDate();\r\n let days = 0;\r\n let months = 0;\r\n let years = 0;\r\n switch (this.calendar.getViewName()) {\r\n case 'day':\r\n days = -7;\r\n break;\r\n case 'week':\r\n days = -28;\r\n break;\r\n case 'month':\r\n years = -1;\r\n break;\r\n }\r\n date.setFullYear(date.getFullYear() + years);\r\n date.setMonth(date.getMonth() + months); // date class does the modular arithmetic\r\n date.setDate(date.getDate() + days); // date class does the modular arithmetic\r\n this.calendar.setDate(date);\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n onCalendarPrev() {\r\n this.calendar.prev();\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n onCalendarToday() {\r\n this.calendar.today();\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n onCalendarNext() {\r\n this.calendar.next();\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n onCalendarLongNext() {\r\n let date: Date = (this.calendar.getDate() as TZDate).toDate();\r\n let days = 0;\r\n let months = 0;\r\n let years = 0;\r\n switch (this.calendar.getViewName()) {\r\n case 'day':\r\n days = 7;\r\n break;\r\n case 'week':\r\n days = 28;\r\n break;\r\n case 'month':\r\n years = 1;\r\n break;\r\n }\r\n date.setFullYear(date.getFullYear() + years);\r\n date.setMonth(date.getMonth() + months); // date class does the modular arithmetic\r\n date.setDate(date.getDate() + days); // date class does the modular arithmetic\r\n this.calendar.setDate(date);\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n\r\n onMonthView() {\r\n this.calendar.changeView('month');\r\n }\r\n\r\n onWeekView() {\r\n console.log(`onWeekView`)\r\n this.calendar.changeView('week');\r\n this.calendar.render(true); // <-- so that selection is cleared\r\n }\r\n\r\n onDayView() {\r\n this.calendar.changeView('day');\r\n }\r\n\r\n\r\n getDate() {\r\n let date = this.calendar.getDate();\r\n let str = date.toDate().toLocaleDateString(\"en-US\", {\r\n year: 'numeric',\r\n month: 'short',\r\n });\r\n return str;\r\n }\r\n\r\n createTUICalendar() {\r\n let ioptions = this.preprocessIOptions(null);\r\n // console.warn(`calendar.component.ts: createTUICalendar: ioptions:`, ioptions);\r\n this.calendar = new Calendar('#calendar', ioptions);\r\n // console.warn(`calendar.component.ts: createTUICalendar: this.calendar:`, this.calendar);\r\n this.calendar.toggleScheduleView(true);\r\n\r\n }\r\n\r\n\r\n bindCallbacks() {\r\n this.bindAfterRenderSchedule();\r\n this.bindClickTimezonesCollapseBtn();\r\n this.bindClickDayname();\r\n this.bindClickMore();\r\n this.bindClickSchedule();\r\n this.bindBeforeCreateSchedule();\r\n this.bindBeforeUpdateSchedule();\r\n this.bindBeforeDeleteSchedule();\r\n }\r\n\r\n bindAfterRenderSchedule() {\r\n let that = this;\r\n this.calendar.on('afterRenderSchedule', function (event: { schedule: ISchedule }) {\r\n // console.warn(`afterRenderSchedule`, event);\r\n });\r\n }\r\n\r\n bindClickTimezonesCollapseBtn() {\r\n let that = this;\r\n this.calendar.on('clickTimezonesCollapseBtn', function (timezonesCollapsed: boolean) {\r\n // console.warn(`clickTimezonesCollapseBtn`, timezonesCollapsed);\r\n });\r\n }\r\n\r\n\r\n bindClickDayname() {\r\n let that = this;\r\n this.calendar.on('clickDayname', function (event: IEventDateObject) {\r\n // console.warn(`clickDayname`, event);\r\n });\r\n }\r\n\r\n bindClickMore() {\r\n let that = this;\r\n this.calendar.on('clickMore', function (event: IEventMoreObject) {\r\n // console.warn(`clickMore`, event);\r\n });\r\n }\r\n\r\n bindClickSchedule() {\r\n // only works if useDetailPopup: false,\r\n let that = this;\r\n this.calendar.on('clickSchedule', function (event: IEventScheduleObject) {\r\n // console.warn(`clickSchedule`, event);\r\n let schedule: ISchedule = { ...event.schedule };\r\n schedule.start = (new LocalDate(schedule.start)).toDate();\r\n schedule.end = (new LocalDate(schedule.end)).toDate();\r\n that.openPopupScheduleEditor(schedule);\r\n });\r\n }\r\n\r\n bindBeforeCreateSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeCreateSchedule', function (event: TEventBeforeCreateSchedule) {\r\n // console.log(`beforeCreateSchedule`, event);\r\n let start: Date = (new LocalDate(event.start)).toDate();\r\n start.setHours(9);\r\n let end: Date = (new LocalDate(event.end)).toDate();\r\n end.setHours(10);\r\n that.openPopupScheduleEditor({\r\n title: '',\r\n start: start,\r\n end: end,\r\n id: null,\r\n } as ISchedule);\r\n });\r\n }\r\n\r\n bindBeforeUpdateSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeUpdateSchedule', function (event: IEventObject) {\r\n // console.log(`beforeUpdateSchedule`, event);\r\n that.updateScheduleAndNotifyParent(event);\r\n });\r\n }\r\n\r\n bindBeforeDeleteSchedule() {\r\n let that = this;\r\n this.calendar.on('beforeDeleteSchedule', function (event: IEventScheduleObject) {\r\n // console.log(`beforeDeleteSchedule`, event.schedule);\r\n // console.log(`beforeDeleteSchedule`, event.schedule);\r\n that.deleteScheduleAndNotifyParent({ id: event.schedule.id, calendarId: event.schedule.calendarId });\r\n });\r\n }\r\n\r\n nextColor() {\r\n let color = this.colors[this.colorIndex++].hex();\r\n if (this.colorIndex >= this.colors.length) this.colorIndex = 0;\r\n return color;\r\n }\r\n\r\n createScheduleAndNotifyParent(args: ISchedule) {\r\n let schedule = this.createSchedule(args);\r\n this.userCreatedSchedule.emit(schedule);\r\n return schedule;\r\n }\r\n\r\n createSchedules(schedules: ISchedule[]) {\r\n let newSchedules = [];\r\n for (let schedule of schedules) {\r\n newSchedules.push(this.createSchedule(schedule));\r\n }\r\n return newSchedules;\r\n }\r\n\r\n createSchedule(args: ISchedule): ISchedule {\r\n // if (form.invalid) return;\r\n\r\n // create a color\r\n let color = this.nextColor();\r\n // console.log(color);\r\n\r\n // create an id\r\n let id = (args.id == null) ? '' : args.id.toString();\r\n if (id.length === 0) {\r\n id = uuidv4();\r\n }\r\n\r\n let start: Date = LocalDate.convertToJsDate(args.start);\r\n let end: Date = LocalDate.convertToJsDate(args.end);\r\n\r\n let schedule: ISchedule = {\r\n id,\r\n calendarId: (args.calendarId == null) ? this.calendarId : args.calendarId,\r\n title: args.title,\r\n start: start,\r\n end: end,\r\n category: args.category,\r\n isAllDay: args.isAllDay,\r\n dueDateClass: '',\r\n bgColor: color,\r\n } as ISchedule\r\n // console.log(`event-calendar.component.ts: createEvent:`, schedule);\r\n this.calendar.createSchedules([schedule]);\r\n return this.calendar.getSchedule(schedule.id, schedule.calendarId);\r\n }\r\n\r\n updateScheduleAndNotifyParent(args: ISchedule) {\r\n let schedule = this.updateSchedule(args);\r\n this.userUpdatedSchedule.emit(schedule);\r\n return schedule;\r\n }\r\n\r\n updateSchedule(schedule: ISchedule) {\r\n // console.log(`event-calendar.component.ts: updateSchedule:`, schedule);\r\n let calendarId = (schedule.calendarId == null) ? this.calendarId : schedule.calendarId;\r\n this.calendar.updateSchedule(schedule.id, calendarId, schedule, false);\r\n return this.calendar.getSchedule(schedule.id, calendarId);\r\n }\r\n\r\n getSchedule(args: { id: string, calendarId: string }) {\r\n // console.log(`event-calendar.component.ts: getSchedule:`, schedule);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n return this.calendar.getSchedule(args.id, calendarId);\r\n }\r\n\r\n deleteScheduleAndNotifyParent(args: { id: string, calendarId: string }) {\r\n this.deleteSchedule(args);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n this.userDeletedSchedule.emit({ id: args.id, calendarId });\r\n }\r\n\r\n deleteSchedule(args: { id: string, calendarId: string }) {\r\n // console.log(`event-calendar.component.ts: deleteSchedule:`, schedule);\r\n let calendarId = (args.calendarId == null) ? this.calendarId : args.calendarId;\r\n this.calendar.deleteSchedule(args.id, calendarId, false);\r\n }\r\n\r\n deleteAllSchedules() {\r\n this.calendar.clear();\r\n }\r\n\r\n openPopupScheduleEditor(schedule: ISchedule) {\r\n // console.log('openPopupScheduleEditor: calevent:', schedule);\r\n const dialogConfig = new MatDialogConfig();\r\n if (this.appliedOptions.themeClass) {\r\n dialogConfig.panelClass = this.appliedOptions.themeClass;\r\n }\r\n // console.warn(`options: `, this.appliedOptions);\r\n dialogConfig.data = { schedule, darkMode: this.appliedOptions.darkMode, themeClass: this.appliedOptions.themeClass } as CalendarEditorOptions;\r\n dialogConfig.autoFocus = true;\r\n const dialogRef = this.dialog.open(NgxMatTuiCalendarEditorDialogComponent, dialogConfig);\r\n // const dialogRef = this.dialog.open(NgxMatTuiCalendarScheduleEditorDialogComponent, {\r\n // data: schedule,\r\n // });\r\n dialogRef.afterClosed().subscribe((result: { schedule: ISchedule, performDelete: boolean }) => {\r\n // console.log('openPopupScheduleEditor: The dialog was closed', result);\r\n this.calendar.render(true); // <-- so that selection is cleared\r\n if (result && result.schedule) {\r\n let schedule = result.schedule;\r\n if (result.performDelete == true) {\r\n // delete\r\n // console.log(`openPopupScheduleEditor:afterCLosed: deleteSchedule`);\r\n this.deleteScheduleAndNotifyParent({ id: schedule.id, calendarId: schedule.calendarId });\r\n } else if (schedule.id == null) {\r\n // console.log(`openPopupScheduleEditor:afterCLosed: addSchedule`);\r\n this.createScheduleAndNotifyParent(schedule);\r\n } else {\r\n // console.log(`openPopupScheduleEditor:afterCLosed: updateSchedule`);\r\n this.updateScheduleAndNotifyParent(schedule);\r\n }\r\n }\r\n });\r\n }\r\n\r\n\r\n setOptions(options: CalendarOptions) {\r\n if (options == null) {\r\n options = this.getDefaultOptions();\r\n }\r\n options.ioptions = this.setIOptions(options.ioptions);\r\n this.appliedOptions = {...options};\r\n }\r\n\r\n setIOptions(ioptionsIn: IOptions) {\r\n let ioptions = this.preprocessIOptions(ioptionsIn);\r\n this.calendar.setOptions(ioptions);\r\n this.calendar.setTheme(ioptions.theme);\r\n this.calendar.render(true);\r\n this.calendar.toggleScheduleView(true);\r\n return ioptions;\r\n }\r\n\r\n preprocessIOptions(ioptions: IOptions): IOptions {\r\n let defs: IOptions = this.getDefaultIOptions();\r\n if (ioptions == null) {\r\n ioptions = defs;\r\n } else {\r\n ioptions = { ...defs, ...ioptions };\r\n }\r\n ioptions.useCreationPopup = false;\r\n ioptions.useDetailPopup = false;\r\n if (!ioptions.theme) {\r\n ioptions.theme = this.getDefaultTheme();\r\n }\r\n return ioptions;\r\n }\r\n\r\n\r\n getDefaultOptions(): CalendarOptions {\r\n return {\r\n darkMode: false,\r\n themeClass: null,\r\n ioptions: this.getDefaultIOptions(),\r\n } as CalendarOptions;\r\n }\r\n\r\n getDefaultIOptions(): IOptions {\r\n return {\r\n defaultView: 'month',\r\n taskView: true,\r\n useCreationPopup: false,\r\n useDetailPopup: false,\r\n theme: this.getDefaultTheme(),\r\n template: {\r\n monthDayname: function (dayname) {\r\n return '<span class=\"calendar-week-dayname-name\">' + dayname.label + '</span>';\r\n }\r\n },\r\n week: {\r\n // startDayOfWeek: undefined,\r\n // daynames: undefined,\r\n narrowWeekend: false,\r\n // workweek: true,\r\n showTimezoneCollapseButton: true,\r\n timezonesCollapsed: true,\r\n hourStart: 7,\r\n hourEnd: 20,\r\n } as IWeekOptions,\r\n } as IOptions;\r\n\r\n }\r\n\r\n getColor(name: string): string {\r\n const el = document.getElementById(`theme-${name}`);\r\n if (el) {\r\n const style = window.getComputedStyle(el, null);\r\n // console.warn(`theme-${name} color:`, style.color);\r\n return style.color;\r\n }\r\n return '';\r\n }\r\n\r\n getDefaultTheme(): ITheme {\r\n function adjustHexOpacity(color, opacity) {\r\n const r = parseInt(color.slice(1, 3), 16);\r\n const g = parseInt(color.slice(3, 5), 16);\r\n const b = parseInt(color.slice(5, 7), 16);\r\n\r\n return 'rgba(' + r + ', ' + g + ', ' + b + ', ' + opacity + ')';\r\n }\r\n\r\n // default keys and styles\r\n // TODO: apply Material Design Theme \r\n let background = this.getColor(\"background\");\r\n let border = this.getColor(\"divider\");\r\n let borderLight = this.getColor(\"divider-light\");\r\n let shadow = this.getColor(\"divider\");\r\n let highlight = this.getColor(\"highlight\");\r\n let primary = this.getColor(\"primary\");\r\n let warn = this.getColor(\"warn\");\r\n let text = this.getColor(\"foreground\");\r\n let primaryShaded = this.getColor(\"primary-shaded\");\r\n\r\n // tui-full-calendar-weekday-schedule-title\r\n //calendar-week-dayname-name\r\n return {\r\n 'common.border': `1px solid ${border}`,\r\n 'common.backgroundColor': background,\r\n 'common.holiday.color': warn,\r\n 'common.saturday.color': text,\r\n 'common.dayname.color': text,\r\n 'common.today.color': '#0f0',\r\n\r\n // creation guide style\r\n 'common.creationGuide.backgroundColor': primaryShaded,\r\n 'common.creationGuide.border': `1px solid ${highlight}`,\r\n\r\n // month header 'dayname'\r\n 'month.dayname.height': '31px',\r\n 'month.dayname.borderLeft': `1px solid ${border}`,\r\n 'month.dayname.paddingLeft': '10px',\r\n 'month.dayname.paddingRight': '10px',\r\n 'month.dayname.backgroundColor': 'inherit',\r\n 'month.dayname.fontSize': '12px',\r\n 'month.dayname.fontWeight': 'normal',\r\n 'month.dayname.textAlign': 'left',\r\n\r\n // month day grid cell 'day'\r\n 'month.holidayExceptThisMonth.color': 'rgba(255, 64, 64, 0.4)',\r\n 'month.dayExceptThisMonth.color': 'rgba(51, 51, 51, 0.4)',\r\n 'month.weekend.backgroundColor': 'inherit',\r\n 'month.day.fontSize': '14px',\r\n 'month.schedule.color': highlight,\r\n\r\n // month schedule style\r\n 'month.schedule.borderRadius': '2px',\r\n 'month.schedule.height': '24px',\r\n 'month.schedule.marginTop': '2px',\r\n 'month.schedule.marginLeft': '8px',\r\n 'month.schedule.marginRight': '8px',\r\n\r\n // month more view\r\n 'month.moreView.border': `1px solid ${border}`,\r\n 'month.moreView.boxShadow': `0 2px 6px 0 ${shadow}`,\r\n 'month.moreView.backgroundColor': background,\r\n 'month.moreView.paddingBottom': '17px',\r\n 'month.moreViewTitle.height': '44px',\r\n 'month.moreViewTitle.marginBottom': '12px',\r\n 'month.moreViewTitle.backgroundColor': 'inherit',\r\n 'month.moreViewTitle.borderBottom': 'none',\r\n 'month.moreViewTitle.padding': '12px 17px 0 17px',\r\n 'month.moreViewList.padding': '0 17px',\r\n\r\n // week header 'dayname'\r\n 'week.dayname.height': '42px',\r\n 'week.dayname.borderTop': `1px solid ${border}`,\r\n 'week.dayname.borderBottom': `1px solid ${border}`,\r\n 'week.dayname.borderLeft': 'inherit',\r\n 'week.dayname.paddingLeft': '0',\r\n 'week.dayname.backgroundColor': 'inherit',\r\n 'week.dayname.textAlign': 'left',\r\n 'week.today.color': text,\r\n 'week.pastDay.color': borderLight,\r\n\r\n // week vertical panel 'vpanel'\r\n 'week.vpanelSplitter.border': `1px solid ${border}`,\r\n 'week.vpanelSplitter.height': '3px',\r\n\r\n // week daygrid 'daygrid'\r\n 'week.daygrid.borderRight': `1px solid ${border}`,\r\n 'week.daygrid.backgroundColor': background,\r\n\r\n 'week.daygridLeft.width': '72px',\r\n 'week.daygridLeft.backgroundColor': background,\r\n 'week.daygridLeft.paddingRight': '8px',\r\n 'week.daygridLeft.borderRight': `1px solid ${border}`,\r\n\r\n\r\n 'week.today.backgroundColor': primaryShaded,\r\n 'week.weekend.backgroundColor': 'inherit',\r\n\r\n // week timegrid 'timegrid'\r\n 'week.timegridLeft.width': '72px',\r\n 'week.timegridLeft.backgroundColor': 'inherit',\r\n 'week.timegridLeft.borderRight': `1px solid ${border}`,\r\n 'week.timegridLeft.fontSize': '11px',\r\n 'week.timegridLeftTimezoneLabel.height': '40px',\r\n 'week.timegridLeftAdditionalTimezone.backgroundColor': background,\r\n\r\n 'week.timegridOneHour.height': '52px',\r\n 'week.timegridHalfHour.height': '26px',\r\n 'week.timegridHalfHour.borderBottom': 'none',\r\n 'week.timegridHorizontalLine.borderBottom': `1px solid ${border}`,\r\n\r\n 'week.timegrid.paddingRight': '8px',\r\n 'week.timegrid.borderRight': `1px solid ${border}`,\r\n 'week.timegridSchedule.borderRadius': '2px',\r\n 'week.timegridSchedule.paddingLeft': '2px',\r\n\r\n // #515ce6 is a slate blue\r\n\r\n 'week.currentTime.color': highlight,\r\n 'week.currentTime.fontSize': '11px',\r\n 'week.currentTime.fontWeight': 'normal',\r\n\r\n 'week.pastTime.color': borderLight,\r\n 'week.pastTime.fontWeight': 'normal',\r\n\r\n 'week.futureTime.color': border,\r\n 'week.futureTime.fontWeight': 'normal',\r\n\r\n 'week.currentTimeLinePast.border': `1px dashed ${highlight}`,\r\n 'week.currentTimeLineBullet.backgroundColor': highlight,\r\n 'week.currentTimeLineToday.border': `1px solid ${highlight}`,\r\n 'week.currentTimeLineFuture.border': 'none',\r\n\r\n // week creation guide style\r\n 'week.creationGuide.color': highlight,\r\n 'week.creationGuide.fontSize': '11px',\r\n 'week.creationGuide.fontWeight': 'bold',\r\n\r\n // week daygrid schedule style\r\n 'week.dayGridSchedule.borderRadius': '2px',\r\n 'week.dayGridSchedule.height': '24px',\r\n 'week.dayGridSchedule.marginTop': '2px',\r\n 'week.dayGridSchedule.marginLeft': '8px',\r\n 'week.dayGridSchedule.marginRight': '8px'\r\n } as ITheme;\r\n }\r\n\r\n}\r\n","<section class=\"content-container\">\r\n <!-- These divs are here so that we can read the theme colors for the tui theme -->\r\n <!-- The outer div gives the default color for when user does not provide an Angular theme -->\r\n <div style=\"color: blue;\"> <div id=\"theme-primary\"></div></div>\r\n <div style=\"color: blue;\"> <div id=\"theme-highlight\"></div></div>\r\n <div style=\"color: blue;\"> <div id=\"theme-accent\"></div></div>\r\n <div style=\"color: red;\"> <div id=\"theme-warn\"></div></div>\r\n <div style=\"color: rgba(0, 0, 255, 0.2);\"> <div id=\"theme-primary-shaded\"></div></div>\r\n <div style=\"color: #3e3e3e;\"> <div id=\"theme-foreground\"></div></div>\r\n <div style=\"color: #e0e0e0;\"> <div id=\"theme-divider\"></div></div>\r\n <div style=\"color: white;\"> <div id=\"theme-background\"></div></div>\r\n \r\n <div class=\"calendar-container\">\r\n <!-- calendar titlebar -->\r\n <mat-toolbar class=\"menu-bar\" color=\"primary\">\r\n <!-- <div style=\"align-self: center;display: flex;\r\n align-items: center;\r\n justify-content: flex-start;\"> -->\r\n <div style=\"display: flex;\r\n flex-direction: row;\r\n justify-content: space-between;\r\n width: 100%; \">\r\n <div class=\"left-div\">\r\n <!-- LEFT -->\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.5rem !important;\" \r\n (click)=\"onCalendarLongPrev()\">\r\n <fa-icon [icon]=\"iconLongPrev\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\" \r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 2rem !important;\" \r\n (click)=\"onCalendarPrev()\">\r\n <fa-icon [icon]=\"iconPrev\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.7rem !important;\" \r\n (click)=\"onCalendarToday()\">\r\n <fa-icon [icon]=\"iconToday\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\" \r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 2rem !important;\" \r\n (click)=\"onCalendarNext()\">\r\n <fa-icon [icon]=\"iconNext\"></fa-icon>\r\n </button>\r\n <button mat-button \r\n class=\"navigation-button\"\r\n style=\"margin-left: 0px; margin-right: 0px; font-size: 1.5rem !important;\" \r\n (click)=\"onCalendarLongNext()\">\r\n <fa-icon [icon]=\"iconLongNext\"></fa-icon>\r\n </button>\r\n </div>\r\n <div class=\"center-div\">\r\n <!-- CENTER -->\r\n <span class=\"event-calendar-title\">{{ getDate() }}</span>\r\n </div>\r\n <div class=\"right-div\">\r\n \r\n <!-- RIGHT -->\r\n <mat-button-toggle-group class=\"view-button\" value=\"month\" id=\"@+id/toggleButton\" layout_width=\"wrap_content\"\r\n layout_height=\"wrap_content\">\r\n <mat-button-toggle mat-button value=\"month\" class=\"view-button\" (click)=\"onMonthView()\">\r\n <fa-icon [icon]=\"iconByMonth\"></fa-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle mat-button value=\"week\" class=\"view-button\" (click)=\"onWeekView()\">\r\n <fa-icon [icon]=\"iconByWeek\"></fa-icon>\r\n </mat-button-toggle>\r\n <mat-button-toggle mat-button value=\"day\" class=\"view-button\" (click)=\"onDayView()\">\r\n <fa-icon [icon]=\"iconByDay\"></fa-icon>\r\n </mat-button-toggle>\r\n </mat-button-toggle-group>\r\n </div>\r\n </div>\r\n </mat-toolbar>\r\n <ngx-mat-tui-calendar-wrapper></ngx-mat-tui-calendar-wrapper>\r\n </div>\r\n \r\n </section>\r\n","\r\n// Angular modules\r\nimport { BrowserAnimationsModule } from '@angular/platform-browser/animations';\r\nimport { BrowserModule } from '@angular/platform-browser';\r\nimport { FlexModule, FlexLayoutModule } from '@angular/flex-layout';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { HttpClientModule } from '@angular/common/http';\r\nimport { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core';\r\nimport { OverlayModule } from '@angular/cdk/overlay';\r\n\r\n// Angular Material Design modules\r\nimport { MatButtonModule } from '@angular/material/button';\r\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\r\nimport { MatCardModule } from '@angular/material/card';\r\nimport { MatDatepickerModule } from '@angular/material/datepicker';\r\nimport { MatDialogModule } from '@angular/material/dialog';\r\nimport { MatDividerModule } from '@angular/material/divider';\r\nimport { MatFormFieldModule } from '@angular/material/form-field';\r\nimport { MatIconModule } from '@angular/material/icon';\r\nimport { MatInputModule } from '@angular/material/input';\r\nimport { MatNativeDateModule } from '@angular/material/core';\r\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\r\nimport { MatRadioModule } from '@angular/material/radio';\r\nimport { MatRippleModule } from '@angular/material/core';\r\nimport { MatToolbarModule } from '@angular/material/toolbar';\r\n\r\n// 3rd party modules\r\nimport { FontAwesomeModule } from '@fortawesome/angular-fontawesome';\r\nimport { MatTimepickerModule } from 'mat-timepicker';\r\n\r\n// collect all of the above modules into an array\r\nconst importedModules = [\r\n BrowserAnimationsModule,\r\n BrowserModule,\r\n FlexLayoutModule,\r\n FlexModule, \r\n FormsModule,\r\n HttpClientModule,\r\n OverlayModule,\r\n ReactiveFormsModule,\r\n\r\n MatButtonModule,\r\n MatButtonToggleModule,\r\n MatCardModule,\r\n MatDatepickerModule,\r\n MatDialogModule,\r\n MatDividerModule,\r\n MatFormFieldModule,\r\n MatIconModule,\r\n MatInputModule,\r\n MatNativeDateModule,\r\n MatRadioModule,\r\n MatRippleModule,\r\n MatSlideToggleModule,\r\n MatToolbarModule,\r\n\r\n FontAwesomeModule,\r\n MatTimepickerModule,\r\n ];\r\n\r\n\r\n// project modules\r\nimport { NgxMatTuiCalendarComponent } from './ngx-mat-tui-calendar.component';\r\nimport { NgxMatTuiCalendarWrapperComponent } from './ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component';\r\nimport { NgxMatTuiCalendarEditorDialogComponent } from './ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\r\n\r\nconst projectModules = [\r\n NgxMatTuiCalendarComponent,\r\n NgxMatTuiCalendarWrapperComponent,\r\n NgxMatTuiCalendarEditorDialogComponent,\r\n];\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n ...projectModules,\r\n ],\r\n imports: [\r\n ...importedModules,\r\n ],\r\n exports: [\r\n ...importedModules,\r\n\r\n ...projectModules,\r\n ],\r\n entryComponents: [\r\n ...projectModules,\r\n ],\r\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\r\n})\r\nexport class NgxMatTuiCalendarModule { }\r\n","import { Injectable } from '@angular/core';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class NgxMatTuiCalendarService {\n\n constructor() { }\n}\n","/*\n * Public API Surface of ngx-mat-tui-calendar\n */\n\nexport * from './lib/ngx-mat-tui-calendar.module';\nexport * from './lib/ngx-mat-tui-calendar.service';\nexport * from './lib/ngx-mat-tui-calendar.component';\nexport * from './lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component';\nexport * from './lib/ngx-mat-tui-calendar-wrapper/ngx-mat-tui-calendar-wrapper.component';\n\nexport * from './lib/calendar-options';\nexport * from './lib/calendar-editor-options';\nexport * from './lib/local-date';\n\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["uuidv4"],"mappings":"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"}
|
package/lib/ngx-mat-tui-calendar-editor-dialog/ngx-mat-tui-calendar-editor-dialog.component.d.ts
CHANGED
@@ -6,7 +6,7 @@ import { CalendarEditorOptions } from '../calendar-editor-options';
|
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export declare class NgxMatTuiCalendarEditorDialogComponent implements OnInit {
|
8
8
|
data: CalendarEditorOptions;
|
9
|
-
|
9
|
+
dialogRef: MatDialogRef<NgxMatTuiCalendarEditorDialogComponent>;
|
10
10
|
private id;
|
11
11
|
titleStr: string;
|
12
12
|
locationStr: string;
|
@@ -5,7 +5,7 @@ import { default as Calendar, IOptions, ISchedule, ITheme } from 'tui-calendar';
|
|
5
5
|
import { CalendarOptions } from './calendar-options';
|
6
6
|
import * as i0 from "@angular/core";
|
7
7
|
export declare class NgxMatTuiCalendarComponent implements OnInit, OnChanges, OnDestroy {
|
8
|
-
|
8
|
+
dialog: MatDialog;
|
9
9
|
iconToday: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
10
10
|
iconPrev: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
11
11
|
iconNext: import("@fortawesome/fontawesome-common-types").IconDefinition;
|
@@ -25,6 +25,6 @@ import * as i23 from "@fortawesome/angular-fontawesome";
|
|
25
25
|
import * as i24 from "mat-timepicker";
|
26
26
|
export declare class NgxMatTuiCalendarModule {
|
27
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<NgxMatTuiCalendarModule, never>;
|
28
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatTuiCalendarModule, [typeof i1.NgxMatTuiCalendarComponent, typeof i2.NgxMatTuiCalendarWrapperComponent, typeof i3.NgxMatTuiCalendarEditorDialogComponent], [typeof i4.BrowserAnimationsModule, typeof i5.BrowserModule, typeof i6.FlexLayoutModule, typeof i6.FlexModule, typeof i7.FormsModule, typeof i8.HttpClientModule, typeof i9.OverlayModule, typeof i7.ReactiveFormsModule, typeof i10.MatButtonModule, typeof i11.MatButtonToggleModule, typeof i12.MatCardModule, typeof i13.MatDatepickerModule, typeof i14.MatDialogModule, typeof i15.MatDividerModule, typeof i16.MatFormFieldModule, typeof i17.MatIconModule, typeof i18.MatInputModule, typeof i19.MatNativeDateModule, typeof i20.MatRadioModule, typeof i19.MatRippleModule, typeof i21.MatSlideToggleModule, typeof i22.MatToolbarModule, typeof i23.FontAwesomeModule, typeof i24.MatTimepickerModule], [typeof i1.NgxMatTuiCalendarComponent, typeof i2.NgxMatTuiCalendarWrapperComponent, typeof i3.NgxMatTuiCalendarEditorDialogComponent]>;
|
28
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<NgxMatTuiCalendarModule, [typeof i1.NgxMatTuiCalendarComponent, typeof i2.NgxMatTuiCalendarWrapperComponent, typeof i3.NgxMatTuiCalendarEditorDialogComponent], [typeof i4.BrowserAnimationsModule, typeof i5.BrowserModule, typeof i6.FlexLayoutModule, typeof i6.FlexModule, typeof i7.FormsModule, typeof i8.HttpClientModule, typeof i9.OverlayModule, typeof i7.ReactiveFormsModule, typeof i10.MatButtonModule, typeof i11.MatButtonToggleModule, typeof i12.MatCardModule, typeof i13.MatDatepickerModule, typeof i14.MatDialogModule, typeof i15.MatDividerModule, typeof i16.MatFormFieldModule, typeof i17.MatIconModule, typeof i18.MatInputModule, typeof i19.MatNativeDateModule, typeof i20.MatRadioModule, typeof i19.MatRippleModule, typeof i21.MatSlideToggleModule, typeof i22.MatToolbarModule, typeof i23.FontAwesomeModule, typeof i24.MatTimepickerModule], [typeof i4.BrowserAnimationsModule, typeof i5.BrowserModule, typeof i6.FlexLayoutModule, typeof i6.FlexModule, typeof i7.FormsModule, typeof i8.HttpClientModule, typeof i9.OverlayModule, typeof i7.ReactiveFormsModule, typeof i10.MatButtonModule, typeof i11.MatButtonToggleModule, typeof i12.MatCardModule, typeof i13.MatDatepickerModule, typeof i14.MatDialogModule, typeof i15.MatDividerModule, typeof i16.MatFormFieldModule, typeof i17.MatIconModule, typeof i18.MatInputModule, typeof i19.MatNativeDateModule, typeof i20.MatRadioModule, typeof i19.MatRippleModule, typeof i21.MatSlideToggleModule, typeof i22.MatToolbarModule, typeof i23.FontAwesomeModule, typeof i24.MatTimepickerModule, typeof i1.NgxMatTuiCalendarComponent, typeof i2.NgxMatTuiCalendarWrapperComponent, typeof i3.NgxMatTuiCalendarEditorDialogComponent]>;
|
29
29
|
static ɵinj: i0.ɵɵInjectorDeclaration<NgxMatTuiCalendarModule>;
|
30
30
|
}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "ngx-mat-tui-calendar",
|
3
|
-
"version": "12.0.
|
3
|
+
"version": "12.0.12",
|
4
4
|
"author": "ron schmitt",
|
5
5
|
"license": "MIT",
|
6
6
|
"description": "Angular Material Design wrapper, supporting theming, for the Toast UI Calendar, suitable for web-based scheduling, events, appointments, and day planner applications.",
|