ngx-mat-tui-calendar 12.0.11 → 12.1.2

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.
@@ -1 +1 @@
1
- {"version":3,"file":"ngx-mat-tui-calendar.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../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\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","\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 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":["FormGroup","FormControl","Validators","MAT_DIALOG_DATA","Component","Inject","ViewEncapsulation","faCalendarCheck","faCaretLeft","faCaretRight","faBackward","faForward","faTable","faColumns","faListAlt","EventEmitter","distinctColors","uuidv4","Calendar","MatDialogConfig","Output","Input","BrowserAnimationsModule","BrowserModule","FlexLayoutModule","FlexModule","FormsModule","HttpClientModule","OverlayModule","ReactiveFormsModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatDatepickerModule","MatDialogModule","MatDividerModule","MatFormFieldModule","MatIconModule","MatInputModule","MatNativeDateModule","MatRadioModule","MatRippleModule","MatSlideToggleModule","MatToolbarModule","FontAwesomeModule","MatTimepickerModule","NgModule","CUSTOM_ELEMENTS_SCHEMA","Injectable"],"mappings":"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"}
1
+ {"version":3,"file":"ngx-mat-tui-calendar.umd.js","sources":["../../../node_modules/tslib/tslib.es6.js","../../../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\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n if (typeof b !== \"function\" && b !== null)\r\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\r\n}) : (function(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n});\r\n\r\nexport function __exportStar(m, o) {\r\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\n/** @deprecated */\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n}\r\n\r\nexport function __spreadArray(to, from, pack) {\r\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\r\n if (ar || !(i in from)) {\r\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\r\n ar[i] = from[i];\r\n }\r\n }\r\n return to.concat(ar || Array.prototype.slice.call(from));\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nvar __setModuleDefault = Object.create ? (function(o, v) {\r\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\r\n}) : function(o, v) {\r\n o[\"default\"] = v;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\r\n __setModuleDefault(result, mod);\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\r\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\r\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\r\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\r\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\r\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\r\n}\r\n","\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, isDevMode } 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 calendarIdDefault: 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.calendarIdDefault = \"main\";\r\n }\r\n\r\n ngOnInit() {\r\n // console.warn(`calendar.component.ts: ngOnit`)\r\n this.setOptions(this.options);\r\n this.createTUICalendar(this.appliedOptions.ioptions);\r\n this.bindCallbacks();\r\n this.calendar.toggleScheduleView(true);\r\n this.calendar.render(true);\r\n this.calendar.toggleScheduleView(true);\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n // console.warn(`ngOnChanges: `, changes);\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 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 this.calendar.render(true); // <-- so that selection is cleared\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 this.calendar.render(true); // <-- so that selection is cleared\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(iopts?: IOptions) {\r\n let ioptions = this.preprocessIOptions(iopts);\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.calendarIdDefault : 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.calendarIdDefault : 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.calendarIdDefault : 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.calendarIdDefault : 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.calendarIdDefault : 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 setDefaultOptions() {\r\n this.setOptions();\r\n }\r\n\r\n setOptions(o?: CalendarOptions) {\r\n\r\n const get = (object, path, defaultValue) => {\r\n let value = path\r\n .split('.')\r\n .reduce((o, p) => o==null ? undefined : o[p], object);\r\n return (value !== undefined) ? value : defaultValue;\r\n }\r\n\r\n let options = {\r\n darkMode: get(o, \"darkMode\", false),\r\n themeClass: get(o, \"themeClass\", null),\r\n ioptions: (o && o.ioptions) ? this.setIOptions(o.ioptions) : this.getDefaultIOptions(),\r\n buttons: {\r\n previous: get(o, \"buttons.previous\", true),\r\n next: get(o, \"buttons.next\", true),\r\n today: get(o, \"buttons.today\", true),\r\n longPrevious: get(o, \"buttons.longPrevious\", true),\r\n longNext: get(o, \"buttons.longNext\", true),\r\n month: get(o, \"buttons.month\", true),\r\n week: get(o, \"buttons.week\", true),\r\n day: get(o, \"buttons.day\", true),\r\n }\r\n } as CalendarOptions;\r\n this.appliedOptions = options;\r\n // console.warn(`setOptions: `, this.appliedOptions);\r\n }\r\n\r\n setIOptions(ioptionsIn: IOptions) {\r\n let ioptions = this.preprocessIOptions(ioptionsIn);\r\n if (this.calendar) {\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 }\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 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 *ngIf=\"appliedOptions.buttons.longPrevious\"\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 *ngIf=\"appliedOptions.buttons.previous\"\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 *ngIf=\"appliedOptions.buttons.today\"\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 *ngIf=\"appliedOptions.buttons.next\"\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 *ngIf=\"appliedOptions.buttons.longNext\"\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 [hidden]=\"!appliedOptions.buttons.month && !appliedOptions.buttons.week && !appliedOptions.buttons.day\"\r\n class=\"view-button\" value=\"month\" id=\"@+id/toggleButton\" layout_width=\"wrap_content\"\r\n layout_height=\"wrap_content\">\r\n <mat-button-toggle *ngIf=\"appliedOptions.buttons.month\" 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 *ngIf=\"appliedOptions.buttons.week\" 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 *ngIf=\"appliedOptions.buttons.day\" 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":["FormGroup","FormControl","Validators","MAT_DIALOG_DATA","Component","Inject","ViewEncapsulation","faCalendarCheck","faCaretLeft","faCaretRight","faBackward","faForward","faTable","faColumns","faListAlt","EventEmitter","distinctColors","Calendar","uuidv4","MatDialogConfig","Output","Input","BrowserAnimationsModule","BrowserModule","FlexLayoutModule","FlexModule","FormsModule","HttpClientModule","OverlayModule","ReactiveFormsModule","MatButtonModule","MatButtonToggleModule","MatCardModule","MatDatepickerModule","MatDialogModule","MatDividerModule","MatFormFieldModule","MatIconModule","MatInputModule","MatNativeDateModule","MatRadioModule","MatRippleModule","MatSlideToggleModule","MatToolbarModule","FontAwesomeModule","MatTimepickerModule","NgModule","CUSTOM_ELEMENTS_SCHEMA","Injectable"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
1
  export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtdHVpLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU9wdGlvbnMgfSBmcm9tICd0dWktY2FsZW5kYXInO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyT3B0aW9ucyB7XHJcbiAgaW9wdGlvbnM6IElPcHRpb25zO1xyXG4gIGRhcmtNb2RlOiBib29sZWFuO1xyXG4gIHRoZW1lQ2xhc3M/OiBzdHJpbmc7XHJcbn1cclxuXHJcblxyXG5cclxuIl19
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItb3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtdHVpLWNhbGVuZGFyL3NyYy9saWIvY2FsZW5kYXItb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSU9wdGlvbnMgfSBmcm9tICd0dWktY2FsZW5kYXInO1xyXG5cclxuXHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIENhbGVuZGFyT3B0aW9ucyB7XHJcbiAgaW9wdGlvbnM6IElPcHRpb25zLFxyXG4gIGRhcmtNb2RlOiBib29sZWFuLFxyXG4gIHRoZW1lQ2xhc3M/OiBzdHJpbmcsXHJcbiAgYnV0dG9uczoge1xyXG4gICAgcHJldmlvdXM/OiBib29sZWFuLFxyXG4gICAgbmV4dD86IGJvb2xlYW4sXHJcbiAgICB0b2RheT86IGJvb2xlYW4sXHJcbiAgICBsb25nUHJldmlvdXM/OiBib29sZWFuLFxyXG4gICAgbG9uZ05leHQ/OiBib29sZWFuLFxyXG4gICAgbW9udGg/OiBib29sZWFuLFxyXG4gICAgd2Vlaz86IGJvb2xlYW4sXHJcbiAgICBkYXk/OiBib29sZWFuLFxyXG4gIH07XHJcbn1cclxuXHJcblxyXG5cclxuIl19
@@ -43,8 +43,9 @@ export class LocalDate {
43
43
  }
44
44
  static convertNumbersToDate({ year, month, day, hours, minutes, seconds, milliseconds }) {
45
45
  // month = 1 to 12
46
- // start with today's *local* date. this si really important
46
+ // start with today's *local* date. this is really important
47
47
  let date = new Date();
48
+ date.setDate(1); // very important
48
49
  date.setFullYear(year);
49
50
  date.setMonth((month == null) ? 0 : month - 1);
50
51
  date.setDate((day == null) ? 1 : day);
@@ -99,4 +100,4 @@ export class LocalDate {
99
100
  this.date.setHours(0, 0, 0, 1);
100
101
  }
101
102
  }
102
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtdHVpLWNhbGVuZGFyL3NyYy9saWIvbG9jYWwtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx5Q0FBeUM7QUFFekMsTUFBTSxPQUFPLFNBQVM7SUFHcEIsa0JBQWtCO0lBQ2xCLFlBQVksSUFBSTtRQUNkLElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDM0IsT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUU7WUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUMvQixPQUFPLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzVDLE9BQU8sR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDekQ7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUc7WUFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUN6RDthQUFNLElBQUksSUFBSSxZQUFZLE1BQU0sRUFBRTtZQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSTtRQUN6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RUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDakMsQ0FBQztDQUVGIiwic291cmNlc0NvbnRlbnQiOlsiXHJcbi8vIGltcG9ydCB7IFRaRGF0ZSB9IGZyb20gJ3R1aS1jYWxlbmRhcic7XHJcblxyXG5leHBvcnQgY2xhc3MgTG9jYWxEYXRlIHtcclxuICBkYXRlOiBEYXRlO1xyXG5cclxuICAvLyBtb250aCA9IDEgdG8gMTJcclxuICBjb25zdHJ1Y3RvcihhcmdzKSB7XHJcbiAgICBsZXQgbnVtYmVycztcclxuICAgIGlmICh0eXBlb2YgYXJncyA9PSAnc3RyaW5nJykge1xyXG4gICAgICBudW1iZXJzID0gTG9jYWxEYXRlLnBhcnNlX1lZWVlNTUREKGFyZ3MpO1xyXG4gICAgfSBlbHNlIGlmIChhcmdzIGluc3RhbmNlb2YgTG9jYWxEYXRlKSB7XHJcbiAgICAgIG51bWJlcnMgPSBhcmdzLmdldCgpO1xyXG4gICAgfSBlbHNlIGlmIChhcmdzIGluc3RhbmNlb2YgRGF0ZSkge1xyXG4gICAgICBudW1iZXJzID0gTG9jYWxEYXRlLmNvbnZlcnREYXRlVG9OdW1iZXJzKGFyZ3MpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgYXJncy50b0RhdGUgPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgbnVtYmVycyA9IExvY2FsRGF0ZS5jb252ZXJ0RGF0ZVRvTnVtYmVycyhhcmdzLnRvRGF0ZSgpKTtcclxuICAgIH0gZWxzZSBpZiAoYXJnc1snX2RhdGUnXSBpbnN0YW5jZW9mIERhdGUgKSB7XHJcbiAgICAgIG51bWJlcnMgPSBMb2NhbERhdGUuY29udmVydERhdGVUb051bWJlcnMoYXJnc1snX2RhdGUnXSk7XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3MgaW5zdGFuY2VvZiBPYmplY3QpIHtcclxuICAgICAgbnVtYmVycyA9IGFyZ3M7XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGUgPSBMb2NhbERhdGUuY29udmVydE51bWJlcnNUb0RhdGUobnVtYmVycyk7XHJcbiAgfVxyXG5cclxuICBzdGF0aWMgY29udmVydFRvSnNEYXRlKGFyZ3MpIHtcclxuICAgIHJldHVybiAobmV3IExvY2FsRGF0ZShhcmdzKSkudG9EYXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcbiAgLy8gcmV0dXJuIG5ldyBMb2NhbERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCkgKyAxLCBkYXRlLmdldERhdGUoKSk7XHJcbiAgc3RhdGljIHBhcnNlX1lZWVlNTUREKHN0cikge1xyXG4gICAgLy8geXl5eS1tbS1kZFxyXG4gICAgY29uc3QgcmVnZXhwID0gL14oXFxkXFxkXFxkXFxkKS0oXFxkXFxkKS0oXFxkXFxkKS9nO1xyXG4gICAgbGV0IG1hdGNoZXMgPSBBcnJheS5mcm9tKFxyXG4gICAgICBzdHIubWF0Y2hBbGwocmVnZXhwKSwgbSA9PiAoe1xyXG4gICAgICAgIHllYXI6IE51bWJlcihtWzFdKSxcclxuICAgICAgICBtb250aDogTnVtYmVyKG1bMl0pLFxyXG4gICAgICAgIGRheTogTnVtYmVyKG1bM10pXHJcbiAgICAgIH0pXHJcbiAgICApO1xyXG4gICAgaWYgKG1hdGNoZXMubGVuZ3RoICE9IDEpIHtcclxuICAgICAgY29uc29sZS5lcnJvcihgZGF0ZUluOiB1bmtub3duIGRhdGUgZm9ybWF0OiAke3N0cn1gKTtcclxuICAgICAgcmV0dXJuIG51bGw7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbWF0Y2hlc1swXTtcclxuICB9XHJcbiAgc3RhdGljIGNvbnZlcnROdW1iZXJzVG9EYXRlKHsgeWVhciwgbW9udGgsIGRheSwgaG91cnMsIG1pbnV0ZXMsIHNlY29uZHMsIG1pbGxpc2Vjb25kcyB9KSB7XHJcbiAgICAvLyBtb250aCA9IDEgdG8gMTJcclxuICAgIC8vIHN0YXJ0IHdpdGggdG9kYXkncyAqbG9jYWwqIGRhdGUuIHRoaXMgc2kgcmVhbGx5IGltcG9ydGFudFxyXG4gICAgbGV0IGRhdGUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgZGF0ZS5zZXRGdWxsWWVhcih5ZWFyKTtcclxuICAgIGRhdGUuc2V0TW9udGgoKG1vbnRoPT1udWxsKSA/IDAgOiBtb250aCAtIDEpO1xyXG4gICAgZGF0ZS5zZXREYXRlKChkYXk9PW51bGwpID8gMSA6IGRheSk7XHJcbiAgICBkYXRlLnNldEhvdXJzKChob3Vycz09bnVsbCkgPyAwIDogaG91cnMpO1xyXG4gICAgZGF0ZS5zZXRNaW51dGVzKChtaW51dGVzPT1udWxsKSA/IDAgOiBtaW51dGVzKTtcclxuICAgIGRhdGUuc2V0U2Vjb25kcygoc2Vjb25kcz09bnVsbCkgPyAwIDogc2Vjb25kcyk7XHJcbiAgICBkYXRlLnNldE1pbGxpc2Vjb25kcygobWlsbGlzZWNvbmRzPT1udWxsKSA/IDEgOiBtaWxsaXNlY29uZHMpO1xyXG4gICAgcmV0dXJuIGRhdGU7XHJcbiAgfVxyXG5cclxuXHJcbiAgc3RhdGljIGNvbnZlcnREYXRlVG9OdW1iZXJzKGRhdGUpIHtcclxuICAgIC8vIG1vbnRoID0gMSB0byAxMlxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgeWVhcjogZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBtb250aDogZGF0ZS5nZXRNb250aCgpICsgMSxcclxuICAgICAgZGF5OiBkYXRlLmdldERhdGUoKSxcclxuICAgICAgaG91cnM6IGRhdGUuZ2V0SG91cnMoKSxcclxuICAgICAgbWludXRlczogZGF0ZS5nZXRNaW51dGVzKCksXHJcbiAgICAgIHNlY29uZHM6IGRhdGUuZ2V0U2Vjb25kcygpLFxyXG4gICAgICBtaWxsaXNlY29uZHM6IGRhdGUuZ2V0TWlsbGlzZWNvbmRzKCksXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgZ2V0KCkge1xyXG4gICAgcmV0dXJuIExvY2FsRGF0ZS5jb252ZXJ0RGF0ZVRvTnVtYmVycyh0aGlzLmRhdGUpO1xyXG4gIH1cclxuXHJcbiAgdG9Nc2dGb3JtYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy50b1lZWVlNTUREKCk7XHJcbiAgfVxyXG4gIHRvWVlZWU1NREQoKSB7XHJcbiAgICAvLyB5eXl5LW1tLWRkXHJcblxyXG4gICAgbGV0IHl5eXkgPSB0aGlzLmRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGxldCBtbSA9ICh0aGlzLmRhdGUuZ2V0TW9udGgoKSArIDEpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCBkZCA9ICh0aGlzLmRhdGUuZ2V0RGF0ZSgpKS50b1N0cmluZygpLnBhZFN0YXJ0KDIsICcwJyk7XHJcbiAgICBsZXQgc3RyID0gYCR7eXl5eX0tJHttbX0tJHtkZH1gO1xyXG4gICAgLy8gY29uc29sZS53YXJuKGBkYXRlPSR7c3RyfT0ke3RoaXMudG9EaXNwbGF5Rm9ybWF0KCl9YCk7XHJcbiAgICByZXR1cm4gc3RyO1xyXG4gIH1cclxuICB0b0Rpc3BsYXlEYXRlRm9ybWF0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZS50b0xvY2FsZURhdGVTdHJpbmcoXCJlbi1VU1wiLCB7XHJcbiAgICAgIHdlZWtkYXk6ICdzaG9ydCcsXHJcbiAgICAgIHllYXI6ICdudW1lcmljJyxcclxuICAgICAgbW9udGg6ICdzaG9ydCcsXHJcbiAgICAgIGRheTogJ251bWVyaWMnLFxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIHRvRGlzcGxheUZvcm1hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGUudG9TdHJpbmcoKTtcclxuICB9XHJcbiAgdG9EYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZTtcclxuICB9XHJcbiAgY2xlYXJUaW1lKCkge1xyXG4gICAgdGhpcy5kYXRlLnNldEhvdXJzKDAsIDAsIDAsIDEpO1xyXG4gIH1cclxuXHJcbn1cclxuXHJcbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWwtZGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1tYXQtdHVpLWNhbGVuZGFyL3NyYy9saWIvbG9jYWwtZGF0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSx5Q0FBeUM7QUFFekMsTUFBTSxPQUFPLFNBQVM7SUFHcEIsa0JBQWtCO0lBQ2xCLFlBQVksSUFBSTtRQUNkLElBQUksT0FBTyxDQUFDO1FBQ1osSUFBSSxPQUFPLElBQUksSUFBSSxRQUFRLEVBQUU7WUFDM0IsT0FBTyxHQUFHLFNBQVMsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDMUM7YUFBTSxJQUFJLElBQUksWUFBWSxTQUFTLEVBQUU7WUFDcEMsT0FBTyxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQztTQUN0QjthQUFNLElBQUksSUFBSSxZQUFZLElBQUksRUFBRTtZQUMvQixPQUFPLEdBQUcsU0FBUyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hEO2FBQU0sSUFBSSxPQUFPLElBQUksQ0FBQyxNQUFNLEtBQUssVUFBVSxFQUFFO1lBQzVDLE9BQU8sR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7U0FDekQ7YUFBTSxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxJQUFJLEVBQUc7WUFDekMsT0FBTyxHQUFHLFNBQVMsQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQztTQUN6RDthQUFNLElBQUksSUFBSSxZQUFZLE1BQU0sRUFBRTtZQUNqQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ2hCO1FBQ0QsSUFBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsb0JBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELE1BQU0sQ0FBQyxlQUFlLENBQUMsSUFBSTtRQUN6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QVM7UUFDUCxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqQyxDQUFDO0NBRUYiLCJzb3VyY2VzQ29udGVudCI6WyJcclxuLy8gaW1wb3J0IHsgVFpEYXRlIH0gZnJvbSAndHVpLWNhbGVuZGFyJztcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2NhbERhdGUge1xyXG4gIGRhdGU6IERhdGU7XHJcblxyXG4gIC8vIG1vbnRoID0gMSB0byAxMlxyXG4gIGNvbnN0cnVjdG9yKGFyZ3MpIHtcclxuICAgIGxldCBudW1iZXJzO1xyXG4gICAgaWYgKHR5cGVvZiBhcmdzID09ICdzdHJpbmcnKSB7XHJcbiAgICAgIG51bWJlcnMgPSBMb2NhbERhdGUucGFyc2VfWVlZWU1NREQoYXJncyk7XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3MgaW5zdGFuY2VvZiBMb2NhbERhdGUpIHtcclxuICAgICAgbnVtYmVycyA9IGFyZ3MuZ2V0KCk7XHJcbiAgICB9IGVsc2UgaWYgKGFyZ3MgaW5zdGFuY2VvZiBEYXRlKSB7XHJcbiAgICAgIG51bWJlcnMgPSBMb2NhbERhdGUuY29udmVydERhdGVUb051bWJlcnMoYXJncyk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiBhcmdzLnRvRGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICBudW1iZXJzID0gTG9jYWxEYXRlLmNvbnZlcnREYXRlVG9OdW1iZXJzKGFyZ3MudG9EYXRlKCkpO1xyXG4gICAgfSBlbHNlIGlmIChhcmdzWydfZGF0ZSddIGluc3RhbmNlb2YgRGF0ZSApIHtcclxuICAgICAgbnVtYmVycyA9IExvY2FsRGF0ZS5jb252ZXJ0RGF0ZVRvTnVtYmVycyhhcmdzWydfZGF0ZSddKTtcclxuICAgIH0gZWxzZSBpZiAoYXJncyBpbnN0YW5jZW9mIE9iamVjdCkge1xyXG4gICAgICBudW1iZXJzID0gYXJncztcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZSA9IExvY2FsRGF0ZS5jb252ZXJ0TnVtYmVyc1RvRGF0ZShudW1iZXJzKTtcclxuICB9XHJcblxyXG4gIHN0YXRpYyBjb252ZXJ0VG9Kc0RhdGUoYXJncykge1xyXG4gICAgcmV0dXJuIChuZXcgTG9jYWxEYXRlKGFyZ3MpKS50b0RhdGUoKTtcclxuICB9XHJcblxyXG5cclxuICAvLyByZXR1cm4gbmV3IExvY2FsRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSArIDEsIGRhdGUuZ2V0RGF0ZSgpKTtcclxuICBzdGF0aWMgcGFyc2VfWVlZWU1NREQoc3RyKSB7XHJcbiAgICAvLyB5eXl5LW1tLWRkXHJcbiAgICBjb25zdCByZWdleHAgPSAvXihcXGRcXGRcXGRcXGQpLShcXGRcXGQpLShcXGRcXGQpL2c7XHJcbiAgICBsZXQgbWF0Y2hlcyA9IEFycmF5LmZyb20oXHJcbiAgICAgIHN0ci5tYXRjaEFsbChyZWdleHApLCBtID0+ICh7XHJcbiAgICAgICAgeWVhcjogTnVtYmVyKG1bMV0pLFxyXG4gICAgICAgIG1vbnRoOiBOdW1iZXIobVsyXSksXHJcbiAgICAgICAgZGF5OiBOdW1iZXIobVszXSlcclxuICAgICAgfSlcclxuICAgICk7XHJcbiAgICBpZiAobWF0Y2hlcy5sZW5ndGggIT0gMSkge1xyXG4gICAgICBjb25zb2xlLmVycm9yKGBkYXRlSW46IHVua25vd24gZGF0ZSBmb3JtYXQ6ICR7c3RyfWApO1xyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICAgIH1cclxuICAgIHJldHVybiBtYXRjaGVzWzBdO1xyXG4gIH1cclxuICBzdGF0aWMgY29udmVydE51bWJlcnNUb0RhdGUoeyB5ZWFyLCBtb250aCwgZGF5LCBob3VycywgbWludXRlcywgc2Vjb25kcywgbWlsbGlzZWNvbmRzIH0pIHtcclxuICAgIC8vIG1vbnRoID0gMSB0byAxMlxyXG4gICAgLy8gc3RhcnQgd2l0aCB0b2RheSdzICpsb2NhbCogZGF0ZS4gdGhpcyBpcyByZWFsbHkgaW1wb3J0YW50XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgICBkYXRlLnNldERhdGUoMSk7IC8vIHZlcnkgaW1wb3J0YW50XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKHllYXIpO1xyXG4gICAgZGF0ZS5zZXRNb250aCgobW9udGg9PW51bGwpID8gMCA6IG1vbnRoIC0gMSk7XHJcbiAgICBkYXRlLnNldERhdGUoKGRheT09bnVsbCkgPyAxIDogZGF5KTtcclxuICAgIGRhdGUuc2V0SG91cnMoKGhvdXJzPT1udWxsKSA/IDAgOiBob3Vycyk7XHJcbiAgICBkYXRlLnNldE1pbnV0ZXMoKG1pbnV0ZXM9PW51bGwpID8gMCA6IG1pbnV0ZXMpO1xyXG4gICAgZGF0ZS5zZXRTZWNvbmRzKChzZWNvbmRzPT1udWxsKSA/IDAgOiBzZWNvbmRzKTtcclxuICAgIGRhdGUuc2V0TWlsbGlzZWNvbmRzKChtaWxsaXNlY29uZHM9PW51bGwpID8gMSA6IG1pbGxpc2Vjb25kcyk7XHJcbiAgICByZXR1cm4gZGF0ZTtcclxuICB9XHJcblxyXG5cclxuICBzdGF0aWMgY29udmVydERhdGVUb051bWJlcnMoZGF0ZSkge1xyXG4gICAgLy8gbW9udGggPSAxIHRvIDEyXHJcbiAgICByZXR1cm4ge1xyXG4gICAgICB5ZWFyOiBkYXRlLmdldEZ1bGxZZWFyKCksXHJcbiAgICAgIG1vbnRoOiBkYXRlLmdldE1vbnRoKCkgKyAxLFxyXG4gICAgICBkYXk6IGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICBob3VyczogZGF0ZS5nZXRIb3VycygpLFxyXG4gICAgICBtaW51dGVzOiBkYXRlLmdldE1pbnV0ZXMoKSxcclxuICAgICAgc2Vjb25kczogZGF0ZS5nZXRTZWNvbmRzKCksXHJcbiAgICAgIG1pbGxpc2Vjb25kczogZGF0ZS5nZXRNaWxsaXNlY29uZHMoKSxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBnZXQoKSB7XHJcbiAgICByZXR1cm4gTG9jYWxEYXRlLmNvbnZlcnREYXRlVG9OdW1iZXJzKHRoaXMuZGF0ZSk7XHJcbiAgfVxyXG5cclxuICB0b01zZ0Zvcm1hdCgpIHtcclxuICAgIHJldHVybiB0aGlzLnRvWVlZWU1NREQoKTtcclxuICB9XHJcbiAgdG9ZWVlZTU1ERCgpIHtcclxuICAgIC8vIHl5eXktbW0tZGRcclxuXHJcbiAgICBsZXQgeXl5eSA9IHRoaXMuZGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgbGV0IG1tID0gKHRoaXMuZGF0ZS5nZXRNb250aCgpICsgMSkudG9TdHJpbmcoKS5wYWRTdGFydCgyLCAnMCcpO1xyXG4gICAgbGV0IGRkID0gKHRoaXMuZGF0ZS5nZXREYXRlKCkpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwgJzAnKTtcclxuICAgIGxldCBzdHIgPSBgJHt5eXl5fS0ke21tfS0ke2RkfWA7XHJcbiAgICAvLyBjb25zb2xlLndhcm4oYGRhdGU9JHtzdHJ9PSR7dGhpcy50b0Rpc3BsYXlGb3JtYXQoKX1gKTtcclxuICAgIHJldHVybiBzdHI7XHJcbiAgfVxyXG4gIHRvRGlzcGxheURhdGVGb3JtYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlLnRvTG9jYWxlRGF0ZVN0cmluZyhcImVuLVVTXCIsIHtcclxuICAgICAgd2Vla2RheTogJ3Nob3J0JyxcclxuICAgICAgeWVhcjogJ251bWVyaWMnLFxyXG4gICAgICBtb250aDogJ3Nob3J0JyxcclxuICAgICAgZGF5OiAnbnVtZXJpYycsXHJcbiAgICB9KTtcclxuICB9XHJcbiAgdG9EaXNwbGF5Rm9ybWF0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZS50b1N0cmluZygpO1xyXG4gIH1cclxuICB0b0RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5kYXRlO1xyXG4gIH1cclxuICBjbGVhclRpbWUoKSB7XHJcbiAgICB0aGlzLmRhdGUuc2V0SG91cnMoMCwgMCwgMCwgMSk7XHJcbiAgfVxyXG5cclxufVxyXG5cclxuIl19