@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.
Files changed (131) hide show
  1. package/assets/styles/colors.scss +228 -211
  2. package/assets/styles/styles.scss +54 -5
  3. package/bundles/gipisistemas-ng-core.umd.js +3516 -146
  4. package/bundles/gipisistemas-ng-core.umd.js.map +1 -1
  5. package/bundles/gipisistemas-ng-core.umd.min.js +9 -9
  6. package/bundles/gipisistemas-ng-core.umd.min.js.map +1 -1
  7. package/core/gipi-components/components/abstract-find.component.d.ts +1 -0
  8. package/core/gipi-components/components/abstract.component.d.ts +1 -0
  9. package/esm2015/core/gipi-components/components/abstract-find.component.js +22 -1
  10. package/esm2015/core/gipi-components/components/abstract.component.js +5 -2
  11. package/esm2015/gipi-components.js +19 -6
  12. package/esm2015/gipisistemas-ng-core.js +3 -1
  13. package/esm2015/shared/components/button/button.component.js +2 -2
  14. package/esm2015/shared/components/icon/icon.component.js +2 -4
  15. package/esm2015/shared/gipi-components/button/button.component.js +2 -2
  16. package/esm2015/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
  17. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
  18. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
  19. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
  20. package/esm2015/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +158 -0
  21. package/esm2015/shared/gipi-components/datetime-picker/datetime-picker.module.js +82 -0
  22. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +116 -0
  23. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +676 -0
  24. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +306 -0
  25. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
  26. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
  27. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
  28. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +346 -0
  29. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +83 -0
  30. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
  31. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +451 -0
  32. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +151 -0
  33. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +230 -0
  34. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +43 -0
  35. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +139 -0
  36. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
  37. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +138 -0
  38. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
  39. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +141 -0
  40. package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
  41. package/esm2015/shared/gipi-components/form-field/form-field.component.js +8 -3
  42. package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +1 -1
  43. package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
  44. package/esm2015/shared/gipi-components/input-select/input-select.component.js +1 -1
  45. package/esm2015/shared/gipi-components/input-select-enum/input-select-enum.component.js +20 -6
  46. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
  47. package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +1 -1
  48. package/esm2015/shared/gipi-components/range-page/range-page.component.js +1 -1
  49. package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +1 -1
  50. package/esm2015/shared/gipi-components/select-button/select-button.component.js +1 -1
  51. package/esm2015/shared/gipi-components/split-button/split-button.component.js +2 -2
  52. package/esm2015/shared/gipi-components/tabs/tab-group/tab-group.component.js +5 -2
  53. package/esm2015/shared/gipi-components/textarea/textarea.component.js +1 -1
  54. package/esm2015/shared/shared.module.js +51 -3
  55. package/esm5/core/gipi-components/components/abstract-find.component.js +22 -1
  56. package/esm5/core/gipi-components/components/abstract.component.js +5 -2
  57. package/esm5/gipi-components.js +19 -6
  58. package/esm5/gipisistemas-ng-core.js +3 -1
  59. package/esm5/shared/components/button/button.component.js +2 -2
  60. package/esm5/shared/components/icon/icon.component.js +2 -4
  61. package/esm5/shared/gipi-components/button/button.component.js +2 -2
  62. package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
  63. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
  64. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
  65. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
  66. package/esm5/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +176 -0
  67. package/esm5/shared/gipi-components/datetime-picker/datetime-picker.module.js +85 -0
  68. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +119 -0
  69. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +747 -0
  70. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +332 -0
  71. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
  72. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
  73. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
  74. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +377 -0
  75. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +89 -0
  76. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
  77. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +495 -0
  78. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +160 -0
  79. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +248 -0
  80. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +49 -0
  81. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +145 -0
  82. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
  83. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +141 -0
  84. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
  85. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +151 -0
  86. package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
  87. package/esm5/shared/gipi-components/form-field/form-field.component.js +8 -3
  88. package/esm5/shared/gipi-components/input-currency/input-currency.component.js +1 -1
  89. package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
  90. package/esm5/shared/gipi-components/input-select/input-select.component.js +1 -1
  91. package/esm5/shared/gipi-components/input-select-enum/input-select-enum.component.js +25 -6
  92. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
  93. package/esm5/shared/gipi-components/radio-group/radio-group.component.js +1 -1
  94. package/esm5/shared/gipi-components/range-page/range-page.component.js +1 -1
  95. package/esm5/shared/gipi-components/range-slider/range-slider.component.js +1 -1
  96. package/esm5/shared/gipi-components/select-button/select-button.component.js +1 -1
  97. package/esm5/shared/gipi-components/split-button/split-button.component.js +2 -2
  98. package/esm5/shared/gipi-components/tabs/tab-group/tab-group.component.js +5 -2
  99. package/esm5/shared/gipi-components/textarea/textarea.component.js +1 -1
  100. package/esm5/shared/shared.module.js +51 -3
  101. package/fesm2015/gipisistemas-ng-core.js +3244 -157
  102. package/fesm2015/gipisistemas-ng-core.js.map +1 -1
  103. package/fesm5/gipisistemas-ng-core.js +3494 -152
  104. package/fesm5/gipisistemas-ng-core.js.map +1 -1
  105. package/gipi-components.d.ts +16 -0
  106. package/gipisistemas-ng-core.d.ts +2 -0
  107. package/gipisistemas-ng-core.metadata.json +1 -1
  108. package/package.json +4 -4
  109. package/shared/components/icon/icon.component.d.ts +1 -3
  110. package/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.d.ts +40 -0
  111. package/shared/gipi-components/datetime-picker/datetime-picker.module.d.ts +2 -0
  112. package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.d.ts +50 -0
  113. package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.d.ts +140 -0
  114. package/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.d.ts +66 -0
  115. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.d.ts +8 -0
  116. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.d.ts +2 -0
  117. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.d.ts +5 -0
  118. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.d.ts +98 -0
  119. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.d.ts +20 -0
  120. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.d.ts +1 -0
  121. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.d.ts +133 -0
  122. package/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.d.ts +53 -0
  123. package/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.d.ts +80 -0
  124. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.d.ts +4 -0
  125. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.d.ts +46 -0
  126. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.d.ts +20 -0
  127. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.d.ts +36 -0
  128. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.d.ts +2 -0
  129. package/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.d.ts +52 -0
  130. package/shared/gipi-components/form-field/form-field.component.d.ts +1 -0
  131. 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 rgba(0,0,0,.12);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}"]
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 rgba(0,0,0,.12);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;pointer-events:none!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}"]
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 rgba(0,0,0,.12);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}"]
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 rgba(0,0,0,.12);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}"]
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 optionSelected() {
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, "ariaLabel", void 0);
11103
+ ], GIPIInputSelectEnumComponent.prototype, "label", void 0);
11089
11104
  __decorate([
11090
11105
  Input(),
11091
11106
  __metadata("design:type", String)
11092
- ], GIPIInputSelectEnumComponent.prototype, "label", void 0);
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]=\"optionSelected\"\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.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",
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%;gap:1rem}::ng-deep .select-row:hover{background:#f5f5f6}::ng-deep .select-row:active{background:#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{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}"]
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 rgba(0,0,0,.12)}.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}"]
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:rgba(0,0,0,.12);border-radius:5px}.fieldset-radio-content .radiogroup{width:100%;height:100%;justify-content:space-around}"]
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 rgba(0,0,0,.12);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 rgba(0,0,0,.12);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 rgba(0,0,0,.12);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}"]
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 rgba(0,0,0,.12);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 rgba(0,0,0,.12);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}"]
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 rgba(0,0,0,.12);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}"]
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:#9a9da2!important;fill:#9a9da2!important}: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:#9a9da2!important;fill:#9a9da2!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}"]
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 rgba(0,0,0,.12);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}"]
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;width:100%}.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}"]
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 rgba(0,0,0,.12);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}"]
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 rgba(0,0,0,.12);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}"]
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
- var CalendarMonthYearComponent_1;
23294
- const moment$4 = moment_;
23295
- let CalendarMonthYearComponent = CalendarMonthYearComponent_1 = class CalendarMonthYearComponent {
23296
- constructor(_changeDetectorRef) {
23297
- this._changeDetectorRef = _changeDetectorRef;
23298
- this._subscriptions = new Subscription();
23299
- this._animationState = 'enter';
23300
- this._animationDone = new Subject();
23301
- this.years = [];
23302
- this.months = [];
23303
- this._calendarView = 'both';
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
- ngOnInit() {
23306
- if (this._locale) {
23307
- moment$4.locale(this._locale);
23308
- }
23309
- else {
23310
- moment$4.locale('pt-br');
23311
- }
23312
- this.months = [...this.monthYearPicker.model.months];
23313
- this._calendarView = this.monthYearPicker.calendarView;
23314
- if (this._calendarView === 'year') {
23315
- this.toggleShowYears();
23316
- }
23317
- this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, this.monthYearPicker.model.selectedMonthYear);
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
- ngAfterViewInit() {
23320
- if (this._changeDetectorRef) {
23321
- this._subscriptions.add(this.monthYearPicker._stateChanges.subscribe(() => {
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
- ngOnDestroy() {
23327
- this._subscriptions.unsubscribe();
23328
- this._animationDone.complete();
23329
- }
23330
- _startExitAnimation() {
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
- decrement() {
23337
- this.monthYearPicker.model.decrementYear();
23338
- if (this.isShowYears) {
23339
- this._renderYears();
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
- increment() {
23343
- this.monthYearPicker.model.incrementYear();
23344
- if (this.isShowYears) {
23345
- this._renderYears();
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
- selectMonth(index) {
23349
- this.monthYearPicker.model.selectMonth(index);
23350
- this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, this.monthYearPicker.model.selectedMonthYear);
23351
- this.monthYearPicker.close();
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
- isSelectedMonth(monthIndex) {
23354
- return this.monthYearPicker.model.selectedMonthIndex == monthIndex && this.monthYearPicker.model.selectedMonthYear == this.monthYearPicker.model.selectedYearMoment.year();
23476
+ getValidDateOrNull(obj) {
23477
+ return this.isDateInstance(obj) && this.isValid(obj) ? obj : null;
23355
23478
  }
23356
- isCurrentMonth(monthIndex) {
23357
- const currentMonth = moment$4().month();
23358
- const currentYear = moment$4().year();
23359
- return (monthIndex === currentMonth) && (this.monthYearPicker.model.selectedYearMoment.year() === currentYear);
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
- isDisabledMonth(index) {
23362
- let disabled = false;
23363
- if (!ObjectUtil.isNull(this.monthYearPicker)) {
23364
- const minMonth = !ObjectUtil.isNull(this.monthYearPicker.min) ? this.monthYearPicker.min.month : null;
23365
- const maxMonth = !ObjectUtil.isNull(this.monthYearPicker.max) ? this.monthYearPicker.max.month : null;
23366
- if (!ObjectUtil.isNull(minMonth) && !ObjectUtil.isNull(maxMonth)) {
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 disabled;
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
- /** Years */
23387
- toggleShowYears() {
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
- _renderYears() {
23392
- this.years = [];
23393
- for (let i = 11; i > 0; i--) {
23394
- this.years.push(this.monthYearPicker.model.selectedYearMoment.year() - i);
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
- get periodButtonLabel() {
23401
- const formatYearRange = (start, end) => {
23402
- return `${start} \u2013 ${end}`;
23403
- };
23404
- return this.isShowYears ? formatYearRange(this.years[0], this.years[this.years.length - 1]) : this.monthYearPicker.model.selectedYearText;
23504
+ sameHour(first, second) {
23505
+ return (first &&
23506
+ second &&
23507
+ this.getHour(first) === this.getHour(second) &&
23508
+ this.sameDay(first, second));
23405
23509
  }
23406
- selectYear(year) {
23407
- if (this._calendarView === 'both') {
23408
- this.isShowYears = false;
23409
- }
23410
- this.monthYearPicker.model.selectedYearMoment = moment$4().year(year);
23411
- this.monthYearPicker.model.updateYearText();
23412
- if (this._calendarView === 'year') {
23413
- this.monthYearPicker.onValueChange(this.monthYearPicker.model.selectedMonthIndex, year);
23414
- this.monthYearPicker.close();
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
- isSelectedYear(year) {
23418
- return this.monthYearPicker.model.selectedYearMoment.year() === year;
23528
+ // delegate
23529
+ deserialize(value) {
23530
+ return this._delegate.deserialize(value);
23419
23531
  }
23420
- isCurrentYear(year) {
23421
- return moment$4().year() === year;
23532
+ clone(date) {
23533
+ return this._delegate.clone(date);
23422
23534
  }
23423
- isDisabledYear(index) {
23424
- let disabled = false;
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$q = 0;
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$q++}`;
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 rgba(0,0,0,.12);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}"]
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$3 = {
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$3,
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$3 as ɵ0, 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 };
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