@gipisistemas/ng-core 1.1.11 → 1.1.13
Sign up to get free protection for your applications and to get access to all the features.
- package/assets/styles/colors.scss +228 -211
- package/assets/styles/styles.scss +54 -5
- package/bundles/gipisistemas-ng-core.umd.js +3516 -146
- package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
- package/bundles/gipisistemas-ng-core.umd.min.js +9 -9
- package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
- package/core/gipi-components/components/abstract-find.component.d.ts +1 -0
- package/core/gipi-components/components/abstract.component.d.ts +1 -0
- package/esm2015/core/gipi-components/components/abstract-find.component.js +22 -1
- package/esm2015/core/gipi-components/components/abstract.component.js +5 -2
- package/esm2015/gipi-components.js +19 -6
- package/esm2015/gipisistemas-ng-core.js +3 -1
- package/esm2015/shared/components/button/button.component.js +2 -2
- package/esm2015/shared/components/icon/icon.component.js +2 -4
- package/esm2015/shared/gipi-components/button/button.component.js +2 -2
- package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
- package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
- package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
- package/esm2015/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +158 -0
- package/esm2015/shared/gipi-components/datetime-picker/datetime-picker.module.js +82 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +116 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +676 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +306 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +346 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +83 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +451 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +151 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +230 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +43 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +139 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +138 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
- package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +141 -0
- package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
- package/esm2015/shared/gipi-components/form-field/form-field.component.js +8 -3
- package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +1 -1
- package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
- package/esm2015/shared/gipi-components/input-select/input-select.component.js +1 -1
- package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +20 -6
- package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
- package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +1 -1
- package/esm2015/shared/gipi-components/range-page/range-page.component.js +1 -1
- package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +1 -1
- package/esm2015/shared/gipi-components/select-button/select-button.component.js +1 -1
- package/esm2015/shared/gipi-components/split-button/split-button.component.js +2 -2
- package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +5 -2
- package/esm2015/shared/gipi-components/textarea/textarea.component.js +1 -1
- package/esm2015/shared/shared.module.js +51 -3
- package/esm5/core/gipi-components/components/abstract-find.component.js +22 -1
- package/esm5/core/gipi-components/components/abstract.component.js +5 -2
- package/esm5/gipi-components.js +19 -6
- package/esm5/gipisistemas-ng-core.js +3 -1
- package/esm5/shared/components/button/button.component.js +2 -2
- package/esm5/shared/components/icon/icon.component.js +2 -4
- package/esm5/shared/gipi-components/button/button.component.js +2 -2
- package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
- package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
- package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
- package/esm5/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +176 -0
- package/esm5/shared/gipi-components/datetime-picker/datetime-picker.module.js +85 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +119 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +747 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +332 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +377 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +89 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +495 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +160 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +248 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +49 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +145 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +141 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
- package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +151 -0
- package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
- package/esm5/shared/gipi-components/form-field/form-field.component.js +8 -3
- package/esm5/shared/gipi-components/input-currency/input-currency.component.js +1 -1
- package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
- package/esm5/shared/gipi-components/input-select/input-select.component.js +1 -1
- package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +25 -6
- package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
- package/esm5/shared/gipi-components/radio-group/radio-group.component.js +1 -1
- package/esm5/shared/gipi-components/range-page/range-page.component.js +1 -1
- package/esm5/shared/gipi-components/range-slider/range-slider.component.js +1 -1
- package/esm5/shared/gipi-components/select-button/select-button.component.js +1 -1
- package/esm5/shared/gipi-components/split-button/split-button.component.js +2 -2
- package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +5 -2
- package/esm5/shared/gipi-components/textarea/textarea.component.js +1 -1
- package/esm5/shared/shared.module.js +51 -3
- package/fesm2015/gipisistemas-ng-core.js +3244 -157
- package/fesm2015/gipisistemas-ng-core.js.map +1 -1
- package/fesm5/gipisistemas-ng-core.js +3494 -152
- package/fesm5/gipisistemas-ng-core.js.map +1 -1
- package/gipi-components.d.ts +16 -0
- package/gipisistemas-ng-core.d.ts +2 -0
- package/gipisistemas-ng-core.metadata.json +1 -1
- package/package.json +4 -4
- package/shared/components/icon/icon.component.d.ts +1 -3
- package/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.d.ts +40 -0
- package/shared/gipi-components/datetime-picker/datetime-picker.module.d.ts +2 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.d.ts +50 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.d.ts +140 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.d.ts +66 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.d.ts +8 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.d.ts +2 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.d.ts +5 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.d.ts +98 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.d.ts +20 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.d.ts +1 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.d.ts +133 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.d.ts +53 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.d.ts +80 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.d.ts +4 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.d.ts +46 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.d.ts +20 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.d.ts +36 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.d.ts +2 -0
- package/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.d.ts +52 -0
- package/shared/gipi-components/form-field/form-field.component.d.ts +1 -0
- package/shared/gipi-components/input-select-enum/input-select-enum.component.d.ts +4 -2
@@ -27,7 +27,7 @@ import { MatButtonToggleModule } from '@angular/material/button-toggle';
|
|
27
27
|
import { MatCardModule } from '@angular/material/card';
|
28
28
|
import { MatCheckboxModule } from '@angular/material/checkbox';
|
29
29
|
import { MatChipsModule } from '@angular/material/chips';
|
30
|
-
import { MatRippleModule, MAT_DATE_FORMATS as MAT_DATE_FORMATS$1, ErrorStateMatcher, mixinErrorState, mixinColor } from '@angular/material/core';
|
30
|
+
import { MatRippleModule, MAT_DATE_FORMATS as MAT_DATE_FORMATS$1, ErrorStateMatcher, mixinErrorState, mixinColor, DateAdapter as DateAdapter$1, MAT_DATE_LOCALE as MAT_DATE_LOCALE$1, NativeDateModule, MatNativeDateModule as MatNativeDateModule$1 } from '@angular/material/core';
|
31
31
|
import { MatDialogModule, MatDialog as MatDialog$1 } from '@angular/material/dialog';
|
32
32
|
import { MatDividerModule } from '@angular/material/divider';
|
33
33
|
import { MatExpansionModule } from '@angular/material/expansion';
|
@@ -55,10 +55,10 @@ import { MatTooltipModule } from '@angular/material/tooltip';
|
|
55
55
|
import { MatTreeModule } from '@angular/material/tree';
|
56
56
|
import rfdc_ from 'rfdc';
|
57
57
|
import { HttpHeaders, HttpParams, HttpClient, HttpErrorResponse, HttpClientModule, HTTP_INTERCEPTORS } from '@angular/common/http';
|
58
|
-
import { Subject, throwError, BehaviorSubject, of, combineLatest, fromEvent, ReplaySubject, Subscription, merge } from 'rxjs';
|
59
|
-
import { debounceTime, map, distinctUntilChanged, switchMap, startWith, delay, takeUntil, take, tap, filter, auditTime, finalize, shareReplay, catchError } from 'rxjs/operators';
|
58
|
+
import { Subject, throwError, BehaviorSubject, of, combineLatest, fromEvent, ReplaySubject, Subscription, merge, asyncScheduler } from 'rxjs';
|
59
|
+
import { debounceTime, map, distinctUntilChanged, switchMap, startWith, delay, takeUntil, take, tap, filter, auditTime, finalize, shareReplay, first, catchError } from 'rxjs/operators';
|
60
60
|
import { parsePhoneNumberFromString, getExampleNumber } from 'libphonenumber-js';
|
61
|
-
import { trigger, state, style, transition, animate, animation, useAnimation } from '@angular/animations';
|
61
|
+
import { trigger, state, style, transition, animate, animation, useAnimation, keyframes } from '@angular/animations';
|
62
62
|
import { A, Z, ZERO, NINE, SPACE, HOME, END, ENTER, ESCAPE, UP_ARROW, DOWN_ARROW, PAGE_DOWN, PAGE_UP, RIGHT_ARROW, LEFT_ARROW, BACKSPACE } from '@angular/cdk/keycodes';
|
63
63
|
import { coerceCssPixelValue, coerceBooleanProperty, coerceNumberProperty } from '@angular/cdk/coercion';
|
64
64
|
import { MediaMatcher, BreakpointObserver } from '@angular/cdk/layout';
|
@@ -66,7 +66,7 @@ import { Platform as Platform$1, PlatformModule } from '@angular/cdk/platform';
|
|
66
66
|
import { Directionality } from '@angular/cdk/bidi';
|
67
67
|
import { OverlayConfig, Overlay, OverlayModule } from '@angular/cdk/overlay';
|
68
68
|
import * as moment_ from 'moment';
|
69
|
-
import { matDatepickerAnimations as matDatepickerAnimations$1 } from '@angular/material/datepicker';
|
69
|
+
import { MatDatepickerIntl as MatDatepickerIntl$1, MAT_DATEPICKER_SCROLL_STRATEGY as MAT_DATEPICKER_SCROLL_STRATEGY$1, MatDatepickerModule, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER as MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER$1, matDatepickerAnimations as matDatepickerAnimations$1 } from '@angular/material/datepicker';
|
70
70
|
import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
|
71
71
|
import { DomSanitizer } from '@angular/platform-browser';
|
72
72
|
import { onlyNumbers, isValidIE, isValidCEP } from '@brazilian-utils/brazilian-utils';
|
@@ -82,15 +82,6 @@ const DEFAULT_MESSAGES = {
|
|
82
82
|
NOT_PERMISSION: 'Infelizmente, esta ação não é permitida para o seu perfil',
|
83
83
|
};
|
84
84
|
|
85
|
-
/**
|
86
|
-
* @license
|
87
|
-
* Copyright Google LLC All Rights Reserved.
|
88
|
-
*
|
89
|
-
* Use of this source code is governed by an MIT-style license that can be
|
90
|
-
* found in the LICENSE file at https://angular.io/license
|
91
|
-
*/
|
92
|
-
const MAT_DATE_FORMATS = new InjectionToken('mat-date-formats');
|
93
|
-
|
94
85
|
const MODULES = [
|
95
86
|
A11yModule,
|
96
87
|
CdkPopoverEditModule,
|
@@ -148,6 +139,17 @@ MaterialModule = __decorate([
|
|
148
139
|
})
|
149
140
|
], MaterialModule);
|
150
141
|
|
142
|
+
/**
|
143
|
+
* @license
|
144
|
+
* Copyright Google LLC All Rights Reserved.
|
145
|
+
*
|
146
|
+
* Use of this source code is governed by an MIT-style license that can be
|
147
|
+
* found in the LICENSE file at https://angular.io/license
|
148
|
+
*/
|
149
|
+
const MAT_DATE_FORMATS = new InjectionToken('mat-date-formats');
|
150
|
+
|
151
|
+
const GIPI_DATETIME_FORMATS = new InjectionToken('mat-datetime-formats');
|
152
|
+
|
151
153
|
let ButtonComponent = class ButtonComponent {
|
152
154
|
constructor() {
|
153
155
|
this.color = 'primary';
|
@@ -248,7 +250,7 @@ __decorate([
|
|
248
250
|
ButtonComponent = __decorate([
|
249
251
|
Component({
|
250
252
|
selector: 'itss-button',
|
251
|
-
template: "<button #button\n mat-raised-button\n *ngIf=\"type === 'raised'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n <mat-icon *ngIf=\"rightIcon\">\n {{ rightIcon }}\n </mat-icon>\n</button>\n\n<button #button\n mat-stroked-button\n *ngIf=\"type === 'stroked'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-icon-button\n *ngIf=\"type === 'icon'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n [matMenuTriggerFor]=\"menu\"\n mat-button\n *ngIf=\"type === 'menu'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-raised-button\n *ngIf=\"type === 'spinner'\"\n [color]=\"color\"\n [disabled]=\"loading || disabled\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon && !loading\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <mat-icon *ngIf=\"loading\">\n <mat-spinner diameter=\"20\"> </mat-spinner>\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-button\n *ngIf=\"!type\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-button\n *ngIf=\"type === 'popover'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n [mdePopoverTriggerFor]=\"popover\"\n mdePopoverTriggerOn=\"click\"\n #popoverTrigger=\"mdePopoverTrigger\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-icon-button\n *ngIf=\"type === 'popover-icon'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n [mdePopoverTriggerFor]=\"popover\"\n mdePopoverTriggerOn=\"click\"\n #popoverTrigger=\"mdePopoverTrigger\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n</button>\n<mde-popover #popover=\"mdePopover\"\n [mdePopoverOverlapTrigger]=\"false\"\n [mdePopoverCloseOnClick]=\"false\"\n [mdeFocusTrapEnabled]=\"false\"\n [mdeFocusTrapAutoCaptureEnabled]=\"false\">\n <mat-card [ngClass]=\"styleClassPopover\"\n class=\"button-popover\">\n <mat-card-content>\n <ng-template [ngTemplateOutlet]=\"popoverRef\"></ng-template>\n </mat-card-content>\n </mat-card>\n</mde-popover>\n",
|
253
|
+
template: "<button #button\n mat-raised-button\n *ngIf=\"type === 'raised'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n <mat-icon *ngIf=\"rightIcon\">\n {{ rightIcon }}\n </mat-icon>\n</button>\n\n<button #button\n mat-stroked-button\n *ngIf=\"type === 'stroked'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-icon-button\n *ngIf=\"type === 'icon'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n [matMenuTriggerFor]=\"menu\"\n mat-button\n *ngIf=\"type === 'menu'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-raised-button\n *ngIf=\"type === 'spinner'\"\n [color]=\"color\"\n [disabled]=\"loading || disabled\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon && !loading\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <mat-icon *ngIf=\"loading\">\n <mat-spinner diameter=\"20\"> </mat-spinner>\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-button\n *ngIf=\"!type\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-button\n *ngIf=\"type === 'popover'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n [mdePopoverTriggerFor]=\"popover\"\n mdePopoverTriggerOn=\"click\"\n #popoverTrigger=\"mdePopoverTrigger\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n <span>\n {{ label }}\n </span>\n</button>\n\n<button #button\n mat-icon-button\n *ngIf=\"type === 'popover-icon'\"\n [color]=\"color\"\n [matBadge]=\"badge\"\n [matBadgeColor]=\"badgeColor\"\n [disabled]=\"disabled\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n [mdePopoverTriggerFor]=\"popover\"\n mdePopoverTriggerOn=\"click\"\n #popoverTrigger=\"mdePopoverTrigger\"\n fxFlex\n (click)=\"onClickButton($event)\">\n <mat-icon *ngIf=\"icon\">\n {{ icon }}\n </mat-icon>\n <mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\">\n </mat-icon>\n</button>\n<mde-popover #popover=\"mdePopover\"\n [mdePopoverOverlapTrigger]=\"false\"\n [mdePopoverCloseOnClick]=\"false\"\n [mdeFocusTrapEnabled]=\"false\"\n [mdeFocusTrapAutoCaptureEnabled]=\"false\">\n <mat-card [ngClass]=\"styleClassPopover\"\n class=\"button-popover\">\n <mat-card-content>\n <ng-template [ngTemplateOutlet]=\"popoverRef\"></ng-template>\n </mat-card-content>\n </mat-card>\n</mde-popover>\n",
|
252
254
|
styles: [":host button:disabled{cursor:not-allowed!important}:host button:disabled ::ng-deep .mat-button-wrapper{pointer-events:none!important}"]
|
253
255
|
})
|
254
256
|
], ButtonComponent);
|
@@ -374,8 +376,6 @@ CheckboxComponent = CheckboxComponent_1 = __decorate([
|
|
374
376
|
], CheckboxComponent);
|
375
377
|
|
376
378
|
let IconComponent = class IconComponent {
|
377
|
-
ngOnInit() {
|
378
|
-
}
|
379
379
|
};
|
380
380
|
__decorate([
|
381
381
|
Input(),
|
@@ -400,7 +400,7 @@ __decorate([
|
|
400
400
|
IconComponent = __decorate([
|
401
401
|
Component({
|
402
402
|
selector: 'itss-icon',
|
403
|
-
template: "<mat-icon *ngIf=\"icon\"\n [style.color]=\"color\"\n [matTooltip]=\"tooltip\"\n [style.width.px]=\"iconSize\"\n [style.height.px]=\"iconSize\"\n matSuffix>\n {{ icon }}\n</mat-icon>\n\n<mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\"\n [matTooltip]=\"tooltip\"\n [style.color]=\"color\"\n [style.width.px]=\"iconSize\"\n [style.height.px]=\"iconSize\"\n matSuffix>\n</mat-icon>\n",
|
403
|
+
template: "<mat-icon *ngIf=\"icon\"\n [style.color]=\"color\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n [style.width.px]=\"iconSize\"\n [style.height.px]=\"iconSize\"\n matSuffix>\n {{ icon }}\n</mat-icon>\n\n<mat-icon *ngIf=\"svgIcon\"\n [svgIcon]=\"svgIcon\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n [style.color]=\"color\"\n [style.width.px]=\"iconSize\"\n [style.height.px]=\"iconSize\"\n matSuffix>\n</mat-icon>\n",
|
404
404
|
styles: [""]
|
405
405
|
})
|
406
406
|
], IconComponent);
|
@@ -8807,7 +8807,7 @@ GIPIButtonComponent = GIPIButtonComponent_1 = __decorate([
|
|
8807
8807
|
selector: `gipi-button[gipi-primary], gipi-button[gipi-primary-icon], gipi-button[gipi-secondary], gipi-button[gipi-secondary-icon],
|
8808
8808
|
gipi-button[gipi-tertiary], gipi-button[gipi-link], gipi-button[gipi-icon], gipi-button[gipi-action]`,
|
8809
8809
|
exportAs: 'gipiButton',
|
8810
|
-
template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"internalButtonClass\"\n [style.padding.px]=\"buttonPadding\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"popover ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n <span [ngClass]=\"{'button-content': true,\n 'button-disabled': disabled,\n 'button-icon-left': ((iconPos === 'left') && label),\n 'button-icon-right': ((iconPos === 'right') && label),\n 'button-icon-top': ((iconPos === 'top') && label),\n 'button-icon-bottom': ((iconPos === 'bottom') && label),\n 'button-icon-center': (iconPos === 'center')}\">\n <mat-icon *ngIf=\"svgIcon || icon\"\n [svgIcon]=\"svgIcon\"\n [style.width.px]=\"iconWidth\"\n [style.height.px]=\"iconHeight\"\n [style.font-size.px]=\"iconWidth || iconHeight\">\n {{ (!svgIcon && icon) ? icon : '' }}\n </mat-icon>\n\n <span class=\"button-label\"\n [attr.aria-hidden]=\"(icon || svgIcon) && !label\"\n *ngIf=\"!isButtonIcon && label\">\n {{ label }}\n </span>\n </span>\n</button>\n\n<gipi-overlay *ngIf=\"overlay && !popover\"\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onShowOverlay.emit()\">\n <ng-content> </ng-content>\n</gipi-overlay>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\"\n [fxHide]=\"!popover\">\n <div class=\"btn-popover-content\">\n <ng-content> </ng-content>\n </div>\n</gipi-popover
|
8810
|
+
template: "<button [attr.id]=\"id\"\n [attr.name]=\"name\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n role=\"button\"\n [class]=\"buttonClass\"\n [ngClass]=\"internalButtonClass\"\n [style.padding.px]=\"buttonPadding\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"popover ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n <span [ngClass]=\"{'button-content': true,\n 'button-disabled': disabled,\n 'button-icon-left': ((iconPos === 'left') && label),\n 'button-icon-right': ((iconPos === 'right') && label),\n 'button-icon-top': ((iconPos === 'top') && label),\n 'button-icon-bottom': ((iconPos === 'bottom') && label),\n 'button-icon-center': (iconPos === 'center')}\">\n <mat-icon *ngIf=\"svgIcon || icon\"\n [svgIcon]=\"svgIcon\"\n [style.width.px]=\"iconWidth\"\n [style.height.px]=\"iconHeight\"\n [style.font-size.px]=\"iconWidth || iconHeight\">\n {{ (!svgIcon && icon) ? icon : '' }}\n </mat-icon>\n\n <span class=\"button-label\"\n [attr.aria-hidden]=\"(icon || svgIcon) && !label\"\n *ngIf=\"!isButtonIcon && label\">\n {{ label }}\n </span>\n </span>\n</button>\n\n<gipi-overlay *ngIf=\"overlay && !popover\"\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onShowOverlay.emit()\">\n <ng-content> </ng-content>\n</gipi-overlay>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\"\n [fxHide]=\"!popover\">\n <div class=\"btn-popover-content\">\n <ng-content> </ng-content>\n </div>\n</gipi-popover>\n",
|
8811
8811
|
providers: [
|
8812
8812
|
{
|
8813
8813
|
provide: NG_VALUE_ACCESSOR,
|
@@ -9291,7 +9291,7 @@ GIPIDropdownMenuComponent = GIPIDropdownMenuComponent_1 = __decorate([
|
|
9291
9291
|
'class': 'gipi-dropdown-menu',
|
9292
9292
|
},
|
9293
9293
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
9294
|
-
styles: [".dropdown-menu-container{display:flex;flex-direction:column;gap:1rem;width:100%}.dropdown-menu-container .dropdown-menu-label{color:#131313;font-size:1.4rem;line-height:100%}.dropdown-menu-container .dropdown-menu-label>span{color:#d14014;font-size:inherit;line-height:inherit}.dropdown-menu-container .dropdown-menu-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;gap:1rem;width:100%;max-height:4rem;border-radius:5px;cursor:pointer;background-color:#fff;border:1px solid
|
9294
|
+
styles: [".dropdown-menu-container{display:flex;flex-direction:column;gap:1rem;width:100%}.dropdown-menu-container .dropdown-menu-label{color:#131313;font-size:1.4rem;line-height:100%}.dropdown-menu-container .dropdown-menu-label>span{color:#d14014;font-size:inherit;line-height:inherit}.dropdown-menu-container .dropdown-menu-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;gap:1rem;width:100%;max-height:4rem;border-radius:5px;cursor:pointer;background-color:#fff;border:1px solid #0000001f;color:#696969;transition:.2s}.dropdown-menu-container .dropdown-menu-content:focus-within,.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:active),.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:focus){box-shadow:0 0 0 .2rem #f0f0f0}.dropdown-menu-container .dropdown-menu-content:focus-within,.dropdown-menu-container .dropdown-menu-content:hover{border-color:#bfbfbf!important;background-color:#f5f5f5}.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:disabled){background-color:#e0e1e2!important;border-color:#e0e1e2!important;color:#d1d2d4!important;box-shadow:none!important;cursor:not-allowed!important;pointer-events:none!important}.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:disabled) .dropdown-menu-input,.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:disabled) .dropdown-menu-suffix .dropdown-menu-button{cursor:not-allowed!important;pointer-events:none!important}.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:disabled) .dropdown-menu-suffix .dropdown-menu-trigger{border-color:#e0e1e2!important;pointer-events:none!important}.dropdown-menu-container .dropdown-menu-content:has(.dropdown-menu-input:disabled) mat-icon{color:#d1d2d4!important;fill:#d1d2d4!important;cursor:not-allowed!important;pointer-events:none!important}.dropdown-menu-container .dropdown-menu-content .dropdown-menu-input{cursor:pointer;height:16px;outline:0;border:none;background-color:transparent;color:inherit;flex:1;max-width:90%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.dropdown-menu-container .dropdown-menu-content .dropdown-menu-suffix{display:flex;flex-direction:row;align-items:center;gap:16px}.dropdown-menu-container .dropdown-menu-content .dropdown-menu-suffix .dropdown-menu-trigger{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-inline:8px;border-radius:40px;border:1px solid transparent;color:#131313;background-color:#f0f0f0;font-size:1.2rem;line-height:1.4rem}.dropdown-menu-container .dropdown-menu-content .dropdown-menu-suffix .dropdown-menu-button{display:flex;align-items:center;justify-content:center;outline:0;border:none;cursor:pointer;background-color:transparent}.dropdown-menu-container .dropdown-menu-content .dropdown-menu-suffix .dropdown-menu-button:hover:not(:disabled)>mat-icon{transform:scale(1.08)}.dropdown-menu-icon{width:1.6rem;height:1.6rem;font-size:1.6rem;color:#131313;fill:#131313}.btn-popover-content{background-color:#fff;border-radius:4px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12);padding:8px}"]
|
9295
9295
|
}),
|
9296
9296
|
__metadata("design:paramtypes", [ChangeDetectorRef,
|
9297
9297
|
ElementRef])
|
@@ -9711,6 +9711,7 @@ let GIPIFormFieldComponent = GIPIFormFieldComponent_1 = class GIPIFormFieldCompo
|
|
9711
9711
|
this.id = this._name;
|
9712
9712
|
this.name = this._name;
|
9713
9713
|
this.label = '';
|
9714
|
+
this.tooltip = '';
|
9714
9715
|
this.ariaLabel = '';
|
9715
9716
|
this.placeholder = '';
|
9716
9717
|
this.readonly = false;
|
@@ -9829,6 +9830,10 @@ __decorate([
|
|
9829
9830
|
Input(),
|
9830
9831
|
__metadata("design:type", String)
|
9831
9832
|
], GIPIFormFieldComponent.prototype, "label", void 0);
|
9833
|
+
__decorate([
|
9834
|
+
Input(),
|
9835
|
+
__metadata("design:type", String)
|
9836
|
+
], GIPIFormFieldComponent.prototype, "tooltip", void 0);
|
9832
9837
|
__decorate([
|
9833
9838
|
Input(),
|
9834
9839
|
__metadata("design:type", String)
|
@@ -9940,7 +9945,7 @@ GIPIFormFieldComponent = GIPIFormFieldComponent_1 = __decorate([
|
|
9940
9945
|
Component({
|
9941
9946
|
selector: `gipi-form-field`,
|
9942
9947
|
exportAs: 'gipiFormField',
|
9943
|
-
template: "<label class=\"form-field-container\"\n [attr.for]=\"id\">\n <span class=\"form-field-label\"\n *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"required && label\"> * </span>\n </span>\n\n <div class=\"form-field-content\"\n [class.form-field-select]=\"type === 'select'\"\n (click)=\"onInputClick($event)\">\n <!-- Input others -->\n <input class=\"form-field-input\"\n *ngIf=\"type && type !== 'currency'\"\n #inputRef\n autocomplete=\"off\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [name]=\"name\"\n [type]=\"type\"\n [min]=\"min\"\n [max]=\"max ? max : 250\"\n [maxlength]=\"maxLength ? maxLength : 250\"\n [mask]=\"mask\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"pattern\"\n [(ngModel)]=\"model\"\n [value]=\"value\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (click)=\"onInputClick($event)\">\n\n <!-- Input currency -->\n <input class=\"form-field-input\"\n *ngIf=\"type && type === 'currency'\"\n #inputRef\n currencyMask\n autocomplete=\"off\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [name]=\"name + 'currency'\"\n [type]=\"type\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength\"\n [mask]=\"mask\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"pattern\"\n [(ngModel)]=\"model\"\n [value]=\"value\"\n [options]=\"optionsCurrency\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"form-field-suffix\"\n *ngIf=\"type === 'select'\">\n <div class=\"form-field-trigger\"\n *ngIf=\"showTrigger && (trigger && trigger > 1)\">\n + {{ trigger >= 99 ? 99 : trigger }}\n </div>\n\n <button ariaLabel=\"Limpar op\u00E7\u00F5es\"\n class=\"form-field-button\"\n *ngIf=\"showClear\"\n (click)=\"onButtonClearClick($event)\">\n <mat-icon class=\"form-field-icon\"> clear </mat-icon>\n </button>\n\n <div class=\"form-field-icon-arrow\"> </div>\n </div>\n\n <div class=\"form-field-suffix\"\n *ngIf=\"type === 'search'\">\n <button ariaLabel=\"Limpar\"\n class=\"form-field-button\"\n *ngIf=\"showClear\"\n (click)=\"onButtonClearClick($event)\">\n <mat-icon class=\"form-field-icon\"> clear </mat-icon>\n </button>\n\n <button ariaLabel=\"Pesquisar\"\n class=\"form-field-button\"\n *ngIf=\"showSearch\"\n (click)=\"onButtonSearchClick($event)\">\n <mat-icon class=\"form-field-icon\">\n search\n </mat-icon>\n </button>\n\n <mat-icon class=\"form-field-icon\"\n *ngIf=\"!showSearch\">\n search\n </mat-icon>\n </div>\n </div>\n</label
|
9948
|
+
template: "<label class=\"form-field-container\"\n [attr.for]=\"id\">\n <span class=\"form-field-label\"\n *ngIf=\"label\">\n {{ label }}\n <span *ngIf=\"required && label\"> * </span>\n <gipi-helpful-tip *ngIf=\"tooltip && label\"\n [tooltip]=\"tooltip\">\n </gipi-helpful-tip>\n </span>\n\n <div class=\"form-field-content\"\n [class.form-field-select]=\"type === 'select'\"\n (click)=\"onInputClick($event)\">\n <!-- Input others -->\n <input class=\"form-field-input\"\n *ngIf=\"type && type !== 'currency'\"\n #inputRef\n autocomplete=\"off\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [name]=\"name\"\n [type]=\"type\"\n [min]=\"min\"\n [max]=\"max ? max : 250\"\n [maxlength]=\"maxLength ? maxLength : 250\"\n [mask]=\"mask\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"pattern\"\n [(ngModel)]=\"model\"\n [value]=\"value\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (click)=\"onInputClick($event)\">\n\n <!-- Input currency -->\n <input class=\"form-field-input\"\n *ngIf=\"type && type === 'currency'\"\n #inputRef\n currencyMask\n autocomplete=\"off\"\n [attr.id]=\"id\"\n [attr.aria-label]=\"ariaLabel\"\n [name]=\"name + 'currency'\"\n [type]=\"type\"\n [min]=\"min\"\n [max]=\"max\"\n [maxlength]=\"maxLength\"\n [mask]=\"mask\"\n [required]=\"required\"\n [placeholder]=\"placeholder\"\n [readonly]=\"readonly\"\n [disabled]=\"disabled\"\n [pattern]=\"pattern\"\n [(ngModel)]=\"model\"\n [value]=\"value\"\n [options]=\"optionsCurrency\"\n (keydown)=\"onInputKeydown($event)\"\n (focus)=\"onInputFocus($event)\"\n (blur)=\"onInputBlur($event)\"\n (click)=\"onInputClick($event)\">\n\n <div class=\"form-field-suffix\"\n *ngIf=\"type === 'select'\">\n <div class=\"form-field-trigger\"\n *ngIf=\"showTrigger && (trigger && trigger > 1)\">\n + {{ trigger >= 99 ? 99 : trigger }}\n </div>\n\n <button ariaLabel=\"Limpar op\u00E7\u00F5es\"\n class=\"form-field-button\"\n *ngIf=\"showClear\"\n (click)=\"onButtonClearClick($event)\">\n <mat-icon class=\"form-field-icon\"> clear </mat-icon>\n </button>\n\n <div class=\"form-field-icon-arrow\"> </div>\n </div>\n\n <div class=\"form-field-suffix\"\n *ngIf=\"type === 'search'\">\n <button ariaLabel=\"Limpar\"\n class=\"form-field-button\"\n *ngIf=\"showClear\"\n (click)=\"onButtonClearClick($event)\">\n <mat-icon class=\"form-field-icon\"> clear </mat-icon>\n </button>\n\n <button ariaLabel=\"Pesquisar\"\n class=\"form-field-button\"\n *ngIf=\"showSearch\"\n (click)=\"onButtonSearchClick($event)\">\n <mat-icon class=\"form-field-icon\">\n search\n </mat-icon>\n </button>\n\n <mat-icon class=\"form-field-icon\"\n *ngIf=\"!showSearch\">\n search\n </mat-icon>\n </div>\n </div>\n</label>\n",
|
9944
9949
|
providers: [
|
9945
9950
|
{
|
9946
9951
|
provide: NG_VALUE_ACCESSOR,
|
@@ -9952,7 +9957,7 @@ GIPIFormFieldComponent = GIPIFormFieldComponent_1 = __decorate([
|
|
9952
9957
|
'class': 'gipi-form-field',
|
9953
9958
|
},
|
9954
9959
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
9955
|
-
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.form-field-container{display:flex;flex-direction:column;gap:1rem;width:100%}.form-field-container .form-field-label{color:#131313;font-size:1.4rem;line-height:100%}.form-field-container .form-field-label>span{color:#d14014;font-size:inherit;line-height:inherit}.form-field-container .form-field-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:1.2rem;gap:1rem;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid
|
9960
|
+
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.form-field-container{display:flex;flex-direction:column;gap:1rem;width:100%}.form-field-container .form-field-label{color:#131313;font-size:1.4rem;line-height:100%}.form-field-container .form-field-label>span{color:#d14014;font-size:inherit;line-height:inherit}.form-field-container .form-field-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:1.2rem;gap:1rem;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid #0000001f;color:#696969;caret-color:#9a9da2;transition:.2s}.form-field-container .form-field-content:focus-within,.form-field-container .form-field-content:has(.form-field-input:active),.form-field-container .form-field-content:has(.form-field-input:focus){box-shadow:0 0 0 .2rem #f0f0f0}.form-field-container .form-field-content:focus-within,.form-field-container .form-field-content:hover{border-color:#bfbfbf!important}.form-field-container .form-field-content:has(.form-field-input:invalid){border-color:#d14014!important;color:#d14014!important;caret-color:#d14014!important}.form-field-container .form-field-content:has(.form-field-input:invalid):focus-within{box-shadow:0 0 0 .2rem #f1c4b6!important}.form-field-container .form-field-content:has(.form-field-input:disabled){border-color:#e0e1e2!important;color:#d1d2d4!important;box-shadow:none!important;cursor:not-allowed!important;caret-color:#d1d2d4!important;background-color:#f5f5f6!important}.form-field-container .form-field-content:has(.form-field-input:disabled) .form-field-input,.form-field-container .form-field-content:has(.form-field-input:disabled) .form-field-suffix .form-field-button{cursor:not-allowed!important;pointer-events:none!important}.form-field-container .form-field-content:has(.form-field-input:disabled) .form-field-suffix .form-field-trigger{border-color:#e0e1e2!important;pointer-events:none!important}.form-field-container .form-field-content:has(.form-field-input:disabled) mat-icon{color:#d1d2d4!important;fill:#d1d2d4!important;cursor:not-allowed!important;pointer-events:none!important}.form-field-container .form-field-content.form-field-select,.form-field-container .form-field-content.form-field-select .form-field-input{box-shadow:none!important;cursor:pointer!important}.form-field-container .form-field-content .form-field-input{height:16px;outline:0;border:none;background-color:transparent;color:inherit;flex:1;max-width:85%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.form-field-container .form-field-content .form-field-suffix{display:flex;flex-direction:row;align-items:center;gap:1.6rem}.form-field-container .form-field-content .form-field-suffix .form-field-trigger{display:flex;flex-direction:column;align-items:center;justify-content:center;padding-inline:8px;border-radius:40px;border:1px solid transparent;color:#131313;background-color:#f0f0f0;font-size:1.2rem;line-height:1.4rem}.form-field-container .form-field-content .form-field-suffix .form-field-button{display:flex;align-items:center;justify-content:center;outline:0;border:none;cursor:pointer;background-color:transparent}.form-field-container .form-field-content .form-field-suffix .form-field-button:hover:not(:disabled)>mat-icon{transform:scale(1.08)}.form-field-icon{width:1.6rem;height:1.6rem;font-size:1.6rem;color:#131313;fill:#131313}.form-field-icon-arrow{border:solid #131313;border-width:0 2px 2px 0;display:inline-block;padding:3px;transform:rotate(45deg);margin:-5px 4px 0}"]
|
9956
9961
|
}),
|
9957
9962
|
__metadata("design:paramtypes", [ChangeDetectorRef,
|
9958
9963
|
ElementRef])
|
@@ -10310,7 +10315,7 @@ GIPIInputCurrencyComponent = GIPIInputCurrencyComponent_1 = __decorate([
|
|
10310
10315
|
'class': 'gipi-input-currency',
|
10311
10316
|
},
|
10312
10317
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
10313
|
-
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.input-currency-container{display:flex;flex-direction:column;gap:1rem;width:100%}.input-currency-container .input-currency-label{color:#131313;font-size:1.4rem;line-height:100%}.input-currency-container .input-currency-label>span{color:#d14014;font-size:inherit;line-height:inherit}.input-currency-container .input-currency-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid
|
10318
|
+
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.input-currency-container{display:flex;flex-direction:column;gap:1rem;width:100%}.input-currency-container .input-currency-label{color:#131313;font-size:1.4rem;line-height:100%}.input-currency-container .input-currency-label>span{color:#d14014;font-size:inherit;line-height:inherit}.input-currency-container .input-currency-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid #0000001f;color:#696969;caret-color:#9a9da2;transition:.2s}.input-currency-container .input-currency-content:focus-within,.input-currency-container .input-currency-content:has(.input-currency-input:active),.input-currency-container .input-currency-content:has(.input-currency-input:focus){box-shadow:0 0 0 .2rem #f0f0f0}.input-currency-container .input-currency-content:focus-within,.input-currency-container .input-currency-content:hover{border-color:#bfbfbf!important}.input-currency-container .input-currency-content:has(.input-currency-input:invalid){border-color:#d14014!important;color:#d14014!important;caret-color:#d14014!important}.input-currency-container .input-currency-content:has(.input-currency-input:invalid):focus-within{box-shadow:0 0 0 .2rem #f1c4b6!important}.input-currency-container .input-currency-content:has(.input-currency-input:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed!important;box-shadow:none!important;pointer-events:none!important}.input-currency-container .input-currency-content .input-currency-input{height:16px;outline:0;border:none;background-color:transparent;color:inherit;flex:1}"]
|
10314
10319
|
}),
|
10315
10320
|
__metadata("design:paramtypes", [ChangeDetectorRef,
|
10316
10321
|
ElementRef])
|
@@ -10712,7 +10717,7 @@ GIPIInputMonthPickerComponent = GIPIInputMonthPickerComponent_1 = __decorate([
|
|
10712
10717
|
'class': 'gipi-input-monthpicker',
|
10713
10718
|
},
|
10714
10719
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
10715
|
-
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.input-monthpicker-container{display:flex;flex-direction:column;gap:1rem;width:100%}.input-monthpicker-container .input-monthpicker-label{color:#131313;font-size:1.4rem;line-height:100%}.input-monthpicker-container .input-monthpicker-label>span{color:#d14014;font-size:inherit;line-height:inherit}.input-monthpicker-container .input-monthpicker-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid
|
10720
|
+
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}.input-monthpicker-container{display:flex;flex-direction:column;gap:1rem;width:100%}.input-monthpicker-container .input-monthpicker-label{color:#131313;font-size:1.4rem;line-height:100%}.input-monthpicker-container .input-monthpicker-label>span{color:#d14014;font-size:inherit;line-height:inherit}.input-monthpicker-container .input-monthpicker-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between;padding:12px;width:100%;max-height:4rem;border-radius:5px;cursor:text;background-color:#fff;border:1px solid #0000001f;color:#696969;caret-color:#9a9da2;transition:.2s;position:relative}.input-monthpicker-container .input-monthpicker-content:focus-within,.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:active),.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:focus){box-shadow:0 0 0 .2rem #f0f0f0}.input-monthpicker-container .input-monthpicker-content:focus-within,.input-monthpicker-container .input-monthpicker-content:hover{border-color:#bfbfbf!important}.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;box-shadow:none!important;caret-color:#d1d2d4!important;pointer-events:none!important;cursor:not-allowed!important}.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:disabled) .input-monthpicker-input,.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:disabled) .input-monthpicker-suffix .input-monthpicker-button{cursor:not-allowed!important;pointer-events:none!important}.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:disabled) .input-monthpicker-suffix .input-monthpicker-trigger{border-color:#e0e1e2!important;pointer-events:none!important}.input-monthpicker-container .input-monthpicker-content:has(.input-monthpicker-input:disabled) mat-icon{color:#d1d2d4!important;fill:#d1d2d4!important;cursor:not-allowed!important;pointer-events:none!important}.input-monthpicker-container .input-monthpicker-content .input-monthpicker-input{height:16px;max-width:84%;outline:0;border:none;background-color:transparent;color:inherit;flex:1}.input-monthpicker-container .input-monthpicker-content .input-monthpicker-suffix{display:flex;flex-direction:row;align-items:center;gap:16px}.input-monthpicker-container .input-monthpicker-content .input-monthpicker-suffix .input-monthpicker-button{display:flex;align-items:center;justify-content:center;outline:0;border:none;cursor:pointer;background-color:transparent}.input-monthpicker-container .input-monthpicker-content .input-monthpicker-suffix .input-monthpicker-button:hover:not(:disabled)>mat-icon{transform:scale(1.08)}.input-monthpicker-icon{width:1.6rem;height:1.6rem;font-size:1.6rem;color:#131313;fill:#131313}::ng-deep .calendar{width:100%;display:flex;flex-direction:column}::ng-deep .calendar .calendar-header{display:flex;flex-direction:row;align-items:center;justify-content:space-between;gap:10px;padding-bottom:10px;border-bottom:1px solid #aeb1b5;margin-bottom:8px}::ng-deep .calendar .calendar-header .calendar-title{display:flex;flex-direction:row;align-items:center;gap:8px;font-size:1.6rem;line-height:1.8rem;font-weight:600;cursor:default;border-radius:8px;padding:8px;white-space:nowrap}::ng-deep .calendar .calendar-header .calendar-title>mat-icon{font-size:2rem;width:20px;height:20px}::ng-deep .calendar .calendar-header .calendar-title.month:hover{cursor:pointer;background-color:#f0f0f0}::ng-deep .calendar .calendar-header .calendar-controls{display:flex;flex-direction:row;align-items:center;gap:8px}::ng-deep .calendar .calendar-header .calendar-controls>button{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:8px;background-color:#e0313e;cursor:pointer;transition:.3s;border:0;outline:0;color:#fff}::ng-deep .calendar .calendar-header .calendar-controls>button:hover{background-color:#cc2d38}::ng-deep .calendar .calendar-header .calendar-controls>button>mat-icon{font-size:1.8rem;width:18px;height:18px}::ng-deep .calendar .table-months{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[3];grid-template-columns:repeat(3,1fr);gap:4px}::ng-deep .calendar .table-months .month{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:8px;font-size:1.4rem;line-height:1.7rem;color:#555659;background-color:#f0f0f0;transition:background-color .1s;cursor:pointer}::ng-deep .calendar .table-months .month.disabled{color:#bbbdc1;background-color:#e0e1e2}::ng-deep .calendar .table-months .month:not(.disabled).selected,::ng-deep .calendar .table-months .month:not(.disabled):hover{color:#fff;background-color:#e0313e}::ng-deep .calendar .table-months .month:not(.disabled).selected:hover{background-color:#cc2d38}::ng-deep .calendar .table-years{display:-ms-grid;display:grid;-ms-grid-columns:(1fr)[4];grid-template-columns:repeat(4,1fr);gap:4px}::ng-deep .calendar .table-years .year{display:flex;align-items:center;justify-content:center;padding:8px;border-radius:8px;font-size:1.4rem;line-height:1.7rem;color:#555659;background-color:#f0f0f0;transition:background-color .1s;cursor:pointer}::ng-deep .calendar .table-years .year.disabled{color:#bbbdc1;background-color:#e0e1e2}::ng-deep .calendar .table-years .year:not(.disabled).selected,::ng-deep .calendar .table-years .year:not(.disabled):hover{color:#fff;background-color:#e0313e}::ng-deep .calendar .table-years .year:not(.disabled).selected:hover{background-color:#cc2d38}"]
|
10716
10721
|
}),
|
10717
10722
|
__metadata("design:paramtypes", [ChangeDetectorRef,
|
10718
10723
|
GIPINgConfig])
|
@@ -10900,6 +10905,7 @@ let GIPIInputSelectEnumComponent = GIPIInputSelectEnumComponent_1 = class GIPIIn
|
|
10900
10905
|
this._lastOptionSelected = null;
|
10901
10906
|
this.id = this._name;
|
10902
10907
|
this.name = this._name;
|
10908
|
+
this.tooltip = '';
|
10903
10909
|
this.placeholder = 'Selecionar';
|
10904
10910
|
this._disabled = false;
|
10905
10911
|
this._loading = false;
|
@@ -10951,7 +10957,7 @@ let GIPIInputSelectEnumComponent = GIPIInputSelectEnumComponent_1 = class GIPIIn
|
|
10951
10957
|
get value() {
|
10952
10958
|
return this._value;
|
10953
10959
|
}
|
10954
|
-
get
|
10960
|
+
get optionSelectedValue() {
|
10955
10961
|
if (this.value && !ArrayUtil.isEmpty(this._enumList)) {
|
10956
10962
|
const selected = this._enumList.find(e => e.key === this.value);
|
10957
10963
|
if (selected) {
|
@@ -10960,6 +10966,15 @@ let GIPIInputSelectEnumComponent = GIPIInputSelectEnumComponent_1 = class GIPIIn
|
|
10960
10966
|
}
|
10961
10967
|
return '';
|
10962
10968
|
}
|
10969
|
+
get optionSelectedKey() {
|
10970
|
+
if (this.value && !ArrayUtil.isEmpty(this._enumList)) {
|
10971
|
+
const selected = this._enumList.find(e => e.key === this.value);
|
10972
|
+
if (selected) {
|
10973
|
+
return selected.key;
|
10974
|
+
}
|
10975
|
+
}
|
10976
|
+
return '';
|
10977
|
+
}
|
10963
10978
|
get scrollViewportHeight() {
|
10964
10979
|
let height = 0;
|
10965
10980
|
if (this._enumList && this._enumList.length) {
|
@@ -11085,11 +11100,15 @@ __decorate([
|
|
11085
11100
|
__decorate([
|
11086
11101
|
Input(),
|
11087
11102
|
__metadata("design:type", String)
|
11088
|
-
], GIPIInputSelectEnumComponent.prototype, "
|
11103
|
+
], GIPIInputSelectEnumComponent.prototype, "label", void 0);
|
11089
11104
|
__decorate([
|
11090
11105
|
Input(),
|
11091
11106
|
__metadata("design:type", String)
|
11092
|
-
], GIPIInputSelectEnumComponent.prototype, "
|
11107
|
+
], GIPIInputSelectEnumComponent.prototype, "tooltip", void 0);
|
11108
|
+
__decorate([
|
11109
|
+
Input(),
|
11110
|
+
__metadata("design:type", String)
|
11111
|
+
], GIPIInputSelectEnumComponent.prototype, "ariaLabel", void 0);
|
11093
11112
|
__decorate([
|
11094
11113
|
Input(),
|
11095
11114
|
__metadata("design:type", String)
|
@@ -11170,7 +11189,7 @@ GIPIInputSelectEnumComponent = GIPIInputSelectEnumComponent_1 = __decorate([
|
|
11170
11189
|
Component({
|
11171
11190
|
selector: `gipi-input-select-enum`,
|
11172
11191
|
exportAs: 'gipiInputSelectEnum',
|
11173
|
-
template: "<gipi-form-field #formFieldSelectEnum\n [id]=\"id\"\n [name]=\"name\"\n [type]=\"'select'\"\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [label]=\"label\"\n [placeholder]=\"placeholder\"\n [showClear]=\"false\"\n [showTrigger]=\"false\"\n [trigger]=\"0\"\n [ariaLabel]=\"ariaLabel\"\n [value]=\"
|
11192
|
+
template: "<gipi-form-field #formFieldSelectEnum\n [id]=\"id\"\n [name]=\"name\"\n [type]=\"'select'\"\n [readonly]=\"true\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [label]=\"label\"\n [tooltip]=\"tooltip\"\n [placeholder]=\"placeholder\"\n [showClear]=\"false\"\n [showTrigger]=\"false\"\n [trigger]=\"0\"\n [ariaLabel]=\"ariaLabel\"\n [value]=\"optionSelectedValue\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"selectEnumPopover\"\n [popoverTriggerOn]=\"!disabled ? 'click' : 'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenedChange.emit(true)\"\n (closed)=\"onOpenedChange.emit(false)\"\n (onKeydown)=\"onInputKeydown($event)\"\n (onFocus)=\"onInputFocus($event)\"\n (onBlur)=\"onInputBlur($event)\"\n (onClick)=\"onInputClick($event)\">\n</gipi-form-field>\n\n<gipi-popover #selectEnumPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\">\n <div class=\"select-enum-popover-content\">\n <cdk-virtual-scroll-viewport *ngIf=\"(_enumList && _enumList.length) && !loading\"\n class=\"select-virtual-scroll-viewport\"\n [style.height.px]=\"scrollViewportHeight\"\n [itemSize]=\"_itemSizeScrollViewport\">\n <div *cdkVirtualFor=\"let e of _enumList\"\n class=\"select-row\"\n [style.height.px]=\"40\"\n [class.active]=\"optionSelectedKey === e.key\"\n [class.disabled]=\"!validateOmitByKey(e.key) && (disabled || loading)\"\n (click)=\"onButtonSelectOptionClick(e.key)\">\n {{ e.value }}\n </div>\n </cdk-virtual-scroll-viewport>\n\n <div *ngIf=\"loading\"\n class=\"select-loading\">\n <div class=\"dot-pulse\"> </div>\n </div>\n\n <div *ngIf=\"(!_enumList || (_enumList && _enumList.length <= 0)) && !loading\"\n class=\"select-not-found\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n Nenhum registro foi encontrado\n </div>\n </div>\n</gipi-popover>\n\n<!-- <gipi-overlay *ngIf=\"!disabled && !loading\"\n contentStyleClass=\"overlay-select\"\n #overlaySelectEnum\n [(visible)]=\"_overlayVisible\"\n [appendTo]=\"'body'\"\n (onShow)=\"onOpenedChange.emit(true)\"\n (onHide)=\"onOpenedChange.emit(false)\">\n <cdk-virtual-scroll-viewport *ngIf=\"(_enumList && _enumList.length) && !loading\"\n class=\"select-virtual-scroll-viewport\"\n [style.height.px]=\"scrollViewportHeight\"\n [itemSize]=\"_itemSizeScrollViewport\">\n <div *cdkVirtualFor=\"let e of _enumList\"\n class=\"select-row\"\n [style.height.px]=\"40\"\n [class.disabled]=\"!validateOmitByKey(e.key) && (disabled || loading)\"\n (click)=\"onButtonSelectOptionClick(e.key)\">\n {{ e.value }}\n </div>\n </cdk-virtual-scroll-viewport>\n\n <div *ngIf=\"loading\"\n class=\"select-loading\">\n <div class=\"dot-pulse\"> </div>\n </div>\n\n <div *ngIf=\"(!_enumList || (_enumList && _enumList.length <= 0)) && !loading\"\n class=\"select-not-found\">\n <mat-icon>sentiment_very_dissatisfied</mat-icon>\n Nenhum registro foi encontrado\n </div>\n</gipi-overlay> -->\n",
|
11174
11193
|
providers: [
|
11175
11194
|
{
|
11176
11195
|
provide: NG_VALUE_ACCESSOR,
|
@@ -11182,7 +11201,7 @@ GIPIInputSelectEnumComponent = GIPIInputSelectEnumComponent_1 = __decorate([
|
|
11182
11201
|
'class': 'gipi-input-select-enum',
|
11183
11202
|
},
|
11184
11203
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
11185
|
-
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}::ng-deep .overlay-select{padding:0!important;overflow:hidden!important}::ng-deep .select-virtual-scroll-viewport{width:100%!important;max-height:240px;overflow:auto}::ng-deep .select-virtual-scroll-viewport .cdk-virtual-scroll-content-wrapper{width:100%!important;position:relative!important}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar{width:15px}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar-thumb{background-color:#e0e1e2;border-radius:10px;border:4px solid transparent;background-clip:padding-box}::ng-deep .select-row{display:flex;align-items:center;padding:0 16px;cursor:pointer;font-size:1.4rem;line-height:100%;
|
11204
|
+
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}::ng-deep .overlay-select{padding:0!important;overflow:hidden!important}::ng-deep .select-virtual-scroll-viewport{width:100%!important;max-height:240px;overflow:auto}::ng-deep .select-virtual-scroll-viewport .cdk-virtual-scroll-content-wrapper{width:100%!important;position:relative!important}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar{width:15px}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar-thumb{background-color:#e0e1e2;border-radius:10px;border:4px solid transparent;background-clip:padding-box}::ng-deep .select-row{display:flex;align-items:center;gap:1rem;padding:0 16px;cursor:pointer;font-size:1.4rem;line-height:100%;border-left:2px solid transparent}::ng-deep .select-row.active{background-color:#fceaec;border-color:#e0313e}::ng-deep .select-row:not(.active):hover{background-color:#f5f5f6}::ng-deep .select-row:not(.active):active{background-color:#e0e1e2}.select-not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;font-size:1.2rem;gap:8px;color:#131313;cursor:default;padding:0 0 16px}.select-not-found>mat-icon{width:2.8rem;height:2.8rem;font-size:2.8rem;line-height:2.8rem;color:#131313}.select-loading{height:4.8rem;width:100%;background-color:#fff;display:flex;align-items:center;justify-content:center}.select-loading .dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e;box-shadow:9999px 0 0 -5px;-webkit-animation:1.5s linear .25s infinite dot-pulse;animation:1.5s linear .25s infinite dot-pulse}.select-loading .dot-pulse::after,.select-loading .dot-pulse::before{content:'';display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e}.select-loading .dot-pulse::before{box-shadow:9984px 0 0 -5px;-webkit-animation:1.5s linear infinite dot-pulse-before;animation:1.5s linear infinite dot-pulse-before}.select-loading .dot-pulse::after{box-shadow:10014px 0 0 -5px;-webkit-animation:1.5s linear .5s infinite dot-pulse-after;animation:1.5s linear .5s infinite dot-pulse-after}@-webkit-keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@-webkit-keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@-webkit-keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}@keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}.select-enum-popover-content{overflow:hidden;background-color:#fff;border-radius:4px;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}"]
|
11186
11205
|
}),
|
11187
11206
|
__metadata("design:paramtypes", [ElementRef,
|
11188
11207
|
ChangeDetectorRef])
|
@@ -12408,7 +12427,7 @@ GIPIInputSelectComponent = GIPIInputSelectComponent_1 = __decorate([
|
|
12408
12427
|
'class': 'gipi-input-select',
|
12409
12428
|
},
|
12410
12429
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
12411
|
-
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}::ng-deep .overlay-select{padding:0!important;overflow:hidden!important}::ng-deep .select-virtual-scroll-viewport{width:100%!important;max-height:240px;overflow:auto}::ng-deep .select-virtual-scroll-viewport .cdk-virtual-scroll-content-wrapper{width:100%!important;position:relative!important}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar{width:15px}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar-thumb{background-color:#e0e1e2;border-radius:10px;border:4px solid transparent;background-clip:padding-box}::ng-deep .select-row{display:flex;align-items:center;padding:0 16px;cursor:pointer;font-size:1.3rem;line-height:100%;gap:1rem}::ng-deep .select-row:hover{background:#f5f5f6}::ng-deep .select-row:active{background:#e0e1e2}::ng-deep .select-row.disabled{background-color:#d1d2d4!important;color:#9a9da2!important;cursor:not-allowed!important;pointer-events:none!important}::ng-deep .select-row>span{display:-webkit-box;line-clamp:2;box-orient:vertical;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden}.select-search{display:flex;align-items:center;font-size:1.4rem;line-height:100%;gap:1rem;padding:8px 12px}.select-option-all{border-bottom:1px solid
|
12430
|
+
styles: [":host{display:block;min-width:0;max-width:100%;flex:1}::ng-deep .overlay-select{padding:0!important;overflow:hidden!important}::ng-deep .select-virtual-scroll-viewport{width:100%!important;max-height:240px;overflow:auto}::ng-deep .select-virtual-scroll-viewport .cdk-virtual-scroll-content-wrapper{width:100%!important;position:relative!important}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar{width:15px}::ng-deep .select-virtual-scroll-viewport::-webkit-scrollbar-thumb{background-color:#e0e1e2;border-radius:10px;border:4px solid transparent;background-clip:padding-box}::ng-deep .select-row{display:flex;align-items:center;padding:0 16px;cursor:pointer;font-size:1.3rem;line-height:100%;gap:1rem}::ng-deep .select-row:hover{background:#f5f5f6}::ng-deep .select-row:active{background:#e0e1e2}::ng-deep .select-row.disabled{background-color:#d1d2d4!important;color:#9a9da2!important;cursor:not-allowed!important;pointer-events:none!important}::ng-deep .select-row>span{display:-webkit-box;line-clamp:2;box-orient:vertical;-webkit-line-clamp:2;-webkit-box-orient:vertical;text-overflow:ellipsis;overflow:hidden}.select-search{display:flex;align-items:center;font-size:1.4rem;line-height:100%;gap:1rem;padding:8px 12px}.select-option-all{border-bottom:1px solid #0000001f}.select-not-found{display:flex;flex-direction:column;align-items:center;justify-content:center;font-weight:600;font-size:1.2rem;gap:8px;color:#131313;cursor:default;padding:1.6rem 0}.select-not-found>mat-icon{width:2.8rem;height:2.8rem;font-size:2.8rem;line-height:2.8rem;color:#131313}.select-loading{height:4rem;width:100%;background-color:#fff;display:flex;align-items:center;justify-content:center}.select-loading .dot-pulse{position:relative;left:-9999px;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e;box-shadow:9999px 0 0 -5px;-webkit-animation:1.5s linear .25s infinite dot-pulse;animation:1.5s linear .25s infinite dot-pulse}.select-loading .dot-pulse::after,.select-loading .dot-pulse::before{content:\"\";display:inline-block;position:absolute;top:0;width:5px;height:5px;border-radius:50%;background-color:#e0313e;color:#e0313e}.select-loading .dot-pulse::before{box-shadow:9984px 0 0 -5px;-webkit-animation:1.5s linear infinite dot-pulse-before;animation:1.5s linear infinite dot-pulse-before}.select-loading .dot-pulse::after{box-shadow:10014px 0 0 -5px;-webkit-animation:1.5s linear .5s infinite dot-pulse-after;animation:1.5s linear .5s infinite dot-pulse-after}@-webkit-keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@keyframes dot-pulse-before{0%,100%,60%{box-shadow:9984px 0 0 -5px}30%{box-shadow:9984px 0 0 2px}}@-webkit-keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@keyframes dot-pulse{0%,100%,60%{box-shadow:9999px 0 0 -5px}30%{box-shadow:9999px 0 0 2px}}@-webkit-keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}@keyframes dot-pulse-after{0%,100%,60%{box-shadow:10014px 0 0 -5px}30%{box-shadow:10014px 0 0 2px}}.select-footer{display:flex;align-items:center;gap:1rem;padding:8px 12px;border-top:1px solid #bfbfbf}::ng-deep .select-mat-option-pseudo-checkbox{margin:0!important}"]
|
12412
12431
|
}),
|
12413
12432
|
__metadata("design:paramtypes", [ChangeDetectorRef])
|
12414
12433
|
], GIPIInputSelectComponent);
|
@@ -14726,7 +14745,7 @@ GIPIRadioGroupComponent = GIPIRadioGroupComponent_1 = __decorate([
|
|
14726
14745
|
'class': 'gipi-radio-group',
|
14727
14746
|
},
|
14728
14747
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
14729
|
-
styles: [".radiogroup-content{display:flex;flex-direction:column;gap:1rem}.radiogroup-content>label,.radiogroup-content>legend{font-weight:400;font-size:1.4rem;line-height:100%;color:#131313}.radiogroup-content>label>span,.radiogroup-content>legend>span{color:#d14014}.radiogroup-content .radiogroup{display:flex;align-items:center;gap:1rem;padding:8px 0}.fieldset-radio-content{height:6.6rem;border-color
|
14748
|
+
styles: [".radiogroup-content{display:flex;flex-direction:column;gap:1rem}.radiogroup-content>label,.radiogroup-content>legend{font-weight:400;font-size:1.4rem;line-height:100%;color:#131313}.radiogroup-content>label>span,.radiogroup-content>legend>span{color:#d14014}.radiogroup-content .radiogroup{display:flex;align-items:center;gap:1rem;padding:8px 0}.fieldset-radio-content{height:6.6rem;border-color:#0000001f;border-radius:5px}.fieldset-radio-content .radiogroup{width:100%;height:100%;justify-content:space-around}"]
|
14730
14749
|
}),
|
14731
14750
|
__metadata("design:paramtypes", [ChangeDetectorRef])
|
14732
14751
|
], GIPIRadioGroupComponent);
|
@@ -14972,7 +14991,7 @@ GIPIRangePageComponent = GIPIRangePageComponent_1 = __decorate([
|
|
14972
14991
|
multi: true
|
14973
14992
|
},
|
14974
14993
|
],
|
14975
|
-
styles: [":host{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid
|
14994
|
+
styles: [":host{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.6rem}:host .input-content .input-element{padding:.75rem .8rem;border:none;outline:0;background-color:transparent;flex:1;color:inherit;caret-color:#696969;min-width:0;text-align:center;margin:0!important}:host .input-content .input-element::-webkit-inner-spin-button,:host .input-content .input-element::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;opacity:0}:host .input-content:has(.input-element:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}:host .input-content:has(.input-element:disabled) .suffix>mat-icon{color:#bbbdc1!important}:host .input-content .input-element:disabled{cursor:not-allowed}:host .input-content .infix,:host .input-content .prefix,:host .input-content .suffix{display:flex;align-items:center;justify-content:center;padding-block:.75rem;padding-inline:.8rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;transition:.2s;background-color:#e0313e}:host .input-content .infix>mat-icon,:host .input-content .prefix>mat-icon,:host .input-content .suffix>mat-icon{width:2rem;height:2rem;font-size:2rem;color:#fff}:host .input-content .infix:not(.infix):not(.disabled):hover,:host .input-content .prefix:not(.infix):not(.disabled):hover,:host .input-content .suffix:not(.infix):not(.disabled):hover{background-color:#cc2d38}:host .input-content .infix:not(.infix):not(.disabled):active,:host .input-content .prefix:not(.infix):not(.disabled):active,:host .input-content .suffix:not(.infix):not(.disabled):active{background-color:#9f232c}:host .input-content .prefix.disabled,:host .input-content .suffix.disabled{background-color:#d1d2d4}:host .input-content .prefix.disabled>mat-icon,:host .input-content .suffix.disabled>mat-icon{color:#9a9da2}:host .input-content .prefix{border-right:1px solid #0000001f;border-radius:.6rem 0 0 .6rem;cursor:pointer}:host .input-content .infix{width:1rem;padding:0;background-color:transparent}:host .input-content .suffix{border-left:1px solid #0000001f;border-radius:0 .6rem .6rem 0;cursor:pointer}:host .input-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::-webkit-input-placeholder{color:#bbbdc1}:-moz-placeholder{color:#bbbdc1}::-moz-placeholder{color:#bbbdc1}:-ms-input-placeholder{color:#bbbdc1}"]
|
14976
14995
|
}),
|
14977
14996
|
__metadata("design:paramtypes", [ElementRef,
|
14978
14997
|
ChangeDetectorRef])
|
@@ -15312,7 +15331,7 @@ GIPIRangeSliderComponent = GIPIRangeSliderComponent_1 = __decorate([
|
|
15312
15331
|
'class': 'gipi-range-slider',
|
15313
15332
|
},
|
15314
15333
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
15315
|
-
styles: [":host{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .slider-wrapper{display:flex;align-items:center;justify-content:space-between;gap:1.6rem}:host .slider-wrapper>input{display:flex;font-family:inherit;font-size:inherit;color:inherit;text-align:center;padding:.75rem .8rem;background:#fff;border:1px solid
|
15334
|
+
styles: [":host{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .slider-wrapper{display:flex;align-items:center;justify-content:space-between;gap:1.6rem}:host .slider-wrapper>input{display:flex;font-family:inherit;font-size:inherit;color:inherit;text-align:center;padding:.75rem .8rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.6rem;outline:0}:host .sliders-control{display:flex;align-items:center;justify-content:center;padding:2rem;position:relative;flex:1}:host .from-value,:host .to-value{-webkit-appearance:none;-moz-appearance:none;appearance:none;height:.6rem;border-radius:.4rem;width:100%;position:absolute;background-color:#e0e1e2;pointer-events:none;outline:0}:host .from-value::-webkit-slider-thumb,:host .to-value::-webkit-slider-thumb{-webkit-appearance:none;display:block;width:1.4rem;height:1.4rem;border-radius:50%;background-color:#e0313e;pointer-events:all;box-shadow:0 .5px 0 0 rgba(0,0,0,.08),0 1px 1px 0 rgba(0,0,0,.14);cursor:-webkit-grab;cursor:grab;outline:0}:host .from-value::-webkit-slider-thumb:hover,:host .to-value::-webkit-slider-thumb:hover{background-color:#cc2d38}:host .from-value::-webkit-slider-thumb:active,:host .to-value::-webkit-slider-thumb:active{box-shadow:inset 0 0 3px #e0313e,0 0 9px #e0313e;-webkit-box-shadow:inset 0 0 3px #e0313e,0 0 9px #e0313e;cursor:-webkit-grabbing;cursor:grabbing}:host input[type=number]{border:1px solid #0000001f;color:#131313;width:50px;height:30px;font-size:20px;outline:0}:host input[type=number]::-webkit-inner-spin-button,:host input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;appearance:none;opacity:0}:host #fromSlider{height:0;z-index:1}"]
|
15316
15335
|
}),
|
15317
15336
|
__metadata("design:paramtypes", [ElementRef,
|
15318
15337
|
ChangeDetectorRef])
|
@@ -15494,7 +15513,7 @@ GIPISelectButtonComponent = GIPISelectButtonComponent_1 = __decorate([
|
|
15494
15513
|
'class': 'gipi-select-button',
|
15495
15514
|
},
|
15496
15515
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
15497
|
-
styles: [".select-button-content{display:flex;flex-direction:column;gap:1rem}.select-button-content .label{font-weight:400;font-size:1.4rem;line-height:100%;color:#131313}.select-button-content .label>span{color:#d14014}.select-button-content .select-button{display:flex;flex-direction:row}.select-button-content .select-button .button{width:100%;padding:1.2rem 1.6rem;font-weight:700;font-size:1.3rem;line-height:100%;text-align:center;cursor:pointer;background-color:#fff;border:1px solid
|
15516
|
+
styles: [".select-button-content{display:flex;flex-direction:column;gap:1rem}.select-button-content .label{font-weight:400;font-size:1.4rem;line-height:100%;color:#131313}.select-button-content .label>span{color:#d14014}.select-button-content .select-button{display:flex;flex-direction:row}.select-button-content .select-button .button{width:100%;padding:1.2rem 1.6rem;font-weight:700;font-size:1.3rem;line-height:100%;text-align:center;cursor:pointer;background-color:#fff;border:1px solid #0000001f;color:#696969;height:4rem;display:flex;align-items:center;justify-content:center}.select-button-content .select-button .button:hover{background-color:#f5f5f6}.select-button-content .select-button .button:first-child{border-top-left-radius:5px;border-bottom-left-radius:5px}.select-button-content .select-button .button:last-child{border-top-right-radius:5px;border-bottom-right-radius:5px}.select-button-content .select-button .button.disabled{pointer-events:none!important;cursor:not-allowed!important;border-color:#e0e1e2!important;color:#d1d2d4!important}.select-button-content .select-button .button.disabled.selected{background-color:#e0e1e2!important}.select-button-content .select-button .button.button-primary.selected{background-color:#e0313e;border-color:#e0313e;color:#fff}.select-button-content .select-button .button.button-primary:hover.selected{background-color:#cc2d38}.select-button-content .select-button .button.button-secondary.selected{background-color:#9a9da2;border-color:#9a9da2;color:#fff}.select-button-content .select-button .button.button-secondary:hover.selected{background-color:#8c8f93}"]
|
15498
15517
|
}),
|
15499
15518
|
__metadata("design:paramtypes", [ElementRef,
|
15500
15519
|
ChangeDetectorRef])
|
@@ -16451,7 +16470,7 @@ GIPISplitButtonComponent = GIPISplitButtonComponent_1 = __decorate([
|
|
16451
16470
|
selector: `gipi-split-button[gipi-primary], gipi-split-button[gipi-secondary],
|
16452
16471
|
gipi-split-button[gipi-tertiary], gipi-split-button[gipi-action]`,
|
16453
16472
|
exportAs: 'gipiSplitButton',
|
16454
|
-
template: "<div [matTooltip]=\"tooltip\"\n [class]=\"buttonClass || ''\"\n [class.button-base]=\"true\"\n [class.disabled]=\"disabled || loading\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\">\n <button [attr.id]=\"idBtnDefault\"\n [attr.name]=\"idBtnDefault\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [ngClass]=\"getInternalButtonClass(true)\"\n role=\"button\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n {{ label ? label : '' }}\n </button>\n <button [attr.id]=\"idBtnMenu\"\n [attr.name]=\"idBtnMenu\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [ngClass]=\"getInternalButtonClass(false)\"\n role=\"button\"\n (click)=\"handleClickBtnMenu($event)\">\n <mat-icon [@indicatorRotate]=\"popoverTrigger?.popoverOpen ? 'opened': 'closed'\"> expand_more </mat-icon>\n </button>\n</div>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\">\n <div class=\"btn-popover-content\">\n <button class=\"btn-split-option\"\n *ngFor=\"let option of splitOptions\"\n [disabled]=\"option?.disabled\"\n (click)=\"handleClickBtnSplitOption(option)\">\n {{ option.label }}\n </button>\n </div>\n</gipi-popover
|
16473
|
+
template: "<div [matTooltip]=\"tooltip\"\n matTooltipClass=\"mattooltip-line-break\"\n [class]=\"buttonClass || ''\"\n [class.button-base]=\"true\"\n [class.disabled]=\"disabled || loading\"\n #popoverTrigger=\"popoverTrigger\"\n [popoverTriggerFor]=\"btnPopover\"\n [popoverTriggerOn]=\"'none'\"\n [popoverBackdropCloseOnClick]=\"true\"\n (opened)=\"onOpenPopover.emit()\"\n (closed)=\"onClosePopover.emit()\">\n <button [attr.id]=\"idBtnDefault\"\n [attr.name]=\"idBtnDefault\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [ngClass]=\"getInternalButtonClass(true)\"\n role=\"button\"\n (click)=\"handleClick($event)\"\n (focus)=\"handleFocus($event)\"\n (blur)=\"handleBlur($event)\">\n {{ label ? label : '' }}\n </button>\n <button [attr.id]=\"idBtnMenu\"\n [attr.name]=\"idBtnMenu\"\n [attr.type]=\"type\"\n [attr.aria-label]=\"ariaLabel ? ariaLabel : label\"\n [attr.title]=\"title ? title : label\"\n [disabled]=\"disabled || loading\"\n [ngClass]=\"getInternalButtonClass(false)\"\n role=\"button\"\n (click)=\"handleClickBtnMenu($event)\">\n <mat-icon [@indicatorRotate]=\"popoverTrigger?.popoverOpen ? 'opened': 'closed'\"> expand_more </mat-icon>\n </button>\n</div>\n\n<gipi-popover #btnPopover=\"gipiPopover\"\n [popoverOverlapTrigger]=\"false\"\n [popoverCloseOnClick]=\"false\"\n [popoverArrowWidth]=\"0\"\n [popoverOffsetY]=\"3\">\n <div class=\"btn-popover-content\">\n <button class=\"btn-split-option\"\n *ngFor=\"let option of splitOptions\"\n [disabled]=\"option?.disabled\"\n (click)=\"handleClickBtnSplitOption(option)\">\n {{ option.label }}\n </button>\n </div>\n</gipi-popover>\n",
|
16455
16474
|
providers: [
|
16456
16475
|
{
|
16457
16476
|
provide: NG_VALUE_ACCESSOR,
|
@@ -17303,6 +17322,9 @@ let GIPITabGroupComponent = class GIPITabGroupComponent {
|
|
17303
17322
|
return componentRef.instance;
|
17304
17323
|
}
|
17305
17324
|
selectTab(tab) {
|
17325
|
+
if (tab.disabled) {
|
17326
|
+
return;
|
17327
|
+
}
|
17306
17328
|
this.tabQueryList.toArray().forEach(t => (t.active = false));
|
17307
17329
|
this.dynamicTabs.forEach(t => (t.active = false));
|
17308
17330
|
tab.active = true;
|
@@ -17383,7 +17405,7 @@ GIPITabGroupComponent = __decorate([
|
|
17383
17405
|
'[attr.id]': 'id',
|
17384
17406
|
'[attr.name]': 'name',
|
17385
17407
|
},
|
17386
|
-
styles: [":host{display:block;flex:1;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-nav-bar{background:#f5f5f6;border:none;border-radius:.4rem;padding:.4rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-links{display:flex;gap:1rem}:host ::ng-deep .mat-tab-link{height:auto!important;padding:1rem!important;opacity:1!important;border:none!important;border-radius:4px!important;transition:.2s!important;color:#595959!important;gap:1rem}:host ::ng-deep .mat-tab-link>mat-icon{width:2rem!important;height:2rem!important;font-size:2rem!important;color:#595959!important}:host ::ng-deep .mat-tab-link>mat-icon svg,:host ::ng-deep .mat-tab-link>mat-icon svg g path,:host ::ng-deep .mat-tab-link>mat-icon svg path{color:#595959!important;fill:#595959!important}:host ::ng-deep .mat-tab-link:not(.active):hover{background:#e0e1e2!important}:host ::ng-deep .mat-tab-link.active{background:#e0313e!important;color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon{color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon svg,:host ::ng-deep .mat-tab-link.active>mat-icon svg g path,:host ::ng-deep .mat-tab-link.active>mat-icon svg path{color:#fff!important;fill:#fff!important}:host ::ng-deep .mat-tab-link:disabled,:host ::ng-deep .mat-tab-link:disabled>mat-icon{color:#
|
17408
|
+
styles: [":host{display:block;flex:1;width:100%;box-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-nav-bar{background:#f5f5f6;border:none;border-radius:.4rem;padding:.4rem;box-shadow:0 1px 3px 0 rgba(0,0,0,.1),0 1px 2px -1px rgba(0,0,0,.1)}:host ::ng-deep .mat-tab-links{display:flex;gap:1rem}:host ::ng-deep .mat-tab-link{height:auto!important;padding:1rem!important;opacity:1!important;border:none!important;border-radius:4px!important;transition:.2s!important;color:#595959!important;gap:1rem}:host ::ng-deep .mat-tab-link>mat-icon{width:2rem!important;height:2rem!important;font-size:2rem!important;color:#595959!important}:host ::ng-deep .mat-tab-link>mat-icon svg,:host ::ng-deep .mat-tab-link>mat-icon svg g path,:host ::ng-deep .mat-tab-link>mat-icon svg path{color:#595959!important;fill:#595959!important}:host ::ng-deep .mat-tab-link:not(.active):not(.mat-tab-disabled):hover{background:#e0e1e2!important}:host ::ng-deep .mat-tab-link.active{background:#e0313e!important;color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon{color:#fff!important}:host ::ng-deep .mat-tab-link.active>mat-icon svg,:host ::ng-deep .mat-tab-link.active>mat-icon svg g path,:host ::ng-deep .mat-tab-link.active>mat-icon svg path{color:#fff!important;fill:#fff!important}:host ::ng-deep .mat-tab-link.mat-tab-disabled,:host ::ng-deep .mat-tab-link:disabled,:host ::ng-deep .mat-tab-link:disabled>mat-icon{color:#d1d2d4!important;fill:#d1d2d4!important;text-decoration:line-through!important;pointer-events:all!important;cursor:not-allowed!important}:host ::ng-deep .mat-tab-link.mat-tab-disabled svg,:host ::ng-deep .mat-tab-link.mat-tab-disabled svg g path,:host ::ng-deep .mat-tab-link.mat-tab-disabled svg path,:host ::ng-deep .mat-tab-link:disabled svg,:host ::ng-deep .mat-tab-link:disabled svg g path,:host ::ng-deep .mat-tab-link:disabled svg path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg g path,:host ::ng-deep .mat-tab-link:disabled>mat-icon svg path{color:#d1d2d4!important;fill:#d1d2d4!important}:host ::ng-deep .mat-ink-bar{display:none!important}:host ::ng-deep .mat-tab-header-pagination{box-shadow:none!important}:host ::ng-deep .mat-tab-header-pagination.mat-tab-header-pagination-disabled .mat-tab-header-pagination-chevron{border-color:#d1d2d4!important;cursor:not-allowed!important}:host ::ng-deep .mat-tab-header-pagination .mat-tab-header-pagination-chevron{border-color:#595959!important}:host ::ng-deep .mat-tab-header-pagination:hover{transform:scale(.98)!important}"]
|
17387
17409
|
}),
|
17388
17410
|
__metadata("design:paramtypes", [ElementRef,
|
17389
17411
|
ComponentFactoryResolver])
|
@@ -17676,7 +17698,7 @@ GIPITextareaComponent = GIPITextareaComponent_1 = __decorate([
|
|
17676
17698
|
'class': 'gipi-textarea',
|
17677
17699
|
},
|
17678
17700
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
17679
|
-
styles: [":host{display:flex;min-width:0;max-width:100%;flex:1;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .textarea-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .textarea-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .textarea-element{display:flex;font-family:inherit;font-size:inherit;color:inherit;padding:.75rem .8rem;background:#fff;border:1px solid
|
17701
|
+
styles: [":host{display:flex;min-width:0;max-width:100%;flex:1;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}:host .textarea-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}:host .textarea-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}:host .textarea-element{display:flex;font-family:inherit;font-size:inherit;color:inherit;padding:.75rem .8rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:6px;caret-color:#696969;max-height:12rem;min-height:6rem;resize:vertical;outline:0;overflow:auto}:host .textarea-element:not(:disabled):hover{border-color:#6d6f73}:host .textarea-element:not(:disabled).ng-dirty.ng-invalid:enabled:hover,:host .textarea-element:not(:disabled):invalid:enabled:hover{border-color:#e07f62}:host .textarea-element:not(:disabled):enabled:focus{outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #e0e1e2;border-color:#6d6f73}:host .textarea-element:not(:disabled).ng-dirty.ng-invalid:enabled,:host .textarea-element:not(:disabled):invalid:enabled{border-color:#d14014}:host .textarea-element:not(:disabled).ng-dirty.ng-invalid:enabled:focus,:host .textarea-element:not(:disabled):invalid:enabled:focus{outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #f1c4b6;border-color:#d14014}:host .textarea-element:disabled{color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}:host .textarea-element.resize-none{resize:none}:host .textarea-element.resize-both{resize:both}:host .textarea-element.resize-horizontal{resize:horizontal}:host .textarea-element.resize-vertical{resize:vertical}:host .textarea-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::-webkit-input-placeholder{color:#bbbdc1}:-moz-placeholder{color:#bbbdc1}::-moz-placeholder{color:#bbbdc1}:-ms-input-placeholder{color:#bbbdc1}"]
|
17680
17702
|
}),
|
17681
17703
|
__metadata("design:paramtypes", [ElementRef,
|
17682
17704
|
ChangeDetectorRef])
|
@@ -21854,7 +21876,7 @@ MatDateRangeInput = MatDateRangeInput_1 = __decorate([
|
|
21854
21876
|
{ provide: MatFormFieldControl, useExisting: MatDateRangeInput_1 },
|
21855
21877
|
{ provide: MAT_DATE_RANGE_INPUT_PARENT, useExisting: MatDateRangeInput_1 },
|
21856
21878
|
],
|
21857
|
-
styles: [".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center;padding-bottom:3px}.mat-date-range-input-separator{transition:opacity .4s cubic-bezier(.25,.8,.25,1) .133s;margin:0 4px}.mat-date-range-input-separator-hidden{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-inner{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;vertical-align:bottom;text-align:inherit;-webkit-appearance:none
|
21879
|
+
styles: [".mat-date-range-input{display:block;width:100%}.mat-date-range-input-container{display:flex;align-items:center;padding-bottom:3px}.mat-date-range-input-separator{transition:opacity .4s cubic-bezier(.25,.8,.25,1) .133s;margin:0 4px}.mat-date-range-input-separator-hidden{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;opacity:0;transition:none}.mat-date-range-input-inner{font:inherit;background:0 0;color:currentColor;border:none;outline:0;padding:0;margin:0;vertical-align:bottom;text-align:inherit;width:100%;-moz-appearance:none;appearance:none;-webkit-appearance:none}.mat-date-range-input-inner::-ms-clear,.mat-date-range-input-inner::-ms-reveal{display:none}.mat-date-range-input-inner:-moz-ui-invalid{box-shadow:none}.mat-date-range-input-inner::-ms-input-placeholder{transition:color .4s cubic-bezier(.25,.8,.25,1) .133s}.mat-date-range-input-inner::placeholder{transition:color .4s cubic-bezier(.25,.8,.25,1) .133s}.mat-date-range-input-inner::-moz-placeholder{transition:color .4s cubic-bezier(.25,.8,.25,1) .133s}.mat-date-range-input-inner::-webkit-input-placeholder{transition:color .4s cubic-bezier(.25,.8,.25,1) .133s}.mat-date-range-input-inner:-ms-input-placeholder{transition:color .4s cubic-bezier(.25,.8,.25,1) .133s}.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-ms-input-placeholder,.mat-form-field-hide-placeholder .mat-date-range-input-inner::-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::placeholder,.mat-form-field-hide-placeholder .mat-date-range-input-inner::placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-moz-placeholder,.mat-form-field-hide-placeholder .mat-date-range-input-inner::-moz-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-date-range-input-hide-placeholders .mat-date-range-input-inner::-webkit-input-placeholder,.mat-form-field-hide-placeholder .mat-date-range-input-inner::-webkit-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-date-range-input-hide-placeholders .mat-date-range-input-inner:-ms-input-placeholder,.mat-form-field-hide-placeholder .mat-date-range-input-inner:-ms-input-placeholder{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;color:transparent!important;-webkit-text-fill-color:transparent;transition:none}.mat-date-range-input-mirror{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;visibility:hidden;white-space:nowrap;display:inline-block;min-width:2px}.mat-date-range-input-start-wrapper{position:relative;overflow:hidden;max-width:calc(50% - 4px)}.mat-date-range-input-start-wrapper .mat-date-range-input-inner{position:absolute;top:0;left:0}.mat-date-range-input-end-wrapper{flex-grow:1;max-width:calc(50% - 4px)}.mat-form-field-type-mat-date-range-input .mat-form-field-infix{width:200px}"]
|
21858
21880
|
}),
|
21859
21881
|
__param(2, Optional()), __param(2, Self()),
|
21860
21882
|
__param(3, Optional()),
|
@@ -22660,7 +22682,7 @@ DateRangePickerComponent = DateRangePickerComponent_1 = __decorate([
|
|
22660
22682
|
host: {
|
22661
22683
|
'class': 'gipi-date-range-picker',
|
22662
22684
|
},
|
22663
|
-
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid
|
22685
|
+
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.6rem}.input-wrapper .input-content .input-element{padding:.75rem .8rem;border:none;outline:0;background-color:transparent;flex:1;color:inherit;caret-color:#696969;min-width:0}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.prefix:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.suffix:hover){border-color:#6d6f73}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:focus){outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #e0e1e2;border-color:#6d6f73}.input-wrapper .input-content:has(.input-element:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}.input-wrapper .input-content:has(.input-element:disabled) .suffix>mat-icon{color:#bbbdc1!important}.input-wrapper .input-content .input-element:disabled{cursor:not-allowed}.input-wrapper .input-content .suffix{display:flex;align-items:center;justify-content:center;padding-block:.75rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-right:.8rem}.input-wrapper .input-content .suffix>mat-icon{width:2rem;height:2rem;font-size:2rem;color:#696969}.input-wrapper .input-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .mat-date-range-input{height:4rem!important;padding-left:.8rem!important}::ng-deep .mat-date-range-input-container,::ng-deep .mat-date-range-input-end-wrapper,::ng-deep .mat-date-range-input-inner,::ng-deep .mat-date-range-input-start-wrapper{width:-webkit-fit-content;width:-moz-fit-content;width:fit-content;max-width:100%;min-height:100%;height:100%;padding-bottom:3px}::ng-deep .mat-date-range-input-end-wrapper{padding-bottom:0!important}::ng-deep .mat-date-range-input-inner{padding:0!important}::-webkit-input-placeholder{color:#bbbdc1}:-moz-placeholder{color:#bbbdc1}::-moz-placeholder{color:#bbbdc1}:-ms-input-placeholder{color:#bbbdc1}"]
|
22664
22686
|
}),
|
22665
22687
|
__metadata("design:paramtypes", [ElementRef,
|
22666
22688
|
ChangeDetectorRef])
|
@@ -23188,7 +23210,7 @@ DatepickerComponent = DatepickerComponent_1 = __decorate([
|
|
23188
23210
|
host: {
|
23189
23211
|
'class': 'gipi-datepicker',
|
23190
23212
|
},
|
23191
|
-
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid
|
23213
|
+
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.6rem}.input-wrapper .input-content .input-element{padding:.75rem .8rem;border:none;outline:0;background-color:transparent;flex:1;color:inherit;caret-color:#696969;min-width:0}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.prefix:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.suffix:hover){border-color:#6d6f73}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:focus){outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #e0e1e2;border-color:#6d6f73}.input-wrapper .input-content:has(.input-element:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}.input-wrapper .input-content:has(.input-element:disabled) .suffix>mat-icon{color:#bbbdc1!important}.input-wrapper .input-content .input-element:disabled{cursor:not-allowed}.input-wrapper .input-content .suffix{display:flex;align-items:center;justify-content:center;padding-block:.75rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-right:.8rem}.input-wrapper .input-content .suffix>mat-icon{width:2rem;height:2rem;font-size:2rem;color:#696969}.input-wrapper .input-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::-webkit-input-placeholder{color:#bbbdc1}:-moz-placeholder{color:#bbbdc1}::-moz-placeholder{color:#bbbdc1}:-ms-input-placeholder{color:#bbbdc1}"]
|
23192
23214
|
}),
|
23193
23215
|
__metadata("design:paramtypes", [ElementRef,
|
23194
23216
|
ChangeDetectorRef])
|
@@ -23290,138 +23312,3133 @@ DatepickerModule = __decorate([
|
|
23290
23312
|
})
|
23291
23313
|
], DatepickerModule);
|
23292
23314
|
|
23293
|
-
|
23294
|
-
|
23295
|
-
|
23296
|
-
|
23297
|
-
|
23298
|
-
|
23299
|
-
|
23300
|
-
|
23301
|
-
|
23302
|
-
|
23303
|
-
|
23315
|
+
/**
|
23316
|
+
* This animation fades in the background color and text content of the
|
23317
|
+
* select's options. It is time delayed to occur 100ms after the overlay
|
23318
|
+
* panel has transformed in.
|
23319
|
+
*/
|
23320
|
+
const fadeInContent = trigger('fadeInContent', [
|
23321
|
+
state('showing', style({ opacity: 1 })),
|
23322
|
+
transition('void => showing', [
|
23323
|
+
style({ opacity: 0 }),
|
23324
|
+
animate(`150ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)`),
|
23325
|
+
]),
|
23326
|
+
]);
|
23327
|
+
const slideCalendar = trigger('slideCalendar', [
|
23328
|
+
transition('* => left', [
|
23329
|
+
animate(180, keyframes([
|
23330
|
+
style({ transform: 'translateX(100%)', offset: 0.5 }),
|
23331
|
+
style({ transform: 'translateX(-100%)', offset: 0.51 }),
|
23332
|
+
style({ transform: 'translateX(0)', offset: 1 }),
|
23333
|
+
])),
|
23334
|
+
]),
|
23335
|
+
transition('* => right', [
|
23336
|
+
animate(180, keyframes([
|
23337
|
+
style({ transform: 'translateX(-100%)', offset: 0.5 }),
|
23338
|
+
style({ transform: 'translateX(100%)', offset: 0.51 }),
|
23339
|
+
style({ transform: 'translateX(0)', offset: 1 }),
|
23340
|
+
])),
|
23341
|
+
]),
|
23342
|
+
]);
|
23343
|
+
|
23344
|
+
/** @docs-private */
|
23345
|
+
function createMissingDateImplError$1(provider) {
|
23346
|
+
return Error(`GIPIDatetimepickerComponent: No provider found for ${provider}. You must import one of the following ` +
|
23347
|
+
`modules at your application root: GIPINativeDatetimeModule, GIPIMomentDatetimeModule, or provide a ` +
|
23348
|
+
`custom implementation.`);
|
23349
|
+
}
|
23350
|
+
|
23351
|
+
var GIPIDatetimepickerFilterType;
|
23352
|
+
(function (GIPIDatetimepickerFilterType) {
|
23353
|
+
GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["DATE"] = 0] = "DATE";
|
23354
|
+
GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["HOUR"] = 1] = "HOUR";
|
23355
|
+
GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["MINUTE"] = 2] = "MINUTE";
|
23356
|
+
})(GIPIDatetimepickerFilterType || (GIPIDatetimepickerFilterType = {}));
|
23357
|
+
|
23358
|
+
/**
|
23359
|
+
* An internal class that represents the data corresponding to a single calendar cell.
|
23360
|
+
* @docs-private
|
23361
|
+
*/
|
23362
|
+
class GIPIDatetimepickerCalendarCell {
|
23363
|
+
constructor(value, displayValue, ariaLabel, enabled) {
|
23364
|
+
this.value = value;
|
23365
|
+
this.displayValue = displayValue;
|
23366
|
+
this.ariaLabel = ariaLabel;
|
23367
|
+
this.enabled = enabled;
|
23304
23368
|
}
|
23305
|
-
|
23306
|
-
|
23307
|
-
|
23308
|
-
|
23309
|
-
|
23310
|
-
|
23311
|
-
|
23312
|
-
|
23313
|
-
|
23314
|
-
|
23315
|
-
|
23316
|
-
|
23317
|
-
|
23369
|
+
}
|
23370
|
+
/**
|
23371
|
+
* An internal component used to display calendar data in a table.
|
23372
|
+
* @docs-private
|
23373
|
+
*/
|
23374
|
+
let GIPIDatetimepickerCalendarBodyComponent = class GIPIDatetimepickerCalendarBodyComponent {
|
23375
|
+
constructor() {
|
23376
|
+
/**
|
23377
|
+
* The aspect ratio (width / height) to use for the cells in the table. This aspect ratio will be
|
23378
|
+
* maintained even as the table resizes.
|
23379
|
+
*/
|
23380
|
+
this.cellAspectRatio = 1;
|
23381
|
+
/** The number of columns in the table. */
|
23382
|
+
this.numCols = 7;
|
23383
|
+
/** Whether to allow selection of disabled cells. */
|
23384
|
+
this.allowDisabledSelection = false;
|
23385
|
+
/** The cell number of the active cell in the table. */
|
23386
|
+
this.activeCell = 0;
|
23387
|
+
/** Emits when a new value is selected. */
|
23388
|
+
this.selectedValueChange = new EventEmitter();
|
23318
23389
|
}
|
23319
|
-
|
23320
|
-
if (this.
|
23321
|
-
|
23322
|
-
this._changeDetectorRef.markForCheck();
|
23323
|
-
}));
|
23390
|
+
_cellClicked(cell) {
|
23391
|
+
if (!this.allowDisabledSelection && !cell.enabled) {
|
23392
|
+
return;
|
23324
23393
|
}
|
23394
|
+
this.selectedValueChange.emit(cell.value);
|
23325
23395
|
}
|
23326
|
-
|
23327
|
-
this.
|
23328
|
-
|
23329
|
-
|
23330
|
-
|
23331
|
-
this._animationState = 'void';
|
23332
|
-
if (this._changeDetectorRef) {
|
23333
|
-
this._changeDetectorRef.markForCheck();
|
23396
|
+
_isActiveCell(rowIndex, colIndex) {
|
23397
|
+
let cellNumber = rowIndex * this.numCols + colIndex;
|
23398
|
+
// Account for the fact that the first row may not have as many cells.
|
23399
|
+
if (rowIndex) {
|
23400
|
+
cellNumber -= this._firstRowOffset;
|
23334
23401
|
}
|
23402
|
+
return cellNumber === this.activeCell;
|
23335
23403
|
}
|
23336
|
-
|
23337
|
-
|
23338
|
-
|
23339
|
-
|
23404
|
+
ngOnChanges(changes) {
|
23405
|
+
const columnChanges = changes['numCols'];
|
23406
|
+
const { rows, numCols } = this;
|
23407
|
+
if (changes['rows'] || columnChanges) {
|
23408
|
+
this._firstRowOffset = rows && rows.length && rows[0].length ? numCols - rows[0].length : 0;
|
23340
23409
|
}
|
23341
|
-
|
23342
|
-
|
23343
|
-
|
23344
|
-
if (this.
|
23345
|
-
this.
|
23410
|
+
if (changes['cellAspectRatio'] || columnChanges || !this._cellPadding) {
|
23411
|
+
this._cellPadding = `${50 * this.cellAspectRatio / numCols}%`;
|
23412
|
+
}
|
23413
|
+
if (columnChanges || !this._cellWidth) {
|
23414
|
+
this._cellWidth = `${100 / numCols}%`;
|
23346
23415
|
}
|
23347
23416
|
}
|
23348
|
-
|
23349
|
-
|
23350
|
-
|
23351
|
-
|
23417
|
+
};
|
23418
|
+
__decorate([
|
23419
|
+
Input(),
|
23420
|
+
__metadata("design:type", Number)
|
23421
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "cellAspectRatio", void 0);
|
23422
|
+
__decorate([
|
23423
|
+
Input(),
|
23424
|
+
__metadata("design:type", String)
|
23425
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "label", void 0);
|
23426
|
+
__decorate([
|
23427
|
+
Input(),
|
23428
|
+
__metadata("design:type", Array)
|
23429
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "rows", void 0);
|
23430
|
+
__decorate([
|
23431
|
+
Input(),
|
23432
|
+
__metadata("design:type", Number)
|
23433
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "todayValue", void 0);
|
23434
|
+
__decorate([
|
23435
|
+
Input(),
|
23436
|
+
__metadata("design:type", Number)
|
23437
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "selectedValue", void 0);
|
23438
|
+
__decorate([
|
23439
|
+
Input(),
|
23440
|
+
__metadata("design:type", Number)
|
23441
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "labelMinRequiredCells", void 0);
|
23442
|
+
__decorate([
|
23443
|
+
Input(),
|
23444
|
+
__metadata("design:type", Object)
|
23445
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "numCols", void 0);
|
23446
|
+
__decorate([
|
23447
|
+
Input(),
|
23448
|
+
__metadata("design:type", Object)
|
23449
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "allowDisabledSelection", void 0);
|
23450
|
+
__decorate([
|
23451
|
+
Input(),
|
23452
|
+
__metadata("design:type", Object)
|
23453
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "activeCell", void 0);
|
23454
|
+
__decorate([
|
23455
|
+
Output(),
|
23456
|
+
__metadata("design:type", Object)
|
23457
|
+
], GIPIDatetimepickerCalendarBodyComponent.prototype, "selectedValueChange", void 0);
|
23458
|
+
GIPIDatetimepickerCalendarBodyComponent = __decorate([
|
23459
|
+
Component({
|
23460
|
+
selector: 'tbody[gipiMatDatetimePickerCalendarBody]',
|
23461
|
+
template: "<!-- Se n\u00E3o houver espa\u00E7o suficiente na primeira linha, crie uma linha de r\u00F3tulo separada. Marcamos esta linha\ncomo aria-hidden porque n\u00E3o queremos que seja lido como uma das semanas do m\u00EAs. -->\n<tr *ngIf=\"_firstRowOffset < labelMinRequiredCells\"\n aria-hidden=\"true\">\n\n <td class=\"gipi-mat-datetime-picker-calendar-body-label\"\n [attr.colspan]=\"numCols\"\n [style.paddingTop]=\"_cellPadding\"\n [style.paddingBottom]=\"_cellPadding\">\n {{ label }}\n </td>\n\n</tr>\n\n<!-- Crie a primeira linha separadamente para que possamos incluir uma c\u00E9lula espa\u00E7adora especial. -->\n<tr *ngFor=\"let row of rows; let rowIndex = index\"\n role=\"row\">\n <!-- Marcamos esta c\u00E9lula como oculta por \u00E1ria para que n\u00E3o seja lida como um dos dias da semana. -->\n <td *ngIf=\"rowIndex === 0 && _firstRowOffset\"\n aria-hidden=\"true\"\n class=\"gipi-mat-datetime-picker-calendar-body-label\"\n [attr.colspan]=\"_firstRowOffset\"\n [style.paddingTop]=\"_cellPadding\"\n [style.paddingBottom]=\"_cellPadding\">\n {{ _firstRowOffset >= labelMinRequiredCells ? label : '' }}\n </td>\n\n <td *ngFor=\"let item of row; let colIndex = index\"\n role=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-body-cell\"\n [attr.aria-disabled]=\"!item.enabled || null\"\n [attr.aria-label]=\"item.ariaLabel\"\n [class.gipi-mat-datetime-picker-calendar-body-active]=\"_isActiveCell(rowIndex, colIndex)\"\n [class.gipi-mat-datetime-picker-calendar-body-disabled]=\"!item.enabled\"\n (click)=\"_cellClicked(item)\"\n [style.width]=\"_cellWidth\"\n [style.paddingTop]=\"_cellPadding\"\n [style.paddingBottom]=\"_cellPadding\">\n\n <div class=\"gipi-mat-datetime-picker-calendar-body-cell-content\"\n [class.gipi-mat-datetime-picker-calendar-body-selected]=\"selectedValue === item.value\"\n [class.gipi-mat-datetime-picker-calendar-body-today]=\"todayValue === item.value\"\n [attr.aria-selected]=\"selectedValue === item.value\">\n {{ item.displayValue }}\n </div>\n\n </td>\n</tr>\n",
|
23462
|
+
encapsulation: ViewEncapsulation.None,
|
23463
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
23464
|
+
host: {
|
23465
|
+
class: 'gipi-mat-datetime-picker-calendar-body',
|
23466
|
+
},
|
23467
|
+
styles: [".gipi-mat-datetime-picker-calendar-body{font-size:13px;min-width:224px}.gipi-mat-datetime-picker-calendar-body-label{padding:7.14286% 0 7.14286% 7.14286%;height:0;line-height:0;color:rgba(0,0,0,.54);transform:translateX(-6px);text-align:left}.gipi-mat-datetime-picker-calendar-body-cell{position:relative;width:14.28571%;height:0;line-height:0;padding:7.14286% 0;text-align:center;outline:0;cursor:pointer}.gipi-mat-datetime-picker-calendar-body-disabled{cursor:default;pointer-events:none}.gipi-mat-datetime-picker-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%;color:rgba(0,0,0,.87);border:1px solid transparent;border-radius:50%}.gipi-mat-datetime-picker-calendar-body-disabled>.gipi-mat-datetime-picker-calendar-body-cell-content:not(.gipi-mat-datetime-picker-calendar-body-selected){color:rgba(0,0,0,.38)}.mat-calendar:focus .gipi-mat-datetime-picker-calendar-body-active>.gipi-mat-datetime-picker-calendar-body-cell-content:not(.gipi-mat-datetime-picker-calendar-body-selected),:not(.gipi-mat-datetime-picker-calendar-body-disabled):hover>.gipi-mat-datetime-picker-calendar-body-cell-content:not(.gipi-mat-datetime-picker-calendar-body-selected){background-color:rgba(0,0,0,.12)}.gipi-mat-datetime-picker-calendar-body-disabled>.gipi-mat-datetime-picker-calendar-body-today:not(.gipi-mat-datetime-picker-calendar-body-selected){border-color:rgba(0,0,0,.18)}[dir=rtl] .gipi-mat-datetime-picker-calendar-body-label{padding:0 7.14286% 0 0;transform:translateX(6px);text-align:right}"]
|
23468
|
+
})
|
23469
|
+
], GIPIDatetimepickerCalendarBodyComponent);
|
23470
|
+
|
23471
|
+
class GIPIDatetimeAdapter extends DateAdapter$1 {
|
23472
|
+
constructor(_delegate) {
|
23473
|
+
super();
|
23474
|
+
this._delegate = _delegate;
|
23352
23475
|
}
|
23353
|
-
|
23354
|
-
return this.
|
23476
|
+
getValidDateOrNull(obj) {
|
23477
|
+
return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;
|
23355
23478
|
}
|
23356
|
-
|
23357
|
-
|
23358
|
-
|
23359
|
-
|
23479
|
+
compareDatetime(first, second, respectMinutePart = true) {
|
23480
|
+
return (this.compareDate(first, second) ||
|
23481
|
+
this.getHour(first) - this.getHour(second) ||
|
23482
|
+
(respectMinutePart && this.getMinute(first) - this.getMinute(second)));
|
23360
23483
|
}
|
23361
|
-
|
23362
|
-
|
23363
|
-
|
23364
|
-
const
|
23365
|
-
|
23366
|
-
|
23367
|
-
disabled = index < minMonth || index > maxMonth;
|
23368
|
-
}
|
23369
|
-
else if (!ObjectUtil.isNull(minMonth)) {
|
23370
|
-
disabled = index < minMonth;
|
23371
|
-
}
|
23372
|
-
else if (!ObjectUtil.isNull(maxMonth)) {
|
23373
|
-
disabled = index > maxMonth;
|
23484
|
+
sameDatetime(first, second) {
|
23485
|
+
if (first && second) {
|
23486
|
+
const firstValid = this.isValid(first);
|
23487
|
+
const secondValid = this.isValid(second);
|
23488
|
+
if (firstValid && secondValid) {
|
23489
|
+
return !this.compareDatetime(first, second);
|
23374
23490
|
}
|
23491
|
+
return firstValid === secondValid;
|
23375
23492
|
}
|
23376
|
-
return
|
23377
|
-
// let disabled = false;
|
23378
|
-
// if (this._enabledMonths && this._enabledMonths.length > 0) {
|
23379
|
-
// disabled = this._enabledMonths.indexOf(index) < 0;
|
23380
|
-
// }
|
23381
|
-
// if (this._disabledMonths && this._disabledMonths.length > 0) {
|
23382
|
-
// disabled = this._disabledMonths.indexOf(index) >= 0;
|
23383
|
-
// }
|
23384
|
-
// return disabled;
|
23493
|
+
return first === second;
|
23385
23494
|
}
|
23386
|
-
|
23387
|
-
|
23388
|
-
this.isShowYears = !this.isShowYears;
|
23389
|
-
this._renderYears();
|
23495
|
+
sameYear(first, second) {
|
23496
|
+
return first && second && this.getYear(first) === this.getYear(second);
|
23390
23497
|
}
|
23391
|
-
|
23392
|
-
|
23393
|
-
|
23394
|
-
this.
|
23395
|
-
|
23396
|
-
for (let i = 0; i <= 12; i++) {
|
23397
|
-
this.years.push(this.monthYearPicker.model.selectedYearMoment.year() + i);
|
23398
|
-
}
|
23498
|
+
sameDay(first, second) {
|
23499
|
+
return (first &&
|
23500
|
+
second &&
|
23501
|
+
this.getDate(first) === this.getDate(second) &&
|
23502
|
+
this.sameMonthAndYear(first, second));
|
23399
23503
|
}
|
23400
|
-
|
23401
|
-
|
23402
|
-
|
23403
|
-
|
23404
|
-
|
23504
|
+
sameHour(first, second) {
|
23505
|
+
return (first &&
|
23506
|
+
second &&
|
23507
|
+
this.getHour(first) === this.getHour(second) &&
|
23508
|
+
this.sameDay(first, second));
|
23405
23509
|
}
|
23406
|
-
|
23407
|
-
|
23408
|
-
|
23409
|
-
|
23410
|
-
|
23411
|
-
|
23412
|
-
|
23413
|
-
|
23414
|
-
this.
|
23510
|
+
sameMinute(first, second) {
|
23511
|
+
return (first &&
|
23512
|
+
second &&
|
23513
|
+
this.getMinute(first) === this.getMinute(second) &&
|
23514
|
+
this.sameHour(first, second));
|
23515
|
+
}
|
23516
|
+
sameMonthAndYear(first, second) {
|
23517
|
+
if (first && second) {
|
23518
|
+
const firstValid = this.isValid(first);
|
23519
|
+
const secondValid = this.isValid(second);
|
23520
|
+
if (firstValid && secondValid) {
|
23521
|
+
return !(this.getYear(first) - this.getYear(second) ||
|
23522
|
+
this.getMonth(first) - this.getMonth(second));
|
23523
|
+
}
|
23524
|
+
return firstValid === secondValid;
|
23415
23525
|
}
|
23526
|
+
return first === second;
|
23416
23527
|
}
|
23417
|
-
|
23418
|
-
|
23528
|
+
// delegate
|
23529
|
+
deserialize(value) {
|
23530
|
+
return this._delegate.deserialize(value);
|
23419
23531
|
}
|
23420
|
-
|
23421
|
-
return
|
23532
|
+
clone(date) {
|
23533
|
+
return this._delegate.clone(date);
|
23422
23534
|
}
|
23423
|
-
|
23424
|
-
|
23535
|
+
addCalendarYears(date, years) {
|
23536
|
+
return this._delegate.addCalendarYears(date, years);
|
23537
|
+
}
|
23538
|
+
addCalendarMonths(date, months) {
|
23539
|
+
return this._delegate.addCalendarMonths(date, months);
|
23540
|
+
}
|
23541
|
+
addCalendarDays(date, days) {
|
23542
|
+
return this._delegate.addCalendarDays(date, days);
|
23543
|
+
}
|
23544
|
+
getYear(date) {
|
23545
|
+
return this._delegate.getYear(date);
|
23546
|
+
}
|
23547
|
+
getMonth(date) {
|
23548
|
+
return this._delegate.getMonth(date);
|
23549
|
+
}
|
23550
|
+
getDate(date) {
|
23551
|
+
return this._delegate.getDate(date);
|
23552
|
+
}
|
23553
|
+
getDayOfWeek(date) {
|
23554
|
+
return this._delegate.getDayOfWeek(date);
|
23555
|
+
}
|
23556
|
+
getMonthNames(style) {
|
23557
|
+
return this._delegate.getMonthNames(style);
|
23558
|
+
}
|
23559
|
+
getDateNames() {
|
23560
|
+
return this._delegate.getDateNames();
|
23561
|
+
}
|
23562
|
+
getDayOfWeekNames(style) {
|
23563
|
+
return this._delegate.getDayOfWeekNames(style);
|
23564
|
+
}
|
23565
|
+
getYearName(date) {
|
23566
|
+
return this._delegate.getYearName(date);
|
23567
|
+
}
|
23568
|
+
getFirstDayOfWeek() {
|
23569
|
+
return this._delegate.getFirstDayOfWeek();
|
23570
|
+
}
|
23571
|
+
getNumDaysInMonth(date) {
|
23572
|
+
return this._delegate.getNumDaysInMonth(date);
|
23573
|
+
}
|
23574
|
+
createDate(year, month, date) {
|
23575
|
+
return this._delegate.createDate(year, month, date);
|
23576
|
+
}
|
23577
|
+
today() {
|
23578
|
+
return this._delegate.today();
|
23579
|
+
}
|
23580
|
+
parse(value, parseFormat) {
|
23581
|
+
return this._delegate.parse(value, parseFormat);
|
23582
|
+
}
|
23583
|
+
format(date, displayFormat) {
|
23584
|
+
return this._delegate.format(date, displayFormat);
|
23585
|
+
}
|
23586
|
+
toIso8601(date) {
|
23587
|
+
return this._delegate.toIso8601(date);
|
23588
|
+
}
|
23589
|
+
isDateInstance(obj) {
|
23590
|
+
return this._delegate.isDateInstance(obj);
|
23591
|
+
}
|
23592
|
+
isValid(date) {
|
23593
|
+
return this._delegate.isValid(date);
|
23594
|
+
}
|
23595
|
+
invalid() {
|
23596
|
+
return this._delegate.invalid();
|
23597
|
+
}
|
23598
|
+
clampDate(date, min, max) {
|
23599
|
+
if (min && this.compareDatetime(date, min) < 0) {
|
23600
|
+
return min;
|
23601
|
+
}
|
23602
|
+
if (max && this.compareDatetime(date, max) > 0) {
|
23603
|
+
return max;
|
23604
|
+
}
|
23605
|
+
return date;
|
23606
|
+
}
|
23607
|
+
}
|
23608
|
+
|
23609
|
+
const yearsPerPage$2 = 24;
|
23610
|
+
const yearsPerRow$1 = 4;
|
23611
|
+
/**
|
23612
|
+
* An internal component used to display multiple years in the datepicker.
|
23613
|
+
* @docs-private
|
23614
|
+
*/
|
23615
|
+
let GIPIDatetimepickerMultiYearViewComponent = class GIPIDatetimepickerMultiYearViewComponent {
|
23616
|
+
constructor(_adapter, _dateFormats) {
|
23617
|
+
this._adapter = _adapter;
|
23618
|
+
this._dateFormats = _dateFormats;
|
23619
|
+
this.type = 'date';
|
23620
|
+
/** Emits when a new month is selected. */
|
23621
|
+
this.selectedChange = new EventEmitter();
|
23622
|
+
this._userSelection = new EventEmitter();
|
23623
|
+
if (!this._adapter) {
|
23624
|
+
throw createMissingDateImplError$1('GIPIDatetimeAdapter');
|
23625
|
+
}
|
23626
|
+
if (!this._dateFormats) {
|
23627
|
+
throw createMissingDateImplError$1('GIPI_DATETIME_FORMATS');
|
23628
|
+
}
|
23629
|
+
this._activeDate = this._adapter.today();
|
23630
|
+
}
|
23631
|
+
get activeDate() {
|
23632
|
+
return this._activeDate;
|
23633
|
+
}
|
23634
|
+
set activeDate(value) {
|
23635
|
+
let oldActiveDate = this._activeDate;
|
23636
|
+
this._activeDate = value || this._adapter.today();
|
23637
|
+
if (oldActiveDate && this._activeDate && !isSameMultiYearView$1(this._adapter, oldActiveDate, this._activeDate, this.minDate, this.maxDate)) {
|
23638
|
+
this._init();
|
23639
|
+
}
|
23640
|
+
}
|
23641
|
+
get selected() {
|
23642
|
+
return this._selected;
|
23643
|
+
}
|
23644
|
+
set selected(value) {
|
23645
|
+
this._selected = value;
|
23646
|
+
this._selectedYear = this._selected && this._adapter.getYear(this._selected);
|
23647
|
+
}
|
23648
|
+
get minDate() {
|
23649
|
+
return this._minDate;
|
23650
|
+
}
|
23651
|
+
set minDate(value) {
|
23652
|
+
this._minDate = this._getValidDateOrNull(this._adapter.deserialize(value));
|
23653
|
+
}
|
23654
|
+
get maxDate() {
|
23655
|
+
return this._maxDate;
|
23656
|
+
}
|
23657
|
+
set maxDate(value) {
|
23658
|
+
this._maxDate = this._getValidDateOrNull(this._adapter.deserialize(value));
|
23659
|
+
}
|
23660
|
+
ngAfterContentInit() {
|
23661
|
+
this._init();
|
23662
|
+
}
|
23663
|
+
/** Handles when a new year is selected. */
|
23664
|
+
_yearSelected(year) {
|
23665
|
+
const month = this._adapter.getMonth(this.activeDate);
|
23666
|
+
const normalizedDate = this._adapter.createDatetime(year, month, 1, 0, 0);
|
23667
|
+
this.selectedChange.emit(this._adapter.createDatetime(year, month, Math.min(this._adapter.getDate(this.activeDate), this._adapter.getNumDaysInMonth(normalizedDate)), this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate)));
|
23668
|
+
if (this.type === 'year') {
|
23669
|
+
this._userSelection.emit();
|
23670
|
+
}
|
23671
|
+
}
|
23672
|
+
_getActiveCell() {
|
23673
|
+
return getActiveOffset$1(this._adapter, this.activeDate, this.minDate, this.maxDate);
|
23674
|
+
}
|
23675
|
+
_calendarStateDone() {
|
23676
|
+
this._calendarState = '';
|
23677
|
+
}
|
23678
|
+
/** Initializes this year view. */
|
23679
|
+
_init() {
|
23680
|
+
this._todayYear = this._adapter.getYear(this._adapter.today());
|
23681
|
+
this._yearLabel = this._adapter.getYearName(this.activeDate);
|
23682
|
+
const activeYear = this._adapter.getYear(this.activeDate);
|
23683
|
+
const minYearOfPage = activeYear - getActiveOffset$1(this._adapter, this.activeDate, this.minDate, this.maxDate);
|
23684
|
+
this._years = [];
|
23685
|
+
for (let i = 0, row = []; i < yearsPerPage$2; i++) {
|
23686
|
+
row.push(minYearOfPage + i);
|
23687
|
+
if (row.length == yearsPerRow$1) {
|
23688
|
+
this._years.push(row.map((year) => this._createCellForYear(year)));
|
23689
|
+
row = [];
|
23690
|
+
}
|
23691
|
+
}
|
23692
|
+
}
|
23693
|
+
/** Creates an GIPIDatetimepickerCalendarCell for the given year. */
|
23694
|
+
_createCellForYear(year) {
|
23695
|
+
let yearName = this._adapter.getYearName(this._adapter.createDate(year, 0, 1));
|
23696
|
+
return new GIPIDatetimepickerCalendarCell(year, yearName, yearName, this._shouldEnableYear(year));
|
23697
|
+
}
|
23698
|
+
/** Whether the given year is enabled. */
|
23699
|
+
_shouldEnableYear(year) {
|
23700
|
+
// disable if the year is greater than maxDate lower than minDate
|
23701
|
+
if (year === undefined ||
|
23702
|
+
year === null ||
|
23703
|
+
(this.maxDate && year > this._adapter.getYear(this.maxDate)) ||
|
23704
|
+
(this.minDate && year < this._adapter.getYear(this.minDate))) {
|
23705
|
+
return false;
|
23706
|
+
}
|
23707
|
+
// enable if it reaches here and there's no filter defined
|
23708
|
+
if (!this.dateFilter) {
|
23709
|
+
return true;
|
23710
|
+
}
|
23711
|
+
const firstOfYear = this._adapter.createDate(year, 0, 1);
|
23712
|
+
// If any date in the year is enabled count the year as enabled.
|
23713
|
+
for (let date = firstOfYear; this._adapter.getYear(date) == year; date = this._adapter.addCalendarDays(date, 1)) {
|
23714
|
+
if (this.dateFilter(date)) {
|
23715
|
+
return true;
|
23716
|
+
}
|
23717
|
+
}
|
23718
|
+
return false;
|
23719
|
+
}
|
23720
|
+
/**
|
23721
|
+
* Gets the year in this years range that the given Date falls on.
|
23722
|
+
* Returns null if the given Date is not in this range.
|
23723
|
+
*/
|
23724
|
+
_getYearInCurrentRange(date) {
|
23725
|
+
const year = this._adapter.getYear(date);
|
23726
|
+
return this._isInRange(year) ? year : null;
|
23727
|
+
}
|
23728
|
+
/**
|
23729
|
+
* Validate if the current year is in the current range
|
23730
|
+
* Returns true if is in range else returns false
|
23731
|
+
*/
|
23732
|
+
_isInRange(year) {
|
23733
|
+
return true;
|
23734
|
+
}
|
23735
|
+
/**
|
23736
|
+
* @param obj The object to check.
|
23737
|
+
* @returns The given object if it is both a date instance and valid, otherwise null.
|
23738
|
+
*/
|
23739
|
+
_getValidDateOrNull(obj) {
|
23740
|
+
return this._adapter.isDateInstance(obj) && this._adapter.isValid(obj) ? obj : null;
|
23741
|
+
}
|
23742
|
+
};
|
23743
|
+
GIPIDatetimepickerMultiYearViewComponent.ctorParameters = () => [
|
23744
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
23745
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GIPI_DATETIME_FORMATS,] }] }
|
23746
|
+
];
|
23747
|
+
__decorate([
|
23748
|
+
Input(),
|
23749
|
+
__metadata("design:type", String)
|
23750
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "type", void 0);
|
23751
|
+
__decorate([
|
23752
|
+
Input(),
|
23753
|
+
__metadata("design:type", Function)
|
23754
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "dateFilter", void 0);
|
23755
|
+
__decorate([
|
23756
|
+
Input(),
|
23757
|
+
__metadata("design:type", Object),
|
23758
|
+
__metadata("design:paramtypes", [Object])
|
23759
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "activeDate", null);
|
23760
|
+
__decorate([
|
23761
|
+
Input(),
|
23762
|
+
__metadata("design:type", Object),
|
23763
|
+
__metadata("design:paramtypes", [Object])
|
23764
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "selected", null);
|
23765
|
+
__decorate([
|
23766
|
+
Input(),
|
23767
|
+
__metadata("design:type", Object),
|
23768
|
+
__metadata("design:paramtypes", [Object])
|
23769
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "minDate", null);
|
23770
|
+
__decorate([
|
23771
|
+
Input(),
|
23772
|
+
__metadata("design:type", Object),
|
23773
|
+
__metadata("design:paramtypes", [Object])
|
23774
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "maxDate", null);
|
23775
|
+
__decorate([
|
23776
|
+
Output(),
|
23777
|
+
__metadata("design:type", Object)
|
23778
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "selectedChange", void 0);
|
23779
|
+
__decorate([
|
23780
|
+
Output(),
|
23781
|
+
__metadata("design:type", Object)
|
23782
|
+
], GIPIDatetimepickerMultiYearViewComponent.prototype, "_userSelection", void 0);
|
23783
|
+
GIPIDatetimepickerMultiYearViewComponent = __decorate([
|
23784
|
+
Component({
|
23785
|
+
selector: 'gipi-mat-datetime-picker-multi-year-view',
|
23786
|
+
template: "<table class=\"gipi-mat-datetime-picker-calendar-table\">\n <thead class=\"gipi-mat-datetime-picker-calendar-table-header\">\n <tr>\n <th class=\"gipi-mat-datetime-picker-calendar-table-header-divider\"\n colspan=\"4\">\n </th>\n </tr>\n </thead>\n <tbody gipiMatDatetimePickerCalendarBody\n role=\"grid\"\n allowDisabledSelection=\"true\"\n [cellAspectRatio]=\"4 / 7\"\n [numCols]=\"4\"\n [rows]=\"_years\"\n [activeCell]=\"_getActiveCell()\"\n [selectedValue]=\"_selectedYear\"\n [todayValue]=\"_todayYear\"\n [@slideCalendar]=\"_calendarState\"\n (@slideCalendar.done)=\"_calendarStateDone()\"\n (selectedValueChange)=\"_yearSelected($event)\">\n </tbody>\n</table>",
|
23787
|
+
animations: [slideCalendar],
|
23788
|
+
encapsulation: ViewEncapsulation.None,
|
23789
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
23790
|
+
}),
|
23791
|
+
__param(0, Optional()),
|
23792
|
+
__param(1, Optional()),
|
23793
|
+
__param(1, Inject(GIPI_DATETIME_FORMATS)),
|
23794
|
+
__metadata("design:paramtypes", [GIPIDatetimeAdapter, Object])
|
23795
|
+
], GIPIDatetimepickerMultiYearViewComponent);
|
23796
|
+
function isSameMultiYearView$1(dateAdapter, date1, date2, minDate, maxDate) {
|
23797
|
+
const year1 = dateAdapter.getYear(date1);
|
23798
|
+
const year2 = dateAdapter.getYear(date2);
|
23799
|
+
const startingYear = getStartingYear$1(dateAdapter, minDate, maxDate);
|
23800
|
+
return (Math.floor((year1 - startingYear) / yearsPerPage$2) === Math.floor((year2 - startingYear) / yearsPerPage$2));
|
23801
|
+
}
|
23802
|
+
/**
|
23803
|
+
* When the multi-year view is first opened, the active year will be in view.
|
23804
|
+
* So we compute how many years are between the active year and the *slot* where our
|
23805
|
+
* "startingYear" will render when paged into view.
|
23806
|
+
*/
|
23807
|
+
function getActiveOffset$1(dateAdapter, activeDate, minDate, maxDate) {
|
23808
|
+
const activeYear = dateAdapter.getYear(activeDate);
|
23809
|
+
return euclideanModulo$1(activeYear - getStartingYear$1(dateAdapter, minDate, maxDate), yearsPerPage$2);
|
23810
|
+
}
|
23811
|
+
/**
|
23812
|
+
* We pick a "starting" year such that either the maximum year would be at the end
|
23813
|
+
* or the minimum year would be at the beginning of a page.
|
23814
|
+
*/
|
23815
|
+
function getStartingYear$1(dateAdapter, minDate, maxDate) {
|
23816
|
+
let startingYear = 0;
|
23817
|
+
if (maxDate) {
|
23818
|
+
const maxYear = dateAdapter.getYear(maxDate);
|
23819
|
+
startingYear = maxYear - yearsPerPage$2 + 1;
|
23820
|
+
}
|
23821
|
+
else if (minDate) {
|
23822
|
+
startingYear = dateAdapter.getYear(minDate);
|
23823
|
+
}
|
23824
|
+
return startingYear;
|
23825
|
+
}
|
23826
|
+
/** Gets remainder that is non-negative, even if first number is negative */
|
23827
|
+
function euclideanModulo$1(a, b) {
|
23828
|
+
return ((a % b) + b) % b;
|
23829
|
+
}
|
23830
|
+
|
23831
|
+
/**
|
23832
|
+
* A calendar that is used as part of the datepicker.
|
23833
|
+
* @docs-private
|
23834
|
+
*/
|
23835
|
+
let GIPIDatetimepickerCalendarComponent = class GIPIDatetimepickerCalendarComponent {
|
23836
|
+
constructor(_elementRef, _intl, _ngZone, _adapter, _dateFormats, changeDetectorRef) {
|
23837
|
+
this._elementRef = _elementRef;
|
23838
|
+
this._intl = _intl;
|
23839
|
+
this._ngZone = _ngZone;
|
23840
|
+
this._adapter = _adapter;
|
23841
|
+
this._dateFormats = _dateFormats;
|
23842
|
+
this._clockView = 'hour';
|
23843
|
+
/** Active multi year view when click on year. */
|
23844
|
+
this.multiYearSelector = true;
|
23845
|
+
/** Whether the calendar should be started in month or year view. */
|
23846
|
+
this.startView = 'month';
|
23847
|
+
this.twelvehour = false;
|
23848
|
+
this.timeInterval = 1;
|
23849
|
+
this.ariaLabel = 'Use arrow keys to navigate';
|
23850
|
+
this.ariaNextMonthLabel = 'Next month';
|
23851
|
+
this.ariaPrevMonthLabel = 'Previous month';
|
23852
|
+
this.ariaNextYearLabel = 'Next year';
|
23853
|
+
this.ariaPrevYearLabel = 'Previous year';
|
23854
|
+
this.ariaNextMultiYearLabel = 'Next year range';
|
23855
|
+
this.ariaPrevMultiYearLabel = 'Previous year range';
|
23856
|
+
/** Prevent user to select same date time */
|
23857
|
+
this.preventSameDateTimeSelection = false;
|
23858
|
+
this._type = 'date';
|
23859
|
+
/** Emits when the currently selected date changes. */
|
23860
|
+
this.selectedChange = new EventEmitter();
|
23861
|
+
/** Emits when the view has been changed. **/
|
23862
|
+
this.viewChanged = new EventEmitter();
|
23863
|
+
this._userSelection = new EventEmitter();
|
23864
|
+
/** Date filter for the month and year views. */
|
23865
|
+
this._dateFilterForViews = (date) => {
|
23866
|
+
return (!!date &&
|
23867
|
+
(!this.dateFilter || this.dateFilter(date, GIPIDatetimepickerFilterType.DATE)) &&
|
23868
|
+
(!this.minDate || this._adapter.compareDate(date, this.minDate) >= 0) &&
|
23869
|
+
(!this.maxDate || this._adapter.compareDate(date, this.maxDate) <= 0));
|
23870
|
+
};
|
23871
|
+
if (!this._adapter) {
|
23872
|
+
throw createMissingDateImplError$1('GIPIDatetimeAdapter');
|
23873
|
+
}
|
23874
|
+
if (!this._dateFormats) {
|
23875
|
+
throw createMissingDateImplError$1('GIPI_DATETIME_FORMATS');
|
23876
|
+
}
|
23877
|
+
this._intlChanges = _intl.changes.subscribe(() => changeDetectorRef.markForCheck());
|
23878
|
+
}
|
23879
|
+
get type() {
|
23880
|
+
return this._type;
|
23881
|
+
}
|
23882
|
+
set type(value) {
|
23883
|
+
this._type = value || 'date';
|
23884
|
+
if (this.type === 'year') {
|
23885
|
+
this.multiYearSelector = true;
|
23886
|
+
}
|
23887
|
+
}
|
23888
|
+
get startAt() {
|
23889
|
+
return this._startAt;
|
23890
|
+
}
|
23891
|
+
set startAt(value) {
|
23892
|
+
this._startAt = this._adapter.getValidDateOrNull(value);
|
23893
|
+
}
|
23894
|
+
get selected() {
|
23895
|
+
return this._selected;
|
23896
|
+
}
|
23897
|
+
set selected(value) {
|
23898
|
+
this._selected = this._adapter.getValidDateOrNull(value);
|
23899
|
+
}
|
23900
|
+
get minDate() {
|
23901
|
+
return this._minDate;
|
23902
|
+
}
|
23903
|
+
set minDate(value) {
|
23904
|
+
this._minDate = this._adapter.getValidDateOrNull(value);
|
23905
|
+
}
|
23906
|
+
get maxDate() {
|
23907
|
+
return this._maxDate;
|
23908
|
+
}
|
23909
|
+
set maxDate(value) {
|
23910
|
+
this._maxDate = this._adapter.getValidDateOrNull(value);
|
23911
|
+
}
|
23912
|
+
/** The current active date. This determines which time period is shown and which date is highlighted when using keyboard navigation. */
|
23913
|
+
get _activeDate() {
|
23914
|
+
return this._clampedActiveDate;
|
23915
|
+
}
|
23916
|
+
set _activeDate(value) {
|
23917
|
+
const oldActiveDate = this._clampedActiveDate;
|
23918
|
+
this._clampedActiveDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
|
23919
|
+
if (oldActiveDate &&
|
23920
|
+
this._clampedActiveDate &&
|
23921
|
+
this.currentView === 'month' &&
|
23922
|
+
!this._adapter.sameMonthAndYear(oldActiveDate, this._clampedActiveDate)) {
|
23923
|
+
if (this._adapter.isInNextMonth(oldActiveDate, this._clampedActiveDate)) {
|
23924
|
+
this.calendarState('right');
|
23925
|
+
}
|
23926
|
+
else {
|
23927
|
+
this.calendarState('left');
|
23928
|
+
}
|
23929
|
+
}
|
23930
|
+
}
|
23931
|
+
get currentView() {
|
23932
|
+
return this._currentView;
|
23933
|
+
}
|
23934
|
+
set currentView(view) {
|
23935
|
+
this._currentView = view;
|
23936
|
+
this.viewChanged.emit(view);
|
23937
|
+
}
|
23938
|
+
/** The label for the current calendar view. */
|
23939
|
+
get _yearLabel() {
|
23940
|
+
return this._adapter.getYearName(this._activeDate);
|
23941
|
+
}
|
23942
|
+
get _monthYearLabel() {
|
23943
|
+
if (this.currentView === 'multi-year') {
|
23944
|
+
// The offset from the active year to the "slot" for the starting year is the
|
23945
|
+
// *actual* first rendered year in the multi-year view, and the last year is
|
23946
|
+
// just yearsPerPage - 1 away.
|
23947
|
+
const activeYear = this._adapter.getYear(this._activeDate);
|
23948
|
+
const minYearOfPage = activeYear - getActiveOffset$1(this._adapter, this._activeDate, this.minDate, this.maxDate);
|
23949
|
+
const maxYearOfPage = minYearOfPage + yearsPerPage$2 - 1;
|
23950
|
+
const minYearName = this._adapter.getYearName(this._adapter.createDate(minYearOfPage, 0, 1));
|
23951
|
+
const maxYearName = this._adapter.getYearName(this._adapter.createDate(maxYearOfPage, 0, 1));
|
23952
|
+
return this._intl.formatYearRange(minYearName, maxYearName);
|
23953
|
+
}
|
23954
|
+
return this.currentView === 'month'
|
23955
|
+
? this._adapter.getMonthNames('long')[this._adapter.getMonth(this._activeDate)]
|
23956
|
+
: this._adapter.getYearName(this._activeDate);
|
23957
|
+
}
|
23958
|
+
get _dateLabel() {
|
23959
|
+
switch (this.type) {
|
23960
|
+
case 'month': return this._adapter.getMonthNames('long')[this._adapter.getMonth(this._activeDate)];
|
23961
|
+
default: return this._adapter.format(this._activeDate, this._dateFormats.display.popupHeaderDateLabel);
|
23962
|
+
}
|
23963
|
+
}
|
23964
|
+
get periodButtonLabel() {
|
23965
|
+
return this.currentView == 'month' ? this._intl.switchToMultiYearViewLabel : this._intl.switchToMonthViewLabel;
|
23966
|
+
}
|
23967
|
+
/** The label for the previous button. */
|
23968
|
+
get prevButtonLabel() {
|
23969
|
+
return {
|
23970
|
+
'month': this._intl.prevMonthLabel,
|
23971
|
+
'year': this._intl.prevYearLabel,
|
23972
|
+
'multi-year': this._intl.prevMultiYearLabel
|
23973
|
+
}[this.currentView];
|
23974
|
+
}
|
23975
|
+
/** The label for the next button. */
|
23976
|
+
get nextButtonLabel() {
|
23977
|
+
return {
|
23978
|
+
'month': this._intl.nextMonthLabel,
|
23979
|
+
'year': this._intl.nextYearLabel,
|
23980
|
+
'multi-year': this._intl.nextMultiYearLabel
|
23981
|
+
}[this.currentView];
|
23982
|
+
}
|
23983
|
+
get _hoursLabel() {
|
23984
|
+
let hour = this._adapter.getHour(this._activeDate);
|
23985
|
+
if (!!this.twelvehour) {
|
23986
|
+
if (hour === 0) {
|
23987
|
+
hour = 24;
|
23988
|
+
}
|
23989
|
+
hour = hour > 12 ? hour - 12 : hour;
|
23990
|
+
}
|
23991
|
+
return this._2digit(hour);
|
23992
|
+
}
|
23993
|
+
get _minutesLabel() {
|
23994
|
+
return this._2digit(this._adapter.getMinute(this._activeDate));
|
23995
|
+
}
|
23996
|
+
get _ariaLabelNext() {
|
23997
|
+
switch (this._currentView) {
|
23998
|
+
case 'month': return this.ariaNextMonthLabel;
|
23999
|
+
case 'year': return this.ariaNextYearLabel;
|
24000
|
+
case 'multi-year': return this.ariaNextMultiYearLabel;
|
24001
|
+
default: return '';
|
24002
|
+
}
|
24003
|
+
}
|
24004
|
+
get _ariaLabelPrev() {
|
24005
|
+
switch (this._currentView) {
|
24006
|
+
case 'month': return this.ariaPrevMonthLabel;
|
24007
|
+
case 'year': return this.ariaPrevYearLabel;
|
24008
|
+
case 'multi-year': return this.ariaPrevMultiYearLabel;
|
24009
|
+
default: return '';
|
24010
|
+
}
|
24011
|
+
}
|
24012
|
+
ngAfterContentInit() {
|
24013
|
+
this._activeDate = this.startAt || this._adapter.today();
|
24014
|
+
this._selectAMPM(this._activeDate);
|
24015
|
+
this._focusActiveCell();
|
24016
|
+
if (this.type === 'year') {
|
24017
|
+
this.currentView = 'multi-year';
|
24018
|
+
}
|
24019
|
+
else if (this.type === 'month') {
|
24020
|
+
this.currentView = 'year';
|
24021
|
+
}
|
24022
|
+
else if (this.type === 'time') {
|
24023
|
+
this.currentView = 'clock';
|
24024
|
+
}
|
24025
|
+
else {
|
24026
|
+
this.currentView = this.startView || 'month';
|
24027
|
+
}
|
24028
|
+
}
|
24029
|
+
ngOnDestroy() {
|
24030
|
+
this._intlChanges.unsubscribe();
|
24031
|
+
}
|
24032
|
+
_userSelected() {
|
24033
|
+
this._userSelection.emit();
|
24034
|
+
}
|
24035
|
+
/** Handles date selection in the month view. */
|
24036
|
+
_dateSelected(date) {
|
24037
|
+
if (this.type === 'date') {
|
24038
|
+
if (!this._adapter.sameDate(date, this.selected) ||
|
24039
|
+
!this.preventSameDateTimeSelection) {
|
24040
|
+
this.selectedChange.emit(date);
|
24041
|
+
}
|
24042
|
+
}
|
24043
|
+
else {
|
24044
|
+
this._activeDate = date;
|
24045
|
+
this.currentView = 'clock';
|
24046
|
+
}
|
24047
|
+
}
|
24048
|
+
/** Handles month selection in the year view. */
|
24049
|
+
_monthSelected(month) {
|
24050
|
+
if (this.type === 'month') {
|
24051
|
+
if (!this._adapter.sameMonthAndYear(month, this.selected) ||
|
24052
|
+
!this.preventSameDateTimeSelection) {
|
24053
|
+
this.selectedChange.emit(this._adapter.getFirstDateOfMonth(month));
|
24054
|
+
}
|
24055
|
+
}
|
24056
|
+
else {
|
24057
|
+
this._activeDate = month;
|
24058
|
+
this.currentView = 'month';
|
24059
|
+
this._clockView = 'hour';
|
24060
|
+
}
|
24061
|
+
}
|
24062
|
+
/** Handles year selection in the multi year view. */
|
24063
|
+
_yearSelected(year) {
|
24064
|
+
if (this.type === 'year') {
|
24065
|
+
if (!this._adapter.sameYear(year, this.selected) ||
|
24066
|
+
!this.preventSameDateTimeSelection) {
|
24067
|
+
const normalizedDate = this._adapter.createDatetime(this._adapter.getYear(year), 0, 1, 0, 0);
|
24068
|
+
this.selectedChange.emit(normalizedDate);
|
24069
|
+
}
|
24070
|
+
}
|
24071
|
+
else {
|
24072
|
+
this._activeDate = year;
|
24073
|
+
this.currentView = 'year';
|
24074
|
+
}
|
24075
|
+
}
|
24076
|
+
_timeSelected(date) {
|
24077
|
+
if (this._clockView !== 'minute') {
|
24078
|
+
this._activeDate = this._updateDate(date);
|
24079
|
+
this._clockView = 'minute';
|
24080
|
+
}
|
24081
|
+
else {
|
24082
|
+
if (!this._adapter.sameDatetime(date, this.selected) ||
|
24083
|
+
!this.preventSameDateTimeSelection) {
|
24084
|
+
this.selectedChange.emit(date);
|
24085
|
+
}
|
24086
|
+
}
|
24087
|
+
}
|
24088
|
+
_onActiveDateChange(date) {
|
24089
|
+
this._activeDate = date;
|
24090
|
+
}
|
24091
|
+
_updateDate(date) {
|
24092
|
+
if (!!this.twelvehour) {
|
24093
|
+
const HOUR = this._adapter.getHour(date);
|
24094
|
+
if (HOUR === 12) {
|
24095
|
+
if (this._AMPM === 'AM') {
|
24096
|
+
return this._adapter.addCalendarHours(date, -12);
|
24097
|
+
}
|
24098
|
+
}
|
24099
|
+
else if (this._AMPM === 'PM') {
|
24100
|
+
return this._adapter.addCalendarHours(date, 12);
|
24101
|
+
}
|
24102
|
+
}
|
24103
|
+
return date;
|
24104
|
+
}
|
24105
|
+
_selectAMPM(date) {
|
24106
|
+
if (this._adapter.getHour(date) > 11) {
|
24107
|
+
this._AMPM = 'PM';
|
24108
|
+
}
|
24109
|
+
else {
|
24110
|
+
this._AMPM = 'AM';
|
24111
|
+
}
|
24112
|
+
}
|
24113
|
+
_ampmClicked(source) {
|
24114
|
+
if (source === this._AMPM) {
|
24115
|
+
return;
|
24116
|
+
}
|
24117
|
+
this._AMPM = source;
|
24118
|
+
if (this._AMPM === 'AM') {
|
24119
|
+
this._activeDate = this._adapter.addCalendarHours(this._activeDate, -12);
|
24120
|
+
}
|
24121
|
+
else {
|
24122
|
+
this._activeDate = this._adapter.addCalendarHours(this._activeDate, 12);
|
24123
|
+
}
|
24124
|
+
}
|
24125
|
+
_yearClicked() {
|
24126
|
+
if (this.type === 'year' || this.multiYearSelector) {
|
24127
|
+
this.currentView = 'multi-year';
|
24128
|
+
return;
|
24129
|
+
}
|
24130
|
+
this.currentView = 'year';
|
24131
|
+
}
|
24132
|
+
_dateClicked() {
|
24133
|
+
if (this.type !== 'month') {
|
24134
|
+
this.currentView = 'month';
|
24135
|
+
}
|
24136
|
+
}
|
24137
|
+
_hoursClicked() {
|
24138
|
+
this.currentView = 'clock';
|
24139
|
+
this._clockView = 'hour';
|
24140
|
+
}
|
24141
|
+
_minutesClicked() {
|
24142
|
+
this.currentView = 'clock';
|
24143
|
+
this._clockView = 'minute';
|
24144
|
+
}
|
24145
|
+
/** Handles user clicks on the previous button. */
|
24146
|
+
_previousClicked() {
|
24147
|
+
this._activeDate = this.currentView === 'month'
|
24148
|
+
? this._adapter.addCalendarMonths(this._activeDate, -1)
|
24149
|
+
: this._adapter.addCalendarYears(this._activeDate, this.currentView === 'year' ? -1 : -yearsPerPage$2);
|
24150
|
+
}
|
24151
|
+
/** Handles user clicks on the next button. */
|
24152
|
+
_nextClicked() {
|
24153
|
+
this._activeDate = (this.currentView === 'month')
|
24154
|
+
? this._adapter.addCalendarMonths(this._activeDate, 1)
|
24155
|
+
: this._adapter.addCalendarYears(this._activeDate, this.currentView === 'year' ? 1 : yearsPerPage$2);
|
24156
|
+
}
|
24157
|
+
/** Whether the previous period button is enabled. */
|
24158
|
+
_previousEnabled() {
|
24159
|
+
if (!this.minDate) {
|
24160
|
+
return true;
|
24161
|
+
}
|
24162
|
+
return !this.minDate || !this._isSameView(this._activeDate, this.minDate);
|
24163
|
+
}
|
24164
|
+
/** Whether the next period button is enabled. */
|
24165
|
+
_nextEnabled() {
|
24166
|
+
return !this.maxDate || !this._isSameView(this._activeDate, this.maxDate);
|
24167
|
+
}
|
24168
|
+
/** Handles keydown events on the calendar body. */
|
24169
|
+
_handleCalendarBodyKeydown(event) {
|
24170
|
+
// TODO(mmalerba): We currently allow keyboard navigation to disabled dates, but just prevent
|
24171
|
+
// disabled ones from being selected. This may not be ideal, we should look into whether
|
24172
|
+
// navigation should skip over disabled dates, and if so, how to implement that efficiently.
|
24173
|
+
if (this.currentView === 'month') {
|
24174
|
+
this._handleCalendarBodyKeydownInMonthView(event);
|
24175
|
+
}
|
24176
|
+
else if (this.currentView === 'year') {
|
24177
|
+
this._handleCalendarBodyKeydownInYearView(event);
|
24178
|
+
}
|
24179
|
+
else if (this.currentView === 'multi-year') {
|
24180
|
+
this._handleCalendarBodyKeydownInMultiYearView(event);
|
24181
|
+
}
|
24182
|
+
else {
|
24183
|
+
this._handleCalendarBodyKeydownInClockView(event);
|
24184
|
+
}
|
24185
|
+
}
|
24186
|
+
_focusActiveCell() {
|
24187
|
+
this._ngZone.runOutsideAngular(() => {
|
24188
|
+
this._ngZone.onStable
|
24189
|
+
.asObservable()
|
24190
|
+
.pipe(first())
|
24191
|
+
.subscribe(() => this._elementRef.nativeElement.focus());
|
24192
|
+
});
|
24193
|
+
}
|
24194
|
+
_calendarStateDone() {
|
24195
|
+
this._calendarState = '';
|
24196
|
+
}
|
24197
|
+
/** Whether the two dates represent the same view in the current view mode (month or year). */
|
24198
|
+
_isSameView(date1, date2) {
|
24199
|
+
if (this.currentView === 'month') {
|
24200
|
+
return (this._adapter.getYear(date1) === this._adapter.getYear(date2) &&
|
24201
|
+
this._adapter.getMonth(date1) === this._adapter.getMonth(date2));
|
24202
|
+
}
|
24203
|
+
if (this.currentView === 'year') {
|
24204
|
+
return this._adapter.getYear(date1) === this._adapter.getYear(date2);
|
24205
|
+
}
|
24206
|
+
// Otherwise we are in 'multi-year' view.
|
24207
|
+
return isSameMultiYearView$1(this._adapter, date1, date2, this.minDate, this.maxDate);
|
24208
|
+
}
|
24209
|
+
/** Handles keydown events on the calendar body when calendar is in month view. */
|
24210
|
+
_handleCalendarBodyKeydownInMonthView(event) {
|
24211
|
+
switch (event.keyCode) {
|
24212
|
+
case LEFT_ARROW:
|
24213
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, -1);
|
24214
|
+
break;
|
24215
|
+
case RIGHT_ARROW:
|
24216
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, 1);
|
24217
|
+
break;
|
24218
|
+
case UP_ARROW:
|
24219
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, -7);
|
24220
|
+
break;
|
24221
|
+
case DOWN_ARROW:
|
24222
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, 7);
|
24223
|
+
break;
|
24224
|
+
case HOME:
|
24225
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, 1 - this._adapter.getDate(this._activeDate));
|
24226
|
+
break;
|
24227
|
+
case END:
|
24228
|
+
this._activeDate = this._adapter.addCalendarDays(this._activeDate, this._adapter.getNumDaysInMonth(this._activeDate) - this._adapter.getDate(this._activeDate));
|
24229
|
+
break;
|
24230
|
+
case PAGE_UP:
|
24231
|
+
this._activeDate = event.altKey
|
24232
|
+
? this._adapter.addCalendarYears(this._activeDate, -1)
|
24233
|
+
: this._adapter.addCalendarMonths(this._activeDate, -1);
|
24234
|
+
break;
|
24235
|
+
case PAGE_DOWN:
|
24236
|
+
this._activeDate = event.altKey
|
24237
|
+
? this._adapter.addCalendarYears(this._activeDate, 1)
|
24238
|
+
: this._adapter.addCalendarMonths(this._activeDate, 1);
|
24239
|
+
break;
|
24240
|
+
case ENTER:
|
24241
|
+
if (this._dateFilterForViews(this._activeDate)) {
|
24242
|
+
this._dateSelected(this._activeDate);
|
24243
|
+
// Prevent unexpected default actions such as form submission.
|
24244
|
+
event.preventDefault();
|
24245
|
+
}
|
24246
|
+
return;
|
24247
|
+
default:
|
24248
|
+
// Don't prevent default or focus active cell on keys that we don't explicitly handle.
|
24249
|
+
return;
|
24250
|
+
}
|
24251
|
+
// Prevent unexpected default actions such as form submission.
|
24252
|
+
event.preventDefault();
|
24253
|
+
}
|
24254
|
+
/** Handles keydown events on the calendar body when calendar is in year view. */
|
24255
|
+
_handleCalendarBodyKeydownInYearView(event) {
|
24256
|
+
switch (event.keyCode) {
|
24257
|
+
case LEFT_ARROW:
|
24258
|
+
this._activeDate = this._adapter.addCalendarMonths(this._activeDate, -1);
|
24259
|
+
break;
|
24260
|
+
case RIGHT_ARROW:
|
24261
|
+
this._activeDate = this._adapter.addCalendarMonths(this._activeDate, 1);
|
24262
|
+
break;
|
24263
|
+
case UP_ARROW:
|
24264
|
+
this._activeDate = this._prevMonthInSameCol(this._activeDate);
|
24265
|
+
break;
|
24266
|
+
case DOWN_ARROW:
|
24267
|
+
this._activeDate = this._nextMonthInSameCol(this._activeDate);
|
24268
|
+
break;
|
24269
|
+
case HOME:
|
24270
|
+
this._activeDate = this._adapter.addCalendarMonths(this._activeDate, -this._adapter.getMonth(this._activeDate));
|
24271
|
+
break;
|
24272
|
+
case END:
|
24273
|
+
this._activeDate = this._adapter.addCalendarMonths(this._activeDate, 11 - this._adapter.getMonth(this._activeDate));
|
24274
|
+
break;
|
24275
|
+
case PAGE_UP:
|
24276
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, event.altKey ? -10 : -1);
|
24277
|
+
break;
|
24278
|
+
case PAGE_DOWN:
|
24279
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, event.altKey ? 10 : 1);
|
24280
|
+
break;
|
24281
|
+
case ENTER:
|
24282
|
+
this._monthSelected(this._activeDate);
|
24283
|
+
break;
|
24284
|
+
default:
|
24285
|
+
// Don't prevent default or focus active cell on keys that we don't explicitly handle.
|
24286
|
+
return;
|
24287
|
+
}
|
24288
|
+
// Prevent unexpected default actions such as form submission.
|
24289
|
+
event.preventDefault();
|
24290
|
+
}
|
24291
|
+
/** Handles keydown events on the calendar body when calendar is in multi-year view. */
|
24292
|
+
_handleCalendarBodyKeydownInMultiYearView(event) {
|
24293
|
+
switch (event.keyCode) {
|
24294
|
+
case LEFT_ARROW:
|
24295
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, -1);
|
24296
|
+
break;
|
24297
|
+
case RIGHT_ARROW:
|
24298
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, 1);
|
24299
|
+
break;
|
24300
|
+
case UP_ARROW:
|
24301
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, -yearsPerRow$1);
|
24302
|
+
break;
|
24303
|
+
case DOWN_ARROW:
|
24304
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, yearsPerRow$1);
|
24305
|
+
break;
|
24306
|
+
case HOME:
|
24307
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, -getActiveOffset$1(this._adapter, this._activeDate, this.minDate, this.maxDate));
|
24308
|
+
break;
|
24309
|
+
case END:
|
24310
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, yearsPerPage$2 - getActiveOffset$1(this._adapter, this._activeDate, this.minDate, this.maxDate) - 1);
|
24311
|
+
break;
|
24312
|
+
case PAGE_UP:
|
24313
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, event.altKey ? -yearsPerPage$2 * 10 : -yearsPerPage$2);
|
24314
|
+
break;
|
24315
|
+
case PAGE_DOWN:
|
24316
|
+
this._activeDate = this._adapter.addCalendarYears(this._activeDate, event.altKey ? yearsPerPage$2 * 10 : yearsPerPage$2);
|
24317
|
+
break;
|
24318
|
+
case ENTER:
|
24319
|
+
this._yearSelected(this._activeDate);
|
24320
|
+
break;
|
24321
|
+
default:
|
24322
|
+
// Don't prevent default or focus active cell on keys that we don't explicitly handle.
|
24323
|
+
return;
|
24324
|
+
}
|
24325
|
+
}
|
24326
|
+
/** Handles keydown events on the calendar body when calendar is in month view. */
|
24327
|
+
_handleCalendarBodyKeydownInClockView(event) {
|
24328
|
+
switch (event.keyCode) {
|
24329
|
+
case UP_ARROW:
|
24330
|
+
this._activeDate = this._clockView === 'hour'
|
24331
|
+
? this._adapter.addCalendarHours(this._activeDate, 1)
|
24332
|
+
: this._adapter.addCalendarMinutes(this._activeDate, 1);
|
24333
|
+
break;
|
24334
|
+
case DOWN_ARROW:
|
24335
|
+
this._activeDate = this._clockView === 'hour'
|
24336
|
+
? this._adapter.addCalendarHours(this._activeDate, -1)
|
24337
|
+
: this._adapter.addCalendarMinutes(this._activeDate, -1);
|
24338
|
+
break;
|
24339
|
+
case ENTER:
|
24340
|
+
this._timeSelected(this._activeDate);
|
24341
|
+
return;
|
24342
|
+
default:
|
24343
|
+
// Don't prevent default or focus active cell on keys that we don't explicitly handle.
|
24344
|
+
return;
|
24345
|
+
}
|
24346
|
+
// Prevent unexpected default actions such as form submission.
|
24347
|
+
event.preventDefault();
|
24348
|
+
}
|
24349
|
+
/**
|
24350
|
+
* Determine the date for the month that comes before the given month in the same column in the
|
24351
|
+
* calendar table.
|
24352
|
+
*/
|
24353
|
+
_prevMonthInSameCol(date) {
|
24354
|
+
// Determine how many months to jump forward given that there are 2 empty slots at the beginning of each year.
|
24355
|
+
const increment = this._adapter.getMonth(date) <= 4 ? -5 : this._adapter.getMonth(date) >= 7 ? -7 : -12;
|
24356
|
+
return this._adapter.addCalendarMonths(date, increment);
|
24357
|
+
}
|
24358
|
+
/**
|
24359
|
+
* Determine the date for the month that comes after the given month in the same column in the
|
24360
|
+
* calendar table.
|
24361
|
+
*/
|
24362
|
+
_nextMonthInSameCol(date) {
|
24363
|
+
// Determine how many months to jump forward given that there are 2 empty slots at the beginning of each year.
|
24364
|
+
const increment = this._adapter.getMonth(date) <= 4 ? 7 : this._adapter.getMonth(date) >= 7 ? 5 : 12;
|
24365
|
+
return this._adapter.addCalendarMonths(date, increment);
|
24366
|
+
}
|
24367
|
+
calendarState(direction) {
|
24368
|
+
this._calendarState = direction;
|
24369
|
+
}
|
24370
|
+
_2digit(n) {
|
24371
|
+
return ('00' + n).slice(-2);
|
24372
|
+
}
|
24373
|
+
};
|
24374
|
+
GIPIDatetimepickerCalendarComponent.ctorParameters = () => [
|
24375
|
+
{ type: ElementRef },
|
24376
|
+
{ type: MatDatepickerIntl$1 },
|
24377
|
+
{ type: NgZone },
|
24378
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
24379
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GIPI_DATETIME_FORMATS,] }] },
|
24380
|
+
{ type: ChangeDetectorRef }
|
24381
|
+
];
|
24382
|
+
__decorate([
|
24383
|
+
Input(),
|
24384
|
+
__metadata("design:type", Boolean)
|
24385
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "multiYearSelector", void 0);
|
24386
|
+
__decorate([
|
24387
|
+
Input(),
|
24388
|
+
__metadata("design:type", String)
|
24389
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "startView", void 0);
|
24390
|
+
__decorate([
|
24391
|
+
Input(),
|
24392
|
+
__metadata("design:type", Boolean)
|
24393
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "twelvehour", void 0);
|
24394
|
+
__decorate([
|
24395
|
+
Input(),
|
24396
|
+
__metadata("design:type", Number)
|
24397
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "timeInterval", void 0);
|
24398
|
+
__decorate([
|
24399
|
+
Input(),
|
24400
|
+
__metadata("design:type", Function)
|
24401
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "dateFilter", void 0);
|
24402
|
+
__decorate([
|
24403
|
+
Input(),
|
24404
|
+
__metadata("design:type", Object)
|
24405
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaLabel", void 0);
|
24406
|
+
__decorate([
|
24407
|
+
Input(),
|
24408
|
+
__metadata("design:type", Object)
|
24409
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaNextMonthLabel", void 0);
|
24410
|
+
__decorate([
|
24411
|
+
Input(),
|
24412
|
+
__metadata("design:type", Object)
|
24413
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaPrevMonthLabel", void 0);
|
24414
|
+
__decorate([
|
24415
|
+
Input(),
|
24416
|
+
__metadata("design:type", Object)
|
24417
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaNextYearLabel", void 0);
|
24418
|
+
__decorate([
|
24419
|
+
Input(),
|
24420
|
+
__metadata("design:type", Object)
|
24421
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaPrevYearLabel", void 0);
|
24422
|
+
__decorate([
|
24423
|
+
Input(),
|
24424
|
+
__metadata("design:type", Object)
|
24425
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaNextMultiYearLabel", void 0);
|
24426
|
+
__decorate([
|
24427
|
+
Input(),
|
24428
|
+
__metadata("design:type", Object)
|
24429
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "ariaPrevMultiYearLabel", void 0);
|
24430
|
+
__decorate([
|
24431
|
+
Input(),
|
24432
|
+
__metadata("design:type", Object)
|
24433
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "preventSameDateTimeSelection", void 0);
|
24434
|
+
__decorate([
|
24435
|
+
Input(),
|
24436
|
+
__metadata("design:type", String),
|
24437
|
+
__metadata("design:paramtypes", [String])
|
24438
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "type", null);
|
24439
|
+
__decorate([
|
24440
|
+
Input(),
|
24441
|
+
__metadata("design:type", Object),
|
24442
|
+
__metadata("design:paramtypes", [Object])
|
24443
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "startAt", null);
|
24444
|
+
__decorate([
|
24445
|
+
Input(),
|
24446
|
+
__metadata("design:type", Object),
|
24447
|
+
__metadata("design:paramtypes", [Object])
|
24448
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "selected", null);
|
24449
|
+
__decorate([
|
24450
|
+
Input(),
|
24451
|
+
__metadata("design:type", Object),
|
24452
|
+
__metadata("design:paramtypes", [Object])
|
24453
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "minDate", null);
|
24454
|
+
__decorate([
|
24455
|
+
Input(),
|
24456
|
+
__metadata("design:type", Object),
|
24457
|
+
__metadata("design:paramtypes", [Object])
|
24458
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "maxDate", null);
|
24459
|
+
__decorate([
|
24460
|
+
Output(),
|
24461
|
+
__metadata("design:type", EventEmitter)
|
24462
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "selectedChange", void 0);
|
24463
|
+
__decorate([
|
24464
|
+
Output(),
|
24465
|
+
__metadata("design:type", EventEmitter)
|
24466
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "viewChanged", void 0);
|
24467
|
+
__decorate([
|
24468
|
+
Output(),
|
24469
|
+
__metadata("design:type", Object)
|
24470
|
+
], GIPIDatetimepickerCalendarComponent.prototype, "_userSelection", void 0);
|
24471
|
+
GIPIDatetimepickerCalendarComponent = __decorate([
|
24472
|
+
Component({
|
24473
|
+
selector: 'gipi-mat-datetime-picker-calendar',
|
24474
|
+
template: "<div class=\"gipi-mat-datetime-picker-calendar-header\">\n <div class=\"gipi-mat-datetime-picker-calendar-controls\">\n <div *ngIf=\"type !== 'time'\"\n role=\"button\"\n cdkAriaLive=\"polite\"\n class=\"gipi-mat-datetime-picker-calendar-period-button\"\n [class.active]=\"currentView === 'year' || currentView === 'multi-year'\"\n [attr.aria-label]=\"periodButtonLabel\"\n (click)=\"_yearClicked()\">\n {{ _yearLabel }}\n\n <div *ngIf=\"multiYearSelector || type === 'year'\"\n class=\"gipi-mat-datetime-picker-calendar-arrow\"\n [class.gipi-mat-datetime-picker-calendar-invert]=\"currentView != 'month'\">\n </div>\n </div>\n\n <div class=\"gipi-mat-datetime-picker-calendar-spacer\"> </div>\n\n <button mat-icon-button\n type=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-previous-button\"\n [disabled]=\"!_previousEnabled()\"\n (click)=\"_previousClicked()\"\n [attr.aria-label]=\"prevButtonLabel\">\n </button>\n\n <button mat-icon-button\n type=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-next-button\"\n [disabled]=\"!_nextEnabled()\"\n (click)=\"_nextClicked()\"\n [attr.aria-label]=\"nextButtonLabel\">\n </button>\n </div>\n\n <div class=\"gipi-mat-datetime-picker-calendar-header-date-time\">\n <span *ngIf=\"type !== 'time' && type !== 'year'\"\n role=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-header-date\"\n [class.active]=\"currentView === 'month'\"\n [class.not-clickable]=\"type === 'month'\"\n (click)=\"_dateClicked()\">\n {{ _dateLabel }}\n </span>\n <span *ngIf=\"type.endsWith('time')\"\n class=\"gipi-mat-datetime-picker-calendar-header-time\"\n [class.active]=\"currentView === 'clock'\">\n <span role=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-header-hours\"\n [class.active]=\"currentView === 'clock' && _clockView === 'hour'\"\n (click)=\"_hoursClicked()\">\n {{ _hoursLabel }}\n </span>\n :\n <span role=\"button\"\n class=\"gipi-mat-datetime-picker-calendar-header-minutes\"\n [class.active]=\"currentView === 'clock' && _clockView === 'minute'\"\n (click)=\"_minutesClicked()\">\n {{ _minutesLabel }}\n </span>\n <br />\n <span *ngIf=\"twelvehour\"\n class=\"gipi-mat-datetime-picker-calendar-header-ampm-container\">\n <span class=\"gipi-mat-datetime-picker-calendar-header-ampm\"\n [class.active]=\"currentView === 'clock' && _AMPM === 'AM'\"\n (click)=\"_ampmClicked('AM')\">\n AM\n </span>\n /\n <span class=\"gipi-mat-datetime-picker-calendar-header-ampm\"\n [class.active]=\"currentView === 'clock' && _AMPM === 'PM'\"\n (click)=\"_ampmClicked('PM')\">\n PM\n </span>\n </span>\n </span>\n </div>\n</div>\n\n<div [ngSwitch]=\"currentView\"\n class=\"gipi-mat-datetime-picker-calendar-content\">\n <!-- <div *ngIf=\"currentView === 'month' || currentView === 'year' || currentView === 'multi-year'\"\n class=\"mat-month-content\">\n <div class=\"gipi-mat-datetime-picker-calendar-controls\">\n <div (click)=\"_previousClicked()\"\n [attr.aria-disabled]=\"!_previousEnabled()\"\n [attr.aria-label]=\"_ariaLabelPrev\"\n [class.disabled]=\"!_previousEnabled()\"\n class=\"gipi-mat-datetime-picker-calendar-previous-button\"\n role=\"button\">\n <svg height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\">\n <path d=\"M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12z\"></path>\n </svg>\n </div>\n <div (@slideCalendar.done)=\"_calendarStateDone()\"\n [@slideCalendar]=\"_calendarState\"\n class=\"gipi-mat-datetime-picker-calendar-period-button\">\n <strong>{{ _monthYearLabel }}</strong>\n </div>\n <div (click)=\"_nextClicked()\"\n [attr.aria-disabled]=\"!_nextEnabled()\"\n [attr.aria-label]=\"_ariaLabelNext\"\n [class.disabled]=\"!_nextEnabled()\"\n class=\"gipi-mat-datetime-picker-calendar-next-button\"\n role=\"button\">\n <svg height=\"24\"\n viewBox=\"0 0 24 24\"\n width=\"24\">\n <path d=\"M10 6L8.59 7.41 13.17 12l-4.58 4.59L10 18l6-6z\"></path>\n </svg>\n </div>\n </div>\n </div> -->\n\n <gipi-mat-datetime-picker-month-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_dateSelected($event)\"\n *ngSwitchCase=\"'month'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected\"\n [type]=\"type\">\n </gipi-mat-datetime-picker-month-view>\n <gipi-mat-datetime-picker-year-view (_userSelection)=\"_userSelected()\"\n (selectedChange)=\"_monthSelected($event)\"\n *ngSwitchCase=\"'year'\"\n [activeDate]=\"_activeDate\"\n [dateFilter]=\"_dateFilterForViews\"\n [selected]=\"selected\"\n [type]=\"type\">\n </gipi-mat-datetime-picker-year-view>\n <gipi-mat-datetime-picker-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 </gipi-mat-datetime-picker-multi-year-view>\n <gipi-mat-datetime-picker-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 </gipi-mat-datetime-picker-clock>\n</div>",
|
24475
|
+
animations: [slideCalendar],
|
24476
|
+
encapsulation: ViewEncapsulation.None,
|
24477
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
24478
|
+
host: {
|
24479
|
+
'[class.gipi-mat-datetime-picker-calendar]': 'true',
|
24480
|
+
'[attr.aria-label]': 'ariaLabel',
|
24481
|
+
role: 'dialog',
|
24482
|
+
tabindex: '0',
|
24483
|
+
'(keydown)': '_handleCalendarBodyKeydown($event)',
|
24484
|
+
},
|
24485
|
+
styles: [".gipi-mat-datetime-picker-calendar{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;display:block;outline:0}.gipi-mat-datetime-picker-calendar[mode=landscape]{display:flex}.gipi-mat-datetime-picker-calendar-header{padding:8px 8px 0;font-size:14px;box-sizing:border-box}[mode=landscape] .gipi-mat-datetime-picker-calendar-header{width:150px;min-width:150px}.gipi-mat-datetime-picker-calendar-controls{display:flex;margin:5% calc(33% / 7 - 16px)}.gipi-mat-datetime-picker-calendar-controls .mat-icon-button:hover .mat-button-focus-overlay{opacity:.04}.gipi-mat-datetime-picker-calendar-spacer{flex:1 1 auto}.gipi-mat-datetime-picker-calendar-period-button{box-sizing:border-box;position:relative;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;cursor:pointer;outline:0;border:none;display:inline-block;white-space:nowrap;text-decoration:none;vertical-align:baseline;text-align:center;margin:0;min-width:0;line-height:36px;padding:0 16px;border-radius:4px}.gipi-mat-datetime-picker-calendar-arrow{display:inline-block;width:0;height:0;border-left:5px solid transparent;border-right:5px solid transparent;border-top-width:5px;border-top-style:solid;margin:0 0 0 5px;vertical-align:middle}.gipi-mat-datetime-picker-calendar-arrow.gipi-mat-datetime-picker-calendar-invert{transform:rotate(180deg)}[dir=rtl] .gipi-mat-datetime-picker-calendar-arrow{margin:0 5px 0 0}.gipi-mat-datetime-picker-calendar-next-button::after,.gipi-mat-datetime-picker-calendar-previous-button::after{top:0;left:0;right:0;bottom:0;position:absolute;content:'';margin:15.5px;border:0 solid currentColor;border-top-width:2px}[dir=rtl] .gipi-mat-datetime-picker-calendar-next-button,[dir=rtl] .gipi-mat-datetime-picker-calendar-previous-button{transform:rotate(180deg)}.gipi-mat-datetime-picker-calendar-previous-button::after{border-left-width:2px;transform:translateX(2px) rotate(-45deg)}.gipi-mat-datetime-picker-calendar-next-button::after{border-right-width:2px;transform:translateX(-2px) rotate(45deg)}.gipi-mat-datetime-picker-calendar-header-date-time{display:flex;flex-direction:row;align-items:center;justify-content:space-between;width:100%;margin-top:6px;font-weight:500;white-space:nowrap}[mode=landscape] .gipi-mat-datetime-picker-calendar-header-date-time{white-space:normal;word-wrap:break-word;margin-top:0}.gipi-mat-datetime-picker-calendar-header-ampm-container{font-size:.77em}.gipi-mat-datetime-picker-calendar-header-date{display:flex;align-items:center;justify-content:center;border-radius:6px;padding-inline:1rem;font-size:14px;line-height:36px;font-weight:600;transition:.2s}.gipi-mat-datetime-picker-calendar-header-date:not(.active){cursor:pointer;opacity:.6}.gipi-mat-datetime-picker-calendar-header-date:not(.active):hover{background:#f5f5f6;opacity:1}.gipi-mat-datetime-picker-calendar-header-date.active{cursor:pointer;background-color:#f3e7e7;color:#e0313e;opacity:1}.gipi-mat-datetime-picker-calendar-header-date.active:hover{background-color:#e0313e;color:#f3e7e7}.gipi-mat-datetime-picker-calendar-header-date.not-clickable{cursor:initial}.gipi-mat-datetime-picker-calendar-header-ampm,.gipi-mat-datetime-picker-calendar-header-hours,.gipi-mat-datetime-picker-calendar-header-minutes{display:flex;align-items:center;justify-content:center;border-radius:6px;width:36px;height:36px;transition:.2s}.gipi-mat-datetime-picker-calendar-header-ampm:not(.active),.gipi-mat-datetime-picker-calendar-header-hours:not(.active),.gipi-mat-datetime-picker-calendar-header-minutes:not(.active){cursor:pointer;opacity:.6}.gipi-mat-datetime-picker-calendar-header-ampm:not(.active):hover,.gipi-mat-datetime-picker-calendar-header-hours:not(.active):hover,.gipi-mat-datetime-picker-calendar-header-minutes:not(.active):hover{background:#f5f5f6;opacity:1}.gipi-mat-datetime-picker-calendar-header-ampm.active,.gipi-mat-datetime-picker-calendar-header-hours.active,.gipi-mat-datetime-picker-calendar-header-minutes.active{cursor:pointer;background-color:#f3e7e7;color:#e0313e;opacity:1}.gipi-mat-datetime-picker-calendar-header-ampm.active:hover,.gipi-mat-datetime-picker-calendar-header-hours.active:hover,.gipi-mat-datetime-picker-calendar-header-minutes.active:hover{background-color:#e0313e;color:#f3e7e7}.gipi-mat-datetime-picker-calendar-header-ampm.not-clickable,.gipi-mat-datetime-picker-calendar-header-hours.not-clickable,.gipi-mat-datetime-picker-calendar-header-minutes.not-clickable{cursor:initial}.gipi-mat-datetime-picker-calendar-header-time{display:flex;align-items:center;justify-content:center;gap:1px;font-size:24px;line-height:36px;padding-left:8px}.gipi-mat-datetime-picker-calendar-header-time:not(.active){opacity:.6}[mode=landscape] .gipi-mat-datetime-picker-calendar-header-time{display:block;padding-left:0}.gipi-mat-datetime-picker-calendar-content{width:100%;padding:0 8px 8px;outline:0;box-sizing:border-box;overflow:hidden}[mode=landscape] .gipi-mat-datetime-picker-calendar-content{padding-top:8px}.gipi-mat-datetime-picker-calendar-controls{display:flex;justify-content:space-between}.gipi-mat-datetime-picker-calendar-next-button,.gipi-mat-datetime-picker-calendar-previous-button{position:relative;display:inline-block;width:48px;height:48px;padding:12px;outline:0;border:0;cursor:pointer;background:0 0;box-sizing:border-box}.gipi-mat-datetime-picker-calendar-next-button.disabled,.gipi-mat-datetime-picker-calendar-previous-button.disabled{color:rgba(0,0,0,.38);pointer-events:none}.gipi-mat-datetime-picker-calendar-next-button svg,.gipi-mat-datetime-picker-calendar-previous-button svg{fill:currentColor;vertical-align:top}.gipi-mat-datetime-picker-calendar-table{border-spacing:0;border-collapse:collapse;width:100%}.gipi-mat-datetime-picker-calendar-table-header{color:rgba(0,0,0,.38)}.gipi-mat-datetime-picker-calendar-table-header th{text-align:center;font-size:11px;padding:0 0 8px}.gipi-mat-datetime-picker-calendar-table-header-divider{position:relative;height:1px}.gipi-mat-datetime-picker-calendar-table-header-divider::after{content:'';position:absolute;top:0;left:-8px;right:-8px;height:1px}@media (min-width:480px){.gipi-mat-datetime-picker-calendar[mode=auto]{display:flex}.gipi-mat-datetime-picker-calendar[mode=auto] .gipi-mat-datetime-picker-calendar-header{width:150px;min-width:150px}.gipi-mat-datetime-picker-calendar[mode=auto] .gipi-mat-datetime-picker-calendar-header-date-time{white-space:normal;word-wrap:break-word}.gipi-mat-datetime-picker-calendar[mode=auto] .gipi-mat-datetime-picker-calendar-header-time{display:block;padding-left:0}.gipi-mat-datetime-picker-calendar[mode=auto] .gipi-mat-datetime-picker-calendar-content{padding-top:8px}}"]
|
24486
|
+
}),
|
24487
|
+
__param(3, Optional()),
|
24488
|
+
__param(4, Optional()), __param(4, Inject(GIPI_DATETIME_FORMATS)),
|
24489
|
+
__metadata("design:paramtypes", [ElementRef,
|
24490
|
+
MatDatepickerIntl$1,
|
24491
|
+
NgZone,
|
24492
|
+
GIPIDatetimeAdapter, Object, ChangeDetectorRef])
|
24493
|
+
], GIPIDatetimepickerCalendarComponent);
|
24494
|
+
|
24495
|
+
/** Used to generate a unique ID for each datepicker instance. */
|
24496
|
+
let datetimepickerUid = 0;
|
24497
|
+
/**
|
24498
|
+
* Component used as the content for the datepicker dialog and popup. We use this instead of using
|
24499
|
+
* MatCalendar directly as the content so we can control the initial focus. This also gives us a
|
24500
|
+
* place to put additional features of the popup that are not part of the calendar itself in the
|
24501
|
+
* future. (e.g. confirmation buttons).
|
24502
|
+
* @docs-private
|
24503
|
+
*/
|
24504
|
+
let GIPIDatetimepickerContentComponent = class GIPIDatetimepickerContentComponent {
|
24505
|
+
ngAfterContentInit() {
|
24506
|
+
this._calendar._focusActiveCell();
|
24507
|
+
}
|
24508
|
+
onSelectionChange(date) {
|
24509
|
+
this.datetimepicker._select(date);
|
24510
|
+
this.datetimepicker.close();
|
24511
|
+
}
|
24512
|
+
/**
|
24513
|
+
* Handles keydown event on datepicker content.
|
24514
|
+
* @param event The event.
|
24515
|
+
*/
|
24516
|
+
_handleKeydown(event) {
|
24517
|
+
if (event.keyCode === ESCAPE) {
|
24518
|
+
this.datetimepicker.close();
|
24519
|
+
event.preventDefault();
|
24520
|
+
event.stopPropagation();
|
24521
|
+
}
|
24522
|
+
}
|
24523
|
+
};
|
24524
|
+
__decorate([
|
24525
|
+
ViewChild(GIPIDatetimepickerCalendarComponent, { static: true }),
|
24526
|
+
__metadata("design:type", GIPIDatetimepickerCalendarComponent)
|
24527
|
+
], GIPIDatetimepickerContentComponent.prototype, "_calendar", void 0);
|
24528
|
+
GIPIDatetimepickerContentComponent = __decorate([
|
24529
|
+
Component({
|
24530
|
+
selector: 'gipi-mat-datetime-picker-content',
|
24531
|
+
template: "<gipi-mat-datetime-picker-calendar cdkTrapFocus\n class=\"mat-typography\"\n [id]=\"datetimepicker.id\"\n [attr.mode]=\"datetimepicker.mode\"\n [ariaNextMonthLabel]=\"datetimepicker.ariaNextMonthLabel\"\n [ariaNextYearLabel]=\"datetimepicker.ariaNextYearLabel\"\n [ariaPrevMonthLabel]=\"datetimepicker.ariaPrevMonthLabel\"\n [ariaPrevYearLabel]=\"datetimepicker.ariaPrevYearLabel\"\n [preventSameDateTimeSelection]=\"datetimepicker.preventSameDateTimeSelection\"\n [dateFilter]=\"datetimepicker._dateFilter\"\n [maxDate]=\"datetimepicker._maxDate\"\n [minDate]=\"datetimepicker._minDate\"\n [multiYearSelector]=\"datetimepicker.multiYearSelector\"\n [selected]=\"datetimepicker._selected\"\n [startAt]=\"datetimepicker.startAt\"\n [startView]=\"datetimepicker.startView\"\n [timeInterval]=\"datetimepicker.timeInterval\"\n [twelvehour]=\"datetimepicker.twelvehour\"\n [type]=\"datetimepicker.type\"\n (_userSelection)=\"datetimepicker.close()\"\n (selectedChange)=\"onSelectionChange($event)\"\n (viewChanged)=\"datetimepicker._viewChanged($event)\">\n</gipi-mat-datetime-picker-calendar>",
|
24532
|
+
encapsulation: ViewEncapsulation.None,
|
24533
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
24534
|
+
host: {
|
24535
|
+
class: 'gipi-mat-datetime-picker-content',
|
24536
|
+
'[class.gipi-mat-datetime-picker-content-touch]': 'datetimepicker?.touchUi',
|
24537
|
+
'(keydown)': '_handleKeydown($event)',
|
24538
|
+
},
|
24539
|
+
styles: ["@use '@angular/material' as mat;.gipi-mat-datetime-picker-content{display:block;background-color:#fff;border-radius:4px!important;overflow:hidden;box-shadow:0 2px 4px -1px rgba(0,0,0,.2),0 4px 5px 0 rgba(0,0,0,.14),0 1px 10px 0 rgba(0,0,0,.12)}.gipi-mat-datetime-picker-calendar{width:296px;height:405px}.gipi-mat-datetime-picker-calendar[mode=landscape]{width:446px;height:328px}@media (min-width:480px){.gipi-mat-datetime-picker-calendar[mode=auto]{width:446px;height:328px}}.gipi-mat-datetime-picker-content-touch{display:block;box-shadow:0 11px 15px -7px rgba(0,0,0,.2),0 24px 38px 3px rgba(0,0,0,.14),0 9px 46px 8px rgba(0,0,0,.12)}.cdk-global-overlay-wrapper,.cdk-overlay-container{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed;z-index:1000}.cdk-global-overlay-wrapper{display:flex;position:absolute;z-index:1000}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;z-index:1000}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;z-index:1000;pointer-events:auto;transition:opacity .4s cubic-bezier(.25,.8,.25,1);opacity:0}.cdk-overlay-backdrop.cdk-overlay-backdrop-showing{opacity:.48}.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.6)}.gipi-mat-datetime-picker-dialog .mat-dialog-container{padding:0}"]
|
24540
|
+
})
|
24541
|
+
], GIPIDatetimepickerContentComponent);
|
24542
|
+
let GIPIDatetimepickerComponent = class GIPIDatetimepickerComponent {
|
24543
|
+
constructor(_dialog, _overlay, _ngZone, _viewContainerRef, _scrollStrategy, _dateAdapter, _dir, _document) {
|
24544
|
+
this._dialog = _dialog;
|
24545
|
+
this._overlay = _overlay;
|
24546
|
+
this._ngZone = _ngZone;
|
24547
|
+
this._viewContainerRef = _viewContainerRef;
|
24548
|
+
this._scrollStrategy = _scrollStrategy;
|
24549
|
+
this._dateAdapter = _dateAdapter;
|
24550
|
+
this._dir = _dir;
|
24551
|
+
this._document = _document;
|
24552
|
+
/** Whether the calendar is open. */
|
24553
|
+
this.opened = false;
|
24554
|
+
/** The id for the datepicker calendar. */
|
24555
|
+
this.id = `gipi-mat-datetime-picker-${datetimepickerUid++}`;
|
24556
|
+
/** Emits when the datepicker is disabled. */
|
24557
|
+
this._disabledChange = new Subject();
|
24558
|
+
this._validSelected = null;
|
24559
|
+
/** The element that was focused before the datepicker was opened. */
|
24560
|
+
this._focusedElementBeforeOpen = null;
|
24561
|
+
this._inputSubscription = Subscription.EMPTY;
|
24562
|
+
/** Active multi year view when click on year. */
|
24563
|
+
this.multiYearSelector = false;
|
24564
|
+
/** if true change the clock to 12 hour format. */
|
24565
|
+
this.twelvehour = false;
|
24566
|
+
/** The view that the calendar should start in. */
|
24567
|
+
this.startView = 'month';
|
24568
|
+
this.mode = 'auto';
|
24569
|
+
this.timeInterval = 1;
|
24570
|
+
this.ariaNextMonthLabel = 'Next month';
|
24571
|
+
this.ariaPrevMonthLabel = 'Previous month';
|
24572
|
+
this.ariaNextYearLabel = 'Next year';
|
24573
|
+
this.ariaPrevYearLabel = 'Previous year';
|
24574
|
+
/** Prevent user to select same date time */
|
24575
|
+
this.preventSameDateTimeSelection = false;
|
24576
|
+
this._type = 'date';
|
24577
|
+
/** Whether the calendar UI is in touch mode. In touch mode the calendar opens in a dialog rather than a popup and elements have more padding to allow for bigger touch targets. */
|
24578
|
+
this._touchUi = false;
|
24579
|
+
/** Emits when the datepicker has been opened. */
|
24580
|
+
this.openedStream = new EventEmitter();
|
24581
|
+
/** Emits when the datepicker has been closed. */
|
24582
|
+
this.closedStream = new EventEmitter();
|
24583
|
+
/** Emits when the view has been changed. **/
|
24584
|
+
this.viewChanged = new EventEmitter();
|
24585
|
+
/**
|
24586
|
+
* Emits new selected date when selected date changes.
|
24587
|
+
* @deprecated Switch to the `dateChange` and `dateInput` binding on the input element.
|
24588
|
+
*/
|
24589
|
+
this.selectedChanged = new EventEmitter();
|
24590
|
+
if (!this._dateAdapter) {
|
24591
|
+
throw createMissingDateImplError$1('DateAdapter');
|
24592
|
+
}
|
24593
|
+
}
|
24594
|
+
get startAt() {
|
24595
|
+
// If an explicit startAt is set we start there, otherwise we start at whatever the currently selected value is.
|
24596
|
+
return (this._startAt || (this._datepickerInput ? this._datepickerInput.value : null));
|
24597
|
+
}
|
24598
|
+
set startAt(date) {
|
24599
|
+
this._startAt = this._dateAdapter.getValidDateOrNull(date);
|
24600
|
+
}
|
24601
|
+
get openOnFocus() {
|
24602
|
+
return this._openOnFocus;
|
24603
|
+
}
|
24604
|
+
set openOnFocus(value) {
|
24605
|
+
this._openOnFocus = coerceBooleanProperty(value);
|
24606
|
+
}
|
24607
|
+
get type() {
|
24608
|
+
return this._type;
|
24609
|
+
}
|
24610
|
+
set type(value) {
|
24611
|
+
this._type = value || 'date';
|
24612
|
+
}
|
24613
|
+
get touchUi() {
|
24614
|
+
return this._touchUi;
|
24615
|
+
}
|
24616
|
+
set touchUi(value) {
|
24617
|
+
this._touchUi = coerceBooleanProperty(value);
|
24618
|
+
}
|
24619
|
+
get disabled() {
|
24620
|
+
return this._disabled === undefined && this._datepickerInput
|
24621
|
+
? this._datepickerInput.disabled
|
24622
|
+
: !!this._disabled;
|
24623
|
+
}
|
24624
|
+
set disabled(value) {
|
24625
|
+
const newValue = coerceBooleanProperty(value);
|
24626
|
+
if (newValue !== this._disabled) {
|
24627
|
+
this._disabled = newValue;
|
24628
|
+
this._disabledChange.next(newValue);
|
24629
|
+
}
|
24630
|
+
}
|
24631
|
+
/** The currently selected date. */
|
24632
|
+
get _selected() {
|
24633
|
+
return this._validSelected;
|
24634
|
+
}
|
24635
|
+
set _selected(value) {
|
24636
|
+
this._validSelected = value;
|
24637
|
+
}
|
24638
|
+
/** The minimum selectable date. */
|
24639
|
+
get _minDate() {
|
24640
|
+
return this._datepickerInput && this._datepickerInput.min;
|
24641
|
+
}
|
24642
|
+
/** The maximum selectable date. */
|
24643
|
+
get _maxDate() {
|
24644
|
+
return this._datepickerInput && this._datepickerInput.max;
|
24645
|
+
}
|
24646
|
+
get _dateFilter() {
|
24647
|
+
return this._datepickerInput && this._datepickerInput._dateFilter;
|
24648
|
+
}
|
24649
|
+
_handleFocus() {
|
24650
|
+
if (!this.opened && this.openOnFocus) {
|
24651
|
+
this.open();
|
24652
|
+
}
|
24653
|
+
}
|
24654
|
+
_viewChanged(type) {
|
24655
|
+
this.viewChanged.emit(type);
|
24656
|
+
}
|
24657
|
+
ngOnDestroy() {
|
24658
|
+
this.close();
|
24659
|
+
this._inputSubscription.unsubscribe();
|
24660
|
+
this._disabledChange.complete();
|
24661
|
+
if (this._popupRef) {
|
24662
|
+
this._popupRef.dispose();
|
24663
|
+
}
|
24664
|
+
}
|
24665
|
+
/** Selects the given date */
|
24666
|
+
_select(date) {
|
24667
|
+
const oldValue = this._selected;
|
24668
|
+
this._selected = date;
|
24669
|
+
if (!this._dateAdapter.sameDatetime(oldValue, this._selected)) {
|
24670
|
+
this.selectedChanged.emit(date);
|
24671
|
+
}
|
24672
|
+
}
|
24673
|
+
/**
|
24674
|
+
* Register an input with this datepicker.
|
24675
|
+
* @param input The datepicker input to register with this datepicker.
|
24676
|
+
*/
|
24677
|
+
_registerInput(input) {
|
24678
|
+
if (this._datepickerInput) {
|
24679
|
+
throw Error('A MatDatepicker can only be associated with a single input.');
|
24680
|
+
}
|
24681
|
+
this._datepickerInput = input;
|
24682
|
+
this._inputSubscription = this._datepickerInput._valueChange.subscribe((value) => (this._selected = value));
|
24683
|
+
}
|
24684
|
+
/** Open the calendar. */
|
24685
|
+
open() {
|
24686
|
+
if (this.opened || this.disabled) {
|
24687
|
+
return;
|
24688
|
+
}
|
24689
|
+
if (!this._datepickerInput) {
|
24690
|
+
throw Error('Attempted to open an MatDatepicker with no associated input.');
|
24691
|
+
}
|
24692
|
+
if (this._document) {
|
24693
|
+
this._focusedElementBeforeOpen = this._document.activeElement;
|
24694
|
+
}
|
24695
|
+
this.touchUi ? this._openAsDialog() : this._openAsPopup();
|
24696
|
+
this.opened = true;
|
24697
|
+
this.openedStream.emit();
|
24698
|
+
}
|
24699
|
+
/** Close the calendar. */
|
24700
|
+
close() {
|
24701
|
+
if (!this.opened) {
|
24702
|
+
return;
|
24703
|
+
}
|
24704
|
+
if (this._popupRef && this._popupRef.hasAttached()) {
|
24705
|
+
this._popupRef.detach();
|
24706
|
+
}
|
24707
|
+
if (this._dialogRef) {
|
24708
|
+
this._dialogRef.close();
|
24709
|
+
this._dialogRef = null;
|
24710
|
+
}
|
24711
|
+
if (this._calendarPortal && this._calendarPortal.isAttached) {
|
24712
|
+
this._calendarPortal.detach();
|
24713
|
+
}
|
24714
|
+
const completeClose = () => {
|
24715
|
+
// The `_opened` could've been reset already if
|
24716
|
+
// we got two events in quick succession.
|
24717
|
+
if (this.opened) {
|
24718
|
+
this.opened = false;
|
24719
|
+
this.closedStream.emit();
|
24720
|
+
this._focusedElementBeforeOpen = null;
|
24721
|
+
}
|
24722
|
+
};
|
24723
|
+
if (this._focusedElementBeforeOpen && typeof this._focusedElementBeforeOpen.focus === 'function') {
|
24724
|
+
// Because IE moves focus asynchronously, we can't count on it being restored before we've
|
24725
|
+
// marked the datepicker as closed. If the event fires out of sequence and the element that
|
24726
|
+
// we're refocusing opens the datepicker on focus, the user could be stuck with not being
|
24727
|
+
// able to close the calendar at all. We work around it by making the logic, that marks
|
24728
|
+
// the datepicker as closed, async as well.
|
24729
|
+
this._focusedElementBeforeOpen.focus();
|
24730
|
+
setTimeout(completeClose);
|
24731
|
+
}
|
24732
|
+
else {
|
24733
|
+
completeClose();
|
24734
|
+
}
|
24735
|
+
}
|
24736
|
+
/** Open the calendar as a dialog. */
|
24737
|
+
_openAsDialog() {
|
24738
|
+
this._dialogRef = this._dialog.open(GIPIDatetimepickerContentComponent, {
|
24739
|
+
direction: this._dir ? this._dir.value : 'ltr',
|
24740
|
+
viewContainerRef: this._viewContainerRef,
|
24741
|
+
panelClass: 'gipi-mat-datetime-picker-dialog',
|
24742
|
+
});
|
24743
|
+
this._dialogRef.afterClosed().subscribe(() => this.close());
|
24744
|
+
this._dialogRef.componentInstance.datetimepicker = this;
|
24745
|
+
}
|
24746
|
+
/** Open the calendar as a popup. */
|
24747
|
+
_openAsPopup() {
|
24748
|
+
if (!this._calendarPortal) {
|
24749
|
+
this._calendarPortal = new ComponentPortal(GIPIDatetimepickerContentComponent, this._viewContainerRef);
|
24750
|
+
}
|
24751
|
+
if (!this._popupRef) {
|
24752
|
+
this._createPopup();
|
24753
|
+
}
|
24754
|
+
if (!this._popupRef.hasAttached()) {
|
24755
|
+
const componentRef = this._popupRef.attach(this._calendarPortal);
|
24756
|
+
componentRef.instance.datetimepicker = this;
|
24757
|
+
// Update the position once the calendar has rendered.
|
24758
|
+
this._ngZone.onStable
|
24759
|
+
.asObservable()
|
24760
|
+
.pipe(first())
|
24761
|
+
.subscribe(() => this._popupRef.updatePosition());
|
24762
|
+
}
|
24763
|
+
this._popupRef.backdropClick().subscribe(() => this.close());
|
24764
|
+
}
|
24765
|
+
/** Create the popup. */
|
24766
|
+
_createPopup() {
|
24767
|
+
const overlayConfig = new OverlayConfig({
|
24768
|
+
positionStrategy: this._createPopupPositionStrategy(),
|
24769
|
+
hasBackdrop: true,
|
24770
|
+
backdropClass: 'mat-overlay-transparent-backdrop',
|
24771
|
+
direction: this._dir ? this._dir.value : 'ltr',
|
24772
|
+
scrollStrategy: this._scrollStrategy(),
|
24773
|
+
panelClass: 'gipi-mat-datetime-picker-popup',
|
24774
|
+
});
|
24775
|
+
this._popupRef = this._overlay.create(overlayConfig);
|
24776
|
+
}
|
24777
|
+
/** Create the popup PositionStrategy. */
|
24778
|
+
_createPopupPositionStrategy() {
|
24779
|
+
return this._overlay
|
24780
|
+
.position()
|
24781
|
+
.flexibleConnectedTo(this._datepickerInput.getConnectedOverlayOrigin())
|
24782
|
+
.withTransformOriginOn('.gipi-mat-datetime-picker-content')
|
24783
|
+
.withFlexibleDimensions(false)
|
24784
|
+
.withViewportMargin(8)
|
24785
|
+
.withLockedPosition()
|
24786
|
+
.withPositions([
|
24787
|
+
{
|
24788
|
+
originX: 'start',
|
24789
|
+
originY: 'bottom',
|
24790
|
+
overlayX: 'start',
|
24791
|
+
overlayY: 'top',
|
24792
|
+
},
|
24793
|
+
{
|
24794
|
+
originX: 'start',
|
24795
|
+
originY: 'top',
|
24796
|
+
overlayX: 'start',
|
24797
|
+
overlayY: 'bottom',
|
24798
|
+
},
|
24799
|
+
{
|
24800
|
+
originX: 'end',
|
24801
|
+
originY: 'bottom',
|
24802
|
+
overlayX: 'end',
|
24803
|
+
overlayY: 'top',
|
24804
|
+
},
|
24805
|
+
{
|
24806
|
+
originX: 'end',
|
24807
|
+
originY: 'top',
|
24808
|
+
overlayX: 'end',
|
24809
|
+
overlayY: 'bottom',
|
24810
|
+
},
|
24811
|
+
]);
|
24812
|
+
}
|
24813
|
+
};
|
24814
|
+
GIPIDatetimepickerComponent.ctorParameters = () => [
|
24815
|
+
{ type: MatDialog$1 },
|
24816
|
+
{ type: Overlay },
|
24817
|
+
{ type: NgZone },
|
24818
|
+
{ type: ViewContainerRef },
|
24819
|
+
{ type: undefined, decorators: [{ type: Inject, args: [MAT_DATEPICKER_SCROLL_STRATEGY$1,] }] },
|
24820
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
24821
|
+
{ type: Directionality, decorators: [{ type: Optional }] },
|
24822
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DOCUMENT,] }] }
|
24823
|
+
];
|
24824
|
+
__decorate([
|
24825
|
+
Input(),
|
24826
|
+
__metadata("design:type", Boolean)
|
24827
|
+
], GIPIDatetimepickerComponent.prototype, "multiYearSelector", void 0);
|
24828
|
+
__decorate([
|
24829
|
+
Input(),
|
24830
|
+
__metadata("design:type", Boolean)
|
24831
|
+
], GIPIDatetimepickerComponent.prototype, "twelvehour", void 0);
|
24832
|
+
__decorate([
|
24833
|
+
Input(),
|
24834
|
+
__metadata("design:type", String)
|
24835
|
+
], GIPIDatetimepickerComponent.prototype, "startView", void 0);
|
24836
|
+
__decorate([
|
24837
|
+
Input(),
|
24838
|
+
__metadata("design:type", String)
|
24839
|
+
], GIPIDatetimepickerComponent.prototype, "mode", void 0);
|
24840
|
+
__decorate([
|
24841
|
+
Input(),
|
24842
|
+
__metadata("design:type", Number)
|
24843
|
+
], GIPIDatetimepickerComponent.prototype, "timeInterval", void 0);
|
24844
|
+
__decorate([
|
24845
|
+
Input(),
|
24846
|
+
__metadata("design:type", Object)
|
24847
|
+
], GIPIDatetimepickerComponent.prototype, "ariaNextMonthLabel", void 0);
|
24848
|
+
__decorate([
|
24849
|
+
Input(),
|
24850
|
+
__metadata("design:type", Object)
|
24851
|
+
], GIPIDatetimepickerComponent.prototype, "ariaPrevMonthLabel", void 0);
|
24852
|
+
__decorate([
|
24853
|
+
Input(),
|
24854
|
+
__metadata("design:type", Object)
|
24855
|
+
], GIPIDatetimepickerComponent.prototype, "ariaNextYearLabel", void 0);
|
24856
|
+
__decorate([
|
24857
|
+
Input(),
|
24858
|
+
__metadata("design:type", Object)
|
24859
|
+
], GIPIDatetimepickerComponent.prototype, "ariaPrevYearLabel", void 0);
|
24860
|
+
__decorate([
|
24861
|
+
Input(),
|
24862
|
+
__metadata("design:type", Object)
|
24863
|
+
], GIPIDatetimepickerComponent.prototype, "preventSameDateTimeSelection", void 0);
|
24864
|
+
__decorate([
|
24865
|
+
Input(),
|
24866
|
+
__metadata("design:type", Object)
|
24867
|
+
], GIPIDatetimepickerComponent.prototype, "panelClass", void 0);
|
24868
|
+
__decorate([
|
24869
|
+
Input(),
|
24870
|
+
__metadata("design:type", Object),
|
24871
|
+
__metadata("design:paramtypes", [Object])
|
24872
|
+
], GIPIDatetimepickerComponent.prototype, "startAt", null);
|
24873
|
+
__decorate([
|
24874
|
+
Input(),
|
24875
|
+
__metadata("design:type", Boolean),
|
24876
|
+
__metadata("design:paramtypes", [Boolean])
|
24877
|
+
], GIPIDatetimepickerComponent.prototype, "openOnFocus", null);
|
24878
|
+
__decorate([
|
24879
|
+
Input(),
|
24880
|
+
__metadata("design:type", String),
|
24881
|
+
__metadata("design:paramtypes", [String])
|
24882
|
+
], GIPIDatetimepickerComponent.prototype, "type", null);
|
24883
|
+
__decorate([
|
24884
|
+
Input(),
|
24885
|
+
__metadata("design:type", Boolean),
|
24886
|
+
__metadata("design:paramtypes", [Boolean])
|
24887
|
+
], GIPIDatetimepickerComponent.prototype, "touchUi", null);
|
24888
|
+
__decorate([
|
24889
|
+
Input(),
|
24890
|
+
__metadata("design:type", Boolean),
|
24891
|
+
__metadata("design:paramtypes", [Boolean])
|
24892
|
+
], GIPIDatetimepickerComponent.prototype, "disabled", null);
|
24893
|
+
__decorate([
|
24894
|
+
Output('opened'),
|
24895
|
+
__metadata("design:type", EventEmitter)
|
24896
|
+
], GIPIDatetimepickerComponent.prototype, "openedStream", void 0);
|
24897
|
+
__decorate([
|
24898
|
+
Output('closed'),
|
24899
|
+
__metadata("design:type", EventEmitter)
|
24900
|
+
], GIPIDatetimepickerComponent.prototype, "closedStream", void 0);
|
24901
|
+
__decorate([
|
24902
|
+
Output(),
|
24903
|
+
__metadata("design:type", EventEmitter)
|
24904
|
+
], GIPIDatetimepickerComponent.prototype, "viewChanged", void 0);
|
24905
|
+
__decorate([
|
24906
|
+
Output(),
|
24907
|
+
__metadata("design:type", Object)
|
24908
|
+
], GIPIDatetimepickerComponent.prototype, "selectedChanged", void 0);
|
24909
|
+
GIPIDatetimepickerComponent = __decorate([
|
24910
|
+
Component({
|
24911
|
+
selector: 'gipi-mat-datetime-picker',
|
24912
|
+
exportAs: 'gipiDatetimePicker',
|
24913
|
+
template: '',
|
24914
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
24915
|
+
encapsulation: ViewEncapsulation.None,
|
24916
|
+
preserveWhitespaces: false
|
24917
|
+
}),
|
24918
|
+
__param(4, Inject(MAT_DATEPICKER_SCROLL_STRATEGY$1)),
|
24919
|
+
__param(5, Optional()),
|
24920
|
+
__param(6, Optional()),
|
24921
|
+
__param(7, Optional()), __param(7, Inject(DOCUMENT)),
|
24922
|
+
__metadata("design:paramtypes", [MatDialog$1,
|
24923
|
+
Overlay,
|
24924
|
+
NgZone,
|
24925
|
+
ViewContainerRef, Object, GIPIDatetimeAdapter,
|
24926
|
+
Directionality, Object])
|
24927
|
+
], GIPIDatetimepickerComponent);
|
24928
|
+
|
24929
|
+
let GIPIDatetimepickerToggleComponent = class GIPIDatetimepickerToggleComponent {
|
24930
|
+
constructor(_intl, _changeDetectorRef) {
|
24931
|
+
this._intl = _intl;
|
24932
|
+
this._changeDetectorRef = _changeDetectorRef;
|
24933
|
+
this._stateChanges = Subscription.EMPTY;
|
24934
|
+
}
|
24935
|
+
/** Whether the toggle button is disabled. */
|
24936
|
+
get disabled() {
|
24937
|
+
return this._disabled === undefined
|
24938
|
+
? this.datetimepicker.disabled
|
24939
|
+
: !!this._disabled;
|
24940
|
+
}
|
24941
|
+
set disabled(value) {
|
24942
|
+
this._disabled = coerceBooleanProperty(value);
|
24943
|
+
}
|
24944
|
+
ngOnChanges(changes) {
|
24945
|
+
if (changes.datepicker) {
|
24946
|
+
this._watchStateChanges();
|
24947
|
+
}
|
24948
|
+
}
|
24949
|
+
ngOnDestroy() {
|
24950
|
+
this._stateChanges.unsubscribe();
|
24951
|
+
}
|
24952
|
+
ngAfterContentInit() {
|
24953
|
+
this._watchStateChanges();
|
24954
|
+
}
|
24955
|
+
_open(event) {
|
24956
|
+
if (this.datetimepicker && !this.disabled) {
|
24957
|
+
this.datetimepicker.open();
|
24958
|
+
event.stopPropagation();
|
24959
|
+
}
|
24960
|
+
}
|
24961
|
+
_watchStateChanges() {
|
24962
|
+
const datepickerDisabled = this.datetimepicker
|
24963
|
+
? this.datetimepicker._disabledChange
|
24964
|
+
: of([], asyncScheduler);
|
24965
|
+
const inputDisabled = this.datetimepicker && this.datetimepicker._datepickerInput
|
24966
|
+
? this.datetimepicker._datepickerInput._disabledChange
|
24967
|
+
: of([], asyncScheduler);
|
24968
|
+
this._stateChanges.unsubscribe();
|
24969
|
+
this._stateChanges = merge(this._intl.changes, datepickerDisabled, inputDisabled).subscribe(() => this._changeDetectorRef.markForCheck());
|
24970
|
+
}
|
24971
|
+
};
|
24972
|
+
GIPIDatetimepickerToggleComponent.ctorParameters = () => [
|
24973
|
+
{ type: MatDatepickerIntl$1 },
|
24974
|
+
{ type: ChangeDetectorRef }
|
24975
|
+
];
|
24976
|
+
__decorate([
|
24977
|
+
Input('for'),
|
24978
|
+
__metadata("design:type", GIPIDatetimepickerComponent)
|
24979
|
+
], GIPIDatetimepickerToggleComponent.prototype, "datetimepicker", void 0);
|
24980
|
+
__decorate([
|
24981
|
+
Input(),
|
24982
|
+
__metadata("design:type", Boolean),
|
24983
|
+
__metadata("design:paramtypes", [Boolean])
|
24984
|
+
], GIPIDatetimepickerToggleComponent.prototype, "disabled", null);
|
24985
|
+
GIPIDatetimepickerToggleComponent = __decorate([
|
24986
|
+
Component({
|
24987
|
+
selector: 'gipi-mat-datetime-picker-toggle',
|
24988
|
+
exportAs: 'gipiDatetimePickerToggle',
|
24989
|
+
template: "<button [attr.aria-label]=\"_intl.openCalendarLabel\"\n [disabled]=\"disabled\"\n mat-icon-button\n type=\"button\">\n <mat-icon [ngSwitch]=\"datetimepicker.type\">\n <svg *ngSwitchCase=\"'time'\"\n fill=\"currentColor\"\n focusable=\"false\"\n height=\"100%\"\n style=\"vertical-align: top\"\n viewBox=\"0 0 24 24\"\n width=\"100%\">\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 fill=\"currentColor\"\n focusable=\"false\"\n height=\"100%\"\n style=\"vertical-align: top\"\n viewBox=\"0 0 24 24\"\n width=\"100%\">\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 fill=\"currentColor\"\n focusable=\"false\"\n height=\"100%\"\n style=\"vertical-align: top\"\n viewBox=\"0 0 24 24\"\n width=\"100%\">\n <path d=\"M0 0h24v24H0z\"\n 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 </mat-icon>\n</button>",
|
24990
|
+
encapsulation: ViewEncapsulation.None,
|
24991
|
+
changeDetection: ChangeDetectionStrategy.OnPush,
|
24992
|
+
preserveWhitespaces: false,
|
24993
|
+
host: {
|
24994
|
+
class: 'gipi-mat-datetime-picker-toggle',
|
24995
|
+
// Bind the `click` on the host, rather than the inner `button`, so that we can call `stopPropagation`
|
24996
|
+
// on it without affecting the user's `click` handlers. We need to stop it so that the input doesn't
|
24997
|
+
// get focused automatically by the form field (See https://github.com/angular/components/pull/21856).
|
24998
|
+
'(click)': '_open($event)',
|
24999
|
+
}
|
25000
|
+
}),
|
25001
|
+
__metadata("design:paramtypes", [MatDatepickerIntl$1,
|
25002
|
+
ChangeDetectorRef])
|
25003
|
+
], GIPIDatetimepickerToggleComponent);
|
25004
|
+
|
25005
|
+
var GIPIDateAndTimePickerComponent_1;
|
25006
|
+
let nextUniqueId$q = 0;
|
25007
|
+
let GIPIDateAndTimePickerComponent = GIPIDateAndTimePickerComponent_1 = class GIPIDateAndTimePickerComponent {
|
25008
|
+
constructor(elementRef, _changeDetectorRef) {
|
25009
|
+
this.elementRef = elementRef;
|
25010
|
+
this._changeDetectorRef = _changeDetectorRef;
|
25011
|
+
this._name = `gipi-mat-datetime-picker-${nextUniqueId$q++}`;
|
25012
|
+
this.id = this._name;
|
25013
|
+
this.name = this._name;
|
25014
|
+
this.label = '';
|
25015
|
+
this.placeholder = '';
|
25016
|
+
this.timeInterval = 1;
|
25017
|
+
this.help = '';
|
25018
|
+
this._required = false;
|
25019
|
+
this._disabled = false;
|
25020
|
+
this._type = 'datetime';
|
25021
|
+
this.onChange = () => { };
|
25022
|
+
this.onTouched = () => { };
|
25023
|
+
}
|
25024
|
+
get required() {
|
25025
|
+
return this._required;
|
25026
|
+
}
|
25027
|
+
set required(value) {
|
25028
|
+
this._required = coerceBooleanProperty(value);
|
25029
|
+
}
|
25030
|
+
get disabled() {
|
25031
|
+
return this._disabled;
|
25032
|
+
}
|
25033
|
+
set disabled(value) {
|
25034
|
+
this._disabled = coerceBooleanProperty(value);
|
25035
|
+
}
|
25036
|
+
get value() {
|
25037
|
+
return this._value;
|
25038
|
+
}
|
25039
|
+
set value(value) {
|
25040
|
+
if (value instanceof Date) {
|
25041
|
+
this._value = value;
|
25042
|
+
}
|
25043
|
+
else {
|
25044
|
+
this._value = new Date(value);
|
25045
|
+
}
|
25046
|
+
this.onChange(this._value);
|
25047
|
+
this.onTouched(this._value);
|
25048
|
+
}
|
25049
|
+
get type() {
|
25050
|
+
return this._type;
|
25051
|
+
}
|
25052
|
+
set type(value) {
|
25053
|
+
this._type = value || 'datetime';
|
25054
|
+
}
|
25055
|
+
ngOnInit() { }
|
25056
|
+
writeValue(value) {
|
25057
|
+
this._value = value;
|
25058
|
+
}
|
25059
|
+
registerOnChange(fn) {
|
25060
|
+
this.onChange = fn;
|
25061
|
+
}
|
25062
|
+
registerOnTouched(fn) {
|
25063
|
+
this.onTouched = fn;
|
25064
|
+
}
|
25065
|
+
setDisabledState(isDisabled) {
|
25066
|
+
this.disabled = isDisabled;
|
25067
|
+
this._changeDetectorRef.markForCheck();
|
25068
|
+
}
|
25069
|
+
toggleDatetimePicker(event) {
|
25070
|
+
if (!ObjectUtil.isNull(this.GIPIDatetimepickerToggleRef)) {
|
25071
|
+
this.GIPIDatetimepickerToggleRef._open(event);
|
25072
|
+
}
|
25073
|
+
}
|
25074
|
+
};
|
25075
|
+
GIPIDateAndTimePickerComponent.ctorParameters = () => [
|
25076
|
+
{ type: ElementRef },
|
25077
|
+
{ type: ChangeDetectorRef }
|
25078
|
+
];
|
25079
|
+
__decorate([
|
25080
|
+
ViewChild('dateTimePickerToggle', { static: true }),
|
25081
|
+
__metadata("design:type", GIPIDatetimepickerToggleComponent)
|
25082
|
+
], GIPIDateAndTimePickerComponent.prototype, "GIPIDatetimepickerToggleRef", void 0);
|
25083
|
+
__decorate([
|
25084
|
+
Input(),
|
25085
|
+
__metadata("design:type", String)
|
25086
|
+
], GIPIDateAndTimePickerComponent.prototype, "id", void 0);
|
25087
|
+
__decorate([
|
25088
|
+
Input(),
|
25089
|
+
__metadata("design:type", String)
|
25090
|
+
], GIPIDateAndTimePickerComponent.prototype, "name", void 0);
|
25091
|
+
__decorate([
|
25092
|
+
Input(),
|
25093
|
+
__metadata("design:type", String)
|
25094
|
+
], GIPIDateAndTimePickerComponent.prototype, "label", void 0);
|
25095
|
+
__decorate([
|
25096
|
+
Input(),
|
25097
|
+
__metadata("design:type", String)
|
25098
|
+
], GIPIDateAndTimePickerComponent.prototype, "placeholder", void 0);
|
25099
|
+
__decorate([
|
25100
|
+
Input('min'),
|
25101
|
+
__metadata("design:type", Date)
|
25102
|
+
], GIPIDateAndTimePickerComponent.prototype, "minDate", void 0);
|
25103
|
+
__decorate([
|
25104
|
+
Input('max'),
|
25105
|
+
__metadata("design:type", Date)
|
25106
|
+
], GIPIDateAndTimePickerComponent.prototype, "maxDate", void 0);
|
25107
|
+
__decorate([
|
25108
|
+
Input(),
|
25109
|
+
__metadata("design:type", Number)
|
25110
|
+
], GIPIDateAndTimePickerComponent.prototype, "timeInterval", void 0);
|
25111
|
+
__decorate([
|
25112
|
+
Input(),
|
25113
|
+
__metadata("design:type", String)
|
25114
|
+
], GIPIDateAndTimePickerComponent.prototype, "help", void 0);
|
25115
|
+
__decorate([
|
25116
|
+
Input(),
|
25117
|
+
__metadata("design:type", Boolean),
|
25118
|
+
__metadata("design:paramtypes", [Boolean])
|
25119
|
+
], GIPIDateAndTimePickerComponent.prototype, "required", null);
|
25120
|
+
__decorate([
|
25121
|
+
Input(),
|
25122
|
+
__metadata("design:type", Boolean),
|
25123
|
+
__metadata("design:paramtypes", [Boolean])
|
25124
|
+
], GIPIDateAndTimePickerComponent.prototype, "disabled", null);
|
25125
|
+
__decorate([
|
25126
|
+
Input(),
|
25127
|
+
__metadata("design:type", Object),
|
25128
|
+
__metadata("design:paramtypes", [Object])
|
25129
|
+
], GIPIDateAndTimePickerComponent.prototype, "value", null);
|
25130
|
+
__decorate([
|
25131
|
+
Input(),
|
25132
|
+
__metadata("design:type", String),
|
25133
|
+
__metadata("design:paramtypes", [String])
|
25134
|
+
], GIPIDateAndTimePickerComponent.prototype, "type", null);
|
25135
|
+
GIPIDateAndTimePickerComponent = GIPIDateAndTimePickerComponent_1 = __decorate([
|
25136
|
+
Component({
|
25137
|
+
selector: 'gipi-datetime-picker',
|
25138
|
+
exportAs: 'gipiDatetimePicker',
|
25139
|
+
template: "<div class=\"datetime-wrapper\">\n\n <label *ngIf=\"label\"\n class=\"datetime-label\"\n [attr.for]=\"id\">\n {{ label }}\n <span *ngIf=\"required\"> * </span>\n </label>\n\n <div class=\"datetime-content\">\n\n <input inputRef\n class=\"datetime-element\"\n [attr.id]=\"id\"\n [attr.name]=\"name\"\n [placeholder]=\"placeholder\"\n [min]=\"minDate\"\n [max]=\"maxDate\"\n [disabled]=\"disabled\"\n [required]=\"required\"\n [readOnly]=\"true\"\n [autocomplete]=\"'off'\"\n [(ngModel)]=\"value\"\n [value]=\"value\"\n [gipiMatDatetimePicker]=\"datetimePicker\"\n (click)=\"toggleDatetimePicker($event)\" />\n\n <div class=\"suffix\">\n <gipi-mat-datetime-picker-toggle #dateTimePickerToggle\n [for]=\"datetimePicker\">\n </gipi-mat-datetime-picker-toggle>\n </div>\n\n <gipi-mat-datetime-picker #datetimePicker\n [openOnFocus]=\"false\"\n [mode]=\"'portrait'\"\n [multiYearSelector]=\"true\"\n [disabled]=\"disabled\"\n [timeInterval]=\"timeInterval\"\n [type]=\"type\">\n </gipi-mat-datetime-picker>\n </div>\n\n <small *ngIf=\"help\"\n class=\"datetime-help\">\n {{ help }}\n </small>\n</div>",
|
25140
|
+
providers: [
|
25141
|
+
{
|
25142
|
+
provide: NG_VALUE_ACCESSOR,
|
25143
|
+
useExisting: forwardRef(() => GIPIDateAndTimePickerComponent_1),
|
25144
|
+
multi: true
|
25145
|
+
},
|
25146
|
+
],
|
25147
|
+
host: {
|
25148
|
+
'class': 'gipi-mat-datetime-picker',
|
25149
|
+
},
|
25150
|
+
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.datetime-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.datetime-wrapper .datetime-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.datetime-wrapper .datetime-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.datetime-wrapper .datetime-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:6px;cursor:pointer}.datetime-wrapper .datetime-content .datetime-element{padding:.75rem .8rem;border:none;outline:0;background-color:transparent;flex:1;color:inherit;caret-color:#696969;min-width:0;cursor:pointer}.datetime-wrapper .datetime-content:not(.datetime-element:disabled):has(.datetime-element:enabled:hover),.datetime-wrapper .datetime-content:not(.datetime-element:disabled):has(.suffix:hover){border-color:#6d6f73}.datetime-wrapper .datetime-content:not(.datetime-element:disabled):has(.datetime-element:enabled:focus){outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #e0e1e2;border-color:#6d6f73}.datetime-wrapper .datetime-content:has(.datetime-element:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}.datetime-wrapper .datetime-content .datetime-element:disabled{cursor:not-allowed}.datetime-wrapper .datetime-content .suffix{display:flex;align-items:center;justify-content:center;padding-block:.75rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-right:.8rem}.datetime-wrapper .datetime-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}::ng-deep .gipi-mat-datetime-picker-toggle{width:2rem!important;height:2rem!important;line-height:2rem!important}::ng-deep .gipi-mat-datetime-picker-toggle>button{width:2rem!important;height:2rem!important;line-height:2rem!important}::ng-deep .gipi-mat-datetime-picker-toggle>button .mat-button-wrapper>mat-icon{width:2rem!important;height:2rem!important;font-size:2rem!important;line-height:2rem!important;color:#696969!important}::ng-deep .gipi-mat-datetime-picker-toggle>button .mat-button-focus-overlay,::ng-deep .gipi-mat-datetime-picker-toggle>button .mat-button-ripple{display:none!important}::ng-deep .gipi-mat-datetime-picker-content{border-radius:6px!important}::ng-deep .gipi-mat-datetime-picker-calendar-header{border-top-left-radius:6px!important;border-top-right-radius:6px!important}::ng-deep .gipi-mat-datetime-picker-calendar-body-active>.gipi-mat-datetime-picker-calendar-body-cell-content:not(.gipi-mat-datetime-picker-calendar-body-selected){background-color:#f3e7e7!important;color:#e0313e!important}::ng-deep .gipi-mat-datetime-picker-calendar-body-cell .gipi-mat-datetime-picker-calendar-body-today{border-color:#e0313e!important}::ng-deep .gipi-mat-datetime-picker-calendar-body-cell .gipi-mat-datetime-picker-calendar-body-today.gipi-mat-datetime-picker-calendar-body-selected{box-shadow:inset 0 0 0 1px #fff!important}::ng-deep .gipi-mat-datetime-picker-calendar-body-cell .gipi-mat-datetime-picker-calendar-body-selected{background-color:#e0313e!important;color:#fff!important}::ng-deep .gipi-mat-datetime-picker-clock{background-color:#f5f5f6!important}::ng-deep .gipi-mat-datetime-picker-clock-center,::ng-deep .gipi-mat-datetime-picker-clock-hand,::ng-deep .gipi-mat-datetime-picker-clock-hand::before{background-color:#e0313e!important}::ng-deep .gipi-mat-datetime-picker-clock-cell.gipi-mat-datetime-picker-clock-cell-selected{color:#fff!important;background-color:#e0313e!important}::-webkit-input-placeholder{color:#bbbdc1}:-moz-placeholder{color:#bbbdc1}::-moz-placeholder{color:#bbbdc1}:-ms-input-placeholder{color:#bbbdc1}"]
|
25151
|
+
}),
|
25152
|
+
__metadata("design:paramtypes", [ElementRef,
|
25153
|
+
ChangeDetectorRef])
|
25154
|
+
], GIPIDateAndTimePickerComponent);
|
25155
|
+
|
25156
|
+
const CLOCK_RADIUS = 50;
|
25157
|
+
const CLOCK_INNER_RADIUS = 27.5;
|
25158
|
+
const CLOCK_OUTER_RADIUS = 41.25;
|
25159
|
+
const CLOCK_TICK_RADIUS = 7.0833;
|
25160
|
+
/**
|
25161
|
+
* A clock that is used as part of the datepicker.
|
25162
|
+
* @docs-private
|
25163
|
+
*/
|
25164
|
+
let GIPIDatetimepickerClockComponent = class GIPIDatetimepickerClockComponent {
|
25165
|
+
constructor(_element, _adapter) {
|
25166
|
+
this._element = _element;
|
25167
|
+
this._adapter = _adapter;
|
25168
|
+
/** Hours and Minutes representing the clock view. */
|
25169
|
+
this._hours = [];
|
25170
|
+
this._minutes = [];
|
25171
|
+
/** Whether the clock is in hour view. */
|
25172
|
+
this._hourView = true;
|
25173
|
+
this._timeChanged = false;
|
25174
|
+
this.interval = 1;
|
25175
|
+
this.twelvehour = false;
|
25176
|
+
/** Emits when the currently selected date changes. */
|
25177
|
+
this.selectedChange = new EventEmitter();
|
25178
|
+
this.activeDateChange = new EventEmitter();
|
25179
|
+
this._userSelection = new EventEmitter();
|
25180
|
+
this.mouseMoveListener = (event) => this._handleMousemove(event);
|
25181
|
+
this.mouseUpListener = () => this._handleMouseup();
|
25182
|
+
}
|
25183
|
+
get activeDate() {
|
25184
|
+
return this._activeDate;
|
25185
|
+
}
|
25186
|
+
set activeDate(value) {
|
25187
|
+
let oldActiveDate = this._activeDate;
|
25188
|
+
this._activeDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
|
25189
|
+
if (!this._adapter.sameMinute(oldActiveDate, this._activeDate)) {
|
25190
|
+
this._init();
|
25191
|
+
}
|
25192
|
+
}
|
25193
|
+
get selected() {
|
25194
|
+
return this._selected;
|
25195
|
+
}
|
25196
|
+
set selected(value) {
|
25197
|
+
this._selected = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
25198
|
+
if (this._selected) {
|
25199
|
+
this.activeDate = this._selected;
|
25200
|
+
}
|
25201
|
+
}
|
25202
|
+
get minDate() {
|
25203
|
+
return this._minDate;
|
25204
|
+
}
|
25205
|
+
set minDate(value) {
|
25206
|
+
this._minDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
25207
|
+
}
|
25208
|
+
get maxDate() {
|
25209
|
+
return this._maxDate;
|
25210
|
+
}
|
25211
|
+
set maxDate(value) {
|
25212
|
+
this._maxDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
|
25213
|
+
}
|
25214
|
+
/** Whether the clock should be started in hour or minute view. */
|
25215
|
+
set startView(value) {
|
25216
|
+
this._hourView = value != 'minute';
|
25217
|
+
}
|
25218
|
+
get _hand() {
|
25219
|
+
let hour = this._adapter.getHour(this.activeDate);
|
25220
|
+
if (!!this.twelvehour) {
|
25221
|
+
if (hour === 0) {
|
25222
|
+
hour = 24;
|
25223
|
+
}
|
25224
|
+
this._selectedHour = hour > 12 ? hour - 12 : hour;
|
25225
|
+
}
|
25226
|
+
else {
|
25227
|
+
this._selectedHour = hour;
|
25228
|
+
}
|
25229
|
+
this._selectedMinute = this._adapter.getMinute(this.activeDate);
|
25230
|
+
let deg = 0;
|
25231
|
+
let radius = CLOCK_OUTER_RADIUS;
|
25232
|
+
if (this._hourView) {
|
25233
|
+
let outer = this._selectedHour > 0 && this._selectedHour < 13;
|
25234
|
+
radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
|
25235
|
+
if (this.twelvehour) {
|
25236
|
+
radius = CLOCK_OUTER_RADIUS;
|
25237
|
+
}
|
25238
|
+
deg = Math.round(this._selectedHour * (360 / (24 / 2)));
|
25239
|
+
}
|
25240
|
+
else {
|
25241
|
+
deg = Math.round(this._selectedMinute * (360 / 60));
|
25242
|
+
}
|
25243
|
+
return {
|
25244
|
+
transform: `rotate(${deg}deg)`,
|
25245
|
+
height: `${radius}%`,
|
25246
|
+
'margin-top': `${50 - radius}%`,
|
25247
|
+
};
|
25248
|
+
}
|
25249
|
+
ngAfterContentInit() {
|
25250
|
+
this.activeDate = this._activeDate || this._adapter.today();
|
25251
|
+
this._init();
|
25252
|
+
}
|
25253
|
+
/** Handles mousedown events on the clock body. */
|
25254
|
+
_handleMousedown(event) {
|
25255
|
+
this._timeChanged = false;
|
25256
|
+
this.setTime(event);
|
25257
|
+
document.addEventListener('mousemove', this.mouseMoveListener);
|
25258
|
+
document.addEventListener('touchmove', this.mouseMoveListener);
|
25259
|
+
document.addEventListener('mouseup', this.mouseUpListener);
|
25260
|
+
document.addEventListener('touchend', this.mouseUpListener);
|
25261
|
+
}
|
25262
|
+
_handleMousemove(event) {
|
25263
|
+
event.preventDefault();
|
25264
|
+
this.setTime(event);
|
25265
|
+
}
|
25266
|
+
_handleMouseup() {
|
25267
|
+
document.removeEventListener('mousemove', this.mouseMoveListener);
|
25268
|
+
document.removeEventListener('touchmove', this.mouseMoveListener);
|
25269
|
+
document.removeEventListener('mouseup', this.mouseUpListener);
|
25270
|
+
document.removeEventListener('touchend', this.mouseUpListener);
|
25271
|
+
if (this._timeChanged) {
|
25272
|
+
this.selectedChange.emit(this.activeDate);
|
25273
|
+
if (!this._hourView) {
|
25274
|
+
this._userSelection.emit();
|
25275
|
+
}
|
25276
|
+
}
|
25277
|
+
}
|
25278
|
+
/** Initializes this clock view. */
|
25279
|
+
_init() {
|
25280
|
+
this._hours.length = 0;
|
25281
|
+
this._minutes.length = 0;
|
25282
|
+
let hourNames = this._adapter.getHourNames();
|
25283
|
+
let minuteNames = this._adapter.getMinuteNames();
|
25284
|
+
if (this.twelvehour) {
|
25285
|
+
for (let i = 1; i < hourNames.length / 2 + 1; i++) {
|
25286
|
+
let radian = (i / 6) * Math.PI;
|
25287
|
+
let radius = CLOCK_OUTER_RADIUS;
|
25288
|
+
const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i + 1, 0);
|
25289
|
+
let enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
|
25290
|
+
(!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0);
|
25291
|
+
this._hours.push({
|
25292
|
+
value: i,
|
25293
|
+
displayValue: i === 0 ? '00' : hourNames[i],
|
25294
|
+
enabled: enabled,
|
25295
|
+
top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
|
25296
|
+
left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS,
|
25297
|
+
});
|
25298
|
+
}
|
25299
|
+
}
|
25300
|
+
else {
|
25301
|
+
for (let i = 0; i < hourNames.length; i++) {
|
25302
|
+
let radian = (i / 6) * Math.PI;
|
25303
|
+
let outer = i > 0 && i < 13, radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
|
25304
|
+
const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i, 0);
|
25305
|
+
let enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate, false) >= 0) &&
|
25306
|
+
(!this.maxDate || this._adapter.compareDatetime(date, this.maxDate, false) <= 0) &&
|
25307
|
+
(!this.dateFilter || this.dateFilter(date, GIPIDatetimepickerFilterType.HOUR));
|
25308
|
+
this._hours.push({
|
25309
|
+
value: i,
|
25310
|
+
displayValue: i === 0 ? '00' : hourNames[i],
|
25311
|
+
enabled: enabled,
|
25312
|
+
top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
|
25313
|
+
left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS,
|
25314
|
+
fontSize: i > 0 && i < 13 ? '' : '80%',
|
25315
|
+
});
|
25316
|
+
}
|
25317
|
+
}
|
25318
|
+
for (let i = 0; i < minuteNames.length; i += 5) {
|
25319
|
+
let radian = (i / 30) * Math.PI;
|
25320
|
+
const date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), this._adapter.getHour(this.activeDate), i);
|
25321
|
+
let enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
|
25322
|
+
(!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0) &&
|
25323
|
+
(!this.dateFilter || this.dateFilter(date, GIPIDatetimepickerFilterType.MINUTE));
|
25324
|
+
this._minutes.push({
|
25325
|
+
value: i,
|
25326
|
+
displayValue: i === 0 ? '00' : minuteNames[i],
|
25327
|
+
enabled: enabled,
|
25328
|
+
top: CLOCK_RADIUS - Math.cos(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS,
|
25329
|
+
left: CLOCK_RADIUS + Math.sin(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS,
|
25330
|
+
});
|
25331
|
+
}
|
25332
|
+
}
|
25333
|
+
/**
|
25334
|
+
* Set Time
|
25335
|
+
* @param event
|
25336
|
+
*/
|
25337
|
+
setTime(event) {
|
25338
|
+
var _a, _b;
|
25339
|
+
let trigger = this._element.nativeElement;
|
25340
|
+
let triggerRect = trigger.getBoundingClientRect();
|
25341
|
+
let width = trigger.offsetWidth;
|
25342
|
+
let height = trigger.offsetHeight;
|
25343
|
+
let pageX = event.pageX !== undefined ? event.pageX : event.touches[0].pageX;
|
25344
|
+
let pageY = event.pageY !== undefined ? event.pageY : event.touches[0].pageY;
|
25345
|
+
let x = width / 2 - (pageX - triggerRect.left - window.pageXOffset);
|
25346
|
+
let y = height / 2 - (pageY - triggerRect.top - window.pageYOffset);
|
25347
|
+
let radian = Math.atan2(-x, y);
|
25348
|
+
let unit = Math.PI / (this._hourView ? 6 : this.interval ? 30 / this.interval : 30);
|
25349
|
+
let z = Math.sqrt(x * x + y * y);
|
25350
|
+
let outer = this._hourView && z > (width * (CLOCK_OUTER_RADIUS / 100) + width * (CLOCK_INNER_RADIUS / 100)) / 2;
|
25351
|
+
if (radian < 0) {
|
25352
|
+
radian = Math.PI * 2 + radian;
|
25353
|
+
}
|
25354
|
+
let value = Math.round(radian / unit);
|
25355
|
+
let date;
|
25356
|
+
if (this._hourView) {
|
25357
|
+
if (this.twelvehour) {
|
25358
|
+
value = value === 0 ? 12 : value;
|
25359
|
+
}
|
25360
|
+
else {
|
25361
|
+
if (value === 12) {
|
25362
|
+
value = 0;
|
25363
|
+
}
|
25364
|
+
value = outer ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12;
|
25365
|
+
}
|
25366
|
+
// Don't close the hours view if an invalid hour is clicked.
|
25367
|
+
if (!((_a = this._hours.find((h) => (h === null || h === void 0 ? void 0 : h['value']) === value)) === null || _a === void 0 ? void 0 : _a['enabled'])) {
|
25368
|
+
return;
|
25369
|
+
}
|
25370
|
+
date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), value, this._adapter.getMinute(this.activeDate));
|
25371
|
+
}
|
25372
|
+
else {
|
25373
|
+
if (this.interval) {
|
25374
|
+
value *= this.interval;
|
25375
|
+
}
|
25376
|
+
if (value === 60) {
|
25377
|
+
value = 0;
|
25378
|
+
}
|
25379
|
+
// Don't close the minutes view if an invalid minute is clicked.
|
25380
|
+
if (!((_b = this._minutes.find((m) => (m === null || m === void 0 ? void 0 : m['value']) === value)) === null || _b === void 0 ? void 0 : _b['enabled'])) {
|
25381
|
+
return;
|
25382
|
+
}
|
25383
|
+
date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), this._adapter.getHour(this.activeDate), value);
|
25384
|
+
}
|
25385
|
+
this._timeChanged = true;
|
25386
|
+
this.activeDate = date;
|
25387
|
+
this.activeDateChange.emit(this.activeDate);
|
25388
|
+
}
|
25389
|
+
};
|
25390
|
+
GIPIDatetimepickerClockComponent.ctorParameters = () => [
|
25391
|
+
{ type: ElementRef },
|
25392
|
+
{ type: GIPIDatetimeAdapter }
|
25393
|
+
];
|
25394
|
+
__decorate([
|
25395
|
+
Input(),
|
25396
|
+
__metadata("design:type", Function)
|
25397
|
+
], GIPIDatetimepickerClockComponent.prototype, "dateFilter", void 0);
|
25398
|
+
__decorate([
|
25399
|
+
Input(),
|
25400
|
+
__metadata("design:type", Number)
|
25401
|
+
], GIPIDatetimepickerClockComponent.prototype, "interval", void 0);
|
25402
|
+
__decorate([
|
25403
|
+
Input(),
|
25404
|
+
__metadata("design:type", Boolean)
|
25405
|
+
], GIPIDatetimepickerClockComponent.prototype, "twelvehour", void 0);
|
25406
|
+
__decorate([
|
25407
|
+
Input(),
|
25408
|
+
__metadata("design:type", Object),
|
25409
|
+
__metadata("design:paramtypes", [Object])
|
25410
|
+
], GIPIDatetimepickerClockComponent.prototype, "activeDate", null);
|
25411
|
+
__decorate([
|
25412
|
+
Input(),
|
25413
|
+
__metadata("design:type", Object),
|
25414
|
+
__metadata("design:paramtypes", [Object])
|
25415
|
+
], GIPIDatetimepickerClockComponent.prototype, "selected", null);
|
25416
|
+
__decorate([
|
25417
|
+
Input(),
|
25418
|
+
__metadata("design:type", Object),
|
25419
|
+
__metadata("design:paramtypes", [Object])
|
25420
|
+
], GIPIDatetimepickerClockComponent.prototype, "minDate", null);
|
25421
|
+
__decorate([
|
25422
|
+
Input(),
|
25423
|
+
__metadata("design:type", Object),
|
25424
|
+
__metadata("design:paramtypes", [Object])
|
25425
|
+
], GIPIDatetimepickerClockComponent.prototype, "maxDate", null);
|
25426
|
+
__decorate([
|
25427
|
+
Input(),
|
25428
|
+
__metadata("design:type", String),
|
25429
|
+
__metadata("design:paramtypes", [String])
|
25430
|
+
], GIPIDatetimepickerClockComponent.prototype, "startView", null);
|
25431
|
+
__decorate([
|
25432
|
+
Output(),
|
25433
|
+
__metadata("design:type", Object)
|
25434
|
+
], GIPIDatetimepickerClockComponent.prototype, "selectedChange", void 0);
|
25435
|
+
__decorate([
|
25436
|
+
Output(),
|
25437
|
+
__metadata("design:type", Object)
|
25438
|
+
], GIPIDatetimepickerClockComponent.prototype, "activeDateChange", void 0);
|
25439
|
+
__decorate([
|
25440
|
+
Output(),
|
25441
|
+
__metadata("design:type", Object)
|
25442
|
+
], GIPIDatetimepickerClockComponent.prototype, "_userSelection", void 0);
|
25443
|
+
GIPIDatetimepickerClockComponent = __decorate([
|
25444
|
+
Component({
|
25445
|
+
selector: 'gipi-mat-datetime-picker-clock',
|
25446
|
+
template: "<div class=\"gipi-mat-datetime-picker-clock\">\n <div class=\"gipi-mat-datetime-picker-clock-center\"></div>\n <div [ngStyle]=\"_hand\"\n class=\"gipi-mat-datetime-picker-clock-hand\"></div>\n <div [class.active]=\"_hourView\"\n class=\"gipi-mat-datetime-picker-clock-hours\">\n <div *ngFor=\"let item of _hours\"\n [class.gipi-mat-datetime-picker-clock-cell-disabled]=\"!item.enabled\"\n [class.gipi-mat-datetime-picker-clock-cell-selected]=\"_selectedHour === item.value\"\n [style.fontSize]=\"item.fontSize\"\n [style.left]=\"item.left + '%'\"\n [style.top]=\"item.top + '%'\"\n class=\"gipi-mat-datetime-picker-clock-cell\">\n {{ item.displayValue }}\n </div>\n </div>\n <div [class.active]=\"!_hourView\"\n class=\"gipi-mat-datetime-picker-clock-minutes\">\n <div *ngFor=\"let item of _minutes\"\n [class.gipi-mat-datetime-picker-clock-cell-disabled]=\"!item.enabled\"\n [class.gipi-mat-datetime-picker-clock-cell-selected]=\"_selectedMinute === item.value\"\n [style.left]=\"item.left + '%'\"\n [style.top]=\"item.top + '%'\"\n class=\"gipi-mat-datetime-picker-clock-cell\">\n {{ item.displayValue }}\n </div>\n </div>\n</div>",
|
25447
|
+
host: {
|
25448
|
+
role: 'clock',
|
25449
|
+
'(mousedown)': '_handleMousedown($event)',
|
25450
|
+
},
|
25451
|
+
styles: [":host{position:relative;display:block;min-width:224px;margin:8px;font-size:14px;box-sizing:border-box;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.gipi-mat-datetime-picker-clock{position:relative;width:100%;height:0;padding-top:100%;background-color:#e0e0e0;border-radius:50%}.gipi-mat-datetime-picker-clock-center{position:absolute;top:50%;left:50%;width:2%;height:2%;margin:-1%;border-radius:50%}.gipi-mat-datetime-picker-clock-hand{position:absolute;top:0;right:0;bottom:0;left:0;width:1px;margin:0 auto;transform-origin:bottom}.gipi-mat-datetime-picker-clock-hand::before{content:'';position:absolute;top:-4px;left:-4px;width:8px;height:8px;border-radius:50%}.gipi-mat-datetime-picker-clock-hours,.gipi-mat-datetime-picker-clock-minutes{position:absolute;top:0;left:0;width:100%;height:100%;opacity:0;visibility:hidden;transition:350ms;transform:scale(1.2)}.gipi-mat-datetime-picker-clock-hours.active,.gipi-mat-datetime-picker-clock-minutes.active{opacity:1;visibility:visible;transform:scale(1)}.gipi-mat-datetime-picker-clock-minutes{transform:scale(.8)}.gipi-mat-datetime-picker-clock-cell{position:absolute;display:flex;width:14.1666%;height:14.1666%;color:rgba(0,0,0,.87);justify-content:center;box-sizing:border-box;border-radius:50%;align-items:center;cursor:pointer}.gipi-mat-datetime-picker-clock-cell:not(.gipi-mat-datetime-picker-clock-cell-selected):not(.gipi-mat-datetime-picker-clock-cell-disabled):hover{background-color:rgba(0,0,0,.1)}.gipi-mat-datetime-picker-clock-cell.gipi-mat-datetime-picker-clock-cell-disabled{color:rgba(0,0,0,.38);pointer-events:none}.gipi-mat-datetime-picker-clock-cell.gipi-mat-datetime-picker-clock-cell-selected{color:#fff}"]
|
25452
|
+
}),
|
25453
|
+
__metadata("design:paramtypes", [ElementRef,
|
25454
|
+
GIPIDatetimeAdapter])
|
25455
|
+
], GIPIDatetimepickerClockComponent);
|
25456
|
+
|
25457
|
+
var GIPIDatetimepickerInputDirective_1;
|
25458
|
+
const GIPI_DATETIMEPICKER_VALUE_ACCESSOR = {
|
25459
|
+
provide: NG_VALUE_ACCESSOR,
|
25460
|
+
useExisting: forwardRef(() => GIPIDatetimepickerInputDirective),
|
25461
|
+
multi: true,
|
25462
|
+
};
|
25463
|
+
const GIPI_DATETIMEPICKER_VALIDATORS = {
|
25464
|
+
provide: NG_VALIDATORS,
|
25465
|
+
useExisting: forwardRef(() => GIPIDatetimepickerInputDirective),
|
25466
|
+
multi: true,
|
25467
|
+
};
|
25468
|
+
/**
|
25469
|
+
* An event used for datepicker input and change events. We don't always have access to a native
|
25470
|
+
* input or change event because the event may have been triggered by the user clicking on the
|
25471
|
+
* calendar popup. For consistency, we always use MatDatepickerInputEvent instead.
|
25472
|
+
*/
|
25473
|
+
class GIPIDatetimepickerInputEvent {
|
25474
|
+
constructor(target, targetElement) {
|
25475
|
+
this.target = target;
|
25476
|
+
this.targetElement = targetElement;
|
25477
|
+
this.value = this.target.value;
|
25478
|
+
}
|
25479
|
+
}
|
25480
|
+
/** Directive used to connect an input to a MatDatepicker. */
|
25481
|
+
let GIPIDatetimepickerInputDirective = GIPIDatetimepickerInputDirective_1 = class GIPIDatetimepickerInputDirective {
|
25482
|
+
constructor(_elementRef, _dateAdapter, _dateFormats, _formField) {
|
25483
|
+
this._elementRef = _elementRef;
|
25484
|
+
this._dateAdapter = _dateAdapter;
|
25485
|
+
this._dateFormats = _dateFormats;
|
25486
|
+
this._formField = _formField;
|
25487
|
+
/** Emits when the value changes (either due to user input or programmatic change). */
|
25488
|
+
this._valueChange = new EventEmitter();
|
25489
|
+
/** Emits when the disabled state has changed */
|
25490
|
+
this._disabledChange = new EventEmitter();
|
25491
|
+
this._datepickerSubscription = Subscription.EMPTY;
|
25492
|
+
this._localeSubscription = Subscription.EMPTY;
|
25493
|
+
/** Whether the last value set on the input was valid. */
|
25494
|
+
this._lastValueValid = false;
|
25495
|
+
/** Emits when a `change` event is fired on this `<input>`. */
|
25496
|
+
this.dateChange = new EventEmitter();
|
25497
|
+
/** Emits when an `input` event is fired on this `<input>`. */
|
25498
|
+
this.dateInput = new EventEmitter();
|
25499
|
+
this._onTouched = () => { };
|
25500
|
+
this._cvaOnChange = () => { };
|
25501
|
+
this._validatorOnChange = () => { };
|
25502
|
+
/** The form control validator for whether the input parses. */
|
25503
|
+
this._parseValidator = () => {
|
25504
|
+
return this._lastValueValid
|
25505
|
+
? null
|
25506
|
+
: { matDatepickerParse: { text: this._elementRef.nativeElement.value } };
|
25507
|
+
};
|
25508
|
+
/** The form control validator for the min date. */
|
25509
|
+
this._minValidator = (control) => {
|
25510
|
+
const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
|
25511
|
+
return !this.min ||
|
25512
|
+
!controlValue ||
|
25513
|
+
this._dateAdapter.compareDatetime(this.min, controlValue) <= 0 ? null : { matDatepickerMin: { min: this.min, actual: controlValue } };
|
25514
|
+
};
|
25515
|
+
/** The form control validator for the max date. */
|
25516
|
+
this._maxValidator = (control) => {
|
25517
|
+
const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
|
25518
|
+
return !this.max ||
|
25519
|
+
!controlValue ||
|
25520
|
+
this._dateAdapter.compareDatetime(this.max, controlValue) >= 0 ? null : { matDatepickerMax: { max: this.max, actual: controlValue } };
|
25521
|
+
};
|
25522
|
+
/** The form control validator for the date filter. */
|
25523
|
+
this._filterValidator = (control) => {
|
25524
|
+
const controlValue = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(control.value));
|
25525
|
+
return !this._dateFilter ||
|
25526
|
+
!controlValue ||
|
25527
|
+
this._dateFilter(controlValue, GIPIDatetimepickerFilterType.DATE)
|
25528
|
+
? null
|
25529
|
+
: { matDatepickerFilter: true };
|
25530
|
+
};
|
25531
|
+
/** The combined form control validator for this input. */
|
25532
|
+
this._validator = Validators.compose([
|
25533
|
+
this._parseValidator,
|
25534
|
+
this._minValidator,
|
25535
|
+
this._maxValidator,
|
25536
|
+
this._filterValidator,
|
25537
|
+
]);
|
25538
|
+
if (!this._dateAdapter) {
|
25539
|
+
throw createMissingDateImplError$1('GIPIDatetimeAdapter');
|
25540
|
+
}
|
25541
|
+
if (!this._dateFormats) {
|
25542
|
+
throw createMissingDateImplError$1('GIPI_DATETIME_FORMATS');
|
25543
|
+
}
|
25544
|
+
// Update the displayed date when the locale changes.
|
25545
|
+
this._localeSubscription = _dateAdapter.localeChanges.subscribe(() => this.value = this.value);
|
25546
|
+
}
|
25547
|
+
/** The datepicker that this input is associated with. */
|
25548
|
+
set gipiMatDatetimePicker(value) {
|
25549
|
+
this.registerDatepicker(value);
|
25550
|
+
}
|
25551
|
+
set matDatepickerFilter(filter) {
|
25552
|
+
this._dateFilter = filter;
|
25553
|
+
this._validatorOnChange();
|
25554
|
+
}
|
25555
|
+
get value() {
|
25556
|
+
return this._value;
|
25557
|
+
}
|
25558
|
+
set value(value) {
|
25559
|
+
value = this._dateAdapter.deserialize(value);
|
25560
|
+
this._lastValueValid = !value || this._dateAdapter.isValid(value);
|
25561
|
+
value = this._dateAdapter.getValidDateOrNull(value);
|
25562
|
+
const oldDate = this.value;
|
25563
|
+
this._value = value;
|
25564
|
+
this._formatValue(value);
|
25565
|
+
// use timeout to ensure the datetimepicker is instantiated and we get the correct format
|
25566
|
+
setTimeout(() => {
|
25567
|
+
if (!this._dateAdapter.sameDatetime(oldDate, value)) {
|
25568
|
+
this._valueChange.emit(value);
|
25569
|
+
}
|
25570
|
+
});
|
25571
|
+
}
|
25572
|
+
get min() {
|
25573
|
+
return this._min;
|
25574
|
+
}
|
25575
|
+
set min(value) {
|
25576
|
+
this._min = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
25577
|
+
this._validatorOnChange();
|
25578
|
+
}
|
25579
|
+
get max() {
|
25580
|
+
return this._max;
|
25581
|
+
}
|
25582
|
+
set max(value) {
|
25583
|
+
this._max = this._dateAdapter.getValidDateOrNull(this._dateAdapter.deserialize(value));
|
25584
|
+
this._validatorOnChange();
|
25585
|
+
}
|
25586
|
+
get disabled() {
|
25587
|
+
return !!this._disabled;
|
25588
|
+
}
|
25589
|
+
set disabled(value) {
|
25590
|
+
const newValue = coerceBooleanProperty(value);
|
25591
|
+
if (this._disabled !== newValue) {
|
25592
|
+
this._disabled = newValue;
|
25593
|
+
this._disabledChange.emit(newValue);
|
25594
|
+
}
|
25595
|
+
}
|
25596
|
+
ngAfterContentInit() {
|
25597
|
+
if (this._datepicker) {
|
25598
|
+
this._datepickerSubscription = this._datepicker.selectedChanged.subscribe((selected) => {
|
25599
|
+
this.value = selected;
|
25600
|
+
this._cvaOnChange(selected);
|
25601
|
+
this._onTouched();
|
25602
|
+
this.dateInput.emit(new GIPIDatetimepickerInputEvent(this, this._elementRef.nativeElement));
|
25603
|
+
this.dateChange.emit(new GIPIDatetimepickerInputEvent(this, this._elementRef.nativeElement));
|
25604
|
+
});
|
25605
|
+
}
|
25606
|
+
}
|
25607
|
+
ngOnDestroy() {
|
25608
|
+
this._datepickerSubscription.unsubscribe();
|
25609
|
+
this._localeSubscription.unsubscribe();
|
25610
|
+
this._valueChange.complete();
|
25611
|
+
this._disabledChange.complete();
|
25612
|
+
}
|
25613
|
+
registerOnValidatorChange(fn) {
|
25614
|
+
this._validatorOnChange = fn;
|
25615
|
+
}
|
25616
|
+
validate(c) {
|
25617
|
+
return this._validator ? this._validator(c) : null;
|
25618
|
+
}
|
25619
|
+
/**
|
25620
|
+
* Gets the element that the datepicker popup should be connected to.
|
25621
|
+
* @return The element to connect the popup to.
|
25622
|
+
*/
|
25623
|
+
getConnectedOverlayOrigin() {
|
25624
|
+
return this._formField
|
25625
|
+
? this._formField.getConnectedOverlayOrigin()
|
25626
|
+
: this._elementRef;
|
25627
|
+
}
|
25628
|
+
// Implemented as part of ControlValueAccessor
|
25629
|
+
writeValue(value) {
|
25630
|
+
this.value = value;
|
25631
|
+
}
|
25632
|
+
// Implemented as part of ControlValueAccessor
|
25633
|
+
registerOnChange(fn) {
|
25634
|
+
this._cvaOnChange = fn;
|
25635
|
+
}
|
25636
|
+
// Implemented as part of ControlValueAccessor
|
25637
|
+
registerOnTouched(fn) {
|
25638
|
+
this._onTouched = fn;
|
25639
|
+
}
|
25640
|
+
// Implemented as part of ControlValueAccessor
|
25641
|
+
setDisabledState(disabled) {
|
25642
|
+
this.disabled = disabled;
|
25643
|
+
}
|
25644
|
+
_onKeydown(event) {
|
25645
|
+
if (event.altKey && event.keyCode === DOWN_ARROW) {
|
25646
|
+
this._datepicker.open();
|
25647
|
+
event.preventDefault();
|
25648
|
+
}
|
25649
|
+
}
|
25650
|
+
_onInput(value) {
|
25651
|
+
let date = this._dateAdapter.parse(value, this.getParseFormat());
|
25652
|
+
this._lastValueValid = !date || this._dateAdapter.isValid(date);
|
25653
|
+
date = this._dateAdapter.getValidDateOrNull(date);
|
25654
|
+
this._value = date;
|
25655
|
+
this._cvaOnChange(date);
|
25656
|
+
this._valueChange.emit(date);
|
25657
|
+
this.dateInput.emit(new GIPIDatetimepickerInputEvent(this, this._elementRef.nativeElement));
|
25658
|
+
}
|
25659
|
+
_onChange() {
|
25660
|
+
this.dateChange.emit(new GIPIDatetimepickerInputEvent(this, this._elementRef.nativeElement));
|
25661
|
+
}
|
25662
|
+
/** Handles blur events on the input. */
|
25663
|
+
_onBlur() {
|
25664
|
+
// Reformat the input only if we have a valid value.
|
25665
|
+
if (this.value) {
|
25666
|
+
this._formatValue(this.value);
|
25667
|
+
}
|
25668
|
+
this._onTouched();
|
25669
|
+
}
|
25670
|
+
registerDatepicker(value) {
|
25671
|
+
if (value) {
|
25672
|
+
this._datepicker = value;
|
25673
|
+
this._datepicker._registerInput(this);
|
25674
|
+
}
|
25675
|
+
}
|
25676
|
+
getDisplayFormat() {
|
25677
|
+
switch (this._datepicker.type) {
|
25678
|
+
case 'date': return this._dateFormats.display.dateInput;
|
25679
|
+
case 'datetime': return this._dateFormats.display.datetimeInput;
|
25680
|
+
case 'time': return this._dateFormats.display.timeInput;
|
25681
|
+
case 'month': return this._dateFormats.display.monthInput;
|
25682
|
+
}
|
25683
|
+
}
|
25684
|
+
getParseFormat() {
|
25685
|
+
let parseFormat;
|
25686
|
+
switch (this._datepicker.type) {
|
25687
|
+
case 'date':
|
25688
|
+
parseFormat = this._dateFormats.parse.dateInput;
|
25689
|
+
break;
|
25690
|
+
case 'datetime':
|
25691
|
+
parseFormat = this._dateFormats.parse.datetimeInput;
|
25692
|
+
break;
|
25693
|
+
case 'time':
|
25694
|
+
parseFormat = this._dateFormats.parse.timeInput;
|
25695
|
+
break;
|
25696
|
+
case 'month':
|
25697
|
+
parseFormat = this._dateFormats.parse.monthInput;
|
25698
|
+
break;
|
25699
|
+
}
|
25700
|
+
if (!parseFormat) {
|
25701
|
+
parseFormat = this._dateFormats.parse.dateInput;
|
25702
|
+
}
|
25703
|
+
return parseFormat;
|
25704
|
+
}
|
25705
|
+
/** Formats a value and sets it on the input element. */
|
25706
|
+
_formatValue(value) {
|
25707
|
+
this._elementRef.nativeElement.value = value
|
25708
|
+
? this._dateAdapter.format(value, this.getDisplayFormat())
|
25709
|
+
: '';
|
25710
|
+
}
|
25711
|
+
};
|
25712
|
+
GIPIDatetimepickerInputDirective.ctorParameters = () => [
|
25713
|
+
{ type: ElementRef },
|
25714
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
25715
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GIPI_DATETIME_FORMATS,] }] },
|
25716
|
+
{ type: MatFormField$1, decorators: [{ type: Optional }] }
|
25717
|
+
];
|
25718
|
+
__decorate([
|
25719
|
+
Input(),
|
25720
|
+
__metadata("design:type", GIPIDatetimepickerComponent),
|
25721
|
+
__metadata("design:paramtypes", [GIPIDatetimepickerComponent])
|
25722
|
+
], GIPIDatetimepickerInputDirective.prototype, "gipiMatDatetimePicker", null);
|
25723
|
+
__decorate([
|
25724
|
+
Input(),
|
25725
|
+
__metadata("design:type", Function),
|
25726
|
+
__metadata("design:paramtypes", [Function])
|
25727
|
+
], GIPIDatetimepickerInputDirective.prototype, "matDatepickerFilter", null);
|
25728
|
+
__decorate([
|
25729
|
+
Input(),
|
25730
|
+
__metadata("design:type", Object),
|
25731
|
+
__metadata("design:paramtypes", [Object])
|
25732
|
+
], GIPIDatetimepickerInputDirective.prototype, "value", null);
|
25733
|
+
__decorate([
|
25734
|
+
Input(),
|
25735
|
+
__metadata("design:type", Object),
|
25736
|
+
__metadata("design:paramtypes", [Object])
|
25737
|
+
], GIPIDatetimepickerInputDirective.prototype, "min", null);
|
25738
|
+
__decorate([
|
25739
|
+
Input(),
|
25740
|
+
__metadata("design:type", Object),
|
25741
|
+
__metadata("design:paramtypes", [Object])
|
25742
|
+
], GIPIDatetimepickerInputDirective.prototype, "max", null);
|
25743
|
+
__decorate([
|
25744
|
+
Input(),
|
25745
|
+
__metadata("design:type", Object),
|
25746
|
+
__metadata("design:paramtypes", [Object])
|
25747
|
+
], GIPIDatetimepickerInputDirective.prototype, "disabled", null);
|
25748
|
+
__decorate([
|
25749
|
+
Output(),
|
25750
|
+
__metadata("design:type", Object)
|
25751
|
+
], GIPIDatetimepickerInputDirective.prototype, "dateChange", void 0);
|
25752
|
+
__decorate([
|
25753
|
+
Output(),
|
25754
|
+
__metadata("design:type", Object)
|
25755
|
+
], GIPIDatetimepickerInputDirective.prototype, "dateInput", void 0);
|
25756
|
+
GIPIDatetimepickerInputDirective = GIPIDatetimepickerInputDirective_1 = __decorate([
|
25757
|
+
Directive({
|
25758
|
+
selector: 'input[gipiMatDatetimePicker]',
|
25759
|
+
exportAs: 'matDatepickerInput',
|
25760
|
+
providers: [
|
25761
|
+
GIPI_DATETIMEPICKER_VALUE_ACCESSOR,
|
25762
|
+
GIPI_DATETIMEPICKER_VALIDATORS,
|
25763
|
+
{
|
25764
|
+
provide: MAT_INPUT_VALUE_ACCESSOR,
|
25765
|
+
useExisting: GIPIDatetimepickerInputDirective_1,
|
25766
|
+
},
|
25767
|
+
],
|
25768
|
+
host: {
|
25769
|
+
'[attr.aria-haspopup]': 'true',
|
25770
|
+
'[attr.aria-owns]': '(_datepicker?.opened && _datepicker.id) || null',
|
25771
|
+
'[attr.min]': 'min ? _dateAdapter.toIso8601(min) : null',
|
25772
|
+
'[attr.max]': 'max ? _dateAdapter.toIso8601(max) : null',
|
25773
|
+
'[disabled]': 'disabled',
|
25774
|
+
'(focus)': '_datepicker._handleFocus()',
|
25775
|
+
'(input)': '_onInput($event.target.value)',
|
25776
|
+
'(change)': '_onChange()',
|
25777
|
+
'(blur)': '_onBlur()',
|
25778
|
+
'(keydown)': '_onKeydown($event)',
|
25779
|
+
},
|
25780
|
+
}),
|
25781
|
+
__param(1, Optional()),
|
25782
|
+
__param(2, Optional()),
|
25783
|
+
__param(2, Inject(GIPI_DATETIME_FORMATS)),
|
25784
|
+
__param(3, Optional()),
|
25785
|
+
__metadata("design:paramtypes", [ElementRef,
|
25786
|
+
GIPIDatetimeAdapter, Object, MatFormField$1])
|
25787
|
+
], GIPIDatetimepickerInputDirective);
|
25788
|
+
|
25789
|
+
const DAYS_PER_WEEK$1 = 7;
|
25790
|
+
/**
|
25791
|
+
* An internal component used to display a single month in the datepicker.
|
25792
|
+
* @docs-private
|
25793
|
+
*/
|
25794
|
+
let GIPIDatetimepickerMonthViewComponent = class GIPIDatetimepickerMonthViewComponent {
|
25795
|
+
constructor(_adapter, _dateFormats) {
|
25796
|
+
this._adapter = _adapter;
|
25797
|
+
this._dateFormats = _dateFormats;
|
25798
|
+
this.type = 'date';
|
25799
|
+
/** Emits when a new date is selected. */
|
25800
|
+
this.selectedChange = new EventEmitter();
|
25801
|
+
this._userSelection = new EventEmitter();
|
25802
|
+
if (!this._adapter) {
|
25803
|
+
throw createMissingDateImplError$1('GIPIDatetimeAdapter');
|
25804
|
+
}
|
25805
|
+
if (!this._dateFormats) {
|
25806
|
+
throw createMissingDateImplError$1('GIPI_DATETIME_FORMATS');
|
25807
|
+
}
|
25808
|
+
const firstDayOfWeek = this._adapter.getFirstDayOfWeek();
|
25809
|
+
const narrowWeekdays = this._adapter.getDayOfWeekNames('narrow');
|
25810
|
+
const longWeekdays = this._adapter.getDayOfWeekNames('long');
|
25811
|
+
// Rotate the labels for days of the week based on the configured first day of the week.
|
25812
|
+
let weekdays = longWeekdays.map((long, i) => { return { long, narrow: narrowWeekdays[i] }; });
|
25813
|
+
this._weekdays = weekdays
|
25814
|
+
.slice(firstDayOfWeek)
|
25815
|
+
.concat(weekdays.slice(0, firstDayOfWeek));
|
25816
|
+
this._activeDate = this._adapter.today();
|
25817
|
+
}
|
25818
|
+
get activeDate() {
|
25819
|
+
return this._activeDate;
|
25820
|
+
}
|
25821
|
+
set activeDate(value) {
|
25822
|
+
let oldActiveDate = this._activeDate;
|
25823
|
+
this._activeDate = value || this._adapter.today();
|
25824
|
+
if (oldActiveDate && this._activeDate && !this._adapter.sameMonthAndYear(oldActiveDate, this._activeDate)) {
|
25825
|
+
this._init();
|
25826
|
+
if (this._adapter.isInNextMonth(oldActiveDate, this._activeDate)) {
|
25827
|
+
this.calendarState('right');
|
25828
|
+
}
|
25829
|
+
else {
|
25830
|
+
this.calendarState('left');
|
25831
|
+
}
|
25832
|
+
}
|
25833
|
+
}
|
25834
|
+
get selected() {
|
25835
|
+
return this._selected;
|
25836
|
+
}
|
25837
|
+
set selected(value) {
|
25838
|
+
this._selected = value;
|
25839
|
+
this._selectedDate = this._getDateInCurrentMonth(this.selected);
|
25840
|
+
}
|
25841
|
+
ngAfterContentInit() {
|
25842
|
+
this._init();
|
25843
|
+
}
|
25844
|
+
/** Handles when a new date is selected. */
|
25845
|
+
_dateSelected(date) {
|
25846
|
+
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)));
|
25847
|
+
if (this.type === 'date') {
|
25848
|
+
this._userSelection.emit();
|
25849
|
+
}
|
25850
|
+
}
|
25851
|
+
_calendarStateDone() {
|
25852
|
+
this._calendarState = '';
|
25853
|
+
}
|
25854
|
+
/** Initializes this month view. */
|
25855
|
+
_init() {
|
25856
|
+
this._selectedDate = this._getDateInCurrentMonth(this.selected);
|
25857
|
+
this._todayDate = this._getDateInCurrentMonth(this._adapter.today());
|
25858
|
+
let 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));
|
25859
|
+
this._firstWeekOffset = (DAYS_PER_WEEK$1 + this._adapter.getDayOfWeek(firstOfMonth) - this._adapter.getFirstDayOfWeek()) % DAYS_PER_WEEK$1;
|
25860
|
+
this._createWeekCells();
|
25861
|
+
}
|
25862
|
+
/** Creates MdCalendarCells for the dates in this month. */
|
25863
|
+
_createWeekCells() {
|
25864
|
+
let daysInMonth = this._adapter.getNumDaysInMonth(this.activeDate);
|
25865
|
+
let dateNames = this._adapter.getDateNames();
|
25866
|
+
this._weeks = [[]];
|
25867
|
+
for (let i = 0, cell = this._firstWeekOffset; i < daysInMonth; i++, cell++) {
|
25868
|
+
if (cell == DAYS_PER_WEEK$1) {
|
25869
|
+
this._weeks.push([]);
|
25870
|
+
cell = 0;
|
25871
|
+
}
|
25872
|
+
let 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));
|
25873
|
+
let enabled = !this.dateFilter || this.dateFilter(date);
|
25874
|
+
let ariaLabel = this._adapter.format(date, this._dateFormats.display.dateA11yLabel);
|
25875
|
+
this._weeks[this._weeks.length - 1].push(new GIPIDatetimepickerCalendarCell(i + 1, dateNames[i], ariaLabel, enabled));
|
25876
|
+
}
|
25877
|
+
}
|
25878
|
+
/** Gets the date in this month that the given Date falls on. Returns null if the given Date is in another month. */
|
25879
|
+
_getDateInCurrentMonth(date) {
|
25880
|
+
return this._adapter.sameMonthAndYear(date, this.activeDate)
|
25881
|
+
? this._adapter.getDate(date)
|
25882
|
+
: null;
|
25883
|
+
}
|
25884
|
+
calendarState(direction) {
|
25885
|
+
this._calendarState = direction;
|
25886
|
+
}
|
25887
|
+
};
|
25888
|
+
GIPIDatetimepickerMonthViewComponent.ctorParameters = () => [
|
25889
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
25890
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GIPI_DATETIME_FORMATS,] }] }
|
25891
|
+
];
|
25892
|
+
__decorate([
|
25893
|
+
Input(),
|
25894
|
+
__metadata("design:type", String)
|
25895
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "type", void 0);
|
25896
|
+
__decorate([
|
25897
|
+
Input(),
|
25898
|
+
__metadata("design:type", Function)
|
25899
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "dateFilter", void 0);
|
25900
|
+
__decorate([
|
25901
|
+
Input(),
|
25902
|
+
__metadata("design:type", Object),
|
25903
|
+
__metadata("design:paramtypes", [Object])
|
25904
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "activeDate", null);
|
25905
|
+
__decorate([
|
25906
|
+
Input(),
|
25907
|
+
__metadata("design:type", Object),
|
25908
|
+
__metadata("design:paramtypes", [Object])
|
25909
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "selected", null);
|
25910
|
+
__decorate([
|
25911
|
+
Output(),
|
25912
|
+
__metadata("design:type", Object)
|
25913
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "selectedChange", void 0);
|
25914
|
+
__decorate([
|
25915
|
+
Output(),
|
25916
|
+
__metadata("design:type", Object)
|
25917
|
+
], GIPIDatetimepickerMonthViewComponent.prototype, "_userSelection", void 0);
|
25918
|
+
GIPIDatetimepickerMonthViewComponent = __decorate([
|
25919
|
+
Component({
|
25920
|
+
selector: 'gipi-mat-datetime-picker-month-view',
|
25921
|
+
template: "<table class=\"gipi-mat-datetime-picker-calendar-table\">\n <thead class=\"gipi-mat-datetime-picker-calendar-table-header\">\n <tr>\n <th *ngFor=\"let day of _weekdays\"\n [attr.aria-label]=\"day.long\">\n {{ day.narrow }}\n </th>\n </tr>\n <tr>\n <th class=\"gipi-mat-datetime-picker-calendar-table-header-divider\"\n colspan=\"7\"\n aria-hidden=\"true\">\n </th>\n </tr>\n </thead>\n <tbody gipiMatDatetimePickerCalendarBody\n role=\"grid\"\n [activeCell]=\"_adapter.getDate(activeDate) - 1\"\n [rows]=\"_weeks\"\n [selectedValue]=\"_selectedDate\"\n [todayValue]=\"_todayDate\"\n [@slideCalendar]=\"_calendarState\"\n (@slideCalendar.done)=\"_calendarStateDone()\"\n (selectedValueChange)=\"_dateSelected($event)\">\n </tbody>\n</table>",
|
25922
|
+
animations: [slideCalendar],
|
25923
|
+
encapsulation: ViewEncapsulation.None,
|
25924
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
25925
|
+
}),
|
25926
|
+
__param(0, Optional()),
|
25927
|
+
__param(1, Optional()),
|
25928
|
+
__param(1, Inject(GIPI_DATETIME_FORMATS)),
|
25929
|
+
__metadata("design:paramtypes", [GIPIDatetimeAdapter, Object])
|
25930
|
+
], GIPIDatetimepickerMonthViewComponent);
|
25931
|
+
|
25932
|
+
const ɵ0$3 = (i) => String(i);
|
25933
|
+
/** The default hour names to use if Intl API is not available. */
|
25934
|
+
const DEFAULT_HOUR_NAMES = range$1(24, ɵ0$3);
|
25935
|
+
const ɵ1 = (i) => String(i);
|
25936
|
+
/** The default minute names to use if Intl API is not available. */
|
25937
|
+
const DEFAULT_MINUTE_NAMES = range$1(60, ɵ1);
|
25938
|
+
function range$1(length, valueFunction) {
|
25939
|
+
const valuesArray = Array(length);
|
25940
|
+
for (let i = 0; i < length; i++) {
|
25941
|
+
valuesArray[i] = valueFunction(i);
|
25942
|
+
}
|
25943
|
+
return valuesArray;
|
25944
|
+
}
|
25945
|
+
let GIPINativeDatetimeAdapter = class GIPINativeDatetimeAdapter extends GIPIDatetimeAdapter {
|
25946
|
+
constructor(matDateLocale, _delegate) {
|
25947
|
+
super(_delegate);
|
25948
|
+
this.setLocale(matDateLocale);
|
25949
|
+
}
|
25950
|
+
clone(date) {
|
25951
|
+
return this.createDatetime(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date));
|
25952
|
+
}
|
25953
|
+
getHour(date) {
|
25954
|
+
return date.getHours();
|
25955
|
+
}
|
25956
|
+
getMinute(date) {
|
25957
|
+
return date.getMinutes();
|
25958
|
+
}
|
25959
|
+
isInNextMonth(startDate, endDate) {
|
25960
|
+
const nextMonth = this.getDateInNextMonth(startDate);
|
25961
|
+
return this.sameMonthAndYear(nextMonth, endDate);
|
25962
|
+
}
|
25963
|
+
createDatetime(year, month, date, hour, minute) {
|
25964
|
+
// Check for invalid month and date (except upper bound on date which we have to check after
|
25965
|
+
// creating the Date).
|
25966
|
+
if (month < 0 || month > 11) {
|
25967
|
+
throw Error(`Invalid month index "${month}". Month index has to be between 0 and 11.`);
|
25968
|
+
}
|
25969
|
+
if (date < 1) {
|
25970
|
+
throw Error(`Invalid date "${date}". Date has to be greater than 0.`);
|
25971
|
+
}
|
25972
|
+
if (hour < 0 || hour > 23) {
|
25973
|
+
throw Error(`Invalid hour "${hour}". Hour has to be between 0 and 23.`);
|
25974
|
+
}
|
25975
|
+
if (minute < 0 || minute > 59) {
|
25976
|
+
throw Error(`Invalid minute "${minute}". Minute has to be between 0 and 59.`);
|
25977
|
+
}
|
25978
|
+
const result = this._createDateWithOverflow(year, month, date, hour, minute);
|
25979
|
+
// Check that the date wasn't above the upper bound for the month, causing the month to overflow
|
25980
|
+
if (result.getMonth() !== month) {
|
25981
|
+
throw Error(`Invalid date "${date}" for month with index "${month}".`);
|
25982
|
+
}
|
25983
|
+
return result;
|
25984
|
+
}
|
25985
|
+
getFirstDateOfMonth(date) {
|
25986
|
+
const result = new Date();
|
25987
|
+
result.setFullYear(date.getFullYear(), date.getMonth(), 1);
|
25988
|
+
return result;
|
25989
|
+
}
|
25990
|
+
getHourNames() {
|
25991
|
+
return DEFAULT_HOUR_NAMES;
|
25992
|
+
}
|
25993
|
+
getMinuteNames() {
|
25994
|
+
return DEFAULT_MINUTE_NAMES;
|
25995
|
+
}
|
25996
|
+
addCalendarYears(date, years) {
|
25997
|
+
return this.addCalendarMonths(date, years * 12);
|
25998
|
+
}
|
25999
|
+
addCalendarMonths(date, months) {
|
26000
|
+
let newDate = this._createDateWithOverflow(this.getYear(date), this.getMonth(date) + months, this.getDate(date), this.getHour(date), this.getMinute(date));
|
26001
|
+
// It's possible to wind up in the wrong month if the original month has more days than the new
|
26002
|
+
// month. In this case we want to go to the last day of the desired month.
|
26003
|
+
// Note: the additional + 12 % 12 ensures we end up with a positive number, since JS % doesn't
|
26004
|
+
// guarantee this.
|
26005
|
+
if (this.getMonth(newDate) !== (((this.getMonth(date) + months) % 12) + 12) % 12) {
|
26006
|
+
newDate = this._createDateWithOverflow(this.getYear(newDate), this.getMonth(newDate), 0, this.getHour(date), this.getMinute(date));
|
26007
|
+
}
|
26008
|
+
return newDate;
|
26009
|
+
}
|
26010
|
+
addCalendarDays(date, days) {
|
26011
|
+
return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date) + days, this.getHour(date), this.getMinute(date));
|
26012
|
+
}
|
26013
|
+
addCalendarHours(date, hours) {
|
26014
|
+
return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date) + hours, this.getMinute(date));
|
26015
|
+
}
|
26016
|
+
addCalendarMinutes(date, minutes) {
|
26017
|
+
return this._createDateWithOverflow(this.getYear(date), this.getMonth(date), this.getDate(date), this.getHour(date), this.getMinute(date) + minutes);
|
26018
|
+
}
|
26019
|
+
toIso8601(date) {
|
26020
|
+
return (super.toIso8601(date) + 'T' + [this._2digit(date.getUTCHours()), this._2digit(date.getUTCMinutes()),].join(':'));
|
26021
|
+
}
|
26022
|
+
getDateInNextMonth(date) {
|
26023
|
+
return new Date(date.getFullYear(), date.getMonth() + 1, 1, date.getHours(), date.getMinutes());
|
26024
|
+
}
|
26025
|
+
/**
|
26026
|
+
* Strip out unicode LTR and RTL characters. Edge and IE insert these into formatted dates while
|
26027
|
+
* other browsers do not. We remove them to make output consistent and because they interfere with
|
26028
|
+
* date parsing.
|
26029
|
+
* @param str The string to strip direction characters from.
|
26030
|
+
* @returns The stripped string.
|
26031
|
+
*/
|
26032
|
+
_stripDirectionalityCharacters(str) {
|
26033
|
+
return str.replace(/[\u200e\u200f]/g, '');
|
26034
|
+
}
|
26035
|
+
/**
|
26036
|
+
* Pads a number to make it two digits.
|
26037
|
+
* @param n The number to pad.
|
26038
|
+
* @returns The padded number.
|
26039
|
+
*/
|
26040
|
+
_2digit(n) {
|
26041
|
+
return ('00' + n).slice(-2);
|
26042
|
+
}
|
26043
|
+
/** Creates a date but allows the month and date to overflow. */
|
26044
|
+
_createDateWithOverflow(year, month, date, hours, minutes) {
|
26045
|
+
const result = new Date(year, month, date, hours, minutes);
|
26046
|
+
// We need to correct for the fact that JS native Date treats years in range [0, 99] as
|
26047
|
+
// abbreviations for 19xx.
|
26048
|
+
if (year >= 0 && year < 100) {
|
26049
|
+
result.setFullYear(this.getYear(result) - 1900);
|
26050
|
+
}
|
26051
|
+
return result;
|
26052
|
+
}
|
26053
|
+
};
|
26054
|
+
GIPINativeDatetimeAdapter.ctorParameters = () => [
|
26055
|
+
{ type: String, decorators: [{ type: Optional }, { type: Inject, args: [MAT_DATE_LOCALE$1,] }] },
|
26056
|
+
{ type: DateAdapter$1 }
|
26057
|
+
];
|
26058
|
+
GIPINativeDatetimeAdapter = __decorate([
|
26059
|
+
Injectable(),
|
26060
|
+
__param(0, Optional()), __param(0, Inject(MAT_DATE_LOCALE$1)),
|
26061
|
+
__metadata("design:paramtypes", [String, DateAdapter$1])
|
26062
|
+
], GIPINativeDatetimeAdapter);
|
26063
|
+
|
26064
|
+
const GIPI_NATIVE_DATETIME_FORMATS = {
|
26065
|
+
parse: {},
|
26066
|
+
display: {
|
26067
|
+
dateInput: { year: 'numeric', month: '2-digit', day: '2-digit' },
|
26068
|
+
monthInput: { month: 'long' },
|
26069
|
+
datetimeInput: {
|
26070
|
+
year: 'numeric',
|
26071
|
+
month: '2-digit',
|
26072
|
+
day: '2-digit',
|
26073
|
+
hour: '2-digit',
|
26074
|
+
minute: '2-digit',
|
26075
|
+
},
|
26076
|
+
timeInput: { hour: '2-digit', minute: '2-digit' },
|
26077
|
+
monthYearLabel: { year: 'numeric', month: 'short' },
|
26078
|
+
dateA11yLabel: { year: 'numeric', month: 'long', day: 'numeric' },
|
26079
|
+
monthYearA11yLabel: { year: 'numeric', month: 'long' },
|
26080
|
+
popupHeaderDateLabel: { weekday: 'short', month: 'short', day: '2-digit' },
|
26081
|
+
},
|
26082
|
+
};
|
26083
|
+
|
26084
|
+
let NativeDatetimeModule = class NativeDatetimeModule {
|
26085
|
+
};
|
26086
|
+
NativeDatetimeModule = __decorate([
|
26087
|
+
NgModule({
|
26088
|
+
imports: [
|
26089
|
+
NativeDateModule,
|
26090
|
+
],
|
26091
|
+
providers: [
|
26092
|
+
{
|
26093
|
+
provide: GIPIDatetimeAdapter,
|
26094
|
+
useClass: GIPINativeDatetimeAdapter,
|
26095
|
+
},
|
26096
|
+
],
|
26097
|
+
})
|
26098
|
+
], NativeDatetimeModule);
|
26099
|
+
const ɵ0$4 = GIPI_NATIVE_DATETIME_FORMATS;
|
26100
|
+
let GIPINativeDatetimeModule = class GIPINativeDatetimeModule {
|
26101
|
+
};
|
26102
|
+
GIPINativeDatetimeModule = __decorate([
|
26103
|
+
NgModule({
|
26104
|
+
imports: [
|
26105
|
+
NativeDatetimeModule,
|
26106
|
+
MatNativeDateModule$1,
|
26107
|
+
],
|
26108
|
+
providers: [
|
26109
|
+
{
|
26110
|
+
provide: GIPI_DATETIME_FORMATS,
|
26111
|
+
useValue: ɵ0$4,
|
26112
|
+
},
|
26113
|
+
],
|
26114
|
+
})
|
26115
|
+
], GIPINativeDatetimeModule);
|
26116
|
+
|
26117
|
+
/**
|
26118
|
+
* An internal component used to display a single year in the datepicker.
|
26119
|
+
* @docs-private
|
26120
|
+
*/
|
26121
|
+
let GIPIDatetimepickerYearViewComponent = class GIPIDatetimepickerYearViewComponent {
|
26122
|
+
constructor(_adapter, _dateFormats) {
|
26123
|
+
this._adapter = _adapter;
|
26124
|
+
this._dateFormats = _dateFormats;
|
26125
|
+
this.type = 'date';
|
26126
|
+
/** Emits when a new month is selected. */
|
26127
|
+
this.selectedChange = new EventEmitter();
|
26128
|
+
this._userSelection = new EventEmitter();
|
26129
|
+
if (!this._adapter) {
|
26130
|
+
throw createMissingDateImplError$1('DatetimeAdapter');
|
26131
|
+
}
|
26132
|
+
if (!this._dateFormats) {
|
26133
|
+
throw createMissingDateImplError$1('GIPI_DATETIME_FORMATS');
|
26134
|
+
}
|
26135
|
+
this._activeDate = this._adapter.today();
|
26136
|
+
}
|
26137
|
+
get activeDate() {
|
26138
|
+
return this._activeDate;
|
26139
|
+
}
|
26140
|
+
set activeDate(value) {
|
26141
|
+
let oldActiveDate = this._activeDate;
|
26142
|
+
this._activeDate = value || this._adapter.today();
|
26143
|
+
if (oldActiveDate && this._activeDate && !this._adapter.sameYear(oldActiveDate, this._activeDate)) {
|
26144
|
+
this._init();
|
26145
|
+
}
|
26146
|
+
}
|
26147
|
+
get selected() {
|
26148
|
+
return this._selected;
|
26149
|
+
}
|
26150
|
+
set selected(value) {
|
26151
|
+
this._selected = value;
|
26152
|
+
this._selectedMonth = this._getMonthInCurrentYear(this.selected);
|
26153
|
+
}
|
26154
|
+
ngAfterContentInit() {
|
26155
|
+
this._init();
|
26156
|
+
}
|
26157
|
+
/** Handles when a new month is selected. */
|
26158
|
+
_monthSelected(month) {
|
26159
|
+
const normalizedDate = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, 0, 0);
|
26160
|
+
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)));
|
26161
|
+
if (this.type === 'month') {
|
26162
|
+
this._userSelection.emit();
|
26163
|
+
}
|
26164
|
+
}
|
26165
|
+
_calendarStateDone() {
|
26166
|
+
this._calendarState = '';
|
26167
|
+
}
|
26168
|
+
/** Initializes this month view. */
|
26169
|
+
_init() {
|
26170
|
+
this._selectedMonth = this._getMonthInCurrentYear(this.selected);
|
26171
|
+
this._todayMonth = this._getMonthInCurrentYear(this._adapter.today());
|
26172
|
+
this._yearLabel = this._adapter.getYearName(this.activeDate);
|
26173
|
+
let monthNames = this._adapter.getMonthNames('short');
|
26174
|
+
// First row of months only contains 5 elements so we can fit the year label on the same row.
|
26175
|
+
this._months = [[0, 1, 2, 3], [4, 5, 6, 7], [8, 9, 10, 11]].map((row) => row.map((month) => this._createCellForMonth(month, monthNames[month])));
|
26176
|
+
}
|
26177
|
+
/**
|
26178
|
+
* Gets the month in this year that the given Date falls on.
|
26179
|
+
* Returns null if the given Date is in another year.
|
26180
|
+
*/
|
26181
|
+
_getMonthInCurrentYear(date) {
|
26182
|
+
return this._adapter.sameYear(date, this.activeDate)
|
26183
|
+
? this._adapter.getMonth(date)
|
26184
|
+
: null;
|
26185
|
+
}
|
26186
|
+
/** Creates an MdCalendarCell for the given month. */
|
26187
|
+
_createCellForMonth(month, monthName) {
|
26188
|
+
let 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);
|
26189
|
+
return new GIPIDatetimepickerCalendarCell(month, monthName.toLocaleUpperCase(), ariaLabel, this._isMonthEnabled(month));
|
26190
|
+
}
|
26191
|
+
/** Whether the given month is enabled. */
|
26192
|
+
_isMonthEnabled(month) {
|
26193
|
+
if (!this.dateFilter) {
|
26194
|
+
return true;
|
26195
|
+
}
|
26196
|
+
let firstOfMonth = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), month, 1, this._adapter.getHour(this.activeDate), this._adapter.getMinute(this.activeDate));
|
26197
|
+
// If any date in the month is enabled count the month as enabled.
|
26198
|
+
for (let date = firstOfMonth; this._adapter.getMonth(date) == month; date = this._adapter.addCalendarDays(date, 1)) {
|
26199
|
+
if (this.dateFilter(date)) {
|
26200
|
+
return true;
|
26201
|
+
}
|
26202
|
+
}
|
26203
|
+
return false;
|
26204
|
+
}
|
26205
|
+
};
|
26206
|
+
GIPIDatetimepickerYearViewComponent.ctorParameters = () => [
|
26207
|
+
{ type: GIPIDatetimeAdapter, decorators: [{ type: Optional }] },
|
26208
|
+
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [GIPI_DATETIME_FORMATS,] }] }
|
26209
|
+
];
|
26210
|
+
__decorate([
|
26211
|
+
Input(),
|
26212
|
+
__metadata("design:type", String)
|
26213
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "type", void 0);
|
26214
|
+
__decorate([
|
26215
|
+
Input(),
|
26216
|
+
__metadata("design:type", Function)
|
26217
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "dateFilter", void 0);
|
26218
|
+
__decorate([
|
26219
|
+
Input(),
|
26220
|
+
__metadata("design:type", Object),
|
26221
|
+
__metadata("design:paramtypes", [Object])
|
26222
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "activeDate", null);
|
26223
|
+
__decorate([
|
26224
|
+
Input(),
|
26225
|
+
__metadata("design:type", Object),
|
26226
|
+
__metadata("design:paramtypes", [Object])
|
26227
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "selected", null);
|
26228
|
+
__decorate([
|
26229
|
+
Output(),
|
26230
|
+
__metadata("design:type", Object)
|
26231
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "selectedChange", void 0);
|
26232
|
+
__decorate([
|
26233
|
+
Output(),
|
26234
|
+
__metadata("design:type", Object)
|
26235
|
+
], GIPIDatetimepickerYearViewComponent.prototype, "_userSelection", void 0);
|
26236
|
+
GIPIDatetimepickerYearViewComponent = __decorate([
|
26237
|
+
Component({
|
26238
|
+
selector: 'gipi-mat-datetime-picker-year-view',
|
26239
|
+
template: "<table class=\"gipi-mat-datetime-picker-calendar-table\"\n role=\"presentation\">\n <thead class=\"gipi-mat-datetime-picker-calendar-table-header\">\n <tr>\n <th class=\"gipi-mat-datetime-picker-calendar-table-header-divider\"\n colspan=\"4\">\n </th>\n </tr>\n </thead>\n <tbody gipiMatDatetimePickerCalendarBody\n allowDisabledSelection=\"true\"\n role=\"grid\"\n [label]=\"_yearLabel\"\n [rows]=\"_months\"\n [todayValue]=\"_todayMonth\"\n [labelMinRequiredCells]=\"2\"\n [numCols]=\"4\"\n [cellAspectRatio]=\"4 / 7\"\n [activeCell]=\"_adapter.getMonth(activeDate)\"\n [selectedValue]=\"_selectedMonth\"\n [@slideCalendar]=\"_calendarState\"\n (@slideCalendar.done)=\"_calendarStateDone()\"\n (selectedValueChange)=\"_monthSelected($event)\">\n </tbody>\n</table>\n",
|
26240
|
+
animations: [slideCalendar],
|
26241
|
+
encapsulation: ViewEncapsulation.None,
|
26242
|
+
changeDetection: ChangeDetectionStrategy.OnPush
|
26243
|
+
}),
|
26244
|
+
__param(0, Optional()),
|
26245
|
+
__param(1, Optional()),
|
26246
|
+
__param(1, Inject(GIPI_DATETIME_FORMATS)),
|
26247
|
+
__metadata("design:paramtypes", [GIPIDatetimeAdapter, Object])
|
26248
|
+
], GIPIDatetimepickerYearViewComponent);
|
26249
|
+
|
26250
|
+
let DatetimepickerModule = class DatetimepickerModule {
|
26251
|
+
};
|
26252
|
+
DatetimepickerModule = __decorate([
|
26253
|
+
NgModule({
|
26254
|
+
imports: [
|
26255
|
+
CommonModule,
|
26256
|
+
FormsModule,
|
26257
|
+
ReactiveFormsModule,
|
26258
|
+
MatButtonModule,
|
26259
|
+
MatDialogModule,
|
26260
|
+
MatIconModule,
|
26261
|
+
OverlayModule,
|
26262
|
+
A11yModule,
|
26263
|
+
MatDatepickerModule,
|
26264
|
+
GIPINativeDatetimeModule,
|
26265
|
+
],
|
26266
|
+
exports: [
|
26267
|
+
FormsModule,
|
26268
|
+
ReactiveFormsModule,
|
26269
|
+
MatButtonModule,
|
26270
|
+
MatDialogModule,
|
26271
|
+
MatIconModule,
|
26272
|
+
OverlayModule,
|
26273
|
+
A11yModule,
|
26274
|
+
MatDatepickerModule,
|
26275
|
+
GIPINativeDatetimeModule,
|
26276
|
+
GIPIDatetimepickerCalendarComponent,
|
26277
|
+
GIPIDatetimepickerCalendarBodyComponent,
|
26278
|
+
GIPIDatetimepickerClockComponent,
|
26279
|
+
GIPIDatetimepickerComponent,
|
26280
|
+
GIPIDatetimepickerToggleComponent,
|
26281
|
+
GIPIDatetimepickerInputDirective,
|
26282
|
+
GIPIDatetimepickerContentComponent,
|
26283
|
+
GIPIDatetimepickerMonthViewComponent,
|
26284
|
+
GIPIDatetimepickerYearViewComponent,
|
26285
|
+
GIPIDatetimepickerMultiYearViewComponent,
|
26286
|
+
GIPIDateAndTimePickerComponent,
|
26287
|
+
],
|
26288
|
+
declarations: [
|
26289
|
+
GIPIDatetimepickerCalendarComponent,
|
26290
|
+
GIPIDatetimepickerCalendarBodyComponent,
|
26291
|
+
GIPIDatetimepickerClockComponent,
|
26292
|
+
GIPIDatetimepickerComponent,
|
26293
|
+
GIPIDatetimepickerToggleComponent,
|
26294
|
+
GIPIDatetimepickerInputDirective,
|
26295
|
+
GIPIDatetimepickerContentComponent,
|
26296
|
+
GIPIDatetimepickerMonthViewComponent,
|
26297
|
+
GIPIDatetimepickerYearViewComponent,
|
26298
|
+
GIPIDatetimepickerMultiYearViewComponent,
|
26299
|
+
GIPIDateAndTimePickerComponent,
|
26300
|
+
],
|
26301
|
+
entryComponents: [
|
26302
|
+
GIPIDatetimepickerContentComponent,
|
26303
|
+
],
|
26304
|
+
providers: [
|
26305
|
+
MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER$1,
|
26306
|
+
],
|
26307
|
+
})
|
26308
|
+
], DatetimepickerModule);
|
26309
|
+
|
26310
|
+
var CalendarMonthYearComponent_1;
|
26311
|
+
const moment$4 = moment_;
|
26312
|
+
let CalendarMonthYearComponent = CalendarMonthYearComponent_1 = class CalendarMonthYearComponent {
|
26313
|
+
constructor(_changeDetectorRef) {
|
26314
|
+
this._changeDetectorRef = _changeDetectorRef;
|
26315
|
+
this._subscriptions = new Subscription();
|
26316
|
+
this._animationState = 'enter';
|
26317
|
+
this._animationDone = new Subject();
|
26318
|
+
this.years = [];
|
26319
|
+
this.months = [];
|
26320
|
+
this._calendarView = 'both';
|
26321
|
+
}
|
26322
|
+
ngOnInit() {
|
26323
|
+
if (this._locale) {
|
26324
|
+
moment$4.locale(this._locale);
|
26325
|
+
}
|
26326
|
+
else {
|
26327
|
+
moment$4.locale('pt-br');
|
26328
|
+
}
|
26329
|
+
this.months = [...this.monthYearPicker.model.months];
|
26330
|
+
this._calendarView = this.monthYearPicker.calendarView;
|
26331
|
+
if (this._calendarView === 'year') {
|
26332
|
+
this.toggleShowYears();
|
26333
|
+
}
|
26334
|
+
this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, this.monthYearPicker.model.selectedMonthYear);
|
26335
|
+
}
|
26336
|
+
ngAfterViewInit() {
|
26337
|
+
if (this._changeDetectorRef) {
|
26338
|
+
this._subscriptions.add(this.monthYearPicker._stateChanges.subscribe(() => {
|
26339
|
+
this._changeDetectorRef.markForCheck();
|
26340
|
+
}));
|
26341
|
+
}
|
26342
|
+
}
|
26343
|
+
ngOnDestroy() {
|
26344
|
+
this._subscriptions.unsubscribe();
|
26345
|
+
this._animationDone.complete();
|
26346
|
+
}
|
26347
|
+
_startExitAnimation() {
|
26348
|
+
this._animationState = 'void';
|
26349
|
+
if (this._changeDetectorRef) {
|
26350
|
+
this._changeDetectorRef.markForCheck();
|
26351
|
+
}
|
26352
|
+
}
|
26353
|
+
decrement() {
|
26354
|
+
this.monthYearPicker.model.decrementYear();
|
26355
|
+
if (this.isShowYears) {
|
26356
|
+
this._renderYears();
|
26357
|
+
}
|
26358
|
+
}
|
26359
|
+
increment() {
|
26360
|
+
this.monthYearPicker.model.incrementYear();
|
26361
|
+
if (this.isShowYears) {
|
26362
|
+
this._renderYears();
|
26363
|
+
}
|
26364
|
+
}
|
26365
|
+
selectMonth(index) {
|
26366
|
+
this.monthYearPicker.model.selectMonth(index);
|
26367
|
+
this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, this.monthYearPicker.model.selectedMonthYear);
|
26368
|
+
this.monthYearPicker.close();
|
26369
|
+
}
|
26370
|
+
isSelectedMonth(monthIndex) {
|
26371
|
+
return this.monthYearPicker.model.selectedMonthIndex == monthIndex && this.monthYearPicker.model.selectedMonthYear == this.monthYearPicker.model.selectedYearMoment.year();
|
26372
|
+
}
|
26373
|
+
isCurrentMonth(monthIndex) {
|
26374
|
+
const currentMonth = moment$4().month();
|
26375
|
+
const currentYear = moment$4().year();
|
26376
|
+
return (monthIndex === currentMonth) && (this.monthYearPicker.model.selectedYearMoment.year() === currentYear);
|
26377
|
+
}
|
26378
|
+
isDisabledMonth(index) {
|
26379
|
+
let disabled = false;
|
26380
|
+
if (!ObjectUtil.isNull(this.monthYearPicker)) {
|
26381
|
+
const minMonth = !ObjectUtil.isNull(this.monthYearPicker.min) ? this.monthYearPicker.min.month : null;
|
26382
|
+
const maxMonth = !ObjectUtil.isNull(this.monthYearPicker.max) ? this.monthYearPicker.max.month : null;
|
26383
|
+
if (!ObjectUtil.isNull(minMonth) && !ObjectUtil.isNull(maxMonth)) {
|
26384
|
+
disabled = index < minMonth || index > maxMonth;
|
26385
|
+
}
|
26386
|
+
else if (!ObjectUtil.isNull(minMonth)) {
|
26387
|
+
disabled = index < minMonth;
|
26388
|
+
}
|
26389
|
+
else if (!ObjectUtil.isNull(maxMonth)) {
|
26390
|
+
disabled = index > maxMonth;
|
26391
|
+
}
|
26392
|
+
}
|
26393
|
+
return disabled;
|
26394
|
+
// let disabled = false;
|
26395
|
+
// if (this._enabledMonths && this._enabledMonths.length > 0) {
|
26396
|
+
// disabled = this._enabledMonths.indexOf(index) < 0;
|
26397
|
+
// }
|
26398
|
+
// if (this._disabledMonths && this._disabledMonths.length > 0) {
|
26399
|
+
// disabled = this._disabledMonths.indexOf(index) >= 0;
|
26400
|
+
// }
|
26401
|
+
// return disabled;
|
26402
|
+
}
|
26403
|
+
/** Years */
|
26404
|
+
toggleShowYears() {
|
26405
|
+
this.isShowYears = !this.isShowYears;
|
26406
|
+
this._renderYears();
|
26407
|
+
}
|
26408
|
+
_renderYears() {
|
26409
|
+
this.years = [];
|
26410
|
+
for (let i = 11; i > 0; i--) {
|
26411
|
+
this.years.push(this.monthYearPicker.model.selectedYearMoment.year() - i);
|
26412
|
+
}
|
26413
|
+
for (let i = 0; i <= 12; i++) {
|
26414
|
+
this.years.push(this.monthYearPicker.model.selectedYearMoment.year() + i);
|
26415
|
+
}
|
26416
|
+
}
|
26417
|
+
get periodButtonLabel() {
|
26418
|
+
const formatYearRange = (start, end) => {
|
26419
|
+
return `${start} \u2013 ${end}`;
|
26420
|
+
};
|
26421
|
+
return this.isShowYears ? formatYearRange(this.years[0], this.years[this.years.length - 1]) : this.monthYearPicker.model.selectedYearText;
|
26422
|
+
}
|
26423
|
+
selectYear(year) {
|
26424
|
+
if (this._calendarView === 'both') {
|
26425
|
+
this.isShowYears = false;
|
26426
|
+
}
|
26427
|
+
this.monthYearPicker.model.selectedYearMoment = moment$4().year(year);
|
26428
|
+
this.monthYearPicker.model.updateYearText();
|
26429
|
+
if (this._calendarView === 'year') {
|
26430
|
+
this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, year);
|
26431
|
+
this.monthYearPicker.close();
|
26432
|
+
}
|
26433
|
+
}
|
26434
|
+
isSelectedYear(year) {
|
26435
|
+
return this.monthYearPicker.model.selectedYearMoment.year() === year;
|
26436
|
+
}
|
26437
|
+
isCurrentYear(year) {
|
26438
|
+
return moment$4().year() === year;
|
26439
|
+
}
|
26440
|
+
isDisabledYear(index) {
|
26441
|
+
let disabled = false;
|
23425
26442
|
if (!ObjectUtil.isNull(this.monthYearPicker)) {
|
23426
26443
|
const minYear = !ObjectUtil.isNull(this.monthYearPicker.min) ? this.monthYearPicker.min.year : null;
|
23427
26444
|
const maxYear = !ObjectUtil.isNull(this.monthYearPicker.max) ? this.monthYearPicker.max.year : null;
|
@@ -23531,7 +26548,7 @@ class MonthPickerModel {
|
|
23531
26548
|
this.updateYearText();
|
23532
26549
|
}
|
23533
26550
|
}
|
23534
|
-
let nextUniqueId$
|
26551
|
+
let nextUniqueId$r = 0;
|
23535
26552
|
let MonthYearPickerComponent = MonthYearPickerComponent_1 = class MonthYearPickerComponent {
|
23536
26553
|
constructor(elementRef, _changeDetectorRef, _overlay, _ngZone, _viewContainerRef, scrollStrategy, _dir, _document) {
|
23537
26554
|
this.elementRef = elementRef;
|
@@ -23541,7 +26558,7 @@ let MonthYearPickerComponent = MonthYearPickerComponent_1 = class MonthYearPicke
|
|
23541
26558
|
this._viewContainerRef = _viewContainerRef;
|
23542
26559
|
this._dir = _dir;
|
23543
26560
|
this._document = _document;
|
23544
|
-
this._name = `gipi-date-range-${nextUniqueId$
|
26561
|
+
this._name = `gipi-date-range-${nextUniqueId$r++}`;
|
23545
26562
|
this._focusedElementBeforeOpen = null;
|
23546
26563
|
this._backdropHarnessClass = `${this._name}-backdrop`;
|
23547
26564
|
this._stateChanges = new Subject();
|
@@ -23908,7 +26925,7 @@ MonthYearPickerComponent = MonthYearPickerComponent_1 = __decorate([
|
|
23908
26925
|
'class': 'gipi-month-year-picker',
|
23909
26926
|
},
|
23910
26927
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
23911
|
-
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid
|
26928
|
+
styles: [":host{display:block;width:100%;min-width:0;max-width:100%;flex:1}.input-wrapper{display:flex;flex-direction:column;gap:.8rem;font-size:1.4rem;color:#696969}.input-wrapper .input-label{display:flex;align-items:center;gap:.4rem;color:#131313;line-height:1.6rem}.input-wrapper .input-label>span{font-size:1.6rem;line-height:1.6rem;color:#d14014}.input-wrapper .input-content{display:flex;font-family:inherit;font-size:inherit;color:inherit;height:4rem;background:#fff;border:1px solid #0000001f;transition:background-color .2s,color .2s,border-color .2s,box-shadow .2s;-webkit-appearance:none;-moz-appearance:none;appearance:none;border-radius:.6rem}.input-wrapper .input-content .input-element{padding:.75rem .8rem;border:none;outline:0;background-color:transparent;flex:1;color:inherit;caret-color:#696969;min-width:0}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.prefix:hover),.input-wrapper .input-content:not(.input-element:disabled):has(.suffix:hover){border-color:#6d6f73}.input-wrapper .input-content:not(.input-element:disabled):has(.input-element:enabled:focus){outline:0;outline-offset:0;box-shadow:0 0 0 .2rem #e0e1e2;border-color:#6d6f73}.input-wrapper .input-content:has(.input-element:disabled){color:#bbbdc1!important;border-color:#e0e1e2!important;background-color:#f5f5f6!important;cursor:not-allowed}.input-wrapper .input-content:has(.input-element:disabled) .suffix>mat-icon{color:#bbbdc1!important}.input-wrapper .input-content .input-element:disabled{cursor:not-allowed}.input-wrapper .input-content .suffix{display:flex;align-items:center;justify-content:center;padding-block:.75rem;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;padding-right:.8rem}.input-wrapper .input-content .suffix>mat-icon{width:2rem;height:2rem;font-size:2rem;color:#696969}.input-wrapper .input-help{flex:1;font-size:1rem;font-weight:500;margin-top:-.4rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.month-year-toggle-default-icon{display:block;width:1.5em;height:1.5em}.mat-icon-button .month-year-toggle-default-icon{margin:auto}.btn-month-year-toggle{width:2rem!important;height:2rem!important;line-height:2rem!important}"]
|
23912
26929
|
}),
|
23913
26930
|
__param(5, Inject(GIPI_MONTH_YEAR_SCROLL_STRATEGY)),
|
23914
26931
|
__param(6, Optional()),
|
@@ -24031,7 +27048,7 @@ const GIPIServices = [
|
|
24031
27048
|
GIPIResizeService,
|
24032
27049
|
GIPIPaginationService,
|
24033
27050
|
];
|
24034
|
-
const ɵ0$
|
27051
|
+
const ɵ0$5 = {
|
24035
27052
|
parse: {
|
24036
27053
|
dateInput: 'DD/MM/YYYY',
|
24037
27054
|
},
|
@@ -24041,6 +27058,46 @@ const ɵ0$3 = {
|
|
24041
27058
|
dateA11yLabel: 'LL',
|
24042
27059
|
monthYearA11yLabel: 'MMMM YYYY',
|
24043
27060
|
},
|
27061
|
+
}, ɵ1$1 = {
|
27062
|
+
parse: {},
|
27063
|
+
display: {
|
27064
|
+
dateInput: {
|
27065
|
+
year: "numeric",
|
27066
|
+
month: "2-digit",
|
27067
|
+
day: "2-digit"
|
27068
|
+
},
|
27069
|
+
monthInput: {
|
27070
|
+
month: "long"
|
27071
|
+
},
|
27072
|
+
datetimeInput: {
|
27073
|
+
year: "numeric",
|
27074
|
+
month: "2-digit",
|
27075
|
+
day: "2-digit",
|
27076
|
+
hour: "2-digit",
|
27077
|
+
minute: "2-digit"
|
27078
|
+
},
|
27079
|
+
timeInput: {
|
27080
|
+
hour: "2-digit",
|
27081
|
+
minute: "2-digit"
|
27082
|
+
},
|
27083
|
+
monthYearLabel: {
|
27084
|
+
year: "numeric",
|
27085
|
+
month: "short"
|
27086
|
+
},
|
27087
|
+
dateA11yLabel: {
|
27088
|
+
year: "numeric",
|
27089
|
+
month: "long",
|
27090
|
+
day: "numeric"
|
27091
|
+
},
|
27092
|
+
monthYearA11yLabel: {
|
27093
|
+
year: "numeric",
|
27094
|
+
month: "long"
|
27095
|
+
},
|
27096
|
+
popupHeaderDateLabel: {
|
27097
|
+
day: "2-digit",
|
27098
|
+
month: "short",
|
27099
|
+
}
|
27100
|
+
}
|
24044
27101
|
};
|
24045
27102
|
let SharedModule = class SharedModule {
|
24046
27103
|
constructor(_injector) {
|
@@ -24106,6 +27163,7 @@ SharedModule = __decorate([
|
|
24106
27163
|
MentionModule,
|
24107
27164
|
DatepickerModule,
|
24108
27165
|
MonthYearPickerModule,
|
27166
|
+
DatetimepickerModule,
|
24109
27167
|
],
|
24110
27168
|
exports: [
|
24111
27169
|
GIPIComponents,
|
@@ -24152,6 +27210,7 @@ SharedModule = __decorate([
|
|
24152
27210
|
SelectButtonNextBatchComponent,
|
24153
27211
|
DatepickerModule,
|
24154
27212
|
MonthYearPickerModule,
|
27213
|
+
DatetimepickerModule,
|
24155
27214
|
],
|
24156
27215
|
entryComponents: [
|
24157
27216
|
GIPIConfirmationDialogComponent,
|
@@ -24173,7 +27232,11 @@ SharedModule = __decorate([
|
|
24173
27232
|
},
|
24174
27233
|
{
|
24175
27234
|
provide: MAT_DATE_FORMATS,
|
24176
|
-
useValue: ɵ0$
|
27235
|
+
useValue: ɵ0$5,
|
27236
|
+
},
|
27237
|
+
{
|
27238
|
+
provide: GIPI_DATETIME_FORMATS,
|
27239
|
+
useValue: ɵ1$1,
|
24177
27240
|
},
|
24178
27241
|
]
|
24179
27242
|
}),
|
@@ -25250,7 +28313,10 @@ let GIPIAbstractComponent = class GIPIAbstractComponent {
|
|
25250
28313
|
return this.baseService.router.url.split('/').filter(path => (path === 'view')).length > 0;
|
25251
28314
|
}
|
25252
28315
|
isListing() {
|
25253
|
-
return this.baseService.router.url.split('/').filter(path => (path === 'new') || (path === 'edit') || (path === 'view')).length === 0;
|
28316
|
+
return this.baseService.router.url.split('/').filter(path => (path === 'new') || (path === 'edit') || (path === 'view') || (path === 'clone')).length === 0;
|
28317
|
+
}
|
28318
|
+
isCloning() {
|
28319
|
+
return this.baseService.router.url.split('/').filter(path => (path === 'clone')).length > 0;
|
25254
28320
|
}
|
25255
28321
|
hasPermission(permission) {
|
25256
28322
|
if (StringUtil.isEmpty(permission)) {
|
@@ -25868,6 +28934,27 @@ let GIPIAbstractFindComponent = class GIPIAbstractFindComponent extends GIPIAbst
|
|
25868
28934
|
throw new Error(e);
|
25869
28935
|
}
|
25870
28936
|
}
|
28937
|
+
cloneRegister(id, permission) {
|
28938
|
+
id = this.handleEntityId(id);
|
28939
|
+
if (ObjectUtil.isNull(id)) {
|
28940
|
+
return;
|
28941
|
+
}
|
28942
|
+
if (StringUtil.isEmpty(permission) && ObjectUtil.isNull(this.basePermissionList)) {
|
28943
|
+
this.setFilterSessionStorage();
|
28944
|
+
this.navigateByUrl(this.getPath(), [this.getPath(), 'new', 'clone'], true);
|
28945
|
+
}
|
28946
|
+
else {
|
28947
|
+
if (StringUtil.isEmpty(permission) && !ObjectUtil.isNull(this.basePermissionList)) {
|
28948
|
+
permission = this.basePermissionList.MAKE;
|
28949
|
+
}
|
28950
|
+
if (!this.hasPermission(permission)) {
|
28951
|
+
this.addWarningMessage(INJECTOR.get(APP_MESSAGES).NOT_PERMISSION);
|
28952
|
+
return;
|
28953
|
+
}
|
28954
|
+
this.setFilterSessionStorage();
|
28955
|
+
this.navigateByUrl(this.getPath(), [this.getPath(), 'new', 'clone', id], true);
|
28956
|
+
}
|
28957
|
+
}
|
25871
28958
|
clear() {
|
25872
28959
|
this.baseService.sessionStorageService.remove('filter');
|
25873
28960
|
this.page = this.newPage();
|
@@ -27095,5 +30182,5 @@ const MAT_NATIVE_DATE_FORMATS = {
|
|
27095
30182
|
* Generated bundle index. Do not edit.
|
27096
30183
|
*/
|
27097
30184
|
|
27098
|
-
export { APP_MESSAGES, AbstractComponent, AbstractCrudComponent, AbstractCrudService, AbstractDTO, AbstractFindComponent, AbstractFindService, AbstractModel, AbstractService, AlertComponent, Archive, ArrayUtil, AuthGuard, AuthInterceptor, AuthenticationService, BaseUser, BreakpointEnum, BreakpointObserverService, BrowserUtil, ButtonComponent, CalendarMonthYearComponent, CardComponent, ChartDTO, CheckboxComponent, ConfirmationDTO, ConfirmationService, CoreModule, CriteriaOperationEnum, CriteriaSortDirectionEnum, CurrencyUtil, DEFAULT_MESSAGES, DateAdapter, DateRange, DateRangePickerComponent, DateUtil, DatepickerModule, DefaultMatCalendarRangeStrategy, DialogDTO, DialogService, DocumentUtil, EmailUtil, ErrorInterceptor, FilterDTO, GIPIAbstractComponent, GIPIAbstractCrudComponent, GIPIAbstractCrudService, GIPIAbstractDTO, GIPIAbstractFilterModel, GIPIAbstractFindComponent, GIPIAbstractFormComponent, GIPIAbstractModel, GIPIAbstractService, GIPIActionRowComponent, GIPIAppliedFilter, GIPIAutowired, GIPIBadgeComponent, GIPIBaseService, GIPIBreakpointService, GIPIButtonComponent, GIPICardComponent, GIPIColDirective, GIPIConfirmationDialogComponent, GIPIConnectedOverlayScrollHandler, GIPIDomHandler, GIPIDropdownMenuComponent, GIPIDynamicTabDirective, GIPIEmptyStateComponent, GIPIExpansionPanelComponent, GIPIFileDragAndDropComponent, GIPIFileService, GIPIFooterComponent, GIPIFormFieldComponent, GIPIHelpfulTipComponent, GIPIInfiniteScrollDirective, GIPIInputCheckboxComponent, GIPIInputCurrencyComponent, GIPIInputMonthPickerComponent, GIPIInputPhoneComponent, GIPIInputSearchComponent, GIPIInputSelectComponent, GIPIInputSelectEnumComponent, GIPIInputSelectListboxComponent, GIPIInputSelectPagedComponent, GIPIInputSelectRadioComponent, GIPINotificationComponent, GIPINoveltiesComponent, GIPIOverlayComponent, GIPIOverlayService, GIPIPageEvent, GIPIPageModel, GIPIPaginatePipe, GIPIPaginationControlsDirective, GIPIPaginationService, GIPIPasswordRequerimentsComponent, GIPIPopoverComponent, GIPIPopoverTarget, GIPIPopoverTrigger, GIPIRadioGroupComponent, GIPIRangePageComponent, GIPIRangeSliderComponent, GIPIResizeService, GIPIRowDirective, GIPISelectButtonComponent, GIPISelectComponent, GIPISessionStorageService, GIPISidenavComponent, GIPISidenavContainerComponent, GIPISkeletonComponent, GIPISkeletonDirective, GIPISlideToggleComponent, GIPISortDirectionEnum, GIPISortModel, GIPISplitButtonComponent, GIPIStepperComponent, GIPITabComponent, GIPITabGroupComponent, GIPITableBodyComponent, GIPITableComponent, GIPITableFooterComponent, GIPITableHeaderComponent, GIPITablePaginationComponent, GIPITableProgressBarComponent, GIPITemplateDirective, GIPITextareaComponent, GIPIToolbarComponent, GIPITopNavComponent, GIPIUserProfileComponent, GIPI_BREAKPOINTS, GIPI_CUSTOM_BREAKPOINTS_PROVIDER, GIPI_MONTH_YEAR_SCROLL_STRATEGY, GIPI_MONTH_YEAR_SCROLL_STRATEGY_FACTORY, GIPI_MONTH_YEAR_SCROLL_STRATEGY_FACTORY_PROVIDER, INJECTOR, IconComponent, InputComponent, InputCurrencyComponent, InputFileComponent, InputListboxDTO, ItssTemplate, LoadingComponent, LoadingOverlayComponent, LocalTimeEnum, LocalTimePipe, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_DATEPICKER_VALIDATORS, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_DATE_LOCALE_PROVIDER, MAT_DATE_RANGE_SELECTION_STRATEGY, MAT_NATIVE_DATE_FORMATS, MAT_RANGE_DATE_SELECTION_MODEL_FACTORY, MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY, MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER, MatCalendar, MatCalendarBody, MatCalendarCell, MatCalendarHeader, MatDateRangeInput, MatDateRangePicker, MatDateSelectionModel, MatDatepicker, MatDatepickerContent, MatDatepickerInput, MatDatepickerInputEvent, MatDatepickerIntl, MatDatepickerToggle, MatDatepickerToggleIcon, MatEndDate, MatMonthView, MatMultiYearView, MatRangeDateSelectionModel, MatSingleDateSelectionModel, MatStartDate, MatYearView, MaxRangeDirective, MaxRangeSelectionStrategy, MenuDTO, MenuTypeEnum, MessageDTO, MessageService, MonthPickerModel, MonthYear, MonthYearPickerComponent, MonthYearPickerModule, MultitenantModel, NativeDateAdapter, NavService, NumberUtil, ObjectUtil, OverlayPanelComponent, POINTS_NAME, PageDTO, PasswordUtil, Permission, PermissionGuard, PhoneMaskDirective, PhoneUtil, Platform, PopoverComponent, PopoverRef, PopoverService, PresetRangeComponent, RadioButtonEnum, RadioGroupEntityComponent, RadioGroupEnumComponent, RangePage, Role, SelectButtonAddComponent, SelectButtonNextBatchComponent, SelectEntityComponent, SelectEntityPagedComponent, SelectEnumComponent, SelectMonthPeriodComponent, SelectNoEntriesFoundDirective, SelectSearchClearDirective, SelectSearchComponent, SharedModule, SlideToggleComponent, SortDTO, SortDirectionEnum, SortModel, StepperComponent, StringUtil, SvgRegisterService, TabDTO, TabModel, TableColumnBuilder, TableColumnBuilderModel, TableColumnDTO, TableColumnModel, TableComponent, TableScrolledComponent, TimeUtil, TokenDTO, URLParamsUtil, UUIDUtil, customCurrencyMaskConfig, getReflectType, gridResponsiveMap, matDatepickerAnimations, nextUniqueId$o as nextUniqueId, siderResponsiveMap, transformPopover, yearsPerPage$1 as yearsPerPage, yearsPerRow, ƟCMP, ƟFAC, ƟPROV, ɵ0$
|
30185
|
+
export { APP_MESSAGES, AbstractComponent, AbstractCrudComponent, AbstractCrudService, AbstractDTO, AbstractFindComponent, AbstractFindService, AbstractModel, AbstractService, AlertComponent, Archive, ArrayUtil, AuthGuard, AuthInterceptor, AuthenticationService, BaseUser, BreakpointEnum, BreakpointObserverService, BrowserUtil, ButtonComponent, CLOCK_INNER_RADIUS, CLOCK_OUTER_RADIUS, CLOCK_RADIUS, CLOCK_TICK_RADIUS, CalendarMonthYearComponent, CardComponent, ChartDTO, CheckboxComponent, ConfirmationDTO, ConfirmationService, CoreModule, CriteriaOperationEnum, CriteriaSortDirectionEnum, CurrencyUtil, DEFAULT_MESSAGES, DateAdapter, DateRange, DateRangePickerComponent, DateUtil, DatepickerModule, DatetimepickerModule, DefaultMatCalendarRangeStrategy, DialogDTO, DialogService, DocumentUtil, EmailUtil, ErrorInterceptor, FilterDTO, GIPIAbstractComponent, GIPIAbstractCrudComponent, GIPIAbstractCrudService, GIPIAbstractDTO, GIPIAbstractFilterModel, GIPIAbstractFindComponent, GIPIAbstractFormComponent, GIPIAbstractModel, GIPIAbstractService, GIPIActionRowComponent, GIPIAppliedFilter, GIPIAutowired, GIPIBadgeComponent, GIPIBaseService, GIPIBreakpointService, GIPIButtonComponent, GIPICardComponent, GIPIColDirective, GIPIConfirmationDialogComponent, GIPIConnectedOverlayScrollHandler, GIPIDateAndTimePickerComponent, GIPIDatetimeAdapter, GIPIDatetimepickerCalendarBodyComponent, GIPIDatetimepickerCalendarCell, GIPIDatetimepickerCalendarComponent, GIPIDatetimepickerClockComponent, GIPIDatetimepickerComponent, GIPIDatetimepickerContentComponent, GIPIDatetimepickerFilterType, GIPIDatetimepickerInputDirective, GIPIDatetimepickerInputEvent, GIPIDatetimepickerMonthViewComponent, GIPIDatetimepickerToggleComponent, GIPIDatetimepickerYearViewComponent, GIPIDomHandler, GIPIDropdownMenuComponent, GIPIDynamicTabDirective, GIPIEmptyStateComponent, GIPIExpansionPanelComponent, GIPIFileDragAndDropComponent, GIPIFileService, GIPIFooterComponent, GIPIFormFieldComponent, GIPIHelpfulTipComponent, GIPIInfiniteScrollDirective, GIPIInputCheckboxComponent, GIPIInputCurrencyComponent, GIPIInputMonthPickerComponent, GIPIInputPhoneComponent, GIPIInputSearchComponent, GIPIInputSelectComponent, GIPIInputSelectEnumComponent, GIPIInputSelectListboxComponent, GIPIInputSelectPagedComponent, GIPIInputSelectRadioComponent, GIPINativeDatetimeAdapter, GIPINativeDatetimeModule, GIPINotificationComponent, GIPINoveltiesComponent, GIPIOverlayComponent, GIPIOverlayService, GIPIPageEvent, GIPIPageModel, GIPIPaginatePipe, GIPIPaginationControlsDirective, GIPIPaginationService, GIPIPasswordRequerimentsComponent, GIPIPopoverComponent, GIPIPopoverTarget, GIPIPopoverTrigger, GIPIRadioGroupComponent, GIPIRangePageComponent, GIPIRangeSliderComponent, GIPIResizeService, GIPIRowDirective, GIPISelectButtonComponent, GIPISelectComponent, GIPISessionStorageService, GIPISidenavComponent, GIPISidenavContainerComponent, GIPISkeletonComponent, GIPISkeletonDirective, GIPISlideToggleComponent, GIPISortDirectionEnum, GIPISortModel, GIPISplitButtonComponent, GIPIStepperComponent, GIPITabComponent, GIPITabGroupComponent, GIPITableBodyComponent, GIPITableComponent, GIPITableFooterComponent, GIPITableHeaderComponent, GIPITablePaginationComponent, GIPITableProgressBarComponent, GIPITemplateDirective, GIPITextareaComponent, GIPIToolbarComponent, GIPITopNavComponent, GIPIUserProfileComponent, GIPI_BREAKPOINTS, GIPI_CUSTOM_BREAKPOINTS_PROVIDER, GIPI_DATETIMEPICKER_VALIDATORS, GIPI_DATETIMEPICKER_VALUE_ACCESSOR, GIPI_DATETIME_FORMATS, GIPI_MONTH_YEAR_SCROLL_STRATEGY, GIPI_MONTH_YEAR_SCROLL_STRATEGY_FACTORY, GIPI_MONTH_YEAR_SCROLL_STRATEGY_FACTORY_PROVIDER, GIPI_NATIVE_DATETIME_FORMATS, INJECTOR, IconComponent, InputComponent, InputCurrencyComponent, InputFileComponent, InputListboxDTO, ItssTemplate, LoadingComponent, LoadingOverlayComponent, LocalTimeEnum, LocalTimePipe, MAT_DATEPICKER_SCROLL_STRATEGY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY, MAT_DATEPICKER_SCROLL_STRATEGY_FACTORY_PROVIDER, MAT_DATEPICKER_VALIDATORS, MAT_DATEPICKER_VALUE_ACCESSOR, MAT_DATE_FORMATS, MAT_DATE_LOCALE, MAT_DATE_LOCALE_FACTORY, MAT_DATE_LOCALE_PROVIDER, MAT_DATE_RANGE_SELECTION_STRATEGY, MAT_NATIVE_DATE_FORMATS, MAT_RANGE_DATE_SELECTION_MODEL_FACTORY, MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, MAT_SINGLE_DATE_SELECTION_MODEL_FACTORY, MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER, MatCalendar, MatCalendarBody, MatCalendarCell, MatCalendarHeader, MatDateRangeInput, MatDateRangePicker, MatDateSelectionModel, MatDatepicker, MatDatepickerContent, MatDatepickerInput, MatDatepickerInputEvent, MatDatepickerIntl, MatDatepickerToggle, MatDatepickerToggleIcon, MatEndDate, MatMonthView, MatMultiYearView, MatRangeDateSelectionModel, MatSingleDateSelectionModel, MatStartDate, MatYearView, MaxRangeDirective, MaxRangeSelectionStrategy, MenuDTO, MenuTypeEnum, MessageDTO, MessageService, MonthPickerModel, MonthYear, MonthYearPickerComponent, MonthYearPickerModule, MultitenantModel, NativeDateAdapter, NativeDatetimeModule, NavService, NumberUtil, ObjectUtil, OverlayPanelComponent, POINTS_NAME, PageDTO, PasswordUtil, Permission, PermissionGuard, PhoneMaskDirective, PhoneUtil, Platform, PopoverComponent, PopoverRef, PopoverService, PresetRangeComponent, RadioButtonEnum, RadioGroupEntityComponent, RadioGroupEnumComponent, RangePage, Role, SelectButtonAddComponent, SelectButtonNextBatchComponent, SelectEntityComponent, SelectEntityPagedComponent, SelectEnumComponent, SelectMonthPeriodComponent, SelectNoEntriesFoundDirective, SelectSearchClearDirective, SelectSearchComponent, SharedModule, SlideToggleComponent, SortDTO, SortDirectionEnum, SortModel, StepperComponent, StringUtil, SvgRegisterService, TabDTO, TabModel, TableColumnBuilder, TableColumnBuilderModel, TableColumnDTO, TableColumnModel, TableComponent, TableScrolledComponent, TimeUtil, TokenDTO, URLParamsUtil, UUIDUtil, customCurrencyMaskConfig, getReflectType, gridResponsiveMap, matDatepickerAnimations, nextUniqueId$o as nextUniqueId, siderResponsiveMap, transformPopover, yearsPerPage$1 as yearsPerPage, yearsPerRow, ƟCMP, ƟFAC, ƟPROV, ɵ0$5 as ɵ0, ɵ1$1 as ɵ1, MAT_DATE_RANGE_INPUT_PARENT as ɵa, MAT_CALENDAR_RANGE_STRATEGY_PROVIDER_FACTORY as ɵb, MAT_CALENDAR_RANGE_STRATEGY_PROVIDER as ɵc, MatDatepickerBase as ɵd, MAT_FORM_FIELD as ɵe, MatDatepickerInputBase as ɵf, GIPINgConfig as ɵg, GIPIChipsComponent as ɵh, GIPIFileDragAndDropDirective as ɵi, TextareaComponent as ɵj, UpperCaseDirective as ɵk, LowerCaseDirective as ɵl, SpaceDropDirective as ɵm, InputSelectInfiniteScrollDirective as ɵn, ITSS_SELECT_SEARCH_DEFAULT_OPTIONS as ɵo, MaterialModule as ɵq, DatepickerComponent as ɵr, slideCalendar as ɵs, GIPIDatetimepickerMultiYearViewComponent as ɵt };
|
27099
30186
|
//# sourceMappingURL=gipisistemas-ng-core.js.map
|