ngx-animating-datepicker 1.2.1 → 2.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/README.md +8 -0
  2. package/fesm2022/ngx-animating-datepicker.mjs +1534 -0
  3. package/fesm2022/ngx-animating-datepicker.mjs.map +1 -0
  4. package/package.json +32 -17
  5. package/types/ngx-animating-datepicker.d.ts +551 -0
  6. package/bundles/ngx-animating-datepicker.umd.js +0 -2611
  7. package/bundles/ngx-animating-datepicker.umd.js.map +0 -1
  8. package/bundles/ngx-animating-datepicker.umd.min.js +0 -2
  9. package/bundles/ngx-animating-datepicker.umd.min.js.map +0 -1
  10. package/esm2015/lib/components/animatepicker/animatepicker.component.js +0 -486
  11. package/esm2015/lib/components/datepicker/datepicker.component.js +0 -715
  12. package/esm2015/lib/components/datepicker/datepicker.directive.js +0 -407
  13. package/esm2015/lib/components/datepicker/datepicker.options.js +0 -41
  14. package/esm2015/lib/components/navigation/navigation.component.js +0 -233
  15. package/esm2015/lib/components/sub-navigation/sub-navigation.component.js +0 -48
  16. package/esm2015/lib/models/datepicker-options.model.js +0 -35
  17. package/esm2015/lib/models/datepicker.model.js +0 -75
  18. package/esm2015/lib/models/directive-options.model.js +0 -19
  19. package/esm2015/lib/ngx-animating-datepicker.module.js +0 -35
  20. package/esm2015/lib/services/datepicker.service.js +0 -161
  21. package/esm2015/lib/services/utilities.service.js +0 -56
  22. package/esm2015/ngx-animating-datepicker.js +0 -13
  23. package/esm2015/public_api.js +0 -8
  24. package/esm5/lib/components/animatepicker/animatepicker.component.js +0 -584
  25. package/esm5/lib/components/datepicker/datepicker.component.js +0 -940
  26. package/esm5/lib/components/datepicker/datepicker.directive.js +0 -498
  27. package/esm5/lib/components/datepicker/datepicker.options.js +0 -41
  28. package/esm5/lib/components/navigation/navigation.component.js +0 -298
  29. package/esm5/lib/components/sub-navigation/sub-navigation.component.js +0 -48
  30. package/esm5/lib/models/datepicker-options.model.js +0 -35
  31. package/esm5/lib/models/datepicker.model.js +0 -75
  32. package/esm5/lib/models/directive-options.model.js +0 -19
  33. package/esm5/lib/ngx-animating-datepicker.module.js +0 -39
  34. package/esm5/lib/services/datepicker.service.js +0 -307
  35. package/esm5/lib/services/utilities.service.js +0 -73
  36. package/esm5/ngx-animating-datepicker.js +0 -13
  37. package/esm5/public_api.js +0 -8
  38. package/fesm2015/ngx-animating-datepicker.js +0 -1911
  39. package/fesm2015/ngx-animating-datepicker.js.map +0 -1
  40. package/fesm5/ngx-animating-datepicker.js +0 -2546
  41. package/fesm5/ngx-animating-datepicker.js.map +0 -1
  42. package/lib/components/animatepicker/animatepicker.component.d.ts +0 -114
  43. package/lib/components/datepicker/datepicker.component.d.ts +0 -191
  44. package/lib/components/datepicker/datepicker.directive.d.ts +0 -92
  45. package/lib/components/datepicker/datepicker.options.d.ts +0 -20
  46. package/lib/components/navigation/navigation.component.d.ts +0 -52
  47. package/lib/components/sub-navigation/sub-navigation.component.d.ts +0 -8
  48. package/lib/models/datepicker-options.model.d.ts +0 -14
  49. package/lib/models/datepicker.model.d.ts +0 -29
  50. package/lib/models/directive-options.model.d.ts +0 -6
  51. package/lib/ngx-animating-datepicker.module.d.ts +0 -2
  52. package/lib/services/datepicker.service.d.ts +0 -77
  53. package/lib/services/utilities.service.d.ts +0 -12
  54. package/ngx-animating-datepicker-1.2.0.tgz +0 -0
  55. package/ngx-animating-datepicker-1.2.1.tgz +0 -0
  56. package/ngx-animating-datepicker.d.ts +0 -8
  57. package/ngx-animating-datepicker.metadata.json +0 -1
  58. package/public_api.d.ts +0 -5
