UNPKG

ngx-pluto

Version:
223 lines 17.2 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewEncapsulation, Input, ViewChild, Output, EventEmitter } from "@angular/core"; import * as moment_ from 'moment'; /** @type {?} */ var moment = moment_; import { NpDatePickerService } from "../date-picker.service"; import { NpDatePickerPopup } from "./date-picker-popup"; import { trigger, transition, style, animate } from "@angular/animations"; /** * Date range picker popup组件 */ var NpDateRangePickerPopup = /** @class */ (function () { function NpDateRangePickerPopup(datePickerService) { this.datePickerService = datePickerService; this.datePickerType = 'date-range-picker'; this.footerItems = []; this.onStartDayClicked = new EventEmitter(); this.onEndDayClicked = new EventEmitter(); this.onItemLabelClicked = new EventEmitter(); this.nowDate = moment(); } /** * @return {?} */ NpDateRangePickerPopup.prototype.ngOnInit = /** * @return {?} */ function () { var _this = this; this.buildPicker(); setTimeout((/** * @return {?} */ function () { _this.buildDayPanelStyle(moment(_this.startDate)); }), 0); }; /** * @param {?} dayData * @return {?} */ NpDateRangePickerPopup.prototype.onStartPickerDayClicked = /** * @param {?} dayData * @return {?} */ function (dayData) { /** @type {?} */ var dates = this.buildStartAndEndDates(); this.onStartDayClicked.emit({ day: dayData, dates: dates }); }; /** * @param {?} dayData * @return {?} */ NpDateRangePickerPopup.prototype.onEndPickerDayClicked = /** * @param {?} dayData * @return {?} */ function (dayData) { /** @type {?} */ var dates = this.buildStartAndEndDates(); this.onEndDayClicked.emit({ day: dayData, dates: dates }); }; /** * @param {?} dayData * @return {?} */ NpDateRangePickerPopup.prototype.onStartPickerDayMouseover = /** * @param {?} dayData * @return {?} */ function (dayData) { this.buildDayPanelStyle(dayData.date); }; /** * @param {?} dayData * @return {?} */ NpDateRangePickerPopup.prototype.onEndPickerDayMouseover = /** * @param {?} dayData * @return {?} */ function (dayData) { this.buildDayPanelStyle(dayData.date); }; /** * @param {?} item * @return {?} */ NpDateRangePickerPopup.prototype.onFooterItemLabelClicked = /** * @param {?} item * @return {?} */ function (item) { this.onItemLabelClicked.emit(item); }; /** * @return {?} */ NpDateRangePickerPopup.prototype.ngOnChanges = /** * @return {?} */ function () { }; /** * @private * @param {?} date * @return {?} */ NpDateRangePickerPopup.prototype.buildDayPanelStyle = /** * @private * @param {?} date * @return {?} */ function (date) { /** @type {?} */ var dates = this.buildStartAndEndDates(); this.startPicker.buildPanelForRangePicker(date, dates); this.endPicker.buildPanelForRangePicker(date, dates); }; /** * @private * @return {?} */ NpDateRangePickerPopup.prototype.buildPicker = /** * @private * @return {?} */ function () { if (this.startPicker) { this.startPicker.datePickerType = this.datePickerType; } if (this.endPicker) { this.endPicker.datePickerType = this.datePickerType; } }; /** * @private * @return {?} */ NpDateRangePickerPopup.prototype.buildStartAndEndDates = /** * @private * @return {?} */ function () { if (!this.datePickerService.isValid(this.startDate) || !this.datePickerService.isValid(this.endDate)) { return []; } if (moment(this.startDate) < moment(this.endDate)) { return [this.startDate, this.endDate]; } return [this.endDate, this.startDate]; }; NpDateRangePickerPopup.decorators = [ { type: Component, args: [{ selector: "np-date-range-picker-popup", template: "<div class=\"np-date-range-picker-popup-wrapper flex-wrap row-flex\">\r\n <np-date-picker-popup class=\"start-picker\" #startPicker [date]=\"startDate\" [footerItems]=\"footerItems\"\r\n (onItemLabelClicked)=\"onFooterItemLabelClicked($event)\" (onDayClicked)=\"onStartPickerDayClicked($event)\"\r\n (onDayMouseover)=\"onStartPickerDayMouseover($event)\">\r\n </np-date-picker-popup>\r\n <np-date-picker-popup class=\"end-picker\" #endPicker [date]=\"endDate\" (onDayClicked)=\"onEndPickerDayClicked($event)\"\r\n (onDayMouseover)=\"onEndPickerDayMouseover($event)\"></np-date-picker-popup>\r\n</div>\r\n", encapsulation: ViewEncapsulation.None, animations: [trigger('date-picker-animations', [ transition(':enter', [ style({ opacity: 0 }), animate(300, style({ opacity: 1 })), ]), transition(':leave', [ animate(300, style({ opacity: 0 })), ]), ])], styles: [""] }] } ]; /** @nocollapse */ NpDateRangePickerPopup.ctorParameters = function () { return [ { type: NpDatePickerService } ]; }; NpDateRangePickerPopup.propDecorators = { startDate: [{ type: Input }], endDate: [{ type: Input }], onStartDayClicked: [{ type: Output }], onEndDayClicked: [{ type: Output }], onItemLabelClicked: [{ type: Output }], startPicker: [{ type: ViewChild, args: ['startPicker',] }], endPicker: [{ type: ViewChild, args: ['endPicker',] }] }; return NpDateRangePickerPopup; }()); export { NpDateRangePickerPopup }; if (false) { /** @type {?} */ NpDateRangePickerPopup.prototype.datePickerType; /** @type {?} */ NpDateRangePickerPopup.prototype.footerItems; /** * 传入的第一个datepicker的时间,可以是moment实例,也可以是可转换为moment的字符串 * @type {?} */ NpDateRangePickerPopup.prototype.startDate; /** * 传入的第二个datepicker的时间,可以是moment实例,也可以是可转换为moment的字符串 * @type {?} */ NpDateRangePickerPopup.prototype.endDate; /** @type {?} */ NpDateRangePickerPopup.prototype.onStartDayClicked; /** @type {?} */ NpDateRangePickerPopup.prototype.onEndDayClicked; /** @type {?} */ NpDateRangePickerPopup.prototype.onItemLabelClicked; /** @type {?} */ NpDateRangePickerPopup.prototype.startPicker; /** @type {?} */ NpDateRangePickerPopup.prototype.endPicker; /** @type {?} */ NpDateRangePickerPopup.prototype.nowDate; /** * @type {?} * @private */ NpDateRangePickerPopup.prototype.datePickerService; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1yYW5nZS1waWNrZXItcG9wdXAuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtcGx1dG8vIiwic291cmNlcyI6WyJsaWIvZGF0ZS1waWNrZXIvY29tcG9uZW50cy9kYXRlLXJhbmdlLXBpY2tlci1wb3B1cC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBVSxLQUFLLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDN0csT0FBTyxLQUFLLE9BQU8sTUFBTSxRQUFRLENBQUM7O0lBQU8sTUFBTSxHQUFHLE9BQU87QUFDekQsT0FBTyxFQUFtQixtQkFBbUIsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBRTlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBa0IsTUFBTSxxQkFBcUIsQ0FBQztBQUN4RSxPQUFPLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLE1BQU0scUJBQXFCLENBQUM7Ozs7QUFLMUU7SUFzQ0UsZ0NBQW9CLGlCQUFzQztRQUF0QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQXFCO1FBckIxRCxtQkFBYyxHQUFtQixtQkFBbUIsQ0FBQztRQUNyRCxnQkFBVyxHQUEyQixFQUFFLENBQUM7UUFXL0Isc0JBQWlCLEdBQUcsSUFBSSxZQUFZLEVBQW1FLENBQUM7UUFDeEcsb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBbUUsQ0FBQztRQUN0Ryx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBd0IsQ0FBQztRQUt4RSxZQUFPLEdBQUcsTUFBTSxFQUFFLENBQUM7SUFFMkMsQ0FBQzs7OztJQUUvRCx5Q0FBUTs7O0lBQVI7UUFBQSxpQkFNQztRQUxDLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUVuQixVQUFVOzs7UUFBQztZQUNULEtBQUksQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsS0FBSSxDQUFDLFNBQVMs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QUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDOzZCQUNwQyxDQUFDOzRCQUNGLFVBQVUsQ0FBQyxRQUFRLEVBQUU7Z0NBQ25CLE9BQU8sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7NkJBQ3BDLENBQUM7eUJBQ0gsQ0FBQyxDQUFDOztpQkFDSjs7OztnQkF0QnlCLG1CQUFtQjs7OzRCQStCMUMsS0FBSzswQkFJTCxLQUFLO29DQUVMLE1BQU07a0NBQ04sTUFBTTtxQ0FDTixNQUFNOzhCQUVOLFNBQVMsU0FBQyxhQUFhOzRCQUN2QixTQUFTLFNBQUMsV0FBVzs7SUFtRXhCLDZCQUFDO0NBQUEsQUFyR0QsSUFxR0M7U0FyRlksc0JBQXNCOzs7SUFDakMsZ0RBQXFEOztJQUNyRCw2Q0FBeUM7Ozs7O0lBS3pDLDJDQUF3Qjs7Ozs7SUFJeEIseUNBQXNCOztJQUV0QixtREFBa0g7O0lBQ2xILGlEQUFnSDs7SUFDaEgsb0RBQXdFOztJQUV4RSw2Q0FBeUQ7O0lBQ3pELDJDQUFxRDs7SUFFckQseUNBQW1COzs7OztJQUVQLG1EQUE4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24sIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgKiBhcyBtb21lbnRfIGZyb20gJ21vbWVudCc7IGNvbnN0IG1vbWVudCA9IG1vbWVudF9cclxuaW1wb3J0IHsgRGF5RGF0YVBlck1vbnRoLCBOcERhdGVQaWNrZXJTZXJ2aWNlIH0gZnJvbSBcIi4uL2RhdGUtcGlja2VyLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0ZVBpY2tlckZvb3Rlckl0ZW0gfSBmcm9tIFwiLi9kYXRlLXBpY2tlci1mb290ZXJcIjtcclxuaW1wb3J0IHsgTnBEYXRlUGlja2VyUG9wdXAsIERhdGVQaWNrZXJUeXBlIH0gZnJvbSBcIi4vZGF0ZS1waWNrZXItcG9wdXBcIjtcclxuaW1wb3J0IHsgdHJpZ2dlciwgdHJhbnNpdGlvbiwgc3R5bGUsIGFuaW1hdGUgfSBmcm9tIFwiQGFuZ3VsYXIvYW5pbWF0aW9uc1wiO1xyXG5cclxuLyoqXHJcbiAqIERhdGUgcmFuZ2UgcGlja2VyIHBvcHVw57uE5Lu2XHJcbiAqL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYG5wLWRhdGUtcmFuZ2UtcGlja2VyLXBvcHVwYCxcclxuICB0ZW1wbGF0ZVVybDogJ2RhdGUtcmFuZ2UtcGlja2VyLXBvcHVwLmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWydkYXRlLXJhbmdlLXBpY2tlci1wb3B1cC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBhbmltYXRpb25zOiBbdHJpZ2dlcignZGF0ZS1waWNrZXItYW5pbWF0aW9ucycsIFtcclxuICAgIHRyYW5zaXRpb24oJzplbnRlcicsIFtcclxuICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxyXG4gICAgICBhbmltYXRlKDMwMCwgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcclxuICAgIF0pLFxyXG4gICAgdHJhbnNpdGlvbignOmxlYXZlJywgW1xyXG4gICAgICBhbmltYXRlKDMwMCwgc3R5bGUoeyBvcGFjaXR5OiAwIH0pKSxcclxuICAgIF0pLFxyXG4gIF0pXVxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIE5wRGF0ZVJhbmdlUGlja2VyUG9wdXAgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIGRhdGVQaWNrZXJUeXBlOiBEYXRlUGlja2VyVHlwZSA9ICdkYXRlLXJhbmdlLXBpY2tlcic7XHJcbiAgZm9vdGVySXRlbXM6IERhdGVQaWNrZXJGb290ZXJJdGVtW10gPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICog5Lyg5YWl55qE56ys5LiA5LiqZGF0ZXBpY2tlcueahOaXtumXtO+8jOWPr+S7peaYr21vbWVudOWunuS+i++8jOS5n+WPr+S7peaYr+WPr+i9rOaNouS4um1vbWVudOeahOWtl+espuS4slxyXG4gICAqL1xyXG4gIEBJbnB1dCgpIHN0YXJ0RGF0ZTogYW55O1xyXG4gIC8qKlxyXG4gICAqIOS8oOWFpeeahOesrOS6jOS4qmRhdGVwaWNrZXLnmoTml7bpl7TvvIzlj6/ku6XmmK9tb21lbnTlrp7kvovvvIzkuZ/lj6/ku6XmmK/lj6/ovazmjaLkuLptb21lbnTnmoTlrZfnrKbkuLJcclxuICAgKi9cclxuICBASW5wdXQoKSBlbmREYXRlOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBvblN0YXJ0RGF5Q2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBkYXk6IERheURhdGFQZXJNb250aCwgZGF0ZXM6IEFycmF5PG1vbWVudF8uTW9tZW50IHwgc3RyaW5nPiB9PigpO1xyXG4gIEBPdXRwdXQoKSBvbkVuZERheUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHsgZGF5OiBEYXlEYXRhUGVyTW9udGgsIGRhdGVzOiBBcnJheTxtb21lbnRfLk1vbWVudCB8IHN0cmluZz4gfT4oKTtcclxuICBAT3V0cHV0KCkgb25JdGVtTGFiZWxDbGlja2VkID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlUGlja2VyRm9vdGVySXRlbT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnc3RhcnRQaWNrZXInKSBzdGFydFBpY2tlcjogTnBEYXRlUGlja2VyUG9wdXA7XHJcbiAgQFZpZXdDaGlsZCgnZW5kUGlja2VyJykgZW5kUGlja2VyOiBOcERhdGVQaWNrZXJQb3B1cDtcclxuXHJcbiAgbm93RGF0ZSA9IG1vbWVudCgpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRhdGVQaWNrZXJTZXJ2aWNlOiBOcERhdGVQaWNrZXJTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLmJ1aWxkUGlja2VyKCk7XHJcblxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuYnVpbGREYXlQYW5lbFN0eWxlKG1vbWVudCh0aGlzLnN0YXJ0RGF0ZSkpO1xyXG4gICAgfSwgMCk7XHJcbiAgfVxyXG5cclxuICBvblN0YXJ0UGlja2VyRGF5Q2xpY2tlZChkYXlEYXRhOiBEYXlEYXRhUGVyTW9udGgpIHtcclxuICAgIGxldCBkYXRlcyA9IHRoaXMuYnVpbGRTdGFydEFuZEVuZERhdGVzKCk7XHJcbiAgICB0aGlzLm9uU3RhcnREYXlDbGlja2VkLmVtaXQoeyBkYXk6IGRheURhdGEsIGRhdGVzOiBkYXRlcyB9KTtcclxuICB9XHJcblxyXG4gIG9uRW5kUGlja2VyRGF5Q2xpY2tlZChkYXlEYXRhOiBEYXlEYXRhUGVyTW9udGgpIHtcclxuICAgIGxldCBkYXRlcyA9IHRoaXMuYnVpbGRTdGFydEFuZEVuZERhdGVzKCk7XHJcbiAgICB0aGlzLm9uRW5kRGF5Q2xpY2tlZC5lbWl0KHsgZGF5OiBkYXlEYXRhLCBkYXRlczogZGF0ZXMgfSk7XHJcbiAgfVxyXG5cclxuICBvblN0YXJ0UGlja2VyRGF5TW91c2VvdmVyKGRheURhdGE6IERheURhdGFQZXJNb250aCkge1xyXG4gICAgdGhpcy5idWlsZERheVBhbmVsU3R5bGUoZGF5RGF0YS5kYXRlKTtcclxuICB9XHJcblxyXG4gIG9uRW5kUGlja2VyRGF5TW91c2VvdmVyKGRheURhdGE6IERheURhdGFQZXJNb250aCkge1xyXG4gICAgdGhpcy5idWlsZERheVBhbmVsU3R5bGUoZGF5RGF0YS5kYXRlKTtcclxuICB9XHJcblxyXG4gIG9uRm9vdGVySXRlbUxhYmVsQ2xpY2tlZChpdGVtOiBEYXRlUGlja2VyRm9vdGVySXRlbSkge1xyXG4gICAgdGhpcy5vbkl0ZW1MYWJlbENsaWNrZWQuZW1pdChpdGVtKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG5cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGREYXlQYW5lbFN0eWxlKGRhdGU6IG1vbWVudF8uTW9tZW50KSB7XHJcbiAgICBsZXQgZGF0ZXMgPSB0aGlzLmJ1aWxkU3RhcnRBbmRFbmREYXRlcygpO1xyXG4gICAgdGhpcy5zdGFydFBpY2tlci5idWlsZFBhbmVsRm9yUmFuZ2VQaWNrZXIoZGF0ZSwgZGF0ZXMpO1xyXG4gICAgdGhpcy5lbmRQaWNrZXIuYnVpbGRQYW5lbEZvclJhbmdlUGlja2VyKGRhdGUsIGRhdGVzKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRQaWNrZXIoKSB7XHJcbiAgICBpZiAodGhpcy5zdGFydFBpY2tlcikge1xyXG4gICAgICB0aGlzLnN0YXJ0UGlja2VyLmRhdGVQaWNrZXJUeXBlID0gdGhpcy5kYXRlUGlja2VyVHlwZTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5lbmRQaWNrZXIpIHtcclxuICAgICAgdGhpcy5lbmRQaWNrZXIuZGF0ZVBpY2tlclR5cGUgPSB0aGlzLmRhdGVQaWNrZXJUeXBlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBidWlsZFN0YXJ0QW5kRW5kRGF0ZXMoKSB7XHJcbiAgICBpZiAoIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWxpZCh0aGlzLnN0YXJ0RGF0ZSkgfHwgIXRoaXMuZGF0ZVBpY2tlclNlcnZpY2UuaXNWYWxpZCh0aGlzLmVuZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAobW9tZW50KHRoaXMuc3RhcnREYXRlKSA8IG1vbWVudCh0aGlzLmVuZERhdGUpKSB7XHJcbiAgICAgIHJldHVybiBbdGhpcy5zdGFydERhdGUsIHRoaXMuZW5kRGF0ZV07XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIFt0aGlzLmVuZERhdGUsIHRoaXMuc3RhcnREYXRlXTtcclxuICB9XHJcbn1cclxuXHJcbmV4cG9ydCB0eXBlIERhdGVSYW5nZVBpY2tlclR5cGUgPSAnZGF0ZS1yYW5nZS1waWNrZXInIHwgJ2RhdGV0aW1lLXJhbmdlLXBpY2tlcic7Il19