text: !function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/core"),require("@angular/common"),require("positioning"),require("rxjs"),require("rxjs/operators"),require("calendar-utils"),require("angular-draggable-droppable"),require("angular-resizable-element"),require("@angular/animations")):"function"==typeof define&&define.amd?define("angular-calendar",["exports","@angular/core","@angular/common","positioning","rxjs","rxjs/operators","calendar-utils","angular-draggable-droppable","angular-resizable-element","@angular/animations"],t):t((e=e||self)["angular-calendar"]={},e.ng.core,e.ng.common,e.positioning,e.rxjs,e.rxjs.operators,e.calendarUtils,e["angular-draggable-droppable"],e["angular-resizable-element"],e.ng.animations)}(this,(function(e,t,n,a,i,o,r,l,s,d){"use strict";
  /*! *****************************************************************************
      Copyright (c) Microsoft Corporation.
  
      Permission to use, copy, modify, and/or distribute this software for any
      purpose with or without fee is hereby granted.
  
      THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
      REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
      AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
      INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
      LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
      OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
      PERFORMANCE OF THIS SOFTWARE.
      ***************************************************************************** */var p=function(e,t){return(p=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var n in t)t.hasOwnProperty(n)&&(e[n]=t[n])})(e,t)};var c=function(){return(c=Object.assign||function(e){for(var t,n=1,a=arguments.length;n<a;n++)for(var i in t=arguments[n])Object.prototype.hasOwnProperty.call(t,i)&&(e[i]=t[i]);return e}).apply(this,arguments)};function v(e,t,n,a){var i,o=arguments.length,r=o<3?t:null===a?a=Object.getOwnPropertyDescriptor(t,n):a;if("object"==typeof Reflect&&"function"==typeof Reflect.decorate)r=Reflect.decorate(e,t,n,a);else for(var l=e.length-1;l>=0;l--)(i=e[l])&&(r=(o<3?i(r):o>3?i(t,n,r):i(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function u(e,t){return function(n,a){t(n,a,e)}}function y(e,t){if("object"==typeof Reflect&&"function"==typeof Reflect.metadata)return Reflect.metadata(e,t)}function m(e,t){var n="function"==typeof Symbol&&e[Symbol.iterator];if(!n)return e;var a,i,o=n.call(e),r=[];try{for(;(void 0===t||t-- >0)&&!(a=o.next()).done;)r.push(a.value)}catch(e){i={error:e}}finally{try{a&&!a.done&&(n=o.return)&&n.call(o)}finally{if(i)throw i.error}}return r}function h(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(m(arguments[t]));return e}var g,f=function(){function e(e){this.i18nPlural=e}return e.prototype.monthCell=function(e){var t=e.day,a=e.locale;return t.badgeTotal>0?"\n        "+n.formatDate(t.date,"EEEE MMMM d",a)+",\n        "+this.i18nPlural.transform(t.badgeTotal,{"=0":"No events","=1":"One event",other:"# events"})+",\n         click to expand\n      ":""+n.formatDate(t.date,"EEEE MMMM d",a)},e.prototype.openDayEventsLandmark=function(e){var t=e.date,a=e.locale;return"\n      Beginning of expanded view for "+n.formatDate(t,"EEEE MMMM dd",a)+"\n    "},e.prototype.openDayEventsAlert=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"EEEE MMMM dd",a)+" expanded"},e.prototype.eventDescription=function(e){var t=e.event,a=e.locale;if(!0===t.allDay)return this.allDayEventDescription({event:t,locale:a});var i="\n      "+n.formatDate(t.start,"EEEE MMMM dd",a)+",\n      "+t.title+", from "+n.formatDate(t.start,"hh:mm a",a)+"\n    ";return t.end?i+" to "+n.formatDate(t.end,"hh:mm a",a):i},e.prototype.allDayEventDescription=function(e){var t=e.event,a=e.locale,i="\n      "+t.title+", event spans multiple days:\n      start time "+n.formatDate(t.start,"MMMM dd hh:mm a",a)+"\n    ";return t.end?i+", stop time "+n.formatDate(t.end,"MMMM d hh:mm a",a):i+", no stop time"},e.prototype.actionButtonLabel=function(e){return e.action.a11yLabel},e.prototype.monthCellTabIndex=function(){return 0},e.prototype.hideMonthCellEvents=function(){return!0},e.prototype.hideEventTitle=function(){return!0},e.prototype.hideWeekHourSegment=function(){return!0},e.prototype.hideDayHourSegment=function(){return!0},e.ctorParameters=function(){return[{type:n.I18nPluralPipe}]},e=v([t.Injectable(),y("design:paramtypes",[n.I18nPluralPipe])],e)}(),w=function(){function e(e,t){this.calendarA11y=e,this.locale=t}return e.prototype.transform=function(e,t){if(e.locale=e.locale||this.locale,void 0===this.calendarA11y[t]){var n=Object.getOwnPropertyNames(Object.getPrototypeOf(f.prototype)).filter((function(e){return"constructor"!==e}));throw new Error(t+" is not a valid a11y method. Can only be one of "+n.join(", "))}return this.calendarA11y[t](e)},e.ctorParameters=function(){return[{type:f},{type:String,decorators:[{type:t.Inject,args:[t.LOCALE_ID]}]}]},e=v([t.Pipe({name:"calendarA11y"}),u(1,t.Inject(t.LOCALE_ID)),y("design:paramtypes",[f,String])],e)}(),D=function(){};!function(e){e[e.SUNDAY=0]="SUNDAY",e[e.MONDAY=1]="MONDAY",e[e.TUESDAY=2]="TUESDAY",e[e.WEDNESDAY=3]="WEDNESDAY",e[e.THURSDAY=4]="THURSDAY",e[e.FRIDAY=5]="FRIDAY",e[e.SATURDAY=6]="SATURDAY"}(g||(g={}));var k,E=[g.SUNDAY,g.SATURDAY];function T(e,t){var n=t.startDate,a=t.seconds,i=t.excluded,o=t.precision;if(i.length<1)return 0;for(var r=e.addSeconds,l=e.getDay,s=e.addDays,d=r(n,a-1),p=l(n),c=l(d),v=0,u=n,y=function(){var t=l(u);i.some((function(e){return e===t}))&&(v+=function(e,t){var n=t.precision,a=t.day,i=t.dayStart,o=t.dayEnd,r=t.startDate,l=t.endDate,s=e.differenceInSeconds,d=e.endOfDay,p=e.startOfDay;if("minutes"===n){if(a===i)return s(d(r),r)+1;if(a===o)return s(l,p(l))+1}return 86400}(e,{dayStart:p,dayEnd:c,day:t,precision:o,startDate:n,endDate:d})),u=s(u,1)};u<d;)y();return v}function C(e,t){var n=t.events,a=t.periodStart,i=t.periodEnd;return n.filter((function(t){return function(e,t){var n=t.event,a=t.periodStart,i=t.periodEnd,o=e.isSameSecond,r=n.start,l=n.end||n.start;return r>a&&r<i||(l>a&&l<i||(r<a&&l>i||(!(!o(r,a)&&!o(r,i))||!(!o(l,a)&&!o(l,i)))))}(e,{event:t,periodStart:a,periodEnd:i})}))}function S(e,t){var n=t.date,a=t.weekendDays,i=void 0===a?E:a,o=e.startOfDay,r=e.isSameDay,l=e.getDay,s=o(new Date),d=l(n);return{date:n,day:d,isPast:n<s,isToday:r(n,s),isFuture:n>s,isWeekend:i.indexOf(d)>-1}}function b(e,t){for(var n=t.viewDate,a=t.weekStartsOn,i=t.excluded,o=void 0===i?[]:i,r=t.weekendDays,l=t.viewStart,s=void 0===l?e.startOfWeek(n,{weekStartsOn:a}):l,d=t.viewEnd,p=void 0===d?e.addDays(s,7):d,c=e.addDays,v=e.getDay,u=[],y=s;y<p;)o.some((function(e){return v(y)===e}))||u.push(S(e,{date:y,weekendDays:r})),y=c(y,1);return u}function I(e,t){var n=t.events,a=void 0===n?[]:n,i=t.excluded,o=void 0===i?[]:i,r=t.precision,l=void 0===r?"days":r,s=t.absolutePositionedEvents,d=void 0!==s&&s,p=t.viewStart,v=t.viewEnd;p=e.startOfDay(p),v=e.endOfDay(v);var u=e.differenceInSeconds,y=e.differenceInDays,m=function(e,t){for(var n=t.date1,a=t.date2,i=t.excluded,o=n,r=0;o<a;)-1===i.indexOf(e.getDay(o))&&r++,o=e.addDays(o,1);return r}(e,{date1:p,date2:v,excluded:o}),g=y(v,p)+1,f=a.filter((function(e){return e.allDay})).map((function(t){var n=function(e,t){var n=t.event,a=t.startOfWeek,i=t.excluded,o=t.precision,r=e.differenceInDays,l=e.startOfDay,s=e.differenceInSeconds;if(n.start<a)return 0;var d=0;switch(o){case"days":d=86400*r(l(n.start),a);break;case"minutes":d=s(n.start,a)}return d-=T(e,{startDate:a,seconds:d,excluded:i,precision:o}),Math.abs(d/86400)}(e,{event:t,startOfWeek:p,excluded:o,precision:l});return{event:t,offset:n,span:function(e,t){var n=t.event,a=t.offset,i=t.startOfWeekDate,o=t.excluded,r=t.precision,l=t.totalDaysInView,s=e.max,d=e.differenceInSeconds,p=e.addDays,c=e.endOfDay,v=e.differenceInDays,u=86400,y=s([n.start,i]);if(n.end)switch(r){case"minutes":u=d(n.end,y);break;default:u=86400*v(p(c(n.end),1),y)}var m=86400*a,h=86400*l;return m+u>h&&(u=h-m),(u-=T(e,{startDate:y,seconds:u,excluded:o,precision:r}))/86400}(e,{event:t,offset:n,startOfWeekDate:p,excluded:o,precision:l,totalDaysInView:g})}})).filter((function(e){return e.offset<m})).filter((function(e){return e.span>0})).map((function(e){return{event:e.event,offset:e.offset,span:e.span,startsBeforeWeek:e.event.start<p,endsAfterWeek:(e.event.end||e.event.start)>v}})).sort((function(e,t){var n=u(e.event.start,t.event.start);return 0===n?u(t.event.end||t.event.start,e.event.end||e.event.start):n})),w=[],D=[];return f.forEach((function(e,t){if(-1===D.indexOf(e)){D.push(e);var n=e.span+e.offset,a=h([e],f.slice(t+1).filter((function(e){if(e.offset>=n&&n+e.span<=g&&-1===D.indexOf(e)){var t=e.offset-n;return d||(e.offset=t),n+=e.span+t,D.push(e),!0}}))),i=a.filter((function(e){return e.event.id})).map((function(e){return e.event.id})).join("-");w.push(c({row:a},i?{id:i}:{}))}})),w}function x(e,t){var n=t.events,a=t.viewDate,i=t.hourSegments,o=t.hourDuration,r=t.dayStart,l=t.dayEnd,s=t.weekStartsOn,d=t.excluded,p=t.weekendDays,v=t.segmentHeight,u=t.viewStart,y=t.viewEnd,m=t.minimumEventHeight,g=function(e,t){var n=t.viewDate,a=t.hourSegments,i=t.hourDuration,o=t.dayStart,r=t.dayEnd,l=e.setMinutes,s=e.setHours,d=e.startOfDay,p=e.startOfMinute,c=e.endOfDay,v=e.addMinutes,u=(e.addHours,e.addDays),y=[],m=l(s(d(n),M(o.hour)),H(o.minute)),h=l(s(p(c(n)),M(r.hour)),H(r.minute)),g=(i||60)/a,f=d(n),w=c(n),D=function(e){return e};f.getTimezoneOffset()!==w.getTimezoneOffset()&&(f=u(f,1),m=u(m,1),h=u(h,1),D=function(e){return u(e,-1)});for(var k=i?1440/i:60,E=0;E<k;E++){for(var T=[],C=0;C<a;C++){var S=v(v(m,E*(i||60)),C*g);S>=m&&S<h&&T.push({date:D(S),displayDate:S,isStart:0===C})}T.length>0&&y.push({segments:T})}return y}(e,{viewDate:a,hourSegments:i,hourDuration:o,dayStart:r,dayEnd:l}),f=b(e,{viewDate:a,weekStartsOn:s,excluded:d,weekendDays:p,viewStart:u,viewEnd:y}),w=e.setHours,D=e.setMinutes,k=e.getHours,E=e.getMinutes;return f.map((function(t){var a=function(e,t){var n=t.events,a=t.viewDate,i=t.hourSegments,o=t.dayStart,r=t.dayEnd,l=t.eventWidth,s=t.segmentHeight,d=t.hourDuration,p=t.minimumEventHeight,c=e.setMinutes,v=e.setHours,u=e.startOfDay,y=e.startOfMinute,m=e.endOfDay,g=e.differenceInMinutes,f=c(v(u(a),M(o.hour)),H(o.minute)),w=c(v(y(m(a)),M(r.hour)),H(r.minute));w.setSeconds(59,999);var D=[],k=C(e,{events:n.filter((function(e){return!e.allDay})),periodStart:f,periodEnd:w}),E=k.sort((function(e,t){return e.start.valueOf()-t.start.valueOf()})).map((function(e){var t=e.start,n=e.end||t,a=t<f,o=n>w,r=i*s/(d||60),c=0;if(t>f){var v=t.getTimezoneOffset(),u=f.getTimezoneOffset()-v;c+=g(t,f)+u}c*=r;var y=g(o?w:n,a?f:t);e.end?y*=r:y=s,p&&y<p&&(y=p);for(var m=O(D,c,c+y),h=0;m.some((function(e){return e.left===h}));)h+=l;var k={event:e,height:y,width:l,top:c,left:h,startsBeforeDay:a,endsAfterDay:o};return D.push(k),k})),T=Math.max.apply(Math,h(E.map((function(e){return e.left+e.width})))),S=C(e,{events:n.filter((function(e){return e.allDay})),periodStart:u(f),periodEnd:m(w)});return{events:E,width:T,allDayEvents:S,period:{events:k,start:f,end:w}}}(e,{events:n,viewDate:t.date,hourSegments:i,dayStart:r,dayEnd:l,segmentHeight:v,eventWidth:1,hourDuration:o,minimumEventHeight:m}),s=g.map((function(e){var n=e.segments.map((function(e){var n=D(w(t.date,k(e.date)),E(e.date));return c(c({},e),{date:n})}));return c(c({},e),{segments:n})}));var d=a.events.map((function(e){var t=100/function e(t,n){var a=Math.max.apply(Math,h(n.map((function(e){return e.left+1})))),i=t.filter((function(e){return e.left>=a})).filter((function(e){return O(n,e.top,e.top+e.height).length>0}));return i.length>0?e(t,i):a}(a.events,O(a.events,e.top,e.top+e.height));return c(c({},e),{left:e.left*t,width:t})}));return{hours:s,date:t.date,events:d.map((function(e){var t=O(d.filter((function(t){return t.left>e.left})),e.top,e.top+e.height);return t.length>0?c(c({},e),{width:Math.min.apply(Math,h(t.map((function(e){return e.left}))))-e.left}):e}))}}))}function O(e,t,n){return e.filter((function(e){var a=e.top,i=e.top+e.height;return t<i&&i<n||(t<a&&a<n||a<=t&&n<=i)}))}function M(e){return Math.max(Math.min(23,e),0)}function H(e){return Math.max(Math.min(59,e),0)}!function(e){e.NotArray="Events must be an array",e.StartPropertyMissing="Event is missing the `start` property",e.StartPropertyNotDate="Event `start` property should be a javascript date object. Do `new Date(event.start)` to fix it.",e.EndPropertyNotDate="Event `end` property should be a javascript date object. Do `new Date(event.end)` to fix it.",e.EndsBeforeStart="Event `start` property occurs after the `end`"}(k||(k={}));var A=function(e){return function(e,t){var n=!0;function a(e,a){t(e,a),n=!1}return Array.isArray(e)?(e.forEach((function(e){e.start?e.start instanceof Date||a(k.StartPropertyNotDate,e):a(k.StartPropertyMissing,e),e.end&&(e.end instanceof Date||a(k.EndPropertyNotDate,e),e.start>e.end&&a(k.EndsBeforeStart,e))})),n):(t(k.NotArray,e),!1)}(e,(function(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];return console.warn.apply(console,h(["angular-calendar"],e))}))};function R(e,t){return Math.floor(e.left)<=Math.ceil(t.left)&&Math.floor(t.left)<=Math.ceil(e.right)&&Math.floor(e.left)<=Math.ceil(t.right)&&Math.floor(t.right)<=Math.ceil(e.right)&&Math.floor(e.top)<=Math.ceil(t.top)&&Math.floor(t.top)<=Math.ceil(e.bottom)&&Math.floor(e.top)<=Math.ceil(t.bottom)&&Math.floor(t.bottom)<=Math.ceil(e.bottom)}function z(e,t){return Math.round(e/t)*t}var B=function(e,t){return t.id?t.id:t},W=function(e,t){return t.date.toISOString()},V=function(e,t){return t.date.toISOString()},L=function(e,t){return t.segments[0].date.toISOString()},j=function(e,t){return t.event.id?t.event.id:t.event},P=function(e,t){return t.event.id?t.event.id:t.event};function F(e,t){return 60/(e*t)}function N(e,t,n,a){return z(e,a||n)*F(t,n)}function $(e,t,n){return t.end?t.end:e.addMinutes(t.start,n)}function Y(e,t,n,a){for(var i=0,o=0,r=n<0?e.subDays:e.addDays,l=t;o<=Math.abs(n);){l=r(t,i);var s=e.getDay(l);-1===a.indexOf(s)&&o++,i++}return l}function U(e,t,n,a,i){void 0===a&&(a=[]);for(var o=i?e.startOfDay(t):e.startOfWeek(t,{weekStartsOn:n}),r=e.endOfWeek(t,{weekStartsOn:n});a.indexOf(e.getDay(o))>-1&&o<r;)o=e.addDays(o,1);if(i)return{viewStart:o,viewEnd:l=e.endOfDay(Y(e,o,i-1,a))};for(var l=r;a.indexOf(e.getDay(l))>-1&&l>o;)l=e.subDays(l,1);return{viewStart:o,viewEnd:l}}function q(e){var t=e.x,n=e.y;return Math.abs(t)>1||Math.abs(n)>1}var _,K=function(){function e(e){this.dateAdapter=e}return e.prototype.monthViewColumnHeader=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"EEEE",a)},e.prototype.monthViewDayNumber=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"d",a)},e.prototype.monthViewTitle=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"LLLL y",a)},e.prototype.weekViewColumnHeader=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"EEEE",a)},e.prototype.weekViewColumnSubHeader=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"MMM d",a)},e.prototype.weekViewTitle=function(e){var t=e.date,a=e.locale,i=e.weekStartsOn,o=e.excludeDays,r=e.daysInWeek,l=U(this.dateAdapter,t,i,o,r),s=l.viewStart,d=l.viewEnd,p=function(e,t){return n.formatDate(e,"MMM d"+(t?", yyyy":""),a)};return p(s,s.getUTCFullYear()!==d.getUTCFullYear())+" - "+p(d,!0)},e.prototype.weekViewHour=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"h a",a)},e.prototype.dayViewHour=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"h a",a)},e.prototype.dayViewTitle=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"EEEE, MMMM d, y",a)},e.prototype.eventStartDateTitle=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"d. MMMM y / HH:mm",a)},e.prototype.eventStartTimeTitle=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"HH:mm",a)},e.prototype.eventEndTimeTitle=function(e){var t=e.date,a=e.locale;return n.formatDate(t,"HH:mm",a)},e.ctorParameters=function(){return[{type:D}]},e=v([t.Injectable(),y("design:paramtypes",[D])],e)}(),G=function(e){function n(){return null!==e&&e.apply(this,arguments)||this}return function(e,t){function n(){this.constructor=e}p(e,t),e.prototype=null===t?Object.create(t):(n.prototype=t.prototype,new n)}(n,e),n=v([t.Injectable()],n)}(K),Q=function(){function e(e,t){this.dateFormatter=e,this.locale=t}return e.prototype.transform=function(e,t,n,a,i,o){if(void 0===n&&(n=this.locale),void 0===a&&(a=0),void 0===i&&(i=[]),void 0===this.dateFormatter[t]){var r=Object.getOwnPropertyNames(Object.getPrototypeOf(G.prototype)).filter((function(e){return"constructor"!==e}));throw new Error(t+" is not a valid date formatter. Can only be one of "+r.join(", "))}return this.dateFormatter[t]({date:e,locale:n,weekStartsOn:a,excludeDays:i,daysInWeek:o})},e.ctorParameters=function(){return[{type:G},{type:String,decorators:[{type:t.Inject,args:[t.LOCALE_ID]}]}]},e=v([t.Pipe({name:"calendarDate"}),u(1,t.Inject(t.LOCALE_ID)),y("design:paramtypes",[G,String])],e)}(),Z=function(){function e(){this.trackByActionId=function(e,t){return t.id?t.id:t}}return v([t.Input(),y("design:type",Object)],e.prototype,"event",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),e=v([t.Component({selector:"mwl-calendar-event-actions",template:'\n    <ng-template\n      #defaultTemplate\n      let-event="event"\n      let-trackByActionId="trackByActionId"\n    >\n      <span *ngIf="event.actions" class="cal-event-actions">\n        <a\n          class="cal-event-action"\n          href="javascript:;"\n          *ngFor="let action of event.actions; trackBy: trackByActionId"\n          (mwlClick)="action.onClick({ event: event, sourceEvent: $event })"\n          (mwlKeydownEnter)="\n            action.onClick({ event: event, sourceEvent: $event })\n          "\n          [ngClass]="action.cssClass"\n          [innerHtml]="action.label"\n          tabindex="0"\n          role="button"\n          [attr.aria-label]="\n            { action: action } | calendarA11y: \'actionButtonLabel\'\n          "\n        >\n        </a>\n      </span>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        event: event,\n        trackByActionId: trackByActionId\n      }"\n    >\n    </ng-template>\n  '})],e)}(),J=function(){function e(){}return e.prototype.month=function(e,t){return e.title},e.prototype.monthTooltip=function(e,t){return e.title},e.prototype.week=function(e,t){return e.title},e.prototype.weekTooltip=function(e,t){return e.title},e.prototype.day=function(e,t){return e.title},e.prototype.dayTooltip=function(e,t){return e.title},e}(),X=function(){function e(){this.quicklinkClick=new t.EventEmitter,this.isLive=!1}return e.prototype.ngOnChanges=function(){var e=this;setInterval((function(){e.isLive=e.event.videoURL&&new Date>=e.event.start&&new Date<e.event.end}),60)},e.prototype.navigateToLiveStream=function(){this.quicklinkClick.emit(this.event.videoURL)},v([t.Input(),y("design:type",Object)],e.prototype,"event",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Input(),y("design:type",String)],e.prototype,"view",void 0),v([t.Output(),y("design:type",t.EventEmitter)],e.prototype,"quicklinkClick",void 0),e=v([t.Component({selector:"mwl-calendar-event-title",template:'\n    <ng-template #defaultTemplate let-event="event" let-view="view">\n      <div class="cal-event-arrow">\n        <svg\n          xmlns="http://www.w3.org/2000/svg"\n          height="24"\n          viewBox="0 0 24 24"\n          width="24"\n        >\n          <path d="M0 0h24v24H0V0z" fill="none" />\n          <path d="M8.59 16.59L13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.41z" />\n        </svg>\n      </div>\n      <span\n        class="cal-event-title"\n        [innerHTML]="event.title | calendarEventTitle: view:event"\n        [attr.aria-hidden]="{} | calendarA11y: \'hideEventTitle\'"\n      >\n      </span>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        event: event,\n        view: view\n      }"\n    >\n    </ng-template>\n  '})],e)}(),ee=function(){function e(e){this.calendarEventTitle=e}return e.prototype.transform=function(e,t,n){return this.calendarEventTitle[t](n,e)},e.ctorParameters=function(){return[{type:J}]},e=v([t.Pipe({name:"calendarEventTitle"}),y("design:paramtypes",[J])],e)}();(_=e.CalendarView||(e.CalendarView={})).Month="month",_.Week="week",_.Day="day";var te,ne=function(){function n(e){this.dateAdapter=e,this.excludeDays=[],this.stepDays=1,this.viewDateChange=new t.EventEmitter}return n.prototype.onClick=function(){var t={day:this.dateAdapter.addDays,week:this.dateAdapter.addWeeks,month:this.dateAdapter.addMonths}[this.view];this.view===e.CalendarView.Day?this.viewDateChange.emit(Y(this.dateAdapter,this.viewDate,this.stepDays,this.excludeDays)):this.view===e.CalendarView.Week&&this.daysInWeek?this.viewDateChange.emit(Y(this.dateAdapter,this.viewDate,this.daysInWeek,this.excludeDays)):this.viewDateChange.emit(t(this.viewDate,1))},n.ctorParameters=function(){return[{type:D}]},v([t.Input(),y("design:type",String)],n.prototype,"view",void 0),v([t.Input(),y("design:type",Date)],n.prototype,"viewDate",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"excludeDays",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"stepDays",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"daysInWeek",void 0),v([t.Output(),y("design:type",t.EventEmitter)],n.prototype,"viewDateChange",void 0),v([t.HostListener("click"),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],n.prototype,"onClick",null),n=v([t.Directive({selector:"[mwlCalendarNextView]"}),y("design:paramtypes",[D])],n)}(),ae=function(){function n(e){this.dateAdapter=e,this.excludeDays=[],this.stepDays=1,this.viewDateChange=new t.EventEmitter}return n.prototype.onClick=function(){var t={day:this.dateAdapter.subDays,week:this.dateAdapter.subWeeks,month:this.dateAdapter.subMonths}[this.view];this.view===e.CalendarView.Day?this.viewDateChange.emit(Y(this.dateAdapter,this.viewDate,-this.stepDays,this.excludeDays)):this.view===e.CalendarView.Week&&this.daysInWeek?this.viewDateChange.emit(Y(this.dateAdapter,this.viewDate,-this.daysInWeek,this.excludeDays)):this.viewDateChange.emit(t(this.viewDate,1))},n.ctorParameters=function(){return[{type:D}]},v([t.Input(),y("design:type",String)],n.prototype,"view",void 0),v([t.Input(),y("design:type",Date)],n.prototype,"viewDate",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"excludeDays",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"stepDays",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"daysInWeek",void 0),v([t.Output(),y("design:type",t.EventEmitter)],n.prototype,"viewDateChange",void 0),v([t.HostListener("click"),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],n.prototype,"onClick",null),n=v([t.Directive({selector:"[mwlCalendarPreviousView]"}),y("design:paramtypes",[D])],n)}(),ie=function(){function e(e){this.dateAdapter=e,this.viewDateChange=new t.EventEmitter}return e.prototype.onClick=function(){this.viewDateChange.emit(this.dateAdapter.startOfDay(new Date))},e.ctorParameters=function(){return[{type:D}]},v([t.Input(),y("design:type",Date)],e.prototype,"viewDate",void 0),v([t.Output(),y("design:type",t.EventEmitter)],e.prototype,"viewDateChange",void 0),v([t.HostListener("click"),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],e.prototype,"onClick",null),e=v([t.Directive({selector:"[mwlCalendarToday]"}),y("design:paramtypes",[D])],e)}(),oe=function(){function e(){}return v([t.Input(),y("design:type",String)],e.prototype,"contents",void 0),v([t.Input(),y("design:type",String)],e.prototype,"placement",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"event",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),e=v([t.Component({selector:"mwl-calendar-tooltip-window",template:'\n    <ng-template\n      #defaultTemplate\n      let-contents="contents"\n      let-placement="placement"\n      let-event="event"\n    >\n      <div class="cal-tooltip" [ngClass]="\'cal-tooltip-\' + placement">\n        <div class="cal-tooltip-arrow"></div>\n        <div class="cal-tooltip-inner" [innerHtml]="contents"></div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        contents: contents,\n        placement: placement,\n        event: event\n      }"\n    >\n    </ng-template>\n  '})],e)}(),re=function(){function e(e,t,n,a,o,r){this.elementRef=e,this.injector=t,this.renderer=n,this.viewContainerRef=o,this.document=r,this.placement="auto",this.delay=null,this.cancelTooltipDelay$=new i.Subject,this.tooltipFactory=a.resolveComponentFactory(oe)}return e.prototype.ngOnChanges=function(e){this.tooltipRef&&(e.contents||e.customTemplate||e.event)&&(this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.tooltipRef.changeDetectorRef.markForCheck(),this.contents||this.hide())},e.prototype.ngOnDestroy=function(){this.hide()},e.prototype.onMouseOver=function(){var e=this;(null===this.delay?i.of("now"):i.timer(this.delay)).pipe(o.takeUntil(this.cancelTooltipDelay$)).subscribe((function(){e.show()}))},e.prototype.onMouseOut=function(){this.hide()},e.prototype.show=function(){var e=this;!this.tooltipRef&&this.contents&&(this.tooltipRef=this.viewContainerRef.createComponent(this.tooltipFactory,0,this.injector,[]),this.tooltipRef.instance.contents=this.contents,this.tooltipRef.instance.customTemplate=this.customTemplate,this.tooltipRef.instance.event=this.event,this.appendToBody&&this.document.body.appendChild(this.tooltipRef.location.nativeElement),requestAnimationFrame((function(){e.positionTooltip()})))},e.prototype.hide=function(){this.tooltipRef&&(this.viewContainerRef.remove(this.viewContainerRef.indexOf(this.tooltipRef.hostView)),this.tooltipRef=null),this.cancelTooltipDelay$.next()},e.prototype.positionTooltip=function(e){void 0===e&&(e=[]),this.tooltipRef&&(this.tooltipRef.changeDetectorRef.detectChanges(),this.tooltipRef.instance.placement=a.positionElements(this.elementRef.nativeElement,this.tooltipRef.location.nativeElement.children[0],this.placement,this.appendToBody),-1===e.indexOf(this.tooltipRef.instance.placement)&&this.positionTooltip(h(e,[this.tooltipRef.instance.placement])))},e.ctorParameters=function(){return[{type:t.ElementRef},{type:t.Injector},{type:t.Renderer2},{type:t.ComponentFactoryResolver},{type:t.ViewContainerRef},{type:void 0,decorators:[{type:t.Inject,args:[n.DOCUMENT]}]}]},v([t.Input("mwlCalendarTooltip"),y("design:type",String)],e.prototype,"contents",void 0),v([t.Input("tooltipPlacement"),y("design:type",Object)],e.prototype,"placement",void 0),v([t.Input("tooltipTemplate"),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Input("tooltipEvent"),y("design:type",Object)],e.prototype,"event",void 0),v([t.Input("tooltipAppendToBody"),y("design:type",Boolean)],e.prototype,"appendToBody",void 0),v([t.Input("tooltipDelay"),y("design:type",Number)],e.prototype,"delay",void 0),v([t.HostListener("mouseenter"),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],e.prototype,"onMouseOver",null),v([t.HostListener("mouseleave"),y("design:type",Function),y("design:paramtypes",[]),y("design:returntype",void 0)],e.prototype,"onMouseOut",null),e=v([t.Directive({selector:"[mwlCalendarTooltip]"}),u(5,t.Inject(n.DOCUMENT)),y("design:paramtypes",[t.ElementRef,t.Injector,t.Renderer2,t.ComponentFactoryResolver,t.ViewContainerRef,Object])],e)}(),le=function(){function e(e){this.dateAdapter=e}return e.prototype.getMonthView=function(e){return function(e,t){var n=t.events,a=void 0===n?[]:n,i=t.viewDate,o=t.weekStartsOn,r=t.excluded,l=void 0===r?[]:r,s=t.viewStart,d=void 0===s?e.startOfMonth(i):s,p=t.viewEnd,c=void 0===p?e.endOfMonth(i):p,v=t.weekendDays;a||(a=[]);for(var u,y=e.startOfWeek,m=e.endOfWeek,g=e.differenceInDays,f=e.startOfDay,w=e.addHours,D=e.endOfDay,k=e.isSameMonth,E=e.getDay,T=(e.getMonth,y(d,{weekStartsOn:o})),b=m(c,{weekStartsOn:o}),I=C(e,{events:a,periodStart:T,periodEnd:b}),x=[],O=function(t){var n;if(u?(n=f(w(u,24)),u.getTime()===n.getTime()&&(n=f(w(u,25))),u=n):n=u=T,!l.some((function(e){return E(n)===e}))){var a=S(e,{date:n,weekendDays:v}),o=C(e,{events:I,periodStart:f(n),periodEnd:D(n)});a.inMonth=k(n,i),a.events=o,a.badgeTotal=o.length,x.push(a)}},M=0;M<g(b,T)+1;M++)O();var H=[],A=7-l.length;if(A<7)for(M=0;M<x.length;M+=A){var R=x.slice(M,M+A);R.some((function(e){return d<=e.date&&e.date<c}))&&(H=h(H,R))}else H=x;var z=Math.floor(H.length/A),B=[];for(M=0;M<z;M++)B.push(M*A);return{rowOffsets:B,totalDaysVisibleInWeek:A,days:H,period:{start:H[0].date,end:D(H[H.length-1].date),events:I}}}(this.dateAdapter,e)},e.prototype.getWeekViewHeader=function(e){return b(this.dateAdapter,e)},e.prototype.getWeekView=function(e){return function(e,t){var n=t.events,a=void 0===n?[]:n,i=t.viewDate,o=t.weekStartsOn,r=t.excluded,l=void 0===r?[]:r,s=t.precision,d=void 0===s?"days":s,p=t.absolutePositionedEvents,c=void 0!==p&&p,v=t.hourSegments,u=t.hourDuration,y=t.dayStart,m=t.dayEnd,h=t.weekendDays,g=t.segmentHeight,f=t.minimumEventHeight,w=t.viewStart,D=void 0===w?e.startOfWeek(i,{weekStartsOn:o}):w,k=t.viewEnd,E=void 0===k?e.endOfWeek(i,{weekStartsOn:o}):k;a||(a=[]);var T=e.startOfDay,S=e.endOfDay,O=C(e,{events:a,periodStart:D=T(D),periodEnd:E=S(E)}),M=b(e,{viewDate:i,weekStartsOn:o,excluded:l,weekendDays:h,viewStart:D,viewEnd:E});return{allDayEventRows:I(e,{events:O,excluded:l,precision:d,absolutePositionedEvents:c,viewStart:D,viewEnd:E}),period:{events:O,start:M[0].date,end:S(M[M.length-1].date)},hourColumns:x(e,{events:a,viewDate:i,hourSegments:v,hourDuration:u,dayStart:y,dayEnd:m,weekStartsOn:o,excluded:l,weekendDays:h,segmentHeight:g,viewStart:D,viewEnd:E,minimumEventHeight:f})}}(this.dateAdapter,e)},e.ctorParameters=function(){return[{type:D}]},e=v([t.Injectable(),y("design:paramtypes",[D])],e)}(),se=function(){function e(e,n,a){this.renderer=e,this.elm=n,this.document=a,this.clickListenerDisabled=!1,this.click=new t.EventEmitter,this.destroy$=new i.Subject}return e.prototype.ngOnInit=function(){var e=this;this.clickListenerDisabled||this.listen().pipe(o.takeUntil(this.destroy$)).subscribe((function(t){t.stopPropagation(),e.click.emit(t)}))},e.prototype.ngOnDestroy=function(){this.destroy$.next()},e.prototype.listen=function(){var e=this;return new i.Observable((function(t){return e.renderer.listen(e.elm.nativeElement,"click",(function(e){t.next(e)}))}))},e.ctorParameters=function(){return[{type:t.Renderer2},{type:t.ElementRef},{type:void 0,decorators:[{type:t.Inject,args:[n.DOCUMENT]}]}]},v([t.Input(),y("design:type",Object)],e.prototype,"clickListenerDisabled",void 0),v([t.Output("mwlClick"),y("design:type",Object)],e.prototype,"click",void 0),e=v([t.Directive({selector:"[mwlClick]"}),u(2,t.Inject(n.DOCUMENT)),y("design:paramtypes",[t.Renderer2,t.ElementRef,Object])],e)}(),de=function(){function e(){this.keydown=new t.EventEmitter}return e.prototype.onKeyPress=function(e){13!==e.keyCode&&13!==e.which&&"Enter"!==e.key||(e.preventDefault(),e.stopPropagation(),this.keydown.emit(e))},v([t.Output("mwlKeydownEnter"),y("design:type",Object)],e.prototype,"keydown",void 0),v([t.HostListener("keydown",["$event"]),y("design:type",Function),y("design:paramtypes",[Object]),y("design:returntype",void 0)],e.prototype,"onKeyPress",null),e=v([t.Directive({selector:"[mwlKeydownEnter]"})],e)}();(te=e.CalendarEventTimesChangedEventType||(e.CalendarEventTimesChangedEventType={})).Drag="drag",te.Drop="drop",te.Resize="resize";var pe=new t.InjectionToken("Moment"),ce=function(){function e(e,t){this.moment=e,this.dateAdapter=t}return e.prototype.monthViewColumnHeader=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("dddd")},e.prototype.monthViewDayNumber=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("D")},e.prototype.monthViewTitle=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("MMMM YYYY")},e.prototype.weekViewColumnHeader=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("dddd")},e.prototype.weekViewColumnSubHeader=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("MMM D")},e.prototype.weekViewTitle=function(e){var t=this,n=e.date,a=e.locale,i=e.weekStartsOn,o=e.excludeDays,r=e.daysInWeek,l=U(this.dateAdapter,n,i,o,r),s=l.viewStart,d=l.viewEnd,p=function(e,n){return t.moment(e).locale(a).format("MMM D"+(n?", YYYY":""))};return p(s,s.getUTCFullYear()!==d.getUTCFullYear())+" - "+p(d,!0)},e.prototype.weekViewHour=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("ha")},e.prototype.dayViewHour=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("ha")},e.prototype.dayViewTitle=function(e){var t=e.date,n=e.locale;return this.moment(t).locale(n).format("dddd, D MMMM, YYYY")},e.ctorParameters=function(){return[{type:void 0,decorators:[{type:t.Inject,args:[pe]}]},{type:D}]},e=v([t.Injectable(),u(0,t.Inject(pe)),y("design:paramtypes",[Object,D])],e)}(),ve=function(){function e(e){this.dateAdapter=e}return e.prototype.monthViewColumnHeader=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{weekday:"long"}).format(t)},e.prototype.monthViewDayNumber=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{day:"numeric"}).format(t)},e.prototype.monthViewTitle=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{year:"numeric",month:"long"}).format(t)},e.prototype.weekViewColumnHeader=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{weekday:"long"}).format(t)},e.prototype.weekViewColumnSubHeader=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{day:"numeric",month:"short"}).format(t)},e.prototype.weekViewTitle=function(e){var t=e.date,n=e.locale,a=e.weekStartsOn,i=e.excludeDays,o=e.daysInWeek,r=U(this.dateAdapter,t,a,i,o),l=r.viewStart,s=r.viewEnd,d=function(e,t){return new Intl.DateTimeFormat(n,{day:"numeric",month:"short",year:t?"numeric":void 0}).format(e)};return d(l,l.getUTCFullYear()!==s.getUTCFullYear())+" - "+d(s,!0)},e.prototype.weekViewHour=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{hour:"numeric"}).format(t)},e.prototype.dayViewHour=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{hour:"numeric"}).format(t)},e.prototype.dayViewTitle=function(e){var t=e.date,n=e.locale;return new Intl.DateTimeFormat(n,{day:"numeric",month:"long",year:"numeric",weekday:"long"}).format(t)},e.ctorParameters=function(){return[{type:D}]},e=v([t.Injectable(),y("design:paramtypes",[D])],e)}(),ue=function(){function e(){}var a;return a=e,e.forRoot=function(e,t){return void 0===t&&(t={}),{ngModule:a,providers:[e,t.eventTitleFormatter||J,t.dateFormatter||G,t.utils||le,t.a11y||f]}},e=a=v([t.NgModule({declarations:[Z,X,oe,re,ae,ne,ie,Q,ee,w,se,de],imports:[n.CommonModule],exports:[Z,X,oe,re,ae,ne,ie,Q,ee,w,se,de],providers:[n.I18nPluralPipe],entryComponents:[oe]})],e)}(),ye=function(){function e(){this.events=[],this.hourSegments=2,this.hourSegmentHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.tooltipPlacement="auto",this.tooltipDisabled=!0,this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.snapDraggedEvents=!0,this.eventClicked=new t.EventEmitter,this.hourSegmentClicked=new t.EventEmitter,this.eventTimesChanged=new t.EventEmitter,this.beforeViewRender=new t.EventEmitter}return v([t.Input(),y("design:type",Date)],e.prototype,"viewDate",void 0),v([t.Input(),y("design:type",Array)],e.prototype,"events",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"hourSegments",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"hourSegmentHeight",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayStartHour",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayStartMinute",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayEndHour",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayEndMinute",void 0),v([t.Input(),y("design:type",i.Subject)],e.prototype,"refresh",void 0),v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"eventSnapSize",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"tooltipPlacement",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"tooltipTemplate",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"tooltipDisabled",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"tooltipAppendToBody",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"tooltipDelay",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"hourSegmentTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventTitleTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventActionsTemplate",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"snapDraggedEvents",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"allDayEventsLabelTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"currentTimeMarkerTemplate",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventClicked",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"hourSegmentClicked",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventTimesChanged",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"beforeViewRender",void 0),e=v([t.Component({selector:"mwl-calendar-day-view",template:'\n    <mwl-calendar-week-view\n      class="cal-day-view"\n      [daysInWeek]="1"\n      [viewDate]="viewDate"\n      [events]="events"\n      [hourSegments]="hourSegments"\n      [hourSegmentHeight]="hourSegmentHeight"\n      [dayStartHour]="dayStartHour"\n      [dayStartMinute]="dayStartMinute"\n      [dayEndHour]="dayEndHour"\n      [dayEndMinute]="dayEndMinute"\n      [refresh]="refresh"\n      [locale]="locale"\n      [eventSnapSize]="eventSnapSize"\n      [tooltipPlacement]="tooltipPlacement"\n      [tooltipDisabled]="tooltipDisabled"\n      [tooltipTemplate]="tooltipTemplate"\n      [tooltipAppendToBody]="tooltipAppendToBody"\n      [tooltipDelay]="tooltipDelay"\n      [hourSegmentTemplate]="hourSegmentTemplate"\n      [eventTemplate]="eventTemplate"\n      [eventTitleTemplate]="eventTitleTemplate"\n      [eventActionsTemplate]="eventActionsTemplate"\n      [snapDraggedEvents]="snapDraggedEvents"\n      [allDayEventsLabelTemplate]="allDayEventsLabelTemplate"\n      [currentTimeMarkerTemplate]="currentTimeMarkerTemplate"\n      (eventClicked)="eventClicked.emit($event)"\n      (hourSegmentClicked)="hourSegmentClicked.emit($event)"\n      (eventTimesChanged)="eventTimesChanged.emit($event)"\n      (beforeViewRender)="beforeViewRender.emit($event)"\n    ></mwl-calendar-week-view>\n  '})],e)}(),me=function(){function e(e,t){var n=this;this.dateAdapter=e,this.zone=t,this.columnDate$=new i.BehaviorSubject(this.columnDate),this.marker$=this.zone.onStable.pipe(o.switchMap((function(){return i.interval(6e4)})),o.startWith(0),o.switchMapTo(this.columnDate$),o.map((function(e){var t=n.dateAdapter.setMinutes(n.dateAdapter.setHours(e,n.dayStartHour),n.dayStartMinute),a=n.dateAdapter.setMinutes(n.dateAdapter.setHours(e,n.dayEndHour),n.dayEndMinute),i=n.hourSegments*n.hourSegmentHeight/60,o=new Date;return{isVisible:n.dateAdapter.isSameDay(e,o)&&o>=t&&o<=a,top:n.dateAdapter.differenceInMinutes(o,t)*i}})))}return e.prototype.ngOnChanges=function(e){e.columnDate&&this.columnDate$.next(e.columnDate.currentValue)},e.ctorParameters=function(){return[{type:D},{type:t.NgZone}]},v([t.Input(),y("design:type",Date)],e.prototype,"columnDate",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayStartHour",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayStartMinute",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayEndHour",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"dayEndMinute",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"hourSegments",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"hourSegmentHeight",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),e=v([t.Component({selector:"mwl-calendar-week-view-current-time-marker",template:'\n    <ng-template\n      #defaultTemplate\n      let-columnDate="columnDate"\n      let-dayStartHour="dayStartHour"\n      let-dayStartMinute="dayStartMinute"\n      let-dayEndHour="dayEndHour"\n      let-dayEndMinute="dayEndMinute"\n      let-isVisible="isVisible"\n      let-topPx="topPx"\n    >\n      <div\n        class="cal-current-time-marker"\n        *ngIf="isVisible"\n        [style.top.px]="topPx"\n      >\n        <div style="position: absolute;height: 18px;width: 18px;top: -8px;left: -6px;">\n          <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18px" height="18px" style="fill: red;">\n            <path d="M0 0h24v24H0z" fill="none"></path>\n            <path d="M8 5v14l11-7z"></path>\n          </svg>\n        </div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        columnDate: columnDate,\n        dayStartHour: dayStartHour,\n        dayStartMinute: dayStartMinute,\n        dayEndHour: dayEndHour,\n        dayEndMinute: dayEndMinute,\n        isVisible: (marker$ | async)?.isVisible,\n        topPx: (marker$ | async)?.top\n      }"\n    >\n    </ng-template>\n  '}),y("design:paramtypes",[D,t.NgZone])],e)}(),he=function(){function e(){this.tooltipDisabled=!0,this.eventClicked=new t.EventEmitter,this.duration=0,this.isLive=!1}return e.prototype.ngOnChanges=function(){var e=this,t=this.weekEvent.event.end.getTime()-this.weekEvent.event.start.getTime();this.duration=Math.round(t/6e4),setInterval((function(){e.isLive=e.weekEvent.event.videoURL&&new Date>=e.weekEvent.event.start&&new Date<e.weekEvent.event.end}),60)},e.prototype.navigateToLiveStream=function(){this.eventClicked.emit({sourceEvent:this.weekEvent.event.videoURL,isQuicklink:!0})},v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"hourSegmentHeight",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"weekEvent",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"tooltipPlacement",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"tooltipAppendToBody",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"tooltipDisabled",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"tooltipDelay",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventTitleTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventActionsTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"tooltipTemplate",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"column",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"daysInWeek",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventClicked",void 0),e=v([t.Component({selector:"mwl-calendar-week-view-event",template:'\n    <ng-template\n      #defaultTemplate\n      let-weekEvent="weekEvent"\n      let-tooltipPlacement="tooltipPlacement"\n      let-eventClicked="eventClicked"\n      let-tooltipTemplate="tooltipTemplate"\n      let-tooltipAppendToBody="tooltipAppendToBody"\n      let-tooltipDisabled="tooltipDisabled"\n      let-tooltipDelay="tooltipDelay"\n      let-column="column"\n      let-daysInWeek="daysInWeek"\n    >\n      <div\n        class="cal-event"\n        [mwlCalendarTooltip]="\n          !tooltipDisabled\n            ? (weekEvent.event.title\n              | calendarEventTitle\n                : (daysInWeek === 1 ? \'dayTooltip\' : \'weekTooltip\')\n                : weekEvent.tempEvent || weekEvent.event)\n            : \'\'\n        "\n        [tooltipPlacement]="tooltipPlacement"\n        [tooltipEvent]="weekEvent.tempEvent || weekEvent.event"\n        [tooltipTemplate]="tooltipTemplate"\n        [tooltipAppendToBody]="tooltipAppendToBody"\n        [tooltipDelay]="tooltipDelay"\n        (mwlClick)="eventClicked.emit({ sourceEvent: $event })"\n        (mwlKeydownEnter)="eventClicked.emit({ sourceEvent: $event })"\n        tabindex="0"\n        role="application"\n        [attr.aria-label]="\n          { event: weekEvent.tempEvent || weekEvent.event, locale: locale }\n            | calendarA11y: \'eventDescription\'\n        "\n      >\n        <mwl-calendar-event-actions\n          [event]="weekEvent.tempEvent || weekEvent.event"\n          [customTemplate]="eventActionsTemplate"\n        >\n        </mwl-calendar-event-actions>\n        &ngsp;\n        <div\n          class="cal-event-top-bar"\n          [ngStyle]="{ \'border-top\': \'2px solid \' + weekEvent.event.color?.primary }"\n          *ngIf="!(weekEvent.tempEvent || weekEvent.event).allDay"\n        >\n          <span\n            class="cal-event-date-title cal-event-room-group"\n            [attr.aria-hidden]="{} | calendarA11y: \'hideEventTitle\'"\n          >\n            <svg\n              xmlns="http://www.w3.org/2000/svg"\n              viewBox="0 0 24 24"\n              width="12"\n              style="transform: translateY(2px);margin-right: 1px;"\n              height="12"\n            >\n              <path d="M0 0h24v24H0V0z" fill="none"></path>\n              <path\n                d="M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2zM12 20c-4.42 0-8-3.58-8-8s3.58-8 8-8 8 3.58 8 8-3.58 8-8 8zm.5-13H11v6l5.25 3.15.75-1.23-4.5-2.67z"\n              ></path>\n            </svg>\n            {{\n              weekEvent.event.start | calendarDate: \'eventStartTimeTitle\':\'de\'\n            }}\n            -\n            {{ weekEvent.event.end | calendarDate: \'eventEndTimeTitle\':\'de\' }}\n            Uhr\n          </span>\n\n          <span\n            *ngIf="weekEvent.event.onSite && weekEvent.event.room"\n            [ngStyle]="{\'width\': weekEvent.event.online ? \'50%\' : \'100%\'}"\n            class="cal-event-room-group"\n          >\n            <svg\n              xmlns="http://www.w3.org/2000/svg"\n              viewBox="0 0 24 24"\n              width="12"\n              height="12"\n              style="transform: translateY(2px);margin-right: 1px;"\n            >\n              <path d="M0 0h24v24H0V0z" fill="none"></path>\n              <path\n                d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"\n              ></path>\n              <circle cx="12" cy="9" r="2.5"></circle>\n            </svg>\n            {{ weekEvent.event.online ? weekEvent.event.room?.shortName : weekEvent.event.room?.name }}\n          </span>\n\n          <span\n            *ngIf="weekEvent.event.online"\n            [ngStyle]="{\'width\': weekEvent.event.onSite && weekEvent.event.room ? \'50%\' : \'100%\'}"\n            class="cal-event-room-group"\n          >\n            <svg xmlns="http://www.w3.org/2000/svg"\n              viewBox="0 0 24 24"\n              fill="black"\n              width="12"\n              height="12"\n              style="transform: translateY(2px);margin-right: 1px;">\n              <path d="M0 0h24v24H0V0z" fill="none"/>\n              <path d="M15 8v8H5V8h10m1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1z"/>\n            </svg>\n            Online\n            <span\n              *ngIf="isLive"\n              style="border: 1px solid red;\n              border-radius: 3px;\n              padding: 0px 4px;\n              margin: 0px 4px;\n              color: red;\n              font-size: 10px;\n              font-weight: 500;"\n              class="cal-event-live"\n              (click)="navigateToLiveStream()"\n            >\n              <svg\n                xmlns="http://www.w3.org/2000/svg"\n                width="10"\n                height="10"\n                style="transform: translateY(1px); margin-right: -1px;fill: red;"\n                viewBox="0 0 24 24"\n              >\n                <path d="M24 24H0V0h24v24z" fill="none"></path>\n                <circle cx="12" cy="12" r="8"></circle>\n              </svg>\n              LIVE\n            </span>\n          </span>\n\n          <div\n            class="cal-event-color"\n            style="pointer-events: none;"\n            [ngStyle]="{ backgroundColor: weekEvent.event.color?.primary }"\n          ></div>\n        </div>\n\n        <mwl-calendar-event-title\n          [event]="weekEvent.tempEvent || weekEvent.event"\n          [customTemplate]="eventTitleTemplate"\n          [view]="daysInWeek === 1 ? \'day\' : \'week\'"\n          (quicklinkClick)="\n            eventClicked.emit({ sourceEvent: $event, isQuicklink: true })\n          "\n        >\n        </mwl-calendar-event-title>\n\n        <mwl-mc-quicklinks\n          *ngIf="duration >= 45 && hourSegmentHeight >= 90"\n          (quicklinkClick)="\n            eventClicked.emit({ sourceEvent: $event, isQuicklink: true })\n          "\n          [event]="weekEvent.event"\n        ></mwl-mc-quicklinks>\n      </div>\n    </ng-template>\n\n    <ng-template\n      #allDayTemplate\n      let-weekEvent="weekEvent"\n      let-tooltipPlacement="tooltipPlacement"\n      let-eventClicked="eventClicked"\n      let-tooltipTemplate="tooltipTemplate"\n      let-tooltipAppendToBody="tooltipAppendToBody"\n      let-tooltipDisabled="tooltipDisabled"\n      let-tooltipDelay="tooltipDelay"\n      let-column="column"\n      let-daysInWeek="daysInWeek"\n    >\n      <div\n        class="cal-event cal-event-all-day"\n        [mwlCalendarTooltip]="\n          !tooltipDisabled\n            ? (weekEvent.event.title\n              | calendarEventTitle\n                : (daysInWeek === 1 ? \'dayTooltip\' : \'weekTooltip\')\n                : weekEvent.tempEvent || weekEvent.event)\n            : \'\'\n        "\n        [tooltipPlacement]="tooltipPlacement"\n        [tooltipEvent]="weekEvent.tempEvent || weekEvent.event"\n        [tooltipTemplate]="tooltipTemplate"\n        [tooltipAppendToBody]="tooltipAppendToBody"\n        [tooltipDelay]="tooltipDelay"\n        (mwlClick)="eventClicked.emit({ sourceEvent: $event })"\n        (mwlKeydownEnter)="eventClicked.emit({ sourceEvent: $event })"\n        tabindex="0"\n        role="application"\n        [attr.aria-label]="\n          { event: weekEvent.tempEvent || weekEvent.event, locale: locale }\n            | calendarA11y: \'eventDescription\'\n        "\n        [style.background]="weekEvent.event.color.primary || \'red\'"\n      >\n        <mwl-calendar-event-actions\n          [event]="weekEvent.tempEvent || weekEvent.event"\n          [customTemplate]="eventActionsTemplate"\n        >\n        </mwl-calendar-event-actions>\n        &ngsp;\n        <div\n          class="cal-event-top-bar"\n          *ngIf="!(weekEvent.tempEvent || weekEvent.event).allDay"\n        >\n          <span class="cal-event-room-group">Raum L30 / Gr. H1 - H24</span>\n          <div\n            class="cal-event-color"\n            [ngStyle]="{ backgroundColor: weekEvent.event.color?.primary }"\n          ></div>\n        </div>\n        <svg\n          class="all-day-event-icon"\n          xmlns="http://www.w3.org/2000/svg"\n          viewBox="0 0 24 24"\n          fill="white"\n          width="18px"\n          height="18px"\n        >\n          <path d="M0 0h24v24H0V0z" fill="none" />\n          <path\n            d="M20 2H4c-1.1 0-2 .9-2 2v18l4-4h14c1.1 0 2-.9 2-2V4c0-1.1-.9-2-2-2zm0 14H5.17L4 17.17V4h16v12zm-9-4h2v2h-2zm0-6h2v4h-2z"\n          />\n        </svg>\n        <mwl-calendar-event-title\n          [event]="weekEvent.tempEvent || weekEvent.event"\n          [customTemplate]="eventTitleTemplate"\n          [view]="daysInWeek === 1 ? \'day\' : \'week\'"\n        >\n        </mwl-calendar-event-title>\n      </div>\n    </ng-template>\n\n    <ng-template\n      [ngTemplateOutlet]="\n        customTemplate ||\n        (weekEvent.event && weekEvent.event.allDay\n          ? allDayTemplate\n          : defaultTemplate)\n      "\n      [ngTemplateOutletContext]="{\n        weekEvent: weekEvent,\n        tooltipPlacement: tooltipPlacement,\n        eventClicked: eventClicked,\n        tooltipTemplate: tooltipTemplate,\n        tooltipAppendToBody: tooltipAppendToBody,\n        tooltipDisabled: tooltipDisabled,\n        tooltipDelay: tooltipDelay,\n        column: column,\n        daysInWeek: daysInWeek\n      }"\n    >\n    </ng-template>\n  '})],e)}(),ge=function(){function e(){this.dayHeaderClicked=new t.EventEmitter,this.eventDropped=new t.EventEmitter,this.dragEnter=new t.EventEmitter,this.trackByWeekDayHeaderDate=W}return v([t.Input(),y("design:type",Array)],e.prototype,"days",void 0),v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"dayHeaderClicked",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventDropped",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"dragEnter",void 0),e=v([t.Component({selector:"mwl-calendar-week-view-header",template:'\n    <ng-template\n      #defaultTemplate\n      let-days="days"\n      let-locale="locale"\n      let-dayHeaderClicked="dayHeaderClicked"\n      let-eventDropped="eventDropped"\n      let-trackByWeekDayHeaderDate="trackByWeekDayHeaderDate"\n      let-dragEnter="dragEnter"\n    >\n      <div class="cal-day-headers" role="row">\n        <div\n          class="cal-header"\n          *ngFor="let day of days; trackBy: trackByWeekDayHeaderDate"\n          [class.cal-past]="day.isPast"\n          [class.cal-today]="day.isToday"\n          [class.cal-future]="day.isFuture"\n          [class.cal-weekend]="day.isWeekend"\n          [ngClass]="day.cssClass"\n          (mwlClick)="dayHeaderClicked.emit({ day: day, sourceEvent: $event })"\n          mwlDroppable\n          dragOverClass="cal-drag-over"\n          (drop)="\n            eventDropped.emit({\n              event: $event.dropData.event,\n              newStart: day.date\n            })\n          "\n          (dragEnter)="dragEnter.emit({ date: day.date })"\n          tabindex="0"\n          role="columnheader"\n        >\n          <b>{{ day.date | calendarDate: \'weekViewColumnHeader\':locale }}</b\n          ><br />\n          <span>{{\n            day.date | calendarDate: \'weekViewColumnSubHeader\':locale\n          }}</span>\n        </div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        days: days,\n        locale: locale,\n        dayHeaderClicked: dayHeaderClicked,\n        eventDropped: eventDropped,\n        dragEnter: dragEnter,\n        trackByWeekDayHeaderDate: trackByWeekDayHeaderDate\n      }"\n    >\n    </ng-template>\n  '})],e)}(),fe=function(){function e(){}return v([t.Input(),y("design:type",Object)],e.prototype,"segment",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"segmentHeight",void 0),v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"isTimeLabel",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"daysInWeek",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),e=v([t.Component({selector:"mwl-calendar-week-view-hour-segment",template:'\n    <ng-template\n      #defaultTemplate\n      let-segment="segment"\n      let-locale="locale"\n      let-segmentHeight="segmentHeight"\n      let-isTimeLabel="isTimeLabel"\n      let-daysInWeek="daysInWeek"\n    >\n      <div\n        [attr.aria-hidden]="\n          {}\n            | calendarA11y\n              : (daysInWeek === 1\n                  ? \'hideDayHourSegment\'\n                  : \'hideWeekHourSegment\')\n        "\n        class="cal-hour-segment"\n        [style.height.px]="segmentHeight"\n        [class.cal-hour-start]="segment.isStart"\n        [class.cal-after-hour-start]="!segment.isStart"\n        [ngClass]="segment.cssClass"\n      >\n        <div class="cal-time" *ngIf="isTimeLabel" [style.height.px]="segmentHeight * 2">\n          {{\n            segment.displayDate\n              | calendarDate\n                : (daysInWeek === 1 ? \'dayViewHour\' : \'weekViewHour\')\n                : locale\n          }}\n        </div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        segment: segment,\n        locale: locale,\n        segmentHeight: segmentHeight,\n        isTimeLabel: isTimeLabel,\n        daysInWeek: daysInWeek\n      }"\n    >\n    </ng-template>\n  '})],e)}(),we=function(){function e(e,t){this.dragContainerElement=e,this.startPosition=t.getBoundingClientRect()}return e.prototype.validateDrag=function(e){var t=e.x,n=e.y,a=e.snapDraggedEvents,i=e.dragAlreadyMoved,o=e.transform;if(a){var r=Object.assign({},this.startPosition,{left:this.startPosition.left+o.x,right:this.startPosition.right+o.x,top:this.startPosition.top+o.y,bottom:this.startPosition.bottom+o.y});return(q({x:t,y:n})||i)&&R(this.dragContainerElement.getBoundingClientRect(),r)}return q({x:t,y:n})||i},e}(),De=function(){function e(e,t){this.resizeContainerElement=e,this.minWidth=t}return e.prototype.validateResize=function(e){var t=e.rectangle;return!(this.minWidth&&Math.ceil(t.width)<Math.ceil(this.minWidth))&&R(this.resizeContainerElement.getBoundingClientRect(),t)},e}(),ke=function(){function n(e,n,a,i){this.cdr=e,this.utils=n,this.dateAdapter=i,this.events=[],this.excludeDays=[],this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.precision="days",this.snapDraggedEvents=!0,this.hourSegments=2,this.hourSegmentHeight=30,this.dayStartHour=0,this.dayStartMinute=0,this.dayEndHour=23,this.dayEndMinute=59,this.dayHeaderClicked=new t.EventEmitter,this.eventClicked=new t.EventEmitter,this.eventTimesChanged=new t.EventEmitter,this.beforeViewRender=new t.EventEmitter,this.hourSegmentClicked=new t.EventEmitter,this.allDayEventResizes=new Map,this.timeEventResizes=new Map,this.eventDragEnterByType={allDay:0,time:0},this.dragActive=!1,this.dragAlreadyMoved=!1,this.calendarId=Symbol("angular calendar week view id"),this.trackByWeekDayHeaderDate=W,this.trackByHourSegment=V,this.trackByHour=L,this.trackByWeekAllDayEvent=j,this.trackByWeekTimeEvent=P,this.trackByHourColumn=function(e,t){return t.hours[0]?t.hours[0].segments[0].date.toISOString():t},this.trackById=function(e,t){return t.id},this.locale=a}return n.prototype.ngOnInit=function(){var e=this;this.refresh&&(this.refreshSubscription=this.refresh.subscribe((function(){e.refreshAll(),e.cdr.markForCheck()})))},n.prototype.ngOnChanges=function(e){var t=e.viewDate||e.excludeDays||e.weekendDays||e.daysInWeek||e.weekStartsOn,n=e.viewDate||e.dayStartHour||e.dayStartMinute||e.dayEndHour||e.dayEndMinute||e.hourSegments||e.weekStartsOn||e.weekendDays||e.excludeDays||e.hourSegmentHeight||e.events||e.daysInWeek;t&&this.refreshHeader(),e.events&&A(this.events),n&&this.refreshBody(),(t||n)&&this.emitBeforeViewRender()},n.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()},n.prototype.timeEventResizeStarted=function(e,t,n){this.timeEventResizes.set(t.event,n),this.resizeStarted(e)},n.prototype.timeEventResizing=function(e,t){var n=this;this.timeEventResizes.set(e.event,t);var a=new Map,i=h(this.events);this.timeEventResizes.forEach((function(e,t){var o=n.getTimeEventResizedDates(t,e),r=c(c({},t),o);a.set(r,t);var l=i.indexOf(t);i[l]=r})),this.restoreOriginalEvents(i,a,!0)},n.prototype.timeEventResizeEnded=function(t){this.view=this.getWeekView(this.events);var n=this.timeEventResizes.get(t.event);if(n){this.timeEventResizes.delete(t.event);var a=this.getTimeEventResizedDates(t.event,n);this.eventTimesChanged.emit({newStart:a.start,newEnd:a.end,event:t.event,type:e.CalendarEventTimesChangedEventType.Resize})}},n.prototype.allDayEventResizeStarted=function(e,t,n){this.allDayEventResizes.set(t,{originalOffset:t.offset,originalSpan:t.span,edge:void 0!==n.edges.left?"left":"right"}),this.resizeStarted(e,this.getDayColumnWidth(e))},n.prototype.allDayEventResizing=function(e,t,n){var a=this.allDayEventResizes.get(e);if(void 0!==t.edges.left){var i=Math.round(+t.edges.left/n);e.offset=a.originalOffset+i,e.span=a.originalSpan-i}else if(void 0!==t.edges.right){i=Math.round(+t.edges.right/n);e.span=a.originalSpan+i}},n.prototype.allDayEventResizeEnded=function(t){var n=this.allDayEventResizes.get(t);if(n){var a="left"===n.edge,i=void 0;i=a?t.offset-n.originalOffset:t.span-n.originalSpan,t.offset=n.originalOffset,t.span=n.originalSpan;var o=t.event.start,r=t.event.end||t.event.start;a?o=Y(this.dateAdapter,o,i,this.excludeDays):r=Y(this.dateAdapter,r,i,this.excludeDays),this.eventTimesChanged.emit({newStart:o,newEnd:r,event:t.event,type:e.CalendarEventTimesChangedEventType.Resize}),this.allDayEventResizes.delete(t)}},n.prototype.getDayColumnWidth=function(e){return Math.floor(e.offsetWidth/this.days.length)},n.prototype.dateDragEnter=function(e){this.lastDragEnterDate=e},n.prototype.eventDropped=function(t,n,a){!function(e,t,n,a){return e.dropData&&e.dropData.event&&(e.dropData.calendarId!==a||e.dropData.event.allDay&&!n||!e.dropData.event.allDay&&n)}(t,0,a,this.calendarId)||this.lastDragEnterDate.getTime()!==n.getTime()||this.snapDraggedEvents&&t.dropData.event===this.lastDraggedEvent||this.eventTimesChanged.emit({type:e.CalendarEventTimesChangedEventType.Drop,event:t.dropData.event,newStart:n,allDay:a}),this.lastDraggedEvent=null},n.prototype.dragEnter=function(e){this.eventDragEnterByType[e]++},n.prototype.dragLeave=function(e){this.eventDragEnterByType[e]--},n.prototype.dragStarted=function(e,t,n){var a=this;this.dayColumnWidth=this.getDayColumnWidth(e);var i=new we(e,t);this.validateDrag=function(e){var t=e.x,n=e.y,o=e.transform;return 0===a.allDayEventResizes.size&&0===a.timeEventResizes.size&&i.validateDrag({x:t,y:n,snapDraggedEvents:a.snapDraggedEvents,dragAlreadyMoved:a.dragAlreadyMoved,transform:o})},this.dragActive=!0,this.dragAlreadyMoved=!1,this.lastDraggedEvent=null,this.eventDragEnterByType={allDay:0,time:0},!this.snapDraggedEvents&&n&&this.view.hourColumns.forEach((function(e){var t=e.events.find((function(e){return e.event===n.event&&e!==n}));t&&(t.width=0,t.height=0)})),this.cdr.markForCheck()},n.prototype.dragMove=function(e,t){var n=this.getDragMovedEventTimes(e,t,this.dayColumnWidth,!0),a=e.event,i=c(c({},a),n),o=this.events.map((function(e){return e===a?i:e}));this.restoreOriginalEvents(o,new Map([[i,a]]),this.snapDraggedEvents),this.dragAlreadyMoved=!0},n.prototype.allDayEventDragMove=function(){this.dragAlreadyMoved=!0},n.prototype.dragEnded=function(t,n,a,i){void 0===i&&(i=!1),this.view=this.getWeekView(this.events),this.dragActive=!1,this.validateDrag=null;var o=this.getDragMovedEventTimes(t,n,a,i),r=o.start,l=o.end;(this.snapDraggedEvents||this.eventDragEnterByType[i?"time":"allDay"]>0)&&function(e,t,n){var a=t||e;return n.start<=e&&e<=n.end||n.start<=a&&a<=n.end}(r,l,this.view.period)&&(this.lastDraggedEvent=t.event,this.eventTimesChanged.emit({newStart:r,newEnd:l,event:t.event,type:e.CalendarEventTimesChangedEventType.Drag,allDay:!i}))},n.prototype.refreshHeader=function(){this.days=this.utils.getWeekViewHeader(c({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays},U(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))},n.prototype.refreshBody=function(){this.view=this.getWeekView(this.events)},n.prototype.refreshAll=function(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender()},n.prototype.emitBeforeViewRender=function(){this.days&&this.view&&this.beforeViewRender.emit(c({header:this.days},this.view))},n.prototype.getWeekView=function(e){return this.utils.getWeekView(c({events:e,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,precision:this.precision,absolutePositionedEvents:!0,hourSegments:this.hourSegments,dayStart:{hour:this.dayStartHour,minute:this.dayStartMinute},dayEnd:{hour:this.dayEndHour,minute:this.dayEndMinute},segmentHeight:this.hourSegmentHeight,weekendDays:this.weekendDays},U(this.dateAdapter,this.viewDate,this.weekStartsOn,this.excludeDays,this.daysInWeek)))},n.prototype.getDragMovedEventTimes=function(e,t,n,a){var i,o=z(t.x,n)/n,r=a?N(t.y,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize):0,l=this.dateAdapter.addMinutes(Y(this.dateAdapter,e.event.start,o,this.excludeDays),r);return e.event.end&&(i=this.dateAdapter.addMinutes(Y(this.dateAdapter,e.event.end,o,this.excludeDays),r)),{start:l,end:i}},n.prototype.restoreOriginalEvents=function(e,t,n){void 0===n&&(n=!0);var a=this.view;this.view=this.getWeekView(e);var i=e.filter((function(e){return t.has(e)}));this.view.hourColumns.forEach((function(e,o){a.hourColumns[o].hours.forEach((function(t,n){t.segments.forEach((function(t,a){e.hours[n].segments[a].cssClass=t.cssClass}))})),i.forEach((function(a){var i=t.get(a),o=e.events.find((function(e){return e.event===a}));if(o)o.event=i,o.tempEvent=a,n||(o.height=0,o.width=0);else{var r={event:i,left:0,top:0,height:0,width:0,startsBeforeDay:!1,endsAfterDay:!1,tempEvent:a};e.events.push(r)}}))})),t.clear()},n.prototype.getTimeEventResizedDates=function(e,t){var n,a,i=(n=this.hourSegments,a=this.hourSegmentHeight,F(n,a)*a),o={start:e.start,end:$(this.dateAdapter,e,i)},r=(e.end,function(e,t){var n={};for(var a in e)Object.prototype.hasOwnProperty.call(e,a)&&t.indexOf(a)<0&&(n[a]=e[a]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols){var i=0;for(a=Object.getOwnPropertySymbols(e);i<a.length;i++)t.indexOf(a[i])<0&&Object.prototype.propertyIsEnumerable.call(e,a[i])&&(n[a[i]]=e[a[i]])}return n}(e,["end"])),l={start:this.dateAdapter.addMinutes(o.end,-1*i),end:$(this.dateAdapter,r,i)};if(void 0!==t.edges.left){var s=Math.round(+t.edges.left/this.dayColumnWidth),d=Y(this.dateAdapter,o.start,s,this.excludeDays);o.start=d<l.start?d:l.start}else if(void 0!==t.edges.right){s=Math.round(+t.edges.right/this.dayColumnWidth);var p=Y(this.dateAdapter,o.end,s,this.excludeDays);o.end=p>l.end?p:l.end}if(void 0!==t.edges.top){var c=N(t.edges.top,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize);d=this.dateAdapter.addMinutes(o.start,c);o.start=d<l.start?d:l.start}else if(void 0!==t.edges.bottom){c=N(t.edges.bottom,this.hourSegments,this.hourSegmentHeight,this.eventSnapSize),p=this.dateAdapter.addMinutes(o.end,c);o.end=p>l.end?p:l.end}return o},n.prototype.resizeStarted=function(e,t){this.dayColumnWidth=this.getDayColumnWidth(e);var n=new De(e,t);this.validateResize=function(e){var t=e.rectangle;return n.validateResize({rectangle:t})},this.cdr.markForCheck()},n.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:le},{type:String,decorators:[{type:t.Inject,args:[t.LOCALE_ID]}]},{type:D}]},v([t.Input(),y("design:type",Date)],n.prototype,"viewDate",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"events",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"excludeDays",void 0),v([t.Input(),y("design:type",i.Subject)],n.prototype,"refresh",void 0),v([t.Input(),y("design:type",String)],n.prototype,"locale",void 0),v([t.Input(),y("design:type",Boolean)],n.prototype,"tooltipDisabled",void 0),v([t.Input(),y("design:type",Object)],n.prototype,"tooltipPlacement",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"tooltipTemplate",void 0),v([t.Input(),y("design:type",Boolean)],n.prototype,"tooltipAppendToBody",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"tooltipDelay",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"weekStartsOn",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"headerTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"eventTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"eventTitleTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"eventActionsTemplate",void 0),v([t.Input(),y("design:type",String)],n.prototype,"precision",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"weekendDays",void 0),v([t.Input(),y("design:type",Boolean)],n.prototype,"snapDraggedEvents",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"hourSegments",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"hourSegmentHeight",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"dayStartHour",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"dayStartMinute",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"dayEndHour",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"dayEndMinute",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"hourSegmentTemplate",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"eventSnapSize",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"allDayEventsLabelTemplate",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"daysInWeek",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"currentTimeMarkerTemplate",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"dayHeaderClicked",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"eventClicked",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"eventTimesChanged",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"beforeViewRender",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"hourSegmentClicked",void 0),n=v([t.Component({selector:"mwl-calendar-week-view",template:'\n    <div class="cal-week-view" role="grid">\n      <mwl-calendar-week-view-header\n        style="display: none;"\n        [days]="days"\n        [locale]="locale"\n        [customTemplate]="headerTemplate"\n        (dayHeaderClicked)="dayHeaderClicked.emit($event)"\n        (eventDropped)="\n          eventDropped({ dropData: $event }, $event.newStart, true)\n        "\n        (dragEnter)="dateDragEnter($event.date)"\n      >\n      </mwl-calendar-week-view-header>\n      <div\n        class="cal-all-day-events"\n        #allDayEventsContainer\n        *ngIf="view.allDayEventRows.length > 0"\n        mwlDroppable\n        (dragEnter)="dragEnter(\'allDay\')"\n        (dragLeave)="dragLeave(\'allDay\')"\n      >\n        <div class="cal-day-columns">\n          <div\n            class="cal-time-label-column"\n            [ngTemplateOutlet]="allDayEventsLabelTemplate"\n          ></div>\n          <div\n            class="cal-day-column"\n            *ngFor="let day of days; trackBy: trackByWeekDayHeaderDate"\n            mwlDroppable\n            dragOverClass="cal-drag-over"\n            (drop)="eventDropped($event, day.date, true)"\n            (dragEnter)="dateDragEnter(day.date)"\n          ></div>\n        </div>\n        <div\n          *ngFor="let eventRow of view.allDayEventRows; trackBy: trackById"\n          #eventRowContainer\n          class="cal-events-row"\n        >\n          <div\n            *ngFor="\n              let allDayEvent of eventRow.row;\n              trackBy: trackByWeekAllDayEvent\n            "\n            #event\n            class="cal-event-container"\n            [class.cal-draggable]="\n              allDayEvent.event.draggable && allDayEventResizes.size === 0\n            "\n            [class.cal-starts-within-week]="!allDayEvent.startsBeforeWeek"\n            [class.cal-ends-within-week]="!allDayEvent.endsAfterWeek"\n            [ngClass]="allDayEvent.event?.cssClass"\n            [style.width.%]="(100 / days.length) * allDayEvent.span"\n            [style.marginLeft.%]="(100 / days.length) * allDayEvent.offset"\n            mwlResizable\n            [resizeSnapGrid]="{ left: dayColumnWidth, right: dayColumnWidth }"\n            [validateResize]="validateResize"\n            (resizeStart)="\n              allDayEventResizeStarted(eventRowContainer, allDayEvent, $event)\n            "\n            (resizing)="\n              allDayEventResizing(allDayEvent, $event, dayColumnWidth)\n            "\n            (resizeEnd)="allDayEventResizeEnded(allDayEvent)"\n            mwlDraggable\n            dragActiveClass="cal-drag-active"\n            [dropData]="{ event: allDayEvent.event, calendarId: calendarId }"\n            [dragAxis]="{\n              x: allDayEvent.event.draggable && allDayEventResizes.size === 0,\n              y:\n                !snapDraggedEvents &&\n                allDayEvent.event.draggable &&\n                allDayEventResizes.size === 0\n            }"\n            [dragSnapGrid]="snapDraggedEvents ? { x: dayColumnWidth } : {}"\n            [validateDrag]="validateDrag"\n            [touchStartLongPress]="{ delay: 300, delta: 30 }"\n            (dragStart)="dragStarted(eventRowContainer, event)"\n            (dragging)="allDayEventDragMove()"\n            (dragEnd)="dragEnded(allDayEvent, $event, dayColumnWidth)"\n          >\n            <div\n              class="cal-resize-handle cal-resize-handle-before-start"\n              *ngIf="\n                allDayEvent.event?.resizable?.beforeStart &&\n                !allDayEvent.startsBeforeWeek\n              "\n              mwlResizeHandle\n              [resizeEdges]="{ left: true }"\n            ></div>\n            <mwl-calendar-week-view-event\n              [locale]="locale"\n              [hourSegmentHeight]="hourSegmentHeight"\n              [weekEvent]="allDayEvent"\n              [tooltipPlacement]="tooltipPlacement"\n              [tooltipTemplate]="tooltipTemplate"\n              [tooltipAppendToBody]="tooltipAppendToBody"\n              [tooltipDelay]="tooltipDelay"\n              [customTemplate]="eventTemplate"\n              [eventTitleTemplate]="eventTitleTemplate"\n              [eventActionsTemplate]="eventActionsTemplate"\n              [daysInWeek]="daysInWeek"\n              (eventClicked)="\n                eventClicked.emit({\n                  event: allDayEvent.event,\n                  sourceEvent: $event.sourceEvent\n                })\n              "\n            >\n            </mwl-calendar-week-view-event>\n            <div\n              class="cal-resize-handle cal-resize-handle-after-end"\n              *ngIf="\n                allDayEvent.event?.resizable?.afterEnd &&\n                !allDayEvent.endsAfterWeek\n              "\n              mwlResizeHandle\n              [resizeEdges]="{ right: true }"\n            ></div>\n          </div>\n        </div>\n      </div>\n      <div\n        class="cal-time-events"\n        mwlDroppable\n        (dragEnter)="dragEnter(\'time\')"\n        (dragLeave)="dragLeave(\'time\')"\n      >\n        <div\n          class="cal-time-label-column"\n          *ngIf="view.hourColumns.length > 0 && daysInWeek !== 1"\n        >\n          <div\n            *ngFor="\n              let hour of view.hourColumns[0].hours;\n              trackBy: trackByHour;\n              let odd = odd\n            "\n            class="cal-hour"\n            [class.cal-hour-odd]="odd"\n          >\n            <mwl-calendar-week-view-hour-segment\n              *ngFor="let segment of hour.segments; trackBy: trackByHourSegment"\n              [style.height.px]="hourSegmentHeight"\n              [segment]="segment"\n              [segmentHeight]="hourSegmentHeight"\n              [locale]="locale"\n              [customTemplate]="hourSegmentTemplate"\n              [isTimeLabel]="true"\n              [daysInWeek]="daysInWeek"\n            >\n            </mwl-calendar-week-view-hour-segment>\n          </div>\n        </div>\n        <div\n          class="cal-day-columns"\n          [class.cal-resize-active]="timeEventResizes.size > 0"\n          #dayColumns\n        >\n          <div\n            class="cal-day-column"\n            *ngFor="let column of view.hourColumns; trackBy: trackByHourColumn"\n          >\n            <mwl-calendar-week-view-current-time-marker\n              [columnDate]="column.date"\n              [dayStartHour]="dayStartHour"\n              [dayStartMinute]="dayStartMinute"\n              [dayEndHour]="dayEndHour"\n              [dayEndMinute]="dayEndMinute"\n              [hourSegments]="hourSegments"\n              [hourSegmentHeight]="hourSegmentHeight"\n              [customTemplate]="currentTimeMarkerTemplate"\n            ></mwl-calendar-week-view-current-time-marker>\n            <div class="cal-events-container">\n              <div\n                *ngFor="\n                  let timeEvent of column.events;\n                  trackBy: trackByWeekTimeEvent\n                "\n                #event\n                class="cal-event-container"\n                id="cal-event-{{ timeEvent.event.id }}"\n                [class.cal-draggable]="\n                  timeEvent.event.draggable && timeEventResizes.size === 0\n                "\n                [class.cal-starts-within-day]="!timeEvent.startsBeforeDay"\n                [class.cal-ends-within-day]="!timeEvent.endsAfterDay"\n                [ngClass]="timeEvent.event.cssClass"\n                [hidden]="timeEvent.height === 0 && timeEvent.width === 0"\n                [style.top.px]="timeEvent.top"\n                [style.height.px]="timeEvent.height"\n                [style.left.%]="timeEvent.left"\n                [style.width.%]="timeEvent.width"\n                mwlResizable\n                [resizeSnapGrid]="{\n                  left: dayColumnWidth,\n                  right: dayColumnWidth,\n                  top: eventSnapSize || hourSegmentHeight,\n                  bottom: eventSnapSize || hourSegmentHeight\n                }"\n                [validateResize]="validateResize"\n                [allowNegativeResizes]="true"\n                (resizeStart)="\n                  timeEventResizeStarted(dayColumns, timeEvent, $event)\n                "\n                (resizing)="timeEventResizing(timeEvent, $event)"\n                (resizeEnd)="timeEventResizeEnded(timeEvent)"\n                mwlDraggable\n                dragActiveClass="cal-drag-active"\n                [dropData]="{ event: timeEvent.event, calendarId: calendarId }"\n                [dragAxis]="{\n                  x: timeEvent.event.draggable && timeEventResizes.size === 0,\n                  y: timeEvent.event.draggable && timeEventResizes.size === 0\n                }"\n                [dragSnapGrid]="\n                  snapDraggedEvents\n                    ? {\n                        x: dayColumnWidth,\n                        y: eventSnapSize || hourSegmentHeight\n                      }\n                    : {}\n                "\n                [touchStartLongPress]="{ delay: 300, delta: 30 }"\n                [ghostDragEnabled]="!snapDraggedEvents"\n                [ghostElementTemplate]="weekEventTemplate"\n                [validateDrag]="validateDrag"\n                (dragStart)="dragStarted(dayColumns, event, timeEvent)"\n                (dragging)="dragMove(timeEvent, $event)"\n                (dragEnd)="dragEnded(timeEvent, $event, dayColumnWidth, true)"\n              >\n                <div\n                  class="cal-resize-handle cal-resize-handle-before-start"\n                  *ngIf="\n                    timeEvent.event?.resizable?.beforeStart &&\n                    !timeEvent.startsBeforeDay\n                  "\n                  mwlResizeHandle\n                  [resizeEdges]="{\n                    left: true,\n                    top: true\n                  }"\n                ></div>\n                <ng-template\n                  [ngTemplateOutlet]="weekEventTemplate"\n                ></ng-template>\n                <ng-template #weekEventTemplate>\n                  <mwl-calendar-week-view-event\n                    [locale]="locale"\n                    [hourSegmentHeight]="hourSegmentHeight"\n                    [weekEvent]="timeEvent"\n                    [tooltipPlacement]="tooltipPlacement"\n                    [tooltipTemplate]="tooltipTemplate"\n                    [tooltipAppendToBody]="tooltipAppendToBody"\n                    [tooltipDisabled]="\n                      tooltipDisabled || dragActive || timeEventResizes.size > 0\n                    "\n                    [tooltipDelay]="tooltipDelay"\n                    [customTemplate]="eventTemplate"\n                    [eventTitleTemplate]="eventTitleTemplate"\n                    [eventActionsTemplate]="eventActionsTemplate"\n                    [column]="column"\n                    [daysInWeek]="daysInWeek"\n                    (eventClicked)="\n                      eventClicked.emit({\n                        event: timeEvent.event,\n                        sourceEvent: $event.sourceEvent\n                      })\n                    "\n                  >\n                  </mwl-calendar-week-view-event>\n                </ng-template>\n                <div\n                  class="cal-resize-handle cal-resize-handle-after-end"\n                  *ngIf="\n                    timeEvent.event?.resizable?.afterEnd &&\n                    !timeEvent.endsAfterDay\n                  "\n                  mwlResizeHandle\n                  [resizeEdges]="{\n                    right: true,\n                    bottom: true\n                  }"\n                ></div>\n              </div>\n            </div>\n\n            <div\n              *ngFor="\n                let hour of column.hours;\n                trackBy: trackByHour;\n                let odd = odd\n              "\n              class="cal-hour"\n              [class.cal-hour-odd]="odd"\n            >\n              <mwl-calendar-week-view-hour-segment\n                *ngFor="\n                  let segment of hour.segments;\n                  trackBy: trackByHourSegment\n                "\n                [style.height.px]="hourSegmentHeight"\n                [segment]="segment"\n                [segmentHeight]="hourSegmentHeight"\n                [locale]="locale"\n                [customTemplate]="hourSegmentTemplate"\n                [daysInWeek]="daysInWeek"\n                (mwlClick)="\n                  hourSegmentClicked.emit({\n                    date: segment.date,\n                    sourceEvent: $event\n                  })\n                "\n                [clickListenerDisabled]="\n                  hourSegmentClicked.observers.length === 0\n                "\n                mwlDroppable\n                [dragOverClass]="\n                  !dragActive || !snapDraggedEvents ? \'cal-drag-over\' : null\n                "\n                dragActiveClass="cal-drag-active"\n                (drop)="eventDropped($event, segment.date, false)"\n                (dragEnter)="dateDragEnter(segment.date)"\n                [isTimeLabel]="daysInWeek === 1"\n              >\n              </mwl-calendar-week-view-hour-segment>\n            </div>\n          </div>\n        </div>\n        \n        <div\n          class="cal-time-label-column" style="border-left: thin solid #e1e1e1;"\n          *ngIf="view.hourColumns.length > 0 && daysInWeek !== 1"\n        >\n          <div\n            *ngFor="\n              let hour of view.hourColumns[0].hours;\n              trackBy: trackByHour;\n              let odd = odd\n            "\n            class="cal-hour"\n            [class.cal-hour-odd]="odd"\n          >\n            <mwl-calendar-week-view-hour-segment\n              *ngFor="let segment of hour.segments; trackBy: trackByHourSegment"\n              [style.height.px]="hourSegmentHeight"\n              [segment]="segment"\n              [segmentHeight]="hourSegmentHeight"\n              [locale]="locale"\n              [customTemplate]="hourSegmentTemplate"\n              [isTimeLabel]="false"\n              [daysInWeek]="daysInWeek"\n            >\n            </mwl-calendar-week-view-hour-segment>\n          </div>\n        </div>\n      </div>\n    </div>\n  '}),u(2,t.Inject(t.LOCALE_ID)),y("design:paramtypes",[t.ChangeDetectorRef,le,String,D])],n)}(),Ee=function(){function e(){this.quicklinkClick=new t.EventEmitter,this.isLive=!1}return e.prototype.ngOnChanges=function(){var e=this;setInterval((function(){e.isLive=e.event.videoURL&&new Date>=e.event.start&&new Date<e.event.end}),60)},e.prototype.navigateToLink=function(e){this.quicklinkClick.emit(e)},v([t.Input(),y("design:type",Object)],e.prototype,"event",void 0),v([t.Output(),y("design:type",t.EventEmitter)],e.prototype,"quicklinkClick",void 0),e=v([t.Component({selector:"mwl-mc-quicklinks",template:'<div class="mc-quicklink" (click)="\n    event.lesson.hasLearningMaterial && event.lesson.iliasURL &&\n      navigateToLink(\'ref_id=\' + event.lesson.iliasURL)\n  ">\n  <svg [ngStyle]="{\n      fill: (event.lesson.hasLearningMaterial && event.lesson.iliasURL ? event.color?.primary : \'gray\'),\n      opacity: (event.lesson.hasLearningMaterial && event.lesson.iliasURL ? \'1\' : \'0.8\')\n    }" xmlns="http://www.w3.org/2000/svg" enable-background="new 0 0 24 24" viewBox="0 0 24 24" width="18px"\n    height="18px">\n    <path\n      d="M17.5,10.5c0.88,0,1.73,0.09,2.5,0.26V9.24C19.21,9.09,18.36,9,17.5,9c-1.7,0-3.24,0.29-4.5,0.83v1.66 C14.13,10.85,15.7,10.5,17.5,10.5z" />\n    <path\n      d="M13,12.49v1.66c1.13-0.64,2.7-0.99,4.5-0.99c0.88,0,1.73,0.09,2.5,0.26V11.9c-0.79-0.15-1.64-0.24-2.5-0.24 C15.8,11.66,14.26,11.96,13,12.49z" />\n    <path\n      d="M17.5,14.33c-1.7,0-3.24,0.29-4.5,0.83v1.66c1.13-0.64,2.7-0.99,4.5-0.99c0.88,0,1.73,0.09,2.5,0.26v-1.52 C19.21,14.41,18.36,14.33,17.5,14.33z" />\n    <rect fill="none" height="24" width="24" />\n    <path\n      d="M21,5c-1.11-0.35-2.33-0.5-3.5-0.5c-1.95,0-4.05,0.4-5.5,1.5c-1.45-1.1-3.55-1.5-5.5-1.5S2.45,4.9,1,6v14.65 c0,0.25,0.25,0.5,0.5,0.5c0.1,0,0.15-0.05,0.25-0.05C3.1,20.45,5.05,20,6.5,20c1.95,0,4.05,0.4,5.5,1.5c1.35-0.85,3.8-1.5,5.5-1.5 c1.65,0,3.35,0.3,4.75,1.05c0.1,0.05,0.15,0.05,0.25,0.05c0.25,0,0.5-0.25,0.5-0.5V6C22.4,5.55,21.75,5.25,21,5z M21,18.5 c-1.1-0.35-2.3-0.5-3.5-0.5c-1.7,0-4.15,0.65-5.5,1.5V8c1.35-0.85,3.8-1.5,5.5-1.5c1.2,0,2.4,0.15,3.5,0.5V18.5z" />\n  </svg>\n  \x3c!--<mat-icon [ngStyle]="{ \'color\': color }">menu_book</mat-icon>--\x3e\n</div>\n\n\x3c!--<div\n  class="mc-quicklink"\n  (click)="navigateToLink(\'../lesson/learning-objectives/43\')"\n>\n  <svg\n    [ngStyle]="{ fill: event.color?.primary }"\n    xmlns="http://www.w3.org/2000/svg"\n    viewBox="0 0 24 24"\n    width="18px"\n    height="18px"\n  >\n    <path d="M0 0h24v24H0V0z" fill="none" />\n    <path\n      d="M12.36 6l.08.39.32 1.61H18v6h-3.36l-.08-.39-.32-1.61H7V6h5.36M14 4H5v17h2v-7h5.6l.4 2h7V6h-5.6L14 4z"\n    />\n  </svg>--\x3e\n\x3c!--<mat-icon [ngStyle]="{ \'color\': color }" class="material-icons-outlined">assistant_photo</mat-icon>--\x3e\n\x3c!--</div>--\x3e\n\n\x3c!--<div class="mc-quicklink" (click)="navigateToLink(\'../performance\')">\n  <svg\n    [ngStyle]="{ fill: event.color?.primary }"\n    xmlns="http://www.w3.org/2000/svg"\n    viewBox="0 0 24 24"\n    width="18px"\n    height="18px"\n  >\n    <path d="M0 0h24v24H0V0z" fill="none" />\n    <path\n      d="M14 10H2v2h12v-2zm0-4H2v2h12V6zM2 16h8v-2H2v2zm19.5-4.5L23 13l-6.99 7-4.51-4.5L13 14l3.01 3 5.49-5.5z"\n    />\n  </svg>--\x3e\n\x3c!--<mat-icon [ngStyle]="{ \'color\': color }">playlist_add_check</mat-icon>--\x3e\n\x3c!--</div>--\x3e\n\n<div *ngIf="event.onSite && !event.online" class="mc-quicklink"\n  (click)="event.room.roomLink && navigateToLink(event.room.roomLink)">\n  <svg\n    [ngStyle]="{ fill: (event.room.roomLink ? event.color?.primary : \'gray\'), opacity: (event.room.roomLink ? \'1\' : \'0.8\') }"\n    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18px" height="18px">\n    <path d="M0 0h24v24H0V0z" fill="none" />\n    <path\n      d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z" />\n    <circle cx="12" cy="9" r="2.5" />\n  </svg>\n  \x3c!--<mat-icon [ngStyle]="{ \'color\': color }" class="material-icons-outlined">room</mat-icon>--\x3e\n</div>\n<div *ngIf="!event.onSite && event.online" class="mc-quicklink" (click)="isLive && navigateToLink(event.videoURL)">\n  <svg [ngStyle]="{\n      fill: isLive ? event.color?.primary : \'gray\',\n      opacity: isLive ? \'1\' : \'0.8\'\n    }" xmlns="http://www.w3.org/2000/svg" height="18px" viewBox="0 0 24 24" width="18px">\n    \x3c!--<path\n      d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z" />--\x3e\n    <path d="M0 0h24v24H0V0z" fill="none"></path>\n    <path\n      d="M15 8v8H5V8h10m1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1z">\n    </path>\n  </svg>\n  \x3c!--<mat-icon [ngStyle]="{ \'color\': color }" class="material-icons-outlined">ondemand_video</mat-icon>--\x3e\n</div>\n\n<div *ngIf="event.onSite && event.online" class="mc-quicklink"\n  (click)="(event.room.roomLink || isLive) && navigateToLink(\'hybrid\')">\n  <svg\n    [ngStyle]="{ fill: ((event.room.roomLink || isLive) ? event.color?.primary : \'gray\'), opacity: ((event.room.roomLink || isLive) ? \'1\' : \'0.8\') }"\n    xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="26px" height="26px" style="margin: auto;">\n    <path d="M0 0h24v24H0V0z" fill="none" style="transform: scale(0.7);" />\n    \x3c!--<path xmlns="http://www.w3.org/2000/svg"\n      d="M21 3H3c-1.11 0-2 .89-2 2v12c0 1.1.89 2 2 2h5v2h8v-2h5c1.1 0 1.99-.9 1.99-2L23 5c0-1.11-.9-2-2-2zm0 14H3V5h18v12zm-5-6l-7 4V7z"\n      style="transform: scale(0.5) translate(24px, 24px);" />--\x3e\n    <path\n      d="M15 8v8H5V8h10m1-2H4c-.55 0-1 .45-1 1v10c0 .55.45 1 1 1h12c.55 0 1-.45 1-1v-3.5l4 4v-11l-4 4V7c0-.55-.45-1-1-1z"\n      style="transform: scale(0.6) translate(18px, 18px);"></path>\n    <path\n      d="M12 2C8.13 2 5 5.13 5 9c0 5.25 7 13 7 13s7-7.75 7-13c0-3.87-3.13-7-7-7zM7 9c0-2.76 2.24-5 5-5s5 2.24 5 5c0 2.88-2.88 7.19-5 9.88C9.92 16.21 7 11.85 7 9z"\n      style="transform: scale(0.6);" />\n    <circle xmlns="http://www.w3.org/2000/svg" cx="12" cy="9" r="2.5" style="transform: scale(0.6);" />\n    <line xmlns="http://www.w3.org/2000/svg" [ngStyle]="{ stroke: event.color?.primary }" x1="20" y1="4" x2="4"\n      y2="20" />\n  </svg>\n  \x3c!--<mat-icon [ngStyle]="{ \'color\': color }" class="material-icons-outlined">ondemand_video</mat-icon>--\x3e\n</div>\n\n\x3c!--<div class="mc-quicklink" (click)="navigateToLink(\'lesson/evaluation/43\')">\n  <svg [ngStyle]="{ fill: event.color?.primary }" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" width="18px"\n    height="18px">\n    <path d="M0 0h24v24H0V0zm0 0h24v24H0V0z" fill="none" />\n    <path\n      d="M9 21h9c.83 0 1.54-.5 1.84-1.22l3.02-7.05c.09-.23.14-.47.14-.73v-2c0-1.1-.9-2-2-2h-6.31l.95-4.57.03-.32c0-.41-.17-.79-.44-1.06L14.17 1 7.58 7.59C7.22 7.95 7 8.45 7 9v10c0 1.1.9 2 2 2zM9 9l4.34-4.34L12 10h9v2l-3 7H9V9zM1 9h4v12H1z" />\n  </svg>\n  <mat-icon [ngStyle]="{ \'color\': color }" class="material-icons-outlined">thumb_up</mat-icon>\n</div>--\x3e\n\n\x3c!--<div\n  class="mc-quicklink"\n  (click)="navigateToLink(\'../lesson/event-swapping/43\')"\n>\n  <svg\n    [ngStyle]="{ fill: event.color?.primary }"\n    xmlns="http://www.w3.org/2000/svg"\n    viewBox="0 0 24 24"\n    width="18px"\n    height="18px"\n  >\n    <path d="M0 0h24v24H0V0z" fill="none" />\n    <path\n      d="M7 11h2v2H7v-2zm14-5v14c0 1.1-.9 2-2 2H5c-1.11 0-2-.9-2-2l.01-14c0-1.1.88-2 1.99-2h1V2h2v2h8V2h2v2h1c1.1 0 2 .9 2 2zM5 8h14V6H5v2zm14 12V10H5v10h14zm-4-7h2v-2h-2v2zm-4 0h2v-2h-2v2z"\n    />\n  </svg>--\x3e\n\x3c!--<mat-icon [ngStyle]="{ \'color\': color }">date_range</mat-icon>--\x3e\n\x3c!--</div>--\x3e\n',styles:[":host{display:flex;justify-content:flex-start;flex-wrap:wrap;padding:0 10px 10px}:host .mc-quicklink{box-shadow:0 0 4px 1px #ccc;height:36px;width:36px;background:#f6f6f6;display:flex;margin:5px;border:1px solid transparent}:host .mc-quicklink:hover{opacity:.7}:host .mc-quicklink svg{margin:auto;height:20px;width:20px;font-size:20px;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}:host .mc-quicklink svg *{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;pointer-events:none}"]}),y("design:paramtypes",[])],e)}(),Te=function(){function e(){}return e=v([t.NgModule({imports:[n.CommonModule,s.ResizableModule,l.DragAndDropModule,ue],declarations:[ke,ge,he,fe,me,Ee],exports:[s.ResizableModule,l.DragAndDropModule,ke,ge,he,fe,me,Ee]})],e)}(),Ce=function(){function e(){}return e=v([t.NgModule({imports:[n.CommonModule,ue,Te],declarations:[ye],exports:[ye]})],e)}(),Se=function(){function e(){this.highlightDay=new t.EventEmitter,this.unhighlightDay=new t.EventEmitter,this.eventClicked=new t.EventEmitter,this.trackByEventId=B,this.validateDrag=q}return v([t.Input(),y("design:type",Object)],e.prototype,"day",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"openDay",void 0),v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",Object)],e.prototype,"tooltipPlacement",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"tooltipAppendToBody",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"tooltipTemplate",void 0),v([t.Input(),y("design:type",Number)],e.prototype,"tooltipDelay",void 0),v([t.Output(),y("design:type",t.EventEmitter)],e.prototype,"highlightDay",void 0),v([t.Output(),y("design:type",t.EventEmitter)],e.prototype,"unhighlightDay",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventClicked",void 0),e=v([t.Component({selector:"mwl-calendar-month-cell",template:'\n    <ng-template\n      #defaultTemplate\n      let-day="day"\n      let-openDay="openDay"\n      let-locale="locale"\n      let-tooltipPlacement="tooltipPlacement"\n      let-highlightDay="highlightDay"\n      let-unhighlightDay="unhighlightDay"\n      let-eventClicked="eventClicked"\n      let-tooltipTemplate="tooltipTemplate"\n      let-tooltipAppendToBody="tooltipAppendToBody"\n      let-tooltipDelay="tooltipDelay"\n      let-trackByEventId="trackByEventId"\n      let-validateDrag="validateDrag"\n    >\n      <div\n        class="cal-cell-top"\n        [attr.aria-label]="\n          { day: day, locale: locale } | calendarA11y: \'monthCell\'\n        "\n      >\n        <span aria-hidden="true">\n          <span class="cal-day-badge" *ngIf="day.badgeTotal > 0">{{\n            day.badgeTotal\n          }}</span>\n          <span class="cal-day-number">{{\n            day.date | calendarDate: \'monthViewDayNumber\':locale\n          }}</span>\n        </span>\n      </div>\n      <div class="cal-events" *ngIf="day.events.length > 0">\n        <div\n          class="cal-event"\n          *ngFor="let event of day.events; trackBy: trackByEventId"\n          [ngStyle]="{ backgroundColor: event.color?.primary }"\n          [ngClass]="event?.cssClass"\n          (mouseenter)="highlightDay.emit({ event: event })"\n          (mouseleave)="unhighlightDay.emit({ event: event })"\n          [mwlCalendarTooltip]="\n            event.title | calendarEventTitle: \'monthTooltip\':event\n          "\n          [tooltipPlacement]="tooltipPlacement"\n          [tooltipEvent]="event"\n          [tooltipTemplate]="tooltipTemplate"\n          [tooltipAppendToBody]="tooltipAppendToBody"\n          [tooltipDelay]="tooltipDelay"\n          mwlDraggable\n          [class.cal-draggable]="event.draggable"\n          dragActiveClass="cal-drag-active"\n          [dropData]="{ event: event, draggedFrom: day }"\n          [dragAxis]="{ x: event.draggable, y: event.draggable }"\n          [validateDrag]="validateDrag"\n          [touchStartLongPress]="{ delay: 300, delta: 30 }"\n          (mwlClick)="eventClicked.emit({ event: event, sourceEvent: $event })"\n          [attr.aria-hidden]="{} | calendarA11y: \'hideMonthCellEvents\'"\n        ></div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        day: day,\n        openDay: openDay,\n        locale: locale,\n        tooltipPlacement: tooltipPlacement,\n        highlightDay: highlightDay,\n        unhighlightDay: unhighlightDay,\n        eventClicked: eventClicked,\n        tooltipTemplate: tooltipTemplate,\n        tooltipAppendToBody: tooltipAppendToBody,\n        tooltipDelay: tooltipDelay,\n        trackByEventId: trackByEventId,\n        validateDrag: validateDrag\n      }"\n    >\n    </ng-template>\n  ',host:{class:"cal-cell cal-day-cell","[class.cal-past]":"day.isPast","[class.cal-today]":"day.isToday","[class.cal-future]":"day.isFuture","[class.cal-weekend]":"day.isWeekend","[class.cal-in-month]":"day.inMonth","[class.cal-out-month]":"!day.inMonth","[class.cal-has-events]":"day.events.length > 0","[class.cal-open]":"day === openDay","[class.cal-event-highlight]":"!!day.backgroundColor"}})],e)}(),be=function(){function e(){this.columnHeaderClicked=new t.EventEmitter,this.trackByWeekDayHeaderDate=W}return v([t.Input(),y("design:type",Array)],e.prototype,"days",void 0),v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"columnHeaderClicked",void 0),e=v([t.Component({selector:"mwl-calendar-month-view-header",template:'\n    <ng-template\n      #defaultTemplate\n      let-days="days"\n      let-locale="locale"\n      let-trackByWeekDayHeaderDate="trackByWeekDayHeaderDate"\n    >\n      <div class="cal-cell-row cal-header" role="row">\n        <div\n          class="cal-cell"\n          *ngFor="let day of days; trackBy: trackByWeekDayHeaderDate"\n          [class.cal-past]="day.isPast"\n          [class.cal-today]="day.isToday"\n          [class.cal-future]="day.isFuture"\n          [class.cal-weekend]="day.isWeekend"\n          (click)="\n            columnHeaderClicked.emit({\n              isoDayNumber: day.day,\n              sourceEvent: $event\n            })\n          "\n          [ngClass]="day.cssClass"\n          tabindex="0"\n          role="columnheader"\n        >\n          {{ day.date | calendarDate: \'monthViewColumnHeader\':locale }}\n        </div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        days: days,\n        locale: locale,\n        trackByWeekDayHeaderDate: trackByWeekDayHeaderDate\n      }"\n    >\n    </ng-template>\n  '})],e)}(),Ie=function(){function n(e,n,a,i){var o=this;this.cdr=e,this.utils=n,this.dateAdapter=i,this.events=[],this.excludeDays=[],this.activeDayIsOpen=!1,this.tooltipPlacement="auto",this.tooltipAppendToBody=!0,this.tooltipDelay=null,this.beforeViewRender=new t.EventEmitter,this.dayClicked=new t.EventEmitter,this.eventClicked=new t.EventEmitter,this.columnHeaderClicked=new t.EventEmitter,this.eventTimesChanged=new t.EventEmitter,this.trackByRowOffset=function(e,t){return o.view.days.slice(t,o.view.totalDaysVisibleInWeek).map((function(e){return e.date.toISOString()})).join("-")},this.trackByDate=function(e,t){return t.date.toISOString()},this.locale=a}return n.prototype.ngOnInit=function(){var e=this;this.refresh&&(this.refreshSubscription=this.refresh.subscribe((function(){e.refreshAll(),e.cdr.markForCheck()})))},n.prototype.ngOnChanges=function(e){var t=e.viewDate||e.excludeDays||e.weekendDays,n=e.viewDate||e.events||e.excludeDays||e.weekendDays;t&&this.refreshHeader(),e.events&&A(this.events),n&&this.refreshBody(),(t||n)&&this.emitBeforeViewRender(),(e.activeDayIsOpen||e.viewDate||e.events||e.excludeDays||e.activeDay)&&this.checkActiveDayIsOpen()},n.prototype.ngOnDestroy=function(){this.refreshSubscription&&this.refreshSubscription.unsubscribe()},n.prototype.toggleDayHighlight=function(e,t){this.view.days.forEach((function(n){t&&n.events.indexOf(e)>-1?n.backgroundColor=e.color&&e.color.secondary||"#D1E8FF":delete n.backgroundColor}))},n.prototype.eventDropped=function(t,n,a){if(t!==a){var i=this.dateAdapter.getYear(t.date),o=this.dateAdapter.getMonth(t.date),r=this.dateAdapter.getDate(t.date),l=this.dateAdapter.setDate(this.dateAdapter.setMonth(this.dateAdapter.setYear(n.start,i),o),r),s=void 0;if(n.end){var d=this.dateAdapter.differenceInSeconds(l,n.start);s=this.dateAdapter.addSeconds(n.end,d)}this.eventTimesChanged.emit({event:n,newStart:l,newEnd:s,day:t,type:e.CalendarEventTimesChangedEventType.Drop})}},n.prototype.refreshHeader=function(){this.columnHeaders=this.utils.getWeekViewHeader({viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})},n.prototype.refreshBody=function(){this.view=this.utils.getMonthView({events:this.events,viewDate:this.viewDate,weekStartsOn:this.weekStartsOn,excluded:this.excludeDays,weekendDays:this.weekendDays})},n.prototype.checkActiveDayIsOpen=function(){var e=this;if(!0===this.activeDayIsOpen){var t=this.activeDay||this.viewDate;this.openDay=this.view.days.find((function(n){return e.dateAdapter.isSameDay(n.date,t)}));var n=this.view.days.indexOf(this.openDay);this.openRowIndex=Math.floor(n/this.view.totalDaysVisibleInWeek)*this.view.totalDaysVisibleInWeek}else this.openRowIndex=null,this.openDay=null},n.prototype.refreshAll=function(){this.refreshHeader(),this.refreshBody(),this.emitBeforeViewRender(),this.checkActiveDayIsOpen()},n.prototype.emitBeforeViewRender=function(){this.columnHeaders&&this.view&&this.beforeViewRender.emit({header:this.columnHeaders,body:this.view.days,period:this.view.period})},n.ctorParameters=function(){return[{type:t.ChangeDetectorRef},{type:le},{type:String,decorators:[{type:t.Inject,args:[t.LOCALE_ID]}]},{type:D}]},v([t.Input(),y("design:type",Date)],n.prototype,"viewDate",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"events",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"excludeDays",void 0),v([t.Input(),y("design:type",Boolean)],n.prototype,"activeDayIsOpen",void 0),v([t.Input(),y("design:type",Date)],n.prototype,"activeDay",void 0),v([t.Input(),y("design:type",i.Subject)],n.prototype,"refresh",void 0),v([t.Input(),y("design:type",String)],n.prototype,"locale",void 0),v([t.Input(),y("design:type",Object)],n.prototype,"tooltipPlacement",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"tooltipTemplate",void 0),v([t.Input(),y("design:type",Boolean)],n.prototype,"tooltipAppendToBody",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"tooltipDelay",void 0),v([t.Input(),y("design:type",Number)],n.prototype,"weekStartsOn",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"headerTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"cellTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"openDayEventsTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"eventTitleTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],n.prototype,"eventActionsTemplate",void 0),v([t.Input(),y("design:type",Array)],n.prototype,"weekendDays",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"beforeViewRender",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"dayClicked",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"eventClicked",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"columnHeaderClicked",void 0),v([t.Output(),y("design:type",Object)],n.prototype,"eventTimesChanged",void 0),n=v([t.Component({selector:"mwl-calendar-month-view",template:'\n    <div class="cal-month-view" role="grid">\n      <mwl-calendar-month-view-header\n        [days]="columnHeaders"\n        [locale]="locale"\n        (columnHeaderClicked)="columnHeaderClicked.emit($event)"\n        [customTemplate]="headerTemplate"\n      >\n      </mwl-calendar-month-view-header>\n      <div class="cal-days">\n        <div\n          *ngFor="let rowIndex of view.rowOffsets; trackBy: trackByRowOffset"\n        >\n          <div class="cal-cell-row">\n            <mwl-calendar-month-cell\n              *ngFor="\n                let day of view.days\n                  | slice: rowIndex:rowIndex + view.totalDaysVisibleInWeek;\n                trackBy: trackByDate\n              "\n              [ngClass]="day?.cssClass"\n              [day]="day"\n              [openDay]="openDay"\n              [locale]="locale"\n              [tooltipPlacement]="tooltipPlacement"\n              [tooltipAppendToBody]="tooltipAppendToBody"\n              [tooltipTemplate]="tooltipTemplate"\n              [tooltipDelay]="tooltipDelay"\n              [customTemplate]="cellTemplate"\n              [ngStyle]="{ backgroundColor: day.backgroundColor }"\n              (mwlClick)="dayClicked.emit({ day: day, sourceEvent: $event })"\n              [clickListenerDisabled]="dayClicked.observers.length === 0"\n              (mwlKeydownEnter)="\n                dayClicked.emit({ day: day, sourceEvent: $event })\n              "\n              (highlightDay)="toggleDayHighlight($event.event, true)"\n              (unhighlightDay)="toggleDayHighlight($event.event, false)"\n              mwlDroppable\n              dragOverClass="cal-drag-over"\n              (drop)="\n                eventDropped(\n                  day,\n                  $event.dropData.event,\n                  $event.dropData.draggedFrom\n                )\n              "\n              (eventClicked)="\n                eventClicked.emit({\n                  event: $event.event,\n                  sourceEvent: $event.sourceEvent\n                })\n              "\n              [attr.tabindex]="{} | calendarA11y: \'monthCellTabIndex\'"\n            >\n            </mwl-calendar-month-cell>\n          </div>\n          <mwl-calendar-open-day-events\n            [locale]="locale"\n            [isOpen]="openRowIndex === rowIndex"\n            [events]="openDay?.events"\n            [date]="openDay?.date"\n            [customTemplate]="openDayEventsTemplate"\n            [eventTitleTemplate]="eventTitleTemplate"\n            [eventActionsTemplate]="eventActionsTemplate"\n            (eventClicked)="\n              eventClicked.emit({\n                event: $event.event,\n                sourceEvent: $event.sourceEvent\n              })\n            "\n            mwlDroppable\n            dragOverClass="cal-drag-over"\n            (drop)="\n              eventDropped(\n                openDay,\n                $event.dropData.event,\n                $event.dropData.draggedFrom\n              )\n            "\n          >\n          </mwl-calendar-open-day-events>\n        </div>\n      </div>\n    </div>\n  '}),u(2,t.Inject(t.LOCALE_ID)),y("design:paramtypes",[t.ChangeDetectorRef,le,String,D])],n)}(),xe=d.trigger("collapse",[d.state("void",d.style({height:0,overflow:"hidden","padding-top":0,"padding-bottom":0})),d.state("*",d.style({height:"*",overflow:"hidden","padding-top":"*","padding-bottom":"*"})),d.transition("* => void",d.animate("150ms ease-out")),d.transition("void => *",d.animate("150ms ease-in"))]),Oe=function(){function e(){this.isOpen=!1,this.eventClicked=new t.EventEmitter,this.trackByEventId=B,this.validateDrag=q}return v([t.Input(),y("design:type",String)],e.prototype,"locale",void 0),v([t.Input(),y("design:type",Boolean)],e.prototype,"isOpen",void 0),v([t.Input(),y("design:type",Array)],e.prototype,"events",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"customTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventTitleTemplate",void 0),v([t.Input(),y("design:type",t.TemplateRef)],e.prototype,"eventActionsTemplate",void 0),v([t.Input(),y("design:type",Date)],e.prototype,"date",void 0),v([t.Output(),y("design:type",Object)],e.prototype,"eventClicked",void 0),e=v([t.Component({selector:"mwl-calendar-open-day-events",template:'\n    <ng-template\n      #defaultTemplate\n      let-events="events"\n      let-eventClicked="eventClicked"\n      let-isOpen="isOpen"\n      let-trackByEventId="trackByEventId"\n      let-validateDrag="validateDrag"\n    >\n      <div\n        class="cal-open-day-events"\n        [@collapse]\n        *ngIf="isOpen"\n        role="application"\n      >\n        <span\n          tabindex="-1"\n          role="alert"\n          [attr.aria-label]="\n            { date: date, locale: locale } | calendarA11y: \'openDayEventsAlert\'\n          "\n        ></span>\n        <span\n          tabindex="0"\n          role="landmark"\n          [attr.aria-label]="\n            { date: date, locale: locale }\n              | calendarA11y: \'openDayEventsLandmark\'\n          "\n        ></span>\n        <div\n          *ngFor="let event of events; trackBy: trackByEventId"\n          [ngClass]="event?.cssClass"\n          mwlDraggable\n          [class.cal-draggable]="event.draggable"\n          dragActiveClass="cal-drag-active"\n          [dropData]="{ event: event }"\n          [dragAxis]="{ x: event.draggable, y: event.draggable }"\n          [validateDrag]="validateDrag"\n          [touchStartLongPress]="{ delay: 300, delta: 30 }"\n        >\n          <span\n            class="cal-event"\n            [ngStyle]="{ backgroundColor: event.color?.primary }"\n          >\n          </span>\n          &ngsp;\n          <mwl-calendar-event-title\n            [event]="event"\n            [customTemplate]="eventTitleTemplate"\n            view="month"\n            (mwlClick)="\n              eventClicked.emit({ event: event, sourceEvent: $event })\n            "\n            (mwlKeydownEnter)="\n              eventClicked.emit({ event: event, sourceEvent: $event })\n            "\n            tabindex="0"\n            [attr.aria-label]="\n              { event: event, locale: locale }\n                | calendarA11y: \'eventDescription\'\n            "\n          >\n          </mwl-calendar-event-title>\n          &ngsp;\n          <mwl-calendar-event-actions\n            [event]="event"\n            [customTemplate]="eventActionsTemplate"\n          >\n          </mwl-calendar-event-actions>\n        </div>\n      </div>\n    </ng-template>\n    <ng-template\n      [ngTemplateOutlet]="customTemplate || defaultTemplate"\n      [ngTemplateOutletContext]="{\n        events: events,\n        eventClicked: eventClicked,\n        isOpen: isOpen,\n        trackByEventId: trackByEventId,\n        validateDrag: validateDrag\n      }"\n    >\n    </ng-template>\n  ',animations:[xe]})],e)}(),Me=function(){function e(){}return e=v([t.NgModule({imports:[n.CommonModule,l.DragAndDropModule,ue],declarations:[Ie,Se,Oe,be],exports:[l.DragAndDropModule,Ie,Se,Oe,be]})],e)}(),He=function(){function e(){}var n;return n=e,e.forRoot=function(e,t){return void 0===t&&(t={}),{ngModule:n,providers:[e,t.eventTitleFormatter||J,t.dateFormatter||G,t.utils||le,t.a11y||f]}},e=n=v([t.NgModule({imports:[ue,Me,Te,Ce],exports:[ue,Me,Te,Ce]})],e)}();Object.defineProperty(e,"DAYS_OF_WEEK",{enumerable:!0,get:function(){return r.DAYS_OF_WEEK}}),e.CalendarA11y=f,e.CalendarAngularDateFormatter=K,e.CalendarCommonModule=ue,e.CalendarDateFormatter=G,e.CalendarDayModule=Ce,e.CalendarDayViewComponent=ye,e.CalendarEventTitleFormatter=J,e.CalendarModule=He,e.CalendarMomentDateFormatter=ce,e.CalendarMonthModule=Me,e.CalendarMonthViewComponent=Ie,e.CalendarNativeDateFormatter=ve,e.CalendarUtils=le,e.CalendarWeekModule=Te,e.CalendarWeekViewComponent=ke,e.DateAdapter=D,e.MOMENT=pe,e.collapseAnimation=xe,e.getWeekViewPeriod=U,e.ɵa=Oe,e.ɵb=Z,e.ɵc=X,e.ɵd=oe,e.ɵe=re,e.ɵf=ae,e.ɵg=ne,e.ɵh=ie,e.ɵi=Q,e.ɵj=ee,e.ɵk=w,e.ɵl=se,e.ɵm=de,e.ɵn=Se,e.ɵo=be,e.ɵp=ge,e.ɵq=he,e.ɵr=fe,e.ɵs=me,e.ɵt=Ee,Object.defineProperty(e,"__esModule",{value:!0})}));
  //# sourceMappingURL=angular-calendar.umd.min.js.map