<html><head><meta name="color-scheme" content="light dark"></head><body><pre style="word-wrap: break-word; white-space: pre-wrap;">{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///angular-bootstrap-calendar-tpls.min.js","webpack:///webpack/bootstrap 123a5b3691bba3a16f3f","webpack:///./src/entry.js","webpack:///external \"angular\"","webpack:///./src/templates/calendar.html","webpack:///./src/templates/calendarDayView.html","webpack:///./src/templates/calendarHourList.html","webpack:///./src/templates/calendarMonthCell.html","webpack:///./src/templates/calendarMonthCellEvents.html","webpack:///./src/templates/calendarMonthView.html","webpack:///./src/templates/calendarSlideBox.html","webpack:///./src/templates/calendarWeekView.html","webpack:///./src/templates/calendarYearView.html","webpack:///./src/directives/mwlCalendar.js","webpack:///./src/directives/mwlCalendarDay.js","webpack:///./src/directives/mwlCalendarHourList.js","webpack:///./src/directives/mwlCalendarMonth.js","webpack:///./src/directives/mwlCalendarSlideBox.js","webpack:///./src/directives/mwlCalendarWeek.js","webpack:///./src/directives/mwlCalendarYear.js","webpack:///./src/directives/mwlCollapseFallback.js","webpack:///./src/directives/mwlDateModifier.js","webpack:///./src/directives/mwlDraggable.js","webpack:///./src/directives/mwlDroppable.js","webpack:///./src/directives/mwlElementDimensions.js","webpack:///./src/directives/mwlResizable.js","webpack:///./src/filters/calendarDate.js","webpack:///./src/filters/calendarLimitTo.js","webpack:///./src/filters/calendarTruncateEventTitle.js","webpack:///./src/filters/calendarTrustAsHtml.js","webpack:///./src/services/calendarConfig.js","webpack:///./src/services/calendarHelper.js","webpack:///./src/services/calendarTitle.js","webpack:///./src/services/interact.js","webpack:///./src/services/moment.js","webpack:///./src/directives \\.js$","webpack:///./src/filters \\.js$","webpack:///./src/services \\.js$","webpack:///./src/templates nonrecursive \\.html","webpack:///external \"moment\"","webpack:///external {\"root\":\"interact\",\"commonjs\":\"interact.js\",\"commonjs2\":\"interact.js\",\"amd\":\"interact\"}"],"names":["root","factory","exports","module","require","e","define","amd","this","__WEBPACK_EXTERNAL_MODULE_1__","__WEBPACK_EXTERNAL_MODULE_38__","__WEBPACK_EXTERNAL_MODULE_39__","modules","__webpack_require__","moduleId","installedModules","id","loaded","call","m","c","p","requireAll","r","keys","forEach","angular","templates","templatesContext","templateName","templateNameWithoutPrefix","replace","cacheTemplateName","configTemplateName","template","config","calendarConfig","run","$templateCache","get","put","name","controller","$scope","$log","$timeout","$attrs","$locale","moment","calendarTitle","calendarHelper","eventIsValid","event","startsAt","warn","isDate","isDefined","endsAt","isAfter","refreshCalendar","vm","view","viewTitle","viewDate","events","filter","map","index","Object","defineProperty","enumerable","configurable","value","currentDate","shouldUpdate","previousDate","clone","startOf","isSame","previousView","$broadcast","changeView","newDay","dateClicked","date","rawDate","toDate","nextView","year","month","week","onViewChangeClick","calendarDate","calendarNextView","loadTemplates","then","templatesLoaded","eventsWatched","$watchGroup","locale","$watch","err","error","directive","templateUrl","calendar","restrict","scope","editEventHtml","deleteEventHtml","cellIsOpen","slideBoxDisabled","onEventClick","onEventTimesChanged","onEditEventClick","onDeleteEventClick","onTimespanClick","cellModifier","dayViewStart","dayViewEnd","dayViewSplit","bindToController","$sce","$on","dayViewHeight","getDayViewHeight","getDayView","eventDragComplete","minuteChunksMoved","minutesDiff","newStart","add","newEnd","tempStartsAt","calendarEvent","calendarNewEventStart","calendarNewEventEnd","eventDragged","eventResizeComplete","edge","start","end","eventResized","calendarDayView","updateDays","parseInt","hours","dayCounter","dayWidth","minutes","seconds","i","diff","push","label","formatDate","dateFormats","hour","hourChunks","j","originalLocale","eventDropped","adjustEndDateFromStartDiff","getClickedDate","baseDate","days","calendarHourList","openRowIndex","weekDays","getWeekDayNames","getMonthView","rows","Math","floor","length","monthOffsets","openDayIndex","day","inMonth","dayClicked","dayClickedFirstRun","$event","calendarCell","defaultPrevented","dayIndex","indexOf","highlightEvent","shouldAddClass","highlightClass","dayContainsEvent","type","handleEventDrop","newDayDate","draggedFromDate","calendarDraggedFromDate","calendarMonthView","link","element","attrs","calendarCtrl","isCollapsed","isOpen","calendarSlideBox","elm","ctrls","isMonthView","isYearView","showTimes","showTimesOnWeekView","getWeekViewWithTimes","getWeekView","weekDragged","daysDiff","weekResized","tempTimeChanged","calendarWeekView","openMonthIndex","getYearView","monthClicked","monthClickedFirstRun","monthIndex","newMonthDate","calendarYearView","$element","mwlCollapseFallback","shouldCollapse","addClass","removeClass","$injector","has","onClick","setToToday","Date","increment","decrement","subtract","$apply","bind","unbind","$window","$parse","interact","translateElement","transformValue","css","getUnitsMoved","x","y","gridDimensions","result","snap","snapGridDimensions","snapGrid","targets","createSnapGrid","draggable","onstart","target","dropData","style","pointerEvents","onDragStart","onmove","parseFloat","attr","dx","dy","axis","getComputedStyle","position","onDrag","onend","onDragEnd","removeAttr","mwlDraggable","enabled","unset","DROP_ACTIVE_CLASS","dropActiveClass","dropzone","ondragenter","ondragleave","ondropdeactivate","ondrop","relatedTarget","onDrop","mwlElementDimensions","assign","width","offsetWidth","height","offsetHeight","getUnitsResized","unitsResized","data","originalDimensions","round","resizeEdge","originalDimensionsStyle","resizable","edges","resizeEdges","rect","deltaRect","left","top","onResize","transform","onResizeEnd","mwlResizable","format","getFromConfig","$stateful","limitToFilter","version","minor","input","limit","begin","abs","Number","Infinity","isNaN","isNumber","toString","isArray","isString","slice","max","string","boxHeight","substr","text","trustAsHtml","constant","allDateFormats","weekDay","time","datetime","title","dateFormatter","titleFormats","displayEventEndTimes","displayAllMonthEvents","i18nStrings","weekNumber","$q","$templateRequest","dateFilter","Error","oldStart","oldEnd","diffInSeconds","getRecurringEventPeriod","eventPeriod","recursOn","containerPeriodStart","eventStart","eventEnd","periodStart","set","eventIsInPeriod","periodEnd","isBefore","filterEventsInPeriod","startPeriod","endPeriod","getEventsInPeriod","period","allEvents","endOf","getBadgeTotal","incrementsBadgeTotal","weekdays","count","weekday","eventsInPeriod","periodEvents","cell","isToday","badgeTotal","startOfMonth","endOfMonthView","today","monthEvents","isPast","isFuture","isWeekend","startOfWeek","endOfWeek","weekDayLabel","dayLabel","eventsSorted","offset","weekViewStart","weekViewEnd","daySpan","dayOffset","dayStartHour","dayEndHour","hourHeight","calendarStart","calendarEnd","calendarHeight","hourHeightMultiplier","buckets","diffStart","cannotFitInABucket","bucket","bucketIndex","canFitInThisBucket","bucketItem","weekView","newEvents","dayEvents","newDayEvents","concat","dayViewStartM","dayViewEndM","templatePromises","key","all","isoWeek","webpackContext","req","webpackContextResolve","./mwlCalendar.js","./mwlCalendarDay.js","./mwlCalendarHourList.js","./mwlCalendarMonth.js","./mwlCalendarSlideBox.js","./mwlCalendarWeek.js","./mwlCalendarYear.js","./mwlCollapseFallback.js","./mwlDateModifier.js","./mwlDraggable.js","./mwlDroppable.js","./mwlElementDimensions.js","./mwlResizable.js","resolve","./calendarDate.js","./calendarLimitTo.js","./calendarTruncateEventTitle.js","./calendarTrustAsHtml.js","./calendarConfig.js","./calendarHelper.js","./calendarTitle.js","./interact.js","./moment.js","./calendar.html","./calendarDayView.html","./calendarHourList.html","./calendarMonthCell.html","./calendarMonthCellEvents.html","./calendarMonthView.html","./calendarSlideBox.html","./calendarWeekView.html","./calendarYearView.html","code"],"mappings":"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","file":"angular-bootstrap-calendar-tpls.min.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' &amp;&amp; typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"), require(\"moment\"), (function webpackLoadOptionalExternalModule() { try { return require(\"interact.js\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' &amp;&amp; define.amd)\n\t\tdefine([\"angular\", \"moment\", \"interact\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angularBootstrapCalendarModuleName\"] = factory(require(\"angular\"), require(\"moment\"), (function webpackLoadOptionalExternalModule() { try { return require(\"interact.js\"); } catch(e) {} }()));\n\telse\n\t\troot[\"angularBootstrapCalendarModuleName\"] = factory(root[\"angular\"], root[\"moment\"], root[\"interact\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__) {\nreturn \n\n\n/** WEBPACK FOOTER **\n ** webpack/universalModuleDefinition\n **/","/**\n * angular-bootstrap-calendar - A pure AngularJS bootstrap themed responsive calendar that can display events and has views for year, month, week and day\n * @version v0.19.5\n * @link https://github.com/mattlewis92/angular-bootstrap-calendar\n * @license MIT\n */\n(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' &amp;&amp; typeof module === 'object')\n\t\tmodule.exports = factory(require(\"angular\"), require(\"moment\"), (function webpackLoadOptionalExternalModule() { try { return require(\"interact.js\"); } catch(e) {} }()));\n\telse if(typeof define === 'function' &amp;&amp; define.amd)\n\t\tdefine([\"angular\", \"moment\", \"interact\"], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"angularBootstrapCalendarModuleName\"] = factory(require(\"angular\"), require(\"moment\"), (function webpackLoadOptionalExternalModule() { try { return require(\"interact.js\"); } catch(e) {} }()));\n\telse\n\t\troot[\"angularBootstrapCalendarModuleName\"] = factory(root[\"angular\"], root[\"moment\"], root[\"interact\"]);\n})(this, function(__WEBPACK_EXTERNAL_MODULE_1__, __WEBPACK_EXTERNAL_MODULE_38__, __WEBPACK_EXTERNAL_MODULE_39__) {\nreturn /******/ (function(modules) { // webpackBootstrap\n/******/ \t// The module cache\n/******/ \tvar installedModules = {};\n/******/\n/******/ \t// The require function\n/******/ \tfunction __webpack_require__(moduleId) {\n/******/\n/******/ \t\t// Check if module is in cache\n/******/ \t\tif(installedModules[moduleId])\n/******/ \t\t\treturn installedModules[moduleId].exports;\n/******/\n/******/ \t\t// Create a new module (and put it into the cache)\n/******/ \t\tvar module = installedModules[moduleId] = {\n/******/ \t\t\texports: {},\n/******/ \t\t\tid: moduleId,\n/******/ \t\t\tloaded: false\n/******/ \t\t};\n/******/\n/******/ \t\t// Execute the module function\n/******/ \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n/******/\n/******/ \t\t// Flag the module as loaded\n/******/ \t\tmodule.loaded = true;\n/******/\n/******/ \t\t// Return the exports of the module\n/******/ \t\treturn module.exports;\n/******/ \t}\n/******/\n/******/\n/******/ \t// expose the modules object (__webpack_modules__)\n/******/ \t__webpack_require__.m = modules;\n/******/\n/******/ \t// expose the module cache\n/******/ \t__webpack_require__.c = installedModules;\n/******/\n/******/ \t// __webpack_public_path__\n/******/ \t__webpack_require__.p = \"\";\n/******/\n/******/ \t// Load entry module and return exports\n/******/ \treturn __webpack_require__(0);\n/******/ })\n/************************************************************************/\n/******/ ([\n/* 0 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\t__webpack_require__(2);\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tfunction requireAll(r) {\n\t  r.keys().forEach(r);\n\t}\n\t\n\tvar templates = {};\n\t\n\tif (true) {\n\t\n\t  var templatesContext = __webpack_require__(37);\n\t\n\t  templatesContext.keys().forEach(function(templateName) {\n\t    var templateNameWithoutPrefix = templateName.replace('./', '');\n\t    var cacheTemplateName = 'mwl/' + templateNameWithoutPrefix;\n\t    var configTemplateName = templateNameWithoutPrefix.replace('.html', '');\n\t    templates[configTemplateName] = {\n\t      cacheTemplateName: cacheTemplateName,\n\t      template: templatesContext(templateName)\n\t    };\n\t  });\n\t\n\t}\n\t\n\tmodule.exports = angular\n\t  .module('mwl.calendar', [])\n\t  .config([\"calendarConfig\", function(calendarConfig) {\n\t    angular.forEach(templates, function(template, templateName) {\n\t      if (!calendarConfig.templates[templateName]) {\n\t        calendarConfig.templates[templateName] = template.cacheTemplateName;\n\t      }\n\t    });\n\t  }])\n\t  .run([\"$templateCache\", function($templateCache) {\n\t\n\t    angular.forEach(templates, function(template) {\n\t      if (!$templateCache.get(template.cacheTemplateName)) {\n\t        $templateCache.put(template.cacheTemplateName, template.template);\n\t      }\n\t    });\n\t\n\t  }]).name;\n\t\n\trequireAll(__webpack_require__(34));\n\trequireAll(__webpack_require__(35));\n\trequireAll(__webpack_require__(36));\n\n\n/***/ },\n/* 1 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n/***/ },\n/* 2 */\n/***/ function(module, exports) {\n\n\t// removed by extract-text-webpack-plugin\n\n/***/ },\n/* 3 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-context ng-switch=vm.view ng-if=vm.templatesLoaded&gt; &lt;div class=\\\"alert alert-danger\\\" ng-switch-default&gt;The value passed to the view attribute of the calendar is not set&lt;/div&gt; &lt;div class=\\\"alert alert-danger\\\" ng-hide=vm.viewDate&gt;The value passed to view-date attribute of the calendar is not set&lt;/div&gt; &lt;mwl-calendar-year events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-edit-event-click=vm.onEditEventClick on-delete-event-click=vm.onDeleteEventClick on-timespan-click=vm.onTimespanClick edit-event-html=vm.editEventHtml delete-event-html=vm.deleteEventHtml cell-is-open=vm.cellIsOpen cell-modifier=vm.cellModifier slide-box-disabled=vm.slideBoxDisabled ng-switch-when=year&gt; &lt;/mwl-calendar-year&gt; &lt;mwl-calendar-month events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-edit-event-click=vm.onEditEventClick on-delete-event-click=vm.onDeleteEventClick on-timespan-click=vm.onTimespanClick edit-event-html=vm.editEventHtml delete-event-html=vm.deleteEventHtml cell-is-open=vm.cellIsOpen cell-modifier=vm.cellModifier slide-box-disabled=vm.slideBoxDisabled ng-switch-when=month&gt; &lt;/mwl-calendar-month&gt; &lt;mwl-calendar-week events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit on-timespan-click=vm.onTimespanClick ng-switch-when=week&gt; &lt;/mwl-calendar-week&gt; &lt;mwl-calendar-day events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-timespan-click=vm.onTimespanClick day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit ng-switch-when=day&gt; &lt;/mwl-calendar-day&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 4 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-day-box&gt; &lt;div class=\\\"cal-day-panel clearfix\\\" ng-style=\\\"{height: vm.dayViewHeight + 'px'}\\\"&gt; &lt;mwl-calendar-hour-list day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit on-timespan-click=vm.onTimespanClick on-event-times-changed=vm.onEventTimesChanged view-date=vm.viewDate&gt; &lt;/mwl-calendar-hour-list&gt; &lt;div class=\\\"pull-left day-event day-highlight\\\" ng-repeat=\\\"event in vm.view track by event.$id\\\" ng-class=\\\"'dh-event-' + event.type + ' ' + event.cssClass\\\" ng-style=\\\"{top: event.top + 'px', left: event.left + 60 + 'px', height: event.height + 'px'}\\\" mwl-draggable=\\\"event.draggable === true\\\" axis=\\\"'xy'\\\" snap-grid=\\\"{y: 30, x: 50}\\\" on-drag=\\\"vm.eventDragged(event, y)\\\" on-drag-end=\\\"vm.eventDragComplete(event, y)\\\" mwl-resizable=\\\"event.resizable === true &amp;&amp; event.endsAt\\\" resize-edges=\\\"{top: true, bottom: true}\\\" on-resize=\\\"vm.eventResized(event, edge, y)\\\" on-resize-end=\\\"vm.eventResizeComplete(event, edge, y)\\\"&gt; &lt;span class=cal-hours&gt; &lt;span ng-show=\\\"event.top == 0\\\"&gt;&lt;span ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'day':true\\\"&gt;&lt;/span&gt;, &lt;/span&gt; &lt;span ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'time':true\\\"&gt;&lt;/span&gt; &lt;/span&gt; &lt;a href=javascript:; class=event-item ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\"&gt; &lt;span ng-bind-html=\\\"vm.$sce.trustAsHtml(event.title) | calendarTruncateEventTitle:20:event.height\\\"&gt;&lt;/span&gt; &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 5 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-day-panel-hour&gt; &lt;div class=cal-day-hour ng-repeat=\\\"hour in vm.hours track by $index\\\"&gt; &lt;div class=cal-day-hour-part ng-repeat=\\\"chunk in vm.hourChunks track by chunk\\\" ng-click=\\\"vm.onTimespanClick({calendarDate: vm.getClickedDate(hour.date, vm.dayViewSplit * $index)})\\\" mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, vm.getClickedDate(hour.date, vm.dayViewSplit * $index))\\\" ng-if=!vm.dayWidth&gt; &lt;div class=cal-day-hour-part-time&gt; &lt;strong ng-bind=hour.label ng-show=$first&gt;&lt;/strong&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=cal-day-hour-part ng-repeat=\\\"chunk in vm.hourChunks track by chunk\\\" ng-if=vm.dayWidth&gt; &lt;div class=cal-day-hour-part-time&gt; &lt;strong ng-bind=hour.label ng-show=$first&gt;&lt;/strong&gt; &lt;/div&gt; &lt;div class=cal-day-hour-part-spacer ng-repeat=\\\"dayIndex in [0, 1, 2, 3, 4, 5, 6]\\\" ng-style=\\\"{width: vm.dayWidth + 'px'}\\\" ng-click=\\\"vm.onTimespanClick({calendarDate: vm.getClickedDate(hour.date, vm.dayViewSplit * $parent.$index, dayIndex)})\\\" mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, vm.getClickedDate(hour.date, vm.dayViewSplit * $parent.$index, dayIndex))\\\"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 6 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div mwl-droppable on-drop=\\\"vm.handleEventDrop(dropData.event, day.date, dropData.draggedFromDate)\\\" class=\\\"cal-month-day {{ day.cssClass }}\\\" ng-class=\\\"{\\n    'cal-day-outmonth': !day.inMonth,\\n    'cal-day-inmonth': day.inMonth,\\n    'cal-day-weekend': day.isWeekend,\\n    'cal-day-past': day.isPast,\\n    'cal-day-today': day.isToday,\\n    'cal-day-future': day.isFuture\\n  }\\\"&gt; &lt;small class=\\\"cal-events-num badge badge-important pull-left\\\" ng-show=\\\"day.badgeTotal &gt; 0\\\" ng-bind=day.badgeTotal&gt; &lt;/small&gt; &lt;span class=pull-right data-cal-date ng-click=vm.calendarCtrl.dateClicked(day.date) ng-bind=day.label&gt; &lt;/span&gt; &lt;div class=cal-day-tick ng-show=\\\"dayIndex === vm.openDayIndex &amp;&amp; vm.view[vm.openDayIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\"&gt; &lt;i class=\\\"glyphicon glyphicon-chevron-up\\\"&gt;&lt;/i&gt; &lt;i class=\\\"fa fa-chevron-up\\\"&gt;&lt;/i&gt; &lt;/div&gt; &lt;ng-include src=vm.calendarConfig.templates.calendarMonthCellEvents&gt;&lt;/ng-include&gt; &lt;div id=cal-week-box ng-if=\\\"$first &amp;&amp; rowHovered\\\"&gt; {{ vm.calendarConfig.i18nStrings.weekNumber.replace('{week}', day.date.clone().add(1, 'day').isoWeek()) }} &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 7 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=events-list ng-show=\\\"day.events.length &gt; 0\\\"&gt; &lt;a ng-repeat=\\\"event in day.events | orderBy:'startsAt' track by event.$id\\\" href=javascript:; ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\" class=\\\"pull-left event\\\" ng-class=\\\"'event-' + event.type + ' ' + event.cssClass\\\" ng-mouseenter=\\\"vm.highlightEvent(event, true)\\\" ng-mouseleave=\\\"vm.highlightEvent(event, false)\\\" tooltip-append-to-body=true uib-tooltip-html=\\\"((event.startsAt | calendarDate:'time':true) + (vm.calendarConfig.displayEventEndTimes &amp;&amp; event.endsAt ? ' - ' + (event.endsAt | calendarDate:'time':true) : '') + ' - ' + event.title) | calendarTrustAsHtml\\\" mwl-draggable=\\\"event.draggable === true\\\" drop-data=\\\"{event: event, draggedFromDate: day.date.toDate()}\\\"&gt; &lt;/a&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 8 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=\\\"cal-row-fluid cal-row-head\\\"&gt; &lt;div class=cal-cell1 ng-repeat=\\\"day in vm.weekDays track by $index\\\" ng-bind=day&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class=cal-month-box&gt; &lt;div ng-repeat=\\\"rowOffset in vm.monthOffsets track by rowOffset\\\" ng-mouseenter=\\\"rowHovered = true\\\" ng-mouseleave=\\\"rowHovered = false\\\"&gt; &lt;div class=\\\"cal-row-fluid cal-before-eventlist\\\"&gt; &lt;div ng-repeat=\\\"day in vm.view | calendarLimitTo:7:rowOffset track by $index\\\" ng-init=\\\"dayIndex = vm.view.indexOf(day)\\\" class=\\\"cal-cell1 cal-cell {{ day.highlightClass }}\\\" ng-click=\\\"vm.dayClicked(day, false, $event)\\\" ng-class=\\\"{pointer: day.events.length &gt; 0}\\\"&gt; &lt;ng-include src=vm.calendarConfig.templates.calendarMonthCell&gt;&lt;/ng-include&gt; &lt;/div&gt; &lt;/div&gt; &lt;mwl-calendar-slide-box is-open=\\\"vm.openRowIndex === $index &amp;&amp; vm.view[vm.openDayIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\" events=vm.view[vm.openDayIndex].events on-event-click=vm.onEventClick edit-event-html=vm.editEventHtml on-edit-event-click=vm.onEditEventClick delete-event-html=vm.deleteEventHtml on-delete-event-click=vm.onDeleteEventClick&gt; &lt;/mwl-calendar-slide-box&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 9 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-slide-box uib-collapse=vm.isCollapsed mwl-collapse-fallback=vm.isCollapsed&gt; &lt;div class=\\\"cal-slide-content cal-event-list\\\"&gt; &lt;ul class=\\\"unstyled list-unstyled\\\"&gt; &lt;li ng-repeat=\\\"event in vm.events | orderBy:'startsAt' track by event.$id\\\" ng-class=event.cssClass mwl-draggable=\\\"event.draggable === true\\\" drop-data=\\\"{event: event}\\\"&gt; &lt;span class=\\\"pull-left event\\\" ng-class=\\\"'event-' + event.type\\\"&gt;&lt;/span&gt; &amp;nbsp; &lt;a href=javascript:; class=event-item ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\"&gt; &lt;span ng-bind-html=vm.$sce.trustAsHtml(event.title)&gt;&lt;/span&gt; (&lt;span ng-bind=\\\"event.startsAt | calendarDate:(isMonthView ? 'time' : 'datetime'):true\\\"&gt;&lt;/span&gt;&lt;span ng-if=\\\"vm.calendarConfig.displayEventEndTimes &amp;&amp; event.endsAt\\\"&gt; - &lt;span ng-bind=\\\"event.endsAt | calendarDate:(isMonthView ? 'time' : 'datetime'):true\\\"&gt;&lt;/span&gt;&lt;/span&gt;) &lt;/a&gt; &lt;a href=javascript:; class=event-item-edit ng-if=\\\"vm.editEventHtml &amp;&amp; event.editable !== false\\\" ng-bind-html=vm.$sce.trustAsHtml(vm.editEventHtml) ng-click=\\\"vm.onEditEventClick({calendarEvent: event})\\\"&gt; &lt;/a&gt; &lt;a href=javascript:; class=event-item-delete ng-if=\\\"vm.deleteEventHtml &amp;&amp; event.deletable !== false\\\" ng-bind-html=vm.$sce.trustAsHtml(vm.deleteEventHtml) ng-click=\\\"vm.onDeleteEventClick({calendarEvent: event})\\\"&gt; &lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 10 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-week-box ng-class=\\\"{'cal-day-box': vm.showTimes}\\\"&gt; &lt;div class=\\\"cal-row-fluid cal-row-head\\\"&gt; &lt;div class=cal-cell1 ng-repeat=\\\"day in vm.view.days track by $index\\\" ng-class=\\\"{\\n        'cal-day-weekend': day.isWeekend,\\n        'cal-day-past': day.isPast,\\n        'cal-day-today': day.isToday,\\n        'cal-day-future': day.isFuture}\\\" mwl-element-dimensions=vm.dayColumnDimensions mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, day.date)\\\"&gt; &lt;span ng-bind=day.weekDayLabel&gt;&lt;/span&gt; &lt;br&gt; &lt;small&gt; &lt;span data-cal-date ng-click=vm.calendarCtrl.dateClicked(day.date) class=pointer ng-bind=day.dayLabel&gt; &lt;/span&gt; &lt;/small&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=\\\"cal-day-panel clearfix\\\" ng-style=\\\"{height: vm.showTimes ? (vm.dayViewHeight + 'px') : 'auto'}\\\"&gt; &lt;mwl-calendar-hour-list day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit day-width=vm.dayColumnDimensions.width view-date=vm.viewDate on-timespan-click=vm.onTimespanClick ng-if=vm.showTimes&gt; &lt;/mwl-calendar-hour-list&gt; &lt;div class=row&gt; &lt;div class=col-xs-12&gt; &lt;div class=cal-row-fluid ng-repeat=\\\"event in vm.view.events track by event.$id\\\"&gt; &lt;div ng-class=\\\"'cal-cell' + (vm.showTimes ? 1 : event.daySpan) + (vm.showTimes ? '' : ' cal-offset' + event.dayOffset) + ' day-highlight dh-event-' + event.type + ' ' + event.cssClass\\\" ng-style=\\\"{\\n              top: vm.showTimes ? ((event.top + 2) + 'px') : 'auto',\\n              position: vm.showTimes ? 'absolute' : 'inherit',\\n              width: vm.showTimes ? (vm.dayColumnDimensions.width + 'px') : '',\\n              left: vm.showTimes ? (vm.dayColumnDimensions.width * event.dayOffset) + 15 + 'px' : ''\\n            }\\\" data-event-class mwl-draggable=\\\"event.draggable === true\\\" axis=\\\"vm.showTimes ? 'xy' : 'x'\\\" snap-grid=\\\"vm.showTimes ? {x: vm.dayColumnDimensions.width, y: 30} : {x: vm.dayColumnDimensions.width}\\\" on-drag=\\\"vm.tempTimeChanged(event, y)\\\" on-drag-end=\\\"vm.weekDragged(event, x, y)\\\" mwl-resizable=\\\"event.resizable === true &amp;&amp; event.endsAt &amp;&amp; !vm.showTimes\\\" resize-edges=\\\"{left: true, right: true}\\\" on-resize-end=\\\"vm.weekResized(event, edge, x)\\\"&gt; &lt;strong ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'time':true\\\" ng-show=vm.showTimes&gt;&lt;/strong&gt; &lt;a href=javascript:; ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\" class=event-item ng-bind-html=vm.$sce.trustAsHtml(event.title) uib-tooltip-html=\\\"event.title | calendarTrustAsHtml\\\" tooltip-placement=left tooltip-append-to-body=true&gt; &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 11 */\n/***/ function(module, exports) {\n\n\tmodule.exports = \"&lt;div class=cal-year-box&gt; &lt;div ng-repeat=\\\"rowOffset in [0, 4, 8] track by rowOffset\\\"&gt; &lt;div class=\\\"row cal-before-eventlist\\\"&gt; &lt;div class=\\\"span3 col-md-3 col-xs-6 cal-cell {{ day.cssClass }}\\\" ng-repeat=\\\"month in vm.view | calendarLimitTo:4:rowOffset track by $index\\\" ng-init=\\\"monthIndex = vm.view.indexOf(month)\\\" ng-click=\\\"vm.monthClicked(month, false, $event)\\\" ng-class=\\\"{pointer: month.events.length &gt; 0, 'cal-day-today': month.isToday}\\\" mwl-droppable on-drop=\\\"vm.handleEventDrop(dropData.event, month.date)\\\"&gt; &lt;span class=pull-right data-cal-date ng-click=vm.calendarCtrl.dateClicked(month.date) ng-bind=month.label&gt; &lt;/span&gt; &lt;small class=\\\"cal-events-num badge badge-important pull-left\\\" ng-show=\\\"month.badgeTotal &gt; 0\\\" ng-bind=month.badgeTotal&gt; &lt;/small&gt; &lt;div class=cal-day-tick ng-show=\\\"monthIndex === vm.openMonthIndex &amp;&amp; vm.view[vm.openMonthIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\"&gt; &lt;i class=\\\"glyphicon glyphicon-chevron-up\\\"&gt;&lt;/i&gt; &lt;i class=\\\"fa fa-chevron-up\\\"&gt;&lt;/i&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;mwl-calendar-slide-box is-open=\\\"vm.openRowIndex === $index &amp;&amp; vm.view[vm.openMonthIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\" events=vm.view[vm.openMonthIndex].events on-event-click=vm.onEventClick edit-event-html=vm.editEventHtml on-edit-event-click=vm.onEditEventClick delete-event-html=vm.deleteEventHtml on-delete-event-click=vm.onDeleteEventClick&gt; &lt;/mwl-calendar-slide-box&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n/***/ },\n/* 12 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarCtrl', [\"$scope\", \"$log\", \"$timeout\", \"$attrs\", \"$locale\", \"moment\", \"calendarTitle\", \"calendarHelper\", function($scope, $log, $timeout, $attrs, $locale, moment, calendarTitle, calendarHelper) {\n\t\n\t    var vm = this;\n\t\n\t    vm.events = vm.events || [];\n\t\n\t    vm.changeView = function(view, newDay) {\n\t      vm.view = view;\n\t      vm.viewDate = newDay;\n\t    };\n\t\n\t    vm.dateClicked = function(date) {\n\t\n\t      var rawDate = moment(date).toDate();\n\t\n\t      var nextView = {\n\t        year: 'month',\n\t        month: 'day',\n\t        week: 'day'\n\t      };\n\t\n\t      if (vm.onViewChangeClick({calendarDate: rawDate, calendarNextView: nextView[vm.view]}) !== false) {\n\t        vm.changeView(nextView[vm.view], rawDate);\n\t      }\n\t\n\t    };\n\t\n\t    var previousDate = moment(vm.viewDate);\n\t    var previousView = vm.view;\n\t\n\t    function eventIsValid(event) {\n\t      if (!event.startsAt) {\n\t        $log.warn('Bootstrap calendar: ', 'Event is missing the startsAt field', event);\n\t      }\n\t\n\t      if (!angular.isDate(event.startsAt)) {\n\t        $log.warn('Bootstrap calendar: ', 'Event startsAt should be a javascript date object', event);\n\t      }\n\t\n\t      if (angular.isDefined(event.endsAt)) {\n\t        if (!angular.isDate(event.endsAt)) {\n\t          $log.warn('Bootstrap calendar: ', 'Event endsAt should be a javascript date object', event);\n\t        }\n\t        if (moment(event.startsAt).isAfter(moment(event.endsAt))) {\n\t          $log.warn('Bootstrap calendar: ', 'Event cannot start after it finishes', event);\n\t        }\n\t      }\n\t\n\t      return true;\n\t    }\n\t\n\t    function refreshCalendar() {\n\t\n\t      if (calendarTitle[vm.view] &amp;&amp; angular.isDefined($attrs.viewTitle)) {\n\t        vm.viewTitle = calendarTitle[vm.view](vm.viewDate);\n\t      }\n\t\n\t      vm.events = vm.events.filter(eventIsValid).map(function(event, index) {\n\t        Object.defineProperty(event, '$id', {enumerable: false, configurable: true, value: index});\n\t        return event;\n\t      });\n\t\n\t      //if on-timespan-click=\"calendarDay = calendarDate\" is set then don't update the view as nothing needs to change\n\t      var currentDate = moment(vm.viewDate);\n\t      var shouldUpdate = true;\n\t      if (\n\t        previousDate.clone().startOf(vm.view).isSame(currentDate.clone().startOf(vm.view)) &amp;&amp;\n\t        !previousDate.isSame(currentDate) &amp;&amp;\n\t        vm.view === previousView\n\t      ) {\n\t        shouldUpdate = false;\n\t      }\n\t      previousDate = currentDate;\n\t      previousView = vm.view;\n\t\n\t      if (shouldUpdate) {\n\t        // a $timeout is required as $broadcast is synchronous so if a new events array is set the calendar won't update\n\t        $timeout(function() {\n\t          $scope.$broadcast('calendar.refreshView');\n\t        });\n\t      }\n\t    }\n\t\n\t    calendarHelper.loadTemplates().then(function() {\n\t      vm.templatesLoaded = true;\n\t\n\t      var eventsWatched = false;\n\t\n\t      //Refresh the calendar when any of these variables change.\n\t      $scope.$watchGroup([\n\t        'vm.viewDate',\n\t        'vm.view',\n\t        'vm.cellIsOpen',\n\t        function() {\n\t          return moment.locale() + $locale.id; //Auto update the calendar when the locale changes\n\t        }\n\t      ], function() {\n\t        if (!eventsWatched) {\n\t          eventsWatched = true;\n\t          //need to deep watch events hence why it isn't included in the watch group\n\t          $scope.$watch('vm.events', refreshCalendar, true); //this will call refreshCalendar when the watcher starts (i.e. now)\n\t        } else {\n\t          refreshCalendar();\n\t        }\n\t      });\n\t\n\t    }).catch(function(err) {\n\t      $log.error('Could not load all calendar templates', err);\n\t    });\n\t\n\t  }])\n\t  .directive('mwlCalendar', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      templateUrl: calendarConfig.templates.calendar,\n\t      restrict: 'E',\n\t      scope: {\n\t        events: '=',\n\t        view: '=',\n\t        viewTitle: '=?',\n\t        viewDate: '=',\n\t        editEventHtml: '=?',\n\t        deleteEventHtml: '=?',\n\t        cellIsOpen: '=?',\n\t        slideBoxDisabled: '=?',\n\t        onEventClick: '&amp;',\n\t        onEventTimesChanged: '&amp;',\n\t        onEditEventClick: '&amp;',\n\t        onDeleteEventClick: '&amp;',\n\t        onTimespanClick: '&amp;',\n\t        onViewChangeClick: '&amp;',\n\t        cellModifier: '&amp;',\n\t        dayViewStart: '@',\n\t        dayViewEnd: '@',\n\t        dayViewSplit: '@'\n\t      },\n\t      controller: 'MwlCalendarCtrl as vm',\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 13 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarDayCtrl', [\"$scope\", \"$sce\", \"moment\", \"calendarHelper\", function($scope, $sce, moment, calendarHelper) {\n\t\n\t    var vm = this;\n\t\n\t    vm.$sce = $sce;\n\t\n\t    $scope.$on('calendar.refreshView', function() {\n\t      vm.dayViewSplit = vm.dayViewSplit || 30;\n\t      vm.dayViewHeight = calendarHelper.getDayViewHeight(\n\t        vm.dayViewStart,\n\t        vm.dayViewEnd,\n\t        vm.dayViewSplit\n\t      );\n\t\n\t      vm.view = calendarHelper.getDayView(\n\t        vm.events,\n\t        vm.viewDate,\n\t        vm.dayViewStart,\n\t        vm.dayViewEnd,\n\t        vm.dayViewSplit\n\t      );\n\t\n\t    });\n\t\n\t    vm.eventDragComplete = function(event, minuteChunksMoved) {\n\t      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t      var newStart = moment(event.startsAt).add(minutesDiff, 'minutes');\n\t      var newEnd = moment(event.endsAt).add(minutesDiff, 'minutes');\n\t      delete event.tempStartsAt;\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarNewEventStart: newStart.toDate(),\n\t        calendarNewEventEnd: event.endsAt ? newEnd.toDate() : null\n\t      });\n\t    };\n\t\n\t    vm.eventDragged = function(event, minuteChunksMoved) {\n\t      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t      event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n\t    };\n\t\n\t    vm.eventResizeComplete = function(event, edge, minuteChunksMoved) {\n\t      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t      var start = moment(event.startsAt);\n\t      var end = moment(event.endsAt);\n\t      if (edge === 'start') {\n\t        start.add(minutesDiff, 'minutes');\n\t      } else {\n\t        end.add(minutesDiff, 'minutes');\n\t      }\n\t      delete event.tempStartsAt;\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarNewEventStart: start.toDate(),\n\t        calendarNewEventEnd: end.toDate()\n\t      });\n\t    };\n\t\n\t    vm.eventResized = function(event, edge, minuteChunksMoved) {\n\t      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t      if (edge === 'start') {\n\t        event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n\t      }\n\t    };\n\t\n\t  }])\n\t  .directive('mwlCalendarDay', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      templateUrl: calendarConfig.templates.calendarDayView,\n\t      restrict: 'E',\n\t      require: '^mwlCalendar',\n\t      scope: {\n\t        events: '=',\n\t        viewDate: '=',\n\t        onEventClick: '=',\n\t        onEventTimesChanged: '=',\n\t        onTimespanClick: '=',\n\t        dayViewStart: '=',\n\t        dayViewEnd: '=',\n\t        dayViewSplit: '='\n\t      },\n\t      controller: 'MwlCalendarDayCtrl as vm',\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 14 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarHourListCtrl', [\"$scope\", \"$attrs\", \"moment\", \"calendarConfig\", \"calendarHelper\", function($scope, $attrs, moment, calendarConfig, calendarHelper) {\n\t    var vm = this;\n\t    var dayViewStart, dayViewEnd;\n\t\n\t    function updateDays() {\n\t      dayViewStart = moment(vm.dayViewStart || '00:00', 'HH:mm');\n\t      dayViewEnd = moment(vm.dayViewEnd || '23:00', 'HH:mm');\n\t      vm.dayViewSplit = parseInt(vm.dayViewSplit);\n\t      vm.hours = [];\n\t      var dayCounter = moment(vm.viewDate)\n\t        .clone();\n\t\n\t      if ($attrs.dayWidth) {\n\t        dayCounter = dayCounter.startOf('week');\n\t      }\n\t\n\t      dayCounter\n\t        .hours(dayViewStart.hours())\n\t        .minutes(dayViewStart.minutes())\n\t        .seconds(dayViewStart.seconds());\n\t\n\t      for (var i = 0; i &lt;= dayViewEnd.diff(dayViewStart, 'hours'); i++) {\n\t        vm.hours.push({\n\t          label: calendarHelper.formatDate(dayCounter, calendarConfig.dateFormats.hour),\n\t          date: dayCounter.clone()\n\t        });\n\t        dayCounter.add(1, 'hour');\n\t      }\n\t      vm.hourChunks = [];\n\t      for (var j = 0; j &lt; (60 / vm.dayViewSplit); j++) {\n\t        vm.hourChunks.push(j);\n\t      }\n\t    }\n\t\n\t    var originalLocale = moment.locale();\n\t\n\t    $scope.$on('calendar.refreshView', function() {\n\t\n\t      if (originalLocale !== moment.locale()) {\n\t        originalLocale = moment.locale();\n\t        updateDays();\n\t      }\n\t\n\t    });\n\t\n\t    $scope.$watchGroup([\n\t      'vm.dayViewStart',\n\t      'vm.dayViewEnd',\n\t      'vm.dayViewSplit',\n\t      'vm.viewDate'\n\t    ], function() {\n\t      updateDays();\n\t    });\n\t\n\t    vm.eventDropped = function(event, date) {\n\t      var newStart = moment(date);\n\t      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarDate: date,\n\t        calendarNewEventStart: newStart.toDate(),\n\t        calendarNewEventEnd: newEnd ? newEnd.toDate() : null\n\t      });\n\t    };\n\t\n\t    vm.getClickedDate = function(baseDate, minutes, days) {\n\t      return moment(baseDate).clone().add(minutes, 'minutes').add(days || 0, 'days').toDate();\n\t    };\n\t\n\t  }])\n\t  .directive('mwlCalendarHourList', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      restrict: 'E',\n\t      templateUrl: calendarConfig.templates.calendarHourList,\n\t      controller: 'MwlCalendarHourListCtrl as vm',\n\t      scope: {\n\t        viewDate: '=',\n\t        dayViewStart: '=',\n\t        dayViewEnd: '=',\n\t        dayViewSplit: '=',\n\t        dayWidth: '=?',\n\t        onTimespanClick: '=',\n\t        onEventTimesChanged: '='\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 15 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarMonthCtrl', [\"$scope\", \"moment\", \"calendarHelper\", \"calendarConfig\", function($scope, moment, calendarHelper, calendarConfig) {\n\t\n\t    var vm = this;\n\t    vm.calendarConfig = calendarConfig;\n\t    vm.openRowIndex = null;\n\t\n\t    $scope.$on('calendar.refreshView', function() {\n\t\n\t      vm.weekDays = calendarHelper.getWeekDayNames();\n\t\n\t      vm.view = calendarHelper.getMonthView(vm.events, vm.viewDate, vm.cellModifier);\n\t      var rows = Math.floor(vm.view.length / 7);\n\t      vm.monthOffsets = [];\n\t      for (var i = 0; i &lt; rows; i++) {\n\t        vm.monthOffsets.push(i * 7);\n\t      }\n\t\n\t      //Auto open the calendar to the current day if set\n\t      if (vm.cellIsOpen &amp;&amp; vm.openRowIndex === null) {\n\t        vm.openDayIndex = null;\n\t        vm.view.forEach(function(day) {\n\t          if (day.inMonth &amp;&amp; moment(vm.viewDate).startOf('day').isSame(day.date)) {\n\t            vm.dayClicked(day, true);\n\t          }\n\t        });\n\t      }\n\t\n\t    });\n\t\n\t    vm.dayClicked = function(day, dayClickedFirstRun, $event) {\n\t\n\t      if (!dayClickedFirstRun) {\n\t        vm.onTimespanClick({\n\t          calendarDate: day.date.toDate(),\n\t          calendarCell: day,\n\t          $event: $event\n\t        });\n\t        if ($event &amp;&amp; $event.defaultPrevented) {\n\t          return;\n\t        }\n\t      }\n\t\n\t      vm.openRowIndex = null;\n\t      var dayIndex = vm.view.indexOf(day);\n\t      if (dayIndex === vm.openDayIndex) { //the day has been clicked and is already open\n\t        vm.openDayIndex = null; //close the open day\n\t        vm.cellIsOpen = false;\n\t      } else {\n\t        vm.openDayIndex = dayIndex;\n\t        vm.openRowIndex = Math.floor(dayIndex / 7);\n\t        vm.cellIsOpen = true;\n\t      }\n\t\n\t    };\n\t\n\t    vm.highlightEvent = function(event, shouldAddClass) {\n\t\n\t      vm.view.forEach(function(day) {\n\t        delete day.highlightClass;\n\t        if (shouldAddClass) {\n\t          var dayContainsEvent = day.events.indexOf(event) &gt; -1;\n\t          if (dayContainsEvent) {\n\t            day.highlightClass = 'day-highlight dh-event-' + event.type;\n\t          }\n\t        }\n\t      });\n\t\n\t    };\n\t\n\t    vm.handleEventDrop = function(event, newDayDate, draggedFromDate) {\n\t\n\t      var newStart = moment(event.startsAt)\n\t        .date(moment(newDayDate).date())\n\t        .month(moment(newDayDate).month());\n\t\n\t      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarDate: newDayDate,\n\t        calendarNewEventStart: newStart.toDate(),\n\t        calendarNewEventEnd: newEnd ? newEnd.toDate() : null,\n\t        calendarDraggedFromDate: draggedFromDate\n\t      });\n\t    };\n\t\n\t  }])\n\t  .directive('mwlCalendarMonth', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      templateUrl: calendarConfig.templates.calendarMonthView,\n\t      restrict: 'E',\n\t      require: '^mwlCalendar',\n\t      scope: {\n\t        events: '=',\n\t        viewDate: '=',\n\t        onEventClick: '=',\n\t        onEditEventClick: '=',\n\t        onDeleteEventClick: '=',\n\t        onEventTimesChanged: '=',\n\t        editEventHtml: '=',\n\t        deleteEventHtml: '=',\n\t        cellIsOpen: '=',\n\t        onTimespanClick: '=',\n\t        cellModifier: '=',\n\t        slideBoxDisabled: '='\n\t      },\n\t      controller: 'MwlCalendarMonthCtrl as vm',\n\t      link: function(scope, element, attrs, calendarCtrl) {\n\t        scope.vm.calendarCtrl = calendarCtrl;\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 16 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarSlideBoxCtrl', [\"$sce\", \"$scope\", \"$timeout\", \"calendarConfig\", function($sce, $scope, $timeout, calendarConfig) {\n\t\n\t    var vm = this;\n\t    vm.$sce = $sce;\n\t    vm.calendarConfig = calendarConfig;\n\t\n\t    vm.isCollapsed = true;\n\t    $scope.$watch('vm.isOpen', function(isOpen) {\n\t      //events must be populated first to set the element height before animation will work\n\t      $timeout(function() {\n\t        vm.isCollapsed = !isOpen;\n\t      });\n\t    });\n\t\n\t  }])\n\t  .directive('mwlCalendarSlideBox', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      restrict: 'E',\n\t      templateUrl: calendarConfig.templates.calendarSlideBox,\n\t      replace: true,\n\t      controller: 'MwlCalendarSlideBoxCtrl as vm',\n\t      require: ['^?mwlCalendarMonth', '^?mwlCalendarYear'],\n\t      link: function(scope, elm, attrs, ctrls) {\n\t        scope.isMonthView = !!ctrls[0];\n\t        scope.isYearView = !!ctrls[1];\n\t      },\n\t      scope: {\n\t        isOpen: '=',\n\t        events: '=',\n\t        onEventClick: '=',\n\t        editEventHtml: '=',\n\t        onEditEventClick: '=',\n\t        deleteEventHtml: '=',\n\t        onDeleteEventClick: '='\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 17 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarWeekCtrl', [\"$scope\", \"$sce\", \"moment\", \"calendarHelper\", \"calendarConfig\", function($scope, $sce, moment, calendarHelper, calendarConfig) {\n\t\n\t    var vm = this;\n\t\n\t    vm.showTimes = calendarConfig.showTimesOnWeekView;\n\t    vm.$sce = $sce;\n\t\n\t    $scope.$on('calendar.refreshView', function() {\n\t      vm.dayViewSplit = vm.dayViewSplit || 30;\n\t      vm.dayViewHeight = calendarHelper.getDayViewHeight(\n\t        vm.dayViewStart,\n\t        vm.dayViewEnd,\n\t        vm.dayViewSplit\n\t      );\n\t      if (vm.showTimes) {\n\t        vm.view = calendarHelper.getWeekViewWithTimes(\n\t          vm.events,\n\t          vm.viewDate,\n\t          vm.dayViewStart,\n\t          vm.dayViewEnd,\n\t          vm.dayViewSplit\n\t        );\n\t      } else {\n\t        vm.view = calendarHelper.getWeekView(vm.events, vm.viewDate);\n\t      }\n\t    });\n\t\n\t    vm.weekDragged = function(event, daysDiff, minuteChunksMoved) {\n\t\n\t      var newStart = moment(event.startsAt).add(daysDiff, 'days');\n\t      var newEnd = moment(event.endsAt).add(daysDiff, 'days');\n\t\n\t      if (minuteChunksMoved) {\n\t        var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t        newStart = newStart.add(minutesDiff, 'minutes');\n\t        newEnd = newEnd.add(minutesDiff, 'minutes');\n\t      }\n\t\n\t      delete event.tempStartsAt;\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarNewEventStart: newStart.toDate(),\n\t        calendarNewEventEnd: event.endsAt ? newEnd.toDate() : null\n\t      });\n\t    };\n\t\n\t    vm.eventDropped = function(event, date) {\n\t      var daysDiff = moment(date).diff(moment(event.startsAt), 'days');\n\t      vm.weekDragged(event, daysDiff);\n\t    };\n\t\n\t    vm.weekResized = function(event, edge, daysDiff) {\n\t\n\t      var start = moment(event.startsAt);\n\t      var end = moment(event.endsAt);\n\t      if (edge === 'start') {\n\t        start.add(daysDiff, 'days');\n\t      } else {\n\t        end.add(daysDiff, 'days');\n\t      }\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarNewEventStart: start.toDate(),\n\t        calendarNewEventEnd: end.toDate()\n\t      });\n\t\n\t    };\n\t\n\t    vm.tempTimeChanged = function(event, minuteChunksMoved) {\n\t      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n\t      event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n\t    };\n\t\n\t  }])\n\t  .directive('mwlCalendarWeek', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      templateUrl: calendarConfig.templates.calendarWeekView,\n\t      restrict: 'E',\n\t      require: '^mwlCalendar',\n\t      scope: {\n\t        events: '=',\n\t        viewDate: '=',\n\t        onEventClick: '=',\n\t        onEventTimesChanged: '=',\n\t        dayViewStart: '=',\n\t        dayViewEnd: '=',\n\t        dayViewSplit: '=',\n\t        onTimespanClick: '='\n\t      },\n\t      controller: 'MwlCalendarWeekCtrl as vm',\n\t      link: function(scope, element, attrs, calendarCtrl) {\n\t        scope.vm.calendarCtrl = calendarCtrl;\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 18 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCalendarYearCtrl', [\"$scope\", \"moment\", \"calendarHelper\", function($scope, moment, calendarHelper) {\n\t\n\t    var vm = this;\n\t    vm.openMonthIndex = null;\n\t\n\t    $scope.$on('calendar.refreshView', function() {\n\t      vm.view = calendarHelper.getYearView(vm.events, vm.viewDate, vm.cellModifier);\n\t\n\t      //Auto open the calendar to the current day if set\n\t      if (vm.cellIsOpen &amp;&amp; vm.openMonthIndex === null) {\n\t        vm.openMonthIndex = null;\n\t        vm.view.forEach(function(month) {\n\t          if (moment(vm.viewDate).startOf('month').isSame(month.date)) {\n\t            vm.monthClicked(month, true);\n\t          }\n\t        });\n\t      }\n\t\n\t    });\n\t\n\t    vm.monthClicked = function(month, monthClickedFirstRun, $event) {\n\t\n\t      if (!monthClickedFirstRun) {\n\t        vm.onTimespanClick({\n\t          calendarDate: month.date.toDate(),\n\t          calendarCell: month,\n\t          $event: $event\n\t        });\n\t        if ($event &amp;&amp; $event.defaultPrevented) {\n\t          return;\n\t        }\n\t      }\n\t\n\t      vm.openRowIndex = null;\n\t      var monthIndex = vm.view.indexOf(month);\n\t      if (monthIndex === vm.openMonthIndex) { //the month has been clicked and is already open\n\t        vm.openMonthIndex = null; //close the open month\n\t        vm.cellIsOpen = false;\n\t      } else {\n\t        vm.openMonthIndex = monthIndex;\n\t        vm.openRowIndex = Math.floor(monthIndex / 4);\n\t        vm.cellIsOpen = true;\n\t      }\n\t\n\t    };\n\t\n\t    vm.handleEventDrop = function(event, newMonthDate) {\n\t      var newStart = moment(event.startsAt).month(moment(newMonthDate).month());\n\t      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\t\n\t      vm.onEventTimesChanged({\n\t        calendarEvent: event,\n\t        calendarDate: newMonthDate,\n\t        calendarNewEventStart: newStart.toDate(),\n\t        calendarNewEventEnd: newEnd ? newEnd.toDate() : null\n\t      });\n\t    };\n\t\n\t  }])\n\t  .directive('mwlCalendarYear', [\"calendarConfig\", function(calendarConfig) {\n\t\n\t    return {\n\t      templateUrl: calendarConfig.templates.calendarYearView,\n\t      restrict: 'E',\n\t      require: '^mwlCalendar',\n\t      scope: {\n\t        events: '=',\n\t        viewDate: '=',\n\t        onEventClick: '=',\n\t        onEventTimesChanged: '=',\n\t        onEditEventClick: '=',\n\t        onDeleteEventClick: '=',\n\t        editEventHtml: '=',\n\t        deleteEventHtml: '=',\n\t        cellIsOpen: '=',\n\t        onTimespanClick: '=',\n\t        cellModifier: '=',\n\t        slideBoxDisabled: '='\n\t      },\n\t      controller: 'MwlCalendarYearCtrl as vm',\n\t      link: function(scope, element, attrs, calendarCtrl) {\n\t        scope.vm.calendarCtrl = calendarCtrl;\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 19 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlCollapseFallbackCtrl', [\"$scope\", \"$attrs\", \"$element\", function($scope, $attrs, $element) {\n\t\n\t    $scope.$watch($attrs.mwlCollapseFallback, function(shouldCollapse) {\n\t      if (shouldCollapse) {\n\t        $element.addClass('ng-hide');\n\t      } else {\n\t        $element.removeClass('ng-hide');\n\t      }\n\t    });\n\t\n\t  }])\n\t  .directive('mwlCollapseFallback', [\"$injector\", function($injector) {\n\t\n\t    if ($injector.has('uibCollapseDirective')) {\n\t      return {};\n\t    }\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlCollapseFallbackCtrl'\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 20 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlDateModifierCtrl', [\"$element\", \"$attrs\", \"$scope\", \"moment\", function($element, $attrs, $scope, moment) {\n\t\n\t    var vm = this;\n\t\n\t    function onClick() {\n\t      if (angular.isDefined($attrs.setToToday)) {\n\t        vm.date = new Date();\n\t      } else if (angular.isDefined($attrs.increment)) {\n\t        vm.date = moment(vm.date).add(1, vm.increment).toDate();\n\t      } else if (angular.isDefined($attrs.decrement)) {\n\t        vm.date = moment(vm.date).subtract(1, vm.decrement).toDate();\n\t      }\n\t      $scope.$apply();\n\t    }\n\t\n\t    $element.bind('click', onClick);\n\t\n\t    $scope.$on('$destroy', function() {\n\t      $element.unbind('click', onClick);\n\t    });\n\t\n\t  }])\n\t  .directive('mwlDateModifier', function() {\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlDateModifierCtrl as vm',\n\t      scope: {\n\t        date: '=',\n\t        increment: '=',\n\t        decrement: '='\n\t      },\n\t      bindToController: true\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 21 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlDraggableCtrl', [\"$element\", \"$scope\", \"$window\", \"$parse\", \"$attrs\", \"$timeout\", \"interact\", function($element, $scope, $window, $parse, $attrs, $timeout, interact) {\n\t\n\t    if (!interact) {\n\t      return;\n\t    }\n\t\n\t    var snap, snapGridDimensions;\n\t    if ($attrs.snapGrid) {\n\t      snapGridDimensions = $parse($attrs.snapGrid)($scope);\n\t      snap = {\n\t        targets: [\n\t          interact.createSnapGrid(snapGridDimensions)\n\t        ]\n\t      };\n\t    }\n\t\n\t    function translateElement(elm, transformValue) {\n\t      return elm\n\t        .css('-ms-transform', transformValue)\n\t        .css('-webkit-transform', transformValue)\n\t        .css('transform', transformValue);\n\t    }\n\t\n\t    function getUnitsMoved(x, y, gridDimensions) {\n\t\n\t      var result = {x: x, y: y};\n\t\n\t      if (gridDimensions &amp;&amp; gridDimensions.x) {\n\t        result.x /= gridDimensions.x;\n\t      }\n\t\n\t      if (gridDimensions &amp;&amp; gridDimensions.y) {\n\t        result.y /= gridDimensions.y;\n\t      }\n\t\n\t      return result;\n\t\n\t    }\n\t\n\t    interact($element[0]).draggable({\n\t      snap: snap,\n\t      onstart: function(event) {\n\t        angular.element(event.target).addClass('dragging-active');\n\t        event.target.dropData = $parse($attrs.dropData)($scope);\n\t        event.target.style.pointerEvents = 'none';\n\t        if ($attrs.onDragStart) {\n\t          $parse($attrs.onDragStart)($scope);\n\t          $scope.$apply();\n\t        }\n\t      },\n\t      onmove: function(event) {\n\t\n\t        var elm = angular.element(event.target);\n\t        var x = (parseFloat(elm.attr('data-x')) || 0) + (event.dx || 0);\n\t        var y = (parseFloat(elm.attr('data-y')) || 0) + (event.dy || 0);\n\t\n\t        switch ($parse($attrs.axis)($scope)) {\n\t          case 'x':\n\t            y = 0;\n\t            break;\n\t\n\t          case 'y':\n\t            x = 0;\n\t            break;\n\t\n\t          default:\n\t        }\n\t\n\t        if ($window.getComputedStyle(elm[0]).position === 'static') {\n\t          elm.css('position', 'relative');\n\t        }\n\t\n\t        translateElement(elm, 'translate(' + x + 'px, ' + y + 'px)')\n\t          .css('z-index', 50)\n\t          .attr('data-x', x)\n\t          .attr('data-y', y);\n\t\n\t        if ($attrs.onDrag) {\n\t          $parse($attrs.onDrag)($scope, getUnitsMoved(x, y, snapGridDimensions));\n\t          $scope.$apply();\n\t        }\n\t\n\t      },\n\t      onend: function(event) {\n\t\n\t        var elm = angular.element(event.target);\n\t        var x = elm.attr('data-x');\n\t        var y = elm.attr('data-y');\n\t\n\t        event.target.style.pointerEvents = 'auto';\n\t        if ($attrs.onDragEnd) {\n\t          $parse($attrs.onDragEnd)($scope, getUnitsMoved(x, y, snapGridDimensions));\n\t          $scope.$apply();\n\t        }\n\t\n\t        $timeout(function() {\n\t          translateElement(elm, '')\n\t            .css('z-index', 'auto')\n\t            .removeAttr('data-x')\n\t            .removeAttr('data-y')\n\t            .removeClass('dragging-active');\n\t        });\n\t\n\t      }\n\t    });\n\t\n\t    $scope.$watch($attrs.mwlDraggable, function(enabled) {\n\t      interact($element[0]).draggable({\n\t        enabled: enabled\n\t      });\n\t    });\n\t\n\t    $scope.$on('$destroy', function() {\n\t      interact($element[0]).unset();\n\t    });\n\t\n\t  }])\n\t  .directive('mwlDraggable', function() {\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlDraggableCtrl'\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 22 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlDroppableCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", \"interact\", function($element, $scope, $parse, $attrs, interact) {\n\t\n\t    if (!interact) {\n\t      return;\n\t    }\n\t\n\t    var DROP_ACTIVE_CLASS = $attrs.dropActiveClass || 'drop-active';\n\t\n\t    interact($element[0]).dropzone({\n\t      ondragenter: function(event) {\n\t        angular.element(event.target).addClass(DROP_ACTIVE_CLASS);\n\t      },\n\t      ondragleave: function(event) {\n\t        angular.element(event.target).removeClass(DROP_ACTIVE_CLASS);\n\t      },\n\t      ondropdeactivate: function(event) {\n\t        angular.element(event.target).removeClass(DROP_ACTIVE_CLASS);\n\t      },\n\t      ondrop: function(event) {\n\t        if (event.relatedTarget.dropData) {\n\t          $parse($attrs.onDrop)($scope, {dropData: event.relatedTarget.dropData});\n\t          $scope.$apply();\n\t        }\n\t      }\n\t    });\n\t\n\t    $scope.$on('$destroy', function() {\n\t      interact($element[0]).unset();\n\t    });\n\t\n\t  }])\n\t  .directive('mwlDroppable', function() {\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlDroppableCtrl'\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 23 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlElementDimensionsCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", function($element, $scope, $parse, $attrs) {\n\t\n\t    $parse($attrs.mwlElementDimensions).assign($scope, {\n\t      width: $element[0].offsetWidth,\n\t      height: $element[0].offsetHeight\n\t    });\n\t\n\t  }])\n\t  .directive('mwlElementDimensions', function() {\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlElementDimensionsCtrl'\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 24 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .controller('MwlResizableCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", \"$timeout\", \"interact\", function($element, $scope, $parse, $attrs, $timeout, interact) {\n\t\n\t    if (!interact) {\n\t      return;\n\t    }\n\t\n\t    var snap, snapGridDimensions;\n\t    if ($attrs.snapGrid) {\n\t      snapGridDimensions = $parse($attrs.snapGrid)($scope);\n\t      snap = {\n\t        targets: [\n\t          interact.createSnapGrid(snapGridDimensions)\n\t        ]\n\t      };\n\t    }\n\t\n\t    var originalDimensions = {};\n\t    var originalDimensionsStyle = {};\n\t    var resizeEdge;\n\t\n\t    function getUnitsResized(edge, elm, gridDimensions) {\n\t      var unitsResized = {};\n\t      unitsResized.edge = edge;\n\t      if (edge === 'start') {\n\t        unitsResized.x = elm.data('x');\n\t        unitsResized.y = elm.data('y');\n\t      } else if (edge === 'end') {\n\t        unitsResized.x = parseFloat(elm.css('width').replace('px', '')) - originalDimensions.width;\n\t        unitsResized.y = parseFloat(elm.css('height').replace('px', '')) - originalDimensions.height;\n\t      }\n\t      if (gridDimensions &amp;&amp; gridDimensions.x) {\n\t        unitsResized.x = Math.round(unitsResized.x / gridDimensions.x);\n\t      }\n\t      if (gridDimensions &amp;&amp; gridDimensions.y) {\n\t        unitsResized.y = Math.round(unitsResized.y / gridDimensions.y);\n\t      }\n\t      return unitsResized;\n\t    }\n\t\n\t    interact($element[0]).resizable({\n\t      edges: $parse($attrs.resizeEdges)($scope),\n\t      snap: snap,\n\t      onstart: function(event) {\n\t\n\t        resizeEdge = 'end';\n\t        var elm = angular.element(event.target);\n\t        originalDimensions.height = elm[0].offsetHeight;\n\t        originalDimensions.width = elm[0].offsetWidth;\n\t        originalDimensionsStyle.height = elm.css('height');\n\t        originalDimensionsStyle.width = elm.css('width');\n\t\n\t      },\n\t      onmove: function(event) {\n\t\n\t        if (event.rect.width &gt; 0 &amp;&amp; event.rect.height &gt; 0) {\n\t          var elm = angular.element(event.target);\n\t          var x = parseFloat(elm.data('x') || 0);\n\t          var y = parseFloat(elm.data('y') || 0);\n\t\n\t          elm.css({\n\t            width: event.rect.width + 'px',\n\t            height: event.rect.height + 'px'\n\t          });\n\t\n\t          // translate when resizing from top or left edges\n\t          x += event.deltaRect.left;\n\t          y += event.deltaRect.top;\n\t\n\t          elm.css('transform', 'translate(' + x + 'px,' + y + 'px)');\n\t\n\t          elm.data('x', x);\n\t          elm.data('y', y);\n\t\n\t          if (event.deltaRect.left !== 0 || event.deltaRect.top !== 0) {\n\t            resizeEdge = 'start';\n\t          }\n\t\n\t          if ($attrs.onResize) {\n\t            $parse($attrs.onResize)($scope, getUnitsResized(resizeEdge, elm, snapGridDimensions));\n\t            $scope.$apply();\n\t          }\n\t\n\t        }\n\t\n\t      },\n\t      onend: function(event) {\n\t\n\t        var elm = angular.element(event.target);\n\t        var unitsResized = getUnitsResized(resizeEdge, elm, snapGridDimensions);\n\t\n\t        $timeout(function() {\n\t          elm\n\t            .data('x', null)\n\t            .data('y', null)\n\t            .css({\n\t              transform: '',\n\t              width: originalDimensionsStyle.width,\n\t              height: originalDimensionsStyle.height\n\t            });\n\t        });\n\t\n\t        if ($attrs.onResizeEnd) {\n\t          $parse($attrs.onResizeEnd)($scope, unitsResized);\n\t          $scope.$apply();\n\t        }\n\t\n\t      }\n\t    });\n\t\n\t    $scope.$watch($attrs.mwlResizable, function(enabled) {\n\t      interact($element[0]).resizable({\n\t        enabled: enabled\n\t      });\n\t    });\n\t\n\t    $scope.$on('$destroy', function() {\n\t      interact($element[0]).unset();\n\t    });\n\t\n\t  }])\n\t  .directive('mwlResizable', function() {\n\t\n\t    return {\n\t      restrict: 'A',\n\t      controller: 'MwlResizableCtrl'\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 25 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .filter('calendarDate', [\"calendarHelper\", \"calendarConfig\", function(calendarHelper, calendarConfig) {\n\t\n\t    function calendarDate(date, format, getFromConfig) {\n\t\n\t      if (getFromConfig === true) {\n\t        format = calendarConfig.dateFormats[format];\n\t      }\n\t\n\t      return calendarHelper.formatDate(date, format);\n\t\n\t    }\n\t\n\t    // This is stateful because the locale can change as well\n\t    // as calendarConfig.dateFormats which would change the value outside of this filter\n\t    calendarDate.$stateful = true;\n\t\n\t    return calendarDate;\n\t\n\t  }]);\n\n\n/***/ },\n/* 26 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .filter('calendarLimitTo', [\"limitToFilter\", function(limitToFilter) {\n\t\n\t    if (angular.version.minor &gt;= 4) { //1.4+ supports the begin attribute\n\t      return limitToFilter;\n\t    }\n\t\n\t    //Copied from the angular source. Only 1.4 has the begin functionality.\n\t    return function(input, limit, begin) {\n\t      if (Math.abs(Number(limit)) === Infinity) {\n\t        limit = Number(limit);\n\t      } else {\n\t        limit = parseInt(limit);\n\t      }\n\t      if (isNaN(limit)) {\n\t        return input;\n\t      }\n\t\n\t      if (angular.isNumber(input)) {\n\t        input = input.toString();\n\t      }\n\t      if (!angular.isArray(input) &amp;&amp; !angular.isString(input)) {\n\t        return input;\n\t      }\n\t\n\t      begin = (!begin || isNaN(begin)) ? 0 : parseInt(begin);\n\t      begin = (begin &lt; 0 &amp;&amp; begin &gt;= -input.length) ? input.length + begin : begin;\n\t\n\t      if (limit &gt;= 0) {\n\t        return input.slice(begin, begin + limit);\n\t      } else if (begin === 0) {\n\t        return input.slice(limit, input.length);\n\t      } else {\n\t        return input.slice(Math.max(0, begin + limit), begin);\n\t      }\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 27 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .filter('calendarTruncateEventTitle', function() {\n\t\n\t    return function(string, length, boxHeight) {\n\t      if (!string) {\n\t        return '';\n\t      }\n\t\n\t      //Only truncate if if actually needs truncating\n\t      if (string.length &gt;= length &amp;&amp; string.length / 20 &gt; boxHeight / 30) {\n\t        return string.substr(0, length) + '...';\n\t      } else {\n\t        return string;\n\t      }\n\t    };\n\t\n\t  });\n\n\n/***/ },\n/* 28 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .filter('calendarTrustAsHtml', [\"$sce\", function($sce) {\n\t\n\t    return function(text) {\n\t      return $sce.trustAsHtml(text);\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 29 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .constant('calendarConfig', {\n\t    allDateFormats: {\n\t      angular: {\n\t        date: {\n\t          hour: 'ha',\n\t          day: 'd MMM',\n\t          month: 'MMMM',\n\t          weekDay: 'EEEE',\n\t          time: 'HH:mm',\n\t          datetime: 'MMM d, h:mm a'\n\t        },\n\t        title: {\n\t          day: 'EEEE d MMMM, yyyy',\n\t          week: 'Week {week} of {year}',\n\t          month: 'MMMM yyyy',\n\t          year: 'yyyy'\n\t        }\n\t      },\n\t      moment: {\n\t        date: {\n\t          hour: 'ha',\n\t          day: 'D MMM',\n\t          month: 'MMMM',\n\t          weekDay: 'dddd',\n\t          time: 'HH:mm',\n\t          datetime: 'MMM D, h:mm a'\n\t        },\n\t        title: {\n\t          day: 'dddd D MMMM, YYYY',\n\t          week: 'Week {week} of {year}',\n\t          month: 'MMMM YYYY',\n\t          year: 'YYYY'\n\t        }\n\t      }\n\t    },\n\t    get dateFormats() {\n\t      return this.allDateFormats[this.dateFormatter].date;\n\t    },\n\t    get titleFormats() {\n\t      return this.allDateFormats[this.dateFormatter].title;\n\t    },\n\t    dateFormatter: 'angular',\n\t    displayEventEndTimes: false,\n\t    showTimesOnWeekView: false,\n\t    displayAllMonthEvents: false,\n\t    i18nStrings: {\n\t      weekNumber: 'Week {week}'\n\t    },\n\t    templates: {}\n\t  });\n\n\n/***/ },\n/* 30 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .factory('calendarHelper', [\"$q\", \"$templateRequest\", \"dateFilter\", \"moment\", \"calendarConfig\", function($q, $templateRequest, dateFilter, moment, calendarConfig) {\n\t\n\t    function formatDate(date, format) {\n\t      if (calendarConfig.dateFormatter === 'angular') {\n\t        return dateFilter(moment(date).toDate(), format);\n\t      } else if (calendarConfig.dateFormatter === 'moment') {\n\t        return moment(date).format(format);\n\t      } else {\n\t        throw new Error('Unknown date formatter: ' + calendarConfig.dateFormatter);\n\t      }\n\t    }\n\t\n\t    function adjustEndDateFromStartDiff(oldStart, newStart, oldEnd) {\n\t      if (!oldEnd) {\n\t        return oldEnd;\n\t      }\n\t      var diffInSeconds = moment(newStart).diff(moment(oldStart));\n\t      return moment(oldEnd).add(diffInSeconds);\n\t    }\n\t\n\t    function getRecurringEventPeriod(eventPeriod, recursOn, containerPeriodStart) {\n\t\n\t      var eventStart = moment(eventPeriod.start);\n\t      var eventEnd = moment(eventPeriod.end);\n\t      var periodStart = moment(containerPeriodStart);\n\t\n\t      if (recursOn) {\n\t\n\t        switch (recursOn) {\n\t          case 'year':\n\t            eventStart.set({\n\t              year: periodStart.year()\n\t            });\n\t            break;\n\t\n\t          case 'month':\n\t            eventStart.set({\n\t              year: periodStart.year(),\n\t              month: periodStart.month()\n\t            });\n\t            break;\n\t\n\t          default:\n\t            throw new Error('Invalid value (' + recursOn + ') given for recurs on. Can only be year or month.');\n\t        }\n\t\n\t        eventEnd = adjustEndDateFromStartDiff(eventPeriod.start, eventStart, eventEnd);\n\t\n\t      }\n\t\n\t      return {start: eventStart, end: eventEnd};\n\t\n\t    }\n\t\n\t    function eventIsInPeriod(event, periodStart, periodEnd) {\n\t\n\t      periodStart = moment(periodStart);\n\t      periodEnd = moment(periodEnd);\n\t\n\t      var eventPeriod = getRecurringEventPeriod({start: event.startsAt, end: event.endsAt || event.startsAt}, event.recursOn, periodStart);\n\t      var eventStart = eventPeriod.start;\n\t      var eventEnd = eventPeriod.end;\n\t\n\t      return (eventStart.isAfter(periodStart) &amp;&amp; eventStart.isBefore(periodEnd)) ||\n\t        (eventEnd.isAfter(periodStart) &amp;&amp; eventEnd.isBefore(periodEnd)) ||\n\t        (eventStart.isBefore(periodStart) &amp;&amp; eventEnd.isAfter(periodEnd)) ||\n\t        eventStart.isSame(periodStart) ||\n\t        eventEnd.isSame(periodEnd);\n\t\n\t    }\n\t\n\t    function filterEventsInPeriod(events, startPeriod, endPeriod) {\n\t      return events.filter(function(event) {\n\t        return eventIsInPeriod(event, startPeriod, endPeriod);\n\t      });\n\t    }\n\t\n\t    function getEventsInPeriod(calendarDate, period, allEvents) {\n\t      var startPeriod = moment(calendarDate).startOf(period);\n\t      var endPeriod = moment(calendarDate).endOf(period);\n\t      return filterEventsInPeriod(allEvents, startPeriod, endPeriod);\n\t    }\n\t\n\t    function getBadgeTotal(events) {\n\t      return events.filter(function(event) {\n\t        return event.incrementsBadgeTotal !== false;\n\t      }).length;\n\t    }\n\t\n\t    function getWeekDayNames() {\n\t      var weekdays = [];\n\t      var count = 0;\n\t      while (count &lt; 7) {\n\t        weekdays.push(formatDate(moment().weekday(count++), calendarConfig.dateFormats.weekDay));\n\t      }\n\t      return weekdays;\n\t    }\n\t\n\t    function getYearView(events, viewDate, cellModifier) {\n\t\n\t      var view = [];\n\t      var eventsInPeriod = getEventsInPeriod(viewDate, 'year', events);\n\t      var month = moment(viewDate).startOf('year');\n\t      var count = 0;\n\t      while (count &lt; 12) {\n\t        var startPeriod = month.clone();\n\t        var endPeriod = startPeriod.clone().endOf('month');\n\t        var periodEvents = filterEventsInPeriod(eventsInPeriod, startPeriod, endPeriod);\n\t        var cell = {\n\t          label: formatDate(startPeriod, calendarConfig.dateFormats.month),\n\t          isToday: startPeriod.isSame(moment().startOf('month')),\n\t          events: periodEvents,\n\t          date: startPeriod,\n\t          badgeTotal: getBadgeTotal(periodEvents)\n\t        };\n\t\n\t        cellModifier({calendarCell: cell});\n\t        view.push(cell);\n\t        month.add(1, 'month');\n\t        count++;\n\t      }\n\t\n\t      return view;\n\t\n\t    }\n\t\n\t    function getMonthView(events, viewDate, cellModifier) {\n\t\n\t      var startOfMonth = moment(viewDate).startOf('month');\n\t      var day = startOfMonth.clone().startOf('week');\n\t      var endOfMonthView = moment(viewDate).endOf('month').endOf('week');\n\t      var eventsInPeriod;\n\t      if (calendarConfig.displayAllMonthEvents) {\n\t        eventsInPeriod = filterEventsInPeriod(events, day, endOfMonthView);\n\t      } else {\n\t        eventsInPeriod = filterEventsInPeriod(events, startOfMonth, startOfMonth.clone().endOf('month'));\n\t      }\n\t      var view = [];\n\t      var today = moment().startOf('day');\n\t\n\t      while (day.isBefore(endOfMonthView)) {\n\t\n\t        var inMonth = day.month() === moment(viewDate).month();\n\t        var monthEvents = [];\n\t        if (inMonth || calendarConfig.displayAllMonthEvents) {\n\t          monthEvents = filterEventsInPeriod(eventsInPeriod, day, day.clone().endOf('day'));\n\t        }\n\t\n\t        var cell = {\n\t          label: day.date(),\n\t          date: day.clone(),\n\t          inMonth: inMonth,\n\t          isPast: today.isAfter(day),\n\t          isToday: today.isSame(day),\n\t          isFuture: today.isBefore(day),\n\t          isWeekend: [0, 6].indexOf(day.day()) &gt; -1,\n\t          events: monthEvents,\n\t          badgeTotal: getBadgeTotal(monthEvents)\n\t        };\n\t\n\t        cellModifier({calendarCell: cell});\n\t\n\t        view.push(cell);\n\t\n\t        day.add(1, 'day');\n\t      }\n\t\n\t      return view;\n\t\n\t    }\n\t\n\t    function getWeekView(events, viewDate) {\n\t\n\t      var startOfWeek = moment(viewDate).startOf('week');\n\t      var endOfWeek = moment(viewDate).endOf('week');\n\t      var dayCounter = startOfWeek.clone();\n\t      var days = [];\n\t      var today = moment().startOf('day');\n\t      while (days.length &lt; 7) {\n\t        days.push({\n\t          weekDayLabel: formatDate(dayCounter, calendarConfig.dateFormats.weekDay),\n\t          date: dayCounter.clone(),\n\t          dayLabel: formatDate(dayCounter, calendarConfig.dateFormats.day),\n\t          isPast: dayCounter.isBefore(today),\n\t          isToday: dayCounter.isSame(today),\n\t          isFuture: dayCounter.isAfter(today),\n\t          isWeekend: [0, 6].indexOf(dayCounter.day()) &gt; -1\n\t        });\n\t        dayCounter.add(1, 'day');\n\t      }\n\t\n\t      var eventsSorted = filterEventsInPeriod(events, startOfWeek, endOfWeek).map(function(event) {\n\t\n\t        var weekViewStart = moment(startOfWeek).startOf('day');\n\t        var weekViewEnd = moment(endOfWeek).startOf('day');\n\t\n\t        var eventPeriod = getRecurringEventPeriod({\n\t          start: moment(event.startsAt).startOf('day'),\n\t          end: moment(event.endsAt || event.startsAt).startOf('day')\n\t        }, event.recursOn, weekViewStart);\n\t\n\t        var eventStart = eventPeriod.start;\n\t        var eventEnd = eventPeriod.end;\n\t\n\t        var offset;\n\t        if (eventStart.isBefore(weekViewStart) || eventStart.isSame(weekViewStart)) {\n\t          offset = 0;\n\t        } else {\n\t          offset = eventStart.diff(weekViewStart, 'days');\n\t        }\n\t\n\t        if (eventEnd.isAfter(weekViewEnd)) {\n\t          eventEnd = weekViewEnd;\n\t        }\n\t\n\t        if (eventStart.isBefore(weekViewStart)) {\n\t          eventStart = weekViewStart;\n\t        }\n\t\n\t        event.daySpan = moment(eventEnd).diff(eventStart, 'days') + 1;\n\t        event.dayOffset = offset;\n\t\n\t        return event;\n\t      });\n\t\n\t      return {days: days, events: eventsSorted};\n\t\n\t    }\n\t\n\t    function getDayView(events, viewDate, dayViewStart, dayViewEnd, dayViewSplit) {\n\t\n\t      var dayStartHour = moment(dayViewStart || '00:00', 'HH:mm').hours();\n\t      var dayEndHour = moment(dayViewEnd || '23:00', 'HH:mm').hours();\n\t      var hourHeight = (60 / dayViewSplit) * 30;\n\t      var calendarStart = moment(viewDate).startOf('day').add(dayStartHour, 'hours');\n\t      var calendarEnd = moment(viewDate).startOf('day').add(dayEndHour + 1, 'hours');\n\t      var calendarHeight = (dayEndHour - dayStartHour + 1) * hourHeight;\n\t      var hourHeightMultiplier = hourHeight / 60;\n\t      var buckets = [];\n\t      var eventsInPeriod = filterEventsInPeriod(\n\t        events,\n\t        moment(viewDate).startOf('day').toDate(),\n\t        moment(viewDate).endOf('day').toDate()\n\t      );\n\t\n\t      return eventsInPeriod.map(function(event) {\n\t        if (moment(event.startsAt).isBefore(calendarStart)) {\n\t          event.top = 0;\n\t        } else {\n\t          event.top = (moment(event.startsAt).startOf('minute').diff(calendarStart.startOf('minute'), 'minutes') * hourHeightMultiplier) - 2;\n\t        }\n\t\n\t        if (moment(event.endsAt || event.startsAt).isAfter(calendarEnd)) {\n\t          event.height = calendarHeight - event.top;\n\t        } else {\n\t          var diffStart = event.startsAt;\n\t          if (moment(event.startsAt).isBefore(calendarStart)) {\n\t            diffStart = calendarStart.toDate();\n\t          }\n\t          if (!event.endsAt) {\n\t            event.height = 30;\n\t          } else {\n\t            event.height = moment(event.endsAt).diff(moment(diffStart), 'minutes') * hourHeightMultiplier;\n\t          }\n\t        }\n\t\n\t        if (event.top - event.height &gt; calendarHeight) {\n\t          event.height = 0;\n\t        }\n\t\n\t        event.left = 0;\n\t\n\t        return event;\n\t      }).filter(function(event) {\n\t        return event.height &gt; 0;\n\t      }).map(function(event) {\n\t\n\t        var cannotFitInABucket = true;\n\t        buckets.forEach(function(bucket, bucketIndex) {\n\t          var canFitInThisBucket = true;\n\t\n\t          bucket.forEach(function(bucketItem) {\n\t            if (eventIsInPeriod(event, bucketItem.startsAt, bucketItem.endsAt || bucketItem.startsAt) ||\n\t              eventIsInPeriod(bucketItem, event.startsAt, event.endsAt || event.startsAt)) {\n\t              canFitInThisBucket = false;\n\t            }\n\t          });\n\t\n\t          if (canFitInThisBucket &amp;&amp; cannotFitInABucket) {\n\t            cannotFitInABucket = false;\n\t            event.left = bucketIndex * 150;\n\t            buckets[bucketIndex].push(event);\n\t          }\n\t\n\t        });\n\t\n\t        if (cannotFitInABucket) {\n\t          event.left = buckets.length * 150;\n\t          buckets.push([event]);\n\t        }\n\t\n\t        return event;\n\t\n\t      });\n\t\n\t    }\n\t\n\t    function getWeekViewWithTimes(events, viewDate, dayViewStart, dayViewEnd, dayViewSplit) {\n\t      var weekView = getWeekView(events, viewDate);\n\t      var newEvents = [];\n\t      weekView.days.forEach(function(day) {\n\t        var dayEvents = weekView.events.filter(function(event) {\n\t          return moment(event.startsAt).startOf('day').isSame(moment(day.date).startOf('day'));\n\t        });\n\t        var newDayEvents = getDayView(\n\t          dayEvents,\n\t          day.date,\n\t          dayViewStart,\n\t          dayViewEnd,\n\t          dayViewSplit\n\t        );\n\t        newEvents = newEvents.concat(newDayEvents);\n\t      });\n\t      weekView.events = newEvents;\n\t      return weekView;\n\t    }\n\t\n\t    function getDayViewHeight(dayViewStart, dayViewEnd, dayViewSplit) {\n\t      var dayViewStartM = moment(dayViewStart || '00:00', 'HH:mm');\n\t      var dayViewEndM = moment(dayViewEnd || '23:00', 'HH:mm');\n\t      var hourHeight = (60 / dayViewSplit) * 30;\n\t      return ((dayViewEndM.diff(dayViewStartM, 'hours') + 1) * hourHeight) + 2;\n\t    }\n\t\n\t    function loadTemplates() {\n\t\n\t      var templatePromises = Object.keys(calendarConfig.templates).map(function(key) {\n\t        var templateUrl = calendarConfig.templates[key];\n\t        return $templateRequest(templateUrl);\n\t      });\n\t\n\t      return $q.all(templatePromises);\n\t\n\t    }\n\t\n\t    return {\n\t      getWeekDayNames: getWeekDayNames,\n\t      getYearView: getYearView,\n\t      getMonthView: getMonthView,\n\t      getWeekView: getWeekView,\n\t      getDayView: getDayView,\n\t      getWeekViewWithTimes: getWeekViewWithTimes,\n\t      getDayViewHeight: getDayViewHeight,\n\t      adjustEndDateFromStartDiff: adjustEndDateFromStartDiff,\n\t      formatDate: formatDate,\n\t      loadTemplates: loadTemplates,\n\t      eventIsInPeriod: eventIsInPeriod //expose for testing only\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 31 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .factory('calendarTitle', [\"moment\", \"calendarConfig\", \"calendarHelper\", function(moment, calendarConfig, calendarHelper) {\n\t\n\t    function day(viewDate) {\n\t      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.day);\n\t    }\n\t\n\t    function week(viewDate) {\n\t      return calendarConfig.titleFormats.week\n\t        .replace('{week}', moment(viewDate).isoWeek())\n\t        .replace('{year}', moment(viewDate).startOf('week').format('YYYY'));\n\t    }\n\t\n\t    function month(viewDate) {\n\t      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.month);\n\t    }\n\t\n\t    function year(viewDate) {\n\t      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.year);\n\t    }\n\t\n\t    return {\n\t      day: day,\n\t      week: week,\n\t      month: month,\n\t      year: year\n\t    };\n\t\n\t  }]);\n\n\n/***/ },\n/* 32 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\tvar interact;\n\ttry {\n\t  interact = __webpack_require__(39);\n\t} catch (e) {\n\t  /* istanbul ignore next */\n\t  interact = null;\n\t}\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .constant('interact', interact);\n\n\n/***/ },\n/* 33 */\n/***/ function(module, exports, __webpack_require__) {\n\n\t'use strict';\n\t\n\tvar angular = __webpack_require__(1);\n\tvar moment = __webpack_require__(38);\n\t\n\tangular\n\t  .module('mwl.calendar')\n\t  .constant('moment', moment);\n\n\n/***/ },\n/* 34 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./mwlCalendar.js\": 12,\n\t\t\"./mwlCalendarDay.js\": 13,\n\t\t\"./mwlCalendarHourList.js\": 14,\n\t\t\"./mwlCalendarMonth.js\": 15,\n\t\t\"./mwlCalendarSlideBox.js\": 16,\n\t\t\"./mwlCalendarWeek.js\": 17,\n\t\t\"./mwlCalendarYear.js\": 18,\n\t\t\"./mwlCollapseFallback.js\": 19,\n\t\t\"./mwlDateModifier.js\": 20,\n\t\t\"./mwlDraggable.js\": 21,\n\t\t\"./mwlDroppable.js\": 22,\n\t\t\"./mwlElementDimensions.js\": 23,\n\t\t\"./mwlResizable.js\": 24\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 34;\n\n\n/***/ },\n/* 35 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./calendarDate.js\": 25,\n\t\t\"./calendarLimitTo.js\": 26,\n\t\t\"./calendarTruncateEventTitle.js\": 27,\n\t\t\"./calendarTrustAsHtml.js\": 28\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 35;\n\n\n/***/ },\n/* 36 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./calendarConfig.js\": 29,\n\t\t\"./calendarHelper.js\": 30,\n\t\t\"./calendarTitle.js\": 31,\n\t\t\"./interact.js\": 32,\n\t\t\"./moment.js\": 33\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 36;\n\n\n/***/ },\n/* 37 */\n/***/ function(module, exports, __webpack_require__) {\n\n\tvar map = {\n\t\t\"./calendar.html\": 3,\n\t\t\"./calendarDayView.html\": 4,\n\t\t\"./calendarHourList.html\": 5,\n\t\t\"./calendarMonthCell.html\": 6,\n\t\t\"./calendarMonthCellEvents.html\": 7,\n\t\t\"./calendarMonthView.html\": 8,\n\t\t\"./calendarSlideBox.html\": 9,\n\t\t\"./calendarWeekView.html\": 10,\n\t\t\"./calendarYearView.html\": 11\n\t};\n\tfunction webpackContext(req) {\n\t\treturn __webpack_require__(webpackContextResolve(req));\n\t};\n\tfunction webpackContextResolve(req) {\n\t\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n\t};\n\twebpackContext.keys = function webpackContextKeys() {\n\t\treturn Object.keys(map);\n\t};\n\twebpackContext.resolve = webpackContextResolve;\n\tmodule.exports = webpackContext;\n\twebpackContext.id = 37;\n\n\n/***/ },\n/* 38 */\n/***/ function(module, exports) {\n\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_38__;\n\n/***/ },\n/* 39 */\n/***/ function(module, exports) {\n\n\tif(typeof __WEBPACK_EXTERNAL_MODULE_39__ === 'undefined') {var e = new Error(\"Cannot find module \\\"undefined\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\n\tmodule.exports = __WEBPACK_EXTERNAL_MODULE_39__;\n\n/***/ }\n/******/ ])\n});\n;\n\n\n/** WEBPACK FOOTER **\n ** angular-bootstrap-calendar-tpls.min.js\n **/"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId])\n \t\t\treturn installedModules[moduleId].exports;\n\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\texports: {},\n \t\t\tid: moduleId,\n \t\t\tloaded: false\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.loaded = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(0);\n\n\n\n/** WEBPACK FOOTER **\n ** webpack/bootstrap 123a5b3691bba3a16f3f\n **/","'use strict';\n\nrequire('./less/calendar.less');\n\nvar angular = require('angular');\n\nfunction requireAll(r) {\n  r.keys().forEach(r);\n}\n\nvar templates = {};\n\nif (EXCLUDE_TEMPLATES === false) {\n\n  var templatesContext = require.context('./templates', false, /\\.html/);\n\n  templatesContext.keys().forEach(function(templateName) {\n    var templateNameWithoutPrefix = templateName.replace('./', '');\n    var cacheTemplateName = 'mwl/' + templateNameWithoutPrefix;\n    var configTemplateName = templateNameWithoutPrefix.replace('.html', '');\n    templates[configTemplateName] = {\n      cacheTemplateName: cacheTemplateName,\n      template: templatesContext(templateName)\n    };\n  });\n\n}\n\nmodule.exports = angular\n  .module('mwl.calendar', [])\n  .config([\"calendarConfig\", function(calendarConfig) {\n    angular.forEach(templates, function(template, templateName) {\n      if (!calendarConfig.templates[templateName]) {\n        calendarConfig.templates[templateName] = template.cacheTemplateName;\n      }\n    });\n  }])\n  .run([\"$templateCache\", function($templateCache) {\n\n    angular.forEach(templates, function(template) {\n      if (!$templateCache.get(template.cacheTemplateName)) {\n        $templateCache.put(template.cacheTemplateName, template.template);\n      }\n    });\n\n  }]).name;\n\nrequireAll(require.context('./directives', true, /\\.js$/));\nrequireAll(require.context('./filters', true, /\\.js$/));\nrequireAll(require.context('./services', true, /\\.js$/));\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/entry.js\n ** module id = 0\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_1__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"angular\"\n ** module id = 1\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-context ng-switch=vm.view ng-if=vm.templatesLoaded&gt; &lt;div class=\\\"alert alert-danger\\\" ng-switch-default&gt;The value passed to the view attribute of the calendar is not set&lt;/div&gt; &lt;div class=\\\"alert alert-danger\\\" ng-hide=vm.viewDate&gt;The value passed to view-date attribute of the calendar is not set&lt;/div&gt; &lt;mwl-calendar-year events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-edit-event-click=vm.onEditEventClick on-delete-event-click=vm.onDeleteEventClick on-timespan-click=vm.onTimespanClick edit-event-html=vm.editEventHtml delete-event-html=vm.deleteEventHtml cell-is-open=vm.cellIsOpen cell-modifier=vm.cellModifier slide-box-disabled=vm.slideBoxDisabled ng-switch-when=year&gt; &lt;/mwl-calendar-year&gt; &lt;mwl-calendar-month events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-edit-event-click=vm.onEditEventClick on-delete-event-click=vm.onDeleteEventClick on-timespan-click=vm.onTimespanClick edit-event-html=vm.editEventHtml delete-event-html=vm.deleteEventHtml cell-is-open=vm.cellIsOpen cell-modifier=vm.cellModifier slide-box-disabled=vm.slideBoxDisabled ng-switch-when=month&gt; &lt;/mwl-calendar-month&gt; &lt;mwl-calendar-week events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit on-timespan-click=vm.onTimespanClick ng-switch-when=week&gt; &lt;/mwl-calendar-week&gt; &lt;mwl-calendar-day events=vm.events view-date=vm.viewDate on-event-click=vm.onEventClick on-event-times-changed=vm.onEventTimesChanged on-timespan-click=vm.onTimespanClick day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit ng-switch-when=day&gt; &lt;/mwl-calendar-day&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendar.html\n ** module id = 3\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-day-box&gt; &lt;div class=\\\"cal-day-panel clearfix\\\" ng-style=\\\"{height: vm.dayViewHeight + 'px'}\\\"&gt; &lt;mwl-calendar-hour-list day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit on-timespan-click=vm.onTimespanClick on-event-times-changed=vm.onEventTimesChanged view-date=vm.viewDate&gt; &lt;/mwl-calendar-hour-list&gt; &lt;div class=\\\"pull-left day-event day-highlight\\\" ng-repeat=\\\"event in vm.view track by event.$id\\\" ng-class=\\\"'dh-event-' + event.type + ' ' + event.cssClass\\\" ng-style=\\\"{top: event.top + 'px', left: event.left + 60 + 'px', height: event.height + 'px'}\\\" mwl-draggable=\\\"event.draggable === true\\\" axis=\\\"'xy'\\\" snap-grid=\\\"{y: 30, x: 50}\\\" on-drag=\\\"vm.eventDragged(event, y)\\\" on-drag-end=\\\"vm.eventDragComplete(event, y)\\\" mwl-resizable=\\\"event.resizable === true &amp;&amp; event.endsAt\\\" resize-edges=\\\"{top: true, bottom: true}\\\" on-resize=\\\"vm.eventResized(event, edge, y)\\\" on-resize-end=\\\"vm.eventResizeComplete(event, edge, y)\\\"&gt; &lt;span class=cal-hours&gt; &lt;span ng-show=\\\"event.top == 0\\\"&gt;&lt;span ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'day':true\\\"&gt;&lt;/span&gt;, &lt;/span&gt; &lt;span ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'time':true\\\"&gt;&lt;/span&gt; &lt;/span&gt; &lt;a href=javascript:; class=event-item ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\"&gt; &lt;span ng-bind-html=\\\"vm.$sce.trustAsHtml(event.title) | calendarTruncateEventTitle:20:event.height\\\"&gt;&lt;/span&gt; &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarDayView.html\n ** module id = 4\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-day-panel-hour&gt; &lt;div class=cal-day-hour ng-repeat=\\\"hour in vm.hours track by $index\\\"&gt; &lt;div class=cal-day-hour-part ng-repeat=\\\"chunk in vm.hourChunks track by chunk\\\" ng-click=\\\"vm.onTimespanClick({calendarDate: vm.getClickedDate(hour.date, vm.dayViewSplit * $index)})\\\" mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, vm.getClickedDate(hour.date, vm.dayViewSplit * $index))\\\" ng-if=!vm.dayWidth&gt; &lt;div class=cal-day-hour-part-time&gt; &lt;strong ng-bind=hour.label ng-show=$first&gt;&lt;/strong&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=cal-day-hour-part ng-repeat=\\\"chunk in vm.hourChunks track by chunk\\\" ng-if=vm.dayWidth&gt; &lt;div class=cal-day-hour-part-time&gt; &lt;strong ng-bind=hour.label ng-show=$first&gt;&lt;/strong&gt; &lt;/div&gt; &lt;div class=cal-day-hour-part-spacer ng-repeat=\\\"dayIndex in [0, 1, 2, 3, 4, 5, 6]\\\" ng-style=\\\"{width: vm.dayWidth + 'px'}\\\" ng-click=\\\"vm.onTimespanClick({calendarDate: vm.getClickedDate(hour.date, vm.dayViewSplit * $parent.$index, dayIndex)})\\\" mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, vm.getClickedDate(hour.date, vm.dayViewSplit * $parent.$index, dayIndex))\\\"&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarHourList.html\n ** module id = 5\n ** module chunks = 0\n **/","module.exports = \"&lt;div mwl-droppable on-drop=\\\"vm.handleEventDrop(dropData.event, day.date, dropData.draggedFromDate)\\\" class=\\\"cal-month-day {{ day.cssClass }}\\\" ng-class=\\\"{\\n    'cal-day-outmonth': !day.inMonth,\\n    'cal-day-inmonth': day.inMonth,\\n    'cal-day-weekend': day.isWeekend,\\n    'cal-day-past': day.isPast,\\n    'cal-day-today': day.isToday,\\n    'cal-day-future': day.isFuture\\n  }\\\"&gt; &lt;small class=\\\"cal-events-num badge badge-important pull-left\\\" ng-show=\\\"day.badgeTotal &gt; 0\\\" ng-bind=day.badgeTotal&gt; &lt;/small&gt; &lt;span class=pull-right data-cal-date ng-click=vm.calendarCtrl.dateClicked(day.date) ng-bind=day.label&gt; &lt;/span&gt; &lt;div class=cal-day-tick ng-show=\\\"dayIndex === vm.openDayIndex &amp;&amp; vm.view[vm.openDayIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\"&gt; &lt;i class=\\\"glyphicon glyphicon-chevron-up\\\"&gt;&lt;/i&gt; &lt;i class=\\\"fa fa-chevron-up\\\"&gt;&lt;/i&gt; &lt;/div&gt; &lt;ng-include src=vm.calendarConfig.templates.calendarMonthCellEvents&gt;&lt;/ng-include&gt; &lt;div id=cal-week-box ng-if=\\\"$first &amp;&amp; rowHovered\\\"&gt; {{ vm.calendarConfig.i18nStrings.weekNumber.replace('{week}', day.date.clone().add(1, 'day').isoWeek()) }} &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarMonthCell.html\n ** module id = 6\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=events-list ng-show=\\\"day.events.length &gt; 0\\\"&gt; &lt;a ng-repeat=\\\"event in day.events | orderBy:'startsAt' track by event.$id\\\" href=javascript:; ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\" class=\\\"pull-left event\\\" ng-class=\\\"'event-' + event.type + ' ' + event.cssClass\\\" ng-mouseenter=\\\"vm.highlightEvent(event, true)\\\" ng-mouseleave=\\\"vm.highlightEvent(event, false)\\\" tooltip-append-to-body=true uib-tooltip-html=\\\"((event.startsAt | calendarDate:'time':true) + (vm.calendarConfig.displayEventEndTimes &amp;&amp; event.endsAt ? ' - ' + (event.endsAt | calendarDate:'time':true) : '') + ' - ' + event.title) | calendarTrustAsHtml\\\" mwl-draggable=\\\"event.draggable === true\\\" drop-data=\\\"{event: event, draggedFromDate: day.date.toDate()}\\\"&gt; &lt;/a&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarMonthCellEvents.html\n ** module id = 7\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=\\\"cal-row-fluid cal-row-head\\\"&gt; &lt;div class=cal-cell1 ng-repeat=\\\"day in vm.weekDays track by $index\\\" ng-bind=day&gt;&lt;/div&gt; &lt;/div&gt; &lt;div class=cal-month-box&gt; &lt;div ng-repeat=\\\"rowOffset in vm.monthOffsets track by rowOffset\\\" ng-mouseenter=\\\"rowHovered = true\\\" ng-mouseleave=\\\"rowHovered = false\\\"&gt; &lt;div class=\\\"cal-row-fluid cal-before-eventlist\\\"&gt; &lt;div ng-repeat=\\\"day in vm.view | calendarLimitTo:7:rowOffset track by $index\\\" ng-init=\\\"dayIndex = vm.view.indexOf(day)\\\" class=\\\"cal-cell1 cal-cell {{ day.highlightClass }}\\\" ng-click=\\\"vm.dayClicked(day, false, $event)\\\" ng-class=\\\"{pointer: day.events.length &gt; 0}\\\"&gt; &lt;ng-include src=vm.calendarConfig.templates.calendarMonthCell&gt;&lt;/ng-include&gt; &lt;/div&gt; &lt;/div&gt; &lt;mwl-calendar-slide-box is-open=\\\"vm.openRowIndex === $index &amp;&amp; vm.view[vm.openDayIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\" events=vm.view[vm.openDayIndex].events on-event-click=vm.onEventClick edit-event-html=vm.editEventHtml on-edit-event-click=vm.onEditEventClick delete-event-html=vm.deleteEventHtml on-delete-event-click=vm.onDeleteEventClick&gt; &lt;/mwl-calendar-slide-box&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarMonthView.html\n ** module id = 8\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-slide-box uib-collapse=vm.isCollapsed mwl-collapse-fallback=vm.isCollapsed&gt; &lt;div class=\\\"cal-slide-content cal-event-list\\\"&gt; &lt;ul class=\\\"unstyled list-unstyled\\\"&gt; &lt;li ng-repeat=\\\"event in vm.events | orderBy:'startsAt' track by event.$id\\\" ng-class=event.cssClass mwl-draggable=\\\"event.draggable === true\\\" drop-data=\\\"{event: event}\\\"&gt; &lt;span class=\\\"pull-left event\\\" ng-class=\\\"'event-' + event.type\\\"&gt;&lt;/span&gt; &amp;nbsp; &lt;a href=javascript:; class=event-item ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\"&gt; &lt;span ng-bind-html=vm.$sce.trustAsHtml(event.title)&gt;&lt;/span&gt; (&lt;span ng-bind=\\\"event.startsAt | calendarDate:(isMonthView ? 'time' : 'datetime'):true\\\"&gt;&lt;/span&gt;&lt;span ng-if=\\\"vm.calendarConfig.displayEventEndTimes &amp;&amp; event.endsAt\\\"&gt; - &lt;span ng-bind=\\\"event.endsAt | calendarDate:(isMonthView ? 'time' : 'datetime'):true\\\"&gt;&lt;/span&gt;&lt;/span&gt;) &lt;/a&gt; &lt;a href=javascript:; class=event-item-edit ng-if=\\\"vm.editEventHtml &amp;&amp; event.editable !== false\\\" ng-bind-html=vm.$sce.trustAsHtml(vm.editEventHtml) ng-click=\\\"vm.onEditEventClick({calendarEvent: event})\\\"&gt; &lt;/a&gt; &lt;a href=javascript:; class=event-item-delete ng-if=\\\"vm.deleteEventHtml &amp;&amp; event.deletable !== false\\\" ng-bind-html=vm.$sce.trustAsHtml(vm.deleteEventHtml) ng-click=\\\"vm.onDeleteEventClick({calendarEvent: event})\\\"&gt; &lt;/a&gt; &lt;/li&gt; &lt;/ul&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarSlideBox.html\n ** module id = 9\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-week-box ng-class=\\\"{'cal-day-box': vm.showTimes}\\\"&gt; &lt;div class=\\\"cal-row-fluid cal-row-head\\\"&gt; &lt;div class=cal-cell1 ng-repeat=\\\"day in vm.view.days track by $index\\\" ng-class=\\\"{\\n        'cal-day-weekend': day.isWeekend,\\n        'cal-day-past': day.isPast,\\n        'cal-day-today': day.isToday,\\n        'cal-day-future': day.isFuture}\\\" mwl-element-dimensions=vm.dayColumnDimensions mwl-droppable on-drop=\\\"vm.eventDropped(dropData.event, day.date)\\\"&gt; &lt;span ng-bind=day.weekDayLabel&gt;&lt;/span&gt; &lt;br&gt; &lt;small&gt; &lt;span data-cal-date ng-click=vm.calendarCtrl.dateClicked(day.date) class=pointer ng-bind=day.dayLabel&gt; &lt;/span&gt; &lt;/small&gt; &lt;/div&gt; &lt;/div&gt; &lt;div class=\\\"cal-day-panel clearfix\\\" ng-style=\\\"{height: vm.showTimes ? (vm.dayViewHeight + 'px') : 'auto'}\\\"&gt; &lt;mwl-calendar-hour-list day-view-start=vm.dayViewStart day-view-end=vm.dayViewEnd day-view-split=vm.dayViewSplit day-width=vm.dayColumnDimensions.width view-date=vm.viewDate on-timespan-click=vm.onTimespanClick ng-if=vm.showTimes&gt; &lt;/mwl-calendar-hour-list&gt; &lt;div class=row&gt; &lt;div class=col-xs-12&gt; &lt;div class=cal-row-fluid ng-repeat=\\\"event in vm.view.events track by event.$id\\\"&gt; &lt;div ng-class=\\\"'cal-cell' + (vm.showTimes ? 1 : event.daySpan) + (vm.showTimes ? '' : ' cal-offset' + event.dayOffset) + ' day-highlight dh-event-' + event.type + ' ' + event.cssClass\\\" ng-style=\\\"{\\n              top: vm.showTimes ? ((event.top + 2) + 'px') : 'auto',\\n              position: vm.showTimes ? 'absolute' : 'inherit',\\n              width: vm.showTimes ? (vm.dayColumnDimensions.width + 'px') : '',\\n              left: vm.showTimes ? (vm.dayColumnDimensions.width * event.dayOffset) + 15 + 'px' : ''\\n            }\\\" data-event-class mwl-draggable=\\\"event.draggable === true\\\" axis=\\\"vm.showTimes ? 'xy' : 'x'\\\" snap-grid=\\\"vm.showTimes ? {x: vm.dayColumnDimensions.width, y: 30} : {x: vm.dayColumnDimensions.width}\\\" on-drag=\\\"vm.tempTimeChanged(event, y)\\\" on-drag-end=\\\"vm.weekDragged(event, x, y)\\\" mwl-resizable=\\\"event.resizable === true &amp;&amp; event.endsAt &amp;&amp; !vm.showTimes\\\" resize-edges=\\\"{left: true, right: true}\\\" on-resize-end=\\\"vm.weekResized(event, edge, x)\\\"&gt; &lt;strong ng-bind=\\\"(event.tempStartsAt || event.startsAt) | calendarDate:'time':true\\\" ng-show=vm.showTimes&gt;&lt;/strong&gt; &lt;a href=javascript:; ng-click=\\\"vm.onEventClick({calendarEvent: event})\\\" class=event-item ng-bind-html=vm.$sce.trustAsHtml(event.title) uib-tooltip-html=\\\"event.title | calendarTrustAsHtml\\\" tooltip-placement=left tooltip-append-to-body=true&gt; &lt;/a&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarWeekView.html\n ** module id = 10\n ** module chunks = 0\n **/","module.exports = \"&lt;div class=cal-year-box&gt; &lt;div ng-repeat=\\\"rowOffset in [0, 4, 8] track by rowOffset\\\"&gt; &lt;div class=\\\"row cal-before-eventlist\\\"&gt; &lt;div class=\\\"span3 col-md-3 col-xs-6 cal-cell {{ day.cssClass }}\\\" ng-repeat=\\\"month in vm.view | calendarLimitTo:4:rowOffset track by $index\\\" ng-init=\\\"monthIndex = vm.view.indexOf(month)\\\" ng-click=\\\"vm.monthClicked(month, false, $event)\\\" ng-class=\\\"{pointer: month.events.length &gt; 0, 'cal-day-today': month.isToday}\\\" mwl-droppable on-drop=\\\"vm.handleEventDrop(dropData.event, month.date)\\\"&gt; &lt;span class=pull-right data-cal-date ng-click=vm.calendarCtrl.dateClicked(month.date) ng-bind=month.label&gt; &lt;/span&gt; &lt;small class=\\\"cal-events-num badge badge-important pull-left\\\" ng-show=\\\"month.badgeTotal &gt; 0\\\" ng-bind=month.badgeTotal&gt; &lt;/small&gt; &lt;div class=cal-day-tick ng-show=\\\"monthIndex === vm.openMonthIndex &amp;&amp; vm.view[vm.openMonthIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\"&gt; &lt;i class=\\\"glyphicon glyphicon-chevron-up\\\"&gt;&lt;/i&gt; &lt;i class=\\\"fa fa-chevron-up\\\"&gt;&lt;/i&gt; &lt;/div&gt; &lt;/div&gt; &lt;/div&gt; &lt;mwl-calendar-slide-box is-open=\\\"vm.openRowIndex === $index &amp;&amp; vm.view[vm.openMonthIndex].events.length &gt; 0 &amp;&amp; !vm.slideBoxDisabled\\\" events=vm.view[vm.openMonthIndex].events on-event-click=vm.onEventClick edit-event-html=vm.editEventHtml on-edit-event-click=vm.onEditEventClick delete-event-html=vm.deleteEventHtml on-delete-event-click=vm.onDeleteEventClick&gt; &lt;/mwl-calendar-slide-box&gt; &lt;/div&gt; &lt;/div&gt;\";\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates/calendarYearView.html\n ** module id = 11\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarCtrl', [\"$scope\", \"$log\", \"$timeout\", \"$attrs\", \"$locale\", \"moment\", \"calendarTitle\", \"calendarHelper\", function($scope, $log, $timeout, $attrs, $locale, moment, calendarTitle, calendarHelper) {\n\n    var vm = this;\n\n    vm.events = vm.events || [];\n\n    vm.changeView = function(view, newDay) {\n      vm.view = view;\n      vm.viewDate = newDay;\n    };\n\n    vm.dateClicked = function(date) {\n\n      var rawDate = moment(date).toDate();\n\n      var nextView = {\n        year: 'month',\n        month: 'day',\n        week: 'day'\n      };\n\n      if (vm.onViewChangeClick({calendarDate: rawDate, calendarNextView: nextView[vm.view]}) !== false) {\n        vm.changeView(nextView[vm.view], rawDate);\n      }\n\n    };\n\n    var previousDate = moment(vm.viewDate);\n    var previousView = vm.view;\n\n    function eventIsValid(event) {\n      if (!event.startsAt) {\n        $log.warn('Bootstrap calendar: ', 'Event is missing the startsAt field', event);\n      }\n\n      if (!angular.isDate(event.startsAt)) {\n        $log.warn('Bootstrap calendar: ', 'Event startsAt should be a javascript date object', event);\n      }\n\n      if (angular.isDefined(event.endsAt)) {\n        if (!angular.isDate(event.endsAt)) {\n          $log.warn('Bootstrap calendar: ', 'Event endsAt should be a javascript date object', event);\n        }\n        if (moment(event.startsAt).isAfter(moment(event.endsAt))) {\n          $log.warn('Bootstrap calendar: ', 'Event cannot start after it finishes', event);\n        }\n      }\n\n      return true;\n    }\n\n    function refreshCalendar() {\n\n      if (calendarTitle[vm.view] &amp;&amp; angular.isDefined($attrs.viewTitle)) {\n        vm.viewTitle = calendarTitle[vm.view](vm.viewDate);\n      }\n\n      vm.events = vm.events.filter(eventIsValid).map(function(event, index) {\n        Object.defineProperty(event, '$id', {enumerable: false, configurable: true, value: index});\n        return event;\n      });\n\n      //if on-timespan-click=\"calendarDay = calendarDate\" is set then don't update the view as nothing needs to change\n      var currentDate = moment(vm.viewDate);\n      var shouldUpdate = true;\n      if (\n        previousDate.clone().startOf(vm.view).isSame(currentDate.clone().startOf(vm.view)) &amp;&amp;\n        !previousDate.isSame(currentDate) &amp;&amp;\n        vm.view === previousView\n      ) {\n        shouldUpdate = false;\n      }\n      previousDate = currentDate;\n      previousView = vm.view;\n\n      if (shouldUpdate) {\n        // a $timeout is required as $broadcast is synchronous so if a new events array is set the calendar won't update\n        $timeout(function() {\n          $scope.$broadcast('calendar.refreshView');\n        });\n      }\n    }\n\n    calendarHelper.loadTemplates().then(function() {\n      vm.templatesLoaded = true;\n\n      var eventsWatched = false;\n\n      //Refresh the calendar when any of these variables change.\n      $scope.$watchGroup([\n        'vm.viewDate',\n        'vm.view',\n        'vm.cellIsOpen',\n        function() {\n          return moment.locale() + $locale.id; //Auto update the calendar when the locale changes\n        }\n      ], function() {\n        if (!eventsWatched) {\n          eventsWatched = true;\n          //need to deep watch events hence why it isn't included in the watch group\n          $scope.$watch('vm.events', refreshCalendar, true); //this will call refreshCalendar when the watcher starts (i.e. now)\n        } else {\n          refreshCalendar();\n        }\n      });\n\n    }).catch(function(err) {\n      $log.error('Could not load all calendar templates', err);\n    });\n\n  }])\n  .directive('mwlCalendar', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      templateUrl: calendarConfig.templates.calendar,\n      restrict: 'E',\n      scope: {\n        events: '=',\n        view: '=',\n        viewTitle: '=?',\n        viewDate: '=',\n        editEventHtml: '=?',\n        deleteEventHtml: '=?',\n        cellIsOpen: '=?',\n        slideBoxDisabled: '=?',\n        onEventClick: '&amp;',\n        onEventTimesChanged: '&amp;',\n        onEditEventClick: '&amp;',\n        onDeleteEventClick: '&amp;',\n        onTimespanClick: '&amp;',\n        onViewChangeClick: '&amp;',\n        cellModifier: '&amp;',\n        dayViewStart: '@',\n        dayViewEnd: '@',\n        dayViewSplit: '@'\n      },\n      controller: 'MwlCalendarCtrl as vm',\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendar.js\n ** module id = 12\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarDayCtrl', [\"$scope\", \"$sce\", \"moment\", \"calendarHelper\", function($scope, $sce, moment, calendarHelper) {\n\n    var vm = this;\n\n    vm.$sce = $sce;\n\n    $scope.$on('calendar.refreshView', function() {\n      vm.dayViewSplit = vm.dayViewSplit || 30;\n      vm.dayViewHeight = calendarHelper.getDayViewHeight(\n        vm.dayViewStart,\n        vm.dayViewEnd,\n        vm.dayViewSplit\n      );\n\n      vm.view = calendarHelper.getDayView(\n        vm.events,\n        vm.viewDate,\n        vm.dayViewStart,\n        vm.dayViewEnd,\n        vm.dayViewSplit\n      );\n\n    });\n\n    vm.eventDragComplete = function(event, minuteChunksMoved) {\n      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n      var newStart = moment(event.startsAt).add(minutesDiff, 'minutes');\n      var newEnd = moment(event.endsAt).add(minutesDiff, 'minutes');\n      delete event.tempStartsAt;\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarNewEventStart: newStart.toDate(),\n        calendarNewEventEnd: event.endsAt ? newEnd.toDate() : null\n      });\n    };\n\n    vm.eventDragged = function(event, minuteChunksMoved) {\n      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n      event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n    };\n\n    vm.eventResizeComplete = function(event, edge, minuteChunksMoved) {\n      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n      var start = moment(event.startsAt);\n      var end = moment(event.endsAt);\n      if (edge === 'start') {\n        start.add(minutesDiff, 'minutes');\n      } else {\n        end.add(minutesDiff, 'minutes');\n      }\n      delete event.tempStartsAt;\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarNewEventStart: start.toDate(),\n        calendarNewEventEnd: end.toDate()\n      });\n    };\n\n    vm.eventResized = function(event, edge, minuteChunksMoved) {\n      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n      if (edge === 'start') {\n        event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n      }\n    };\n\n  }])\n  .directive('mwlCalendarDay', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      templateUrl: calendarConfig.templates.calendarDayView,\n      restrict: 'E',\n      require: '^mwlCalendar',\n      scope: {\n        events: '=',\n        viewDate: '=',\n        onEventClick: '=',\n        onEventTimesChanged: '=',\n        onTimespanClick: '=',\n        dayViewStart: '=',\n        dayViewEnd: '=',\n        dayViewSplit: '='\n      },\n      controller: 'MwlCalendarDayCtrl as vm',\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarDay.js\n ** module id = 13\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarHourListCtrl', [\"$scope\", \"$attrs\", \"moment\", \"calendarConfig\", \"calendarHelper\", function($scope, $attrs, moment, calendarConfig, calendarHelper) {\n    var vm = this;\n    var dayViewStart, dayViewEnd;\n\n    function updateDays() {\n      dayViewStart = moment(vm.dayViewStart || '00:00', 'HH:mm');\n      dayViewEnd = moment(vm.dayViewEnd || '23:00', 'HH:mm');\n      vm.dayViewSplit = parseInt(vm.dayViewSplit);\n      vm.hours = [];\n      var dayCounter = moment(vm.viewDate)\n        .clone();\n\n      if ($attrs.dayWidth) {\n        dayCounter = dayCounter.startOf('week');\n      }\n\n      dayCounter\n        .hours(dayViewStart.hours())\n        .minutes(dayViewStart.minutes())\n        .seconds(dayViewStart.seconds());\n\n      for (var i = 0; i &lt;= dayViewEnd.diff(dayViewStart, 'hours'); i++) {\n        vm.hours.push({\n          label: calendarHelper.formatDate(dayCounter, calendarConfig.dateFormats.hour),\n          date: dayCounter.clone()\n        });\n        dayCounter.add(1, 'hour');\n      }\n      vm.hourChunks = [];\n      for (var j = 0; j &lt; (60 / vm.dayViewSplit); j++) {\n        vm.hourChunks.push(j);\n      }\n    }\n\n    var originalLocale = moment.locale();\n\n    $scope.$on('calendar.refreshView', function() {\n\n      if (originalLocale !== moment.locale()) {\n        originalLocale = moment.locale();\n        updateDays();\n      }\n\n    });\n\n    $scope.$watchGroup([\n      'vm.dayViewStart',\n      'vm.dayViewEnd',\n      'vm.dayViewSplit',\n      'vm.viewDate'\n    ], function() {\n      updateDays();\n    });\n\n    vm.eventDropped = function(event, date) {\n      var newStart = moment(date);\n      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarDate: date,\n        calendarNewEventStart: newStart.toDate(),\n        calendarNewEventEnd: newEnd ? newEnd.toDate() : null\n      });\n    };\n\n    vm.getClickedDate = function(baseDate, minutes, days) {\n      return moment(baseDate).clone().add(minutes, 'minutes').add(days || 0, 'days').toDate();\n    };\n\n  }])\n  .directive('mwlCalendarHourList', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      restrict: 'E',\n      templateUrl: calendarConfig.templates.calendarHourList,\n      controller: 'MwlCalendarHourListCtrl as vm',\n      scope: {\n        viewDate: '=',\n        dayViewStart: '=',\n        dayViewEnd: '=',\n        dayViewSplit: '=',\n        dayWidth: '=?',\n        onTimespanClick: '=',\n        onEventTimesChanged: '='\n      },\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarHourList.js\n ** module id = 14\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarMonthCtrl', [\"$scope\", \"moment\", \"calendarHelper\", \"calendarConfig\", function($scope, moment, calendarHelper, calendarConfig) {\n\n    var vm = this;\n    vm.calendarConfig = calendarConfig;\n    vm.openRowIndex = null;\n\n    $scope.$on('calendar.refreshView', function() {\n\n      vm.weekDays = calendarHelper.getWeekDayNames();\n\n      vm.view = calendarHelper.getMonthView(vm.events, vm.viewDate, vm.cellModifier);\n      var rows = Math.floor(vm.view.length / 7);\n      vm.monthOffsets = [];\n      for (var i = 0; i &lt; rows; i++) {\n        vm.monthOffsets.push(i * 7);\n      }\n\n      //Auto open the calendar to the current day if set\n      if (vm.cellIsOpen &amp;&amp; vm.openRowIndex === null) {\n        vm.openDayIndex = null;\n        vm.view.forEach(function(day) {\n          if (day.inMonth &amp;&amp; moment(vm.viewDate).startOf('day').isSame(day.date)) {\n            vm.dayClicked(day, true);\n          }\n        });\n      }\n\n    });\n\n    vm.dayClicked = function(day, dayClickedFirstRun, $event) {\n\n      if (!dayClickedFirstRun) {\n        vm.onTimespanClick({\n          calendarDate: day.date.toDate(),\n          calendarCell: day,\n          $event: $event\n        });\n        if ($event &amp;&amp; $event.defaultPrevented) {\n          return;\n        }\n      }\n\n      vm.openRowIndex = null;\n      var dayIndex = vm.view.indexOf(day);\n      if (dayIndex === vm.openDayIndex) { //the day has been clicked and is already open\n        vm.openDayIndex = null; //close the open day\n        vm.cellIsOpen = false;\n      } else {\n        vm.openDayIndex = dayIndex;\n        vm.openRowIndex = Math.floor(dayIndex / 7);\n        vm.cellIsOpen = true;\n      }\n\n    };\n\n    vm.highlightEvent = function(event, shouldAddClass) {\n\n      vm.view.forEach(function(day) {\n        delete day.highlightClass;\n        if (shouldAddClass) {\n          var dayContainsEvent = day.events.indexOf(event) &gt; -1;\n          if (dayContainsEvent) {\n            day.highlightClass = 'day-highlight dh-event-' + event.type;\n          }\n        }\n      });\n\n    };\n\n    vm.handleEventDrop = function(event, newDayDate, draggedFromDate) {\n\n      var newStart = moment(event.startsAt)\n        .date(moment(newDayDate).date())\n        .month(moment(newDayDate).month());\n\n      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarDate: newDayDate,\n        calendarNewEventStart: newStart.toDate(),\n        calendarNewEventEnd: newEnd ? newEnd.toDate() : null,\n        calendarDraggedFromDate: draggedFromDate\n      });\n    };\n\n  }])\n  .directive('mwlCalendarMonth', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      templateUrl: calendarConfig.templates.calendarMonthView,\n      restrict: 'E',\n      require: '^mwlCalendar',\n      scope: {\n        events: '=',\n        viewDate: '=',\n        onEventClick: '=',\n        onEditEventClick: '=',\n        onDeleteEventClick: '=',\n        onEventTimesChanged: '=',\n        editEventHtml: '=',\n        deleteEventHtml: '=',\n        cellIsOpen: '=',\n        onTimespanClick: '=',\n        cellModifier: '=',\n        slideBoxDisabled: '='\n      },\n      controller: 'MwlCalendarMonthCtrl as vm',\n      link: function(scope, element, attrs, calendarCtrl) {\n        scope.vm.calendarCtrl = calendarCtrl;\n      },\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarMonth.js\n ** module id = 15\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarSlideBoxCtrl', [\"$sce\", \"$scope\", \"$timeout\", \"calendarConfig\", function($sce, $scope, $timeout, calendarConfig) {\n\n    var vm = this;\n    vm.$sce = $sce;\n    vm.calendarConfig = calendarConfig;\n\n    vm.isCollapsed = true;\n    $scope.$watch('vm.isOpen', function(isOpen) {\n      //events must be populated first to set the element height before animation will work\n      $timeout(function() {\n        vm.isCollapsed = !isOpen;\n      });\n    });\n\n  }])\n  .directive('mwlCalendarSlideBox', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      restrict: 'E',\n      templateUrl: calendarConfig.templates.calendarSlideBox,\n      replace: true,\n      controller: 'MwlCalendarSlideBoxCtrl as vm',\n      require: ['^?mwlCalendarMonth', '^?mwlCalendarYear'],\n      link: function(scope, elm, attrs, ctrls) {\n        scope.isMonthView = !!ctrls[0];\n        scope.isYearView = !!ctrls[1];\n      },\n      scope: {\n        isOpen: '=',\n        events: '=',\n        onEventClick: '=',\n        editEventHtml: '=',\n        onEditEventClick: '=',\n        deleteEventHtml: '=',\n        onDeleteEventClick: '='\n      },\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarSlideBox.js\n ** module id = 16\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarWeekCtrl', [\"$scope\", \"$sce\", \"moment\", \"calendarHelper\", \"calendarConfig\", function($scope, $sce, moment, calendarHelper, calendarConfig) {\n\n    var vm = this;\n\n    vm.showTimes = calendarConfig.showTimesOnWeekView;\n    vm.$sce = $sce;\n\n    $scope.$on('calendar.refreshView', function() {\n      vm.dayViewSplit = vm.dayViewSplit || 30;\n      vm.dayViewHeight = calendarHelper.getDayViewHeight(\n        vm.dayViewStart,\n        vm.dayViewEnd,\n        vm.dayViewSplit\n      );\n      if (vm.showTimes) {\n        vm.view = calendarHelper.getWeekViewWithTimes(\n          vm.events,\n          vm.viewDate,\n          vm.dayViewStart,\n          vm.dayViewEnd,\n          vm.dayViewSplit\n        );\n      } else {\n        vm.view = calendarHelper.getWeekView(vm.events, vm.viewDate);\n      }\n    });\n\n    vm.weekDragged = function(event, daysDiff, minuteChunksMoved) {\n\n      var newStart = moment(event.startsAt).add(daysDiff, 'days');\n      var newEnd = moment(event.endsAt).add(daysDiff, 'days');\n\n      if (minuteChunksMoved) {\n        var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n        newStart = newStart.add(minutesDiff, 'minutes');\n        newEnd = newEnd.add(minutesDiff, 'minutes');\n      }\n\n      delete event.tempStartsAt;\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarNewEventStart: newStart.toDate(),\n        calendarNewEventEnd: event.endsAt ? newEnd.toDate() : null\n      });\n    };\n\n    vm.eventDropped = function(event, date) {\n      var daysDiff = moment(date).diff(moment(event.startsAt), 'days');\n      vm.weekDragged(event, daysDiff);\n    };\n\n    vm.weekResized = function(event, edge, daysDiff) {\n\n      var start = moment(event.startsAt);\n      var end = moment(event.endsAt);\n      if (edge === 'start') {\n        start.add(daysDiff, 'days');\n      } else {\n        end.add(daysDiff, 'days');\n      }\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarNewEventStart: start.toDate(),\n        calendarNewEventEnd: end.toDate()\n      });\n\n    };\n\n    vm.tempTimeChanged = function(event, minuteChunksMoved) {\n      var minutesDiff = minuteChunksMoved * vm.dayViewSplit;\n      event.tempStartsAt = moment(event.startsAt).add(minutesDiff, 'minutes').toDate();\n    };\n\n  }])\n  .directive('mwlCalendarWeek', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      templateUrl: calendarConfig.templates.calendarWeekView,\n      restrict: 'E',\n      require: '^mwlCalendar',\n      scope: {\n        events: '=',\n        viewDate: '=',\n        onEventClick: '=',\n        onEventTimesChanged: '=',\n        dayViewStart: '=',\n        dayViewEnd: '=',\n        dayViewSplit: '=',\n        onTimespanClick: '='\n      },\n      controller: 'MwlCalendarWeekCtrl as vm',\n      link: function(scope, element, attrs, calendarCtrl) {\n        scope.vm.calendarCtrl = calendarCtrl;\n      },\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarWeek.js\n ** module id = 17\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCalendarYearCtrl', [\"$scope\", \"moment\", \"calendarHelper\", function($scope, moment, calendarHelper) {\n\n    var vm = this;\n    vm.openMonthIndex = null;\n\n    $scope.$on('calendar.refreshView', function() {\n      vm.view = calendarHelper.getYearView(vm.events, vm.viewDate, vm.cellModifier);\n\n      //Auto open the calendar to the current day if set\n      if (vm.cellIsOpen &amp;&amp; vm.openMonthIndex === null) {\n        vm.openMonthIndex = null;\n        vm.view.forEach(function(month) {\n          if (moment(vm.viewDate).startOf('month').isSame(month.date)) {\n            vm.monthClicked(month, true);\n          }\n        });\n      }\n\n    });\n\n    vm.monthClicked = function(month, monthClickedFirstRun, $event) {\n\n      if (!monthClickedFirstRun) {\n        vm.onTimespanClick({\n          calendarDate: month.date.toDate(),\n          calendarCell: month,\n          $event: $event\n        });\n        if ($event &amp;&amp; $event.defaultPrevented) {\n          return;\n        }\n      }\n\n      vm.openRowIndex = null;\n      var monthIndex = vm.view.indexOf(month);\n      if (monthIndex === vm.openMonthIndex) { //the month has been clicked and is already open\n        vm.openMonthIndex = null; //close the open month\n        vm.cellIsOpen = false;\n      } else {\n        vm.openMonthIndex = monthIndex;\n        vm.openRowIndex = Math.floor(monthIndex / 4);\n        vm.cellIsOpen = true;\n      }\n\n    };\n\n    vm.handleEventDrop = function(event, newMonthDate) {\n      var newStart = moment(event.startsAt).month(moment(newMonthDate).month());\n      var newEnd = calendarHelper.adjustEndDateFromStartDiff(event.startsAt, newStart, event.endsAt);\n\n      vm.onEventTimesChanged({\n        calendarEvent: event,\n        calendarDate: newMonthDate,\n        calendarNewEventStart: newStart.toDate(),\n        calendarNewEventEnd: newEnd ? newEnd.toDate() : null\n      });\n    };\n\n  }])\n  .directive('mwlCalendarYear', [\"calendarConfig\", function(calendarConfig) {\n\n    return {\n      templateUrl: calendarConfig.templates.calendarYearView,\n      restrict: 'E',\n      require: '^mwlCalendar',\n      scope: {\n        events: '=',\n        viewDate: '=',\n        onEventClick: '=',\n        onEventTimesChanged: '=',\n        onEditEventClick: '=',\n        onDeleteEventClick: '=',\n        editEventHtml: '=',\n        deleteEventHtml: '=',\n        cellIsOpen: '=',\n        onTimespanClick: '=',\n        cellModifier: '=',\n        slideBoxDisabled: '='\n      },\n      controller: 'MwlCalendarYearCtrl as vm',\n      link: function(scope, element, attrs, calendarCtrl) {\n        scope.vm.calendarCtrl = calendarCtrl;\n      },\n      bindToController: true\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCalendarYear.js\n ** module id = 18\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlCollapseFallbackCtrl', [\"$scope\", \"$attrs\", \"$element\", function($scope, $attrs, $element) {\n\n    $scope.$watch($attrs.mwlCollapseFallback, function(shouldCollapse) {\n      if (shouldCollapse) {\n        $element.addClass('ng-hide');\n      } else {\n        $element.removeClass('ng-hide');\n      }\n    });\n\n  }])\n  .directive('mwlCollapseFallback', [\"$injector\", function($injector) {\n\n    if ($injector.has('uibCollapseDirective')) {\n      return {};\n    }\n\n    return {\n      restrict: 'A',\n      controller: 'MwlCollapseFallbackCtrl'\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlCollapseFallback.js\n ** module id = 19\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlDateModifierCtrl', [\"$element\", \"$attrs\", \"$scope\", \"moment\", function($element, $attrs, $scope, moment) {\n\n    var vm = this;\n\n    function onClick() {\n      if (angular.isDefined($attrs.setToToday)) {\n        vm.date = new Date();\n      } else if (angular.isDefined($attrs.increment)) {\n        vm.date = moment(vm.date).add(1, vm.increment).toDate();\n      } else if (angular.isDefined($attrs.decrement)) {\n        vm.date = moment(vm.date).subtract(1, vm.decrement).toDate();\n      }\n      $scope.$apply();\n    }\n\n    $element.bind('click', onClick);\n\n    $scope.$on('$destroy', function() {\n      $element.unbind('click', onClick);\n    });\n\n  }])\n  .directive('mwlDateModifier', function() {\n\n    return {\n      restrict: 'A',\n      controller: 'MwlDateModifierCtrl as vm',\n      scope: {\n        date: '=',\n        increment: '=',\n        decrement: '='\n      },\n      bindToController: true\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlDateModifier.js\n ** module id = 20\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlDraggableCtrl', [\"$element\", \"$scope\", \"$window\", \"$parse\", \"$attrs\", \"$timeout\", \"interact\", function($element, $scope, $window, $parse, $attrs, $timeout, interact) {\n\n    if (!interact) {\n      return;\n    }\n\n    var snap, snapGridDimensions;\n    if ($attrs.snapGrid) {\n      snapGridDimensions = $parse($attrs.snapGrid)($scope);\n      snap = {\n        targets: [\n          interact.createSnapGrid(snapGridDimensions)\n        ]\n      };\n    }\n\n    function translateElement(elm, transformValue) {\n      return elm\n        .css('-ms-transform', transformValue)\n        .css('-webkit-transform', transformValue)\n        .css('transform', transformValue);\n    }\n\n    function getUnitsMoved(x, y, gridDimensions) {\n\n      var result = {x: x, y: y};\n\n      if (gridDimensions &amp;&amp; gridDimensions.x) {\n        result.x /= gridDimensions.x;\n      }\n\n      if (gridDimensions &amp;&amp; gridDimensions.y) {\n        result.y /= gridDimensions.y;\n      }\n\n      return result;\n\n    }\n\n    interact($element[0]).draggable({\n      snap: snap,\n      onstart: function(event) {\n        angular.element(event.target).addClass('dragging-active');\n        event.target.dropData = $parse($attrs.dropData)($scope);\n        event.target.style.pointerEvents = 'none';\n        if ($attrs.onDragStart) {\n          $parse($attrs.onDragStart)($scope);\n          $scope.$apply();\n        }\n      },\n      onmove: function(event) {\n\n        var elm = angular.element(event.target);\n        var x = (parseFloat(elm.attr('data-x')) || 0) + (event.dx || 0);\n        var y = (parseFloat(elm.attr('data-y')) || 0) + (event.dy || 0);\n\n        switch ($parse($attrs.axis)($scope)) {\n          case 'x':\n            y = 0;\n            break;\n\n          case 'y':\n            x = 0;\n            break;\n\n          default:\n        }\n\n        if ($window.getComputedStyle(elm[0]).position === 'static') {\n          elm.css('position', 'relative');\n        }\n\n        translateElement(elm, 'translate(' + x + 'px, ' + y + 'px)')\n          .css('z-index', 50)\n          .attr('data-x', x)\n          .attr('data-y', y);\n\n        if ($attrs.onDrag) {\n          $parse($attrs.onDrag)($scope, getUnitsMoved(x, y, snapGridDimensions));\n          $scope.$apply();\n        }\n\n      },\n      onend: function(event) {\n\n        var elm = angular.element(event.target);\n        var x = elm.attr('data-x');\n        var y = elm.attr('data-y');\n\n        event.target.style.pointerEvents = 'auto';\n        if ($attrs.onDragEnd) {\n          $parse($attrs.onDragEnd)($scope, getUnitsMoved(x, y, snapGridDimensions));\n          $scope.$apply();\n        }\n\n        $timeout(function() {\n          translateElement(elm, '')\n            .css('z-index', 'auto')\n            .removeAttr('data-x')\n            .removeAttr('data-y')\n            .removeClass('dragging-active');\n        });\n\n      }\n    });\n\n    $scope.$watch($attrs.mwlDraggable, function(enabled) {\n      interact($element[0]).draggable({\n        enabled: enabled\n      });\n    });\n\n    $scope.$on('$destroy', function() {\n      interact($element[0]).unset();\n    });\n\n  }])\n  .directive('mwlDraggable', function() {\n\n    return {\n      restrict: 'A',\n      controller: 'MwlDraggableCtrl'\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlDraggable.js\n ** module id = 21\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlDroppableCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", \"interact\", function($element, $scope, $parse, $attrs, interact) {\n\n    if (!interact) {\n      return;\n    }\n\n    var DROP_ACTIVE_CLASS = $attrs.dropActiveClass || 'drop-active';\n\n    interact($element[0]).dropzone({\n      ondragenter: function(event) {\n        angular.element(event.target).addClass(DROP_ACTIVE_CLASS);\n      },\n      ondragleave: function(event) {\n        angular.element(event.target).removeClass(DROP_ACTIVE_CLASS);\n      },\n      ondropdeactivate: function(event) {\n        angular.element(event.target).removeClass(DROP_ACTIVE_CLASS);\n      },\n      ondrop: function(event) {\n        if (event.relatedTarget.dropData) {\n          $parse($attrs.onDrop)($scope, {dropData: event.relatedTarget.dropData});\n          $scope.$apply();\n        }\n      }\n    });\n\n    $scope.$on('$destroy', function() {\n      interact($element[0]).unset();\n    });\n\n  }])\n  .directive('mwlDroppable', function() {\n\n    return {\n      restrict: 'A',\n      controller: 'MwlDroppableCtrl'\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlDroppable.js\n ** module id = 22\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlElementDimensionsCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", function($element, $scope, $parse, $attrs) {\n\n    $parse($attrs.mwlElementDimensions).assign($scope, {\n      width: $element[0].offsetWidth,\n      height: $element[0].offsetHeight\n    });\n\n  }])\n  .directive('mwlElementDimensions', function() {\n\n    return {\n      restrict: 'A',\n      controller: 'MwlElementDimensionsCtrl'\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlElementDimensions.js\n ** module id = 23\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .controller('MwlResizableCtrl', [\"$element\", \"$scope\", \"$parse\", \"$attrs\", \"$timeout\", \"interact\", function($element, $scope, $parse, $attrs, $timeout, interact) {\n\n    if (!interact) {\n      return;\n    }\n\n    var snap, snapGridDimensions;\n    if ($attrs.snapGrid) {\n      snapGridDimensions = $parse($attrs.snapGrid)($scope);\n      snap = {\n        targets: [\n          interact.createSnapGrid(snapGridDimensions)\n        ]\n      };\n    }\n\n    var originalDimensions = {};\n    var originalDimensionsStyle = {};\n    var resizeEdge;\n\n    function getUnitsResized(edge, elm, gridDimensions) {\n      var unitsResized = {};\n      unitsResized.edge = edge;\n      if (edge === 'start') {\n        unitsResized.x = elm.data('x');\n        unitsResized.y = elm.data('y');\n      } else if (edge === 'end') {\n        unitsResized.x = parseFloat(elm.css('width').replace('px', '')) - originalDimensions.width;\n        unitsResized.y = parseFloat(elm.css('height').replace('px', '')) - originalDimensions.height;\n      }\n      if (gridDimensions &amp;&amp; gridDimensions.x) {\n        unitsResized.x = Math.round(unitsResized.x / gridDimensions.x);\n      }\n      if (gridDimensions &amp;&amp; gridDimensions.y) {\n        unitsResized.y = Math.round(unitsResized.y / gridDimensions.y);\n      }\n      return unitsResized;\n    }\n\n    interact($element[0]).resizable({\n      edges: $parse($attrs.resizeEdges)($scope),\n      snap: snap,\n      onstart: function(event) {\n\n        resizeEdge = 'end';\n        var elm = angular.element(event.target);\n        originalDimensions.height = elm[0].offsetHeight;\n        originalDimensions.width = elm[0].offsetWidth;\n        originalDimensionsStyle.height = elm.css('height');\n        originalDimensionsStyle.width = elm.css('width');\n\n      },\n      onmove: function(event) {\n\n        if (event.rect.width &gt; 0 &amp;&amp; event.rect.height &gt; 0) {\n          var elm = angular.element(event.target);\n          var x = parseFloat(elm.data('x') || 0);\n          var y = parseFloat(elm.data('y') || 0);\n\n          elm.css({\n            width: event.rect.width + 'px',\n            height: event.rect.height + 'px'\n          });\n\n          // translate when resizing from top or left edges\n          x += event.deltaRect.left;\n          y += event.deltaRect.top;\n\n          elm.css('transform', 'translate(' + x + 'px,' + y + 'px)');\n\n          elm.data('x', x);\n          elm.data('y', y);\n\n          if (event.deltaRect.left !== 0 || event.deltaRect.top !== 0) {\n            resizeEdge = 'start';\n          }\n\n          if ($attrs.onResize) {\n            $parse($attrs.onResize)($scope, getUnitsResized(resizeEdge, elm, snapGridDimensions));\n            $scope.$apply();\n          }\n\n        }\n\n      },\n      onend: function(event) {\n\n        var elm = angular.element(event.target);\n        var unitsResized = getUnitsResized(resizeEdge, elm, snapGridDimensions);\n\n        $timeout(function() {\n          elm\n            .data('x', null)\n            .data('y', null)\n            .css({\n              transform: '',\n              width: originalDimensionsStyle.width,\n              height: originalDimensionsStyle.height\n            });\n        });\n\n        if ($attrs.onResizeEnd) {\n          $parse($attrs.onResizeEnd)($scope, unitsResized);\n          $scope.$apply();\n        }\n\n      }\n    });\n\n    $scope.$watch($attrs.mwlResizable, function(enabled) {\n      interact($element[0]).resizable({\n        enabled: enabled\n      });\n    });\n\n    $scope.$on('$destroy', function() {\n      interact($element[0]).unset();\n    });\n\n  }])\n  .directive('mwlResizable', function() {\n\n    return {\n      restrict: 'A',\n      controller: 'MwlResizableCtrl'\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives/mwlResizable.js\n ** module id = 24\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .filter('calendarDate', [\"calendarHelper\", \"calendarConfig\", function(calendarHelper, calendarConfig) {\n\n    function calendarDate(date, format, getFromConfig) {\n\n      if (getFromConfig === true) {\n        format = calendarConfig.dateFormats[format];\n      }\n\n      return calendarHelper.formatDate(date, format);\n\n    }\n\n    // This is stateful because the locale can change as well\n    // as calendarConfig.dateFormats which would change the value outside of this filter\n    calendarDate.$stateful = true;\n\n    return calendarDate;\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/filters/calendarDate.js\n ** module id = 25\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .filter('calendarLimitTo', [\"limitToFilter\", function(limitToFilter) {\n\n    if (angular.version.minor &gt;= 4) { //1.4+ supports the begin attribute\n      return limitToFilter;\n    }\n\n    //Copied from the angular source. Only 1.4 has the begin functionality.\n    return function(input, limit, begin) {\n      if (Math.abs(Number(limit)) === Infinity) {\n        limit = Number(limit);\n      } else {\n        limit = parseInt(limit);\n      }\n      if (isNaN(limit)) {\n        return input;\n      }\n\n      if (angular.isNumber(input)) {\n        input = input.toString();\n      }\n      if (!angular.isArray(input) &amp;&amp; !angular.isString(input)) {\n        return input;\n      }\n\n      begin = (!begin || isNaN(begin)) ? 0 : parseInt(begin);\n      begin = (begin &lt; 0 &amp;&amp; begin &gt;= -input.length) ? input.length + begin : begin;\n\n      if (limit &gt;= 0) {\n        return input.slice(begin, begin + limit);\n      } else if (begin === 0) {\n        return input.slice(limit, input.length);\n      } else {\n        return input.slice(Math.max(0, begin + limit), begin);\n      }\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/filters/calendarLimitTo.js\n ** module id = 26\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .filter('calendarTruncateEventTitle', function() {\n\n    return function(string, length, boxHeight) {\n      if (!string) {\n        return '';\n      }\n\n      //Only truncate if if actually needs truncating\n      if (string.length &gt;= length &amp;&amp; string.length / 20 &gt; boxHeight / 30) {\n        return string.substr(0, length) + '...';\n      } else {\n        return string;\n      }\n    };\n\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/filters/calendarTruncateEventTitle.js\n ** module id = 27\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .filter('calendarTrustAsHtml', [\"$sce\", function($sce) {\n\n    return function(text) {\n      return $sce.trustAsHtml(text);\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/filters/calendarTrustAsHtml.js\n ** module id = 28\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .constant('calendarConfig', {\n    allDateFormats: {\n      angular: {\n        date: {\n          hour: 'ha',\n          day: 'd MMM',\n          month: 'MMMM',\n          weekDay: 'EEEE',\n          time: 'HH:mm',\n          datetime: 'MMM d, h:mm a'\n        },\n        title: {\n          day: 'EEEE d MMMM, yyyy',\n          week: 'Week {week} of {year}',\n          month: 'MMMM yyyy',\n          year: 'yyyy'\n        }\n      },\n      moment: {\n        date: {\n          hour: 'ha',\n          day: 'D MMM',\n          month: 'MMMM',\n          weekDay: 'dddd',\n          time: 'HH:mm',\n          datetime: 'MMM D, h:mm a'\n        },\n        title: {\n          day: 'dddd D MMMM, YYYY',\n          week: 'Week {week} of {year}',\n          month: 'MMMM YYYY',\n          year: 'YYYY'\n        }\n      }\n    },\n    get dateFormats() {\n      return this.allDateFormats[this.dateFormatter].date;\n    },\n    get titleFormats() {\n      return this.allDateFormats[this.dateFormatter].title;\n    },\n    dateFormatter: 'angular',\n    displayEventEndTimes: false,\n    showTimesOnWeekView: false,\n    displayAllMonthEvents: false,\n    i18nStrings: {\n      weekNumber: 'Week {week}'\n    },\n    templates: {}\n  });\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services/calendarConfig.js\n ** module id = 29\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .factory('calendarHelper', [\"$q\", \"$templateRequest\", \"dateFilter\", \"moment\", \"calendarConfig\", function($q, $templateRequest, dateFilter, moment, calendarConfig) {\n\n    function formatDate(date, format) {\n      if (calendarConfig.dateFormatter === 'angular') {\n        return dateFilter(moment(date).toDate(), format);\n      } else if (calendarConfig.dateFormatter === 'moment') {\n        return moment(date).format(format);\n      } else {\n        throw new Error('Unknown date formatter: ' + calendarConfig.dateFormatter);\n      }\n    }\n\n    function adjustEndDateFromStartDiff(oldStart, newStart, oldEnd) {\n      if (!oldEnd) {\n        return oldEnd;\n      }\n      var diffInSeconds = moment(newStart).diff(moment(oldStart));\n      return moment(oldEnd).add(diffInSeconds);\n    }\n\n    function getRecurringEventPeriod(eventPeriod, recursOn, containerPeriodStart) {\n\n      var eventStart = moment(eventPeriod.start);\n      var eventEnd = moment(eventPeriod.end);\n      var periodStart = moment(containerPeriodStart);\n\n      if (recursOn) {\n\n        switch (recursOn) {\n          case 'year':\n            eventStart.set({\n              year: periodStart.year()\n            });\n            break;\n\n          case 'month':\n            eventStart.set({\n              year: periodStart.year(),\n              month: periodStart.month()\n            });\n            break;\n\n          default:\n            throw new Error('Invalid value (' + recursOn + ') given for recurs on. Can only be year or month.');\n        }\n\n        eventEnd = adjustEndDateFromStartDiff(eventPeriod.start, eventStart, eventEnd);\n\n      }\n\n      return {start: eventStart, end: eventEnd};\n\n    }\n\n    function eventIsInPeriod(event, periodStart, periodEnd) {\n\n      periodStart = moment(periodStart);\n      periodEnd = moment(periodEnd);\n\n      var eventPeriod = getRecurringEventPeriod({start: event.startsAt, end: event.endsAt || event.startsAt}, event.recursOn, periodStart);\n      var eventStart = eventPeriod.start;\n      var eventEnd = eventPeriod.end;\n\n      return (eventStart.isAfter(periodStart) &amp;&amp; eventStart.isBefore(periodEnd)) ||\n        (eventEnd.isAfter(periodStart) &amp;&amp; eventEnd.isBefore(periodEnd)) ||\n        (eventStart.isBefore(periodStart) &amp;&amp; eventEnd.isAfter(periodEnd)) ||\n        eventStart.isSame(periodStart) ||\n        eventEnd.isSame(periodEnd);\n\n    }\n\n    function filterEventsInPeriod(events, startPeriod, endPeriod) {\n      return events.filter(function(event) {\n        return eventIsInPeriod(event, startPeriod, endPeriod);\n      });\n    }\n\n    function getEventsInPeriod(calendarDate, period, allEvents) {\n      var startPeriod = moment(calendarDate).startOf(period);\n      var endPeriod = moment(calendarDate).endOf(period);\n      return filterEventsInPeriod(allEvents, startPeriod, endPeriod);\n    }\n\n    function getBadgeTotal(events) {\n      return events.filter(function(event) {\n        return event.incrementsBadgeTotal !== false;\n      }).length;\n    }\n\n    function getWeekDayNames() {\n      var weekdays = [];\n      var count = 0;\n      while (count &lt; 7) {\n        weekdays.push(formatDate(moment().weekday(count++), calendarConfig.dateFormats.weekDay));\n      }\n      return weekdays;\n    }\n\n    function getYearView(events, viewDate, cellModifier) {\n\n      var view = [];\n      var eventsInPeriod = getEventsInPeriod(viewDate, 'year', events);\n      var month = moment(viewDate).startOf('year');\n      var count = 0;\n      while (count &lt; 12) {\n        var startPeriod = month.clone();\n        var endPeriod = startPeriod.clone().endOf('month');\n        var periodEvents = filterEventsInPeriod(eventsInPeriod, startPeriod, endPeriod);\n        var cell = {\n          label: formatDate(startPeriod, calendarConfig.dateFormats.month),\n          isToday: startPeriod.isSame(moment().startOf('month')),\n          events: periodEvents,\n          date: startPeriod,\n          badgeTotal: getBadgeTotal(periodEvents)\n        };\n\n        cellModifier({calendarCell: cell});\n        view.push(cell);\n        month.add(1, 'month');\n        count++;\n      }\n\n      return view;\n\n    }\n\n    function getMonthView(events, viewDate, cellModifier) {\n\n      var startOfMonth = moment(viewDate).startOf('month');\n      var day = startOfMonth.clone().startOf('week');\n      var endOfMonthView = moment(viewDate).endOf('month').endOf('week');\n      var eventsInPeriod;\n      if (calendarConfig.displayAllMonthEvents) {\n        eventsInPeriod = filterEventsInPeriod(events, day, endOfMonthView);\n      } else {\n        eventsInPeriod = filterEventsInPeriod(events, startOfMonth, startOfMonth.clone().endOf('month'));\n      }\n      var view = [];\n      var today = moment().startOf('day');\n\n      while (day.isBefore(endOfMonthView)) {\n\n        var inMonth = day.month() === moment(viewDate).month();\n        var monthEvents = [];\n        if (inMonth || calendarConfig.displayAllMonthEvents) {\n          monthEvents = filterEventsInPeriod(eventsInPeriod, day, day.clone().endOf('day'));\n        }\n\n        var cell = {\n          label: day.date(),\n          date: day.clone(),\n          inMonth: inMonth,\n          isPast: today.isAfter(day),\n          isToday: today.isSame(day),\n          isFuture: today.isBefore(day),\n          isWeekend: [0, 6].indexOf(day.day()) &gt; -1,\n          events: monthEvents,\n          badgeTotal: getBadgeTotal(monthEvents)\n        };\n\n        cellModifier({calendarCell: cell});\n\n        view.push(cell);\n\n        day.add(1, 'day');\n      }\n\n      return view;\n\n    }\n\n    function getWeekView(events, viewDate) {\n\n      var startOfWeek = moment(viewDate).startOf('week');\n      var endOfWeek = moment(viewDate).endOf('week');\n      var dayCounter = startOfWeek.clone();\n      var days = [];\n      var today = moment().startOf('day');\n      while (days.length &lt; 7) {\n        days.push({\n          weekDayLabel: formatDate(dayCounter, calendarConfig.dateFormats.weekDay),\n          date: dayCounter.clone(),\n          dayLabel: formatDate(dayCounter, calendarConfig.dateFormats.day),\n          isPast: dayCounter.isBefore(today),\n          isToday: dayCounter.isSame(today),\n          isFuture: dayCounter.isAfter(today),\n          isWeekend: [0, 6].indexOf(dayCounter.day()) &gt; -1\n        });\n        dayCounter.add(1, 'day');\n      }\n\n      var eventsSorted = filterEventsInPeriod(events, startOfWeek, endOfWeek).map(function(event) {\n\n        var weekViewStart = moment(startOfWeek).startOf('day');\n        var weekViewEnd = moment(endOfWeek).startOf('day');\n\n        var eventPeriod = getRecurringEventPeriod({\n          start: moment(event.startsAt).startOf('day'),\n          end: moment(event.endsAt || event.startsAt).startOf('day')\n        }, event.recursOn, weekViewStart);\n\n        var eventStart = eventPeriod.start;\n        var eventEnd = eventPeriod.end;\n\n        var offset;\n        if (eventStart.isBefore(weekViewStart) || eventStart.isSame(weekViewStart)) {\n          offset = 0;\n        } else {\n          offset = eventStart.diff(weekViewStart, 'days');\n        }\n\n        if (eventEnd.isAfter(weekViewEnd)) {\n          eventEnd = weekViewEnd;\n        }\n\n        if (eventStart.isBefore(weekViewStart)) {\n          eventStart = weekViewStart;\n        }\n\n        event.daySpan = moment(eventEnd).diff(eventStart, 'days') + 1;\n        event.dayOffset = offset;\n\n        return event;\n      });\n\n      return {days: days, events: eventsSorted};\n\n    }\n\n    function getDayView(events, viewDate, dayViewStart, dayViewEnd, dayViewSplit) {\n\n      var dayStartHour = moment(dayViewStart || '00:00', 'HH:mm').hours();\n      var dayEndHour = moment(dayViewEnd || '23:00', 'HH:mm').hours();\n      var hourHeight = (60 / dayViewSplit) * 30;\n      var calendarStart = moment(viewDate).startOf('day').add(dayStartHour, 'hours');\n      var calendarEnd = moment(viewDate).startOf('day').add(dayEndHour + 1, 'hours');\n      var calendarHeight = (dayEndHour - dayStartHour + 1) * hourHeight;\n      var hourHeightMultiplier = hourHeight / 60;\n      var buckets = [];\n      var eventsInPeriod = filterEventsInPeriod(\n        events,\n        moment(viewDate).startOf('day').toDate(),\n        moment(viewDate).endOf('day').toDate()\n      );\n\n      return eventsInPeriod.map(function(event) {\n        if (moment(event.startsAt).isBefore(calendarStart)) {\n          event.top = 0;\n        } else {\n          event.top = (moment(event.startsAt).startOf('minute').diff(calendarStart.startOf('minute'), 'minutes') * hourHeightMultiplier) - 2;\n        }\n\n        if (moment(event.endsAt || event.startsAt).isAfter(calendarEnd)) {\n          event.height = calendarHeight - event.top;\n        } else {\n          var diffStart = event.startsAt;\n          if (moment(event.startsAt).isBefore(calendarStart)) {\n            diffStart = calendarStart.toDate();\n          }\n          if (!event.endsAt) {\n            event.height = 30;\n          } else {\n            event.height = moment(event.endsAt).diff(moment(diffStart), 'minutes') * hourHeightMultiplier;\n          }\n        }\n\n        if (event.top - event.height &gt; calendarHeight) {\n          event.height = 0;\n        }\n\n        event.left = 0;\n\n        return event;\n      }).filter(function(event) {\n        return event.height &gt; 0;\n      }).map(function(event) {\n\n        var cannotFitInABucket = true;\n        buckets.forEach(function(bucket, bucketIndex) {\n          var canFitInThisBucket = true;\n\n          bucket.forEach(function(bucketItem) {\n            if (eventIsInPeriod(event, bucketItem.startsAt, bucketItem.endsAt || bucketItem.startsAt) ||\n              eventIsInPeriod(bucketItem, event.startsAt, event.endsAt || event.startsAt)) {\n              canFitInThisBucket = false;\n            }\n          });\n\n          if (canFitInThisBucket &amp;&amp; cannotFitInABucket) {\n            cannotFitInABucket = false;\n            event.left = bucketIndex * 150;\n            buckets[bucketIndex].push(event);\n          }\n\n        });\n\n        if (cannotFitInABucket) {\n          event.left = buckets.length * 150;\n          buckets.push([event]);\n        }\n\n        return event;\n\n      });\n\n    }\n\n    function getWeekViewWithTimes(events, viewDate, dayViewStart, dayViewEnd, dayViewSplit) {\n      var weekView = getWeekView(events, viewDate);\n      var newEvents = [];\n      weekView.days.forEach(function(day) {\n        var dayEvents = weekView.events.filter(function(event) {\n          return moment(event.startsAt).startOf('day').isSame(moment(day.date).startOf('day'));\n        });\n        var newDayEvents = getDayView(\n          dayEvents,\n          day.date,\n          dayViewStart,\n          dayViewEnd,\n          dayViewSplit\n        );\n        newEvents = newEvents.concat(newDayEvents);\n      });\n      weekView.events = newEvents;\n      return weekView;\n    }\n\n    function getDayViewHeight(dayViewStart, dayViewEnd, dayViewSplit) {\n      var dayViewStartM = moment(dayViewStart || '00:00', 'HH:mm');\n      var dayViewEndM = moment(dayViewEnd || '23:00', 'HH:mm');\n      var hourHeight = (60 / dayViewSplit) * 30;\n      return ((dayViewEndM.diff(dayViewStartM, 'hours') + 1) * hourHeight) + 2;\n    }\n\n    function loadTemplates() {\n\n      var templatePromises = Object.keys(calendarConfig.templates).map(function(key) {\n        var templateUrl = calendarConfig.templates[key];\n        return $templateRequest(templateUrl);\n      });\n\n      return $q.all(templatePromises);\n\n    }\n\n    return {\n      getWeekDayNames: getWeekDayNames,\n      getYearView: getYearView,\n      getMonthView: getMonthView,\n      getWeekView: getWeekView,\n      getDayView: getDayView,\n      getWeekViewWithTimes: getWeekViewWithTimes,\n      getDayViewHeight: getDayViewHeight,\n      adjustEndDateFromStartDiff: adjustEndDateFromStartDiff,\n      formatDate: formatDate,\n      loadTemplates: loadTemplates,\n      eventIsInPeriod: eventIsInPeriod //expose for testing only\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services/calendarHelper.js\n ** module id = 30\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\n\nangular\n  .module('mwl.calendar')\n  .factory('calendarTitle', [\"moment\", \"calendarConfig\", \"calendarHelper\", function(moment, calendarConfig, calendarHelper) {\n\n    function day(viewDate) {\n      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.day);\n    }\n\n    function week(viewDate) {\n      return calendarConfig.titleFormats.week\n        .replace('{week}', moment(viewDate).isoWeek())\n        .replace('{year}', moment(viewDate).startOf('week').format('YYYY'));\n    }\n\n    function month(viewDate) {\n      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.month);\n    }\n\n    function year(viewDate) {\n      return calendarHelper.formatDate(viewDate, calendarConfig.titleFormats.year);\n    }\n\n    return {\n      day: day,\n      week: week,\n      month: month,\n      year: year\n    };\n\n  }]);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services/calendarTitle.js\n ** module id = 31\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\nvar interact;\ntry {\n  interact = require('interact.js');\n} catch (e) {\n  /* istanbul ignore next */\n  interact = null;\n}\n\nangular\n  .module('mwl.calendar')\n  .constant('interact', interact);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services/interact.js\n ** module id = 32\n ** module chunks = 0\n **/","'use strict';\n\nvar angular = require('angular');\nvar moment = require('moment');\n\nangular\n  .module('mwl.calendar')\n  .constant('moment', moment);\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services/moment.js\n ** module id = 33\n ** module chunks = 0\n **/","var map = {\n\t\"./mwlCalendar.js\": 12,\n\t\"./mwlCalendarDay.js\": 13,\n\t\"./mwlCalendarHourList.js\": 14,\n\t\"./mwlCalendarMonth.js\": 15,\n\t\"./mwlCalendarSlideBox.js\": 16,\n\t\"./mwlCalendarWeek.js\": 17,\n\t\"./mwlCalendarYear.js\": 18,\n\t\"./mwlCollapseFallback.js\": 19,\n\t\"./mwlDateModifier.js\": 20,\n\t\"./mwlDraggable.js\": 21,\n\t\"./mwlDroppable.js\": 22,\n\t\"./mwlElementDimensions.js\": 23,\n\t\"./mwlResizable.js\": 24\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 34;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/directives \\.js$\n ** module id = 34\n ** module chunks = 0\n **/","var map = {\n\t\"./calendarDate.js\": 25,\n\t\"./calendarLimitTo.js\": 26,\n\t\"./calendarTruncateEventTitle.js\": 27,\n\t\"./calendarTrustAsHtml.js\": 28\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 35;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/filters \\.js$\n ** module id = 35\n ** module chunks = 0\n **/","var map = {\n\t\"./calendarConfig.js\": 29,\n\t\"./calendarHelper.js\": 30,\n\t\"./calendarTitle.js\": 31,\n\t\"./interact.js\": 32,\n\t\"./moment.js\": 33\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 36;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/services \\.js$\n ** module id = 36\n ** module chunks = 0\n **/","var map = {\n\t\"./calendar.html\": 3,\n\t\"./calendarDayView.html\": 4,\n\t\"./calendarHourList.html\": 5,\n\t\"./calendarMonthCell.html\": 6,\n\t\"./calendarMonthCellEvents.html\": 7,\n\t\"./calendarMonthView.html\": 8,\n\t\"./calendarSlideBox.html\": 9,\n\t\"./calendarWeekView.html\": 10,\n\t\"./calendarYearView.html\": 11\n};\nfunction webpackContext(req) {\n\treturn __webpack_require__(webpackContextResolve(req));\n};\nfunction webpackContextResolve(req) {\n\treturn map[req] || (function() { throw new Error(\"Cannot find module '\" + req + \"'.\") }());\n};\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 37;\n\n\n\n/*****************\n ** WEBPACK FOOTER\n ** ./src/templates nonrecursive \\.html\n ** module id = 37\n ** module chunks = 0\n **/","module.exports = __WEBPACK_EXTERNAL_MODULE_38__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external \"moment\"\n ** module id = 38\n ** module chunks = 0\n **/","if(typeof __WEBPACK_EXTERNAL_MODULE_39__ === 'undefined') {var e = new Error(\"Cannot find module \\\"undefined\\\"\"); e.code = 'MODULE_NOT_FOUND'; throw e;}\nmodule.exports = __WEBPACK_EXTERNAL_MODULE_39__;\n\n\n/*****************\n ** WEBPACK FOOTER\n ** external {\"root\":\"interact\",\"commonjs\":\"interact.js\",\"commonjs2\":\"interact.js\",\"amd\":\"interact\"}\n ** module id = 39\n ** module chunks = 0\n **/"],"sourceRoot":""}</pre></body></html>