@@ -1,407 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import { ApplicationRef, ComponentFactoryResolver, Directive, EventEmitter, HostListener, Injector, Input, Optional, Output, Renderer2, ViewContainerRef } from '@angular/core';
6
- import { NgControl } from '@angular/forms';
7
- import { UtilitiesService } from '../../services/utilities.service';
8
- import { AnimatepickerComponent } from '../animatepicker/animatepicker.component';
9
- import { DatepickerComponent } from './datepicker.component';
10
- import { DefaultDirectiveOptions } from './datepicker.options';
11
- export class DatepickerDirective {
12
- /**
13
- * @param {?} viewContainerRef
14
- * @param {?} componentFactoryResolver
15
- * @param {?} appRef
16
- * @param {?} injector
17
- * @param {?} renderer
18
- * @param {?} formControl
19
- */
20
- constructor(viewContainerRef, componentFactoryResolver, appRef, injector, renderer, formControl) {
21
- this.viewContainerRef = viewContainerRef;
22
- this.componentFactoryResolver = componentFactoryResolver;
23
- this.appRef = appRef;
24
- this.injector = injector;
25
- this.renderer = renderer;
26
- this.formControl = formControl;
27
- this.datepicker = null; // TODO: fix types: DatepickerComponent | AnimatepickerComponent
28
- this._options = DefaultDirectiveOptions;
29
- /**
30
- * Selected Dates: handles the selected dates array. Can be set both internally and externally
31
- */
32
- this._selectedDates = [];
33
- this.selectedDatesChange = new EventEmitter();
34
- }
35
- /**
36
- * @param {?} options
37
- * @return {?}
38
- */
39
- set options(options) {
40
- if (options === undefined || !options) {
41
- return;
42
- }
43
- // TODO: could be improved
44
- this._options = Object.assign({}, this._options, options);
45
- }
46
- /**
47
- * @return {?}
48
- */
49
- get options() {
50
- return this._options;
51
- }
52
- /**
53
- * @param {?} options
54
- * @return {?}
55
- */
56
- set datepickerOptions(options) {
57
- this._datepickerOptions = options;
58
- if (this.datepicker) {
59
- this.datepicker.options = options;
60
- }
61
- }
62
- /**
63
- * @return {?}
64
- */
65
- get datepickerOptions() {
66
- return this._datepickerOptions;
67
- }
68
- /**
69
- * @param {?} value
70
- * @return {?}
71
- */
72
- set language(value) {
73
- this._language = value;
74
- if (this.datepicker) {
75
- this.datepicker.language = value;
76
- }
77
- }
78
- /**
79
- * @return {?}
80
- */
81
- get language() {
82
- return this._language;
83
- }
84
- /**
85
- * @param {?} value
86
- * @return {?}
87
- */
88
- set minDate(value) {
89
- this._minDate = value;
90
- if (this.datepicker) {
91
- this.datepicker.minDate = value;
92
- }
93
- }
94
- /**
95
- * @return {?}
96
- */
97
- get minDate() {
98
- return this._minDate;
99
- }
100
- /**
101
- * @param {?} value
102
- * @return {?}
103
- */
104
- set maxDate(value) {
105
- this._maxDate = value;
106
- if (this.datepicker) {
107
- this.datepicker.maxDate = value;
108
- }
109
- }
110
- /**
111
- * @return {?}
112
- */
113
- get maxDate() {
114
- return this._minDate;
115
- }
116
- /**
117
- * @param {?} value
118
- * @return {?}
119
- */
120
- set numberOfMonths(value) {
121
- this._numberOfMonths = value;
122
- if (this.datepicker) {
123
- this.datepicker.numberOfMonths = value;
124
- }
125
- }
126
- /**
127
- * @return {?}
128
- */
129
- get numberOfMonths() {
130
- return this._numberOfMonths;
131
- }
132
- /**
133
- * @param {?} value
134
- * @return {?}
135
- */
136
- set theme(value) {
137
- if (this.datepicker) {
138
- this.datepicker.theme = value;
139
- }
140
- }
141
- /**
142
- * @return {?}
143
- */
144
- get theme() {
145
- return this._theme;
146
- }
147
- /**
148
- * @param {?} value
149
- * @return {?}
150
- */
151
- set isOpen(value) {
152
- this._isOpen = value;
153
- if (this.datepicker) {
154
- this.datepicker.isOpen = value;
155
- }
156
- }
157
- /**
158
- * @return {?}
159
- */
160
- get isOpen() {
161
- return this._isOpen;
162
- }
163
- /**
164
- * @param {?} value
165
- * @return {?}
166
- */
167
- set selectedDates(value) {
168
- if (value === undefined || this._selectedDates === value) {
169
- return;
170
- }
171
- this._selectedDates = value;
172
- this.selectedDatesChange.emit(this._selectedDates);
173
- }
174
- /**
175
- * @return {?}
176
- */
177
- get selectedDates() {
178
- return this._selectedDates;
179
- }
180
- /**
181
- * @return {?}
182
- */
183
- onClick() {
184
- if (!this.datepicker) {
185
- this.datepicker = this.createDatepicker();
186
- this.setDatepickerOptionsAndInputs();
187
- this.subscribeToSelectedChanges();
188
- }
189
- if (!this.datepicker.isOpen) {
190
- if (this.options.appendToBody) {
191
- this.setPosition();
192
- }
193
- this.datepicker.open();
194
- if (this.options.closeOnBlur) {
195
- setTimeout(() => (this.clickListener = this.renderer.listen('document', 'click', this.onBlurHandler.bind(this))));
196
- }
197
- }
198
- }
199
- /**
200
- * Add selected changes
201
- * @return {?}
202
- */
203
- subscribeToSelectedChanges() {
204
- this.datepicker.selectedDatesChange.subscribe(date => {
205
- if (this.formControl) {
206
- this.formControl.control.setValue(date);
207
- }
208
- else {
209
- this.selectedDates = date;
210
- }
211
- });
212
- }
213
- /**
214
- * Set all the options and inputs of the datepicker
215
- * @return {?}
216
- */
217
- setDatepickerOptionsAndInputs() {
218
- this.datepicker.options = this.datepickerOptions;
219
- this.datepicker.isOpen = this.isOpen || false;
220
- this.datepicker.asDirective = true;
221
- this.datepicker.numberOfMonths = this.numberOfMonths;
222
- this.datepicker.theme = this.theme;
223
- this.datepicker._selectedDates = this.selectedDates;
224
- this.datepicker.language = this.language;
225
- this.datepicker.minDate = this.minDate;
226
- this.datepicker.minDate = this.maxDate;
227
- }
228
- /**
229
- * Handles the (faked) blur event
230
- *
231
- * @param {?} event
232
- * @return {?}
233
- */
234
- onBlurHandler(event) {
235
- if (event.target !== this.datepicker.element.nativeElement &&
236
- !this.datepicker.element.nativeElement.contains(event.target)) {
237
- // check click origin
238
- this.clickListener();
239
- this.datepicker.close(true);
240
- }
241
- }
242
- /**
243
- * Returns a create DatepickerComponent method
244
- * @return {?}
245
- */
246
- createDatepicker() {
247
- return this.options.appendToBody ? this.appendToBody() : this.appendToContainer();
248
- }
249
- /**
250
- * Sets the position of the datepicker
251
- * @return {?}
252
- */
253
- setPosition() {
254
- /** @type {?} */
255
- const position = UtilitiesService.getPageOffset(this.viewContainerRef.element.nativeElement);
256
- if (this.options.openDirection === 'bottom') {
257
- this.datepicker.topPosition = position.bottom;
258
- this.datepicker.leftPosition = position.left;
259
- }
260
- if (this.options.openDirection === 'left') {
261
- this.datepicker.topPosition = position.top;
262
- this.datepicker.rightPosition = position.forRight;
263
- }
264
- if (this.options.openDirection === 'right') {
265
- this.datepicker.topPosition = position.top;
266
- this.datepicker.leftPosition = position.right;
267
- }
268
- if (this.options.openDirection === 'top') {
269
- this.datepicker.bottomPosition = position.forBottom;
270
- this.datepicker.leftPosition = position.left;
271
- }
272
- }
273
- /**
274
- * Appends the DatepickerComponent to the body and returns the instance
275
- * @return {?}
276
- */
277
- appendToBody() {
278
- /** @type {?} */
279
- const datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
280
- /** @type {?} */
281
- const componentRef = this.componentFactoryResolver
282
- .resolveComponentFactory(datepickerComponent)
283
- .create(this.injector);
284
- this.appRef.attachView(componentRef.hostView);
285
- /** @type {?} */
286
- const domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))).rootNodes[0]));
287
- document.body.appendChild(domElem);
288
- return componentRef.instance;
289
- }
290
- /**
291
- * Appends the DatepickerComponent to the container and returns the instance
292
- * @return {?}
293
- */
294
- appendToContainer() {
295
- /** @type {?} */
296
- const datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
297
- /** @type {?} */
298
- const componentRef = this.componentFactoryResolver.resolveComponentFactory(datepickerComponent);
299
- return this.viewContainerRef.createComponent(componentRef).instance;
300
- }
301
- }
302
- DatepickerDirective.decorators = [
303
- { type: Directive, args: [{
304
- selector: '[aaDatepicker]'
305
- },] },
306
- ];
307
- DatepickerDirective.ctorParameters = () => [
308
- { type: ViewContainerRef },
309
- { type: ComponentFactoryResolver },
310
- { type: ApplicationRef },
311
- { type: Injector },
312
- { type: Renderer2 },
313
- { type: NgControl, decorators: [{ type: Optional }] }
314
- ];
315
- DatepickerDirective.propDecorators = {
316
- options: [{ type: Input, args: ['aaDatepicker',] }],
317
- datepickerOptions: [{ type: Input, args: ['options',] }],
318
- language: [{ type: Input }],
319
- minDate: [{ type: Input }],
320
- maxDate: [{ type: Input }],
321
- numberOfMonths: [{ type: Input }],
322
- theme: [{ type: Input }],
323
- isOpen: [{ type: Input }],
324
- selectedDatesChange: [{ type: Output }],
325
- selectedDates: [{ type: Input }],
326
- onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
327
- };
328
- if (false) {
329
- /** @type {?} */
330
- DatepickerDirective.prototype.datepicker;
331
- /** @type {?} */
332
- DatepickerDirective.prototype.clickListener;
333
- /** @type {?} */
334
- DatepickerDirective.prototype._options;
335
- /**
336
- * @type {?}
337
- * @private
338
- */
339
- DatepickerDirective.prototype._datepickerOptions;
340
- /**
341
- * Set the the language manualy. A string with a BCP 47 language tag
342
- * \@example nl-NL
343
- * @type {?}
344
- * @private
345
- */
346
- DatepickerDirective.prototype._language;
347
- /**
348
- * Minimal Date: If set the dates before it will be disabled
349
- * @type {?}
350
- * @private
351
- */
352
- DatepickerDirective.prototype._minDate;
353
- /**
354
- * Maximal Date: If set the dates after it will be disabled
355
- * @type {?}
356
- * @private
357
- */
358
- DatepickerDirective.prototype._maxDate;
359
- /**
360
- * Number of months: the number of months displayed
361
- * @type {?}
362
- * @private
363
- */
364
- DatepickerDirective.prototype._numberOfMonths;
365
- /**
366
- * Theme string is added to the host
367
- * @type {?}
368
- * @private
369
- */
370
- DatepickerDirective.prototype._theme;
371
- /**
372
- * The open state
373
- * @type {?}
374
- * @private
375
- */
376
- DatepickerDirective.prototype._isOpen;
377
- /**
378
- * Selected Dates: handles the selected dates array. Can be set both internally and externally
379
- * @type {?}
380
- * @private
381
- */
382
- DatepickerDirective.prototype._selectedDates;
383
- /** @type {?} */
384
- DatepickerDirective.prototype.selectedDatesChange;
385
- /** @type {?} */
386
- DatepickerDirective.prototype.viewContainerRef;
387
- /** @type {?} */
388
- DatepickerDirective.prototype.componentFactoryResolver;
389
- /**
390
- * @type {?}
391
- * @private
392
- */
393
- DatepickerDirective.prototype.appRef;
394
- /**
395
- * @type {?}
396
- * @private
397
- */
398
- DatepickerDirective.prototype.injector;
399
- /**
400
- * @type {?}
401
- * @private
402
- */
403
- DatepickerDirective.prototype.renderer;
404
- /** @type {?} */
405
- DatepickerDirective.prototype.formControl;
406
- }
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW5pbWF0aW5nLWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSxPQUFPLEVBQ04sY0FBYyxFQUNkLHdCQUF3QixFQUN4QixTQUFTLEVBRVQsWUFBWSxFQUNaLFlBQVksRUFDWixRQUFRLEVBQ1IsS0FBSyxFQUNMLFFBQVEsRUFDUixNQUFNLEVBQ04sU0FBUyxFQUNULGdCQUFnQixFQUNoQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHekMsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFDbEUsT0FBTyxFQUFDLHNCQUFzQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDaEYsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDM0QsT0FBTyxFQUFDLHVCQUF1QixFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFLN0QsTUFBTTs7Ozs7Ozs7O0lBaUxMLFlBQ1EsZ0JBQWtDLEVBQ2xDLHdCQUFrRCxFQUNqRCxNQUFzQixFQUN0QixRQUFrQixFQUNsQixRQUFtQixFQUNSLFdBQXNCO1FBTGxDLHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7UUFDbEMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUEwQjtRQUNqRCxXQUFNLEdBQU4sTUFBTSxDQUFnQjtRQUN0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLGFBQVEsR0FBUixRQUFRLENBQVc7UUFDUixnQkFBVyxHQUFYLFdBQVcsQ0FBVztRQXRMMUMsZUFBVSxHQUFRLElBQUksQ0FBQyxDQUFDLGdFQUFnRTtRQUd4RixhQUFRLEdBQUcsdUJBQXVCLENBQUM7UUFrSW5DOztXQUVHO1FBQ0ssbUJBQWMsR0FBVyxFQUFFLENBQUM7UUFDMUIsd0JBQW1CLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztJQStDbkQsQ0FBQzs7Ozs7SUFuTEQsSUFDSSxPQUFPLENBQUMsT0FBeUI7UUFDcEMsSUFBSSxPQUFPLEtBQUssU0FBUyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ3RDLE9BQU87U0FDUDtRQUNELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsUUFBUSxxQkFBTyxJQUFJLENBQUMsUUFBUSxFQUFLLE9BQU8sQ0FBQyxDQUFDO0lBQ2hELENBQUM7Ozs7SUFFRCxJQUFJLE9BQU87UUFDVixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDdEIsQ0FBQzs7Ozs7SUFHRCxJQUNJLGlCQUFpQixDQUFDLE9BQWdCO1FBQ3JDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUM7UUFFbEMsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztTQUNsQztJQUNGLENBQUM7Ozs7SUFFRCxJQUFJLGlCQUFpQjtRQUNwQixPQUFPLElBQUksQ0FBQyxrQkFBa0IsQ0FBQztJQUNoQyxDQUFDOzs7OztJQU9ELElBQ0ksUUFBUSxDQUFDLEtBQWE7UUFDekIsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFFdkIsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztTQUNqQztJQUNGLENBQUM7Ozs7SUFFRCxJQUFJLFFBQVE7UUFDWCxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDdkIsQ0FBQzs7Ozs7SUFNRCxJQUNJLE9BQU8sQ0FBQyxLQUFXO1FBQ3RCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDaEM7SUFDRixDQUFDOzs7O0lBRUQsSUFBSSxPQUFPO1FBQ1YsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3RCLENBQUM7Ozs7O0lBTUQsSUFDSSxPQUFPLENBQUMsS0FBVztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUV0QixJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ2hDO0lBQ0YsQ0FBQzs7OztJQUVELElBQUksT0FBTztRQUNWLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN0QixDQUFDOzs7OztJQU1ELElBQ0ksY0FBYyxDQUFDLEtBQUs7UUFDdkIsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7UUFFN0IsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ3BCLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQztTQUN2QztJQUNGLENBQUM7Ozs7SUFFRCxJQUFJLGNBQWM7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBTUQsSUFDSSxLQUFLLENBQUMsS0FBSztRQUNkLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7U0FDOUI7SUFDRixDQUFDOzs7O0lBRUQsSUFBSSxLQUFLO1FBQ1IsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO0lBQ3BCLENBQUM7Ozs7O0lBTUQsSUFDSSxNQUFNLENBQUMsS0FBSztRQUNmLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBRXJCLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNwQixJQUFJLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7U0FDL0I7SUFDRixDQUFDOzs7O0lBRUQsSUFBSSxNQUFNO1FBQ1QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3JCLENBQUM7Ozs7O0lBUUQsSUFDSSxhQUFhLENBQUMsS0FBYTtRQUM5QixJQUFJLEtBQUssS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLGNBQWMsS0FBSyxLQUFLLEVBQUU7WUFDekQsT0FBTztTQUNQO1FBQ0QsSUFBSSxDQUFDLGNBQWMsR0FBRyxLQUFLLENBQUM7UUFDNUIsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDcEQsQ0FBQzs7OztJQUVELElBQUksYUFBYTtRQUNoQixPQUFPLElBQUksQ0FBQyxjQUFjLENBQUM7SUFDNUIsQ0FBQzs7OztJQUdELE9BQU87UUFDTixJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRTtZQUNyQixJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBRTFDLElBQUksQ0FBQyw2QkFBNkIsRUFBRSxDQUFDO1lBQ3JDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxFQUFFO1lBQzVCLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxZQUFZLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQzthQUNuQjtZQUNELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7WUFFdkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRTtnQkFDN0IsVUFBVSxDQUNULEdBQUcsRUFBRSxDQUNKLENBQUMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FDaEcsQ0FBQzthQUNGO1NBQ0Q7SUFDRixDQUFDOzs7OztJQWVELDBCQUEwQjtRQUN6QixJQUFJLENBQUMsVUFBVSxDQUFDLG1CQUFtQixDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNwRCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUU7Z0JBQ3JCLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUN4QztpQkFBTTtnQkFDTixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQzthQUMxQjtRQUNGLENBQUMsQ0FBQyxDQUFDO0lBQ0osQ0FBQzs7Ozs7SUFLRCw2QkFBNkI7UUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDO1FBQ2pELElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxNQUFNLElBQUksS0FBSyxDQUFDO1FBQzlDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztRQUNuQyxJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDO1FBQ3JELElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztRQUNwRCxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN4QyxDQUFDOzs7Ozs7O0lBT0QsYUFBYSxDQUFDLEtBQVk7UUFDekIsSUFDQyxLQUFLLENBQUMsTUFBTSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLGFBQWE7WUFDdEQsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsRUFDNUQ7WUFDRCxxQkFBcUI7WUFDckIsSUFBSSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzVCO0lBQ0YsQ0FBQzs7Ozs7SUFLRCxnQkFBZ0I7UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQ25GLENBQUM7Ozs7O0lBS0QsV0FBVzs7Y0FDSixRQUFRLEdBQUcsZ0JBQWdCLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDO1FBRTVGLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssUUFBUSxFQUFFO1lBQzVDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7WUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztTQUM3QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssTUFBTSxFQUFFO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLEdBQUcsUUFBUSxDQUFDLFFBQVEsQ0FBQztTQUNsRDtRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssT0FBTyxFQUFFO1lBQzNDLElBQUksQ0FBQyxVQUFVLENBQUMsV0FBVyxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7WUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLEtBQUssQ0FBQztTQUM5QztRQUVELElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEtBQUssS0FBSyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxHQUFHLFFBQVEsQ0FBQyxTQUFTLENBQUM7WUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztTQUM3QztJQUNGLENBQUM7Ozs7O0lBS0QsWUFBWTs7Y0FDTCxtQkFBbUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLENBQUMsbUJBQW1COztjQUNsRyxZQUFZLEdBQUcsSUFBSSxDQUFDLHdCQUF3QjthQUNoRCx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQzthQUM1QyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUV2QixJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLENBQUM7O2NBRXhDLE9BQU8sR0FBRyxtQkFBQSxDQUFDLG1CQUFBLFlBQVksQ0FBQyxRQUFRLEVBQXdCLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQWU7UUFFM0YsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsT0FBTyxZQUFZLENBQUMsUUFBUSxDQUFDO0lBQzlCLENBQUM7Ozs7O0lBS0QsaUJBQWlCOztjQUNWLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLHNCQUFzQixDQUFDLENBQUMsQ0FBQyxtQkFBbUI7O2NBQ2xHLFlBQVksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsdUJBQXVCLENBQUMsbUJBQW1CLENBQUM7UUFDL0YsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLFlBQVksQ0FBQyxDQUFDLFFBQVEsQ0FBQztJQUNyRSxDQUFDOzs7WUFyU0QsU0FBUyxTQUFDO2dCQUNWLFFBQVEsRUFBRSxnQkFBZ0I7YUFDMUI7OztZQVpBLGdCQUFnQjtZQVZoQix3QkFBd0I7WUFEeEIsY0FBYztZQU1kLFFBQVE7WUFJUixTQUFTO1lBR0YsU0FBUyx1QkFrTWQsUUFBUTs7O3NCQWpMVCxLQUFLLFNBQUMsY0FBYztnQ0FjcEIsS0FBSyxTQUFDLFNBQVM7dUJBa0JmLEtBQUs7c0JBaUJMLEtBQUs7c0JBaUJMLEtBQUs7NkJBaUJMLEtBQUs7b0JBaUJMLEtBQUs7cUJBZUwsS0FBSztrQ0FpQkwsTUFBTTs0QkFFTixLQUFLO3NCQWFMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7Ozs7SUF4SnhDLHlDQUF1Qjs7SUFDdkIsNENBQWM7O0lBRWQsdUNBQW1DOzs7OztJQWVuQyxpREFBMkI7Ozs7Ozs7SUFrQjNCLHdDQUFrQjs7Ozs7O0lBaUJsQix1Q0FBaUI7Ozs7OztJQWlCakIsdUNBQWlCOzs7Ozs7SUFpQmpCLDhDQUF3Qjs7Ozs7O0lBaUJ4QixxQ0FBZTs7Ozs7O0lBZWYsc0NBQWdCOzs7Ozs7SUFpQmhCLDZDQUFvQzs7SUFDcEMsa0RBQW1EOztJQXdDbEQsK0NBQXlDOztJQUN6Qyx1REFBeUQ7Ozs7O0lBQ3pELHFDQUE4Qjs7Ozs7SUFDOUIsdUNBQTBCOzs7OztJQUMxQix1Q0FBMkI7O0lBQzNCLDBDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFwcGxpY2F0aW9uUmVmLFxuXHRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0b3IsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRSZW5kZXJlcjIsXG5cdFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuLi8uLi9tb2RlbHMvZGF0ZXBpY2tlci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7RGlyZWN0aXZlT3B0aW9uc30gZnJvbSAnLi4vLi4vbW9kZWxzL2RpcmVjdGl2ZS1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtBbmltYXRlcGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi9hbmltYXRlcGlja2VyL2FuaW1hdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7RGF0ZXBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RlZmF1bHREaXJlY3RpdmVPcHRpb25zfSBmcm9tICcuL2RhdGVwaWNrZXIub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1thYURhdGVwaWNrZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyRGlyZWN0aXZlIHtcblx0ZGF0ZXBpY2tlcjogYW55ID0gbnVsbDsgLy8gVE9ETzogZml4IHR5cGVzOiBEYXRlcGlja2VyQ29tcG9uZW50IHwgQW5pbWF0ZXBpY2tlckNvbXBvbmVudFxuXHRjbGlja0xpc3RlbmVyO1xuXG5cdF9vcHRpb25zID0gRGVmYXVsdERpcmVjdGl2ZU9wdGlvbnM7XG5cblx0QElucHV0KCdhYURhdGVwaWNrZXInKVxuXHRzZXQgb3B0aW9ucyhvcHRpb25zOiBEaXJlY3RpdmVPcHRpb25zKSB7XG5cdFx0aWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCAhb3B0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBUT0RPOiBjb3VsZCBiZSBpbXByb3ZlZFxuXHRcdHRoaXMuX29wdGlvbnMgPSB7Li4udGhpcy5fb3B0aW9ucywgLi4ub3B0aW9uc307XG5cdH1cblxuXHRnZXQgb3B0aW9ucygpOiBEaXJlY3RpdmVPcHRpb25zIHtcblx0XHRyZXR1cm4gdGhpcy5fb3B0aW9ucztcblx0fVxuXG5cdHByaXZhdGUgX2RhdGVwaWNrZXJPcHRpb25zO1xuXHRASW5wdXQoJ29wdGlvbnMnKVxuXHRzZXQgZGF0ZXBpY2tlck9wdGlvbnMob3B0aW9uczogT3B0aW9ucykge1xuXHRcdHRoaXMuX2RhdGVwaWNrZXJPcHRpb25zID0gb3B0aW9ucztcblxuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5vcHRpb25zID0gb3B0aW9ucztcblx0XHR9XG5cdH1cblxuXHRnZXQgZGF0ZXBpY2tlck9wdGlvbnMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2RhdGVwaWNrZXJPcHRpb25zO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgdGhlIGxhbmd1YWdlIG1hbnVhbHkuIEEgc3RyaW5nIHdpdGggYSBCQ1AgNDcgbGFuZ3VhZ2UgdGFnXG5cdCAqIEBleGFtcGxlIG5sLU5MXG5cdCAqL1xuXHRwcml2YXRlIF9sYW5ndWFnZTtcblx0QElucHV0KClcblx0c2V0IGxhbmd1YWdlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9sYW5ndWFnZSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLmxhbmd1YWdlID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGxhbmd1YWdlKCkge1xuXHRcdHJldHVybiB0aGlzLl9sYW5ndWFnZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNaW5pbWFsIERhdGU6IElmIHNldCB0aGUgZGF0ZXMgYmVmb3JlIGl0IHdpbGwgYmUgZGlzYWJsZWRcblx0ICovXG5cdHByaXZhdGUgX21pbkRhdGU7XG5cdEBJbnB1dCgpXG5cdHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG5cdFx0dGhpcy5fbWluRGF0ZSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm1pbkRhdGUgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbWluRGF0ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fbWluRGF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXhpbWFsIERhdGU6IElmIHNldCB0aGUgZGF0ZXMgYWZ0ZXIgaXQgd2lsbCBiZSBkaXNhYmxlZFxuXHQgKi9cblx0cHJpdmF0ZSBfbWF4RGF0ZTtcblx0QElucHV0KClcblx0c2V0IG1heERhdGUodmFsdWU6IERhdGUpIHtcblx0XHR0aGlzLl9tYXhEYXRlID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubWF4RGF0ZSA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCBtYXhEYXRlKCkge1xuXHRcdHJldHVybiB0aGlzLl9taW5EYXRlO1xuXHR9XG5cblx0LyoqXG5cdCAqIE51bWJlciBvZiBtb250aHM6IHRoZSBudW1iZXIgb2YgbW9udGhzIGRpc3BsYXllZFxuXHQgKi9cblx0cHJpdmF0ZSBfbnVtYmVyT2ZNb250aHM7XG5cdEBJbnB1dCgpXG5cdHNldCBudW1iZXJPZk1vbnRocyh2YWx1ZSkge1xuXHRcdHRoaXMuX251bWJlck9mTW9udGhzID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubnVtYmVyT2ZNb250aHMgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbnVtYmVyT2ZNb250aHMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX251bWJlck9mTW9udGhzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZW1lIHN0cmluZyBpcyBhZGRlZCB0byB0aGUgaG9zdFxuXHQgKi9cblx0cHJpdmF0ZSBfdGhlbWU7XG5cdEBJbnB1dCgpXG5cdHNldCB0aGVtZSh2YWx1ZSkge1xuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci50aGVtZSA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCB0aGVtZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdGhlbWU7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG9wZW4gc3RhdGVcblx0ICovXG5cdHByaXZhdGUgX2lzT3Blbjtcblx0QElucHV0KClcblx0c2V0IGlzT3Blbih2YWx1ZSkge1xuXHRcdHRoaXMuX2lzT3BlbiA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLmlzT3BlbiA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCBpc09wZW4oKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzT3Blbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWxlY3RlZCBEYXRlczogaGFuZGxlcyB0aGUgc2VsZWN0ZWQgZGF0ZXMgYXJyYXkuIENhbiBiZSBzZXQgYm90aCBpbnRlcm5hbGx5IGFuZCBleHRlcm5hbGx5XG5cdCAqL1xuXHRwcml2YXRlIF9zZWxlY3RlZERhdGVzOiBEYXRlW10gPSBbXTtcblx0QE91dHB1dCgpIHNlbGVjdGVkRGF0ZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0QElucHV0KClcblx0c2V0IHNlbGVjdGVkRGF0ZXModmFsdWU6IERhdGVbXSkge1xuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3NlbGVjdGVkRGF0ZXMgPT09IHZhbHVlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX3NlbGVjdGVkRGF0ZXMgPSB2YWx1ZTtcblx0XHR0aGlzLnNlbGVjdGVkRGF0ZXNDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZERhdGVzKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZERhdGVzKCk6IERhdGVbXSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZXM7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuXHRvbkNsaWNrKCkge1xuXHRcdGlmICghdGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIgPSB0aGlzLmNyZWF0ZURhdGVwaWNrZXIoKTtcblxuXHRcdFx0dGhpcy5zZXREYXRlcGlja2VyT3B0aW9uc0FuZElucHV0cygpO1xuXHRcdFx0dGhpcy5zdWJzY3JpYmVUb1NlbGVjdGVkQ2hhbmdlcygpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5kYXRlcGlja2VyLmlzT3Blbikge1xuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5hcHBlbmRUb0JvZHkpIHtcblx0XHRcdFx0dGhpcy5zZXRQb3NpdGlvbigpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm9wZW4oKTtcblxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5jbG9zZU9uQmx1cikge1xuXHRcdFx0XHRzZXRUaW1lb3V0KFxuXHRcdFx0XHRcdCgpID0+XG5cdFx0XHRcdFx0XHQodGhpcy5jbGlja0xpc3RlbmVyID0gdGhpcy5yZW5kZXJlci5saXN0ZW4oJ2RvY3VtZW50JywgJ2NsaWNrJywgdGhpcy5vbkJsdXJIYW5kbGVyLmJpbmQodGhpcykpKVxuXHRcdFx0XHQpO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdGNvbnN0cnVjdG9yKFxuXHRcdHB1YmxpYyB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxuXHRcdHB1YmxpYyBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcblx0XHRwcml2YXRlIGFwcFJlZjogQXBwbGljYXRpb25SZWYsXG5cdFx0cHJpdmF0ZSBpbmplY3RvcjogSW5qZWN0b3IsXG5cdFx0cHJpdmF0ZSByZW5kZXJlcjogUmVuZGVyZXIyLFxuXHRcdEBPcHRpb25hbCgpIHB1YmxpYyBmb3JtQ29udHJvbDogTmdDb250cm9sXG5cdCkge1xuXHR9XG5cblx0LyoqXG5cdCAqIEFkZCBzZWxlY3RlZCBjaGFuZ2VzXG5cdCAqL1xuXHRzdWJzY3JpYmVUb1NlbGVjdGVkQ2hhbmdlcygpOiB2b2lkIHtcblx0XHR0aGlzLmRhdGVwaWNrZXIuc2VsZWN0ZWREYXRlc0NoYW5nZS5zdWJzY3JpYmUoZGF0ZSA9PiB7XG5cdFx0XHRpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuXHRcdFx0XHR0aGlzLmZvcm1Db250cm9sLmNvbnRyb2wuc2V0VmFsdWUoZGF0ZSk7XG5cdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHR0aGlzLnNlbGVjdGVkRGF0ZXMgPSBkYXRlO1xuXHRcdFx0fVxuXHRcdH0pO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCBhbGwgdGhlIG9wdGlvbnMgYW5kIGlucHV0cyBvZiB0aGUgZGF0ZXBpY2tlclxuXHQgKi9cblx0c2V0RGF0ZXBpY2tlck9wdGlvbnNBbmRJbnB1dHMoKTogdm9pZCB7XG5cdFx0dGhpcy5kYXRlcGlja2VyLm9wdGlvbnMgPSB0aGlzLmRhdGVwaWNrZXJPcHRpb25zO1xuXHRcdHRoaXMuZGF0ZXBpY2tlci5pc09wZW4gPSB0aGlzLmlzT3BlbiB8fCBmYWxzZTtcblx0XHR0aGlzLmRhdGVwaWNrZXIuYXNEaXJlY3RpdmUgPSB0cnVlO1xuXHRcdHRoaXMuZGF0ZXBpY2tlci5udW1iZXJPZk1vbnRocyA9IHRoaXMubnVtYmVyT2ZNb250aHM7XG5cdFx0dGhpcy5kYXRlcGlja2VyLnRoZW1lID0gdGhpcy50aGVtZTtcblx0XHR0aGlzLmRhdGVwaWNrZXIuX3NlbGVjdGVkRGF0ZXMgPSB0aGlzLnNlbGVjdGVkRGF0ZXM7XG5cdFx0dGhpcy5kYXRlcGlja2VyLmxhbmd1YWdlID0gdGhpcy5sYW5ndWFnZTtcblx0XHR0aGlzLmRhdGVwaWNrZXIubWluRGF0ZSA9IHRoaXMubWluRGF0ZTtcblx0XHR0aGlzLmRhdGVwaWNrZXIubWluRGF0ZSA9IHRoaXMubWF4RGF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBIYW5kbGVzIHRoZSAoZmFrZWQpIGJsdXIgZXZlbnRcblx0ICpcblx0ICogQHBhcmFtIGV2ZW50XG5cdCAqL1xuXHRvbkJsdXJIYW5kbGVyKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXHRcdGlmIChcblx0XHRcdGV2ZW50LnRhcmdldCAhPT0gdGhpcy5kYXRlcGlja2VyLmVsZW1lbnQubmF0aXZlRWxlbWVudCAmJlxuXHRcdFx0IXRoaXMuZGF0ZXBpY2tlci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuY29udGFpbnMoZXZlbnQudGFyZ2V0KVxuXHRcdCkge1xuXHRcdFx0Ly8gY2hlY2sgY2xpY2sgb3JpZ2luXG5cdFx0XHR0aGlzLmNsaWNrTGlzdGVuZXIoKTtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5jbG9zZSh0cnVlKTtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogUmV0dXJucyBhIGNyZWF0ZSBEYXRlcGlja2VyQ29tcG9uZW50IG1ldGhvZFxuXHQgKi9cblx0Y3JlYXRlRGF0ZXBpY2tlcigpOiBhbnkge1xuXHRcdHJldHVybiB0aGlzLm9wdGlvbnMuYXBwZW5kVG9Cb2R5ID8gdGhpcy5hcHBlbmRUb0JvZHkoKSA6IHRoaXMuYXBwZW5kVG9Db250YWluZXIoKTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXRzIHRoZSBwb3NpdGlvbiBvZiB0aGUgZGF0ZXBpY2tlclxuXHQgKi9cblx0c2V0UG9zaXRpb24oKSB7XG5cdFx0Y29uc3QgcG9zaXRpb24gPSBVdGlsaXRpZXNTZXJ2aWNlLmdldFBhZ2VPZmZzZXQodGhpcy52aWV3Q29udGFpbmVyUmVmLmVsZW1lbnQubmF0aXZlRWxlbWVudCk7XG5cblx0XHRpZiAodGhpcy5vcHRpb25zLm9wZW5EaXJlY3Rpb24gPT09ICdib3R0b20nKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIudG9wUG9zaXRpb24gPSBwb3NpdGlvbi5ib3R0b207XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubGVmdFBvc2l0aW9uID0gcG9zaXRpb24ubGVmdDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5vcHRpb25zLm9wZW5EaXJlY3Rpb24gPT09ICdsZWZ0Jykge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLnRvcFBvc2l0aW9uID0gcG9zaXRpb24udG9wO1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLnJpZ2h0UG9zaXRpb24gPSBwb3NpdGlvbi5mb3JSaWdodDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5vcHRpb25zLm9wZW5EaXJlY3Rpb24gPT09ICdyaWdodCcpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci50b3BQb3NpdGlvbiA9IHBvc2l0aW9uLnRvcDtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5sZWZ0UG9zaXRpb24gPSBwb3NpdGlvbi5yaWdodDtcblx0XHR9XG5cblx0XHRpZiAodGhpcy5vcHRpb25zLm9wZW5EaXJlY3Rpb24gPT09ICd0b3AnKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIuYm90dG9tUG9zaXRpb24gPSBwb3NpdGlvbi5mb3JCb3R0b207XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubGVmdFBvc2l0aW9uID0gcG9zaXRpb24ubGVmdDtcblx0XHR9XG5cdH1cblxuXHQvKipcblx0ICogQXBwZW5kcyB0aGUgRGF0ZXBpY2tlckNvbXBvbmVudCB0byB0aGUgYm9keSBhbmQgcmV0dXJucyB0aGUgaW5zdGFuY2Vcblx0ICovXG5cdGFwcGVuZFRvQm9keSgpOiBhbnkge1xuXHRcdGNvbnN0IGRhdGVwaWNrZXJDb21wb25lbnQgPSB0aGlzLm9wdGlvbnMudXNlQW5pbWF0ZVBpY2tlciA/IEFuaW1hdGVwaWNrZXJDb21wb25lbnQgOiBEYXRlcGlja2VyQ29tcG9uZW50O1xuXHRcdGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXG5cdFx0XHQucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoZGF0ZXBpY2tlckNvbXBvbmVudClcblx0XHRcdC5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG5cblx0XHR0aGlzLmFwcFJlZi5hdHRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG5cblx0XHRjb25zdCBkb21FbGVtID0gKGNvbXBvbmVudFJlZi5ob3N0VmlldyBhcyBFbWJlZGRlZFZpZXdSZWY8YW55Pikucm9vdE5vZGVzWzBdIGFzIEhUTUxFbGVtZW50O1xuXG5cdFx0ZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChkb21FbGVtKTtcblxuXHRcdHJldHVybiBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG5cdH1cblxuXHQvKipcblx0ICogQXBwZW5kcyB0aGUgRGF0ZXBpY2tlckNvbXBvbmVudCB0byB0aGUgY29udGFpbmVyIGFuZCByZXR1cm5zIHRoZSBpbnN0YW5jZVxuXHQgKi9cblx0YXBwZW5kVG9Db250YWluZXIoKTogYW55IHtcblx0XHRjb25zdCBkYXRlcGlja2VyQ29tcG9uZW50ID0gdGhpcy5vcHRpb25zLnVzZUFuaW1hdGVQaWNrZXIgPyBBbmltYXRlcGlja2VyQ29tcG9uZW50IDogRGF0ZXBpY2tlckNvbXBvbmVudDtcblx0XHRjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShkYXRlcGlja2VyQ29tcG9uZW50KTtcblx0XHRyZXR1cm4gdGhpcy52aWV3Q29udGFpbmVyUmVmLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRSZWYpLmluc3RhbmNlO1xuXHR9XG59XG4iXX0=
@@ -1,41 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- /** @type {?} */
6
- export const DefaultOptions = {
7
- selectMultiple: false,
8
- // Select multiple dates
9
- closeOnSelect: false,
10
- // Close datepicker when date(s) selected
11
- animationSpeed: 400,
12
- // Animation speed in ms
13
- easing: 'ease-in',
14
- // Easing type string
15
- hideRestDays: false,
16
- // Hide the rest days
17
- disableRestDays: true,
18
- // Disable the click on rest days
19
- hideNavigation: false,
20
- // Hide the navigation
21
- range: false,
22
- // Use range functionality
23
- currentDate: new Date(),
24
- // Tne current displayed date (month, year)
25
- timeoutBeforeClosing: 300,
26
- // The timeout / delay before closing
27
- weekdayFormat: 'short',
28
- // "narrow", "short", "long"
29
- weekStart: 'monday' // Set the week start day
30
- };
31
- /** @type {?} */
32
- export const DefaultDirectiveOptions = {
33
- appendToBody: true,
34
- // Append Datepicker to body
35
- openDirection: 'bottom',
36
- // The direction it should open to
37
- closeOnBlur: true,
38
- // Close the datepicker onBlur
39
- useAnimatePicker: true // Use the animatepickerComponent
40
- };
41
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFuaW1hdGluZy1kYXRlcGlja2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLE9BQU8sY0FBYyxHQUFHO0lBQzdCLGNBQWMsRUFBRSxLQUFLOztJQUNyQixhQUFhLEVBQUUsS0FBSzs7SUFDcEIsY0FBYyxFQUFFLEdBQUc7O0lBQ25CLE1BQU0sRUFBRSxTQUFTOztJQUNqQixZQUFZLEVBQUUsS0FBSzs7SUFDbkIsZUFBZSxFQUFFLElBQUk7O0lBQ3JCLGNBQWMsRUFBRSxLQUFLOztJQUNyQixLQUFLLEVBQUUsS0FBSzs7SUFDWixXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUU7O0lBQ3ZCLG9CQUFvQixFQUFFLEdBQUc7O0lBQ3pCLGFBQWEsRUFBRSxPQUFPOztJQUN0QixTQUFTLEVBQUUsUUFBUSxDQUFDLHlCQUF5QjtDQUM3Qzs7QUFFRCxNQUFNLE9BQU8sdUJBQXVCLEdBQUc7SUFDdEMsWUFBWSxFQUFFLElBQUk7O0lBQ2xCLGFBQWEsRUFBRSxRQUFROztJQUN2QixXQUFXLEVBQUUsSUFBSTs7SUFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlDQUFpQztDQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEZWZhdWx0T3B0aW9ucyA9IHtcblx0c2VsZWN0TXVsdGlwbGU6IGZhbHNlLCAvLyBTZWxlY3QgbXVsdGlwbGUgZGF0ZXNcblx0Y2xvc2VPblNlbGVjdDogZmFsc2UsIC8vIENsb3NlIGRhdGVwaWNrZXIgd2hlbiBkYXRlKHMpIHNlbGVjdGVkXG5cdGFuaW1hdGlvblNwZWVkOiA0MDAsIC8vIEFuaW1hdGlvbiBzcGVlZCBpbiBtc1xuXHRlYXNpbmc6ICdlYXNlLWluJywgLy8gRWFzaW5nIHR5cGUgc3RyaW5nXG5cdGhpZGVSZXN0RGF5czogZmFsc2UsIC8vIEhpZGUgdGhlIHJlc3QgZGF5c1xuXHRkaXNhYmxlUmVzdERheXM6IHRydWUsIC8vIERpc2FibGUgdGhlIGNsaWNrIG9uIHJlc3QgZGF5c1xuXHRoaWRlTmF2aWdhdGlvbjogZmFsc2UsIC8vIEhpZGUgdGhlIG5hdmlnYXRpb25cblx0cmFuZ2U6IGZhbHNlLCAvLyBVc2UgcmFuZ2UgZnVuY3Rpb25hbGl0eVxuXHRjdXJyZW50RGF0ZTogbmV3IERhdGUoKSwgLy8gVG5lIGN1cnJlbnQgZGlzcGxheWVkIGRhdGUgKG1vbnRoLCB5ZWFyKVxuXHR0aW1lb3V0QmVmb3JlQ2xvc2luZzogMzAwLCAvLyBUaGUgdGltZW91dCAvIGRlbGF5IGJlZm9yZSBjbG9zaW5nXG5cdHdlZWtkYXlGb3JtYXQ6ICdzaG9ydCcsIC8vIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcblx0d2Vla1N0YXJ0OiAnbW9uZGF5JyAvLyBTZXQgdGhlIHdlZWsgc3RhcnQgZGF5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERpcmVjdGl2ZU9wdGlvbnMgPSB7XG5cdGFwcGVuZFRvQm9keTogdHJ1ZSwgLy8gQXBwZW5kIERhdGVwaWNrZXIgdG8gYm9keVxuXHRvcGVuRGlyZWN0aW9uOiAnYm90dG9tJywgLy8gVGhlIGRpcmVjdGlvbiBpdCBzaG91bGQgb3BlbiB0b1xuXHRjbG9zZU9uQmx1cjogdHJ1ZSwgLy8gQ2xvc2UgdGhlIGRhdGVwaWNrZXIgb25CbHVyXG5cdHVzZUFuaW1hdGVQaWNrZXI6IHRydWUgLy8gVXNlIHRoZSBhbmltYXRlcGlja2VyQ29tcG9uZW50XG59O1xuIl19