@gipisistemas/ng-core 1.1.11 → 1.1.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. package/assets/styles/colors.scss +228 -211
  2. package/assets/styles/styles.scss +50 -5
  3. package/bundles/gipisistemas-ng-core.umd.js +3467 -122
  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/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
  14. package/esm2015/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
  15. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
  16. package/esm2015/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
  17. package/esm2015/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +158 -0
  18. package/esm2015/shared/gipi-components/datetime-picker/datetime-picker.module.js +82 -0
  19. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +116 -0
  20. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +676 -0
  21. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +306 -0
  22. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
  23. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
  24. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
  25. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +346 -0
  26. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +83 -0
  27. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
  28. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +451 -0
  29. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +151 -0
  30. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +230 -0
  31. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +43 -0
  32. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +139 -0
  33. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
  34. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +138 -0
  35. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
  36. package/esm2015/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +141 -0
  37. package/esm2015/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
  38. package/esm2015/shared/gipi-components/form-field/form-field.component.js +1 -1
  39. package/esm2015/shared/gipi-components/input-currency/input-currency.component.js +1 -1
  40. package/esm2015/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
  41. package/esm2015/shared/gipi-components/input-select/input-select.component.js +1 -1
  42. package/esm2015/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
  43. package/esm2015/shared/gipi-components/radio-group/radio-group.component.js +1 -1
  44. package/esm2015/shared/gipi-components/range-page/range-page.component.js +1 -1
  45. package/esm2015/shared/gipi-components/range-slider/range-slider.component.js +1 -1
  46. package/esm2015/shared/gipi-components/select-button/select-button.component.js +1 -1
  47. package/esm2015/shared/gipi-components/textarea/textarea.component.js +1 -1
  48. package/esm2015/shared/shared.module.js +51 -3
  49. package/esm5/core/gipi-components/components/abstract-find.component.js +22 -1
  50. package/esm5/core/gipi-components/components/abstract.component.js +5 -2
  51. package/esm5/gipi-components.js +19 -6
  52. package/esm5/gipisistemas-ng-core.js +3 -1
  53. package/esm5/shared/gipi-components/datepicker/date-range-picker/date-range-picker.component.js +1 -1
  54. package/esm5/shared/gipi-components/datepicker/datepicker/datepicker.component.js +3 -3
  55. package/esm5/shared/gipi-components/datepicker/mat-datepicker/calendar-body.js +1 -1
  56. package/esm5/shared/gipi-components/datepicker/mat-datepicker/date-range-input.js +1 -1
  57. package/esm5/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.js +176 -0
  58. package/esm5/shared/gipi-components/datetime-picker/datetime-picker.module.js +85 -0
  59. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.js +119 -0
  60. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.js +747 -0
  61. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.js +332 -0
  62. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.js +30 -0
  63. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.js +7 -0
  64. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.js +7 -0
  65. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.js +377 -0
  66. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.js +89 -0
  67. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.js +1 -0
  68. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.js +495 -0
  69. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.js +160 -0
  70. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.js +248 -0
  71. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.js +49 -0
  72. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.js +145 -0
  73. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.js +3 -0
  74. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.js +141 -0
  75. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.js +20 -0
  76. package/esm5/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.js +151 -0
  77. package/esm5/shared/gipi-components/dropdown-menu/dropdown-menu.component.js +1 -1
  78. package/esm5/shared/gipi-components/form-field/form-field.component.js +1 -1
  79. package/esm5/shared/gipi-components/input-currency/input-currency.component.js +1 -1
  80. package/esm5/shared/gipi-components/input-monthpicker/input-monthpicker.component.js +1 -1
  81. package/esm5/shared/gipi-components/input-select/input-select.component.js +1 -1
  82. package/esm5/shared/gipi-components/month-year-picker/month-year-picker.component.js +1 -1
  83. package/esm5/shared/gipi-components/radio-group/radio-group.component.js +1 -1
  84. package/esm5/shared/gipi-components/range-page/range-page.component.js +1 -1
  85. package/esm5/shared/gipi-components/range-slider/range-slider.component.js +1 -1
  86. package/esm5/shared/gipi-components/select-button/select-button.component.js +1 -1
  87. package/esm5/shared/gipi-components/textarea/textarea.component.js +1 -1
  88. package/esm5/shared/shared.module.js +51 -3
  89. package/fesm2015/gipisistemas-ng-core.js +3234 -167
  90. package/fesm2015/gipisistemas-ng-core.js.map +1 -1
  91. package/fesm5/gipisistemas-ng-core.js +3445 -128
  92. package/fesm5/gipisistemas-ng-core.js.map +1 -1
  93. package/gipi-components.d.ts +16 -0
  94. package/gipisistemas-ng-core.d.ts +2 -0
  95. package/gipisistemas-ng-core.metadata.json +1 -1
  96. package/package.json +4 -4
  97. package/shared/gipi-components/datetime-picker/datetime-picker/datetime-picker.component.d.ts +40 -0
  98. package/shared/gipi-components/datetime-picker/datetime-picker.module.d.ts +2 -0
  99. package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar-body.d.ts +50 -0
  100. package/shared/gipi-components/datetime-picker/mat-datetime-picker/calendar.d.ts +140 -0
  101. package/shared/gipi-components/datetime-picker/mat-datetime-picker/clock.d.ts +66 -0
  102. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-animations.d.ts +8 -0
  103. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-errors.d.ts +2 -0
  104. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-filtertype.d.ts +5 -0
  105. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-input.d.ts +98 -0
  106. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-toggle.d.ts +20 -0
  107. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker-type.d.ts +1 -0
  108. package/shared/gipi-components/datetime-picker/mat-datetime-picker/datetimepicker.d.ts +133 -0
  109. package/shared/gipi-components/datetime-picker/mat-datetime-picker/month-view.d.ts +53 -0
  110. package/shared/gipi-components/datetime-picker/mat-datetime-picker/multi-year-view.d.ts +80 -0
  111. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/adapter.module.d.ts +4 -0
  112. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-adapter.d.ts +46 -0
  113. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/datetime-formats.d.ts +20 -0
  114. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-adapter.d.ts +36 -0
  115. package/shared/gipi-components/datetime-picker/mat-datetime-picker/shared/adapter/native-datetime-formats.d.ts +2 -0
  116. package/shared/gipi-components/datetime-picker/mat-datetime-picker/year-view.d.ts +52 -0
