You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

123 lines
12 KiB

/**
* @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
*/
import { ChangeDetectionStrategy, Component, Directive, TemplateRef, ViewChild, ViewContainerRef, ViewEncapsulation } from '@angular/core';
import { TemplatePortal } from '@angular/cdk/portal';
import { MatDatepickerBase } from './datepicker-base';
/** Button that will close the datepicker and assign the current selection to the data model. */
import * as ɵngcc0 from '@angular/core';
import * as ɵngcc1 from './datepicker-base';
function MatDatepickerActions_ng_template_0_Template(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵelementStart(0, "div", 0);
ɵngcc0.ɵɵprojection(1);
ɵngcc0.ɵɵelementEnd();
} }
const _c0 = ["*"];
export class MatDatepickerApply {
constructor(_datepicker) {
this._datepicker = _datepicker;
}
_applySelection() {
this._datepicker._applyPendingSelection();
this._datepicker.close();
}
}
MatDatepickerApply.ɵfac = function MatDatepickerApply_Factory(t) { return new (t || MatDatepickerApply)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.MatDatepickerBase)); };
MatDatepickerApply.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDatepickerApply, selectors: [["", "matDatepickerApply", ""], ["", "matDateRangePickerApply", ""]], hostBindings: function MatDatepickerApply_HostBindings(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵlistener("click", function MatDatepickerApply_click_HostBindingHandler() { return ctx._applySelection(); });
} } });
MatDatepickerApply.ctorParameters = () => [
{ type: MatDatepickerBase }
];
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDatepickerApply, [{
type: Directive,
args: [{
selector: '[matDatepickerApply], [matDateRangePickerApply]',
host: { '(click)': '_applySelection()' }
}]
}], function () { return [{ type: ɵngcc1.MatDatepickerBase }]; }, null); })();
/** Button that will close the datepicker and discard the current selection. */
export class MatDatepickerCancel {
constructor(_datepicker) {
this._datepicker = _datepicker;
}
}
MatDatepickerCancel.ɵfac = function MatDatepickerCancel_Factory(t) { return new (t || MatDatepickerCancel)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.MatDatepickerBase)); };
MatDatepickerCancel.ɵdir = /*@__PURE__*/ ɵngcc0.ɵɵdefineDirective({ type: MatDatepickerCancel, selectors: [["", "matDatepickerCancel", ""], ["", "matDateRangePickerCancel", ""]], hostBindings: function MatDatepickerCancel_HostBindings(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵlistener("click", function MatDatepickerCancel_click_HostBindingHandler() { return ctx._datepicker.close(); });
} } });
MatDatepickerCancel.ctorParameters = () => [
{ type: MatDatepickerBase }
];
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDatepickerCancel, [{
type: Directive,
args: [{
selector: '[matDatepickerCancel], [matDateRangePickerCancel]',
host: { '(click)': '_datepicker.close()' }
}]
}], function () { return [{ type: ɵngcc1.MatDatepickerBase }]; }, null); })();
/**
* Container that can be used to project a row of action buttons
* to the bottom of a datepicker or date range picker.
*/
export class MatDatepickerActions {
constructor(_datepicker, _viewContainerRef) {
this._datepicker = _datepicker;
this._viewContainerRef = _viewContainerRef;
}
ngAfterViewInit() {
this._portal = new TemplatePortal(this._template, this._viewContainerRef);
this._datepicker.registerActions(this._portal);
}
ngOnDestroy() {
var _a;
this._datepicker.removeActions(this._portal);
// Needs to be null checked since we initialize it in `ngAfterViewInit`.
if (this._portal && this._portal.isAttached) {
(_a = this._portal) === null || _a === void 0 ? void 0 : _a.detach();
}
}
}
MatDatepickerActions.ɵfac = function MatDatepickerActions_Factory(t) { return new (t || MatDatepickerActions)(ɵngcc0.ɵɵdirectiveInject(ɵngcc1.MatDatepickerBase), ɵngcc0.ɵɵdirectiveInject(ɵngcc0.ViewContainerRef)); };
MatDatepickerActions.ɵcmp = /*@__PURE__*/ ɵngcc0.ɵɵdefineComponent({ type: MatDatepickerActions, selectors: [["mat-datepicker-actions"], ["mat-date-range-picker-actions"]], viewQuery: function MatDatepickerActions_Query(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵviewQuery(TemplateRef, 5);
} if (rf & 2) {
let _t;
ɵngcc0.ɵɵqueryRefresh(_t = ɵngcc0.ɵɵloadQuery()) && (ctx._template = _t.first);
} }, ngContentSelectors: _c0, decls: 1, vars: 0, consts: [[1, "mat-datepicker-actions"]], template: function MatDatepickerActions_Template(rf, ctx) { if (rf & 1) {
ɵngcc0.ɵɵprojectionDef();
ɵngcc0.ɵɵtemplate(0, MatDatepickerActions_ng_template_0_Template, 2, 0, "ng-template");
} }, styles: [".mat-datepicker-actions{display:flex;justify-content:flex-end;align-items:center;padding:0 8px 8px 8px}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\n"], encapsulation: 2, changeDetection: 0 });
MatDatepickerActions.ctorParameters = () => [
{ type: MatDatepickerBase },
{ type: ViewContainerRef }
];
MatDatepickerActions.propDecorators = {
_template: [{ type: ViewChild, args: [TemplateRef,] }]
};
(function () { (typeof ngDevMode === "undefined" || ngDevMode) && ɵngcc0.ɵsetClassMetadata(MatDatepickerActions, [{
type: Component,
args: [{
selector: 'mat-datepicker-actions, mat-date-range-picker-actions',
template: `
<ng-template>
<div class="mat-datepicker-actions">
<ng-content></ng-content>
</div>
</ng-template>
`,
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
styles: [".mat-datepicker-actions{display:flex;justify-content:flex-end;align-items:center;padding:0 8px 8px 8px}.mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:8px}[dir=rtl] .mat-datepicker-actions .mat-button-base+.mat-button-base{margin-left:0;margin-right:8px}\n"]
}]
}], function () { return [{ type: ɵngcc1.MatDatepickerBase }, { type: ɵngcc0.ViewContainerRef }]; }, { _template: [{
type: ViewChild,
args: [TemplateRef]
}] }); })();
//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci1hY3Rpb25zLmpzIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbWF0ZXJpYWwvZGF0ZXBpY2tlci9kYXRlcGlja2VyLWFjdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQUVILE9BQU8sRUFFTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUNULGdCQUFnQixFQUNoQixpQkFBaUIsRUFDbEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBQ25ELE9BQU8sRUFBQyxpQkFBaUIsRUFBdUIsTUFBTSxtQkFBbUIsQ0FBQztBQUcxRSxnR0FBZ0c7Ozs7Ozs7Ozs7QUFLaEcsTUFBTSxPQUFPLGtCQUFrQjtBQUMvQixJQUFFLFlBQW9CLFdBQXNFO0FBQUksUUFBMUUsZ0JBQVcsR0FBWCxXQUFXLENBQTJEO0FBQUMsSUFBRSxDQUFDO0FBQ2hHLElBQ0UsZUFBZTtBQUNqQixRQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztBQUM5QyxRQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7QUFDN0IsSUFBRSxDQUFDO0FBQ0g7OENBWEMsU0FBUyxTQUFDLGtCQUNULFFBQVEsRUFBRSxpREFBaUQsa0JBQzNEO0dBQUksRUFBRSxFQUFDLFNBQVMsRUFBRSxtQkFBbUIsRUFBQyxjQUN2Qzs7V0FDSTtBQUFDO0FBQ1UsWUFUUixpQkFBaUI7QUFBRzs7Ozs7OztrRkFBRTtBQWtCOUIsK0VBQStFO0FBSy9FLE1BQU0sT0FBTyxtQkFBbUI7QUFDaEMsSUFBRSxZQUFtQixXQUFzRTtBQUFJLFFBQTFFLGdCQUFXLEdBQVgsV0FBVyxDQUEyRDtBQUFDLElBQUUsQ0FBQztBQUMvRjsrQ0FOQyxTQUFTLFNBQUMsa0JBQ1QsUUFBUSxFQUFFLG1EQUFtRCxrQkFDN0Q7R0FBSSxFQUFFLEVBQUMsU0FBUyxFQUFFLHFCQUFxQixFQUFDLGNBQ3pDOztXQUNJO0FBQUM7QUFDVSxZQXhCUixpQkFBaUI7QUFBRzs7Ozs7OztrRkFBRTtBQTRCOUI7QUFDQTtBQUNBO0FBQ0EsR0FBRztBQWNILE1BQU0sT0FBTyxvQkFBb0I7QUFBRyxJQUlsQyxZQUNVLFdBQXNFLEVBQ3RFLGlCQUFtQztBQUFJLFFBRHZDLGdCQUFXLEdBQVgsV0FBVyxDQUEyRDtBQUFDLFFBQ3ZFLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7QUFBQyxJQUFFLENBQUM7QUFDbkQsSUFDRSxlQUFlO0FBQ2pCLFFBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0FBQzlFLFFBQUksSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ25ELElBQUUsQ0FBQztBQUNILElBQ0UsV0FBVztBQUNiO0FBQWdCLFFBQVosSUFBSSxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBQ2pELFFBQ0ksd0VBQXdFO0FBQzVFLFFBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxFQUFFO0FBQ2pELFlBQU0sTUFBQSxJQUFJLENBQUMsT0FBTywwQ0FBRSxNQUFNLEVBQUUsQ0FBQztBQUM3QixTQUFLO0FBQ0wsSUFBRSxDQUFDO0FBQ0g7Z0RBbENDLFNBQVMsU0FBQyxrQkFDVCxRQUFRLEVBQUUsdURBQXVELGtCQUVqRSxRQUFRLEVBQUU7NEZBTVQsa0JBQ0QsZUFBZSxFQUFFLHVCQUF1QixDQUFDLE1BQU0sa0JBQy9DLGFBQWEsRUFBRSxpQkFBaUIsQ0FBQyxJQUFJOzs7Ozt5SEFDdEM7OztxVkFDSTtBQUFDO0FBQThDLFlBN0M1QyxpQkFBaUI7QUFBSSxZQUozQixnQkFBZ0I7QUFDakI7QUFBRztBQUVKLHdCQStDRyxTQUFTLFNBQUMsV0FBVztBQUFNOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O29CQUFFO0FBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBsaWNlbnNlXG4gKiBDb3B5cmlnaHQgR29vZ2xlIExMQyBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqIFVzZSBvZiB0aGlzIHNvdXJjZSBjb2RlIGlzIGdvdmVybmVkIGJ5IGFuIE1JVC1zdHlsZSBsaWNlbnNlIHRoYXQgY2FuIGJlXG4gKiBmb3VuZCBpbiB0aGUgTElDRU5TRSBmaWxlIGF0IGh0dHBzOi8vYW5ndWxhci5pby9saWNlbnNlXG4gKi9cblxuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRGlyZWN0aXZlLFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtUZW1wbGF0ZVBvcnRhbH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XG5pbXBvcnQge01hdERhdGVwaWNrZXJCYXNlLCBNYXREYXRlcGlja2VyQ29udHJvbH0gZnJvbSAnLi9kYXRlcGlja2VyLWJhc2UnO1xuXG5cbi8qKiBCdXR0b24gdGhhdCB3aWxsIGNsb3NlIHRoZSBkYXRlcGlja2VyIGFuZCBhc3NpZ24gdGhlIGN1cnJlbnQgc2VsZWN0aW9uIHRvIHRoZSBkYXRhIG1vZGVsLiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW21hdERhdGVwaWNrZXJBcHBseV0sIFttYXREYXRlUmFuZ2VQaWNrZXJBcHBseV0nLFxuICBob3N0OiB7JyhjbGljayknOiAnX2FwcGx5U2VsZWN0aW9uKCknfVxufSlcbmV4cG9ydCBjbGFzcyBNYXREYXRlcGlja2VyQXBwbHkge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9kYXRlcGlja2VyOiBNYXREYXRlcGlja2VyQmFzZTxNYXREYXRlcGlja2VyQ29udHJvbDx1bmtub3duPiwgdW5rbm93bj4pIHt9XG5cbiAgX2FwcGx5U2VsZWN0aW9uKCkge1xuICAgIHRoaXMuX2RhdGVwaWNrZXIuX2FwcGx5UGVuZGluZ1NlbGVjdGlvbigpO1xuICAgIHRoaXMuX2RhdGVwaWNrZXIuY2xvc2UoKTtcbiAgfVxufVxuXG5cbi8qKiBCdXR0b24gdGhhdCB3aWxsIGNsb3NlIHRoZSBkYXRlcGlja2VyIGFuZCBkaXNjYXJkIHRoZSBjdXJyZW50IHNlbGVjdGlvbi4gKi9cbkBEaXJlY3RpdmUoe1xuICBzZWxlY3RvcjogJ1ttYXREYXRlcGlja2VyQ2FuY2VsXSwgW21hdERhdGVSYW5nZVBpY2tlckNhbmNlbF0nLFxuICBob3N0OiB7JyhjbGljayknOiAnX2RhdGVwaWNrZXIuY2xvc2UoKSd9XG59KVxuZXhwb3J0IGNsYXNzIE1hdERhdGVwaWNrZXJDYW5jZWwge1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgX2RhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXJCYXNlPE1hdERhdGVwaWNrZXJDb250cm9sPHVua25vd24+LCB1bmtub3duPikge31cbn1cblxuXG4vKipcbiAqIENvbnRhaW5lciB0aGF0IGNhbiBiZSB1c2VkIHRvIHByb2plY3QgYSByb3cgb2YgYWN0aW9uIGJ1dHRvbnNcbiAqIHRvIHRoZSBib3R0b20gb2YgYSBkYXRlcGlja2VyIG9yIGRhdGUgcmFuZ2UgcGlja2VyLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtYXQtZGF0ZXBpY2tlci1hY3Rpb25zLCBtYXQtZGF0ZS1yYW5nZS1waWNrZXItYWN0aW9ucycsXG4gIHN0eWxlVXJsczogWydkYXRlcGlja2VyLWFjdGlvbnMuY3NzJ10sXG4gIHRlbXBsYXRlOiBgXG4gICAgPG5nLXRlbXBsYXRlPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hdC1kYXRlcGlja2VyLWFjdGlvbnNcIj5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgYCxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmVcbn0pXG5leHBvcnQgY2xhc3MgTWF0RGF0ZXBpY2tlckFjdGlvbnMgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBAVmlld0NoaWxkKFRlbXBsYXRlUmVmKSBfdGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuICBwcml2YXRlIF9wb3J0YWw6IFRlbXBsYXRlUG9ydGFsO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgX2RhdGVwaWNrZXI6IE1hdERhdGVwaWNrZXJCYXNlPE1hdERhdGVwaWNrZXJDb250cm9sPHVua25vd24+LCB1bmtub3duPixcbiAgICBwcml2YXRlIF92aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmKSB7fVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICB0aGlzLl9wb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwodGhpcy5fdGVtcGxhdGUsIHRoaXMuX3ZpZXdDb250YWluZXJSZWYpO1xuICAgIHRoaXMuX2RhdGVwaWNrZXIucmVnaXN0ZXJBY3Rpb25zKHRoaXMuX3BvcnRhbCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9kYXRlcGlja2VyLnJlbW92ZUFjdGlvbnModGhpcy5fcG9ydGFsKTtcblxuICAgIC8vIE5lZWRzIHRvIGJlIG51bGwgY2hlY2tlZCBzaW5jZSB3ZSBpbml0aWFsaXplIGl0IGluIGBuZ0FmdGVyVmlld0luaXRgLlxuICAgIGlmICh0aGlzLl9wb3J0YWwgJiYgdGhpcy5fcG9ydGFsLmlzQXR0YWNoZWQpIHtcbiAgICAgIHRoaXMuX3BvcnRhbD8uZGV0YWNoKCk7XG4gICAgfVxuICB9XG59XG4iXX0=