@ng-matero/extensions 13.2.1 → 14.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -0
- package/alert/alert.component.d.ts +2 -2
- package/alert/{mtxAlert.d.ts → index.d.ts} +0 -0
- package/button/button-loading.directive.d.ts +1 -1
- package/button/{mtxButton.d.ts → index.d.ts} +0 -0
- package/checkbox-group/checkbox-group.component.d.ts +1 -1
- package/checkbox-group/{mtxCheckboxGroup.d.ts → index.d.ts} +0 -0
- package/colorpicker/colorpicker-input.d.ts +1 -1
- package/colorpicker/colorpicker-toggle.d.ts +2 -2
- package/colorpicker/colorpicker.d.ts +5 -3
- package/colorpicker/{mtxColorpicker.d.ts → index.d.ts} +0 -0
- package/column-resize/column-resize-directives/column-resize-flex.d.ts +1 -1
- package/column-resize/column-resize-directives/column-resize.d.ts +1 -1
- package/column-resize/column-resize.d.ts +1 -1
- package/column-resize/{mtxColumnResize.d.ts → index.d.ts} +0 -0
- package/column-resize/overlay-handle.d.ts +1 -1
- package/column-resize/resizable.d.ts +1 -1
- package/core/{mtxCore.d.ts → index.d.ts} +0 -0
- package/core/pipes/to-observable.pipe.d.ts +1 -1
- package/core/style/_vendor-prefixes.scss +1 -1
- package/datetimepicker/_datetimepicker-theme.scss +1 -1
- package/datetimepicker/calendar-body.d.ts +1 -1
- package/datetimepicker/calendar.d.ts +6 -2
- package/datetimepicker/clock.d.ts +4 -1
- package/datetimepicker/datetimepicker-input.d.ts +1 -1
- package/datetimepicker/datetimepicker-toggle.d.ts +2 -2
- package/datetimepicker/datetimepicker-types.d.ts +1 -0
- package/datetimepicker/datetimepicker.d.ts +10 -6
- package/datetimepicker/{mtxDatetimepicker.d.ts → index.d.ts} +0 -0
- package/datetimepicker/month-view.d.ts +1 -1
- package/datetimepicker/multi-year-view.d.ts +1 -1
- package/datetimepicker/year-view.d.ts +1 -1
- package/dialog/dialog.component.d.ts +1 -1
- package/dialog/{mtxDialog.d.ts → index.d.ts} +0 -0
- package/drawer/drawer-config.d.ts +12 -4
- package/drawer/drawer-container.d.ts +12 -4
- package/drawer/{mtxDrawer.d.ts → index.d.ts} +0 -0
- package/esm2020/alert/alert.component.mjs +6 -6
- package/esm2020/alert/alert.module.mjs +5 -5
- package/esm2020/button/button-loading.directive.mjs +4 -4
- package/esm2020/button/button.module.mjs +5 -5
- package/esm2020/checkbox-group/checkbox-group.component.mjs +7 -7
- package/esm2020/checkbox-group/checkbox-group.module.mjs +5 -5
- package/esm2020/colorpicker/colorpicker-input.mjs +3 -3
- package/esm2020/colorpicker/colorpicker-module.mjs +10 -12
- package/esm2020/colorpicker/colorpicker-toggle.mjs +8 -8
- package/esm2020/colorpicker/colorpicker.mjs +12 -10
- package/esm2020/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
- package/esm2020/column-resize/column-resize-directives/column-resize.mjs +3 -3
- package/esm2020/column-resize/column-resize-module.mjs +4 -4
- package/esm2020/column-resize/column-resize-notifier.mjs +6 -6
- package/esm2020/column-resize/column-resize.mjs +3 -3
- package/esm2020/column-resize/column-size-store.mjs +3 -3
- package/esm2020/column-resize/event-dispatcher.mjs +3 -3
- package/esm2020/column-resize/overlay-handle.mjs +3 -3
- package/esm2020/column-resize/resizable.mjs +3 -3
- package/esm2020/column-resize/resize-strategy.mjs +9 -9
- package/esm2020/core/datetime/datetime.module.mjs +10 -10
- package/esm2020/core/datetime/native-datetime-adapter.mjs +3 -3
- package/esm2020/core/pipes/pipes.module.mjs +5 -5
- package/esm2020/core/pipes/to-observable.pipe.mjs +3 -3
- package/esm2020/datetimepicker/calendar-body.mjs +3 -3
- package/esm2020/datetimepicker/calendar.mjs +14 -11
- package/esm2020/datetimepicker/clock.mjs +6 -4
- package/esm2020/datetimepicker/datetimepicker-input.mjs +3 -3
- package/esm2020/datetimepicker/datetimepicker-module.mjs +5 -5
- package/esm2020/datetimepicker/datetimepicker-toggle.mjs +8 -8
- package/esm2020/datetimepicker/datetimepicker-types.mjs +1 -1
- package/esm2020/datetimepicker/datetimepicker.mjs +14 -11
- package/esm2020/datetimepicker/month-view.mjs +6 -6
- package/esm2020/datetimepicker/multi-year-view.mjs +4 -4
- package/esm2020/datetimepicker/year-view.mjs +4 -4
- package/esm2020/dialog/dialog.component.mjs +6 -6
- package/esm2020/dialog/dialog.mjs +3 -3
- package/esm2020/dialog/dialog.module.mjs +5 -5
- package/esm2020/drawer/drawer-config.mjs +1 -5
- package/esm2020/drawer/drawer-container.mjs +22 -12
- package/esm2020/drawer/drawer-module.mjs +5 -5
- package/esm2020/drawer/drawer.mjs +3 -3
- package/esm2020/form-group/form-group.component.mjs +5 -5
- package/esm2020/form-group/form-group.module.mjs +5 -5
- package/esm2020/grid/cell.component.mjs +61 -39
- package/esm2020/grid/column-menu.component.mjs +10 -10
- package/esm2020/grid/column-resize/column-resize-directives/column-resize-flex.mjs +3 -3
- package/esm2020/grid/column-resize/column-resize-directives/column-resize.mjs +3 -3
- package/esm2020/grid/column-resize/column-resize-module.mjs +8 -8
- package/esm2020/grid/column-resize/overlay-handle.mjs +3 -3
- package/esm2020/grid/column-resize/resizable-directives/resizable.mjs +3 -3
- package/esm2020/grid/column-resize/resize-strategy.mjs +3 -3
- package/esm2020/grid/expansion-toggle.directive.mjs +3 -3
- package/esm2020/grid/grid.component.mjs +28 -23
- package/esm2020/grid/grid.interface.mjs +1 -1
- package/esm2020/grid/grid.module.mjs +22 -24
- package/esm2020/grid/grid.service.mjs +3 -3
- package/esm2020/loader/loader.component.mjs +6 -6
- package/esm2020/loader/loader.module.mjs +5 -5
- package/esm2020/popover/popover-module.mjs +5 -5
- package/esm2020/popover/popover-target.mjs +3 -3
- package/esm2020/popover/popover-trigger.mjs +3 -3
- package/esm2020/popover/popover.mjs +4 -4
- package/esm2020/progress/progress.component.mjs +3 -3
- package/esm2020/progress/progress.module.mjs +5 -5
- package/esm2020/select/option.component.mjs +3 -3
- package/esm2020/select/select.component.mjs +5 -5
- package/esm2020/select/select.module.mjs +5 -5
- package/esm2020/select/templates.directive.mjs +33 -33
- package/esm2020/slider/slider-module.mjs +5 -5
- package/esm2020/slider/slider.mjs +4 -4
- package/esm2020/split/split-pane.directive.mjs +3 -3
- package/esm2020/split/split.component.mjs +3 -3
- package/esm2020/split/split.module.mjs +5 -5
- package/esm2020/text3d/text3d.component.mjs +3 -3
- package/esm2020/text3d/text3d.module.mjs +5 -5
- package/esm2020/tooltip/tooltip-module.mjs +5 -5
- package/esm2020/tooltip/tooltip.mjs +7 -7
- package/fesm2015/mtxAlert.mjs +9 -9
- package/fesm2015/mtxAlert.mjs.map +1 -1
- package/fesm2015/mtxButton.mjs +7 -7
- package/fesm2015/mtxButton.mjs.map +1 -1
- package/fesm2015/mtxCheckboxGroup.mjs +11 -11
- package/fesm2015/mtxCheckboxGroup.mjs.map +1 -1
- package/fesm2015/mtxColorpicker.mjs +30 -30
- package/fesm2015/mtxColorpicker.mjs.map +1 -1
- package/fesm2015/mtxColumnResize.mjs +40 -40
- package/fesm2015/mtxColumnResize.mjs.map +1 -1
- package/fesm2015/mtxCore.mjs +19 -19
- package/fesm2015/mtxCore.mjs.map +1 -1
- package/fesm2015/mtxDatetimepicker.mjs +405 -397
- package/fesm2015/mtxDatetimepicker.mjs.map +1 -1
- package/fesm2015/mtxDialog.mjs +13 -13
- package/fesm2015/mtxDialog.mjs.map +1 -1
- package/fesm2015/mtxDrawer.mjs +28 -22
- package/fesm2015/mtxDrawer.mjs.map +1 -1
- package/fesm2015/mtxFormGroup.mjs +8 -8
- package/fesm2015/mtxFormGroup.mjs.map +1 -1
- package/fesm2015/mtxGrid.mjs +377 -351
- package/fesm2015/mtxGrid.mjs.map +1 -1
- package/fesm2015/mtxLoader.mjs +10 -10
- package/fesm2015/mtxLoader.mjs.map +1 -1
- package/fesm2015/mtxPopover.mjs +13 -13
- package/fesm2015/mtxPopover.mjs.map +1 -1
- package/fesm2015/mtxProgress.mjs +7 -7
- package/fesm2015/mtxProgress.mjs.map +1 -1
- package/fesm2015/mtxSelect.mjs +45 -45
- package/fesm2015/mtxSelect.mjs.map +1 -1
- package/fesm2015/mtxSlider.mjs +8 -8
- package/fesm2015/mtxSlider.mjs.map +1 -1
- package/fesm2015/mtxSplit.mjs +10 -10
- package/fesm2015/mtxSplit.mjs.map +1 -1
- package/fesm2015/mtxText3d.mjs +7 -7
- package/fesm2015/mtxText3d.mjs.map +1 -1
- package/fesm2015/mtxTooltip.mjs +10 -10
- package/fesm2015/mtxTooltip.mjs.map +1 -1
- package/fesm2015/ng-matero-extensions.mjs.map +1 -1
- package/fesm2020/mtxAlert.mjs +9 -9
- package/fesm2020/mtxAlert.mjs.map +1 -1
- package/fesm2020/mtxButton.mjs +7 -7
- package/fesm2020/mtxButton.mjs.map +1 -1
- package/fesm2020/mtxCheckboxGroup.mjs +11 -11
- package/fesm2020/mtxCheckboxGroup.mjs.map +1 -1
- package/fesm2020/mtxColorpicker.mjs +30 -30
- package/fesm2020/mtxColorpicker.mjs.map +1 -1
- package/fesm2020/mtxColumnResize.mjs +40 -40
- package/fesm2020/mtxColumnResize.mjs.map +1 -1
- package/fesm2020/mtxCore.mjs +19 -19
- package/fesm2020/mtxCore.mjs.map +1 -1
- package/fesm2020/mtxDatetimepicker.mjs +414 -406
- package/fesm2020/mtxDatetimepicker.mjs.map +1 -1
- package/fesm2020/mtxDialog.mjs +13 -13
- package/fesm2020/mtxDialog.mjs.map +1 -1
- package/fesm2020/mtxDrawer.mjs +28 -22
- package/fesm2020/mtxDrawer.mjs.map +1 -1
- package/fesm2020/mtxFormGroup.mjs +8 -8
- package/fesm2020/mtxFormGroup.mjs.map +1 -1
- package/fesm2020/mtxGrid.mjs +376 -351
- package/fesm2020/mtxGrid.mjs.map +1 -1
- package/fesm2020/mtxLoader.mjs +10 -10
- package/fesm2020/mtxLoader.mjs.map +1 -1
- package/fesm2020/mtxPopover.mjs +13 -13
- package/fesm2020/mtxPopover.mjs.map +1 -1
- package/fesm2020/mtxProgress.mjs +7 -7
- package/fesm2020/mtxProgress.mjs.map +1 -1
- package/fesm2020/mtxSelect.mjs +45 -45
- package/fesm2020/mtxSelect.mjs.map +1 -1
- package/fesm2020/mtxSlider.mjs +8 -8
- package/fesm2020/mtxSlider.mjs.map +1 -1
- package/fesm2020/mtxSplit.mjs +10 -10
- package/fesm2020/mtxSplit.mjs.map +1 -1
- package/fesm2020/mtxText3d.mjs +7 -7
- package/fesm2020/mtxText3d.mjs.map +1 -1
- package/fesm2020/mtxTooltip.mjs +10 -10
- package/fesm2020/mtxTooltip.mjs.map +1 -1
- package/fesm2020/ng-matero-extensions.mjs.map +1 -1
- package/form-group/form-group.component.d.ts +1 -1
- package/form-group/{mtxFormGroup.d.ts → index.d.ts} +0 -0
- package/grid/cell.component.d.ts +10 -11
- package/grid/column-menu.component.d.ts +1 -1
- package/grid/column-resize/column-resize-directives/column-resize-flex.d.ts +1 -1
- package/grid/column-resize/column-resize-directives/column-resize.d.ts +1 -1
- package/grid/column-resize/overlay-handle.d.ts +1 -1
- package/grid/column-resize/resizable-directives/resizable.d.ts +1 -1
- package/grid/expansion-toggle.directive.d.ts +1 -1
- package/grid/grid.component.d.ts +8 -6
- package/grid/grid.interface.d.ts +24 -12
- package/grid/{mtxGrid.d.ts → index.d.ts} +0 -0
- package/{ng-matero-extensions.d.ts → index.d.ts} +0 -0
- package/loader/{mtxLoader.d.ts → index.d.ts} +0 -0
- package/loader/loader.component.d.ts +1 -1
- package/package.json +29 -29
- package/popover/{mtxPopover.d.ts → index.d.ts} +0 -0
- package/popover/popover-target.d.ts +1 -1
- package/popover/popover-trigger.d.ts +1 -1
- package/popover/popover.d.ts +1 -1
- package/progress/{mtxProgress.d.ts → index.d.ts} +0 -0
- package/progress/progress.component.d.ts +1 -1
- package/select/{mtxSelect.d.ts → index.d.ts} +0 -0
- package/select/option.component.d.ts +1 -1
- package/select/select.component.d.ts +1 -1
- package/select/templates.directive.d.ts +11 -11
- package/slider/_slider-theme.scss +1 -1
- package/slider/{mtxSlider.d.ts → index.d.ts} +0 -0
- package/slider/slider.d.ts +1 -1
- package/slider/slider.scss +1 -1
- package/split/{mtxSplit.d.ts → index.d.ts} +0 -0
- package/split/split-pane.directive.d.ts +1 -1
- package/split/split.component.d.ts +1 -1
- package/text3d/{mtxText3d.d.ts → index.d.ts} +0 -0
- package/text3d/text3d.component.d.ts +1 -1
- package/tooltip/{mtxTooltip.d.ts → index.d.ts} +0 -0
- package/tooltip/tooltip.d.ts +2 -2
- package/alert/package.json +0 -10
- package/button/package.json +0 -10
- package/checkbox-group/package.json +0 -10
- package/colorpicker/package.json +0 -10
- package/column-resize/package.json +0 -10
- package/core/package.json +0 -10
- package/datetimepicker/package.json +0 -10
- package/dialog/package.json +0 -10
- package/drawer/package.json +0 -10
- package/form-group/package.json +0 -10
- package/grid/package.json +0 -10
- package/loader/package.json +0 -10
- package/popover/package.json +0 -10
- package/progress/package.json +0 -10
- package/select/package.json +0 -10
- package/slider/package.json +0 -10
- package/split/package.json +0 -10
- package/text3d/package.json +0 -10
- package/tooltip/package.json +0 -10
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import * as i2 from '@angular/cdk/a11y';
|
|
1
|
+
import * as i2$1 from '@angular/cdk/a11y';
|
|
2
2
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
3
|
-
import * as i4 from '@angular/cdk/overlay';
|
|
3
|
+
import * as i4$1 from '@angular/cdk/overlay';
|
|
4
4
|
import { Overlay, OverlayConfig, OverlayModule } from '@angular/cdk/overlay';
|
|
5
5
|
import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
|
|
6
|
-
import * as
|
|
6
|
+
import * as i2 from '@angular/common';
|
|
7
7
|
import { CommonModule } from '@angular/common';
|
|
8
8
|
import * as i0 from '@angular/core';
|
|
9
9
|
import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, Optional, Inject, InjectionToken, ViewChild, forwardRef, Directive, ContentChild, NgModule } from '@angular/core';
|
|
10
|
-
import * as
|
|
10
|
+
import * as i4 from '@angular/material/button';
|
|
11
11
|
import { MatButtonModule } from '@angular/material/button';
|
|
12
12
|
import { ENTER, PAGE_DOWN, PAGE_UP, END, HOME, DOWN_ARROW, UP_ARROW, RIGHT_ARROW, LEFT_ARROW, ESCAPE, hasModifierKey } from '@angular/cdk/keycodes';
|
|
13
13
|
import { coerceBooleanProperty, coerceStringArray } from '@angular/cdk/coercion';
|
|
@@ -22,7 +22,7 @@ import { Subject, Subscription, merge, of } from 'rxjs';
|
|
|
22
22
|
import * as i6 from '@angular/cdk/bidi';
|
|
23
23
|
import { NG_VALUE_ACCESSOR, NG_VALIDATORS, Validators } from '@angular/forms';
|
|
24
24
|
import { MAT_INPUT_VALUE_ACCESSOR } from '@angular/material/input';
|
|
25
|
-
import * as i2$
|
|
25
|
+
import * as i2$2 from '@angular/material/form-field';
|
|
26
26
|
|
|
27
27
|
/**
|
|
28
28
|
* Animations used by the Material datepicker.
|
|
@@ -129,9 +129,9 @@ class MtxCalendarBody {
|
|
|
129
129
|
return cellNumber === this.activeCell;
|
|
130
130
|
}
|
|
131
131
|
}
|
|
132
|
-
/** @nocollapse */ MtxCalendarBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
133
|
-
/** @nocollapse */ MtxCalendarBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
134
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
132
|
+
/** @nocollapse */ MtxCalendarBody.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCalendarBody, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
133
|
+
/** @nocollapse */ MtxCalendarBody.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxCalendarBody, selector: "[mtx-calendar-body]", inputs: { label: "label", rows: "rows", todayValue: "todayValue", selectedValue: "selectedValue", labelMinRequiredCells: "labelMinRequiredCells", numCols: "numCols", allowDisabledSelection: "allowDisabledSelection", activeCell: "activeCell" }, outputs: { selectedValueChange: "selectedValueChange" }, host: { classAttribute: "mtx-calendar-body" }, exportAs: ["mtxCalendarBody"], ngImport: i0, template: "<!--\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-->\n<tr *ngIf=\"_firstRowOffset < labelMinRequiredCells\" aria-hidden=\"true\">\n <td [attr.colspan]=\"numCols\" class=\"mtx-calendar-body-label\">{{ label }}</td>\n</tr>\n\n<!-- Create the first row separately so we can include a special spacer cell. -->\n<tr *ngFor=\"let row of rows; let rowIndex = index\" role=\"row\">\n <!--\n We mark this cell as aria-hidden so it doesn't get read out as one of the days in the week.\n -->\n <td *ngIf=\"rowIndex === 0 && _firstRowOffset\"\n [attr.colspan]=\"_firstRowOffset\"\n aria-hidden=\"true\"\n class=\"mtx-calendar-body-label\">\n {{ _firstRowOffset >= labelMinRequiredCells ? label : '' }}\n </td>\n <td *ngFor=\"let item of row; let colIndex = index\"\n role=\"gridcell\"\n class=\"mtx-calendar-body-cell\"\n [tabindex]=\"_isActiveCell(rowIndex, colIndex) ? 0 : -1\"\n [attr.data-mat-row]=\"rowIndex\"\n [attr.data-mat-col]=\"colIndex\"\n [attr.aria-label]=\"item.ariaLabel\"\n [attr.aria-disabled]=\"!item.enabled || null\"\n [class.mtx-calendar-body-active]=\"_isActiveCell(rowIndex, colIndex)\"\n [class.mtx-calendar-body-disabled]=\"!item.enabled\"\n (click)=\"_cellClicked(item)\">\n <div [attr.aria-selected]=\"selectedValue === item.value\"\n [class.mtx-calendar-body-selected]=\"selectedValue === item.value\"\n [class.mtx-calendar-body-today]=\"todayValue === item.value\"\n class=\"mtx-calendar-body-cell-content\">\n {{ item.displayValue }}\n </div>\n </td>\n</tr>\n", styles: [".mtx-calendar-body{min-width:224px}.mtx-calendar-body-label{height:0;line-height:0;text-align:left;padding:7.1428571429% 4.7142857143%}[dir=rtl] .mtx-calendar-body-label{text-align:right}.mtx-calendar-body-cell{position:relative;width:14.2857142857%;height:0;line-height:0;padding:7.1428571429% 0;text-align:center;outline:none;cursor:pointer}.mtx-calendar-body-disabled{cursor:default;pointer-events:none}.mtx-calendar-body-cell-content{position:absolute;top:5%;left:5%;display:flex;align-items:center;justify-content:center;box-sizing:border-box;width:90%;height:90%;border:1px solid transparent;border-radius:999px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
134
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCalendarBody, decorators: [{
|
|
135
135
|
type: Component,
|
|
136
136
|
args: [{ selector: '[mtx-calendar-body]', host: {
|
|
137
137
|
class: 'mtx-calendar-body',
|
|
@@ -297,9 +297,9 @@ class MtxMultiYearView {
|
|
|
297
297
|
return this._adapter.isDateInstance(obj) && this._adapter.isValid(obj) ? obj : null;
|
|
298
298
|
}
|
|
299
299
|
}
|
|
300
|
-
/** @nocollapse */ MtxMultiYearView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
301
|
-
/** @nocollapse */ MtxMultiYearView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
302
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
300
|
+
/** @nocollapse */ MtxMultiYearView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxMultiYearView, deps: [{ token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
301
|
+
/** @nocollapse */ MtxMultiYearView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxMultiYearView, selector: "mtx-multi-year-view", inputs: { type: "type", dateFilter: "dateFilter", activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectedChange: "selectedChange", _userSelection: "_userSelection" }, exportAs: ["mtxMultiYearView"], ngImport: i0, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [todayValue]=\"_todayYear\"\n [rows]=\"_years\"\n [numCols]=\"4\"\n [activeCell]=\"_getActiveCell()\"\n [allowDisabledSelection]=\"true\"\n [selectedValue]=\"_selectedYear!\"\n (selectedValueChange)=\"_yearSelected($event)\"></tbody>\n</table>\n", dependencies: [{ kind: "component", type: MtxCalendarBody, selector: "[mtx-calendar-body]", inputs: ["label", "rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "allowDisabledSelection", "activeCell"], outputs: ["selectedValueChange"], exportAs: ["mtxCalendarBody"] }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
302
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxMultiYearView, decorators: [{
|
|
303
303
|
type: Component,
|
|
304
304
|
args: [{ selector: 'mtx-multi-year-view', exportAs: 'mtxMultiYearView', animations: [mtxDatetimepickerAnimations.slideCalendar], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [todayValue]=\"_todayYear\"\n [rows]=\"_years\"\n [numCols]=\"4\"\n [activeCell]=\"_getActiveCell()\"\n [allowDisabledSelection]=\"true\"\n [selectedValue]=\"_selectedYear!\"\n (selectedValueChange)=\"_yearSelected($event)\"></tbody>\n</table>\n" }]
|
|
305
305
|
}], ctorParameters: function () {
|
|
@@ -364,55 +364,52 @@ function euclideanModulo(a, b) {
|
|
|
364
364
|
return ((a % b) + b) % b;
|
|
365
365
|
}
|
|
366
366
|
|
|
367
|
-
const
|
|
367
|
+
const CLOCK_RADIUS = 50;
|
|
368
|
+
const CLOCK_INNER_RADIUS = 27.5;
|
|
369
|
+
const CLOCK_OUTER_RADIUS = 41.25;
|
|
370
|
+
const CLOCK_TICK_RADIUS = 7.0833;
|
|
368
371
|
/**
|
|
369
|
-
*
|
|
372
|
+
* A clock that is used as part of the datetimepicker.
|
|
370
373
|
* @docs-private
|
|
371
374
|
*/
|
|
372
|
-
class
|
|
373
|
-
constructor(
|
|
375
|
+
class MtxClock {
|
|
376
|
+
constructor(_element, _adapter) {
|
|
377
|
+
this._element = _element;
|
|
374
378
|
this._adapter = _adapter;
|
|
375
|
-
|
|
376
|
-
this.
|
|
377
|
-
/**
|
|
379
|
+
/** Step over minutes. */
|
|
380
|
+
this.interval = 1;
|
|
381
|
+
/** Whether the clock uses 12 hour format. */
|
|
382
|
+
this.twelvehour = false;
|
|
383
|
+
/** Emits when the currently selected date changes. */
|
|
378
384
|
this.selectedChange = new EventEmitter();
|
|
385
|
+
/** Emits when any date is activated. */
|
|
386
|
+
this.activeDateChange = new EventEmitter();
|
|
379
387
|
/** Emits when any date is selected. */
|
|
380
388
|
this._userSelection = new EventEmitter();
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
386
|
-
|
|
387
|
-
|
|
388
|
-
|
|
389
|
-
|
|
390
|
-
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
});
|
|
394
|
-
this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek));
|
|
395
|
-
this._activeDate = this._adapter.today();
|
|
389
|
+
/** Hours and Minutes representing the clock view. */
|
|
390
|
+
this._hours = [];
|
|
391
|
+
this._minutes = [];
|
|
392
|
+
/** Whether the clock is in hour view. */
|
|
393
|
+
this._hourView = true;
|
|
394
|
+
this._timeChanged = false;
|
|
395
|
+
this.mouseMoveListener = (event) => {
|
|
396
|
+
this._handleMousemove(event);
|
|
397
|
+
};
|
|
398
|
+
this.mouseUpListener = () => {
|
|
399
|
+
this._handleMouseup();
|
|
400
|
+
};
|
|
396
401
|
}
|
|
397
402
|
/**
|
|
398
|
-
* The date to display in this
|
|
403
|
+
* The date to display in this clock view.
|
|
399
404
|
*/
|
|
400
405
|
get activeDate() {
|
|
401
406
|
return this._activeDate;
|
|
402
407
|
}
|
|
403
408
|
set activeDate(value) {
|
|
404
409
|
const oldActiveDate = this._activeDate;
|
|
405
|
-
this._activeDate = value
|
|
406
|
-
if (oldActiveDate
|
|
407
|
-
this._activeDate &&
|
|
408
|
-
!this._adapter.sameMonthAndYear(oldActiveDate, this._activeDate)) {
|
|
410
|
+
this._activeDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
|
|
411
|
+
if (!this._adapter.sameMinute(oldActiveDate, this._activeDate)) {
|
|
409
412
|
this._init();
|
|
410
|
-
if (this._adapter.isInNextMonth(oldActiveDate, this._activeDate)) {
|
|
411
|
-
this.calendarState('right');
|
|
412
|
-
}
|
|
413
|
-
else {
|
|
414
|
-
this.calendarState('left');
|
|
415
|
-
}
|
|
416
413
|
}
|
|
417
414
|
}
|
|
418
415
|
/** The currently selected date. */
|
|
@@ -420,344 +417,76 @@ class MtxMonthView {
|
|
|
420
417
|
return this._selected;
|
|
421
418
|
}
|
|
422
419
|
set selected(value) {
|
|
423
|
-
this._selected = value;
|
|
424
|
-
|
|
425
|
-
|
|
426
|
-
ngAfterContentInit() {
|
|
427
|
-
this._init();
|
|
428
|
-
}
|
|
429
|
-
/** Handles when a new date is selected. */
|
|
430
|
-
_dateSelected(date) {
|
|
431
|
-
this.selectedChange.emit(this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), date, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)));
|
|
432
|
-
if (this.type === 'date') {
|
|
433
|
-
this._userSelection.emit();
|
|
420
|
+
this._selected = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
421
|
+
if (this._selected) {
|
|
422
|
+
this.activeDate = this._selected;
|
|
434
423
|
}
|
|
435
424
|
}
|
|
436
|
-
|
|
437
|
-
|
|
425
|
+
/** The minimum selectable date. */
|
|
426
|
+
get minDate() {
|
|
427
|
+
return this._minDate;
|
|
438
428
|
}
|
|
439
|
-
|
|
440
|
-
|
|
441
|
-
this._selectedDate = this._getDateInCurrentMonth(this.selected);
|
|
442
|
-
this._todayDate = this._getDateInCurrentMonth(this._adapter.today());
|
|
443
|
-
const firstOfMonth = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
444
|
-
this._firstWeekOffset =
|
|
445
|
-
(DAYS_PER_WEEK +
|
|
446
|
-
this._adapter.getDayOfWeek(firstOfMonth) -
|
|
447
|
-
this._adapter.getFirstDayOfWeek()) %
|
|
448
|
-
DAYS_PER_WEEK;
|
|
449
|
-
this._createWeekCells();
|
|
429
|
+
set minDate(value) {
|
|
430
|
+
this._minDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
450
431
|
}
|
|
451
|
-
/**
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
const dateNames = this._adapter.getDateNames();
|
|
455
|
-
this._weeks = [[]];
|
|
456
|
-
for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {
|
|
457
|
-
if (cell === DAYS_PER_WEEK) {
|
|
458
|
-
this._weeks.push([]);
|
|
459
|
-
cell = 0;
|
|
460
|
-
}
|
|
461
|
-
const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), i + 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
462
|
-
const enabled = !this.dateFilter || this.dateFilter(date);
|
|
463
|
-
const ariaLabel = this._adapter.format(date, this._dateFormats.display.dateA11yLabel);
|
|
464
|
-
this._weeks[this._weeks.length - 1].push(new MtxCalendarCell(i + 1, dateNames[i], ariaLabel, enabled));
|
|
465
|
-
}
|
|
432
|
+
/** The maximum selectable date. */
|
|
433
|
+
get maxDate() {
|
|
434
|
+
return this._maxDate;
|
|
466
435
|
}
|
|
467
|
-
|
|
468
|
-
|
|
469
|
-
* Returns null if the given Date is in another month.
|
|
470
|
-
*/
|
|
471
|
-
_getDateInCurrentMonth(date) {
|
|
472
|
-
return this._adapter.sameMonthAndYear(date, this.activeDate)
|
|
473
|
-
? this._adapter.getDate(date)
|
|
474
|
-
: null;
|
|
436
|
+
set maxDate(value) {
|
|
437
|
+
this._maxDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
475
438
|
}
|
|
476
|
-
|
|
477
|
-
|
|
439
|
+
/** Whether the clock should be started in hour or minute view. */
|
|
440
|
+
set startView(value) {
|
|
441
|
+
this._hourView = value !== 'minute';
|
|
478
442
|
}
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
return [{ type: i1.DatetimeAdapter, decorators: [{
|
|
487
|
-
type: Optional
|
|
488
|
-
}] }, { type: undefined, decorators: [{
|
|
489
|
-
type: Optional
|
|
490
|
-
}, {
|
|
491
|
-
type: Inject,
|
|
492
|
-
args: [MTX_DATETIME_FORMATS]
|
|
493
|
-
}] }];
|
|
494
|
-
}, propDecorators: { type: [{
|
|
495
|
-
type: Input
|
|
496
|
-
}], dateFilter: [{
|
|
497
|
-
type: Input
|
|
498
|
-
}], selectedChange: [{
|
|
499
|
-
type: Output
|
|
500
|
-
}], _userSelection: [{
|
|
501
|
-
type: Output
|
|
502
|
-
}], activeDate: [{
|
|
503
|
-
type: Input
|
|
504
|
-
}], selected: [{
|
|
505
|
-
type: Input
|
|
506
|
-
}] } });
|
|
507
|
-
|
|
508
|
-
/**
|
|
509
|
-
* An internal component used to display a single year in the datetimepicker.
|
|
510
|
-
* @docs-private
|
|
511
|
-
*/
|
|
512
|
-
class MtxYearView {
|
|
513
|
-
constructor(_adapter, _dateFormats) {
|
|
514
|
-
this._adapter = _adapter;
|
|
515
|
-
this._dateFormats = _dateFormats;
|
|
516
|
-
this.type = 'date';
|
|
517
|
-
/** Emits when a new month is selected. */
|
|
518
|
-
this.selectedChange = new EventEmitter();
|
|
519
|
-
/** Emits when any date is selected. */
|
|
520
|
-
this._userSelection = new EventEmitter();
|
|
521
|
-
if (!this._adapter) {
|
|
522
|
-
throw createMissingDateImplError('DatetimeAdapter');
|
|
443
|
+
get _hand() {
|
|
444
|
+
let hour = this._adapter.getHour(this.activeDate);
|
|
445
|
+
if (this.twelvehour) {
|
|
446
|
+
if (hour === 0) {
|
|
447
|
+
hour = 24;
|
|
448
|
+
}
|
|
449
|
+
this._selectedHour = hour > 12 ? hour - 12 : hour;
|
|
523
450
|
}
|
|
524
|
-
|
|
525
|
-
|
|
451
|
+
else {
|
|
452
|
+
this._selectedHour = hour;
|
|
526
453
|
}
|
|
527
|
-
this.
|
|
528
|
-
|
|
529
|
-
|
|
530
|
-
|
|
531
|
-
|
|
532
|
-
|
|
533
|
-
|
|
534
|
-
|
|
535
|
-
|
|
536
|
-
|
|
537
|
-
this._activeDate &&
|
|
538
|
-
!this._adapter.sameYear(oldActiveDate, this._activeDate)) {
|
|
539
|
-
this._init();
|
|
540
|
-
// if (oldActiveDate < this._activeDate) {
|
|
541
|
-
// this.calendarState('right');
|
|
542
|
-
// } else {
|
|
543
|
-
// this.calendarState('left');
|
|
544
|
-
// }
|
|
454
|
+
this._selectedMinute = this._adapter.getMinute(this.activeDate);
|
|
455
|
+
let deg = 0;
|
|
456
|
+
let radius = CLOCK_OUTER_RADIUS;
|
|
457
|
+
if (this._hourView) {
|
|
458
|
+
const outer = this._selectedHour > 0 && this._selectedHour < 13;
|
|
459
|
+
radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
|
|
460
|
+
if (this.twelvehour) {
|
|
461
|
+
radius = CLOCK_OUTER_RADIUS;
|
|
462
|
+
}
|
|
463
|
+
deg = Math.round(this._selectedHour * (360 / (24 / 2)));
|
|
545
464
|
}
|
|
546
|
-
|
|
547
|
-
|
|
548
|
-
|
|
549
|
-
return
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
465
|
+
else {
|
|
466
|
+
deg = Math.round(this._selectedMinute * (360 / 60));
|
|
467
|
+
}
|
|
468
|
+
return {
|
|
469
|
+
'transform': `rotate(${deg}deg)`,
|
|
470
|
+
'height': `${radius}%`,
|
|
471
|
+
'margin-top': `${50 - radius}%`,
|
|
472
|
+
};
|
|
554
473
|
}
|
|
555
474
|
ngAfterContentInit() {
|
|
475
|
+
this.activeDate = this._activeDate || this._adapter.today();
|
|
556
476
|
this._init();
|
|
557
477
|
}
|
|
558
|
-
/** Handles
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
this.
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
_calendarStateDone() {
|
|
567
|
-
this._calendarState = '';
|
|
478
|
+
/** Handles mousedown events on the clock body. */
|
|
479
|
+
_handleMousedown(event) {
|
|
480
|
+
this._timeChanged = false;
|
|
481
|
+
this.setTime(event);
|
|
482
|
+
document.addEventListener('mousemove', this.mouseMoveListener);
|
|
483
|
+
document.addEventListener('touchmove', this.mouseMoveListener);
|
|
484
|
+
document.addEventListener('mouseup', this.mouseUpListener);
|
|
485
|
+
document.addEventListener('touchend', this.mouseUpListener);
|
|
568
486
|
}
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
this.
|
|
572
|
-
this._todayMonth = this._getMonthInCurrentYear(this._adapter.today());
|
|
573
|
-
this._yearLabel = this._adapter.getYearName(this.activeDate);
|
|
574
|
-
const monthNames = this._adapter.getMonthNames('short');
|
|
575
|
-
// First row of months only contains 5 elements so we can fit the year label on the same row.
|
|
576
|
-
this._months = [
|
|
577
|
-
[0, 1, 2, 3],
|
|
578
|
-
[4, 5, 6, 7],
|
|
579
|
-
[8, 9, 10, 11],
|
|
580
|
-
].map(row => row.map(month => this._createCellForMonth(month, monthNames[month])));
|
|
581
|
-
}
|
|
582
|
-
/**
|
|
583
|
-
* Gets the month in this year that the given Date falls on.
|
|
584
|
-
* Returns null if the given Date is in another year.
|
|
585
|
-
*/
|
|
586
|
-
_getMonthInCurrentYear(date) {
|
|
587
|
-
return this._adapter.sameYear(date, this.activeDate) ? this._adapter.getMonth(date) : null;
|
|
588
|
-
}
|
|
589
|
-
/** Creates an MdCalendarCell for the given month. */
|
|
590
|
-
_createCellForMonth(month, monthName) {
|
|
591
|
-
const ariaLabel = this._adapter.format(this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)), this._dateFormats.display.monthYearA11yLabel);
|
|
592
|
-
return new MtxCalendarCell(month, monthName.toLocaleUpperCase(), ariaLabel, this._isMonthEnabled(month));
|
|
593
|
-
}
|
|
594
|
-
// private calendarState(direction: string): void {
|
|
595
|
-
// this._calendarState = direction;
|
|
596
|
-
// }
|
|
597
|
-
/** Whether the given month is enabled. */
|
|
598
|
-
_isMonthEnabled(month) {
|
|
599
|
-
if (!this.dateFilter) {
|
|
600
|
-
return true;
|
|
601
|
-
}
|
|
602
|
-
const firstOfMonth = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
603
|
-
// If any date in the month is enabled count the month as enabled.
|
|
604
|
-
for (let date = firstOfMonth; this._adapter.getMonth(date) === month; date = this._adapter.addCalendarDays(date, 1)) {
|
|
605
|
-
if (this.dateFilter(date)) {
|
|
606
|
-
return true;
|
|
607
|
-
}
|
|
608
|
-
}
|
|
609
|
-
return false;
|
|
610
|
-
}
|
|
611
|
-
}
|
|
612
|
-
/** @nocollapse */ MtxYearView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxYearView, deps: [{ token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
613
|
-
/** @nocollapse */ MtxYearView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxYearView, selector: "mtx-year-view", inputs: { type: "type", dateFilter: "dateFilter", activeDate: "activeDate", selected: "selected" }, outputs: { selectedChange: "selectedChange", _userSelection: "_userSelection" }, exportAs: ["mtxYearView"], ngImport: i0, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [label]=\"_yearLabel\"\n [rows]=\"_months\"\n [todayValue]=\"_todayMonth!\"\n [labelMinRequiredCells]=\"2\"\n [numCols]=\"4\"\n [activeCell]=\"_adapter.getMonth(activeDate)\"\n [selectedValue]=\"_selectedMonth!\"\n (selectedValueChange)=\"_monthSelected($event)\"\n [allowDisabledSelection]=\"true\"></tbody>\n</table>\n", components: [{ type: MtxCalendarBody, selector: "[mtx-calendar-body]", inputs: ["label", "rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "allowDisabledSelection", "activeCell"], outputs: ["selectedValueChange"], exportAs: ["mtxCalendarBody"] }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
614
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImport: i0, type: MtxYearView, decorators: [{
|
|
615
|
-
type: Component,
|
|
616
|
-
args: [{ selector: 'mtx-year-view', exportAs: 'mtxYearView', animations: [mtxDatetimepickerAnimations.slideCalendar], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [label]=\"_yearLabel\"\n [rows]=\"_months\"\n [todayValue]=\"_todayMonth!\"\n [labelMinRequiredCells]=\"2\"\n [numCols]=\"4\"\n [activeCell]=\"_adapter.getMonth(activeDate)\"\n [selectedValue]=\"_selectedMonth!\"\n (selectedValueChange)=\"_monthSelected($event)\"\n [allowDisabledSelection]=\"true\"></tbody>\n</table>\n" }]
|
|
617
|
-
}], ctorParameters: function () {
|
|
618
|
-
return [{ type: i1.DatetimeAdapter, decorators: [{
|
|
619
|
-
type: Optional
|
|
620
|
-
}] }, { type: undefined, decorators: [{
|
|
621
|
-
type: Optional
|
|
622
|
-
}, {
|
|
623
|
-
type: Inject,
|
|
624
|
-
args: [MTX_DATETIME_FORMATS]
|
|
625
|
-
}] }];
|
|
626
|
-
}, propDecorators: { type: [{
|
|
627
|
-
type: Input
|
|
628
|
-
}], dateFilter: [{
|
|
629
|
-
type: Input
|
|
630
|
-
}], selectedChange: [{
|
|
631
|
-
type: Output
|
|
632
|
-
}], _userSelection: [{
|
|
633
|
-
type: Output
|
|
634
|
-
}], activeDate: [{
|
|
635
|
-
type: Input
|
|
636
|
-
}], selected: [{
|
|
637
|
-
type: Input
|
|
638
|
-
}] } });
|
|
639
|
-
|
|
640
|
-
const CLOCK_RADIUS = 50;
|
|
641
|
-
const CLOCK_INNER_RADIUS = 27.5;
|
|
642
|
-
const CLOCK_OUTER_RADIUS = 41.25;
|
|
643
|
-
const CLOCK_TICK_RADIUS = 7.0833;
|
|
644
|
-
/**
|
|
645
|
-
* A clock that is used as part of the datetimepicker.
|
|
646
|
-
* @docs-private
|
|
647
|
-
*/
|
|
648
|
-
class MtxClock {
|
|
649
|
-
constructor(_element, _adapter) {
|
|
650
|
-
this._element = _element;
|
|
651
|
-
this._adapter = _adapter;
|
|
652
|
-
this.interval = 1;
|
|
653
|
-
this.twelvehour = false;
|
|
654
|
-
/** Emits when the currently selected date changes. */
|
|
655
|
-
this.selectedChange = new EventEmitter();
|
|
656
|
-
/** Emits when any date is activated. */
|
|
657
|
-
this.activeDateChange = new EventEmitter();
|
|
658
|
-
/** Emits when any date is selected. */
|
|
659
|
-
this._userSelection = new EventEmitter();
|
|
660
|
-
/** Hours and Minutes representing the clock view. */
|
|
661
|
-
this._hours = [];
|
|
662
|
-
this._minutes = [];
|
|
663
|
-
/** Whether the clock is in hour view. */
|
|
664
|
-
this._hourView = true;
|
|
665
|
-
this._timeChanged = false;
|
|
666
|
-
this.mouseMoveListener = (event) => {
|
|
667
|
-
this._handleMousemove(event);
|
|
668
|
-
};
|
|
669
|
-
this.mouseUpListener = () => {
|
|
670
|
-
this._handleMouseup();
|
|
671
|
-
};
|
|
672
|
-
}
|
|
673
|
-
/**
|
|
674
|
-
* The date to display in this clock view.
|
|
675
|
-
*/
|
|
676
|
-
get activeDate() {
|
|
677
|
-
return this._activeDate;
|
|
678
|
-
}
|
|
679
|
-
set activeDate(value) {
|
|
680
|
-
const oldActiveDate = this._activeDate;
|
|
681
|
-
this._activeDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
|
|
682
|
-
if (!this._adapter.sameMinute(oldActiveDate, this._activeDate)) {
|
|
683
|
-
this._init();
|
|
684
|
-
}
|
|
685
|
-
}
|
|
686
|
-
/** The currently selected date. */
|
|
687
|
-
get selected() {
|
|
688
|
-
return this._selected;
|
|
689
|
-
}
|
|
690
|
-
set selected(value) {
|
|
691
|
-
this._selected = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
692
|
-
if (this._selected) {
|
|
693
|
-
this.activeDate = this._selected;
|
|
694
|
-
}
|
|
695
|
-
}
|
|
696
|
-
/** The minimum selectable date. */
|
|
697
|
-
get minDate() {
|
|
698
|
-
return this._minDate;
|
|
699
|
-
}
|
|
700
|
-
set minDate(value) {
|
|
701
|
-
this._minDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
702
|
-
}
|
|
703
|
-
/** The maximum selectable date. */
|
|
704
|
-
get maxDate() {
|
|
705
|
-
return this._maxDate;
|
|
706
|
-
}
|
|
707
|
-
set maxDate(value) {
|
|
708
|
-
this._maxDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
|
709
|
-
}
|
|
710
|
-
/** Whether the clock should be started in hour or minute view. */
|
|
711
|
-
set startView(value) {
|
|
712
|
-
this._hourView = value !== 'minute';
|
|
713
|
-
}
|
|
714
|
-
get _hand() {
|
|
715
|
-
let hour = this._adapter.getHour(this.activeDate);
|
|
716
|
-
if (this.twelvehour) {
|
|
717
|
-
if (hour === 0) {
|
|
718
|
-
hour = 24;
|
|
719
|
-
}
|
|
720
|
-
this._selectedHour = hour > 12 ? hour - 12 : hour;
|
|
721
|
-
}
|
|
722
|
-
else {
|
|
723
|
-
this._selectedHour = hour;
|
|
724
|
-
}
|
|
725
|
-
this._selectedMinute = this._adapter.getMinute(this.activeDate);
|
|
726
|
-
let deg = 0;
|
|
727
|
-
let radius = CLOCK_OUTER_RADIUS;
|
|
728
|
-
if (this._hourView) {
|
|
729
|
-
const outer = this._selectedHour > 0 && this._selectedHour < 13;
|
|
730
|
-
radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
|
|
731
|
-
if (this.twelvehour) {
|
|
732
|
-
radius = CLOCK_OUTER_RADIUS;
|
|
733
|
-
}
|
|
734
|
-
deg = Math.round(this._selectedHour * (360 / (24 / 2)));
|
|
735
|
-
}
|
|
736
|
-
else {
|
|
737
|
-
deg = Math.round(this._selectedMinute * (360 / 60));
|
|
738
|
-
}
|
|
739
|
-
return {
|
|
740
|
-
'transform': `rotate(${deg}deg)`,
|
|
741
|
-
'height': `${radius}%`,
|
|
742
|
-
'margin-top': `${50 - radius}%`,
|
|
743
|
-
};
|
|
744
|
-
}
|
|
745
|
-
ngAfterContentInit() {
|
|
746
|
-
this.activeDate = this._activeDate || this._adapter.today();
|
|
747
|
-
this._init();
|
|
748
|
-
}
|
|
749
|
-
/** Handles mousedown events on the clock body. */
|
|
750
|
-
_handleMousedown(event) {
|
|
751
|
-
this._timeChanged = false;
|
|
752
|
-
this.setTime(event);
|
|
753
|
-
document.addEventListener('mousemove', this.mouseMoveListener);
|
|
754
|
-
document.addEventListener('touchmove', this.mouseMoveListener);
|
|
755
|
-
document.addEventListener('mouseup', this.mouseUpListener);
|
|
756
|
-
document.addEventListener('touchend', this.mouseUpListener);
|
|
757
|
-
}
|
|
758
|
-
_handleMousemove(event) {
|
|
759
|
-
event.preventDefault();
|
|
760
|
-
this.setTime(event);
|
|
487
|
+
_handleMousemove(event) {
|
|
488
|
+
event.preventDefault();
|
|
489
|
+
this.setTime(event);
|
|
761
490
|
}
|
|
762
491
|
_handleMouseup() {
|
|
763
492
|
document.removeEventListener('mousemove', this.mouseMoveListener);
|
|
@@ -876,9 +605,9 @@ class MtxClock {
|
|
|
876
605
|
this.activeDateChange.emit(this.activeDate);
|
|
877
606
|
}
|
|
878
607
|
}
|
|
879
|
-
/** @nocollapse */ MtxClock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
880
|
-
/** @nocollapse */ MtxClock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
881
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
608
|
+
/** @nocollapse */ MtxClock.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxClock, deps: [{ token: i0.ElementRef }, { token: i1.DatetimeAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
|
609
|
+
/** @nocollapse */ MtxClock.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxClock, selector: "mtx-clock", inputs: { dateFilter: "dateFilter", interval: "interval", twelvehour: "twelvehour", activeDate: "activeDate", selected: "selected", minDate: "minDate", maxDate: "maxDate", startView: "startView" }, outputs: { selectedChange: "selectedChange", activeDateChange: "activeDateChange", _userSelection: "_userSelection" }, host: { attributes: { "role": "clock" }, listeners: { "mousedown": "_handleMousedown($event)" }, properties: { "class.mtx-clock": "true" } }, exportAs: ["mtxClock"], ngImport: i0, template: "<div class=\"mtx-clock-wrapper\">\n <div class=\"mtx-clock-center\"></div>\n <div [ngStyle]=\"_hand\" class=\"mtx-clock-hand\"></div>\n <div [class.active]=\"_hourView\" class=\"mtx-clock-hours\">\n <div *ngFor=\"let item of _hours\"\n [class.mtx-clock-cell-disabled]=\"!item.enabled\"\n [class.mtx-clock-cell-selected]=\"_selectedHour === item.value\"\n [style.fontSize]=\"item.fontSize\"\n [style.left]=\"item.left+'%'\"\n [style.top]=\"item.top+'%'\"\n class=\"mtx-clock-cell\">{{ item.displayValue }}</div>\n </div>\n <div [class.active]=\"!_hourView\" class=\"mtx-clock-minutes\">\n <div *ngFor=\"let item of _minutes\"\n [class.mtx-clock-cell-disabled]=\"!item.enabled\"\n [class.mtx-clock-cell-selected]=\"_selectedMinute === item.value\"\n [style.left]=\"item.left+'%'\"\n [style.top]=\"item.top+'%'\"\n class=\"mtx-clock-cell\">{{ item.displayValue }}</div>\n </div>\n</div>\n", styles: [".mtx-clock{position:relative;display:block;min-width:224px;margin:8px;box-sizing:border-box;-webkit-user-select:none;user-select:none}.mtx-clock-wrapper{position:relative;width:100%;height:0;padding-top:100%;border-radius:50%}.mtx-clock-center{position:absolute;top:50%;left:50%;width:2%;height:2%;margin:-1%;border-radius:50%}.mtx-clock-hand{position:absolute;top:0;right:0;bottom:0;left:0;width:1px;margin:0 auto;transform-origin:bottom}.mtx-clock-hand:before{content:\"\";position:absolute;top:-4px;left:-4px;width:8px;height:8px;border-radius:50%}.mtx-clock-hours,.mtx-clock-minutes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:.35s;transform:scale(1.2)}.mtx-clock-hours.active,.mtx-clock-minutes.active{opacity:1;visibility:visible;transform:scale(1)}.mtx-clock-minutes{transform:scale(.8)}.mtx-clock-cell{position:absolute;display:flex;width:14.1666%;height:14.1666%;justify-content:center;box-sizing:border-box;border-radius:50%;align-items:center;cursor:pointer}.mtx-clock-cell.mtx-clock-cell-disabled{pointer-events:none}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], encapsulation: i0.ViewEncapsulation.None });
|
|
610
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxClock, decorators: [{
|
|
882
611
|
type: Component,
|
|
883
612
|
args: [{ selector: 'mtx-clock', host: {
|
|
884
613
|
'[class.mtx-clock]': 'true',
|
|
@@ -909,6 +638,279 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
909
638
|
type: Input
|
|
910
639
|
}] } });
|
|
911
640
|
|
|
641
|
+
const DAYS_PER_WEEK = 7;
|
|
642
|
+
/**
|
|
643
|
+
* An internal component used to display a single month in the datetimepicker.
|
|
644
|
+
* @docs-private
|
|
645
|
+
*/
|
|
646
|
+
class MtxMonthView {
|
|
647
|
+
constructor(_adapter, _dateFormats) {
|
|
648
|
+
this._adapter = _adapter;
|
|
649
|
+
this._dateFormats = _dateFormats;
|
|
650
|
+
this.type = 'date';
|
|
651
|
+
/** Emits when a new date is selected. */
|
|
652
|
+
this.selectedChange = new EventEmitter();
|
|
653
|
+
/** Emits when any date is selected. */
|
|
654
|
+
this._userSelection = new EventEmitter();
|
|
655
|
+
if (!this._adapter) {
|
|
656
|
+
throw createMissingDateImplError('DatetimeAdapter');
|
|
657
|
+
}
|
|
658
|
+
if (!this._dateFormats) {
|
|
659
|
+
throw createMissingDateImplError('MTX_DATETIME_FORMATS');
|
|
660
|
+
}
|
|
661
|
+
const firstDayOfWeek = this._adapter.getFirstDayOfWeek();
|
|
662
|
+
const narrowWeekdays = this._adapter.getDayOfWeekNames('narrow');
|
|
663
|
+
const longWeekdays = this._adapter.getDayOfWeekNames('long');
|
|
664
|
+
// Rotate the labels for days of the week based on the configured first day of the week.
|
|
665
|
+
const weekdays = longWeekdays.map((long, i) => {
|
|
666
|
+
return { long, narrow: narrowWeekdays[i] };
|
|
667
|
+
});
|
|
668
|
+
this._weekdays = weekdays.slice(firstDayOfWeek).concat(weekdays.slice(0, firstDayOfWeek));
|
|
669
|
+
this._activeDate = this._adapter.today();
|
|
670
|
+
}
|
|
671
|
+
/**
|
|
672
|
+
* The date to display in this month view (everything other than the month and year is ignored).
|
|
673
|
+
*/
|
|
674
|
+
get activeDate() {
|
|
675
|
+
return this._activeDate;
|
|
676
|
+
}
|
|
677
|
+
set activeDate(value) {
|
|
678
|
+
const oldActiveDate = this._activeDate;
|
|
679
|
+
this._activeDate = value || this._adapter.today();
|
|
680
|
+
if (oldActiveDate &&
|
|
681
|
+
this._activeDate &&
|
|
682
|
+
!this._adapter.sameMonthAndYear(oldActiveDate, this._activeDate)) {
|
|
683
|
+
this._init();
|
|
684
|
+
if (this._adapter.isInNextMonth(oldActiveDate, this._activeDate)) {
|
|
685
|
+
this.calendarState('right');
|
|
686
|
+
}
|
|
687
|
+
else {
|
|
688
|
+
this.calendarState('left');
|
|
689
|
+
}
|
|
690
|
+
}
|
|
691
|
+
}
|
|
692
|
+
/** The currently selected date. */
|
|
693
|
+
get selected() {
|
|
694
|
+
return this._selected;
|
|
695
|
+
}
|
|
696
|
+
set selected(value) {
|
|
697
|
+
this._selected = value;
|
|
698
|
+
this._selectedDate = this._getDateInCurrentMonth(this.selected);
|
|
699
|
+
}
|
|
700
|
+
ngAfterContentInit() {
|
|
701
|
+
this._init();
|
|
702
|
+
}
|
|
703
|
+
/** Handles when a new date is selected. */
|
|
704
|
+
_dateSelected(date) {
|
|
705
|
+
this.selectedChange.emit(this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), date, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)));
|
|
706
|
+
if (this.type === 'date') {
|
|
707
|
+
this._userSelection.emit();
|
|
708
|
+
}
|
|
709
|
+
}
|
|
710
|
+
_calendarStateDone() {
|
|
711
|
+
this._calendarState = '';
|
|
712
|
+
}
|
|
713
|
+
/** Initializes this month view. */
|
|
714
|
+
_init() {
|
|
715
|
+
this._selectedDate = this._getDateInCurrentMonth(this.selected);
|
|
716
|
+
this._todayDate = this._getDateInCurrentMonth(this._adapter.today());
|
|
717
|
+
const firstOfMonth = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
718
|
+
this._firstWeekOffset =
|
|
719
|
+
(DAYS_PER_WEEK +
|
|
720
|
+
this._adapter.getDayOfWeek(firstOfMonth) -
|
|
721
|
+
this._adapter.getFirstDayOfWeek()) %
|
|
722
|
+
DAYS_PER_WEEK;
|
|
723
|
+
this._createWeekCells();
|
|
724
|
+
}
|
|
725
|
+
/** Creates MdCalendarCells for the dates in this month. */
|
|
726
|
+
_createWeekCells() {
|
|
727
|
+
const daysInMonth = this._adapter.getNumDaysInMonth(this.activeDate);
|
|
728
|
+
const dateNames = this._adapter.getDateNames();
|
|
729
|
+
this._weeks = [[]];
|
|
730
|
+
for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {
|
|
731
|
+
if (cell === DAYS_PER_WEEK) {
|
|
732
|
+
this._weeks.push([]);
|
|
733
|
+
cell = 0;
|
|
734
|
+
}
|
|
735
|
+
const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), i + 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
736
|
+
const enabled = !this.dateFilter || this.dateFilter(date);
|
|
737
|
+
const ariaLabel = this._adapter.format(date, this._dateFormats.display.dateA11yLabel);
|
|
738
|
+
this._weeks[this._weeks.length - 1].push(new MtxCalendarCell(i + 1, dateNames[i], ariaLabel, enabled));
|
|
739
|
+
}
|
|
740
|
+
}
|
|
741
|
+
/**
|
|
742
|
+
* Gets the date in this month that the given Date falls on.
|
|
743
|
+
* Returns null if the given Date is in another month.
|
|
744
|
+
*/
|
|
745
|
+
_getDateInCurrentMonth(date) {
|
|
746
|
+
return this._adapter.sameMonthAndYear(date, this.activeDate)
|
|
747
|
+
? this._adapter.getDate(date)
|
|
748
|
+
: null;
|
|
749
|
+
}
|
|
750
|
+
calendarState(direction) {
|
|
751
|
+
this._calendarState = direction;
|
|
752
|
+
}
|
|
753
|
+
}
|
|
754
|
+
/** @nocollapse */ MtxMonthView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxMonthView, deps: [{ token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
755
|
+
/** @nocollapse */ MtxMonthView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxMonthView, selector: "mtx-month-view", inputs: { type: "type", dateFilter: "dateFilter", activeDate: "activeDate", selected: "selected" }, outputs: { selectedChange: "selectedChange", _userSelection: "_userSelection" }, exportAs: ["mtxMonthView"], ngImport: i0, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\">\n <tr>\n <th *ngFor=\"let day of _weekdays\" [attr.aria-label]=\"day.long\">{{day.narrow}}</th>\n </tr>\n </thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [rows]=\"_weeks\"\n [todayValue]=\"_todayDate!\"\n [activeCell]=\"_adapter.getDate(activeDate) - 1\"\n [selectedValue]=\"_selectedDate!\"\n (selectedValueChange)=\"_dateSelected($event)\"></tbody>\n</table>\n", dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: MtxCalendarBody, selector: "[mtx-calendar-body]", inputs: ["label", "rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "allowDisabledSelection", "activeCell"], outputs: ["selectedValueChange"], exportAs: ["mtxCalendarBody"] }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
756
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxMonthView, decorators: [{
|
|
757
|
+
type: Component,
|
|
758
|
+
args: [{ selector: 'mtx-month-view', exportAs: 'mtxMonthView', animations: [mtxDatetimepickerAnimations.slideCalendar], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\">\n <tr>\n <th *ngFor=\"let day of _weekdays\" [attr.aria-label]=\"day.long\">{{day.narrow}}</th>\n </tr>\n </thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [rows]=\"_weeks\"\n [todayValue]=\"_todayDate!\"\n [activeCell]=\"_adapter.getDate(activeDate) - 1\"\n [selectedValue]=\"_selectedDate!\"\n (selectedValueChange)=\"_dateSelected($event)\"></tbody>\n</table>\n" }]
|
|
759
|
+
}], ctorParameters: function () {
|
|
760
|
+
return [{ type: i1.DatetimeAdapter, decorators: [{
|
|
761
|
+
type: Optional
|
|
762
|
+
}] }, { type: undefined, decorators: [{
|
|
763
|
+
type: Optional
|
|
764
|
+
}, {
|
|
765
|
+
type: Inject,
|
|
766
|
+
args: [MTX_DATETIME_FORMATS]
|
|
767
|
+
}] }];
|
|
768
|
+
}, propDecorators: { type: [{
|
|
769
|
+
type: Input
|
|
770
|
+
}], dateFilter: [{
|
|
771
|
+
type: Input
|
|
772
|
+
}], selectedChange: [{
|
|
773
|
+
type: Output
|
|
774
|
+
}], _userSelection: [{
|
|
775
|
+
type: Output
|
|
776
|
+
}], activeDate: [{
|
|
777
|
+
type: Input
|
|
778
|
+
}], selected: [{
|
|
779
|
+
type: Input
|
|
780
|
+
}] } });
|
|
781
|
+
|
|
782
|
+
/**
|
|
783
|
+
* An internal component used to display a single year in the datetimepicker.
|
|
784
|
+
* @docs-private
|
|
785
|
+
*/
|
|
786
|
+
class MtxYearView {
|
|
787
|
+
constructor(_adapter, _dateFormats) {
|
|
788
|
+
this._adapter = _adapter;
|
|
789
|
+
this._dateFormats = _dateFormats;
|
|
790
|
+
this.type = 'date';
|
|
791
|
+
/** Emits when a new month is selected. */
|
|
792
|
+
this.selectedChange = new EventEmitter();
|
|
793
|
+
/** Emits when any date is selected. */
|
|
794
|
+
this._userSelection = new EventEmitter();
|
|
795
|
+
if (!this._adapter) {
|
|
796
|
+
throw createMissingDateImplError('DatetimeAdapter');
|
|
797
|
+
}
|
|
798
|
+
if (!this._dateFormats) {
|
|
799
|
+
throw createMissingDateImplError('MTX_DATETIME_FORMATS');
|
|
800
|
+
}
|
|
801
|
+
this._activeDate = this._adapter.today();
|
|
802
|
+
}
|
|
803
|
+
/** The date to display in this year view (everything other than the year is ignored). */
|
|
804
|
+
get activeDate() {
|
|
805
|
+
return this._activeDate;
|
|
806
|
+
}
|
|
807
|
+
set activeDate(value) {
|
|
808
|
+
const oldActiveDate = this._activeDate;
|
|
809
|
+
this._activeDate = value || this._adapter.today();
|
|
810
|
+
if (oldActiveDate &&
|
|
811
|
+
this._activeDate &&
|
|
812
|
+
!this._adapter.sameYear(oldActiveDate, this._activeDate)) {
|
|
813
|
+
this._init();
|
|
814
|
+
// if (oldActiveDate < this._activeDate) {
|
|
815
|
+
// this.calendarState('right');
|
|
816
|
+
// } else {
|
|
817
|
+
// this.calendarState('left');
|
|
818
|
+
// }
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
/** The currently selected date. */
|
|
822
|
+
get selected() {
|
|
823
|
+
return this._selected;
|
|
824
|
+
}
|
|
825
|
+
set selected(value) {
|
|
826
|
+
this._selected = value;
|
|
827
|
+
this._selectedMonth = this._getMonthInCurrentYear(this.selected);
|
|
828
|
+
}
|
|
829
|
+
ngAfterContentInit() {
|
|
830
|
+
this._init();
|
|
831
|
+
}
|
|
832
|
+
/** Handles when a new month is selected. */
|
|
833
|
+
_monthSelected(month) {
|
|
834
|
+
const normalizedDate = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, 0, 0);
|
|
835
|
+
this.selectedChange.emit(this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, Math.min(this._adapter.getDate(this.activeDate), this._adapter.getNumDaysInMonth(normalizedDate)), this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)));
|
|
836
|
+
if (this.type === 'month') {
|
|
837
|
+
this._userSelection.emit();
|
|
838
|
+
}
|
|
839
|
+
}
|
|
840
|
+
_calendarStateDone() {
|
|
841
|
+
this._calendarState = '';
|
|
842
|
+
}
|
|
843
|
+
/** Initializes this month view. */
|
|
844
|
+
_init() {
|
|
845
|
+
this._selectedMonth = this._getMonthInCurrentYear(this.selected);
|
|
846
|
+
this._todayMonth = this._getMonthInCurrentYear(this._adapter.today());
|
|
847
|
+
this._yearLabel = this._adapter.getYearName(this.activeDate);
|
|
848
|
+
const monthNames = this._adapter.getMonthNames('short');
|
|
849
|
+
// First row of months only contains 5 elements so we can fit the year label on the same row.
|
|
850
|
+
this._months = [
|
|
851
|
+
[0, 1, 2, 3],
|
|
852
|
+
[4, 5, 6, 7],
|
|
853
|
+
[8, 9, 10, 11],
|
|
854
|
+
].map(row => row.map(month => this._createCellForMonth(month, monthNames[month])));
|
|
855
|
+
}
|
|
856
|
+
/**
|
|
857
|
+
* Gets the month in this year that the given Date falls on.
|
|
858
|
+
* Returns null if the given Date is in another year.
|
|
859
|
+
*/
|
|
860
|
+
_getMonthInCurrentYear(date) {
|
|
861
|
+
return this._adapter.sameYear(date, this.activeDate) ? this._adapter.getMonth(date) : null;
|
|
862
|
+
}
|
|
863
|
+
/** Creates an MdCalendarCell for the given month. */
|
|
864
|
+
_createCellForMonth(month, monthName) {
|
|
865
|
+
const ariaLabel = this._adapter.format(this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)), this._dateFormats.display.monthYearA11yLabel);
|
|
866
|
+
return new MtxCalendarCell(month, monthName.toLocaleUpperCase(), ariaLabel, this._isMonthEnabled(month));
|
|
867
|
+
}
|
|
868
|
+
// private calendarState(direction: string): void {
|
|
869
|
+
// this._calendarState = direction;
|
|
870
|
+
// }
|
|
871
|
+
/** Whether the given month is enabled. */
|
|
872
|
+
_isMonthEnabled(month) {
|
|
873
|
+
if (!this.dateFilter) {
|
|
874
|
+
return true;
|
|
875
|
+
}
|
|
876
|
+
const firstOfMonth = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
|
877
|
+
// If any date in the month is enabled count the month as enabled.
|
|
878
|
+
for (let date = firstOfMonth; this._adapter.getMonth(date) === month; date = this._adapter.addCalendarDays(date, 1)) {
|
|
879
|
+
if (this.dateFilter(date)) {
|
|
880
|
+
return true;
|
|
881
|
+
}
|
|
882
|
+
}
|
|
883
|
+
return false;
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
/** @nocollapse */ MtxYearView.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxYearView, deps: [{ token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
887
|
+
/** @nocollapse */ MtxYearView.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxYearView, selector: "mtx-year-view", inputs: { type: "type", dateFilter: "dateFilter", activeDate: "activeDate", selected: "selected" }, outputs: { selectedChange: "selectedChange", _userSelection: "_userSelection" }, exportAs: ["mtxYearView"], ngImport: i0, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [label]=\"_yearLabel\"\n [rows]=\"_months\"\n [todayValue]=\"_todayMonth!\"\n [labelMinRequiredCells]=\"2\"\n [numCols]=\"4\"\n [activeCell]=\"_adapter.getMonth(activeDate)\"\n [selectedValue]=\"_selectedMonth!\"\n (selectedValueChange)=\"_monthSelected($event)\"\n [allowDisabledSelection]=\"true\"></tbody>\n</table>\n", dependencies: [{ kind: "component", type: MtxCalendarBody, selector: "[mtx-calendar-body]", inputs: ["label", "rows", "todayValue", "selectedValue", "labelMinRequiredCells", "numCols", "allowDisabledSelection", "activeCell"], outputs: ["selectedValueChange"], exportAs: ["mtxCalendarBody"] }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
888
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxYearView, decorators: [{
|
|
889
|
+
type: Component,
|
|
890
|
+
args: [{ selector: 'mtx-year-view', exportAs: 'mtxYearView', animations: [mtxDatetimepickerAnimations.slideCalendar], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<table class=\"mtx-calendar-table\" role=\"grid\">\n <thead class=\"mtx-calendar-table-header\"></thead>\n <tbody mtx-calendar-body\n (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n [label]=\"_yearLabel\"\n [rows]=\"_months\"\n [todayValue]=\"_todayMonth!\"\n [labelMinRequiredCells]=\"2\"\n [numCols]=\"4\"\n [activeCell]=\"_adapter.getMonth(activeDate)\"\n [selectedValue]=\"_selectedMonth!\"\n (selectedValueChange)=\"_monthSelected($event)\"\n [allowDisabledSelection]=\"true\"></tbody>\n</table>\n" }]
|
|
891
|
+
}], ctorParameters: function () {
|
|
892
|
+
return [{ type: i1.DatetimeAdapter, decorators: [{
|
|
893
|
+
type: Optional
|
|
894
|
+
}] }, { type: undefined, decorators: [{
|
|
895
|
+
type: Optional
|
|
896
|
+
}, {
|
|
897
|
+
type: Inject,
|
|
898
|
+
args: [MTX_DATETIME_FORMATS]
|
|
899
|
+
}] }];
|
|
900
|
+
}, propDecorators: { type: [{
|
|
901
|
+
type: Input
|
|
902
|
+
}], dateFilter: [{
|
|
903
|
+
type: Input
|
|
904
|
+
}], selectedChange: [{
|
|
905
|
+
type: Output
|
|
906
|
+
}], _userSelection: [{
|
|
907
|
+
type: Output
|
|
908
|
+
}], activeDate: [{
|
|
909
|
+
type: Input
|
|
910
|
+
}], selected: [{
|
|
911
|
+
type: Input
|
|
912
|
+
}] } });
|
|
913
|
+
|
|
912
914
|
/**
|
|
913
915
|
* A calendar that is used as part of the datetimepicker.
|
|
914
916
|
* @docs-private
|
|
@@ -924,6 +926,7 @@ class MtxCalendar {
|
|
|
924
926
|
this._twelvehour = false;
|
|
925
927
|
/** Whether the calendar should be started in month or year view. */
|
|
926
928
|
this.startView = 'month';
|
|
929
|
+
/** Step over minutes. */
|
|
927
930
|
this.timeInterval = 1;
|
|
928
931
|
/** Prevent user to select same date time */
|
|
929
932
|
this.preventSameDateTimeSelection = false;
|
|
@@ -949,19 +952,21 @@ class MtxCalendar {
|
|
|
949
952
|
}
|
|
950
953
|
this._intlChanges = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());
|
|
951
954
|
}
|
|
955
|
+
/** Whether to show multi-year view. */
|
|
952
956
|
get multiYearSelector() {
|
|
953
957
|
return this._multiYearSelector;
|
|
954
958
|
}
|
|
955
959
|
set multiYearSelector(value) {
|
|
956
960
|
this._multiYearSelector = coerceBooleanProperty(value);
|
|
957
961
|
}
|
|
958
|
-
/**
|
|
962
|
+
/** Whether the clock uses 12 hour format. */
|
|
959
963
|
get twelvehour() {
|
|
960
964
|
return this._twelvehour;
|
|
961
965
|
}
|
|
962
966
|
set twelvehour(value) {
|
|
963
967
|
this._twelvehour = coerceBooleanProperty(value);
|
|
964
968
|
}
|
|
969
|
+
/** The display type of datetimepicker. */
|
|
965
970
|
get type() {
|
|
966
971
|
return this._type;
|
|
967
972
|
}
|
|
@@ -1463,9 +1468,9 @@ class MtxCalendar {
|
|
|
1463
1468
|
return ('00' + n).slice(-2);
|
|
1464
1469
|
}
|
|
1465
1470
|
}
|
|
1466
|
-
/** @nocollapse */ MtxCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1467
|
-
/** @nocollapse */ MtxCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.6", type: MtxCalendar, selector: "mtx-calendar", inputs: { multiYearSelector: "multiYearSelector", twelvehour: "twelvehour", startView: "startView", timeInterval: "timeInterval", dateFilter: "dateFilter", preventSameDateTimeSelection: "preventSameDateTimeSelection", type: "type", startAt: "startAt", selected: "selected", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectedChange: "selectedChange", viewChanged: "viewChanged", _userSelection: "_userSelection" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "_handleCalendarBodyKeydown($event)" }, classAttribute: "mtx-calendar" }, exportAs: ["mtxCalendar"], ngImport: i0, template: "<div class=\"mtx-calendar-header\">\n <div (click)=\"_yearClicked()\" *ngIf=\"type !== 'time'\"\n [class.active]=\"currentView === 'year' || currentView === 'multi-year'\"\n class=\"mtx-calendar-header-year\" role=\"button\">\n <span>{{ _yearLabel }}</span>\n <svg *ngIf=\"multiYearSelector || type === 'year'\"\n class=\"mtx-calendar-header-year-dropdown\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7,10L12,15L17,10H7Z\"></path>\n </svg>\n </div>\n <div class=\"mtx-calendar-header-date-time\">\n <span (click)=\"_dateClicked()\" *ngIf=\"type !== 'time' && type !== 'year'\"\n [class.active]=\"currentView === 'month'\"\n [class.not-clickable]=\"type === 'month'\"\n class=\"mtx-calendar-header-date\"\n role=\"button\">{{ _dateLabel }}</span>\n <span *ngIf=\"type.endsWith('time')\"\n [class.active]=\"currentView === 'clock'\"\n class=\"mtx-calendar-header-time\">\n <span class=\"mtx-calendar-header-hour-minute-container\">\n <span (click)=\"_hoursClicked()\"\n [class.active]=\"_clockView === 'hour'\"\n class=\"mtx-calendar-header-hours\"\n role=\"button\">{{ _hoursLabel }}</span>\n <span class=\"mtx-calendar-header-hour-minute-separator\">:</span>\n <span (click)=\"_minutesClicked()\"\n [class.active]=\"_clockView === 'minute'\"\n class=\"mtx-calendar-header-minutes\"\n role=\"button\">{{ _minutesLabel }}</span>\n </span>\n <span *ngIf=\"twelvehour\" class=\"mtx-calendar-header-ampm-container\">\n <span (click)=\"_ampmClicked('AM')\"\n [class.active]=\"_AMPM === 'AM'\"\n class=\"mtx-calendar-header-ampm\" role=\"button\">AM</span>\n <span (click)=\"_ampmClicked('PM')\"\n [class.active]=\"_AMPM === 'PM'\"\n class=\"mtx-calendar-header-ampm\" role=\"button\">PM</span>\n </span>\n </span>\n </div>\n</div>\n<div class=\"mtx-calendar-content\" [ngSwitch]=\"currentView\">\n <div *ngIf=\"currentView === 'month' || currentView === 'year' || currentView === 'multi-year'\"\n class=\"mtx-month-content\">\n <div class=\"mtx-calendar-controls\">\n <button mat-icon-button type=\"button\" (click)=\"_previousClicked()\"\n [attr.aria-disabled]=\"!_previousEnabled()\"\n [attr.aria-label]=\"_ariaLabelPrev\"\n [class.disabled]=\"!_previousEnabled()\"\n class=\"mtx-calendar-previous-button\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"></path>\n </svg>\n </button>\n <div [@slideCalendar]=\"_calendarState\"\n (@slideCalendar.done)=\"_calendarStateDone()\"\n class=\"mtx-calendar-period-button\">\n <strong>{{ _monthYearLabel }}</strong>\n </div>\n <button mat-icon-button type=\"button\" (click)=\"_nextClicked()\"\n [attr.aria-disabled]=\"!_nextEnabled()\"\n [attr.aria-label]=\"_ariaLabelNext\"\n [class.disabled]=\"!_nextEnabled()\"\n class=\"mtx-calendar-next-button\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"></path>\n </svg>\n </button>\n </div>\n </div>\n <mtx-month-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_dateSelected($event)\"\n *ngSwitchCase=\"'month'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-month-view>\n <mtx-year-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_monthSelected($event)\"\n *ngSwitchCase=\"'year'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-year-view>\n <mtx-multi-year-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_yearSelected($event)\"\n *ngSwitchCase=\"'multi-year'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-multi-year-view>\n <mtx-clock (_userSelection)=\"_userSelected()\"\n (activeDateChange)=\"_onActiveDateChange($event)\"\n (selectedChange)=\"_timeSelected($event)\"\n *ngSwitchDefault\n [dateFilter]=\"dateFilter\"\n [interval]=\"timeInterval\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"_activeDate\"\n [startView]=\"_clockView\"\n [twelvehour]=\"twelvehour\">\n </mtx-clock>\n</div>\n", styles: [".mtx-calendar{display:block;outline:none}.mtx-calendar[mode=landscape]{display:flex}.mtx-calendar-header{padding:16px;box-sizing:border-box;border-radius:4px 4px 0 0}[mode=landscape] .mtx-calendar-header{width:150px;min-width:150px;border-radius:4px 0 0 4px}[dir=rtl] [mode=landscape] .mtx-calendar-header{border-radius:0 4px 4px 0}.mtx-calendar-header-year,.mtx-calendar-header-date-time{width:100%;white-space:nowrap}.mtx-calendar-header-year{line-height:24px}.mtx-calendar-header-year>*{vertical-align:middle}.mtx-calendar-header-year+.mtx-calendar-header-date-time{margin-top:4px}.mtx-calendar-header-date-time{line-height:36px}[mode=landscape] .mtx-calendar-header-date-time{white-space:normal;word-wrap:break-word}.mtx-calendar-header-year:not(.active),.mtx-calendar-header-date:not(.active),.mtx-calendar-header-hours:not(.active),.mtx-calendar-header-minutes:not(.active),.mtx-calendar-header-ampm:not(.active){cursor:pointer;opacity:.6}.mtx-calendar-header-year.not-clickable,.mtx-calendar-header-date.not-clickable,.mtx-calendar-header-hours.not-clickable,.mtx-calendar-header-minutes.not-clickable,.mtx-calendar-header-ampm.not-clickable{cursor:initial}.mtx-calendar-header-time{display:inline-flex}.mtx-calendar-header-time:not(.active){opacity:.6}.mtx-calendar-header-time:not(.active) .mtx-calendar-header-hours,.mtx-calendar-header-time:not(.active) .mtx-calendar-header-minutes,.mtx-calendar-header-time:not(.active) .mtx-calendar-header-ampm{cursor:pointer;opacity:1}[mode=landscape] .mtx-calendar-header-time{display:flex;flex-direction:column}.mtx-calendar-header-hour-minute-container{padding:0 8px}[mode=landscape] .mtx-calendar-header-hour-minute-container{padding:0}.mtx-calendar-header-hour-minute-separator{display:inline-block;width:8px;text-align:center}.mtx-calendar-header-ampm-container{display:inline-flex;flex-direction:column;line-height:18px}[mode=landscape] .mtx-calendar-header-ampm-container{flex-direction:row}[mode=landscape] .mtx-calendar-header-ampm{padding:4px}.mtx-calendar-content{width:100%;padding:8px;outline:none;box-sizing:border-box;overflow:hidden}.mtx-calendar-controls{display:flex;justify-content:space-between;margin:0 calc(4.7142857143% - 16px)}.mtx-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.mtx-calendar-period-button{display:inline-block;height:40px;line-height:40px;outline:none;border:0;background:transparent;box-sizing:border-box}.mtx-calendar-previous-button.disabled,.mtx-calendar-next-button.disabled{pointer-events:none}.mtx-calendar-previous-button svg,.mtx-calendar-next-button svg{fill:currentColor;vertical-align:top}[dir=rtl] .mtx-calendar-previous-button svg,[dir=rtl] .mtx-calendar-next-button svg{transform:rotate(180deg)}.mtx-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mtx-calendar-table-header th{text-align:center;padding:8px 0}@media all and (orientation: landscape){.mtx-calendar[mode=auto]{display:flex}.mtx-calendar[mode=auto] .mtx-calendar-header{width:150px;min-width:150px;border-radius:4px 0 0 4px}[dir=rtl] .mtx-calendar[mode=auto] .mtx-calendar-header{border-radius:0 4px 4px 0}.mtx-calendar[mode=auto] .mtx-calendar-header-date-time{white-space:normal;word-wrap:break-word}.mtx-calendar[mode=auto] .mtx-calendar-header-time{display:flex;flex-direction:column}.mtx-calendar[mode=auto] .mtx-calendar-header-hour-minute-container{padding:0}.mtx-calendar[mode=auto] .mtx-calendar-header-ampm-container{flex-direction:row}.mtx-calendar[mode=auto] .mtx-calendar-header-ampm{padding:4px}}\n"], components: [{ type: i3$1.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: MtxMonthView, selector: "mtx-month-view", inputs: ["type", "dateFilter", "activeDate", "selected"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxMonthView"] }, { type: MtxYearView, selector: "mtx-year-view", inputs: ["type", "dateFilter", "activeDate", "selected"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxYearView"] }, { type: MtxMultiYearView, selector: "mtx-multi-year-view", inputs: ["type", "dateFilter", "activeDate", "selected", "minDate", "maxDate"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxMultiYearView"] }, { type: MtxClock, selector: "mtx-clock", inputs: ["dateFilter", "interval", "twelvehour", "activeDate", "selected", "minDate", "maxDate", "startView"], outputs: ["selectedChange", "activeDateChange", "_userSelection"], exportAs: ["mtxClock"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i3.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i3.NgSwitchDefault, selector: "[ngSwitchDefault]" }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1468
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1471
|
+
/** @nocollapse */ MtxCalendar.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCalendar, deps: [{ token: i0.ElementRef }, { token: i1$1.MatDatepickerIntl }, { token: i0.NgZone }, { token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1472
|
+
/** @nocollapse */ MtxCalendar.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxCalendar, selector: "mtx-calendar", inputs: { multiYearSelector: "multiYearSelector", twelvehour: "twelvehour", startView: "startView", timeInterval: "timeInterval", dateFilter: "dateFilter", preventSameDateTimeSelection: "preventSameDateTimeSelection", type: "type", startAt: "startAt", selected: "selected", minDate: "minDate", maxDate: "maxDate" }, outputs: { selectedChange: "selectedChange", viewChanged: "viewChanged", _userSelection: "_userSelection" }, host: { attributes: { "tabindex": "0" }, listeners: { "keydown": "_handleCalendarBodyKeydown($event)" }, classAttribute: "mtx-calendar" }, exportAs: ["mtxCalendar"], ngImport: i0, template: "<div class=\"mtx-calendar-header\">\n <div (click)=\"_yearClicked()\" *ngIf=\"type !== 'time'\"\n [class.active]=\"currentView === 'year' || currentView === 'multi-year'\"\n class=\"mtx-calendar-header-year\" role=\"button\">\n <span>{{ _yearLabel }}</span>\n <svg *ngIf=\"multiYearSelector || type === 'year'\"\n class=\"mtx-calendar-header-year-dropdown\"\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"currentColor\">\n <path d=\"M7,10L12,15L17,10H7Z\"></path>\n </svg>\n </div>\n <div class=\"mtx-calendar-header-date-time\">\n <span (click)=\"_dateClicked()\" *ngIf=\"type !== 'time' && type !== 'year'\"\n [class.active]=\"currentView === 'month'\"\n [class.not-clickable]=\"type === 'month'\"\n class=\"mtx-calendar-header-date\"\n role=\"button\">{{ _dateLabel }}</span>\n <span *ngIf=\"type.endsWith('time')\"\n [class.active]=\"currentView === 'clock'\"\n class=\"mtx-calendar-header-time\">\n <span class=\"mtx-calendar-header-hour-minute-container\">\n <span (click)=\"_hoursClicked()\"\n [class.active]=\"_clockView === 'hour'\"\n class=\"mtx-calendar-header-hours\"\n role=\"button\">{{ _hoursLabel }}</span>\n <span class=\"mtx-calendar-header-hour-minute-separator\">:</span>\n <span (click)=\"_minutesClicked()\"\n [class.active]=\"_clockView === 'minute'\"\n class=\"mtx-calendar-header-minutes\"\n role=\"button\">{{ _minutesLabel }}</span>\n </span>\n <span *ngIf=\"twelvehour\" class=\"mtx-calendar-header-ampm-container\">\n <span (click)=\"_ampmClicked('AM')\"\n [class.active]=\"_AMPM === 'AM'\"\n class=\"mtx-calendar-header-ampm\" role=\"button\">AM</span>\n <span (click)=\"_ampmClicked('PM')\"\n [class.active]=\"_AMPM === 'PM'\"\n class=\"mtx-calendar-header-ampm\" role=\"button\">PM</span>\n </span>\n </span>\n </div>\n</div>\n<div class=\"mtx-calendar-content\" [ngSwitch]=\"currentView\">\n <div *ngIf=\"currentView === 'month' || currentView === 'year' || currentView === 'multi-year'\"\n class=\"mtx-month-content\">\n <div class=\"mtx-calendar-controls\">\n <button mat-icon-button type=\"button\" (click)=\"_previousClicked()\"\n [attr.aria-disabled]=\"!_previousEnabled()\"\n [attr.aria-label]=\"_ariaLabelPrev\"\n [class.disabled]=\"!_previousEnabled()\"\n class=\"mtx-calendar-previous-button\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"></path>\n </svg>\n </button>\n <div [@slideCalendar]=\"_calendarState\"\n (@slideCalendar.done)=\"_calendarStateDone()\"\n class=\"mtx-calendar-period-button\">\n <strong>{{ _monthYearLabel }}</strong>\n </div>\n <button mat-icon-button type=\"button\" (click)=\"_nextClicked()\"\n [attr.aria-disabled]=\"!_nextEnabled()\"\n [attr.aria-label]=\"_ariaLabelNext\"\n [class.disabled]=\"!_nextEnabled()\"\n class=\"mtx-calendar-next-button\">\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\">\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"></path>\n </svg>\n </button>\n </div>\n </div>\n <mtx-month-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_dateSelected($event)\"\n *ngSwitchCase=\"'month'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-month-view>\n <mtx-year-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_monthSelected($event)\"\n *ngSwitchCase=\"'year'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-year-view>\n <mtx-multi-year-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_yearSelected($event)\"\n *ngSwitchCase=\"'multi-year'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"selected!\"\n [type]=\"type\">\n </mtx-multi-year-view>\n <mtx-clock (_userSelection)=\"_userSelected()\"\n (activeDateChange)=\"_onActiveDateChange($event)\"\n (selectedChange)=\"_timeSelected($event)\"\n *ngSwitchDefault\n [dateFilter]=\"dateFilter\"\n [interval]=\"timeInterval\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [selected]=\"_activeDate\"\n [startView]=\"_clockView\"\n [twelvehour]=\"twelvehour\">\n </mtx-clock>\n</div>\n", styles: [".mtx-calendar{display:block;outline:none}.mtx-calendar[mode=landscape]{display:flex}.mtx-calendar-header{padding:16px;box-sizing:border-box;border-radius:4px 4px 0 0}[mode=landscape] .mtx-calendar-header{width:150px;min-width:150px;border-radius:4px 0 0 4px}[dir=rtl] [mode=landscape] .mtx-calendar-header{border-radius:0 4px 4px 0}.mtx-calendar-header-year,.mtx-calendar-header-date-time{width:100%;white-space:nowrap}.mtx-calendar-header-year{line-height:24px}.mtx-calendar-header-year>*{vertical-align:middle}.mtx-calendar-header-year+.mtx-calendar-header-date-time{margin-top:4px}.mtx-calendar-header-date-time{line-height:36px}[mode=landscape] .mtx-calendar-header-date-time{white-space:normal;word-wrap:break-word}.mtx-calendar-header-year:not(.active),.mtx-calendar-header-date:not(.active),.mtx-calendar-header-hours:not(.active),.mtx-calendar-header-minutes:not(.active),.mtx-calendar-header-ampm:not(.active){cursor:pointer;opacity:.6}.mtx-calendar-header-year.not-clickable,.mtx-calendar-header-date.not-clickable,.mtx-calendar-header-hours.not-clickable,.mtx-calendar-header-minutes.not-clickable,.mtx-calendar-header-ampm.not-clickable{cursor:initial}.mtx-calendar-header-time{display:inline-flex}.mtx-calendar-header-time:not(.active){opacity:.6}.mtx-calendar-header-time:not(.active) .mtx-calendar-header-hours,.mtx-calendar-header-time:not(.active) .mtx-calendar-header-minutes,.mtx-calendar-header-time:not(.active) .mtx-calendar-header-ampm{cursor:pointer;opacity:1}[mode=landscape] .mtx-calendar-header-time{display:flex;flex-direction:column}.mtx-calendar-header-hour-minute-container{padding:0 8px}[mode=landscape] .mtx-calendar-header-hour-minute-container{padding:0}.mtx-calendar-header-hour-minute-separator{display:inline-block;width:8px;text-align:center}.mtx-calendar-header-ampm-container{display:inline-flex;flex-direction:column;line-height:18px}[mode=landscape] .mtx-calendar-header-ampm-container{flex-direction:row}[mode=landscape] .mtx-calendar-header-ampm{padding:4px}.mtx-calendar-content{width:100%;padding:8px;outline:none;box-sizing:border-box;overflow:hidden}.mtx-calendar-controls{display:flex;justify-content:space-between;margin:0 calc(4.7142857143% - 16px)}.mtx-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.mtx-calendar-period-button{display:inline-block;height:40px;line-height:40px;outline:none;border:0;background:transparent;box-sizing:border-box}.mtx-calendar-previous-button.disabled,.mtx-calendar-next-button.disabled{pointer-events:none}.mtx-calendar-previous-button svg,.mtx-calendar-next-button svg{fill:currentColor;vertical-align:top}[dir=rtl] .mtx-calendar-previous-button svg,[dir=rtl] .mtx-calendar-next-button svg{transform:rotate(180deg)}.mtx-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.mtx-calendar-table-header th{text-align:center;padding:8px 0}@media all and (orientation: landscape){.mtx-calendar[mode=auto]{display:flex}.mtx-calendar[mode=auto] .mtx-calendar-header{width:150px;min-width:150px;border-radius:4px 0 0 4px}[dir=rtl] .mtx-calendar[mode=auto] .mtx-calendar-header{border-radius:0 4px 4px 0}.mtx-calendar[mode=auto] .mtx-calendar-header-date-time{white-space:normal;word-wrap:break-word}.mtx-calendar[mode=auto] .mtx-calendar-header-time{display:flex;flex-direction:column}.mtx-calendar[mode=auto] .mtx-calendar-header-hour-minute-container{padding:0}.mtx-calendar[mode=auto] .mtx-calendar-header-ampm-container{flex-direction:row}.mtx-calendar[mode=auto] .mtx-calendar-header-ampm{padding:4px}}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: MtxClock, selector: "mtx-clock", inputs: ["dateFilter", "interval", "twelvehour", "activeDate", "selected", "minDate", "maxDate", "startView"], outputs: ["selectedChange", "activeDateChange", "_userSelection"], exportAs: ["mtxClock"] }, { kind: "component", type: MtxMonthView, selector: "mtx-month-view", inputs: ["type", "dateFilter", "activeDate", "selected"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxMonthView"] }, { kind: "component", type: MtxYearView, selector: "mtx-year-view", inputs: ["type", "dateFilter", "activeDate", "selected"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxYearView"] }, { kind: "component", type: MtxMultiYearView, selector: "mtx-multi-year-view", inputs: ["type", "dateFilter", "activeDate", "selected", "minDate", "maxDate"], outputs: ["selectedChange", "_userSelection"], exportAs: ["mtxMultiYearView"] }], animations: [mtxDatetimepickerAnimations.slideCalendar], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1473
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxCalendar, decorators: [{
|
|
1469
1474
|
type: Component,
|
|
1470
1475
|
args: [{ selector: 'mtx-calendar', host: {
|
|
1471
1476
|
'class': 'mtx-calendar',
|
|
@@ -1558,12 +1563,12 @@ class MtxDatetimepickerContent extends _MtxDatetimepickerContentBase {
|
|
|
1558
1563
|
this._animationDone.complete();
|
|
1559
1564
|
}
|
|
1560
1565
|
}
|
|
1561
|
-
/** @nocollapse */ MtxDatetimepickerContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1562
|
-
/** @nocollapse */ MtxDatetimepickerContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1566
|
+
/** @nocollapse */ MtxDatetimepickerContent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerContent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
1567
|
+
/** @nocollapse */ MtxDatetimepickerContent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxDatetimepickerContent, selector: "mtx-datetimepicker-content", inputs: { color: "color" }, host: { listeners: { "@transformPanel.done": "_animationDone.next()" }, properties: { "class.mtx-datetimepicker-content-touch": "datetimepicker?.touchUi", "attr.mode": "datetimepicker.mode", "@transformPanel": "_animationState" }, classAttribute: "mtx-datetimepicker-content" }, viewQueries: [{ propertyName: "_calendar", first: true, predicate: MtxCalendar, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<div cdkTrapFocus\n class=\"mtx-datetimepicker-content-container\"\n [attr.mode]=\"datetimepicker.mode\">\n <mtx-calendar [id]=\"datetimepicker.id\"\n [ngClass]=\"datetimepicker.panelClass\"\n [attr.mode]=\"datetimepicker.mode\"\n [type]=\"datetimepicker.type\"\n [startAt]=\"datetimepicker.startAt\"\n [startView]=\"datetimepicker.startView\"\n [maxDate]=\"datetimepicker._maxDate\"\n [minDate]=\"datetimepicker._minDate\"\n [dateFilter]=\"datetimepicker._dateFilter\"\n [multiYearSelector]=\"datetimepicker.multiYearSelector\"\n [preventSameDateTimeSelection]=\"datetimepicker.preventSameDateTimeSelection\"\n [timeInterval]=\"datetimepicker.timeInterval\"\n [twelvehour]=\"datetimepicker.twelvehour\"\n [selected]=\"datetimepicker._selected\"\n [@fadeInCalendar]=\"'enter'\"\n (selectedChange)=\"datetimepicker._select($event)\"\n (viewChanged)=\"datetimepicker._viewChanged($event)\"\n (_userSelection)=\"datetimepicker.close()\">\n </mtx-calendar>\n</div>\n", styles: [".mtx-datetimepicker-content{display:block;border-radius:4px}.mtx-datetimepicker-content-container{display:flex;flex-direction:column;justify-content:space-between}.mtx-datetimepicker-content .mtx-calendar{width:296px;height:424px}.mtx-datetimepicker-content .mtx-calendar[mode=landscape]{width:446px;height:328px}@media all and (orientation: landscape){.mtx-datetimepicker-content .mtx-calendar[mode=auto]{width:446px;height:328px}}.mtx-datetimepicker-content-touch{display:block;max-height:80vh;position:relative;overflow:visible}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container{min-height:300px;max-height:850px;min-width:250px;max-width:750px}.mtx-datetimepicker-content-touch .mtx-calendar{width:100%;height:auto}@media all and (orientation: landscape){.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=auto],.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=landscape]{width:120vh;height:80vh}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=auto] .mtx-calendar,.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=landscape] .mtx-calendar{width:auto;height:100%}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=portrait]{width:64vh;height:90vh}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=portrait] .mtx-calendar{width:100%;height:auto}}@media all and (orientation: portrait){.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=auto],.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=portrait]{width:80vw;height:120vw}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=auto] .mtx-calendar,.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=portrait] .mtx-calendar{width:100%;height:auto}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=landscape]{width:90vw;height:64vw}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container[mode=landscape] .mtx-calendar{width:auto;height:100%}.mtx-datetimepicker-content-touch .mtx-datetimepicker-content-container-with-actions{height:135vw}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: MtxCalendar, selector: "mtx-calendar", inputs: ["multiYearSelector", "twelvehour", "startView", "timeInterval", "dateFilter", "preventSameDateTimeSelection", "type", "startAt", "selected", "minDate", "maxDate"], outputs: ["selectedChange", "viewChanged", "_userSelection"], exportAs: ["mtxCalendar"] }], animations: [
|
|
1563
1568
|
mtxDatetimepickerAnimations.transformPanel,
|
|
1564
1569
|
mtxDatetimepickerAnimations.fadeInCalendar,
|
|
1565
1570
|
], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1566
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1571
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerContent, decorators: [{
|
|
1567
1572
|
type: Component,
|
|
1568
1573
|
args: [{ selector: 'mtx-datetimepicker-content', host: {
|
|
1569
1574
|
'class': 'mtx-datetimepicker-content',
|
|
@@ -1591,7 +1596,9 @@ class MtxDatetimepicker {
|
|
|
1591
1596
|
this._twelvehour = false;
|
|
1592
1597
|
/** The view that the calendar should start in. */
|
|
1593
1598
|
this.startView = 'month';
|
|
1599
|
+
/** The display mode of datetimepicker. */
|
|
1594
1600
|
this.mode = 'auto';
|
|
1601
|
+
/** Step over minutes. */
|
|
1595
1602
|
this.timeInterval = 1;
|
|
1596
1603
|
/** Prevent user to select same date time */
|
|
1597
1604
|
this.preventSameDateTimeSelection = false;
|
|
@@ -1628,14 +1635,14 @@ class MtxDatetimepicker {
|
|
|
1628
1635
|
throw createMissingDateImplError('DateAdapter');
|
|
1629
1636
|
}
|
|
1630
1637
|
}
|
|
1631
|
-
/**
|
|
1638
|
+
/** Whether to show multi-year view. */
|
|
1632
1639
|
get multiYearSelector() {
|
|
1633
1640
|
return this._multiYearSelector;
|
|
1634
1641
|
}
|
|
1635
1642
|
set multiYearSelector(value) {
|
|
1636
1643
|
this._multiYearSelector = coerceBooleanProperty(value);
|
|
1637
1644
|
}
|
|
1638
|
-
/**
|
|
1645
|
+
/** Whether the clock uses 12 hour format. */
|
|
1639
1646
|
get twelvehour() {
|
|
1640
1647
|
return this._twelvehour;
|
|
1641
1648
|
}
|
|
@@ -1676,6 +1683,7 @@ class MtxDatetimepicker {
|
|
|
1676
1683
|
set startAt(date) {
|
|
1677
1684
|
this._startAt = this._dateAdapter.getValidDateOrNull(date);
|
|
1678
1685
|
}
|
|
1686
|
+
/** The display type of datetimepicker. */
|
|
1679
1687
|
get type() {
|
|
1680
1688
|
return this._type;
|
|
1681
1689
|
}
|
|
@@ -1921,9 +1929,9 @@ class MtxDatetimepicker {
|
|
|
1921
1929
|
})));
|
|
1922
1930
|
}
|
|
1923
1931
|
}
|
|
1924
|
-
/** @nocollapse */ MtxDatetimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1925
|
-
/** @nocollapse */ MtxDatetimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
1926
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1932
|
+
/** @nocollapse */ MtxDatetimepicker.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepicker, deps: [{ token: i4$1.Overlay }, { token: i0.NgZone }, { token: i0.ViewContainerRef }, { token: MTX_DATETIMEPICKER_SCROLL_STRATEGY }, { token: i1.DatetimeAdapter, optional: true }, { token: i6.Directionality, optional: true }], target: i0.ɵɵFactoryTarget.Component });
|
|
1933
|
+
/** @nocollapse */ MtxDatetimepicker.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxDatetimepicker, selector: "mtx-datetimepicker", inputs: { multiYearSelector: "multiYearSelector", twelvehour: "twelvehour", startView: "startView", mode: "mode", timeInterval: "timeInterval", preventSameDateTimeSelection: "preventSameDateTimeSelection", panelClass: "panelClass", opened: "opened", color: "color", startAt: "startAt", type: "type", touchUi: "touchUi", disabled: "disabled", xPosition: "xPosition", yPosition: "yPosition", restoreFocus: "restoreFocus" }, outputs: { selectedChanged: "selectedChanged", openedStream: "opened", closedStream: "closed", viewChanged: "viewChanged" }, exportAs: ["mtxDatetimepicker"], ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
1934
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepicker, decorators: [{
|
|
1927
1935
|
type: Component,
|
|
1928
1936
|
args: [{
|
|
1929
1937
|
selector: 'mtx-datetimepicker',
|
|
@@ -1934,7 +1942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
1934
1942
|
preserveWhitespaces: false,
|
|
1935
1943
|
}]
|
|
1936
1944
|
}], ctorParameters: function () {
|
|
1937
|
-
return [{ type: i4.Overlay }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
1945
|
+
return [{ type: i4$1.Overlay }, { type: i0.NgZone }, { type: i0.ViewContainerRef }, { type: undefined, decorators: [{
|
|
1938
1946
|
type: Inject,
|
|
1939
1947
|
args: [MTX_DATETIMEPICKER_SCROLL_STRATEGY]
|
|
1940
1948
|
}] }, { type: i1.DatetimeAdapter, decorators: [{
|
|
@@ -2263,13 +2271,13 @@ class MtxDatetimepickerInput {
|
|
|
2263
2271
|
return this._formField ? this._formField.color : undefined;
|
|
2264
2272
|
}
|
|
2265
2273
|
}
|
|
2266
|
-
/** @nocollapse */ MtxDatetimepickerInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2267
|
-
/** @nocollapse */ MtxDatetimepickerInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
2274
|
+
/** @nocollapse */ MtxDatetimepickerInput.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerInput, deps: [{ token: i0.ElementRef }, { token: i1.DatetimeAdapter, optional: true }, { token: MTX_DATETIME_FORMATS, optional: true }, { token: i2$2.MatFormField, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
|
|
2275
|
+
/** @nocollapse */ MtxDatetimepickerInput.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: MtxDatetimepickerInput, selector: "input[mtxDatetimepicker]", inputs: { mtxDatetimepicker: "mtxDatetimepicker", mtxDatetimepickerFilter: "mtxDatetimepickerFilter", value: "value", min: "min", max: "max", disabled: "disabled" }, outputs: { dateChange: "dateChange", dateInput: "dateInput" }, host: { listeners: { "input": "_onInput($event.target.value)", "change": "_onChange()", "blur": "_onBlur()", "keydown": "_onKeydown($event)" }, properties: { "attr.aria-haspopup": "true", "attr.aria-owns": "(_datetimepicker?.opened && _datetimepicker.id) || null", "attr.min": "min ? _dateAdapter.toIso8601(min) : null", "attr.max": "max ? _dateAdapter.toIso8601(max) : null", "disabled": "disabled" } }, providers: [
|
|
2268
2276
|
MAT_DATETIMEPICKER_VALUE_ACCESSOR,
|
|
2269
2277
|
MAT_DATETIMEPICKER_VALIDATORS,
|
|
2270
2278
|
{ provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: MtxDatetimepickerInput },
|
|
2271
2279
|
], exportAs: ["mtxDatetimepickerInput"], ngImport: i0 });
|
|
2272
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2280
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerInput, decorators: [{
|
|
2273
2281
|
type: Directive,
|
|
2274
2282
|
args: [{
|
|
2275
2283
|
selector: 'input[mtxDatetimepicker]',
|
|
@@ -2299,7 +2307,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
2299
2307
|
}, {
|
|
2300
2308
|
type: Inject,
|
|
2301
2309
|
args: [MTX_DATETIME_FORMATS]
|
|
2302
|
-
}] }, { type: i2$
|
|
2310
|
+
}] }, { type: i2$2.MatFormField, decorators: [{
|
|
2303
2311
|
type: Optional
|
|
2304
2312
|
}] }];
|
|
2305
2313
|
}, propDecorators: { dateChange: [{
|
|
@@ -2323,9 +2331,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
2323
2331
|
/** Can be used to override the icon of a `mtxDatetimepickerToggle`. */
|
|
2324
2332
|
class MtxDatetimepickerToggleIcon {
|
|
2325
2333
|
}
|
|
2326
|
-
/** @nocollapse */ MtxDatetimepickerToggleIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2327
|
-
/** @nocollapse */ MtxDatetimepickerToggleIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "
|
|
2328
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2334
|
+
/** @nocollapse */ MtxDatetimepickerToggleIcon.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerToggleIcon, deps: [], target: i0.ɵɵFactoryTarget.Directive });
|
|
2335
|
+
/** @nocollapse */ MtxDatetimepickerToggleIcon.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: MtxDatetimepickerToggleIcon, selector: "[mtxDatetimepickerToggleIcon]", ngImport: i0 });
|
|
2336
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerToggleIcon, decorators: [{
|
|
2329
2337
|
type: Directive,
|
|
2330
2338
|
args: [{
|
|
2331
2339
|
selector: '[mtxDatetimepickerToggleIcon]',
|
|
@@ -2376,9 +2384,9 @@ class MtxDatetimepickerToggle {
|
|
|
2376
2384
|
]).subscribe(() => this._changeDetectorRef.markForCheck());
|
|
2377
2385
|
}
|
|
2378
2386
|
}
|
|
2379
|
-
/** @nocollapse */ MtxDatetimepickerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2380
|
-
/** @nocollapse */ MtxDatetimepickerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
2381
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2387
|
+
/** @nocollapse */ MtxDatetimepickerToggle.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerToggle, deps: [{ token: i1$1.MatDatepickerIntl }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2388
|
+
/** @nocollapse */ MtxDatetimepickerToggle.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: MtxDatetimepickerToggle, selector: "mtx-datetimepicker-toggle", inputs: { datetimepicker: ["for", "datetimepicker"], tabIndex: "tabIndex", disabled: "disabled", disableRipple: "disableRipple" }, host: { listeners: { "focus": "_button.focus()" }, properties: { "attr.tabindex": "disabled ? null : -1", "class.mtx-datetimepicker-toggle-active": "datetimepicker && datetimepicker.opened", "class.mat-accent": "datetimepicker && datetimepicker.color === \"accent\"", "class.mat-warn": "datetimepicker && datetimepicker.color === \"warn\"" }, classAttribute: "mtx-datetimepicker-toggle" }, queries: [{ propertyName: "_customIcon", first: true, predicate: MtxDatetimepickerToggleIcon, descendants: true }], viewQueries: [{ propertyName: "_button", first: true, predicate: ["button"], descendants: true }], exportAs: ["mtxDatetimepickerToggle"], usesOnChanges: true, ngImport: i0, template: "<button #button\n mat-icon-button\n type=\"button\"\n [attr.aria-haspopup]=\"datetimepicker ? 'dialog' : null\"\n [attr.aria-label]=\"_intl.openCalendarLabel\"\n [attr.tabindex]=\"disabled ? -1 : tabIndex\"\n [disabled]=\"disabled\"\n [disableRipple]=\"disableRipple\"\n (click)=\"_open($event)\">\n\n <ng-container *ngIf=\"!_customIcon\" [ngSwitch]=\"datetimepicker.type\">\n <svg *ngSwitchCase=\"'time'\"\n class=\"mtx-datetimepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M12,20A8,8 0 0,0 20,12A8,8 0 0,0 12,4A8,8 0 0,0 4,12A8,8 0 0,0 12,20M12,2A10,10 0 0,1 22,12A10,10 0 0,1 12,22C6.47,22 2,17.5 2,12A10,10 0 0,1 12,2M12.5,7V12.25L17,14.92L16.25,16.15L11,13V7H12.5Z\">\n </path>\n </svg>\n <svg *ngSwitchCase=\"'datetime'\"\n class=\"mtx-datetimepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path\n d=\"M15,13H16.5V15.82L18.94,17.23L18.19,18.53L15,16.69V13M19,8H5V19H9.67C9.24,18.09 9,17.07 9,16A7,7 0 0,1 16,9C17.07,9 18.09,9.24 19,9.67V8M5,21C3.89,21 3,20.1 3,19V5C3,3.89 3.89,3 5,3H6V1H8V3H16V1H18V3H19A2,2 0 0,1 21,5V11.1C22.24,12.36 23,14.09 23,16A7,7 0 0,1 16,23C14.09,23 12.36,22.24 11.1,21H5M16,11.15A4.85,4.85 0 0,0 11.15,16C11.15,18.68 13.32,20.85 16,20.85A4.85,4.85 0 0,0 20.85,16C20.85,13.32 18.68,11.15 16,11.15Z\">\n </path>\n </svg>\n <svg *ngSwitchDefault\n class=\"mtx-datetimepicker-toggle-default-icon\"\n viewBox=\"0 0 24 24\"\n width=\"24px\"\n height=\"24px\"\n fill=\"currentColor\"\n focusable=\"false\">\n <path d=\"M0 0h24v24H0z\" fill=\"none\" />\n <path\n d=\"M19 3h-1V1h-2v2H8V1H6v2H5c-1.11 0-1.99.9-1.99 2L3 19c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2zm0 16H5V8h14v11zM7 10h5v5H7z\" />\n </svg>\n </ng-container>\n\n <ng-content select=\"[mtxDatetimepickerToggleIcon]\"></ng-content>\n</button>\n", styles: [".mat-form-field-appearance-legacy .mat-form-field-prefix .mtx-datetimepicker-toggle-default-icon,.mat-form-field-appearance-legacy .mat-form-field-suffix .mtx-datetimepicker-toggle-default-icon{width:1em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mtx-datetimepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mtx-datetimepicker-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mtx-datetimepicker-toggle-default-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mtx-datetimepicker-toggle-default-icon{margin:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i4.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
|
2389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerToggle, decorators: [{
|
|
2382
2390
|
type: Component,
|
|
2383
2391
|
args: [{ selector: 'mtx-datetimepicker-toggle', host: {
|
|
2384
2392
|
'class': 'mtx-datetimepicker-toggle',
|
|
@@ -2409,8 +2417,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.6", ngImpor
|
|
|
2409
2417
|
|
|
2410
2418
|
class MtxDatetimepickerModule {
|
|
2411
2419
|
}
|
|
2412
|
-
/** @nocollapse */ MtxDatetimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2413
|
-
/** @nocollapse */ MtxDatetimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "
|
|
2420
|
+
/** @nocollapse */ MtxDatetimepickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
2421
|
+
/** @nocollapse */ MtxDatetimepickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerModule, declarations: [MtxCalendar,
|
|
2414
2422
|
MtxCalendarBody,
|
|
2415
2423
|
MtxClock,
|
|
2416
2424
|
MtxDatetimepicker,
|
|
@@ -2431,8 +2439,8 @@ class MtxDatetimepickerModule {
|
|
|
2431
2439
|
MtxMonthView,
|
|
2432
2440
|
MtxYearView,
|
|
2433
2441
|
MtxMultiYearView] });
|
|
2434
|
-
/** @nocollapse */ MtxDatetimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2435
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2442
|
+
/** @nocollapse */ MtxDatetimepickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerModule, providers: [MTX_DATETIMEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER], imports: [CommonModule, MatButtonModule, OverlayModule, A11yModule, PortalModule] });
|
|
2443
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: MtxDatetimepickerModule, decorators: [{
|
|
2436
2444
|
type: NgModule,
|
|
2437
2445
|
args: [{
|
|
2438
2446
|
imports: [CommonModule, MatButtonModule, OverlayModule, A11yModule, PortalModule],
|