com.phloxui
Version:
PhloxUI Ng2+ Framework
1,168 lines (1,167 loc) • 696 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, ElementRef, Input, ViewChild, EventEmitter, Output, Inject } from '@angular/core';
import { AbstractDataEditorView } from '../AbstractDataEditorView';
import { AbstractDataEditor } from '../AbstractDataEditor';
import { DefaultCalendarEntryMapper } from '../DefaultCalendarEntryMapper';
import { CalendarEntryWrapper } from '../CalendarEntryWrapper';
import { DefaultCalendarEntryListPopover } from '../DefaultCalendarEntryListPopover.component';
import { DefaultComponentCalendarEntry } from '../DefaultComponentCalendarEntry.component';
import { CHANGE_EVENT, BEFORE_CHANGE_EVENT } from '../../../share/CustomEventType';
import { TabModel, SimpleListModel, CalendarViewModel, CalendarEntryPopoverModel, CalendarEntryListPopoverModel, ComponentCalendarEntryModel, DefaultSelectItemModel } from '../../model/models';
import { TabPane } from '../../dataview/TabPane.component';
import { SimpleListPane } from '../../SimpleListPane.component';
import { CalendarEntryPopover } from './calendar.internal/CalendarEntryPopover.component';
import { StringDataView } from '../../dataview/StringDataView.component';
import { DateTimeUtils } from '../../../share/utils/DateTimeUtils';
import { Option } from '../../../decorator/Option.decorator';
import { I18N } from '../../../decorator/I18N.decorator';
import { EditorSettingServiceFactory } from '../IEditorSettingServiceFactory';
import { EventUtils } from '../../../share/utils/EventUtils';
import { NeedFocusService } from "../../../service/NeedFocusService.service";
import { ComponentDropdownList } from '../../dataview/dataviews';
export var /** @type {?} */ CALENDAR_VIEW_CHANGE_EVENT = 'calendarViewChange';
var /** @type {?} */ TYPE_NAME = "phx-calendar-view";
var /** @type {?} */ DAY_VIEW = 'DAY';
var /** @type {?} */ WEEK_VIEW = 'WEEK';
var /** @type {?} */ MONTH_VIEW = 'MONTH';
var /** @type {?} */ AGENDA_VIEW = 'AGENDA';
var CalendarView = /** @class */ (function (_super) {
tslib_1.__extends(CalendarView, _super);
function CalendarView(elementRef, editorSettingFactory, needFocusService) {
var _this = _super.call(this, editorSettingFactory, elementRef) || this;
_this.AGENDA_CONTENT_SELECTOR = ".agenda-view > .left > .wrapper > .timeline > .content-wrapper > .content";
_this.DAY_CONTENT_SELECTOR = ".day-view > .left > .wrapper > .timeline > .content > .wrapper";
_this.WEEK_CONTENT_SELECTOR = ".week-view > .left > .timeline > .timeline-wrapper > .content";
_this.MONTH_CONTENT_SELECTOR = ".month-view > .container-wrapper > .container";
_this.elementRef = elementRef;
_this.needFocusService = needFocusService;
_this.editable = false;
_this.monthDayContainer = [];
_this.dayTimeContainer = [];
_this.weekDayContainer = [];
_this.agendaRowContainer = [];
_this.weekRowContainer = [];
_this.dayRowContainer = [];
_this.monthRowContainer = [];
_this.monthMoreRowContainer = [];
_this.calendarData = [];
_this.entryWrappers = [];
_this.currentView = MONTH_VIEW;
_this.showAddTabBtn = false;
_this.showBtnGroup = false;
_this.firstTabAdding = false;
_this.today = Date.today();
_this.defaultRowHeight = 46;
_this.defaultEntryWidth = 140;
_this.defaultEntryPadding = 3;
_this.defaultRowBorderWeight = 1;
_this.defaultWeekEntryWidth = 14.285714285714285714285714285714; // as percent
_this.defaultMonthEntryWidth = 14.285714285714285714285714285714; // as percent
_this.defaultMonthEntryHeight = 15; // as pt
_this.defaultMonthHeight = 20; // as percent
_this.defaultAgendaScrollDelay = 1000;
_this.currentTimeTop = "0pt";
_this.defaultDropdownIdx = 0;
_this.currentEntryMapper = null;
_this.isAgendaScrolling = false;
_this.dropdownShow = false;
_this.dropdownItems = [];
_this.agendaPosition = [];
_this.agendaMap = {};
_this.viewChangeEvent = new EventEmitter();
_this.beforeViewChangeEvent = new EventEmitter();
_this.isAgendaViewClicked = false;
_this.defaultTopArrowPopover = 10;
_this.isMonthEntryClick = false;
_this.isDayEntryClick = false;
_this.isWeekEntryClick = false;
_this.i18NResource = {
header: {
view: {
day: "Day",
week: "Week",
month: "Month",
agenda: "Agenda"
}
},
body: {
calendar: {
sunday: "Sun",
monday: "Mon",
tuesday: "Tue",
wednesday: "Wed",
thursday: "Thu",
friday: "Fri",
saturday: "Sat"
},
agenda: {
header: "Timeline"
},
entry: {
more: "More",
item: "item(s)"
}
}
};
// month
// month
_this.resetMonthDayContainer();
// week
// week
_this.resetWeekDayContainer();
// day
for (var /** @type {?} */ i = 0; i < 24; i++) {
var /** @type {?} */ label = ((i < 10) ? "0" + (i) : i) + ":00";
var /** @type {?} */ item = { label: label, time: Date.parse(label) };
_this.dayTimeContainer.push(item);
}
// tab
// tab
_this.tabComponentType = SimpleListPane;
_this.tabComponentModel = new SimpleListModel('id', StringDataView, 'date', StringDataView);
_this.timelineData = [];
_this.noteData = [];
// dropdown
// dropdown
_this.dropdownCompoType = StringDataView;
// set model
// set model
_this.dayEntryModel = new CalendarEntryPopoverModel(DefaultComponentCalendarEntry, new ComponentCalendarEntryModel("", null, null, null), 0, 0, 'left');
_this.dayEntrySelected = null;
_this.weekEntryModel = new CalendarEntryPopoverModel(DefaultComponentCalendarEntry, new ComponentCalendarEntryModel("", null, null, null), 0, 0, 'left');
_this.weekEntrySelected = null;
_this.monthEntryModel = new CalendarEntryPopoverModel(DefaultComponentCalendarEntry, new ComponentCalendarEntryModel("", null, null, null), 0, 0, 'left');
_this.monthEntrySelected = null;
_this.monthMoreEntryModel = new CalendarEntryPopoverModel(DefaultCalendarEntryListPopover, new CalendarEntryListPopoverModel("", null, null), 0, 0, 'left');
_this.monthMoreEntrySelected = null;
return _this;
}
/**
* @return {?}
*/
CalendarView.prototype.ngOnInit = /**
* @return {?}
*/
function () {
_super.prototype.ngOnInit.call(this);
this.applyI18N(this.i18NResource);
this.initEditor();
this.currentMonth = new Date();
this.currentEntryMapper = this.getCalendarDropdownMapper(this.defaultDropdownIdx);
this.setCalendarMonth(this.currentMonth);
if (this.tabPane !== null && typeof this.tabPane !== 'undefined') {
var /** @type {?} */ timeLineModel = new TabModel("Incoming", null, this.tabComponentType, this.tabComponentModel, this.timelineData);
this.tabPane.addTab(timeLineModel);
var /** @type {?} */ noteModel = new TabModel("Passed", null, this.tabComponentType, this.tabComponentModel, this.noteData);
this.tabPane.addTab(noteModel);
}
// has model when init
this.dropdownItems = this.getCalendarDropdownLabelArray();
this.comDropdown.setData({
"comDropdownField": this.dropdownItems[0].value
});
// set moreMonthType
var /** @type {?} */ dayPopoverType = this.getEntryPopoverType(DAY_VIEW);
this.dayEntryModel.model.type = dayPopoverType;
var /** @type {?} */ weekPopoverType = this.getEntryPopoverType(WEEK_VIEW);
this.weekEntryModel.model.type = weekPopoverType;
var /** @type {?} */ monthPopoverType = this.getEntryPopoverType(MONTH_VIEW);
this.monthEntryModel.model.type = monthPopoverType;
this.monthMoreEntryModel.model.type = monthPopoverType;
};
/**
* @return {?}
*/
CalendarView.prototype.ngOnDestroy = /**
* @return {?}
*/
function () {
if (this.editor != null && (typeof this.editor !== 'undefined')) {
this.editor.removeViewComponent(this);
}
};
/**
* @return {?}
*/
CalendarView.prototype.initEditor = /**
* @return {?}
*/
function () {
var _this = this;
if (this.editor != null && (typeof this.editor !== 'undefined')) {
this.editor.addViewComponent(this);
if (this.showEvent !== null && (typeof this.showEvent !== 'undefined')) {
this.showEvent.subscribe(function (event) {
_this.reloadPage();
});
}
var /** @type {?} */ updateEvent = this.editor.getDataUpdateEvent();
if (updateEvent !== null && (typeof updateEvent !== 'undefined')) {
updateEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null) {
// close popover
// close popover
_this.closePopover(null);
try {
for (var data_1 = tslib_1.__values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {
var d = data_1_1.value;
_this.replaceCalendarData(d);
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);
}
finally { if (e_1) throw e_1.error; }
}
_this.closeAllPopover();
// rerender
// rerender
_this.reRenderViewData(_this.currentView, _this.currentMonth);
}
var e_1, _a;
});
}
var /** @type {?} */ deleteEvent = this.editor.getDataDeleteEvent();
if (deleteEvent !== null && (typeof deleteEvent !== 'undefined')) {
deleteEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null && typeof data !== 'undefined') {
try {
for (var data_2 = tslib_1.__values(data), data_2_1 = data_2.next(); !data_2_1.done; data_2_1 = data_2.next()) {
var d = data_2_1.value;
_this.removeData(d);
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (data_2_1 && !data_2_1.done && (_a = data_2.return)) _a.call(data_2);
}
finally { if (e_2) throw e_2.error; }
}
_this.closeAllPopover();
// rerender
// rerender
_this.reRenderViewData(_this.currentView, _this.currentMonth);
}
var e_2, _a;
});
}
var /** @type {?} */ revertEvent = this.editor.getDataRevertEvent();
if (revertEvent !== null && (typeof revertEvent !== 'undefined')) {
revertEvent.subscribe(function (event) {
var /** @type {?} */ data = null;
if (event.detail !== null && typeof event.detail !== 'undefined') {
if (event.detail.data !== null && typeof event.detail.data !== 'undefined') {
data = event.detail.data.data;
}
}
if (data !== null) {
try {
for (var data_3 = tslib_1.__values(data), data_3_1 = data_3.next(); !data_3_1.done; data_3_1 = data_3.next()) {
var d = data_3_1.value;
_this.replaceCalendarData(d);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (data_3_1 && !data_3_1.done && (_a = data_3.return)) _a.call(data_3);
}
finally { if (e_3) throw e_3.error; }
}
_this.closeAllPopover();
// rerender
// rerender
_this.reRenderViewData(_this.currentView, _this.currentMonth);
}
var e_3, _a;
});
}
var /** @type {?} */ dataReloadEvent = this.editor.getDataReloadEvent();
if (dataReloadEvent !== null && (typeof dataReloadEvent !== 'undefined')) {
dataReloadEvent.subscribe(function (event) {
_this.reloadPage();
});
}
var /** @type {?} */ dataQueryEvent = this.editor.getDataQueryEvent();
if (dataQueryEvent !== null && (typeof dataQueryEvent !== 'undefined')) {
dataQueryEvent.subscribe(function (event) {
_this.reloadPage();
});
}
}
};
/**
* @return {?}
*/
CalendarView.prototype.closeAllPopover = /**
* @return {?}
*/
function () {
this.closePopover(null);
};
/**
* @return {?}
*/
CalendarView.prototype.getCalendarDropdownMapperArray = /**
* @return {?}
*/
function () {
var /** @type {?} */ mappers = [];
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model instanceof CalendarViewModel) {
var /** @type {?} */ cvModel = /** @type {?} */ (this.model);
var /** @type {?} */ entryMappers = cvModel.entryMappers;
if (entryMappers !== null && typeof entryMappers !== 'undefined' && Array.isArray(entryMappers)) {
try {
for (var entryMappers_1 = tslib_1.__values(entryMappers), entryMappers_1_1 = entryMappers_1.next(); !entryMappers_1_1.done; entryMappers_1_1 = entryMappers_1.next()) {
var m = entryMappers_1_1.value;
mappers.push(m);
}
}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (entryMappers_1_1 && !entryMappers_1_1.done && (_a = entryMappers_1.return)) _a.call(entryMappers_1);
}
finally { if (e_4) throw e_4.error; }
}
}
if (cvModel.fromDateTimeField !== null && typeof cvModel.fromDateTimeField !== 'undefined'
&& cvModel.toDateTimeField !== null && typeof cvModel.toDateTimeField !== 'undefined'
&& cvModel.titleField !== null && typeof cvModel.titleField !== 'undefined') {
mappers.push(new DefaultCalendarEntryMapper('DEFAULT', cvModel.titleField, cvModel.fromDateTimeField, cvModel.toDateTimeField));
}
}
}
return mappers;
var e_4, _a;
};
/**
* @param {?} index
* @return {?}
*/
CalendarView.prototype.getCalendarDropdownMapper = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index === null || typeof index === 'undefined') {
return null;
}
var /** @type {?} */ mapperArray = this.getCalendarDropdownMapperArray();
if (index >= 0 && index < mapperArray.length) {
var /** @type {?} */ mapper = mapperArray[index];
if (mapper !== null) {
return mapper;
}
}
return null;
};
/**
* @return {?}
*/
CalendarView.prototype.getCalendarDropdownLabelArray = /**
* @return {?}
*/
function () {
var /** @type {?} */ entryMappers = this.getCalendarDropdownMapperArray();
var /** @type {?} */ labelArray = [];
for (var /** @type {?} */ i = 0; i < entryMappers.length; i++) {
var /** @type {?} */ mapper = entryMappers[i];
var /** @type {?} */ label = mapper.getLabel();
labelArray.push(new DefaultSelectItemModel(label, label));
}
return labelArray;
};
/**
* @param {?} index
* @return {?}
*/
CalendarView.prototype.getCalendarDropdownLabel = /**
* @param {?} index
* @return {?}
*/
function (index) {
if (index < 0) {
return null;
}
var /** @type {?} */ container = this.getCalendarDropdownLabelArray();
if (index < container.length) {
return container[index];
}
return null;
};
/**
* @param {?} view
* @param {?=} $event
* @return {?}
*/
CalendarView.prototype.closePopover = /**
* @param {?} view
* @param {?=} $event
* @return {?}
*/
function (view, $event) {
var /** @type {?} */ closeDay = false;
var /** @type {?} */ closeWeek = false;
var /** @type {?} */ closeMonth = false;
if (view !== null && typeof view !== 'undefined') {
if (DAY_VIEW === view) {
closeDay = true;
}
else if (WEEK_VIEW === view) {
closeWeek = true;
}
else if (MONTH_VIEW === view) {
closeMonth = true;
}
else if (AGENDA_VIEW === view) {
// do more when agenda has popover
}
}
else {
// close all
closeDay = true;
closeWeek = true;
closeMonth = true;
}
if (closeDay) {
if (this.dayEntryPopover !== null && typeof this.dayEntryPopover !== 'undefined') {
if (this.dayEntrySelected !== null && typeof this.dayEntrySelected !== 'undefined') {
if (this.dayEntrySelected.selected) {
this.dayEntrySelected.selected = false;
this.dayEntrySelected = null;
this.dayEntryPopover.hide();
// if autosave just save to editor
if (this.dayEntryPopover.isAutoSave() && this.dayEntryPopover.isDataDirty()) {
this.dayEntryPopover.onAutoSaved($event);
var /** @type {?} */ popoverData = this.dayEntryPopover.getData();
if (this.editor !== undefined && this.editor !== null) {
this.editor.updateData(popoverData);
}
}
this.dayEntryPopover.onPopoverClosed($event);
}
}
}
}
if (closeWeek) {
if (this.weekEntryPopover !== null && typeof this.weekEntryPopover !== 'undefined') {
if (this.weekEntrySelected !== null && typeof this.weekEntrySelected !== 'undefined') {
if (this.weekEntrySelected.selected) {
this.weekEntrySelected.selected = false;
this.weekEntrySelected = null;
this.weekEntryPopover.hide();
// if autosave just save to editor
if (this.weekEntryPopover.isAutoSave() && this.weekEntryPopover.isDataDirty()) {
this.weekEntryPopover.onAutoSaved($event);
var /** @type {?} */ popoverData = this.weekEntryPopover.getData();
if (this.editor !== undefined && this.editor !== null) {
this.editor.updateData(popoverData);
}
}
this.weekEntryPopover.onPopoverClosed($event);
}
}
}
}
if (closeMonth) {
if (this.monthEntryPopover !== null && typeof this.monthEntryPopover !== 'undefined') {
if (this.monthEntrySelected !== null && typeof this.monthEntrySelected !== 'undefined') {
if (this.monthEntrySelected.selected) {
this.monthEntrySelected.selected = false;
this.monthEntrySelected = null;
this.monthEntryPopover.hide();
// if autosave just save to editor
if (this.monthEntryPopover.isAutoSave() && this.monthEntryPopover.isDataDirty()) {
this.monthEntryPopover.onAutoSaved($event);
var /** @type {?} */ popoverData = this.monthEntryPopover.getData();
if (this.editor !== undefined && this.editor !== null) {
this.editor.updateData(popoverData);
}
}
this.monthEntryPopover.onPopoverClosed($event);
}
}
}
if (this.monthMoreEntryPopover !== null && typeof this.monthMoreEntryPopover !== 'undefined') {
if (this.monthMoreEntrySelected !== null && typeof this.monthMoreEntrySelected !== 'undefined') {
if (this.monthMoreEntrySelected.selected) {
this.monthMoreEntrySelected.selected = false;
this.monthMoreEntrySelected = null;
this.monthMoreEntryPopover.hide();
}
}
}
}
};
/**
* @param {?} data
* @return {?}
*/
CalendarView.prototype.removeData = /**
* @param {?} data
* @return {?}
*/
function (data) {
if (data === null && typeof data === 'undefined') {
return;
}
if (this.editor !== null && typeof this.editor !== 'undefined') {
var /** @type {?} */ comparator = this.editor.getDataComparator();
var /** @type {?} */ dataIndex = -1;
for (var /** @type {?} */ i = 0; i < this.calendarData.length; i++) {
var /** @type {?} */ item = this.calendarData[i];
if (comparator !== null) {
if (comparator.equals(item, data)) {
dataIndex = i;
break;
}
}
else {
break;
}
}
if (dataIndex > -1) {
this.calendarData.splice(dataIndex, 1);
}
var /** @type {?} */ wrapperIndex = -1;
for (var /** @type {?} */ i = 0; i < this.entryWrappers.length; i++) {
var /** @type {?} */ entryWrapper = this.entryWrappers[i];
if (comparator !== null) {
if (comparator.equals(entryWrapper.getData(), data)) {
wrapperIndex = i;
break;
}
}
else {
break;
}
}
if (wrapperIndex > -1) {
this.entryWrappers.splice(wrapperIndex, 1);
}
}
};
/**
* @param {?} data
* @return {?}
*/
CalendarView.prototype.replaceCalendarData = /**
* @param {?} data
* @return {?}
*/
function (data) {
if (data === null && typeof data === 'undefined') {
return;
}
if (this.editor !== null && typeof this.editor !== 'undefined') {
var /** @type {?} */ comparator = this.editor.getDataComparator();
var /** @type {?} */ dataIndex = -1;
for (var /** @type {?} */ i = 0; i < this.calendarData.length; i++) {
var /** @type {?} */ item = this.calendarData[i];
if (comparator !== null) {
if (comparator.equals(item, data)) {
dataIndex = i;
break;
}
}
else {
break;
}
}
var /** @type {?} */ cloneObj = null;
if (dataIndex > -1) {
cloneObj = JSON.parse(JSON.stringify(data));
this.calendarData[dataIndex] = cloneObj;
}
var /** @type {?} */ wrapperIndex = -1;
for (var /** @type {?} */ i = 0; i < this.entryWrappers.length; i++) {
var /** @type {?} */ entryWrapper = this.entryWrappers[i];
if (comparator !== null) {
if (comparator.equals(entryWrapper.getData(), data)) {
wrapperIndex = i;
break;
}
}
else {
break;
}
}
if (wrapperIndex > -1) {
if (cloneObj !== null) {
this.entryWrappers[wrapperIndex].setData(cloneObj);
}
}
}
};
/**
* @return {?}
*/
CalendarView.prototype.reloadDataToCalendar = /**
* @return {?}
*/
function () {
this.calendarData = [];
this.entryWrappers = [];
if (this.editor !== null && typeof this.editor !== 'undefined' && this.editor.getData() !== null) {
try {
for (var _a = tslib_1.__values(this.editor.getData()), _b = _a.next(); !_b.done; _b = _a.next()) {
var dataObj = _b.value;
var /** @type {?} */ cloneObj = JSON.parse(JSON.stringify(dataObj));
this.calendarData.push(cloneObj);
}
}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
}
finally { if (e_5) throw e_5.error; }
}
}
var e_5, _c;
};
/**
* @return {?}
*/
CalendarView.prototype.reloadPage = /**
* @return {?}
*/
function () {
this.reloadDataToCalendar();
this.setCalendarMonth(this.currentMonth);
};
/**
* @param {?} view
* @return {?}
*/
CalendarView.prototype.getEntryPopoverType = /**
* @param {?} view
* @return {?}
*/
function (view) {
var /** @type {?} */ defaultType = null;
if (this.model !== null && typeof this.model !== 'undefined') {
if (this.model instanceof CalendarViewModel) {
var /** @type {?} */ cvModel = /** @type {?} */ (this.model);
var /** @type {?} */ popoverOption = cvModel.popoverTypeOption;
var /** @type {?} */ selectedType = null;
if (popoverOption !== null && typeof popoverOption !== 'undefined') {
if (popoverOption.default !== null && typeof popoverOption.default !== 'undefined') {
defaultType = popoverOption.default;
}
if (view !== null && typeof view !== 'undefined') {
if (DAY_VIEW === view) {
selectedType = popoverOption.day;
}
else if (WEEK_VIEW === view) {
selectedType = popoverOption.week;
}
else if (MONTH_VIEW === view) {
selectedType = popoverOption.month;
}
else if (AGENDA_VIEW === view) {
selectedType = popoverOption.agenda;
}
}
if (selectedType !== null && typeof selectedType !== 'undefined') {
return selectedType;
}
}
}
}
return defaultType;
};
/**
* @return {?}
*/
CalendarView.prototype.createTestData = /**
* @return {?}
*/
function () {
this.calendarData = [];
var /** @type {?} */ testTime1 = new Date().clearTime();
var /** @type {?} */ testTime2 = new Date(testTime1).addHours(2);
var /** @type {?} */ testTime1Over = new Date().clearTime();
var /** @type {?} */ testTime2Over = new Date(testTime1Over).addDays(7).addHours(2);
var /** @type {?} */ testTime3Over = new Date().clearTime();
var /** @type {?} */ testTime4Over = new Date(testTime3Over).addDays(12);
var /** @type {?} */ testTime3 = new Date().clearTime().addDays(1).addHours(5);
var /** @type {?} */ testTime4 = new Date(testTime3).addHours(2);
var /** @type {?} */ testTime5 = new Date().clearTime().addDays(-1).addHours(5);
var /** @type {?} */ testTime6 = new Date(testTime5).addHours(2);
var /** @type {?} */ testTime51 = new Date().clearTime().addDays(-1).addHours(5);
var /** @type {?} */ testTime61 = new Date(testTime5).addHours(2);
var /** @type {?} */ testTime7 = new Date(testTime5).addMinutes(15);
var /** @type {?} */ testTime8 = new Date(testTime7).addHours(2);
var /** @type {?} */ testTime9 = new Date(testTime5).addMinutes(30);
var /** @type {?} */ testTime10 = new Date(testTime9).addHours(2);
var /** @type {?} */ testTime11 = new Date().clearTime().addDays(-1).addHours(7); // 7 & 3
var /** @type {?} */ testTime12 = new Date(testTime11).addHours(3);
var /** @type {?} */ testTime13 = new Date().clearTime().addDays(4);
var /** @type {?} */ testTime14 = new Date(testTime13).addDays(14).addHours(7);
this.calendarData.push({ id: 'AAAAA', date1: testTime1, date2: testTime2 });
this.calendarData.push({ id: 'BBBBB', date1: testTime3, date2: testTime4 });
this.calendarData.push({ id: 'CCCCC', date1: testTime5, date2: testTime6 });
this.calendarData.push({ id: 'DDDDD', date1: testTime7, date2: testTime8 });
this.calendarData.push({ id: 'EEEEE', date1: testTime9, date2: testTime10 });
this.calendarData.push({ id: 'GGGGG', date1: testTime11, date2: testTime12 });
this.calendarData.push({ id: 'HHHHH', date1: testTime13, date2: testTime14 });
// this.calendarData.push({ id: 'AAAAA', date1: testTime1Over, date2: testTime2Over });
// this.calendarData.push({ id: 'AAAAA', date1: testTime3Over, date2: testTime4Over });
// this.calendarData.push({ id: 'BBBBB', date1: testTime51, date2: testTime61 });
// this.calendarData.push({ id: 'BBBBB', date1: testTime51, date2: testTime61 });
};
/**
* @return {?}
*/
CalendarView.prototype.setCurrentTimeIndicator = /**
* @return {?}
*/
function () {
var /** @type {?} */ currentTime = new Date();
var /** @type {?} */ newTop = '0pt';
var /** @type {?} */ minInHour = currentTime.getMinutes() / 60;
var /** @type {?} */ totalHour = currentTime.getHours() + minInHour;
if (totalHour > 0) {
newTop = (this.defaultRowHeight * totalHour) + 'pt';
}
this.currentTimeTop = newTop;
};
/**
* @param {?} dataObj
* @return {?}
*/
CalendarView.prototype.getResolveWrapperObject = /**
* @param {?} dataObj
* @return {?}
*/
function (dataObj) {
if (dataObj === null || typeof dataObj === 'undefined') {
return null;
}
var /** @type {?} */ fromTime = null;
var /** @type {?} */ toTime = null;
var /** @type {?} */ title = null;
var /** @type {?} */ calendarEntry = null;
if (this.currentEntryMapper !== null && typeof this.currentEntryMapper !== 'undefined') {
var /** @type {?} */ cEntryWrapper = this.getCalendarEntryWrapper(dataObj);
if (cEntryWrapper === null) {
cEntryWrapper = new CalendarEntryWrapper(dataObj, this.currentEntryMapper, this.elementRef);
this.entryWrappers.push(cEntryWrapper);
}
calendarEntry = cEntryWrapper.getCalendarEntry();
if (calendarEntry !== null && typeof calendarEntry !== 'undefined') {
title = calendarEntry.title;
fromTime = calendarEntry.startDateTime;
toTime = calendarEntry.endDateTime;
}
}
return this.getWrapperObject(fromTime, toTime, title, calendarEntry);
};
/**
* @param {?} fromDate
* @param {?} toDate
* @param {?} title
* @param {?} calendarEntry
* @return {?}
*/
CalendarView.prototype.getWrapperObject = /**
* @param {?} fromDate
* @param {?} toDate
* @param {?} title
* @param {?} calendarEntry
* @return {?}
*/
function (fromDate, toDate, title, calendarEntry) {
var /** @type {?} */ result = {
fromTime: fromDate,
toTime: toDate,
title: title,
top: '0pt',
left: '0pt',
selected: false,
height: this.defaultRowHeight + 'pt',
entry: calendarEntry
};
return result;
};
/**
* @param {?} wrapperObjectArray
* @return {?}
*/
CalendarView.prototype.getWrapperObjectContainer = /**
* @param {?} wrapperObjectArray
* @return {?}
*/
function (wrapperObjectArray) {
var /** @type {?} */ result = null;
if (wrapperObjectArray === null || typeof wrapperObjectArray === 'undefined') {
return result;
}
var /** @type {?} */ startDate = null;
var /** @type {?} */ endDate = null;
try {
for (var wrapperObjectArray_1 = tslib_1.__values(wrapperObjectArray), wrapperObjectArray_1_1 = wrapperObjectArray_1.next(); !wrapperObjectArray_1_1.done; wrapperObjectArray_1_1 = wrapperObjectArray_1.next()) {
var item = wrapperObjectArray_1_1.value;
var /** @type {?} */ fromTime = item.fromTime;
var /** @type {?} */ toTime = item.toTime;
if (fromTime === null || typeof fromTime === 'undefined') {
continue;
}
if (toTime === null || typeof toTime === 'undefined') {
continue;
}
if (startDate !== null) {
if (startDate.isAfter(fromTime)) {
startDate = fromTime;
}
}
else {
startDate = fromTime;
}
if (endDate !== null) {
if (endDate.isBefore(toTime)) {
endDate = toTime;
}
}
else {
endDate = toTime;
}
}
}
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {
try {
if (wrapperObjectArray_1_1 && !wrapperObjectArray_1_1.done && (_a = wrapperObjectArray_1.return)) _a.call(wrapperObjectArray_1);
}
finally { if (e_6) throw e_6.error; }
}
result = {
startDate: startDate,
endDate: endDate,
date: startDate,
data: wrapperObjectArray
};
return result;
var e_6, _a;
};
/**
* @return {?}
*/
CalendarView.prototype.resetMonthDayContainer = /**
* @return {?}
*/
function () {
this.monthDayContainer = [];
var /** @type {?} */ count = 1;
for (var /** @type {?} */ i = 0; i < 5; i++) {
var /** @type {?} */ container = [];
for (var /** @type {?} */ j = 0; j < 7; j++) {
if (count >= 32) {
count = 1;
}
var /** @type {?} */ item = { day: '' };
container.push(item);
count += 1;
}
this.monthDayContainer.push(container);
}
};
/**
* @return {?}
*/
CalendarView.prototype.resetWeekDayContainer = /**
* @return {?}
*/
function () {
this.weekDayContainer = [];
for (var /** @type {?} */ i = 0; i < 7; i++) {
var /** @type {?} */ container = [];
var /** @type {?} */ label = i + "";
var /** @type {?} */ item = {
label: label,
data: container
};
this.weekDayContainer.push(item);
}
};
/**
* @return {?}
*/
CalendarView.prototype.nextMonth = /**
* @return {?}
*/
function () {
if (this.currentMonth != null && (typeof this.currentMonth !== 'undefined')) {
var /** @type {?} */ date = new Date(this.currentMonth).addMonths(1);
this.setCalendarMonth(date);
}
};
/**
* @return {?}
*/
CalendarView.prototype.prevMonth = /**
* @return {?}
*/
function () {
if (this.currentMonth != null && (typeof this.currentMonth !== 'undefined')) {
var /** @type {?} */ date = new Date(this.currentMonth).addMonths(-1);
this.setCalendarMonth(date);
}
};
/**
* @return {?}
*/
CalendarView.prototype.nextWeek = /**
* @return {?}
*/
function () {
if (this.currentMonth != null && (typeof this.currentMonth !== 'undefined')) {
var /** @type {?} */ date = new Date(this.currentMonth).addWeeks(1);
this.setCalendarMonth(date);
}
};
/**
* @return {?}
*/
CalendarView.prototype.prevWeek = /**
* @return {?}
*/
function () {
if (this.currentMonth != null && (typeof this.currentMonth !== 'undefined')) {
var /** @type {?} */ date = new Date(this.currentMonth).addWeeks(-1);
this.setCalendarMonth(date);
}
};
/**
* @param {?} oldView
* @param {?} newView
* @param {?=} $event
* @return {?}
*/
CalendarView.prototype.emitBeforeCalendarViewChangeEvent = /**
* @param {?} oldView
* @param {?} newView
* @param {?=} $event
* @return {?}
*/
function (oldView, newView, $event) {
var /** @type {?} */ data = {
action: CALENDAR_VIEW_CHANGE_EVENT,
oldView: oldView,
newView: newView
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(BEFORE_CHANGE_EVENT, this, data, $event);
this.beforeViewChangeEvent.emit(ev);
};
/**
* @param {?} oldView
* @param {?} newView
* @param {?=} $event
* @return {?}
*/
CalendarView.prototype.emitCalendarViewChangeEvent = /**
* @param {?} oldView
* @param {?} newView
* @param {?=} $event
* @return {?}
*/
function (oldView, newView, $event) {
// emit event
var /** @type {?} */ data = {
action: CALENDAR_VIEW_CHANGE_EVENT,
oldView: oldView,
newView: newView
};
var /** @type {?} */ ev = EventUtils.newCustomEvent(CHANGE_EVENT, this, data, $event);
this.viewChangeEvent.emit(ev);
};
/**
* @param {?} $event
* @param {?} entryData
* @return {?}
*/
CalendarView.prototype.onDayEntryClicked = /**
* @param {?} $event
* @param {?} entryData
* @return {?}
*/
function ($event, entryData) {
var _this = this;
if ($event !== null && typeof $event !== 'undefined') {
$event.stopPropagation();
$event.cancelBubble = true;
}
var /** @type {?} */ tgWidth = 0;
var /** @type {?} */ tgHeight = 0;
var /** @type {?} */ tgTop = 0;
var /** @type {?} */ tgLeft = 0;
var /** @type {?} */ show = false;
var /** @type {?} */ extraLeftPopover = 5;
if (this.dayEntryPopover !== null && typeof this.dayEntryPopover !== 'undefined') {
if (this.dayEntrySelected !== null && typeof this.dayEntrySelected !== 'undefined') {
if (this.dayEntrySelected === entryData) {
if (this.dayEntrySelected.selected) {
this.dayEntrySelected.selected = false;
this.dayEntrySelected = null;
show = false;
}
else {
this.dayEntrySelected.selected = true;
this.dayEntryPopover.setCalendarEntryMapper(entryData.entry.wrapper.getEntryMapper());
this.dayEntryPopover.setData(entryData.entry.wrapper.data);
show = true;
}
}
else {
// set old entry false
this.dayEntrySelected.selected = false;
// set new entry true
this.dayEntrySelected = entryData;
this.dayEntrySelected.selected = true;
this.dayEntryPopover.setCalendarEntryMapper(entryData.entry.wrapper.getEntryMapper());
this.dayEntryPopover.setData(entryData.entry.wrapper.data);
show = true;
}
}
else {
this.dayEntrySelected = entryData;
this.dayEntrySelected.selected = true;
this.dayEntryPopover.setCalendarEntryMapper(entryData.entry.wrapper.getEntryMapper());
this.dayEntryPopover.setData(entryData.entry.wrapper.data);
show = true;
}
if (this.dayEntrydelayTimer !== null && typeof this.dayEntrydelayTimer !== 'undefined') {
clearTimeout(this.dayEntrydelayTimer);
this.dayEntrydelayTimer = null;
}
var /** @type {?} */ title_1 = null;
var /** @type {?} */ selectedDate_1 = null;
if (entryData !== null && typeof entryData !== 'undefined') {
selectedDate_1 = entryData.fromTime;
title_1 = entryData.title;
}
this.dayEntrydelayTimer = setTimeout(function () {
if (typeof $(_this.elementRef.nativeElement).find('.day-view') !== 'undefined') {
var /** @type {?} */ ele = $(_this.elementRef.nativeElement).find('.day-view').find('.entry.selected');
if (typeof ele !== 'undefined') {
tgWidth = $(ele).width();
tgHeight = $(ele).height();
if (typeof $(ele).position() !== 'undefined') {
tgTop = $(ele).position().top;
tgLeft = $(ele).position().left;
}
}
var /** @type {?} */ popoverPosition = 'left';
var /** @type {?} */ popoverWidth = $(_this.elementRef.nativeElement).find('.day-view').find('.phx-calendar-entry-popover').width();
var /** @type {?} */ popoverHeight = $(_this.elementRef.nativeElement).find('.day-view').find('.phx-calendar-entry-popover').height();
var /** @type {?} */ arrowTop = $(_this.elementRef.nativeElement).find('.day-view').find('.phx-calendar-entry-popover >.container-wrapper >.container-after').position().top;
var /** @type {?} */ contentWidth = $(_this.elementRef.nativeElement).find(_this.DAY_CONTENT_SELECTOR).width();
var /** @type {?} */ contentHeight = $(_this.elementRef.nativeElement).find(_this.DAY_CONTENT_SELECTOR).height();
var /** @type {?} */ newLeft = tgLeft + tgWidth + extraLeftPopover;
if (typeof tgWidth !== 'undefined' && typeof popoverWidth !== 'undefined' && typeof contentWidth !== 'undefined') {
var /** @type {?} */ popoverMaxLeft = newLeft + popoverWidth;
if (popoverMaxLeft > contentWidth) {
// render right
newLeft = tgLeft - extraLeftPopover - popoverWidth;
popoverPosition = 'right';
}
}
var /** @type {?} */ newArrowTop = _this.defaultTopArrowPopover; // default
if (typeof tgTop !== 'undefined' && typeof tgHeight !== 'undefined' && typeof popoverHeight !== 'undefined') {
var /** @type {?} */ lastPopoverBound = tgTop + popoverHeight;
if (lastPopoverBound > contentHeight) {
// recal top
var /** @type {?} */ difVal = lastPopoverBound - contentHeight;
tgTop = tgTop - difVal;
newArrowTop = difVal;
}
}
_this.dayEntryModel.top = tgTop;
_this.dayEntryModel.left = newLeft;
_this.dayEntryModel.position = popoverPosition;
_this.dayEntryModel.model.title = title_1;
_this.dayEntryModel.model.description = selectedDate_1 === null ? '' : selectedDate_1.toString("dd/MM/yyyy");
_this.dayEntryModel.model.date = selectedDate_1;
_this.dayEntryPopover.setArrowTop(newArrowTop);
}
if (show) {
_this.isDayEntryClick = true;
_this.needFocusService.setFocusingComponent(_this);
_this.dayEntryPopover.show();
}
else {
_this.isDayEntryClick = false;
_this.dayEntryPopover.hide();
}
}, 5);
}
};
/**
* @param {?} $event
* @param {?} entryData
* @return {?}
*/
CalendarView.prototype.onWeekEntryClicked = /**
* @param {?} $event
* @param {?} entryData
* @return {?}
*/
function ($event, entryData) {
var _this = this;
if ($event !== null && typeof $event !== 'undefined') {
$event.stopPropagation();
$event.cancelBubble = true;
}
var /** @type {?} */ tgWidth = 0;
var /** @type {?} */ tgHeight = 0;
var /** @type {?} */ tgTop = 0;
var /** @type {?} */ tgLeft = 0;
var /** @type {?} */ show = false;
var /** @type {?} */ extraLeftPopover = 5;
if (this.weekEntryPopover !== null && typeof this.weekEntryPopover !== 'undefined') {
if (this.weekEntrySelected !== null && typeof this.weekEntrySelected !== 'undefined') {
if (this.weekEntrySelected === entryData) {
if (this.weekEntrySelected.selected) {
this.weekEntrySelected.selected = false;
this.weekEntrySelected = null;
show = false;
}
else {
this.weekEntrySelected.selected = true;
this.weekEntryPopover.setCalendarEntryMapper(entryData.entry.wrapper.getEntryMapper());
this.weekEntryPopover.setData(entryData.entry.wrapper.data);
show = true;
}
}
else {
// set old entry false
this.weekEntrySelected.selected = false;
// set new entry true
this.weekEntrySelected = entryData;
this.weekEntrySelected.selected = true;
this.weekEntryPopover.setCalendarEntryMapper(entryData.entry.wrapper.getEntryMapper());
this.weekEntryPopover.setData(entryData.entry.wrapper.data);
show = true;
}