angular-calendar-scheduler
Version:
This project provide a scheduler view component for [mattlewis92/angular-calendar](https://github.com/mattlewis92/angular-calendar).
110 lines • 10.9 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, Input, Output, EventEmitter, TemplateRef } from '@angular/core';
// WORKAROUND: https://github.com/dherges/ng-packagr/issues/217#issuecomment-339460255
import * as momentImported from 'moment';
const moment = momentImported;
let CalendarSchedulerHourSegmentComponent = class CalendarSchedulerHourSegmentComponent {
constructor() {
this.hourSegmentHeight = 58;
this.showHour = false;
this.segmentClicked = new EventEmitter();
}
ngOnInit() {
this.title = this.title || moment(this.segment.date).format('dddd L, LT');
}
/**
* @hidden
*/
onMouseEnter(mouseEvent, segment, event) {
if (!event.isDisabled && !segment.isDisabled) {
// Maybe do something
}
}
/**
* @hidden
*/
onMouseLeave(mouseEvent, segment, event) {
if (!event.isDisabled && !segment.isDisabled) {
// Maybe do something
}
}
/**
* @hidden
*/
onSegmentClick(mouseEvent, segment) {
if (mouseEvent.stopPropagation) {
mouseEvent.stopPropagation();
}
if (segment.events.length === 0 && !segment.isDisabled && !segment.isCancelled) {
this.segmentClicked.emit({ segment: segment });
}
}
};
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", String)
], CalendarSchedulerHourSegmentComponent.prototype, "title", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Object)
], CalendarSchedulerHourSegmentComponent.prototype, "day", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Object)
], CalendarSchedulerHourSegmentComponent.prototype, "segment", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", String)
], CalendarSchedulerHourSegmentComponent.prototype, "locale", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", TemplateRef)
], CalendarSchedulerHourSegmentComponent.prototype, "customTemplate", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Number)
], CalendarSchedulerHourSegmentComponent.prototype, "hourSegmentHeight", void 0);
tslib_1.__decorate([
Input(),
tslib_1.__metadata("design:type", Boolean)
], CalendarSchedulerHourSegmentComponent.prototype, "showHour", void 0);
tslib_1.__decorate([
Output(),
tslib_1.__metadata("design:type", EventEmitter)
], CalendarSchedulerHourSegmentComponent.prototype, "segmentClicked", void 0);
CalendarSchedulerHourSegmentComponent = tslib_1.__decorate([
Component({
selector: 'calendar-scheduler-hour-segment',
template: `
<ng-template #defaultTemplate>
<div class="cal-scheduler-hour-segment"
[title]="title"
[ngClass]="segment?.cssClass"
[class.has-events]="segment.events.length > 0"
[class.cal-cancelled]="segment.isCancelled"
[class.cal-disabled]="segment.isDisabled"
[style.backgroundColor]="segment.backgroundColor"
[style.height.px]="hourSegmentHeight"
(mwlClick)="onSegmentClick($event, segment)">
<div class="cal-scheduler-time" *ngIf="showHour">
{{ segment.date | calendarDate:'dayViewHour':locale }}
</div>
</div>
</ng-template>
<ng-template
[ngTemplateOutlet]="customTemplate || defaultTemplate"
[ngTemplateOutletContext]="{
title: title,
day: day,
segment: segment,
locale: locale,
hourSegmentHeight: hourSegmentHeight,
showHour: showHour,
segmentClicked: segmentClicked
}">
</ng-template>
`
})
], CalendarSchedulerHourSegmentComponent);
export { CalendarSchedulerHourSegmentComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItc2NoZWR1bGVyLWhvdXItc2VnbWVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9hbmd1bGFyLWNhbGVuZGFyLXNjaGVkdWxlci8iLCJzb3VyY2VzIjpbIm1vZHVsZXMvc2NoZWR1bGVyL2NhbGVuZGFyLXNjaGVkdWxlci1ob3VyLXNlZ21lbnQuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLFdBQVcsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU81RixzRkFBc0Y7QUFDdEYsT0FBTyxLQUFLLGNBQWMsTUFBTSxRQUFRLENBQUM7QUFDekMsTUFBTSxNQUFNLEdBQUcsY0FBYyxDQUFDO0FBa0M5QixJQUFhLHFDQUFxQyxHQUFsRCxNQUFhLHFDQUFxQztJQWhDbEQ7UUEyQ2Esc0JBQWlCLEdBQVcsRUFBRSxDQUFDO1FBRS9CLGFBQVEsR0FBWSxLQUFLLENBQUM7UUFFekIsbUJBQWMsR0FBd0QsSUFBSSxZQUFZLEVBQXlDLENBQUM7SUFvQzlJLENBQUM7SUFsQ0csUUFBUTtRQUNKLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDOUUsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFVBQXNCLEVBQUUsT0FBaUMsRUFBRSxLQUE2QjtRQUNqRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDMUMscUJBQXFCO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsWUFBWSxDQUFDLFVBQXNCLEVBQUUsT0FBaUMsRUFBRSxLQUE2QjtRQUNqRyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLEVBQUU7WUFDMUMscUJBQXFCO1NBQ3hCO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gsY0FBYyxDQUFDLFVBQXNCLEVBQUUsT0FBaUM7UUFDcEUsSUFBSSxVQUFVLENBQUMsZUFBZSxFQUFFO1lBQzVCLFVBQVUsQ0FBQyxlQUFlLEVBQUUsQ0FBQztTQUNoQztRQUVELElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUU7WUFDNUUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztTQUNsRDtJQUNMLENBQUM7Q0FDSixDQUFBO0FBbERZO0lBQVIsS0FBSyxFQUFFOztvRUFBZTtBQUVkO0lBQVIsS0FBSyxFQUFFOztrRUFBdUI7QUFFdEI7SUFBUixLQUFLLEVBQUU7O3NFQUFtQztBQUVsQztJQUFSLEtBQUssRUFBRTs7cUVBQWdCO0FBRWY7SUFBUixLQUFLLEVBQUU7c0NBQWlCLFdBQVc7NkVBQU07QUFFakM7SUFBUixLQUFLLEVBQUU7O2dGQUFnQztBQUUvQjtJQUFSLEtBQUssRUFBRTs7dUVBQTJCO0FBRXpCO0lBQVQsTUFBTSxFQUFFO3NDQUFpQixZQUFZOzZFQUFvRztBQWZqSSxxQ0FBcUM7SUFoQ2pELFNBQVMsQ0FBQztRQUNQLFFBQVEsRUFBRSxpQ0FBaUM7UUFDM0MsUUFBUSxFQUFFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0tBNEJUO0tBQ0osQ0FBQztHQUNXLHFDQUFxQyxDQW1EakQ7U0FuRFkscUNBQXFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICAgIFNjaGVkdWxlclZpZXdEYXksXHJcbiAgICBTY2hlZHVsZXJWaWV3SG91clNlZ21lbnQsXHJcbiAgICBDYWxlbmRhclNjaGVkdWxlckV2ZW50XHJcbn0gZnJvbSAnLi9tb2RlbHMnO1xyXG5cclxuLy8gV09SS0FST1VORDogaHR0cHM6Ly9naXRodWIuY29tL2RoZXJnZXMvbmctcGFja2Fnci9pc3N1ZXMvMjE3I2lzc3VlY29tbWVudC0zMzk0NjAyNTVcclxuaW1wb3J0ICogYXMgbW9tZW50SW1wb3J0ZWQgZnJvbSAnbW9tZW50JztcclxuY29uc3QgbW9tZW50ID0gbW9tZW50SW1wb3J0ZWQ7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY2FsZW5kYXItc2NoZWR1bGVyLWhvdXItc2VnbWVudCcsXHJcbiAgICB0ZW1wbGF0ZTogYFxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FsLXNjaGVkdWxlci1ob3VyLXNlZ21lbnRcIlxyXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cInRpdGxlXCJcclxuICAgICAgICAgICAgICAgIFtuZ0NsYXNzXT1cInNlZ21lbnQ/LmNzc0NsYXNzXCJcclxuICAgICAgICAgICAgICAgIFtjbGFzcy5oYXMtZXZlbnRzXT1cInNlZ21lbnQuZXZlbnRzLmxlbmd0aCA+IDBcIlxyXG4gICAgICAgICAgICAgICAgW2NsYXNzLmNhbC1jYW5jZWxsZWRdPVwic2VnbWVudC5pc0NhbmNlbGxlZFwiXHJcbiAgICAgICAgICAgICAgICBbY2xhc3MuY2FsLWRpc2FibGVkXT1cInNlZ21lbnQuaXNEaXNhYmxlZFwiXHJcbiAgICAgICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZENvbG9yXT1cInNlZ21lbnQuYmFja2dyb3VuZENvbG9yXCJcclxuICAgICAgICAgICAgICAgIFtzdHlsZS5oZWlnaHQucHhdPVwiaG91clNlZ21lbnRIZWlnaHRcIlxyXG4gICAgICAgICAgICAgICAgKG13bENsaWNrKT1cIm9uU2VnbWVudENsaWNrKCRldmVudCwgc2VnbWVudClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYWwtc2NoZWR1bGVyLXRpbWVcIiAqbmdJZj1cInNob3dIb3VyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgc2VnbWVudC5kYXRlIHwgY2FsZW5kYXJEYXRlOidkYXlWaWV3SG91cic6bG9jYWxlIH19XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8bmctdGVtcGxhdGVcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRdPVwiY3VzdG9tVGVtcGxhdGUgfHwgZGVmYXVsdFRlbXBsYXRlXCJcclxuICAgICAgICAgICAgW25nVGVtcGxhdGVPdXRsZXRDb250ZXh0XT1cIntcclxuICAgICAgICAgICAgICAgIHRpdGxlOiB0aXRsZSxcclxuICAgICAgICAgICAgICAgIGRheTogZGF5LFxyXG4gICAgICAgICAgICAgICAgc2VnbWVudDogc2VnbWVudCxcclxuICAgICAgICAgICAgICAgIGxvY2FsZTogbG9jYWxlLFxyXG4gICAgICAgICAgICAgICAgaG91clNlZ21lbnRIZWlnaHQ6IGhvdXJTZWdtZW50SGVpZ2h0LFxyXG4gICAgICAgICAgICAgICAgc2hvd0hvdXI6IHNob3dIb3VyLFxyXG4gICAgICAgICAgICAgICAgc2VnbWVudENsaWNrZWQ6IHNlZ21lbnRDbGlja2VkXHJcbiAgICAgICAgICAgIH1cIj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgYFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJTY2hlZHVsZXJIb3VyU2VnbWVudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgICBASW5wdXQoKSB0aXRsZTogc3RyaW5nO1xyXG5cclxuICAgIEBJbnB1dCgpIGRheTogU2NoZWR1bGVyVmlld0RheTtcclxuXHJcbiAgICBASW5wdXQoKSBzZWdtZW50OiBTY2hlZHVsZXJWaWV3SG91clNlZ21lbnQ7XHJcblxyXG4gICAgQElucHV0KCkgbG9jYWxlOiBzdHJpbmc7XHJcblxyXG4gICAgQElucHV0KCkgY3VzdG9tVGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XHJcblxyXG4gICAgQElucHV0KCkgaG91clNlZ21lbnRIZWlnaHQ6IG51bWJlciA9IDU4O1xyXG5cclxuICAgIEBJbnB1dCgpIHNob3dIb3VyOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gICAgQE91dHB1dCgpIHNlZ21lbnRDbGlja2VkOiBFdmVudEVtaXR0ZXI8eyBzZWdtZW50OiBTY2hlZHVsZXJWaWV3SG91clNlZ21lbnQgfT4gPSBuZXcgRXZlbnRFbWl0dGVyPHsgc2VnbWVudDogU2NoZWR1bGVyVmlld0hvdXJTZWdtZW50IH0+KCk7XHJcblxyXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICAgICAgdGhpcy50aXRsZSA9IHRoaXMudGl0bGUgfHwgbW9tZW50KHRoaXMuc2VnbWVudC5kYXRlKS5mb3JtYXQoJ2RkZGQgTCwgTFQnKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEBoaWRkZW5cclxuICAgICAqL1xyXG4gICAgb25Nb3VzZUVudGVyKG1vdXNlRXZlbnQ6IE1vdXNlRXZlbnQsIHNlZ21lbnQ6IFNjaGVkdWxlclZpZXdIb3VyU2VnbWVudCwgZXZlbnQ6IENhbGVuZGFyU2NoZWR1bGVyRXZlbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAoIWV2ZW50LmlzRGlzYWJsZWQgJiYgIXNlZ21lbnQuaXNEaXNhYmxlZCkge1xyXG4gICAgICAgICAgICAvLyBNYXliZSBkbyBzb21ldGhpbmdcclxuICAgICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBAaGlkZGVuXHJcbiAgICAgKi9cclxuICAgIG9uTW91c2VMZWF2ZShtb3VzZUV2ZW50OiBNb3VzZUV2ZW50LCBzZWdtZW50OiBTY2hlZHVsZXJWaWV3SG91clNlZ21lbnQsIGV2ZW50OiBDYWxlbmRhclNjaGVkdWxlckV2ZW50KTogdm9pZCB7XHJcbiAgICAgICAgaWYgKCFldmVudC5pc0Rpc2FibGVkICYmICFzZWdtZW50LmlzRGlzYWJsZWQpIHtcclxuICAgICAgICAgICAgLy8gTWF5YmUgZG8gc29tZXRoaW5nXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogQGhpZGRlblxyXG4gICAgICovXHJcbiAgICBvblNlZ21lbnRDbGljayhtb3VzZUV2ZW50OiBNb3VzZUV2ZW50LCBzZWdtZW50OiBTY2hlZHVsZXJWaWV3SG91clNlZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICBpZiAobW91c2VFdmVudC5zdG9wUHJvcGFnYXRpb24pIHtcclxuICAgICAgICAgICAgbW91c2VFdmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChzZWdtZW50LmV2ZW50cy5sZW5ndGggPT09IDAgJiYgIXNlZ21lbnQuaXNEaXNhYmxlZCAmJiAhc2VnbWVudC5pc0NhbmNlbGxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLnNlZ21lbnRDbGlja2VkLmVtaXQoeyBzZWdtZW50OiBzZWdtZW50IH0pO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxufVxyXG4iXX0=