@@ -0,0 +1,332 @@
1
+ import { __decorate, __metadata } from "tslib";
2
+ import { AfterContentInit, Component, ElementRef, EventEmitter, Input, Output, } from '@angular/core';
3
+ import { GIPIDatetimepickerFilterType } from './datetimepicker-filtertype';
4
+ import { GIPIDatetimeAdapter } from './shared/adapter/datetime-adapter';
5
+ export var CLOCK_RADIUS = 50;
6
+ export var CLOCK_INNER_RADIUS = 27.5;
7
+ export var CLOCK_OUTER_RADIUS = 41.25;
8
+ export var CLOCK_TICK_RADIUS = 7.0833;
9
+ /**
10
+ * A clock that is used as part of the datepicker.
11
+ * @docs-private
12
+ */
13
+ var GIPIDatetimepickerClockComponent = /** @class */ (function () {
14
+ function GIPIDatetimepickerClockComponent(_element, _adapter) {
15
+ var _this = this;
16
+ this._element = _element;
17
+ this._adapter = _adapter;
18
+ /** Hours and Minutes representing the clock view. */
19
+ this._hours = [];
20
+ this._minutes = [];
21
+ /** Whether the clock is in hour view. */
22
+ this._hourView = true;
23
+ this._timeChanged = false;
24
+ this.interval = 1;
25
+ this.twelvehour = false;
26
+ /** Emits when the currently selected date changes. */
27
+ this.selectedChange = new EventEmitter();
28
+ this.activeDateChange = new EventEmitter();
29
+ this._userSelection = new EventEmitter();
30
+ this.mouseMoveListener = function (event) { return _this._handleMousemove(event); };
31
+ this.mouseUpListener = function () { return _this._handleMouseup(); };
32
+ }
33
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "activeDate", {
34
+ get: function () {
35
+ return this._activeDate;
36
+ },
37
+ set: function (value) {
38
+ var oldActiveDate = this._activeDate;
39
+ this._activeDate = this._adapter.clampDate(value, this.minDate, this.maxDate);
40
+ if (!this._adapter.sameMinute(oldActiveDate, this._activeDate)) {
41
+ this._init();
42
+ }
43
+ },
44
+ enumerable: false,
45
+ configurable: true
46
+ });
47
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "selected", {
48
+ get: function () {
49
+ return this._selected;
50
+ },
51
+ set: function (value) {
52
+ this._selected = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
53
+ if (this._selected) {
54
+ this.activeDate = this._selected;
55
+ }
56
+ },
57
+ enumerable: false,
58
+ configurable: true
59
+ });
60
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "minDate", {
61
+ get: function () {
62
+ return this._minDate;
63
+ },
64
+ set: function (value) {
65
+ this._minDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
66
+ },
67
+ enumerable: false,
68
+ configurable: true
69
+ });
70
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "maxDate", {
71
+ get: function () {
72
+ return this._maxDate;
73
+ },
74
+ set: function (value) {
75
+ this._maxDate = this._adapter.getValidDateOrNull(this._adapter.deserialize(value));
76
+ },
77
+ enumerable: false,
78
+ configurable: true
79
+ });
80
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "startView", {
81
+ /** Whether the clock should be started in hour or minute view. */
82
+ set: function (value) {
83
+ this._hourView = value != 'minute';
84
+ },
85
+ enumerable: false,
86
+ configurable: true
87
+ });
88
+ Object.defineProperty(GIPIDatetimepickerClockComponent.prototype, "_hand", {
89
+ get: function () {
90
+ var hour = this._adapter.getHour(this.activeDate);
91
+ if (!!this.twelvehour) {
92
+ if (hour === 0) {
93
+ hour = 24;
94
+ }
95
+ this._selectedHour = hour > 12 ? hour - 12 : hour;
96
+ }
97
+ else {
98
+ this._selectedHour = hour;
99
+ }
100
+ this._selectedMinute = this._adapter.getMinute(this.activeDate);
101
+ var deg = 0;
102
+ var radius = CLOCK_OUTER_RADIUS;
103
+ if (this._hourView) {
104
+ var outer = this._selectedHour > 0 && this._selectedHour < 13;
105
+ radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
106
+ if (this.twelvehour) {
107
+ radius = CLOCK_OUTER_RADIUS;
108
+ }
109
+ deg = Math.round(this._selectedHour * (360 / (24 / 2)));
110
+ }
111
+ else {
112
+ deg = Math.round(this._selectedMinute * (360 / 60));
113
+ }
114
+ return {
115
+ transform: "rotate(" + deg + "deg)",
116
+ height: radius + "%",
117
+ 'margin-top': 50 - radius + "%",
118
+ };
119
+ },
120
+ enumerable: false,
121
+ configurable: true
122
+ });
123
+ GIPIDatetimepickerClockComponent.prototype.ngAfterContentInit = function () {
124
+ this.activeDate = this._activeDate || this._adapter.today();
125
+ this._init();
126
+ };
127
+ /** Handles mousedown events on the clock body. */
128
+ GIPIDatetimepickerClockComponent.prototype._handleMousedown = function (event) {
129
+ this._timeChanged = false;
130
+ this.setTime(event);
131
+ document.addEventListener('mousemove', this.mouseMoveListener);
132
+ document.addEventListener('touchmove', this.mouseMoveListener);
133
+ document.addEventListener('mouseup', this.mouseUpListener);
134
+ document.addEventListener('touchend', this.mouseUpListener);
135
+ };
136
+ GIPIDatetimepickerClockComponent.prototype._handleMousemove = function (event) {
137
+ event.preventDefault();
138
+ this.setTime(event);
139
+ };
140
+ GIPIDatetimepickerClockComponent.prototype._handleMouseup = function () {
141
+ document.removeEventListener('mousemove', this.mouseMoveListener);
142
+ document.removeEventListener('touchmove', this.mouseMoveListener);
143
+ document.removeEventListener('mouseup', this.mouseUpListener);
144
+ document.removeEventListener('touchend', this.mouseUpListener);
145
+ if (this._timeChanged) {
146
+ this.selectedChange.emit(this.activeDate);
147
+ if (!this._hourView) {
148
+ this._userSelection.emit();
149
+ }
150
+ }
151
+ };
152
+ /** Initializes this clock view. */
153
+ GIPIDatetimepickerClockComponent.prototype._init = function () {
154
+ this._hours.length = 0;
155
+ this._minutes.length = 0;
156
+ var hourNames = this._adapter.getHourNames();
157
+ var minuteNames = this._adapter.getMinuteNames();
158
+ if (this.twelvehour) {
159
+ for (var i = 1; i < hourNames.length / 2 + 1; i++) {
160
+ var radian = (i / 6) * Math.PI;
161
+ var radius = CLOCK_OUTER_RADIUS;
162
+ var date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i + 1, 0);
163
+ var enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
164
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0);
165
+ this._hours.push({
166
+ value: i,
167
+ displayValue: i === 0 ? '00' : hourNames[i],
168
+ enabled: enabled,
169
+ top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
170
+ left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS,
171
+ });
172
+ }
173
+ }
174
+ else {
175
+ for (var i = 0; i < hourNames.length; i++) {
176
+ var radian = (i / 6) * Math.PI;
177
+ var outer = i > 0 && i < 13, radius = outer ? CLOCK_OUTER_RADIUS : CLOCK_INNER_RADIUS;
178
+ var date = this._adapter.createDatetime(this._adapter.getYear(this.activeDate), this._adapter.getMonth(this.activeDate), this._adapter.getDate(this.activeDate), i, 0);
179
+ var enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate, false) >= 0) &&
180
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate, false) <= 0) &&
181
+ (!this.dateFilter || this.dateFilter(date, GIPIDatetimepickerFilterType.HOUR));
182
+ this._hours.push({
183
+ value: i,
184
+ displayValue: i === 0 ? '00' : hourNames[i],
185
+ enabled: enabled,
186
+ top: CLOCK_RADIUS - Math.cos(radian) * radius - CLOCK_TICK_RADIUS,
187
+ left: CLOCK_RADIUS + Math.sin(radian) * radius - CLOCK_TICK_RADIUS,
188
+ fontSize: i > 0 && i < 13 ? '' : '80%',
189
+ });
190
+ }
191
+ }
192
+ for (var i = 0; i < minuteNames.length; i += 5) {
193
+ var radian = (i / 30) * Math.PI;
194
+ var 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);
195
+ var enabled = (!this.minDate || this._adapter.compareDatetime(date, this.minDate) >= 0) &&
196
+ (!this.maxDate || this._adapter.compareDatetime(date, this.maxDate) <= 0) &&
197
+ (!this.dateFilter || this.dateFilter(date, GIPIDatetimepickerFilterType.MINUTE));
198
+ this._minutes.push({
199
+ value: i,
200
+ displayValue: i === 0 ? '00' : minuteNames[i],
201
+ enabled: enabled,
202
+ top: CLOCK_RADIUS - Math.cos(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS,
203
+ left: CLOCK_RADIUS + Math.sin(radian) * CLOCK_OUTER_RADIUS - CLOCK_TICK_RADIUS,
204
+ });
205
+ }
206
+ };
207
+ /**
208
+ * Set Time
209
+ * @param event
210
+ */
211
+ GIPIDatetimepickerClockComponent.prototype.setTime = function (event) {
212
+ var _a, _b;
213
+ var trigger = this._element.nativeElement;
214
+ var triggerRect = trigger.getBoundingClientRect();
215
+ var width = trigger.offsetWidth;
216
+ var height = trigger.offsetHeight;
217
+ var pageX = event.pageX !== undefined ? event.pageX : event.touches[0].pageX;
218
+ var pageY = event.pageY !== undefined ? event.pageY : event.touches[0].pageY;
219
+ var x = width / 2 - (pageX - triggerRect.left - window.pageXOffset);
220
+ var y = height / 2 - (pageY - triggerRect.top - window.pageYOffset);
221
+ var radian = Math.atan2(-x, y);
222
+ var unit = Math.PI / (this._hourView ? 6 : this.interval ? 30 / this.interval : 30);
223
+ var z = Math.sqrt(x * x + y * y);
224
+ var outer = this._hourView && z > (width * (CLOCK_OUTER_RADIUS / 100) + width * (CLOCK_INNER_RADIUS / 100)) / 2;
225
+ if (radian < 0) {
226
+ radian = Math.PI * 2 + radian;
227
+ }
228
+ var value = Math.round(radian / unit);
229
+ var date;
230
+ if (this._hourView) {
231
+ if (this.twelvehour) {
232
+ value = value === 0 ? 12 : value;
233
+ }
234
+ else {
235
+ if (value === 12) {
236
+ value = 0;
237
+ }
238
+ value = outer ? value === 0 ? 12 : value : value === 0 ? 0 : value + 12;
239
+ }
240
+ // Don't close the hours view if an invalid hour is clicked.
241
+ if (!((_a = this._hours.find(function (h) { return (h === null || h === void 0 ? void 0 : h['value']) === value; })) === null || _a === void 0 ? void 0 : _a['enabled'])) {
242
+ return;
243
+ }
244
+ 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));
245
+ }
246
+ else {
247
+ if (this.interval) {
248
+ value *= this.interval;
249
+ }
250
+ if (value === 60) {
251
+ value = 0;
252
+ }
253
+ // Don't close the minutes view if an invalid minute is clicked.
254
+ if (!((_b = this._minutes.find(function (m) { return (m === null || m === void 0 ? void 0 : m['value']) === value; })) === null || _b === void 0 ? void 0 : _b['enabled'])) {
255
+ return;
256
+ }
257
+ 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);
258
+ }
259
+ this._timeChanged = true;
260
+ this.activeDate = date;
261
+ this.activeDateChange.emit(this.activeDate);
262
+ };
263
+ GIPIDatetimepickerClockComponent.ctorParameters = function () { return [
264
+ { type: ElementRef },
265
+ { type: GIPIDatetimeAdapter }
266
+ ]; };
267
+ __decorate([
268
+ Input(),
269
+ __metadata("design:type", Function)
270
+ ], GIPIDatetimepickerClockComponent.prototype, "dateFilter", void 0);
271
+ __decorate([
272
+ Input(),
273
+ __metadata("design:type", Number)
274
+ ], GIPIDatetimepickerClockComponent.prototype, "interval", void 0);
275
+ __decorate([
276
+ Input(),
277
+ __metadata("design:type", Boolean)
278
+ ], GIPIDatetimepickerClockComponent.prototype, "twelvehour", void 0);
279
+ __decorate([
280
+ Input(),
281
+ __metadata("design:type", Object),
282
+ __metadata("design:paramtypes", [Object])
283
+ ], GIPIDatetimepickerClockComponent.prototype, "activeDate", null);
284
+ __decorate([
285
+ Input(),
286
+ __metadata("design:type", Object),
287
+ __metadata("design:paramtypes", [Object])
288
+ ], GIPIDatetimepickerClockComponent.prototype, "selected", null);
289
+ __decorate([
290
+ Input(),
291
+ __metadata("design:type", Object),
292
+ __metadata("design:paramtypes", [Object])
293
+ ], GIPIDatetimepickerClockComponent.prototype, "minDate", null);
294
+ __decorate([
295
+ Input(),
296
+ __metadata("design:type", Object),
297
+ __metadata("design:paramtypes", [Object])
298
+ ], GIPIDatetimepickerClockComponent.prototype, "maxDate", null);
299
+ __decorate([
300
+ Input(),
301
+ __metadata("design:type", String),
302
+ __metadata("design:paramtypes", [String])
303
+ ], GIPIDatetimepickerClockComponent.prototype, "startView", null);
304
+ __decorate([
305
+ Output(),
306
+ __metadata("design:type", Object)
307
+ ], GIPIDatetimepickerClockComponent.prototype, "selectedChange", void 0);
308
+ __decorate([
309
+ Output(),
310
+ __metadata("design:type", Object)
311
+ ], GIPIDatetimepickerClockComponent.prototype, "activeDateChange", void 0);
312
+ __decorate([
313
+ Output(),
314
+ __metadata("design:type", Object)
315
+ ], GIPIDatetimepickerClockComponent.prototype, "_userSelection", void 0);
316
+ GIPIDatetimepickerClockComponent = __decorate([
317
+ Component({
318
+ selector: 'gipi-mat-datetime-picker-clock',
319
+ 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>",
320
+ host: {
321
+ role: 'clock',
322
+ '(mousedown)': '_handleMousedown($event)',
323
+ },
324
+ 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}"]
325
+ }),
326
+ __metadata("design:paramtypes", [ElementRef,
327
+ GIPIDatetimeAdapter])
328
+ ], GIPIDatetimepickerClockComponent);
329
+ return GIPIDatetimepickerClockComponent;
330
+ }());
331
+ export { GIPIDatetimepickerClockComponent };
332
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvY2suanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AZ2lwaXNpc3RlbWFzL25nLWNvcmUvIiwic291cmNlcyI6WyJzaGFyZWQvZ2lwaS1jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9tYXQtZGF0ZXRpbWUtcGlja2VyL2Nsb2NrLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLE1BQU0sR0FBRyxNQUFNLGVBQWUsQ0FBQztBQUV0RyxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUMzRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUV4RSxNQUFNLENBQUMsSUFBTSxZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQy9CLE1BQU0sQ0FBQyxJQUFNLGtCQUFrQixHQUFHLElBQUksQ0FBQztBQUN2QyxNQUFNLENBQUMsSUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFDeEMsTUFBTSxDQUFDLElBQU0saUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBSXhDOzs7R0FHRztBQVVIO0lBNkdJLDBDQUNZLFFBQW9CLEVBQ3BCLFFBQWdDO1FBRjVDLGlCQU1DO1FBTFcsYUFBUSxHQUFSLFFBQVEsQ0FBWTtRQUNwQixhQUFRLEdBQVIsUUFBUSxDQUF3QjtRQTdHNUMscURBQXFEO1FBQ3JELFdBQU0sR0FBa0IsRUFBRSxDQUFDO1FBQzNCLGFBQVEsR0FBa0IsRUFBRSxDQUFDO1FBRTdCLHlDQUF5QztRQUN6QyxjQUFTLEdBQVksSUFBSSxDQUFDO1FBSWxCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBTXBCLGFBQVEsR0FBVyxDQUFDLENBQUM7UUFDckIsZUFBVSxHQUFZLEtBQUssQ0FBQztRQXNGckMsc0RBQXNEO1FBQzVDLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUN2QyxxQkFBZ0IsR0FBRyxJ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QUU7Z0JBQ0YsSUFBSSxFQUFFLE9BQU87Z0JBQ2IsYUFBYSxFQUFFLDBCQUEwQjthQUM1Qzs7U0FDSixDQUFDO3lDQStHd0IsVUFBVTtZQUNWLG1CQUFtQjtPQS9HaEMsZ0NBQWdDLENBZ1I1QztJQUFELHVDQUFDO0NBQUEsQUFoUkQsSUFnUkM7U0FoUlksZ0NBQWdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJDb250ZW50SW5pdCwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEdJUElEYXRldGltZXBpY2tlckZpbHRlclR5cGUgfSBmcm9tICcuL2RhdGV0aW1lcGlja2VyLWZpbHRlcnR5cGUnO1xuaW1wb3J0IHsgR0lQSURhdGV0aW1lQWRhcHRlciB9IGZyb20gJy4vc2hhcmVkL2FkYXB0ZXIvZGF0ZXRpbWUtYWRhcHRlcic7XG5cbmV4cG9ydCBjb25zdCBDTE9DS19SQURJVVMgPSA1MDtcbmV4cG9ydCBjb25zdCBDTE9DS19JTk5FUl9SQURJVVMgPSAyNy41O1xuZXhwb3J0IGNvbnN0IENMT0NLX09VVEVSX1JBRElVUyA9IDQxLjI1O1xuZXhwb3J0IGNvbnN0IENMT0NLX1RJQ0tfUkFESVVTID0gNy4wODMzO1xuXG5leHBvcnQgdHlwZSBHSVBJQ2xvY2tWaWV3ID0gJ2hvdXInIHwgJ21pbnV0ZSc7XG5cbi8qKlxuICogQSBjbG9jayB0aGF0IGlzIHVzZWQgYXMgcGFydCBvZiB0aGUgZGF0ZXBpY2tlci5cbiAqIEBkb2NzLXByaXZhdGVcbiAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdnaXBpLW1hdC1kYXRldGltZS1waWNrZXItY2xvY2snLFxuICAgIHRlbXBsYXRlVXJsOiAnY2xvY2suaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2Nsb2NrLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIHJvbGU6ICdjbG9jaycsXG4gICAgICAgICcobW91c2Vkb3duKSc6ICdfaGFuZGxlTW91c2Vkb3duKCRldmVudCknLFxuICAgIH0sXG59KVxuZXhwb3J0IGNsYXNzIEdJUElEYXRldGltZXBpY2tlckNsb2NrQ29tcG9uZW50PEQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG5cbiAgICAvKiogSG91cnMgYW5kIE1pbnV0ZXMgcmVwcmVzZW50aW5nIHRoZSBjbG9jayB2aWV3LiAqL1xuICAgIF9ob3VyczogQXJyYXk8T2JqZWN0PiA9IFtdO1xuICAgIF9taW51dGVzOiBBcnJheTxPYmplY3Q+ID0gW107XG5cbiAgICAvKiogV2hldGhlciB0aGUgY2xvY2sgaXMgaW4gaG91ciB2aWV3LiAqL1xuICAgIF9ob3VyVmlldzogYm9vbGVhbiA9IHRydWU7XG4gICAgX3NlbGVjdGVkSG91cjogbnVtYmVyO1xuICAgIF9zZWxlY3RlZE1pbnV0ZTogbnVtYmVyO1xuXG4gICAgcHJpdmF0ZSBfdGltZUNoYW5nZWQgPSBmYWxzZTtcbiAgICBwcml2YXRlIG1vdXNlTW92ZUxpc3RlbmVyOiBhbnk7XG4gICAgcHJpdmF0ZSBtb3VzZVVwTGlzdGVuZXI6IGFueTtcblxuICAgIC8qKiBBIGZ1bmN0aW9uIHVzZWQgdG8gZmlsdGVyIHdoaWNoIGRhdGVzIGFyZSBzZWxlY3RhYmxlLiAqL1xuICAgIEBJbnB1dCgpIGRhdGVGaWx0ZXI6IChkYXRlOiBELCB0eXBlOiBHSVBJRGF0ZXRpbWVwaWNrZXJGaWx0ZXJUeXBlKSA9PiBib29sZWFuO1xuICAgIEBJbnB1dCgpIGludGVydmFsOiBudW1iZXIgPSAxO1xuICAgIEBJbnB1dCgpIHR3ZWx2ZWhvdXI6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAgIC8qKiBUaGUgZGF0ZSB0byBkaXNwbGF5IGluIHRoaXMgY2xvY2sgdmlldy4gKi9cbiAgICBwcml2YXRlIF9hY3RpdmVEYXRlOiBEO1xuICAgIEBJbnB1dCgpIGdldCBhY3RpdmVEYXRlKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgICB9XG4gICAgc2V0IGFjdGl2ZURhdGUodmFsdWU6IEQpIHtcbiAgICAgICAgbGV0IG9sZEFjdGl2ZURhdGUgPSB0aGlzLl9hY3RpdmVEYXRlO1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdGhpcy5fYWRhcHRlci5jbGFtcERhdGUodmFsdWUsIHRoaXMubWluRGF0ZSwgdGhpcy5tYXhEYXRlKTtcbiAgICAgICAgaWYgKCF0aGlzLl9hZGFwdGVyLnNhbWVNaW51dGUob2xkQWN0aXZlRGF0ZSwgdGhpcy5fYWN0aXZlRGF0ZSkpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXQoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUaGUgY3VycmVudGx5IHNlbGVjdGVkIGRhdGUuICovXG4gICAgcHJpdmF0ZSBfc2VsZWN0ZWQ6IEQgfCBudWxsO1xuICAgIEBJbnB1dCgpIGdldCBzZWxlY3RlZCgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9zZWxlY3RlZDtcbiAgICB9XG4gICAgc2V0IHNlbGVjdGVkKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICB0aGlzLl9zZWxlY3RlZCA9IHRoaXMuX2FkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKFxuICAgICAgICAgICAgdGhpcy5fYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcbiAgICAgICAgKTtcbiAgICAgICAgaWYgKHRoaXMuX3NlbGVjdGVkKSB7XG4gICAgICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9zZWxlY3RlZDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKiBUaGUgbWluaW11bSBzZWxlY3RhYmxlIGRhdGUuICovXG4gICAgcHJpdmF0ZSBfbWluRGF0ZTogRCB8IG51bGw7XG4gICAgQElucHV0KCkgZ2V0IG1pbkRhdGUoKTogRCB8IG51bGwge1xuICAgICAgICByZXR1cm4gdGhpcy5fbWluRGF0ZTtcbiAgICB9XG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIHRoaXMuX21pbkRhdGUgPSB0aGlzLl9hZGFwdGVyLmdldFZhbGlkRGF0ZU9yTnVsbChcbiAgICAgICAgICAgIHRoaXMuX2FkYXB0ZXIuZGVzZXJpYWxpemUodmFsdWUpXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqIFRoZSBtYXhpbXVtIHNlbGVjdGFibGUgZGF0ZS4gKi9cbiAgICBwcml2YXRlIF9tYXhEYXRlOiBEIHwgbnVsbDtcbiAgICBASW5wdXQoKSBnZXQgbWF4RGF0ZSgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cbiAgICBzZXQgbWF4RGF0ZSh2YWx1ZTogRCB8IG51bGwpIHtcbiAgICAgICAgdGhpcy5fbWF4RGF0ZSA9IHRoaXMuX2FkYXB0ZXIuZ2V0VmFsaWREYXRlT3JOdWxsKFxuICAgICAgICAgICAgdGhpcy5fYWRhcHRlci5kZXNlcmlhbGl6ZSh2YWx1ZSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKiogV2hldGhlciB0aGUgY2xvY2sgc2hvdWxkIGJlIHN0YXJ0ZWQgaW4gaG91ciBvciBtaW51dGUgdmlldy4gKi9cbiAgICBASW5wdXQoKSBzZXQgc3RhcnRWaWV3KHZhbHVlOiBHSVBJQ2xvY2tWaWV3KSB7XG4gICAgICAgIHRoaXMuX2hvdXJWaWV3ID0gdmFsdWUgIT0gJ21pbnV0ZSc7XG4gICAgfVxuXG4gICAgZ2V0IF9oYW5kKCk6IGFueSB7XG4gICAgICAgIGxldCBob3VyID0gdGhpcy5fYWRhcHRlci5nZXRIb3VyKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGlmICghIXRoaXMudHdlbHZlaG91cikge1xuICAgICAgICAgICAgaWYgKGhvdXIgPT09IDApIHtcbiAgICAgICAgICAgICAgICBob3VyID0gMjQ7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLl9zZWxlY3RlZEhvdXIgPSBob3VyID4gMTIgPyBob3VyIC0gMTIgOiBob3VyO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5fc2VsZWN0ZWRIb3VyID0gaG91cjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLl9zZWxlY3RlZE1pbnV0ZSA9IHRoaXMuX2FkYXB0ZXIuZ2V0TWludXRlKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGxldCBkZWcgPSAwO1xuICAgICAgICBsZXQgcmFkaXVzID0gQ0xPQ0tfT1VURVJfUkFESVVTO1xuICAgICAgICBpZiAodGhpcy5faG91clZpZXcpIHtcbiAgICAgICAgICAgIGxldCBvdXRlciA9IHRoaXMuX3NlbGVjdGVkSG91ciA+IDAgJiYgdGhpcy5fc2VsZWN0ZWRIb3VyIDwgMTM7XG4gICAgICAgICAgICByYWRpdXMgPSBvdXRlciA/IENMT0NLX09VVEVSX1JBRElVUyA6IENMT0NLX0lOTkVSX1JBRElVUztcbiAgICAgICAgICAgIGlmICh0aGlzLnR3ZWx2ZWhvdXIpIHtcbiAgICAgICAgICAgICAgICByYWRpdXMgPSBDTE9DS19PVVRFUl9SQURJVVM7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkZWcgPSBNYXRoLnJvdW5kKHRoaXMuX3NlbGVjdGVkSG91ciAqICgzNjAgLyAoMjQgLyAyKSkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgZGVnID0gTWF0aC5yb3VuZCh0aGlzLl9zZWxlY3RlZE1pbnV0ZSAqICgzNjAgLyA2MCkpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICB0cmFuc2Zvcm06IGByb3RhdGUoJHtkZWd9ZGVnKWAsXG4gICAgICAgICAgICBoZWlnaHQ6IGAke3JhZGl1c30lYCxcbiAgICAgICAgICAgICdtYXJnaW4tdG9wJzogYCR7NTAgLSByYWRpdXN9JWAsXG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqIEVtaXRzIHdoZW4gdGhlIGN1cnJlbnRseSBzZWxlY3RlZCBkYXRlIGNoYW5nZXMuICovXG4gICAgQE91dHB1dCgpIHNlbGVjdGVkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSBhY3RpdmVEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSBfdXNlclNlbGVjdGlvbiA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIF9lbGVtZW50OiBFbGVtZW50UmVmLFxuICAgICAgICBwcml2YXRlIF9hZGFwdGVyOiBHSVBJRGF0ZXRpbWVBZGFwdGVyPEQ+XG4gICAgKSB7XG4gICAgICAgIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIgPSAoZXZlbnQ6IGFueSkgPT4gdGhpcy5faGFuZGxlTW91c2Vtb3ZlKGV2ZW50KTtcbiAgICAgICAgdGhpcy5tb3VzZVVwTGlzdGVuZXIgPSAoKSA9PiB0aGlzLl9oYW5kbGVNb3VzZXVwKCk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCkge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLl9hY3RpdmVEYXRlIHx8IHRoaXMuX2FkYXB0ZXIudG9kYXkoKTtcbiAgICAgICAgdGhpcy5faW5pdCgpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIG1vdXNlZG93biBldmVudHMgb24gdGhlIGNsb2NrIGJvZHkuICovXG4gICAgX2hhbmRsZU1vdXNlZG93bihldmVudDogYW55KSB7XG4gICAgICAgIHRoaXMuX3RpbWVDaGFuZ2VkID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0VGltZShldmVudCk7XG4gICAgICAgIGRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpO1xuICAgICAgICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgICAgICAgZG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLm1vdXNlVXBMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgX2hhbmRsZU1vdXNlbW92ZShldmVudDogYW55KSB7XG4gICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgIHRoaXMuc2V0VGltZShldmVudCk7XG4gICAgfVxuXG4gICAgX2hhbmRsZU1vdXNldXAoKSB7XG4gICAgICAgIGRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ21vdXNlbW92ZScsIHRoaXMubW91c2VNb3ZlTGlzdGVuZXIpO1xuICAgICAgICBkb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCd0b3VjaG1vdmUnLCB0aGlzLm1vdXNlTW92ZUxpc3RlbmVyKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignbW91c2V1cCcsIHRoaXMubW91c2VVcExpc3RlbmVyKTtcbiAgICAgICAgZG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigndG91Y2hlbmQnLCB0aGlzLm1vdXNlVXBMaXN0ZW5lcik7XG4gICAgICAgIGlmICh0aGlzLl90aW1lQ2hhbmdlZCkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZENoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgICAgICBpZiAoIXRoaXMuX2hvdXJWaWV3KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5fdXNlclNlbGVjdGlvbi5lbWl0KCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKiogSW5pdGlhbGl6ZXMgdGhpcyBjbG9jayB2aWV3LiAqL1xuICAgIHByaXZhdGUgX2luaXQoKSB7XG4gICAgICAgIHRoaXMuX2hvdXJzLmxlbmd0aCA9IDA7XG4gICAgICAgIHRoaXMuX21pbnV0ZXMubGVuZ3RoID0gMDtcblxuICAgICAgICBsZXQgaG91ck5hbWVzID0gdGhpcy5fYWRhcHRlci5nZXRIb3VyTmFtZXMoKTtcbiAgICAgICAgbGV0IG1pbnV0ZU5hbWVzID0gdGhpcy5fYWRhcHRlci5nZXRNaW51dGVOYW1lcygpO1xuXG4gICAgICAgIGlmICh0aGlzLnR3ZWx2ZWhvdXIpIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAxOyBpIDwgaG91ck5hbWVzLmxlbmd0aCAvIDIgKyAxOyBpKyspIHtcbiAgICAgICAgICAgICAgICBsZXQgcmFkaWFuID0gKGkgLyA2KSAqIE1hdGguUEk7XG4gICAgICAgICAgICAgICAgbGV0IHJhZGl1cyA9IENMT0NLX09VVEVSX1JBRElVUztcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gdGhpcy5fYWRhcHRlci5jcmVhdGVEYXRldGltZSh0aGlzLl9hZGFwdGVyLmdldFllYXIodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fYWRhcHRlci5nZXRNb250aCh0aGlzLmFjdGl2ZURhdGUpLCB0aGlzLl9hZGFwdGVyLmdldERhdGUodGhpcy5hY3RpdmVEYXRlKSwgaSArIDEsIDApO1xuICAgICAgICAgICAgICAgIGxldCBlbmFibGVkID1cbiAgICAgICAgICAgICAgICAgICAgKCF0aGlzLm1pbkRhdGUgfHwgdGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5taW5EYXRlKSA+PSAwKSAmJlxuICAgICAgICAgICAgICAgICAgICAoIXRoaXMubWF4RGF0ZSB8fCB0aGlzLl9hZGFwdGVyLmNvbXBhcmVEYXRldGltZShkYXRlLCB0aGlzLm1heERhdGUpIDw9IDApO1xuICAgICAgICAgICAgICAgIHRoaXMuX2hvdXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBpID09PSAwID8gJzAwJyA6IGhvdXJOYW1lc1tpXSxcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBDTE9DS19SQURJVVMgLSBNYXRoLmNvcyhyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVMsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IENMT0NLX1JBRElVUyArIE1hdGguc2luKHJhZGlhbikgKiByYWRpdXMgLSBDTE9DS19USUNLX1JBRElVUyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgaG91ck5hbWVzLmxlbmd0aDsgaSsrKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJhZGlhbiA9IChpIC8gNikgKiBNYXRoLlBJO1xuICAgICAgICAgICAgICAgIGxldCBvdXRlciA9IGkgPiAwICYmIGkgPCAxMywgcmFkaXVzID0gb3V0ZXIgPyBDTE9DS19PVVRFUl9SQURJVVMgOiBDTE9DS19JTk5FUl9SQURJVVM7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2FkYXB0ZXIuY3JlYXRlRGF0ZXRpbWUodGhpcy5fYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIGksIDApO1xuICAgICAgICAgICAgICAgIGxldCBlbmFibGVkID1cbiAgICAgICAgICAgICAgICAgICAgKCF0aGlzLm1pbkRhdGUgfHwgdGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5taW5EYXRlLCBmYWxzZSkgPj0gMCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKCF0aGlzLm1heERhdGUgfHwgdGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5tYXhEYXRlLCBmYWxzZSkgPD0gMCkgJiZcbiAgICAgICAgICAgICAgICAgICAgKCF0aGlzLmRhdGVGaWx0ZXIgfHwgdGhpcy5kYXRlRmlsdGVyKGRhdGUsIEdJUElEYXRldGltZXBpY2tlckZpbHRlclR5cGUuSE9VUikpO1xuICAgICAgICAgICAgICAgIHRoaXMuX2hvdXJzLnB1c2goe1xuICAgICAgICAgICAgICAgICAgICB2YWx1ZTogaSxcbiAgICAgICAgICAgICAgICAgICAgZGlzcGxheVZhbHVlOiBpID09PSAwID8gJzAwJyA6IGhvdXJOYW1lc1tpXSxcbiAgICAgICAgICAgICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICAgICAgICAgICAgdG9wOiBDTE9DS19SQURJVVMgLSBNYXRoLmNvcyhyYWRpYW4pICogcmFkaXVzIC0gQ0xPQ0tfVElDS19SQURJVVMsXG4gICAgICAgICAgICAgICAgICAgIGxlZnQ6IENMT0NLX1JBRElVUyArIE1hdGguc2luKHJhZGlhbikgKiByYWRpdXMgLSBDTE9DS19USUNLX1JBRElVUyxcbiAgICAgICAgICAgICAgICAgICAgZm9udFNpemU6IGkgPiAwICYmIGkgPCAxMyA/ICcnIDogJzgwJScsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IG1pbnV0ZU5hbWVzLmxlbmd0aDsgaSArPSA1KSB7XG4gICAgICAgICAgICBsZXQgcmFkaWFuID0gKGkgLyAzMCkgKiBNYXRoLlBJO1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IHRoaXMuX2FkYXB0ZXIuY3JlYXRlRGF0ZXRpbWUodGhpcy5fYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0SG91cih0aGlzLmFjdGl2ZURhdGUpLCBpKTtcbiAgICAgICAgICAgIGxldCBlbmFibGVkID1cbiAgICAgICAgICAgICAgICAoIXRoaXMubWluRGF0ZSB8fCB0aGlzLl9hZGFwdGVyLmNvbXBhcmVEYXRldGltZShkYXRlLCB0aGlzLm1pbkRhdGUpID49IDApICYmXG4gICAgICAgICAgICAgICAgKCF0aGlzLm1heERhdGUgfHwgdGhpcy5fYWRhcHRlci5jb21wYXJlRGF0ZXRpbWUoZGF0ZSwgdGhpcy5tYXhEYXRlKSA8PSAwKSAmJlxuICAgICAgICAgICAgICAgICghdGhpcy5kYXRlRmlsdGVyIHx8IHRoaXMuZGF0ZUZpbHRlcihkYXRlLCBHSVBJRGF0ZXRpbWVwaWNrZXJGaWx0ZXJUeXBlLk1JTlVURSkpO1xuICAgICAgICAgICAgdGhpcy5fbWludXRlcy5wdXNoKHtcbiAgICAgICAgICAgICAgICB2YWx1ZTogaSxcbiAgICAgICAgICAgICAgICBkaXNwbGF5VmFsdWU6IGkgPT09IDAgPyAnMDAnIDogbWludXRlTmFtZXNbaV0sXG4gICAgICAgICAgICAgICAgZW5hYmxlZDogZW5hYmxlZCxcbiAgICAgICAgICAgICAgICB0b3A6IENMT0NLX1JBRElVUyAtIE1hdGguY29zKHJhZGlhbikgKiBDTE9DS19PVVRFUl9SQURJVVMgLSBDTE9DS19USUNLX1JBRElVUyxcbiAgICAgICAgICAgICAgICBsZWZ0OiBDTE9DS19SQURJVVMgKyBNYXRoLnNpbihyYWRpYW4pICogQ0xPQ0tfT1VURVJfUkFESVVTIC0gQ0xPQ0tfVElDS19SQURJVVMsXG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCBUaW1lXG4gICAgICogQHBhcmFtIGV2ZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSBzZXRUaW1lKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgbGV0IHRyaWdnZXIgPSB0aGlzLl9lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgIGxldCB0cmlnZ2VyUmVjdCA9IHRyaWdnZXIuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XG4gICAgICAgIGxldCB3aWR0aCA9IHRyaWdnZXIub2Zmc2V0V2lkdGg7XG4gICAgICAgIGxldCBoZWlnaHQgPSB0cmlnZ2VyLm9mZnNldEhlaWdodDtcbiAgICAgICAgbGV0IHBhZ2VYID0gZXZlbnQucGFnZVggIT09IHVuZGVmaW5lZCA/IGV2ZW50LnBhZ2VYIDogZXZlbnQudG91Y2hlc1swXS5wYWdlWDtcbiAgICAgICAgbGV0IHBhZ2VZID0gZXZlbnQucGFnZVkgIT09IHVuZGVmaW5lZCA/IGV2ZW50LnBhZ2VZIDogZXZlbnQudG91Y2hlc1swXS5wYWdlWTtcbiAgICAgICAgbGV0IHggPSB3aWR0aCAvIDIgLSAocGFnZVggLSB0cmlnZ2VyUmVjdC5sZWZ0IC0gd2luZG93LnBhZ2VYT2Zmc2V0KTtcbiAgICAgICAgbGV0IHkgPSBoZWlnaHQgLyAyIC0gKHBhZ2VZIC0gdHJpZ2dlclJlY3QudG9wIC0gd2luZG93LnBhZ2VZT2Zmc2V0KTtcbiAgICAgICAgbGV0IHJhZGlhbiA9IE1hdGguYXRhbjIoLXgsIHkpO1xuICAgICAgICBsZXQgdW5pdCA9IE1hdGguUEkgLyAodGhpcy5faG91clZpZXcgPyA2IDogdGhpcy5pbnRlcnZhbCA/IDMwIC8gdGhpcy5pbnRlcnZhbCA6IDMwKTtcbiAgICAgICAgbGV0IHogPSBNYXRoLnNxcnQoeCAqIHggKyB5ICogeSk7XG4gICAgICAgIGxldCBvdXRlciA9IHRoaXMuX2hvdXJWaWV3ICYmIHogPiAod2lkdGggKiAoQ0xPQ0tfT1VURVJfUkFESVVTIC8gMTAwKSArIHdpZHRoICogKENMT0NLX0lOTkVSX1JBRElVUyAvIDEwMCkpIC8gMjtcblxuICAgICAgICBpZiAocmFkaWFuIDwgMCkge1xuICAgICAgICAgICAgcmFkaWFuID0gTWF0aC5QSSAqIDIgKyByYWRpYW47XG4gICAgICAgIH1cbiAgICAgICAgbGV0IHZhbHVlID0gTWF0aC5yb3VuZChyYWRpYW4gLyB1bml0KTtcblxuICAgICAgICBsZXQgZGF0ZTtcbiAgICAgICAgaWYgKHRoaXMuX2hvdXJWaWV3KSB7XG4gICAgICAgICAgICBpZiAodGhpcy50d2VsdmVob3VyKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgPSB2YWx1ZSA9PT0gMCA/IDEyIDogdmFsdWU7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gMTIpIHtcbiAgICAgICAgICAgICAgICAgICAgdmFsdWUgPSAwO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB2YWx1ZSA9IG91dGVyID8gdmFsdWUgPT09IDAgPyAxMiA6IHZhbHVlIDogdmFsdWUgPT09IDAgPyAwIDogdmFsdWUgKyAxMjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gRG9uJ3QgY2xvc2UgdGhlIGhvdXJzIHZpZXcgaWYgYW4gaW52YWxpZCBob3VyIGlzIGNsaWNrZWQuXG4gICAgICAgICAgICBpZiAoIXRoaXMuX2hvdXJzLmZpbmQoKGgpID0+IGg/LlsndmFsdWUnXSA9PT0gdmFsdWUpPy5bJ2VuYWJsZWQnXSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgZGF0ZSA9IHRoaXMuX2FkYXB0ZXIuY3JlYXRlRGF0ZXRpbWUodGhpcy5fYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKSwgdGhpcy5fYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIHZhbHVlLCB0aGlzLl9hZGFwdGVyLmdldE1pbnV0ZSh0aGlzLmFjdGl2ZURhdGUpKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmludGVydmFsKSB7XG4gICAgICAgICAgICAgICAgdmFsdWUgKj0gdGhpcy5pbnRlcnZhbDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh2YWx1ZSA9PT0gNjApIHtcbiAgICAgICAgICAgICAgICB2YWx1ZSA9IDA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIERvbid0IGNsb3NlIHRoZSBtaW51dGVzIHZpZXcgaWYgYW4gaW52YWxpZCBtaW51dGUgaXMgY2xpY2tlZC5cbiAgICAgICAgICAgIGlmICghdGhpcy5fbWludXRlcy5maW5kKChtKSA9PiBtPy5bJ3ZhbHVlJ10gPT09IHZhbHVlKT8uWydlbmFibGVkJ10pIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGUgPSB0aGlzLl9hZGFwdGVyLmNyZWF0ZURhdGV0aW1lKHRoaXMuX2FkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpLCB0aGlzLl9hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSksIHRoaXMuX2FkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCB0aGlzLl9hZGFwdGVyLmdldEhvdXIodGhpcy5hY3RpdmVEYXRlKSwgdmFsdWUpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5fdGltZUNoYW5nZWQgPSB0cnVlO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSBkYXRlO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxufVxuIl19
@@ -0,0 +1,30 @@
1
+ import { animate, keyframes, state, style, transition, trigger, } from '@angular/animations';
2
+ /**
3
+ * This animation fades in the background color and text content of the
4
+ * select's options. It is time delayed to occur 100ms after the overlay
5
+ * panel has transformed in.
6
+ */
7
+ export var fadeInContent = trigger('fadeInContent', [
8
+ state('showing', style({ opacity: 1 })),
9
+ transition('void => showing', [
10
+ style({ opacity: 0 }),
11
+ animate("150ms 100ms cubic-bezier(0.55, 0, 0.55, 0.2)"),
12
+ ]),
13
+ ]);
14
+ export var slideCalendar = trigger('slideCalendar', [
15
+ transition('* => left', [
16
+ animate(180, keyframes([
17
+ style({ transform: 'translateX(100%)', offset: 0.5 }),
18
+ style({ transform: 'translateX(-100%)', offset: 0.51 }),
19
+ style({ transform: 'translateX(0)', offset: 1 }),
20
+ ])),
21
+ ]),
22
+ transition('* => right', [
23
+ animate(180, keyframes([
24
+ style({ transform: 'translateX(-100%)', offset: 0.5 }),
25
+ style({ transform: 'translateX(100%)', offset: 0.51 }),
26
+ style({ transform: 'translateX(0)', offset: 1 }),
27
+ ])),
28
+ ]),
29
+ ]);
30
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItYW5pbWF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL21hdC1kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXItYW5pbWF0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsT0FBTyxFQUE0QixTQUFTLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsT0FBTyxHQUFHLE1BQU0scUJBQXFCLENBQUM7QUFFdkg7Ozs7R0FJRztBQUNILE1BQU0sQ0FBQyxJQUFNLGFBQWEsR0FBNkIsT0FBTyxDQUMxRCxlQUFlLEVBQ2Y7SUFDSSxLQUFLLENBQUMsU0FBUyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZDLFVBQVUsQ0FBQyxpQkFBaUIsRUFBRTtRQUMxQixLQUFLLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDckIsT0FBTyxDQUFDLDhDQUE4QyxDQUFDO0tBQzFELENBQUM7Q0FDTCxDQUNKLENBQUM7QUFFRixNQUFNLENBQUMsSUFBTSxhQUFhLEdBQTZCLE9BQU8sQ0FDMUQsZUFBZSxFQUNmO0lBQ0ksVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUNwQixPQUFPLENBQ0gsR0FBRyxFQUNILFNBQVMsQ0FBQztZQUNOLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDckQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN2RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNuRCxDQUFDLENBQ0w7S0FDSixDQUFDO0lBQ0YsVUFBVSxDQUFDLFlBQVksRUFBRTtRQUNyQixPQUFPLENBQ0gsR0FBRyxFQUNILFNBQVMsQ0FBQztZQUNOLEtBQUssQ0FBQyxFQUFFLFNBQVMsRUFBRSxtQkFBbUIsRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUM7WUFDdEQsS0FBSyxDQUFDLEVBQUUsU0FBUyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQztZQUN0RCxLQUFLLENBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQztTQUNuRCxDQUFDLENBQ0w7S0FDSixDQUFDO0NBQ0wsQ0FDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYW5pbWF0ZSwgQW5pbWF0aW9uVHJpZ2dlck1ldGFkYXRhLCBrZXlmcmFtZXMsIHN0YXRlLCBzdHlsZSwgdHJhbnNpdGlvbiwgdHJpZ2dlciwgfSBmcm9tICdAYW5ndWxhci9hbmltYXRpb25zJztcblxuLyoqXG4gKiBUaGlzIGFuaW1hdGlvbiBmYWRlcyBpbiB0aGUgYmFja2dyb3VuZCBjb2xvciBhbmQgdGV4dCBjb250ZW50IG9mIHRoZVxuICogc2VsZWN0J3Mgb3B0aW9ucy4gSXQgaXMgdGltZSBkZWxheWVkIHRvIG9jY3VyIDEwMG1zIGFmdGVyIHRoZSBvdmVybGF5XG4gKiBwYW5lbCBoYXMgdHJhbnNmb3JtZWQgaW4uXG4gKi9cbmV4cG9ydCBjb25zdCBmYWRlSW5Db250ZW50OiBBbmltYXRpb25UcmlnZ2VyTWV0YWRhdGEgPSB0cmlnZ2VyKFxuICAgICdmYWRlSW5Db250ZW50JyxcbiAgICBbXG4gICAgICAgIHN0YXRlKCdzaG93aW5nJywgc3R5bGUoeyBvcGFjaXR5OiAxIH0pKSxcbiAgICAgICAgdHJhbnNpdGlvbigndm9pZCA9PiBzaG93aW5nJywgW1xuICAgICAgICAgICAgc3R5bGUoeyBvcGFjaXR5OiAwIH0pLFxuICAgICAgICAgICAgYW5pbWF0ZShgMTUwbXMgMTAwbXMgY3ViaWMtYmV6aWVyKDAuNTUsIDAsIDAuNTUsIDAuMilgKSxcbiAgICAgICAgXSksXG4gICAgXVxuKTtcblxuZXhwb3J0IGNvbnN0IHNsaWRlQ2FsZW5kYXI6IEFuaW1hdGlvblRyaWdnZXJNZXRhZGF0YSA9IHRyaWdnZXIoXG4gICAgJ3NsaWRlQ2FsZW5kYXInLFxuICAgIFtcbiAgICAgICAgdHJhbnNpdGlvbignKiA9PiBsZWZ0JywgW1xuICAgICAgICAgICAgYW5pbWF0ZShcbiAgICAgICAgICAgICAgICAxODAsXG4gICAgICAgICAgICAgICAga2V5ZnJhbWVzKFtcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDEwMCUpJywgb2Zmc2V0OiAwLjUgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgtMTAwJSknLCBvZmZzZXQ6IDAuNTEgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgwKScsIG9mZnNldDogMSB9KSxcbiAgICAgICAgICAgICAgICBdKVxuICAgICAgICAgICAgKSxcbiAgICAgICAgXSksXG4gICAgICAgIHRyYW5zaXRpb24oJyogPT4gcmlnaHQnLCBbXG4gICAgICAgICAgICBhbmltYXRlKFxuICAgICAgICAgICAgICAgIDE4MCxcbiAgICAgICAgICAgICAgICBrZXlmcmFtZXMoW1xuICAgICAgICAgICAgICAgICAgICBzdHlsZSh7IHRyYW5zZm9ybTogJ3RyYW5zbGF0ZVgoLTEwMCUpJywgb2Zmc2V0OiAwLjUgfSksXG4gICAgICAgICAgICAgICAgICAgIHN0eWxlKHsgdHJhbnNmb3JtOiAndHJhbnNsYXRlWCgxMDAlKScsIG9mZnNldDogMC41MSB9KSxcbiAgICAgICAgICAgICAgICAgICAgc3R5bGUoeyB0cmFuc2Zvcm06ICd0cmFuc2xhdGVYKDApJywgb2Zmc2V0OiAxIH0pLFxuICAgICAgICAgICAgICAgIF0pXG4gICAgICAgICAgICApLFxuICAgICAgICBdKSxcbiAgICBdXG4pO1xuIl19
@@ -0,0 +1,7 @@
1
+ /** @docs-private */
2
+ export function createMissingDateImplError(provider) {
3
+ return Error("GIPIDatetimepickerComponent: No provider found for " + provider + ". You must import one of the following " +
4
+ "modules at your application root: GIPINativeDatetimeModule, GIPIMomentDatetimeModule, or provide a " +
5
+ "custom implementation.");
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItZXJyb3JzLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGdpcGlzaXN0ZW1hcy9uZy1jb3JlLyIsInNvdXJjZXMiOlsic2hhcmVkL2dpcGktY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvbWF0LWRhdGV0aW1lLXBpY2tlci9kYXRldGltZXBpY2tlci1lcnJvcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsb0JBQW9CO0FBQ3BCLE1BQU0sVUFBVSwwQkFBMEIsQ0FBQyxRQUFnQjtJQUN2RCxPQUFPLEtBQUssQ0FDUix3REFBc0QsUUFBUSw0Q0FBeUM7UUFDdkcscUdBQXFHO1FBQ3JHLHdCQUF3QixDQUMzQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKiBAZG9jcy1wcml2YXRlICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlTWlzc2luZ0RhdGVJbXBsRXJyb3IocHJvdmlkZXI6IHN0cmluZykge1xuICAgIHJldHVybiBFcnJvcihcbiAgICAgICAgYEdJUElEYXRldGltZXBpY2tlckNvbXBvbmVudDogTm8gcHJvdmlkZXIgZm91bmQgZm9yICR7cHJvdmlkZXJ9LiBZb3UgbXVzdCBpbXBvcnQgb25lIG9mIHRoZSBmb2xsb3dpbmcgYCArXG4gICAgICAgIGBtb2R1bGVzIGF0IHlvdXIgYXBwbGljYXRpb24gcm9vdDogR0lQSU5hdGl2ZURhdGV0aW1lTW9kdWxlLCBHSVBJTW9tZW50RGF0ZXRpbWVNb2R1bGUsIG9yIHByb3ZpZGUgYSBgICtcbiAgICAgICAgYGN1c3RvbSBpbXBsZW1lbnRhdGlvbi5gXG4gICAgKTtcbn1cbiJdfQ==
@@ -0,0 +1,7 @@
1
+ export var GIPIDatetimepickerFilterType;
2
+ (function (GIPIDatetimepickerFilterType) {
3
+ GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["DATE"] = 0] = "DATE";
4
+ GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["HOUR"] = 1] = "HOUR";
5
+ GIPIDatetimepickerFilterType[GIPIDatetimepickerFilterType["MINUTE"] = 2] = "MINUTE";
6
+ })(GIPIDatetimepickerFilterType || (GIPIDatetimepickerFilterType = {}));
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWVwaWNrZXItZmlsdGVydHlwZS5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0BnaXBpc2lzdGVtYXMvbmctY29yZS8iLCJzb3VyY2VzIjpbInNoYXJlZC9naXBpLWNvbXBvbmVudHMvZGF0ZXRpbWUtcGlja2VyL21hdC1kYXRldGltZS1waWNrZXIvZGF0ZXRpbWVwaWNrZXItZmlsdGVydHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLENBQU4sSUFBWSw0QkFJWDtBQUpELFdBQVksNEJBQTRCO0lBQ3BDLCtFQUFJLENBQUE7SUFDSiwrRUFBSSxDQUFBO0lBQ0osbUZBQU0sQ0FBQTtBQUNWLENBQUMsRUFKVyw0QkFBNEIsS0FBNUIsNEJBQTRCLFFBSXZDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gR0lQSURhdGV0aW1lcGlja2VyRmlsdGVyVHlwZSB7XG4gICAgREFURSxcbiAgICBIT1VSLFxuICAgIE1JTlVURSxcbn1cbiJdfQ==