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,498 +0,0 @@
1
- /**
2
- * @fileoverview added by tsickle
3
- * @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
4
- */
5
- import * as tslib_1 from "tslib";
6
- import { ApplicationRef, ComponentFactoryResolver, Directive, EventEmitter, HostListener, Injector, Input, Optional, Output, Renderer2, ViewContainerRef } from '@angular/core';
7
- import { NgControl } from '@angular/forms';
8
- import { UtilitiesService } from '../../services/utilities.service';
9
- import { AnimatepickerComponent } from '../animatepicker/animatepicker.component';
10
- import { DatepickerComponent } from './datepicker.component';
11
- import { DefaultDirectiveOptions } from './datepicker.options';
12
- var DatepickerDirective = /** @class */ (function () {
13
- function DatepickerDirective(viewContainerRef, componentFactoryResolver, appRef, injector, renderer, formControl) {
14
- this.viewContainerRef = viewContainerRef;
15
- this.componentFactoryResolver = componentFactoryResolver;
16
- this.appRef = appRef;
17
- this.injector = injector;
18
- this.renderer = renderer;
19
- this.formControl = formControl;
20
- this.datepicker = null; // TODO: fix types: DatepickerComponent | AnimatepickerComponent
21
- this._options = DefaultDirectiveOptions;
22
- /**
23
- * Selected Dates: handles the selected dates array. Can be set both internally and externally
24
- */
25
- this._selectedDates = [];
26
- this.selectedDatesChange = new EventEmitter();
27
- }
28
- Object.defineProperty(DatepickerDirective.prototype, "options", {
29
- get: /**
30
- * @return {?}
31
- */
32
- function () {
33
- return this._options;
34
- },
35
- set: /**
36
- * @param {?} options
37
- * @return {?}
38
- */
39
- function (options) {
40
- if (options === undefined || !options) {
41
- return;
42
- }
43
- // TODO: could be improved
44
- this._options = tslib_1.__assign({}, this._options, options);
45
- },
46
- enumerable: true,
47
- configurable: true
48
- });
49
- Object.defineProperty(DatepickerDirective.prototype, "datepickerOptions", {
50
- get: /**
51
- * @return {?}
52
- */
53
- function () {
54
- return this._datepickerOptions;
55
- },
56
- set: /**
57
- * @param {?} options
58
- * @return {?}
59
- */
60
- function (options) {
61
- this._datepickerOptions = options;
62
- if (this.datepicker) {
63
- this.datepicker.options = options;
64
- }
65
- },
66
- enumerable: true,
67
- configurable: true
68
- });
69
- Object.defineProperty(DatepickerDirective.prototype, "language", {
70
- get: /**
71
- * @return {?}
72
- */
73
- function () {
74
- return this._language;
75
- },
76
- set: /**
77
- * @param {?} value
78
- * @return {?}
79
- */
80
- function (value) {
81
- this._language = value;
82
- if (this.datepicker) {
83
- this.datepicker.language = value;
84
- }
85
- },
86
- enumerable: true,
87
- configurable: true
88
- });
89
- Object.defineProperty(DatepickerDirective.prototype, "minDate", {
90
- get: /**
91
- * @return {?}
92
- */
93
- function () {
94
- return this._minDate;
95
- },
96
- set: /**
97
- * @param {?} value
98
- * @return {?}
99
- */
100
- function (value) {
101
- this._minDate = value;
102
- if (this.datepicker) {
103
- this.datepicker.minDate = value;
104
- }
105
- },
106
- enumerable: true,
107
- configurable: true
108
- });
109
- Object.defineProperty(DatepickerDirective.prototype, "maxDate", {
110
- get: /**
111
- * @return {?}
112
- */
113
- function () {
114
- return this._minDate;
115
- },
116
- set: /**
117
- * @param {?} value
118
- * @return {?}
119
- */
120
- function (value) {
121
- this._maxDate = value;
122
- if (this.datepicker) {
123
- this.datepicker.maxDate = value;
124
- }
125
- },
126
- enumerable: true,
127
- configurable: true
128
- });
129
- Object.defineProperty(DatepickerDirective.prototype, "numberOfMonths", {
130
- get: /**
131
- * @return {?}
132
- */
133
- function () {
134
- return this._numberOfMonths;
135
- },
136
- set: /**
137
- * @param {?} value
138
- * @return {?}
139
- */
140
- function (value) {
141
- this._numberOfMonths = value;
142
- if (this.datepicker) {
143
- this.datepicker.numberOfMonths = value;
144
- }
145
- },
146
- enumerable: true,
147
- configurable: true
148
- });
149
- Object.defineProperty(DatepickerDirective.prototype, "theme", {
150
- get: /**
151
- * @return {?}
152
- */
153
- function () {
154
- return this._theme;
155
- },
156
- set: /**
157
- * @param {?} value
158
- * @return {?}
159
- */
160
- function (value) {
161
- if (this.datepicker) {
162
- this.datepicker.theme = value;
163
- }
164
- },
165
- enumerable: true,
166
- configurable: true
167
- });
168
- Object.defineProperty(DatepickerDirective.prototype, "isOpen", {
169
- get: /**
170
- * @return {?}
171
- */
172
- function () {
173
- return this._isOpen;
174
- },
175
- set: /**
176
- * @param {?} value
177
- * @return {?}
178
- */
179
- function (value) {
180
- this._isOpen = value;
181
- if (this.datepicker) {
182
- this.datepicker.isOpen = value;
183
- }
184
- },
185
- enumerable: true,
186
- configurable: true
187
- });
188
- Object.defineProperty(DatepickerDirective.prototype, "selectedDates", {
189
- get: /**
190
- * @return {?}
191
- */
192
- function () {
193
- return this._selectedDates;
194
- },
195
- set: /**
196
- * @param {?} value
197
- * @return {?}
198
- */
199
- function (value) {
200
- if (value === undefined || this._selectedDates === value) {
201
- return;
202
- }
203
- this._selectedDates = value;
204
- this.selectedDatesChange.emit(this._selectedDates);
205
- },
206
- enumerable: true,
207
- configurable: true
208
- });
209
- /**
210
- * @return {?}
211
- */
212
- DatepickerDirective.prototype.onClick = /**
213
- * @return {?}
214
- */
215
- function () {
216
- var _this = this;
217
- if (!this.datepicker) {
218
- this.datepicker = this.createDatepicker();
219
- this.setDatepickerOptionsAndInputs();
220
- this.subscribeToSelectedChanges();
221
- }
222
- if (!this.datepicker.isOpen) {
223
- if (this.options.appendToBody) {
224
- this.setPosition();
225
- }
226
- this.datepicker.open();
227
- if (this.options.closeOnBlur) {
228
- setTimeout(function () {
229
- return (_this.clickListener = _this.renderer.listen('document', 'click', _this.onBlurHandler.bind(_this)));
230
- });
231
- }
232
- }
233
- };
234
- /**
235
- * Add selected changes
236
- */
237
- /**
238
- * Add selected changes
239
- * @return {?}
240
- */
241
- DatepickerDirective.prototype.subscribeToSelectedChanges = /**
242
- * Add selected changes
243
- * @return {?}
244
- */
245
- function () {
246
- var _this = this;
247
- this.datepicker.selectedDatesChange.subscribe(function (date) {
248
- if (_this.formControl) {
249
- _this.formControl.control.setValue(date);
250
- }
251
- else {
252
- _this.selectedDates = date;
253
- }
254
- });
255
- };
256
- /**
257
- * Set all the options and inputs of the datepicker
258
- */
259
- /**
260
- * Set all the options and inputs of the datepicker
261
- * @return {?}
262
- */
263
- DatepickerDirective.prototype.setDatepickerOptionsAndInputs = /**
264
- * Set all the options and inputs of the datepicker
265
- * @return {?}
266
- */
267
- function () {
268
- this.datepicker.options = this.datepickerOptions;
269
- this.datepicker.isOpen = this.isOpen || false;
270
- this.datepicker.asDirective = true;
271
- this.datepicker.numberOfMonths = this.numberOfMonths;
272
- this.datepicker.theme = this.theme;
273
- this.datepicker._selectedDates = this.selectedDates;
274
- this.datepicker.language = this.language;
275
- this.datepicker.minDate = this.minDate;
276
- this.datepicker.minDate = this.maxDate;
277
- };
278
- /**
279
- * Handles the (faked) blur event
280
- *
281
- * @param event
282
- */
283
- /**
284
- * Handles the (faked) blur event
285
- *
286
- * @param {?} event
287
- * @return {?}
288
- */
289
- DatepickerDirective.prototype.onBlurHandler = /**
290
- * Handles the (faked) blur event
291
- *
292
- * @param {?} event
293
- * @return {?}
294
- */
295
- function (event) {
296
- if (event.target !== this.datepicker.element.nativeElement &&
297
- !this.datepicker.element.nativeElement.contains(event.target)) {
298
- // check click origin
299
- this.clickListener();
300
- this.datepicker.close(true);
301
- }
302
- };
303
- /**
304
- * Returns a create DatepickerComponent method
305
- */
306
- /**
307
- * Returns a create DatepickerComponent method
308
- * @return {?}
309
- */
310
- DatepickerDirective.prototype.createDatepicker = /**
311
- * Returns a create DatepickerComponent method
312
- * @return {?}
313
- */
314
- function () {
315
- return this.options.appendToBody ? this.appendToBody() : this.appendToContainer();
316
- };
317
- /**
318
- * Sets the position of the datepicker
319
- */
320
- /**
321
- * Sets the position of the datepicker
322
- * @return {?}
323
- */
324
- DatepickerDirective.prototype.setPosition = /**
325
- * Sets the position of the datepicker
326
- * @return {?}
327
- */
328
- function () {
329
- /** @type {?} */
330
- var position = UtilitiesService.getPageOffset(this.viewContainerRef.element.nativeElement);
331
- if (this.options.openDirection === 'bottom') {
332
- this.datepicker.topPosition = position.bottom;
333
- this.datepicker.leftPosition = position.left;
334
- }
335
- if (this.options.openDirection === 'left') {
336
- this.datepicker.topPosition = position.top;
337
- this.datepicker.rightPosition = position.forRight;
338
- }
339
- if (this.options.openDirection === 'right') {
340
- this.datepicker.topPosition = position.top;
341
- this.datepicker.leftPosition = position.right;
342
- }
343
- if (this.options.openDirection === 'top') {
344
- this.datepicker.bottomPosition = position.forBottom;
345
- this.datepicker.leftPosition = position.left;
346
- }
347
- };
348
- /**
349
- * Appends the DatepickerComponent to the body and returns the instance
350
- */
351
- /**
352
- * Appends the DatepickerComponent to the body and returns the instance
353
- * @return {?}
354
- */
355
- DatepickerDirective.prototype.appendToBody = /**
356
- * Appends the DatepickerComponent to the body and returns the instance
357
- * @return {?}
358
- */
359
- function () {
360
- /** @type {?} */
361
- var datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
362
- /** @type {?} */
363
- var componentRef = this.componentFactoryResolver
364
- .resolveComponentFactory(datepickerComponent)
365
- .create(this.injector);
366
- this.appRef.attachView(componentRef.hostView);
367
- /** @type {?} */
368
- var domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))).rootNodes[0]));
369
- document.body.appendChild(domElem);
370
- return componentRef.instance;
371
- };
372
- /**
373
- * Appends the DatepickerComponent to the container and returns the instance
374
- */
375
- /**
376
- * Appends the DatepickerComponent to the container and returns the instance
377
- * @return {?}
378
- */
379
- DatepickerDirective.prototype.appendToContainer = /**
380
- * Appends the DatepickerComponent to the container and returns the instance
381
- * @return {?}
382
- */
383
- function () {
384
- /** @type {?} */
385
- var datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
386
- /** @type {?} */
387
- var componentRef = this.componentFactoryResolver.resolveComponentFactory(datepickerComponent);
388
- return this.viewContainerRef.createComponent(componentRef).instance;
389
- };
390
- DatepickerDirective.decorators = [
391
- { type: Directive, args: [{
392
- selector: '[aaDatepicker]'
393
- },] },
394
- ];
395
- DatepickerDirective.ctorParameters = function () { return [
396
- { type: ViewContainerRef },
397
- { type: ComponentFactoryResolver },
398
- { type: ApplicationRef },
399
- { type: Injector },
400
- { type: Renderer2 },
401
- { type: NgControl, decorators: [{ type: Optional }] }
402
- ]; };
403
- DatepickerDirective.propDecorators = {
404
- options: [{ type: Input, args: ['aaDatepicker',] }],
405
- datepickerOptions: [{ type: Input, args: ['options',] }],
406
- language: [{ type: Input }],
407
- minDate: [{ type: Input }],
408
- maxDate: [{ type: Input }],
409
- numberOfMonths: [{ type: Input }],
410
- theme: [{ type: Input }],
411
- isOpen: [{ type: Input }],
412
- selectedDatesChange: [{ type: Output }],
413
- selectedDates: [{ type: Input }],
414
- onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
415
- };
416
- return DatepickerDirective;
417
- }());
418
- export { DatepickerDirective };
419
- if (false) {
420
- /** @type {?} */
421
- DatepickerDirective.prototype.datepicker;
422
- /** @type {?} */
423
- DatepickerDirective.prototype.clickListener;
424
- /** @type {?} */
425
- DatepickerDirective.prototype._options;
426
- /**
427
- * @type {?}
428
- * @private
429
- */
430
- DatepickerDirective.prototype._datepickerOptions;
431
- /**
432
- * Set the the language manualy. A string with a BCP 47 language tag
433
- * \@example nl-NL
434
- * @type {?}
435
- * @private
436
- */
437
- DatepickerDirective.prototype._language;
438
- /**
439
- * Minimal Date: If set the dates before it will be disabled
440
- * @type {?}
441
- * @private
442
- */
443
- DatepickerDirective.prototype._minDate;
444
- /**
445
- * Maximal Date: If set the dates after it will be disabled
446
- * @type {?}
447
- * @private
448
- */
449
- DatepickerDirective.prototype._maxDate;
450
- /**
451
- * Number of months: the number of months displayed
452
- * @type {?}
453
- * @private
454
- */
455
- DatepickerDirective.prototype._numberOfMonths;
456
- /**
457
- * Theme string is added to the host
458
- * @type {?}
459
- * @private
460
- */
461
- DatepickerDirective.prototype._theme;
462
- /**
463
- * The open state
464
- * @type {?}
465
- * @private
466
- */
467
- DatepickerDirective.prototype._isOpen;
468
- /**
469
- * Selected Dates: handles the selected dates array. Can be set both internally and externally
470
- * @type {?}
471
- * @private
472
- */
473
- DatepickerDirective.prototype._selectedDates;
474
- /** @type {?} */
475
- DatepickerDirective.prototype.selectedDatesChange;
476
- /** @type {?} */
477
- DatepickerDirective.prototype.viewContainerRef;
478
- /** @type {?} */
479
- DatepickerDirective.prototype.componentFactoryResolver;
480
- /**
481
- * @type {?}
482
- * @private
483
- */
484
- DatepickerDirective.prototype.appRef;
485
- /**
486
- * @type {?}
487
- * @private
488
- */
489
- DatepickerDirective.prototype.injector;
490
- /**
491
- * @type {?}
492
- * @private
493
- */
494
- DatepickerDirective.prototype.renderer;
495
- /** @type {?} */
496
- DatepickerDirective.prototype.formControl;
497
- }
498
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW5pbWF0aW5nLWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdEO0lBb0xDLDZCQUNRLGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDakQsTUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsUUFBbUIsRUFDUixXQUFzQjtRQUxsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDakQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ1IsZ0JBQVcsR0FBWCxXQUFXLENBQVc7UUF0TDFDLGVBQVUsR0FBUSxJQUFJLENBQUMsQ0FBQyxnRUFBZ0U7UUFHeEYsYUFBUSxHQUFHLHVCQUF1QixDQUFDO1FBa0luQzs7V0FFRztRQUNLLG1CQUFjLEdB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Qjs7WUFDbEcsWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQztRQUMvRixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQUMsWUFBWSxDQUFDLENBQUMsUUFBUSxDQUFDO0lBQ3JFLENBQUM7O2dCQXJTRCxTQUFTLFNBQUM7b0JBQ1YsUUFBUSxFQUFFLGdCQUFnQjtpQkFDMUI7OztnQkFaQSxnQkFBZ0I7Z0JBVmhCLHdCQUF3QjtnQkFEeEIsY0FBYztnQkFNZCxRQUFRO2dCQUlSLFNBQVM7Z0JBR0YsU0FBUyx1QkFrTWQsUUFBUTs7OzBCQWpMVCxLQUFLLFNBQUMsY0FBYztvQ0FjcEIsS0FBSyxTQUFDLFNBQVM7MkJBa0JmLEtBQUs7MEJBaUJMLEtBQUs7MEJBaUJMLEtBQUs7aUNBaUJMLEtBQUs7d0JBaUJMLEtBQUs7eUJBZUwsS0FBSztzQ0FpQkwsTUFBTTtnQ0FFTixLQUFLOzBCQWFMLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7O0lBMEl6QywwQkFBQztDQUFBLEFBdFNELElBc1NDO1NBblNZLG1CQUFtQjs7O0lBQy9CLHlDQUF1Qjs7SUFDdkIsNENBQWM7O0lBRWQsdUNBQW1DOzs7OztJQWVuQyxpREFBMkI7Ozs7Ozs7SUFrQjNCLHdDQUFrQjs7Ozs7O0lBaUJsQix1Q0FBaUI7Ozs7OztJQWlCakIsdUNBQWlCOzs7Ozs7SUFpQmpCLDhDQUF3Qjs7Ozs7O0lBaUJ4QixxQ0FBZTs7Ozs7O0lBZWYsc0NBQWdCOzs7Ozs7SUFpQmhCLDZDQUFvQzs7SUFDcEMsa0RBQW1EOztJQXdDbEQsK0NBQXlDOztJQUN6Qyx1REFBeUQ7Ozs7O0lBQ3pELHFDQUE4Qjs7Ozs7SUFDOUIsdUNBQTBCOzs7OztJQUMxQix1Q0FBMkI7O0lBQzNCLDBDQUF5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG5cdEFwcGxpY2F0aW9uUmVmLFxuXHRDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdERpcmVjdGl2ZSxcblx0RW1iZWRkZWRWaWV3UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RMaXN0ZW5lcixcblx0SW5qZWN0b3IsXG5cdElucHV0LFxuXHRPcHRpb25hbCxcblx0T3V0cHV0LFxuXHRSZW5kZXJlcjIsXG5cdFZpZXdDb250YWluZXJSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge05nQ29udHJvbH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPcHRpb25zfSBmcm9tICcuLi8uLi9tb2RlbHMvZGF0ZXBpY2tlci1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7RGlyZWN0aXZlT3B0aW9uc30gZnJvbSAnLi4vLi4vbW9kZWxzL2RpcmVjdGl2ZS1vcHRpb25zLm1vZGVsJztcbmltcG9ydCB7VXRpbGl0aWVzU2VydmljZX0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbGl0aWVzLnNlcnZpY2UnO1xuaW1wb3J0IHtBbmltYXRlcGlja2VyQ29tcG9uZW50fSBmcm9tICcuLi9hbmltYXRlcGlja2VyL2FuaW1hdGVwaWNrZXIuY29tcG9uZW50JztcbmltcG9ydCB7RGF0ZXBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi9kYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RlZmF1bHREaXJlY3RpdmVPcHRpb25zfSBmcm9tICcuL2RhdGVwaWNrZXIub3B0aW9ucyc7XG5cbkBEaXJlY3RpdmUoe1xuXHRzZWxlY3RvcjogJ1thYURhdGVwaWNrZXJdJ1xufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyRGlyZWN0aXZlIHtcblx0ZGF0ZXBpY2tlcjogYW55ID0gbnVsbDsgLy8gVE9ETzogZml4IHR5cGVzOiBEYXRlcGlja2VyQ29tcG9uZW50IHwgQW5pbWF0ZXBpY2tlckNvbXBvbmVudFxuXHRjbGlja0xpc3RlbmVyO1xuXG5cdF9vcHRpb25zID0gRGVmYXVsdERpcmVjdGl2ZU9wdGlvbnM7XG5cblx0QElucHV0KCdhYURhdGVwaWNrZXInKVxuXHRzZXQgb3B0aW9ucyhvcHRpb25zOiBEaXJlY3RpdmVPcHRpb25zKSB7XG5cdFx0aWYgKG9wdGlvbnMgPT09IHVuZGVmaW5lZCB8fCAhb3B0aW9ucykge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHQvLyBUT0RPOiBjb3VsZCBiZSBpbXByb3ZlZFxuXHRcdHRoaXMuX29wdGlvbnMgPSB7Li4udGhpcy5fb3B0aW9ucywgLi4ub3B0aW9uc307XG5cdH1cblxuXHRnZXQgb3B0aW9ucygpOiBEaXJlY3RpdmVPcHRpb25zIHtcblx0XHRyZXR1cm4gdGhpcy5fb3B0aW9ucztcblx0fVxuXG5cdHByaXZhdGUgX2RhdGVwaWNrZXJPcHRpb25zO1xuXHRASW5wdXQoJ29wdGlvbnMnKVxuXHRzZXQgZGF0ZXBpY2tlck9wdGlvbnMob3B0aW9uczogT3B0aW9ucykge1xuXHRcdHRoaXMuX2RhdGVwaWNrZXJPcHRpb25zID0gb3B0aW9ucztcblxuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5vcHRpb25zID0gb3B0aW9ucztcblx0XHR9XG5cdH1cblxuXHRnZXQgZGF0ZXBpY2tlck9wdGlvbnMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2RhdGVwaWNrZXJPcHRpb25zO1xuXHR9XG5cblx0LyoqXG5cdCAqIFNldCB0aGUgdGhlIGxhbmd1YWdlIG1hbnVhbHkuIEEgc3RyaW5nIHdpdGggYSBCQ1AgNDcgbGFuZ3VhZ2UgdGFnXG5cdCAqIEBleGFtcGxlIG5sLU5MXG5cdCAqL1xuXHRwcml2YXRlIF9sYW5ndWFnZTtcblx0QElucHV0KClcblx0c2V0IGxhbmd1YWdlKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLl9sYW5ndWFnZSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLmxhbmd1YWdlID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGxhbmd1YWdlKCkge1xuXHRcdHJldHVybiB0aGlzLl9sYW5ndWFnZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNaW5pbWFsIERhdGU6IElmIHNldCB0aGUgZGF0ZXMgYmVmb3JlIGl0IHdpbGwgYmUgZGlzYWJsZWRcblx0ICovXG5cdHByaXZhdGUgX21pbkRhdGU7XG5cdEBJbnB1dCgpXG5cdHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlKSB7XG5cdFx0dGhpcy5fbWluRGF0ZSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm1pbkRhdGUgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbWluRGF0ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fbWluRGF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBNYXhpbWFsIERhdGU6IElmIHNldCB0aGUgZGF0ZXMgYWZ0ZXIgaXQgd2lsbCBiZSBkaXNhYmxlZFxuXHQgKi9cblx0cHJpdmF0ZSBfbWF4RGF0ZTtcblx0QElucHV0KClcblx0c2V0IG1heERhdGUodmFsdWU6IERhdGUpIHtcblx0XHR0aGlzLl9tYXhEYXRlID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubWF4RGF0ZSA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCBtYXhEYXRlKCkge1xuXHRcdHJldHVybiB0aGlzLl9taW5EYXRlO1xuXHR9XG5cblx0LyoqXG5cdCAqIE51bWJlciBvZiBtb250aHM6IHRoZSBudW1iZXIgb2YgbW9udGhzIGRpc3BsYXllZFxuXHQgKi9cblx0cHJpdmF0ZSBfbnVtYmVyT2ZNb250aHM7XG5cdEBJbnB1dCgpXG5cdHNldCBudW1iZXJPZk1vbnRocyh2YWx1ZSkge1xuXHRcdHRoaXMuX251bWJlck9mTW9udGhzID0gdmFsdWU7XG5cblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIubnVtYmVyT2ZNb250aHMgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbnVtYmVyT2ZNb250aHMoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX251bWJlck9mTW9udGhzO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZW1lIHN0cmluZyBpcyBhZGRlZCB0byB0aGUgaG9zdFxuXHQgKi9cblx0cHJpdmF0ZSBfdGhlbWU7XG5cdEBJbnB1dCgpXG5cdHNldCB0aGVtZSh2YWx1ZSkge1xuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci50aGVtZSA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCB0aGVtZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fdGhlbWU7XG5cdH1cblxuXHQvKipcblx0ICogVGhlIG9wZW4gc3RhdGVcblx0ICovXG5cdHByaXZhdGUgX2lzT3Blbjtcblx0QElucHV0KClcblx0c2V0IGlzT3Blbih2YWx1ZSkge1xuXHRcdHRoaXMuX2lzT3BlbiA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLmlzT3BlbiA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCBpc09wZW4oKSB7XG5cdFx0cmV0dXJuIHRoaXMuX2lzT3Blbjtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZWxlY3RlZCBEYXRlczogaGFuZGxlcyB0aGUgc2VsZWN0ZWQgZGF0ZXMgYXJyYXkuIENhbiBiZSBzZXQgYm90aCBpbnRlcm5hbGx5IGFuZCBleHRlcm5hbGx5XG5cdCAqL1xuXHRwcml2YXRlIF9zZWxlY3RlZERhdGVzOiBEYXRlW10gPSBbXTtcblx0QE91dHB1dCgpIHNlbGVjdGVkRGF0ZXNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cblx0QElucHV0KClcblx0c2V0IHNlbGVjdGVkRGF0ZXModmFsdWU6IERhdGVbXSkge1xuXHRcdGlmICh2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHRoaXMuX3NlbGVjdGVkRGF0ZXMgPT09IHZhbHVlKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuX3NlbGVjdGVkRGF0ZXMgPSB2YWx1ZTtcblx0XHR0aGlzLnNlbGVjdGVkRGF0ZXNDaGFuZ2UuZW1pdCh0aGlzLl9zZWxlY3RlZERhdGVzKTtcblx0fVxuXG5cdGdldCBzZWxlY3RlZERhdGVzKCk6IERhdGVbXSB7XG5cdFx0cmV0dXJuIHRoaXMuX3NlbGVjdGVkRGF0ZXM7XG5cdH1cblxuXHRASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50LnRhcmdldCddKVxuXHRvbkNsaWNrKCkge1xuXHRcdGlmICghdGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIgPSB0aGlzLmNyZWF0ZURhdGVwaWNrZXIoKTtcblxuXHRcdFx0dGhpcy5zZXREYXRlcGlja2VyT3B0aW9uc0FuZElucHV0cygpO1xuXHRcdFx0dGhpcy5zdWJzY3JpYmVUb1NlbGVjdGVkQ2hhbmdlcygpO1xuXHRcdH1cblxuXHRcdGlmICghdGhpcy5kYXRlcGlja2VyLmlzT3Blbikge1xuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5hcHBlbmRUb0JvZHkpIHtcblx0XHRcdFx0dGhpcy5zZXRQb3NpdGlvbigpO1xuXHRcdFx0fVxuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm9wZW4oKTtcblxuXHRcdFx0aWYgKHRoaXMub3B0aW9ucy5jbG9zZU9uQmx1cikge1xuXHRcdFx0XHRzZXRUaW1lb3V0KFxuXHRcdFx0XHRcdCgpID0+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 var 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 var 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5vcHRpb25zLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmd4LWFuaW1hdGluZy1kYXRlcGlja2VyLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLm9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxNQUFNLEtBQU8sY0FBYyxHQUFHO0lBQzdCLGNBQWMsRUFBRSxLQUFLOztJQUNyQixhQUFhLEVBQUUsS0FBSzs7SUFDcEIsY0FBYyxFQUFFLEdBQUc7O0lBQ25CLE1BQU0sRUFBRSxTQUFTOztJQUNqQixZQUFZLEVBQUUsS0FBSzs7SUFDbkIsZUFBZSxFQUFFLElBQUk7O0lBQ3JCLGNBQWMsRUFBRSxLQUFLOztJQUNyQixLQUFLLEVBQUUsS0FBSzs7SUFDWixXQUFXLEVBQUUsSUFBSSxJQUFJLEVBQUU7O0lBQ3ZCLG9CQUFvQixFQUFFLEdBQUc7O0lBQ3pCLGFBQWEsRUFBRSxPQUFPOztJQUN0QixTQUFTLEVBQUUsUUFBUSxDQUFDLHlCQUF5QjtDQUM3Qzs7QUFFRCxNQUFNLEtBQU8sdUJBQXVCLEdBQUc7SUFDdEMsWUFBWSxFQUFFLElBQUk7O0lBQ2xCLGFBQWEsRUFBRSxRQUFROztJQUN2QixXQUFXLEVBQUUsSUFBSTs7SUFDakIsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlDQUFpQztDQUN4RCIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjb25zdCBEZWZhdWx0T3B0aW9ucyA9IHtcblx0c2VsZWN0TXVsdGlwbGU6IGZhbHNlLCAvLyBTZWxlY3QgbXVsdGlwbGUgZGF0ZXNcblx0Y2xvc2VPblNlbGVjdDogZmFsc2UsIC8vIENsb3NlIGRhdGVwaWNrZXIgd2hlbiBkYXRlKHMpIHNlbGVjdGVkXG5cdGFuaW1hdGlvblNwZWVkOiA0MDAsIC8vIEFuaW1hdGlvbiBzcGVlZCBpbiBtc1xuXHRlYXNpbmc6ICdlYXNlLWluJywgLy8gRWFzaW5nIHR5cGUgc3RyaW5nXG5cdGhpZGVSZXN0RGF5czogZmFsc2UsIC8vIEhpZGUgdGhlIHJlc3QgZGF5c1xuXHRkaXNhYmxlUmVzdERheXM6IHRydWUsIC8vIERpc2FibGUgdGhlIGNsaWNrIG9uIHJlc3QgZGF5c1xuXHRoaWRlTmF2aWdhdGlvbjogZmFsc2UsIC8vIEhpZGUgdGhlIG5hdmlnYXRpb25cblx0cmFuZ2U6IGZhbHNlLCAvLyBVc2UgcmFuZ2UgZnVuY3Rpb25hbGl0eVxuXHRjdXJyZW50RGF0ZTogbmV3IERhdGUoKSwgLy8gVG5lIGN1cnJlbnQgZGlzcGxheWVkIGRhdGUgKG1vbnRoLCB5ZWFyKVxuXHR0aW1lb3V0QmVmb3JlQ2xvc2luZzogMzAwLCAvLyBUaGUgdGltZW91dCAvIGRlbGF5IGJlZm9yZSBjbG9zaW5nXG5cdHdlZWtkYXlGb3JtYXQ6ICdzaG9ydCcsIC8vIFwibmFycm93XCIsIFwic2hvcnRcIiwgXCJsb25nXCJcblx0d2Vla1N0YXJ0OiAnbW9uZGF5JyAvLyBTZXQgdGhlIHdlZWsgc3RhcnQgZGF5XG59O1xuXG5leHBvcnQgY29uc3QgRGVmYXVsdERpcmVjdGl2ZU9wdGlvbnMgPSB7XG5cdGFwcGVuZFRvQm9keTogdHJ1ZSwgLy8gQXBwZW5kIERhdGVwaWNrZXIgdG8gYm9keVxuXHRvcGVuRGlyZWN0aW9uOiAnYm90dG9tJywgLy8gVGhlIGRpcmVjdGlvbiBpdCBzaG91bGQgb3BlbiB0b1xuXHRjbG9zZU9uQmx1cjogdHJ1ZSwgLy8gQ2xvc2UgdGhlIGRhdGVwaWNrZXIgb25CbHVyXG5cdHVzZUFuaW1hdGVQaWNrZXI6IHRydWUgLy8gVXNlIHRoZSBhbmltYXRlcGlja2VyQ29tcG9uZW50XG59O1xuIl19