UNPKG

@angular/material

Version:
58 lines (56 loc) 95.3 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("@angular/cdk/a11y"),require("@angular/cdk/overlay"),require("@angular/cdk/portal"),require("@angular/common"),require("@angular/core"),require("@angular/material/button"),require("@angular/material/dialog"),require("@angular/cdk/scrolling"),require("@angular/material/core"),require("rxjs"),require("@angular/cdk/keycodes"),require("@angular/cdk/bidi"),require("rxjs/operators"),require("@angular/cdk/coercion"),require("@angular/animations"),require("@angular/forms"),require("@angular/material/form-field"),require("@angular/material/input")):"function"==typeof define&&define.amd?define("@angular/material/datepicker",["exports","@angular/cdk/a11y","@angular/cdk/overlay","@angular/cdk/portal","@angular/common","@angular/core","@angular/material/button","@angular/material/dialog","@angular/cdk/scrolling","@angular/material/core","rxjs","@angular/cdk/keycodes","@angular/cdk/bidi","rxjs/operators","@angular/cdk/coercion","@angular/animations","@angular/forms","@angular/material/form-field","@angular/material/input"],t):t(((e=e||self).ng=e.ng||{},e.ng.material=e.ng.material||{},e.ng.material.datepicker={}),e.ng.cdk.a11y,e.ng.cdk.overlay,e.ng.cdk.portal,e.ng.common,e.ng.core,e.ng.material.button,e.ng.material.dialog,e.ng.cdk.scrolling,e.ng.material.core,e.rxjs,e.ng.cdk.keycodes,e.ng.cdk.bidi,e.rxjs.operators,e.ng.cdk.coercion,e.ng.animations,e.ng.forms,e.ng.material.formField,e.ng.material.input)}(this,(function(e,t,a,n,r,i,o,s,d,l,c,p,u,h,_,m,g,y,f){"use strict"; /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */function b(e){return Error("MatDatepicker: No provider found for "+e+". You must import one of the following modules at your application root: MatNativeDateModule, MatMomentDateModule, or provide a custom implementation.")} /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */var v=function(){function e(){this.changes=new c.Subject,this.calendarLabel="Calendar",this.openCalendarLabel="Open calendar",this.prevMonthLabel="Previous month",this.nextMonthLabel="Next month",this.prevYearLabel="Previous year",this.nextYearLabel="Next year",this.prevMultiYearLabel="Previous 20 years",this.nextMultiYearLabel="Next 20 years",this.switchToMonthViewLabel="Choose date",this.switchToMultiYearViewLabel="Choose month and year"}return e.prototype.formatYearRange=function(e,t){return e+" – "+t},e.ɵprov=i.ɵɵdefineInjectable({factory:function t(){return new e},token:e,providedIn:"root"}),e.decorators=[{type:i.Injectable,args:[{providedIn:"root"}]}],e}(),D=function D(e,t,a,n,r,i,o){void 0===r&&(r={}),void 0===i&&(i=e),this.value=e,this.displayValue=t,this.ariaLabel=a,this.enabled=n,this.cssClasses=r,this.compareValue=i,this.rawValue=o},C=function(){function e(e,t){var a=this;this._elementRef=e,this._ngZone=t,this.numCols=7,this.activeCell=0,this.isRange=!1,this.cellAspectRatio=1,this.previewStart=null,this.previewEnd=null,this.selectedValueChange=new i.EventEmitter,this.previewChange=new i.EventEmitter,this._enterHandler=function(e){if(a._skipNextFocus&&"focus"===e.type)a._skipNextFocus=!1;else if(e.target&&a.isRange){var t=a._getCellFromElement(e.target);t&&a._ngZone.run((function(){return a.previewChange.emit({value:t.enabled?t:null,event:e})}))}},this._leaveHandler=function(e){null!==a.previewEnd&&a.isRange&&e.target&&A(e.target)&&a._ngZone.run((function(){return a.previewChange.emit({value:null,event:e})}))},t.runOutsideAngular((function(){var t=e.nativeElement;t.addEventListener("mouseenter",a._enterHandler,!0),t.addEventListener("focus",a._enterHandler,!0),t.addEventListener("mouseleave",a._leaveHandler,!0),t.addEventListener("blur",a._leaveHandler,!0)}))}return e.prototype._cellClicked=function(e,t){e.enabled&&this.selectedValueChange.emit({value:e.value,event:t})},e.prototype._isSelected=function(e){return this.startValue===e.compareValue||this.endValue===e.compareValue},e.prototype.ngOnChanges=function(e){var t=e.numCols,a=this.rows,n=this.numCols;(e.rows||t)&&(this._firstRowOffset=a&&a.length&&a[0].length?n-a[0].length:0),(e.cellAspectRatio||t||!this._cellPadding)&&(this._cellPadding=50*this.cellAspectRatio/n+"%"),!t&&this._cellWidth||(this._cellWidth=100/n+"%")},e.prototype.ngOnDestroy=function(){var e=this._elementRef.nativeElement;e.removeEventListener("mouseenter",this._enterHandler,!0),e.removeEventListener("focus",this._enterHandler,!0),e.removeEventListener("mouseleave",this._leaveHandler,!0),e.removeEventListener("blur",this._leaveHandler,!0)},e.prototype._isActiveCell=function(e,t){var a=e*this.numCols+t;return e&&(a-=this._firstRowOffset),a==this.activeCell},e.prototype._focusActiveCell=function(e){var t=this;void 0===e&&(e=!0),this._ngZone.runOutsideAngular((function(){t._ngZone.onStable.asObservable().pipe(h.take(1)).subscribe((function(){var a=t._elementRef.nativeElement.querySelector(".mat-calendar-body-active");a&&(e||(t._skipNextFocus=!0),a.focus())}))}))},e.prototype._isRangeStart=function(e){return w(e,this.startValue,this.endValue)},e.prototype._isRangeEnd=function(e){return k(e,this.startValue,this.endValue)},e.prototype._isInRange=function(e){return I(e,this.startValue,this.endValue,this.isRange)},e.prototype._isComparisonStart=function(e){return w(e,this.comparisonStart,this.comparisonEnd)},e.prototype._isComparisonBridgeStart=function(e,t,a){if(!this._isComparisonStart(e)||this._isRangeStart(e)||!this._isInRange(e))return!1;var n=this.rows[t][a-1];if(!n){var r=this.rows[t-1];n=r&&r[r.length-1]}return n&&!this._isRangeEnd(n.compareValue)},e.prototype._isComparisonBridgeEnd=function(e,t,a){if(!this._isComparisonEnd(e)||this._isRangeEnd(e)||!this._isInRange(e))return!1;var n=this.rows[t][a+1];if(!n){var r=this.rows[t+1];n=r&&r[0]}return n&&!this._isRangeStart(n.compareValue)},e.prototype._isComparisonEnd=function(e){return k(e,this.comparisonStart,this.comparisonEnd)},e.prototype._isInComparisonRange=function(e){return I(e,this.comparisonStart,this.comparisonEnd,this.isRange)},e.prototype._isPreviewStart=function(e){return w(e,this.previewStart,this.previewEnd)},e.prototype._isPreviewEnd=function(e){return k(e,this.previewStart,this.previewEnd)},e.prototype._isInPreview=function(e){return I(e,this.previewStart,this.previewEnd,this.isRange)},e.prototype._getCellFromElement=function(e){var t;if(A(e)?t=e:A(e.parentNode)&&(t=e.parentNode),t){var a=t.getAttribute("data-mat-row"),n=t.getAttribute("data-mat-col");if(a&&n)return this.rows[parseInt(a)][parseInt(n)]}return null},e.decorators=[{type:i.Component,args:[{selector:"[mat-calendar-body]",template:'\x3c!--\n If there\'s not enough space in the first row, create a separate label row. We mark this row as\n aria-hidden because we don\'t want it to be read out as one of the weeks in the month.\n--\x3e\n<tr *ngIf="_firstRowOffset < labelMinRequiredCells" aria-hidden="true">\n <td class="mat-calendar-body-label"\n [attr.colspan]="numCols"\n [style.paddingTop]="_cellPadding"\n [style.paddingBottom]="_cellPadding">\n {{label}}\n </td>\n</tr>\n\n\x3c!-- Create the first row separately so we can include a special spacer cell. --\x3e\n<tr *ngFor="let row of rows; let rowIndex = index" role="row">\n \x3c!--\n We mark this cell as aria-hidden so it doesn\'t get read out as one of the days in the week.\n The aspect ratio of the table cells is maintained by setting the top and bottom padding as a\n percentage of the width (a variant of the trick described here:\n https://www.w3schools.com/howto/howto_css_aspect_ratio.asp).\n --\x3e\n <td *ngIf="rowIndex === 0 && _firstRowOffset"\n aria-hidden="true"\n class="mat-calendar-body-label"\n [attr.colspan]="_firstRowOffset"\n [style.paddingTop]="_cellPadding"\n [style.paddingBottom]="_cellPadding">\n {{_firstRowOffset >= labelMinRequiredCells ? label : \'\'}}\n </td>\n <td *ngFor="let item of row; let colIndex = index"\n role="gridcell"\n class="mat-calendar-body-cell"\n [ngClass]="item.cssClasses"\n [tabindex]="_isActiveCell(rowIndex, colIndex) ? 0 : -1"\n [attr.data-mat-row]="rowIndex"\n [attr.data-mat-col]="colIndex"\n [class.mat-calendar-body-disabled]="!item.enabled"\n [class.mat-calendar-body-active]="_isActiveCell(rowIndex, colIndex)"\n [class.mat-calendar-body-range-start]="_isRangeStart(item.compareValue)"\n [class.mat-calendar-body-range-end]="_isRangeEnd(item.compareValue)"\n [class.mat-calendar-body-in-range]="_isInRange(item.compareValue)"\n [class.mat-calendar-body-comparison-bridge-start]="_isComparisonBridgeStart(item.compareValue, rowIndex, colIndex)"\n [class.mat-calendar-body-comparison-bridge-end]="_isComparisonBridgeEnd(item.compareValue, rowIndex, colIndex)"\n [class.mat-calendar-body-comparison-start]="_isComparisonStart(item.compareValue)"\n [class.mat-calendar-body-comparison-end]="_isComparisonEnd(item.compareValue)"\n [class.mat-calendar-body-in-comparison-range]="_isInComparisonRange(item.compareValue)"\n [class.mat-calendar-body-preview-start]="_isPreviewStart(item.compareValue)"\n [class.mat-calendar-body-preview-end]="_isPreviewEnd(item.compareValue)"\n [class.mat-calendar-body-in-preview]="_isInPreview(item.compareValue)"\n [attr.aria-label]="item.ariaLabel"\n [attr.aria-disabled]="!item.enabled || null"\n [attr.aria-selected]="_isSelected(item)"\n (click)="_cellClicked(item, $event)"\n [style.width]="_cellWidth"\n [style.paddingTop]="_cellPadding"\n [style.paddingBottom]="_cellPadding">\n <div class="mat-calendar-body-cell-content mat-focus-indicator"\n [class.mat-calendar-body-selected]="_isSelected(item)"\n [class.mat-calendar-body-today]="todayValue === item.compareValue">\n {{item.displayValue}}\n </div>\n <div class="mat-calendar-body-cell-preview"></div>\n </td>\n</tr>\n',host:{class:"mat-calendar-body",role:"grid","aria-readonly":"true"},exportAs:"matCalendarBody",encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush,styles:['.mat-calendar-body{min-width:224px}.mat-calendar-body-label{height:0;line-height:0;text-align:left;padding-left:4.7142857143%;padding-right:4.7142857143%}.mat-calendar-body-cell{position:relative;height:0;line-height:0;text-align:center;outline:none;cursor:pointer}.mat-calendar-body-cell::before,.mat-calendar-body-cell::after,.mat-calendar-body-cell-preview{content:"";position:absolute;top:5%;left:0;z-index:0;box-sizing:border-box;height:90%;width:100%}.mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-start::after,.mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,.mat-calendar-body-comparison-start::after,.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:5%;width:95%;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-range-start:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-start:not(.mat-calendar-body-comparison-bridge-start)::before,[dir=rtl] .mat-calendar-body-comparison-start::after,[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{left:0;border-radius:0;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,.mat-calendar-body-comparison-end::after,.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}[dir=rtl] .mat-calendar-body-range-end:not(.mat-calendar-body-in-comparison-range)::before,[dir=rtl] .mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-end:not(.mat-calendar-body-comparison-bridge-end)::before,[dir=rtl] .mat-calendar-body-comparison-end::after,[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{left:5%;border-radius:0;border-top-left-radius:999px;border-bottom-left-radius:999px}[dir=rtl] .mat-calendar-body-comparison-bridge-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-bridge-end.mat-calendar-body-range-start::after{width:95%;border-top-right-radius:999px;border-bottom-right-radius:999px}.mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,[dir=rtl] .mat-calendar-body-comparison-start.mat-calendar-body-range-end::after,.mat-calendar-body-comparison-end.mat-calendar-body-range-start::after,[dir=rtl] .mat-calendar-body-comparison-end.mat-calendar-body-range-start::after{width:90%}.mat-calendar-body-in-preview .mat-calendar-body-cell-preview{border-top:dashed 1px;border-bottom:dashed 1px}.mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:dashed 1px}[dir=rtl] .mat-calendar-body-preview-start .mat-calendar-body-cell-preview{border-left:0;border-right:dashed 1px}.mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:dashed 1px}[dir=rtl] .mat-calendar-body-preview-end .mat-calendar-body-cell-preview{border-right:0;border-left:dashed 1px}.mat-calendar-body-disabled{cursor:default}.mat-calendar-body-cell-content{top:5%;left:5%;z-index:1;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;line-height:1;border-width:1px;border-style:solid;border-radius:999px}.mat-calendar-body-cell-content.mat-focus-indicator{position:absolute}.cdk-high-contrast-active .mat-calendar-body-cell-content{border:none}.cdk-high-contrast-active .mat-datepicker-popup:not(:empty),.cdk-high-contrast-active .mat-calendar-body-selected{outline:solid 1px}.cdk-high-contrast-active .mat-calendar-body-today{outline:dotted 1px}.cdk-high-contrast-active .cdk-keyboard-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected),.cdk-high-contrast-active .cdk-program-focused .mat-calendar-body-active>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){outline:dotted 2px}[dir=rtl] .mat-calendar-body-label{text-align:right}@media(hover: none){.mat-calendar-body-cell:not(.mat-calendar-body-disabled):hover>.mat-calendar-body-cell-content:not(.mat-calendar-body-selected){background-color:transparent}}\n']}]}],e.ctorParameters=function(){return[{type:i.ElementRef},{type:i.NgZone}]},e.propDecorators={label:[{type:i.Input}],rows:[{type:i.Input}],todayValue:[{type:i.Input}],startValue:[{type:i.Input}],endValue:[{type:i.Input}],labelMinRequiredCells:[{type:i.Input}],numCols:[{type:i.Input}],activeCell:[{type:i.Input}],isRange:[{type:i.Input}],cellAspectRatio:[{type:i.Input}],comparisonStart:[{type:i.Input}],comparisonEnd:[{type:i.Input}],previewStart:[{type:i.Input}],previewEnd:[{type:i.Input}],selectedValueChange:[{type:i.Output}],previewChange:[{type:i.Output}]},e}(); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */function A(e){return"TD"===e.nodeName}function w(e,t,a){return null!==a&&t!==a&&e<a&&e===t}function k(e,t,a){return null!==t&&t!==a&&e>=t&&e===a}function I(e,t,a,n){return n&&null!==t&&null!==a&&t!==a&&e>=t&&e<=a} /*! ***************************************************************************** Copyright (c) Microsoft Corporation. Permission to use, copy, modify, and/or distribute this software for any purpose with or without fee is hereby granted. THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. ***************************************************************************** */var O=function(e,t){return(O=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(e,t){e.__proto__=t}||function(e,t){for(var a in t)t.hasOwnProperty(a)&&(e[a]=t[a])})(e,t)};function E(e,t){function a(){this.constructor=e}O(e,t),e.prototype=null===t?Object.create(t):(a.prototype=t.prototype,new a)}function V(e,t){var a="function"==typeof Symbol&&e[Symbol.iterator];if(!a)return e;var n,r,i=a.call(e),o=[];try{for(;(void 0===t||t-- >0)&&!(n=i.next()).done;)o.push(n.value)}catch(e){r={error:e}}finally{try{n&&!n.done&&(a=i.return)&&a.call(i)}finally{if(r)throw r.error}}return o}function x(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(V(arguments[t]));return e} /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ var S=function S(e,t){this.start=e,this.end=t},M=function(){function e(e,t){this.selection=e,this._adapter=t,this._selectionChanged=new c.Subject,this.selectionChanged=this._selectionChanged.asObservable(),this.selection=e}return e.prototype.updateSelection=function(e,t){this.selection=e,this._selectionChanged.next({selection:e,source:t})},e.prototype.ngOnDestroy=function(){this._selectionChanged.complete()},e.prototype._isValidDateInstance=function(e){return this._adapter.isDateInstance(e)&&this._adapter.isValid(e)},e.decorators=[{type:i.Directive}],e.ctorParameters=function(){return[{type:void 0},{type:l.DateAdapter}]},e}(),R=function(e){function t(t){return e.call(this,null,t)||this}return E(t,e),t.prototype.add=function(t){e.prototype.updateSelection.call(this,t,this)},t.prototype.isValid=function(){return null!=this.selection&&this._isValidDateInstance(this.selection)},t.prototype.isComplete=function(){return null!=this.selection},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:l.DateAdapter}]},t}(M),P=function(e){function t(t){return e.call(this,new S(null,null),t)||this}return E(t,e),t.prototype.add=function(t){var a=this.selection,n=a.start,r=a.end;null==n?n=t:null==r?r=t:(n=t,r=null),e.prototype.updateSelection.call(this,new S(n,r),this)},t.prototype.isValid=function(){var e=this.selection,t=e.start,a=e.end;return null==t&&null==a||(null!=t&&null!=a?this._isValidDateInstance(t)&&this._isValidDateInstance(a)&&this._adapter.compareDate(t,a)<=0:(null==t||this._isValidDateInstance(t))&&(null==a||this._isValidDateInstance(a)))},t.prototype.isComplete=function(){return null!=this.selection.start&&null!=this.selection.end},t.decorators=[{type:i.Injectable}],t.ctorParameters=function(){return[{type:l.DateAdapter}]},t}(M);function T(e,t){return e||new R(t)}var F={provide:M,deps:[[new i.Optional,new i.SkipSelf,M],l.DateAdapter],useFactory:T};function Y(e,t){return e||new P(t)}var N={provide:M,deps:[[new i.Optional,new i.SkipSelf,M],l.DateAdapter],useFactory:Y},j=new i.InjectionToken("MAT_DATE_RANGE_SELECTION_STRATEGY"),L=function(){function e(e){this._dateAdapter=e}return e.prototype.selectionFinished=function(e,t){var a=t.start,n=t.end;return null==a?a=e:null==n&&e&&this._dateAdapter.compareDate(e,a)>=0?n=e:(a=e,n=null),new S(a,n)},e.prototype.createPreview=function(e,t){var a=null,n=null;return t.start&&!t.end&&e&&(a=t.start,n=e),new S(a,n)},e.decorators=[{type:i.Injectable}],e.ctorParameters=function(){return[{type:l.DateAdapter}]},e}(),B=function(){function e(e,t,a,n,r){if(this._changeDetectorRef=e,this._dateFormats=t,this._dateAdapter=a,this._dir=n,this._rangeStrategy=r,this._rerenderSubscription=c.Subscription.EMPTY,this.selectedChange=new i.EventEmitter,this._userSelection=new i.EventEmitter,this.activeDateChange=new i.EventEmitter,!this._dateAdapter)throw b("DateAdapter");if(!this._dateFormats)throw b("MAT_DATE_FORMATS");this._activeDate=this._dateAdapter.today()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){var t=this._activeDate,a=this._getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(a,this.minDate,this.maxDate),this._hasSameMonthAndYear(t,this._activeDate)||this._init()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e instanceof S?e:this._getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setRanges(this._selected)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(h.startWith(null)).subscribe((function(){return e._init()}))},e.prototype.ngOnDestroy=function(){this._rerenderSubscription.unsubscribe()},e.prototype._dateSelected=function(e){var t,a,n=e.value,r=this._dateAdapter.getYear(this.activeDate),i=this._dateAdapter.getMonth(this.activeDate),o=this._dateAdapter.createDate(r,i,n);this._selected instanceof S?(t=this._getDateInCurrentMonth(this._selected.start),a=this._getDateInCurrentMonth(this._selected.end)):t=a=this._getDateInCurrentMonth(this._selected),t===n&&a===n||this.selectedChange.emit(o),this._userSelection.emit({value:o,event:e.event})},e.prototype._handleCalendarBodyKeydown=function(e){var t=this._activeDate,a=this._isRtl();switch(e.keyCode){case p.LEFT_ARROW:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,a?1:-1);break;case p.RIGHT_ARROW:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,a?-1:1);break;case p.UP_ARROW:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,-7);break;case p.DOWN_ARROW:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,7);break;case p.HOME:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,1-this._dateAdapter.getDate(this._activeDate));break;case p.END:this.activeDate=this._dateAdapter.addCalendarDays(this._activeDate,this._dateAdapter.getNumDaysInMonth(this._activeDate)-this._dateAdapter.getDate(this._activeDate));break;case p.PAGE_UP:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,-1):this._dateAdapter.addCalendarMonths(this._activeDate,-1);break;case p.PAGE_DOWN:this.activeDate=e.altKey?this._dateAdapter.addCalendarYears(this._activeDate,1):this._dateAdapter.addCalendarMonths(this._activeDate,1);break;case p.ENTER:case p.SPACE:return void(this.dateFilter&&!this.dateFilter(this._activeDate)||(this._dateSelected({value:this._dateAdapter.getDate(this._activeDate),event:e}),e.preventDefault()));case p.ESCAPE:return void(null!=this._previewEnd&&(this._previewStart=this._previewEnd=null,this.selectedChange.emit(null),this._userSelection.emit({value:null,event:e}),e.preventDefault(),e.stopPropagation()));default:return}this._dateAdapter.compareDate(t,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),e.preventDefault()},e.prototype._init=function(){this._setRanges(this.selected),this._todayDate=this._getCellCompareValue(this._dateAdapter.today()),this._monthLabel=this._dateAdapter.getMonthNames("short")[this._dateAdapter.getMonth(this.activeDate)].toLocaleUpperCase();var e=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),1);this._firstWeekOffset=(7+this._dateAdapter.getDayOfWeek(e)-this._dateAdapter.getFirstDayOfWeek())%7,this._initWeekdays(),this._createWeekCells(),this._changeDetectorRef.markForCheck()},e.prototype._focusActiveCell=function(e){this._matCalendarBody._focusActiveCell(e)},e.prototype._previewChanged=function(e){var t=e.value;if(this._rangeStrategy){var a=this._rangeStrategy.createPreview(t?t.rawValue:null,this.selected,e.event);this._previewStart=this._getCellCompareValue(a.start),this._previewEnd=this._getCellCompareValue(a.end),this._changeDetectorRef.detectChanges()}},e.prototype._initWeekdays=function(){var e=this._dateAdapter.getFirstDayOfWeek(),t=this._dateAdapter.getDayOfWeekNames("narrow"),a=this._dateAdapter.getDayOfWeekNames("long").map((function(e,a){return{long:e,narrow:t[a]}}));this._weekdays=a.slice(e).concat(a.slice(0,e))},e.prototype._createWeekCells=function(){var e=this._dateAdapter.getNumDaysInMonth(this.activeDate),t=this._dateAdapter.getDateNames();this._weeks=[[]];for(var a=0,n=this._firstWeekOffset;a<e;a++,n++){7==n&&(this._weeks.push([]),n=0);var r=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),this._dateAdapter.getMonth(this.activeDate),a+1),i=this._shouldEnableDate(r),o=this._dateAdapter.format(r,this._dateFormats.display.dateA11yLabel),s=this.dateClass?this.dateClass(r):void 0;this._weeks[this._weeks.length-1].push(new D(a+1,t[a],o,i,s,this._getCellCompareValue(r),r))}},e.prototype._shouldEnableDate=function(e){return!!e&&(!this.minDate||this._dateAdapter.compareDate(e,this.minDate)>=0)&&(!this.maxDate||this._dateAdapter.compareDate(e,this.maxDate)<=0)&&(!this.dateFilter||this.dateFilter(e))},e.prototype._getDateInCurrentMonth=function(e){return e&&this._hasSameMonthAndYear(e,this.activeDate)?this._dateAdapter.getDate(e):null},e.prototype._hasSameMonthAndYear=function(e,t){return!(!e||!t||this._dateAdapter.getMonth(e)!=this._dateAdapter.getMonth(t)||this._dateAdapter.getYear(e)!=this._dateAdapter.getYear(t))},e.prototype._getCellCompareValue=function(e){if(e){var t=this._dateAdapter.getYear(e),a=this._dateAdapter.getMonth(e),n=this._dateAdapter.getDate(e);return new Date(t,a,n).getTime()}return null},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e.prototype._isRtl=function(){return this._dir&&"rtl"===this._dir.value},e.prototype._setRanges=function(e){e instanceof S?(this._rangeStart=this._getCellCompareValue(e.start),this._rangeEnd=this._getCellCompareValue(e.end),this._isRange=!0):(this._rangeStart=this._rangeEnd=this._getCellCompareValue(e),this._isRange=!1),this._comparisonRangeStart=this._getCellCompareValue(this.comparisonStart),this._comparisonRangeEnd=this._getCellCompareValue(this.comparisonEnd)},e.decorators=[{type:i.Component,args:[{selector:"mat-month-view",template:'<table class="mat-calendar-table" role="presentation">\n <thead class="mat-calendar-table-header">\n <tr>\n <th scope="col" *ngFor="let day of _weekdays" [attr.aria-label]="day.long">{{day.narrow}}</th>\n </tr>\n <tr><th class="mat-calendar-table-header-divider" colspan="7" aria-hidden="true"></th></tr>\n </thead>\n <tbody mat-calendar-body\n [label]="_monthLabel"\n [rows]="_weeks"\n [todayValue]="_todayDate!"\n [startValue]="_rangeStart!"\n [endValue]="_rangeEnd!"\n [comparisonStart]="_comparisonRangeStart"\n [comparisonEnd]="_comparisonRangeEnd"\n [previewStart]="_previewStart"\n [previewEnd]="_previewEnd"\n [isRange]="_isRange"\n [labelMinRequiredCells]="3"\n [activeCell]="_dateAdapter.getDate(activeDate) - 1"\n (selectedValueChange)="_dateSelected($event)"\n (previewChange)="_previewChanged($event)"\n (keydown)="_handleCalendarBodyKeydown($event)">\n </tbody>\n</table>\n',exportAs:"matMonthView",encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[l.MAT_DATE_FORMATS]}]},{type:l.DateAdapter,decorators:[{type:i.Optional}]},{type:u.Directionality,decorators:[{type:i.Optional}]},{type:void 0,decorators:[{type:i.Inject,args:[j]},{type:i.Optional}]}]},e.propDecorators={activeDate:[{type:i.Input}],selected:[{type:i.Input}],minDate:[{type:i.Input}],maxDate:[{type:i.Input}],dateFilter:[{type:i.Input}],dateClass:[{type:i.Input}],comparisonStart:[{type:i.Input}],comparisonEnd:[{type:i.Input}],selectedChange:[{type:i.Output}],_userSelection:[{type:i.Output}],activeDateChange:[{type:i.Output}],_matCalendarBody:[{type:i.ViewChild,args:[C]}]},e}(),z=24,W=function(){function e(e,t,a){if(this._changeDetectorRef=e,this._dateAdapter=t,this._dir=a,this._rerenderSubscription=c.Subscription.EMPTY,this.selectedChange=new i.EventEmitter,this.yearSelected=new i.EventEmitter,this.activeDateChange=new i.EventEmitter,!this._dateAdapter)throw b("DateAdapter");this._activeDate=this._dateAdapter.today()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){var t=this._activeDate,a=this._getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(a,this.minDate,this.maxDate),H(this._dateAdapter,t,this._activeDate,this.minDate,this.maxDate)||this._init()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e instanceof S?e:this._getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedYear(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(h.startWith(null)).subscribe((function(){return e._init()}))},e.prototype.ngOnDestroy=function(){this._rerenderSubscription.unsubscribe()},e.prototype._init=function(){var e=this;this._todayYear=this._dateAdapter.getYear(this._dateAdapter.today());var t=this._dateAdapter.getYear(this._activeDate)-G(this._dateAdapter,this.activeDate,this.minDate,this.maxDate);this._years=[];for(var a=0,n=[];a<z;a++)n.push(t+a),4==n.length&&(this._years.push(n.map((function(t){return e._createCellForYear(t)}))),n=[]);this._changeDetectorRef.markForCheck()},e.prototype._yearSelected=function(e){var t=e.value;this.yearSelected.emit(this._dateAdapter.createDate(t,0,1));var a=this._dateAdapter.getMonth(this.activeDate),n=this._dateAdapter.getNumDaysInMonth(this._dateAdapter.createDate(t,a,1));this.selectedChange.emit(this._dateAdapter.createDate(t,a,Math.min(this._dateAdapter.getDate(this.activeDate),n)))},e.prototype._handleCalendarBodyKeydown=function(e){var t=this._activeDate,a=this._isRtl();switch(e.keyCode){case p.LEFT_ARROW:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,a?1:-1);break;case p.RIGHT_ARROW:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,a?-1:1);break;case p.UP_ARROW:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-4);break;case p.DOWN_ARROW:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,4);break;case p.HOME:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,-G(this._dateAdapter,this.activeDate,this.minDate,this.maxDate));break;case p.END:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,z-G(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)-1);break;case p.PAGE_UP:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10*-z:-z);break;case p.PAGE_DOWN:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10*z:z);break;case p.ENTER:case p.SPACE:this._yearSelected({value:this._dateAdapter.getYear(this._activeDate),event:e});break;default:return}this._dateAdapter.compareDate(t,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),e.preventDefault()},e.prototype._getActiveCell=function(){return G(this._dateAdapter,this.activeDate,this.minDate,this.maxDate)},e.prototype._focusActiveCell=function(){this._matCalendarBody._focusActiveCell()},e.prototype._createCellForYear=function(e){var t=this._dateAdapter.getYearName(this._dateAdapter.createDate(e,0,1));return new D(e,t,t,this._shouldEnableYear(e))},e.prototype._shouldEnableYear=function(e){if(null==e||this.maxDate&&e>this._dateAdapter.getYear(this.maxDate)||this.minDate&&e<this._dateAdapter.getYear(this.minDate))return!1;if(!this.dateFilter)return!0;for(var t=this._dateAdapter.createDate(e,0,1);this._dateAdapter.getYear(t)==e;t=this._dateAdapter.addCalendarDays(t,1))if(this.dateFilter(t))return!0;return!1},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e.prototype._isRtl=function(){return this._dir&&"rtl"===this._dir.value},e.prototype._setSelectedYear=function(e){if(this._selectedYear=null,e instanceof S){var t=e.start||e.end;t&&(this._selectedYear=this._dateAdapter.getYear(t))}else e&&(this._selectedYear=this._dateAdapter.getYear(e))},e.decorators=[{type:i.Component,args:[{selector:"mat-multi-year-view",template:'<table class="mat-calendar-table" role="presentation">\n <thead class="mat-calendar-table-header">\n <tr><th class="mat-calendar-table-header-divider" colspan="4"></th></tr>\n </thead>\n <tbody mat-calendar-body\n [rows]="_years"\n [todayValue]="_todayYear"\n [startValue]="_selectedYear!"\n [endValue]="_selectedYear!"\n [numCols]="4"\n [cellAspectRatio]="4 / 7"\n [activeCell]="_getActiveCell()"\n (selectedValueChange)="_yearSelected($event)"\n (keydown)="_handleCalendarBodyKeydown($event)">\n </tbody>\n</table>\n',exportAs:"matMultiYearView",encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:l.DateAdapter,decorators:[{type:i.Optional}]},{type:u.Directionality,decorators:[{type:i.Optional}]}]},e.propDecorators={activeDate:[{type:i.Input}],selected:[{type:i.Input}],minDate:[{type:i.Input}],maxDate:[{type:i.Input}],dateFilter:[{type:i.Input}],selectedChange:[{type:i.Output}],yearSelected:[{type:i.Output}],activeDateChange:[{type:i.Output}],_matCalendarBody:[{type:i.ViewChild,args:[C]}]},e}(); /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */function H(e,t,a,n,r){var i=e.getYear(t),o=e.getYear(a),s=q(e,n,r);return Math.floor((i-s)/z)===Math.floor((o-s)/z)}function G(e,t,a,n){return function r(e,t){return(e%t+t)%t} /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */(e.getYear(t)-q(e,a,n),z)}function q(e,t,a){var n=0;return a?n=e.getYear(a)-z+1:t&&(n=e.getYear(t)),n}var U=function(){function e(e,t,a,n){if(this._changeDetectorRef=e,this._dateFormats=t,this._dateAdapter=a,this._dir=n,this._rerenderSubscription=c.Subscription.EMPTY,this.selectedChange=new i.EventEmitter,this.monthSelected=new i.EventEmitter,this.activeDateChange=new i.EventEmitter,!this._dateAdapter)throw b("DateAdapter");if(!this._dateFormats)throw b("MAT_DATE_FORMATS");this._activeDate=this._dateAdapter.today()}return Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._activeDate},set:function(e){var t=this._activeDate,a=this._getValidDateOrNull(this._dateAdapter.deserialize(e))||this._dateAdapter.today();this._activeDate=this._dateAdapter.clampDate(a,this.minDate,this.maxDate),this._dateAdapter.getYear(t)!==this._dateAdapter.getYear(this._activeDate)&&this._init()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e instanceof S?e:this._getValidDateOrNull(this._dateAdapter.deserialize(e)),this._setSelectedMonth(e)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){var e=this;this._rerenderSubscription=this._dateAdapter.localeChanges.pipe(h.startWith(null)).subscribe((function(){return e._init()}))},e.prototype.ngOnDestroy=function(){this._rerenderSubscription.unsubscribe()},e.prototype._monthSelected=function(e){var t=e.value,a=this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,1);this.monthSelected.emit(a);var n=this._dateAdapter.getNumDaysInMonth(a);this.selectedChange.emit(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),t,Math.min(this._dateAdapter.getDate(this.activeDate),n)))},e.prototype._handleCalendarBodyKeydown=function(e){var t=this._activeDate,a=this._isRtl();switch(e.keyCode){case p.LEFT_ARROW:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,a?1:-1);break;case p.RIGHT_ARROW:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,a?-1:1);break;case p.UP_ARROW:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-4);break;case p.DOWN_ARROW:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,4);break;case p.HOME:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,-this._dateAdapter.getMonth(this._activeDate));break;case p.END:this.activeDate=this._dateAdapter.addCalendarMonths(this._activeDate,11-this._dateAdapter.getMonth(this._activeDate));break;case p.PAGE_UP:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?-10:-1);break;case p.PAGE_DOWN:this.activeDate=this._dateAdapter.addCalendarYears(this._activeDate,e.altKey?10:1);break;case p.ENTER:case p.SPACE:this._monthSelected({value:this._dateAdapter.getMonth(this._activeDate),event:e});break;default:return}this._dateAdapter.compareDate(t,this.activeDate)&&this.activeDateChange.emit(this.activeDate),this._focusActiveCell(),e.preventDefault()},e.prototype._init=function(){var e=this;this._setSelectedMonth(this.selected),this._todayMonth=this._getMonthInCurrentYear(this._dateAdapter.today()),this._yearLabel=this._dateAdapter.getYearName(this.activeDate);var t=this._dateAdapter.getMonthNames("short");this._months=[[0,1,2,3],[4,5,6,7],[8,9,10,11]].map((function(a){return a.map((function(a){return e._createCellForMonth(a,t[a])}))})),this._changeDetectorRef.markForCheck()},e.prototype._focusActiveCell=function(){this._matCalendarBody._focusActiveCell()},e.prototype._getMonthInCurrentYear=function(e){return e&&this._dateAdapter.getYear(e)==this._dateAdapter.getYear(this.activeDate)?this._dateAdapter.getMonth(e):null},e.prototype._createCellForMonth=function(e,t){var a=this._dateAdapter.format(this._dateAdapter.createDate(this._dateAdapter.getYear(this.activeDate),e,1),this._dateFormats.display.monthYearA11yLabel);return new D(e,t.toLocaleUpperCase(),a,this._shouldEnableMonth(e))},e.prototype._shouldEnableMonth=function(e){var t=this._dateAdapter.getYear(this.activeDate);if(null==e||this._isYearAndMonthAfterMaxDate(t,e)||this._isYearAndMonthBeforeMinDate(t,e))return!1;if(!this.dateFilter)return!0;for(var a=this._dateAdapter.createDate(t,e,1);this._dateAdapter.getMonth(a)==e;a=this._dateAdapter.addCalendarDays(a,1))if(this.dateFilter(a))return!0;return!1},e.prototype._isYearAndMonthAfterMaxDate=function(e,t){if(this.maxDate){var a=this._dateAdapter.getYear(this.maxDate),n=this._dateAdapter.getMonth(this.maxDate);return e>a||e===a&&t>n}return!1},e.prototype._isYearAndMonthBeforeMinDate=function(e,t){if(this.minDate){var a=this._dateAdapter.getYear(this.minDate),n=this._dateAdapter.getMonth(this.minDate);return e<a||e===a&&t<n}return!1},e.prototype._getValidDateOrNull=function(e){return this._dateAdapter.isDateInstance(e)&&this._dateAdapter.isValid(e)?e:null},e.prototype._isRtl=function(){return this._dir&&"rtl"===this._dir.value},e.prototype._setSelectedMonth=function(e){this._selectedMonth=e instanceof S?this._getMonthInCurrentYear(e.start)||this._getMonthInCurrentYear(e.end):this._getMonthInCurrentYear(e)},e.decorators=[{type:i.Component,args:[{selector:"mat-year-view",template:'<table class="mat-calendar-table" role="presentation">\n <thead class="mat-calendar-table-header">\n <tr><th class="mat-calendar-table-header-divider" colspan="4"></th></tr>\n </thead>\n <tbody mat-calendar-body\n [label]="_yearLabel"\n [rows]="_months"\n [todayValue]="_todayMonth!"\n [startValue]="_selectedMonth!"\n [endValue]="_selectedMonth!"\n [labelMinRequiredCells]="2"\n [numCols]="4"\n [cellAspectRatio]="4 / 7"\n [activeCell]="_dateAdapter.getMonth(activeDate)"\n (selectedValueChange)="_monthSelected($event)"\n (keydown)="_handleCalendarBodyKeydown($event)">\n </tbody>\n</table>\n',exportAs:"matYearView",encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:i.ChangeDetectorRef},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[l.MAT_DATE_FORMATS]}]},{type:l.DateAdapter,decorators:[{type:i.Optional}]},{type:u.Directionality,decorators:[{type:i.Optional}]}]},e.propDecorators={activeDate:[{type:i.Input}],selected:[{type:i.Input}],minDate:[{type:i.Input}],maxDate:[{type:i.Input}],dateFilter:[{type:i.Input}],selectedChange:[{type:i.Output}],monthSelected:[{type:i.Output}],activeDateChange:[{type:i.Output}],_matCalendarBody:[{type:i.ViewChild,args:[C]}]},e}(),K=function(){function e(e,t,a,n,r){this._intl=e,this.calendar=t,this._dateAdapter=a,this._dateFormats=n,this.calendar.stateChanges.subscribe((function(){return r.markForCheck()}))}return Object.defineProperty(e.prototype,"periodButtonText",{get:function(){if("month"==this.calendar.currentView)return this._dateAdapter.format(this.calendar.activeDate,this._dateFormats.display.monthYearLabel).toLocaleUpperCase();if("year"==this.calendar.currentView)return this._dateAdapter.getYearName(this.calendar.activeDate);var e=this._dateAdapter.getYear(this.calendar.activeDate)-G(this._dateAdapter,this.calendar.activeDate,this.calendar.minDate,this.calendar.maxDate),t=e+z-1,a=this._dateAdapter.getYearName(this._dateAdapter.createDate(e,0,1)),n=this._dateAdapter.getYearName(this._dateAdapter.createDate(t,0,1));return this._intl.formatYearRange(a,n)},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"periodButtonLabel",{get:function(){return"month"==this.calendar.currentView?this._intl.switchToMultiYearViewLabel:this._intl.switchToMonthViewLabel},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"prevButtonLabel",{get:function(){return{month:this._intl.prevMonthLabel,year:this._intl.prevYearLabel,"multi-year":this._intl.prevMultiYearLabel}[this.calendar.currentView]},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"nextButtonLabel",{get:function(){return{month:this._intl.nextMonthLabel,year:this._intl.nextYearLabel,"multi-year":this._intl.nextMultiYearLabel}[this.calendar.currentView]},enumerable:!1,configurable:!0}),e.prototype.currentPeriodClicked=function(){this.calendar.currentView="month"==this.calendar.currentView?"multi-year":"month"},e.prototype.previousClicked=function(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,-1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?-1:-z)},e.prototype.nextClicked=function(){this.calendar.activeDate="month"==this.calendar.currentView?this._dateAdapter.addCalendarMonths(this.calendar.activeDate,1):this._dateAdapter.addCalendarYears(this.calendar.activeDate,"year"==this.calendar.currentView?1:z)},e.prototype.previousEnabled=function(){return!this.calendar.minDate||!this.calendar.minDate||!this._isSameView(this.calendar.activeDate,this.calendar.minDate)},e.prototype.nextEnabled=function(){return!this.calendar.maxDate||!this._isSameView(this.calendar.activeDate,this.calendar.maxDate)},e.prototype._isSameView=function(e,t){return"month"==this.calendar.currentView?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(t)&&this._dateAdapter.getMonth(e)==this._dateAdapter.getMonth(t):"year"==this.calendar.currentView?this._dateAdapter.getYear(e)==this._dateAdapter.getYear(t):H(this._dateAdapter,e,t,this.calendar.minDate,this.calendar.maxDate)},e.decorators=[{type:i.Component,args:[{selector:"mat-calendar-header",template:'<div class="mat-calendar-header">\n <div class="mat-calendar-controls">\n <button mat-button type="button" class="mat-calendar-period-button"\n (click)="currentPeriodClicked()" [attr.aria-label]="periodButtonLabel"\n cdkAriaLive="polite">\n {{periodButtonText}}\n <div class="mat-calendar-arrow"\n [class.mat-calendar-invert]="calendar.currentView != \'month\'"></div>\n </button>\n\n <div class="mat-calendar-spacer"></div>\n\n <ng-content></ng-content>\n\n <button mat-icon-button type="button" class="mat-calendar-previous-button"\n [disabled]="!previousEnabled()" (click)="previousClicked()"\n [attr.aria-label]="prevButtonLabel">\n </button>\n\n <button mat-icon-button type="button" class="mat-calendar-next-button"\n [disabled]="!nextEnabled()" (click)="nextClicked()"\n [attr.aria-label]="nextButtonLabel">\n </button>\n </div>\n</div>\n',exportAs:"matCalendarHeader",encapsulation:i.ViewEncapsulation.None,changeDetection:i.ChangeDetectionStrategy.OnPush}]}],e.ctorParameters=function(){return[{type:v},{type:$,decorators:[{type:i.Inject,args:[i.forwardRef((function(){return $}))]}]},{type:l.DateAdapter,decorators:[{type:i.Optional}]},{type:void 0,decorators:[{type:i.Optional},{type:i.Inject,args:[l.MAT_DATE_FORMATS]}]},{type:i.ChangeDetectorRef}]},e}(),$=function(){function e(e,t,a,n){var r=this;if(this._dateAdapter=t,this._dateFormats=a,this._changeDetectorRef=n,this._moveFocusOnNextTick=!1,this.startView="month",this.selectedChange=new i.EventEmitter,this.yearSelected=new i.EventEmitter,this.monthSelected=new i.EventEmitter,this._userSelection=new i.EventEmitter,this.stateChanges=new c.Subject,!this._dateAdapter)throw b("DateAdapter");if(!this._dateFormats)throw b("MAT_DATE_FORMATS");this._intlChanges=e.changes.subscribe((function(){n.markForCheck(),r.stateChanges.next()}))}return Object.defineProperty(e.prototype,"startAt",{get:function(){return this._startAt},set:function(e){this._startAt=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"selected",{get:function(){return this._selected},set:function(e){this._selected=e instanceof S?e:this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"minDate",{get:function(){return this._minDate},set:function(e){this._minDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"maxDate",{get:function(){return this._maxDate},set:function(e){this._maxDate=this._getValidDateOrNull(this._dateAdapter.deserialize(e))},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"activeDate",{get:function(){return this._clampedActiveDate},set:function(e){this._clampedActiveDate=this._dateAdapter.clampDate(e,this.minDate,this.maxDate),this.stateChanges.next(),this._changeDetectorRef.markForCheck()},enumerable:!1,configurable:!0}),Object.defineProperty(e.prototype,"currentView",{get:function(){return this._currentView},set:function(e){this._currentView=e,this._moveFocusOnNextTick=!0,this._changeDetectorRef.markForCheck()},enumerable:!1,configurable:!0}),e.prototype.ngAfterContentInit=function(){this._calendarHeaderPortal=new n.ComponentPortal(this.headerComponent||K),this.activeDate=this.startAt||this._dateAdapter.today(),this._currentView=this.startView},e.prototype.ngAfterViewChecked=function(){this._moveFocusOnNextTick&&(this._moveFocusOnNextTick=!1,this.focusActiveCell())},e.prototype.ngOnDestroy=function(){this._intlChanges.unsubscribe(),this.stateChanges.complete()},e.prototype.ngOnChanges=function(e){var t=e.minDate||e.maxDate||e.dateFilter;if(t&&!t.firstChange){var a=this._getCurrentViewComponent();a&&(this._changeDetectorRef.detectChanges(),a._init())}this.stateChanges.next()},e.prototype.focusActiveCell=function(){this._getCurrentViewComponent()._focusActiveCell(!1)},e.prototype.updateTodaysDate=function(){var e=this.currentView;("month"===e?this.monthView:"year"===e?this.yearView:this.multiYearView)._init()},e.prototype._dateSelected=function(e){var t=e.value;(this.selected instanceof