ngx-animating-datepicker 1.2.0 → 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 (56) hide show
  1. package/README.md +33 -1
  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 -2594
  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 -468
  11. package/esm2015/lib/components/datepicker/datepicker.component.js +0 -703
  12. package/esm2015/lib/components/datepicker/datepicker.directive.js +0 -408
  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 -574
  25. package/esm5/lib/components/datepicker/datepicker.component.js +0 -928
  26. package/esm5/lib/components/datepicker/datepicker.directive.js +0 -499
  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 -1886
  39. package/fesm2015/ngx-animating-datepicker.js.map +0 -1
  40. package/fesm5/ngx-animating-datepicker.js +0 -2529
  41. package/fesm5/ngx-animating-datepicker.js.map +0 -1
  42. package/lib/components/animatepicker/animatepicker.component.d.ts +0 -112
  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.d.ts +0 -8
  55. package/ngx-animating-datepicker.metadata.json +0 -1
  56. package/public_api.d.ts +0 -5
@@ -1,499 +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
- console.log('this.options.openDirection: ', this.options.openDirection);
332
- if (this.options.openDirection === 'bottom') {
333
- this.datepicker.topPosition = position.bottom;
334
- this.datepicker.leftPosition = position.left;
335
- }
336
- if (this.options.openDirection === 'left') {
337
- this.datepicker.topPosition = position.top;
338
- this.datepicker.rightPosition = position.forRight;
339
- }
340
- if (this.options.openDirection === 'right') {
341
- this.datepicker.topPosition = position.top;
342
- this.datepicker.leftPosition = position.right;
343
- }
344
- if (this.options.openDirection === 'top') {
345
- this.datepicker.bottomPosition = position.forBottom;
346
- this.datepicker.leftPosition = position.left;
347
- }
348
- };
349
- /**
350
- * Appends the DatepickerComponent to the body and returns the instance
351
- */
352
- /**
353
- * Appends the DatepickerComponent to the body and returns the instance
354
- * @return {?}
355
- */
356
- DatepickerDirective.prototype.appendToBody = /**
357
- * Appends the DatepickerComponent to the body and returns the instance
358
- * @return {?}
359
- */
360
- function () {
361
- /** @type {?} */
362
- var datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
363
- /** @type {?} */
364
- var componentRef = this.componentFactoryResolver
365
- .resolveComponentFactory(datepickerComponent)
366
- .create(this.injector);
367
- this.appRef.attachView(componentRef.hostView);
368
- /** @type {?} */
369
- var domElem = (/** @type {?} */ (((/** @type {?} */ (componentRef.hostView))).rootNodes[0]));
370
- document.body.appendChild(domElem);
371
- return componentRef.instance;
372
- };
373
- /**
374
- * Appends the DatepickerComponent to the container and returns the instance
375
- */
376
- /**
377
- * Appends the DatepickerComponent to the container and returns the instance
378
- * @return {?}
379
- */
380
- DatepickerDirective.prototype.appendToContainer = /**
381
- * Appends the DatepickerComponent to the container and returns the instance
382
- * @return {?}
383
- */
384
- function () {
385
- /** @type {?} */
386
- var datepickerComponent = this.options.useAnimatePicker ? AnimatepickerComponent : DatepickerComponent;
387
- /** @type {?} */
388
- var componentRef = this.componentFactoryResolver.resolveComponentFactory(datepickerComponent);
389
- return this.viewContainerRef.createComponent(componentRef).instance;
390
- };
391
- DatepickerDirective.decorators = [
392
- { type: Directive, args: [{
393
- selector: '[aaDatepicker]'
394
- },] },
395
- ];
396
- DatepickerDirective.ctorParameters = function () { return [
397
- { type: ViewContainerRef },
398
- { type: ComponentFactoryResolver },
399
- { type: ApplicationRef },
400
- { type: Injector },
401
- { type: Renderer2 },
402
- { type: NgControl, decorators: [{ type: Optional }] }
403
- ]; };
404
- DatepickerDirective.propDecorators = {
405
- options: [{ type: Input, args: ['aaDatepicker',] }],
406
- datepickerOptions: [{ type: Input, args: ['options',] }],
407
- language: [{ type: Input }],
408
- minDate: [{ type: Input }],
409
- maxDate: [{ type: Input }],
410
- numberOfMonths: [{ type: Input }],
411
- theme: [{ type: Input }],
412
- isOpen: [{ type: Input }],
413
- selectedDatesChange: [{ type: Output }],
414
- selectedDates: [{ type: Input }],
415
- onClick: [{ type: HostListener, args: ['click', ['$event.target'],] }]
416
- };
417
- return DatepickerDirective;
418
- }());
419
- export { DatepickerDirective };
420
- if (false) {
421
- /** @type {?} */
422
- DatepickerDirective.prototype.datepicker;
423
- /** @type {?} */
424
- DatepickerDirective.prototype.clickListener;
425
- /** @type {?} */
426
- DatepickerDirective.prototype._options;
427
- /**
428
- * @type {?}
429
- * @private
430
- */
431
- DatepickerDirective.prototype._datepickerOptions;
432
- /**
433
- * Set the the language manualy. A string with a BCP 47 language tag
434
- * \@example nl-NL
435
- * @type {?}
436
- * @private
437
- */
438
- DatepickerDirective.prototype._language;
439
- /**
440
- * Minimal Date: If set the dates before it will be disabled
441
- * @type {?}
442
- * @private
443
- */
444
- DatepickerDirective.prototype._minDate;
445
- /**
446
- * Maximal Date: If set the dates after it will be disabled
447
- * @type {?}
448
- * @private
449
- */
450
- DatepickerDirective.prototype._maxDate;
451
- /**
452
- * Number of months: the number of months displayed
453
- * @type {?}
454
- * @private
455
- */
456
- DatepickerDirective.prototype._numberOfMonths;
457
- /**
458
- * Theme string is added to the host
459
- * @type {?}
460
- * @private
461
- */
462
- DatepickerDirective.prototype._theme;
463
- /**
464
- * The open state
465
- * @type {?}
466
- * @private
467
- */
468
- DatepickerDirective.prototype._isOpen;
469
- /**
470
- * Selected Dates: handles the selected dates array. Can be set both internally and externally
471
- * @type {?}
472
- * @private
473
- */
474
- DatepickerDirective.prototype._selectedDates;
475
- /** @type {?} */
476
- DatepickerDirective.prototype.selectedDatesChange;
477
- /** @type {?} */
478
- DatepickerDirective.prototype.viewContainerRef;
479
- /** @type {?} */
480
- DatepickerDirective.prototype.componentFactoryResolver;
481
- /**
482
- * @type {?}
483
- * @private
484
- */
485
- DatepickerDirective.prototype.appRef;
486
- /**
487
- * @type {?}
488
- * @private
489
- */
490
- DatepickerDirective.prototype.injector;
491
- /**
492
- * @type {?}
493
- * @private
494
- */
495
- DatepickerDirective.prototype.renderer;
496
- /** @type {?} */
497
- DatepickerDirective.prototype.formControl;
498
- }
499
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZ3gtYW5pbWF0aW5nLWRhdGVwaWNrZXIvIiwic291cmNlcyI6WyJsaWIvY29tcG9uZW50cy9kYXRlcGlja2VyL2RhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUEsT0FBTyxFQUNOLGNBQWMsRUFDZCx3QkFBd0IsRUFDeEIsU0FBUyxFQUVULFlBQVksRUFDWixZQUFZLEVBQ1osUUFBUSxFQUNSLEtBQUssRUFDTCxRQUFRLEVBQ1IsTUFBTSxFQUNOLFNBQVMsRUFDVCxnQkFBZ0IsRUFDaEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFDLFNBQVMsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBR3pDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBQyxNQUFNLGtDQUFrQyxDQUFDO0FBQ2xFLE9BQU8sRUFBQyxzQkFBc0IsRUFBQyxNQUFNLDBDQUEwQyxDQUFDO0FBQ2hGLE9BQU8sRUFBQyxtQkFBbUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQzNELE9BQU8sRUFBQyx1QkFBdUIsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRTdEO0lBb0xDLDZCQUNRLGdCQUFrQyxFQUNsQyx3QkFBa0QsRUFDakQsTUFBc0IsRUFDdEIsUUFBa0IsRUFDbEIsUUFBbUIsRUFDUixXQUFzQjtRQUxsQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLDZCQUF3QixHQUF4Qix3QkFBd0IsQ0FBMEI7UUFDakQsV0FBTSxHQUFOLE1BQU0sQ0FBZ0I7UUFDdEIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ1IsZ0JBQVcsR0FBWCxXQUFXLENBQVc7UUF0TDFDLGVBQVUsR0FBUSxJQUFJLENBQUMsQ0FBQyxnRUFBZ0U7UUFHeEYsYUFBUSxHQUFHLHVCQUF1QixDQUFDO1FBa0luQzs7V0FFRztRQUNLLG1CQUFjLEdB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QVMsdUJBa01kLFFBQVE7OzswQkFqTFQsS0FBSyxTQUFDLGNBQWM7b0NBY3BCLEtBQUssU0FBQyxTQUFTOzJCQWtCZixLQUFLOzBCQWlCTCxLQUFLOzBCQWlCTCxLQUFLO2lDQWlCTCxLQUFLO3dCQWlCTCxLQUFLO3lCQWVMLEtBQUs7c0NBaUJMLE1BQU07Z0NBRU4sS0FBSzswQkFhTCxZQUFZLFNBQUMsT0FBTyxFQUFFLENBQUMsZUFBZSxDQUFDOztJQTBJekMsMEJBQUM7Q0FBQSxBQXRTRCxJQXNTQztTQW5TWSxtQkFBbUI7OztJQUMvQix5Q0FBdUI7O0lBQ3ZCLDRDQUFjOztJQUVkLHVDQUFtQzs7Ozs7SUFlbkMsaURBQTJCOzs7Ozs7O0lBa0IzQix3Q0FBa0I7Ozs7OztJQWlCbEIsdUNBQWlCOzs7Ozs7SUFpQmpCLHVDQUFpQjs7Ozs7O0lBaUJqQiw4Q0FBd0I7Ozs7OztJQWlCeEIscUNBQWU7Ozs7OztJQWVmLHNDQUFnQjs7Ozs7O0lBaUJoQiw2Q0FBb0M7O0lBQ3BDLGtEQUFtRDs7SUF3Q2xELCtDQUF5Qzs7SUFDekMsdURBQXlEOzs7OztJQUN6RCxxQ0FBOEI7Ozs7O0lBQzlCLHVDQUEwQjs7Ozs7SUFDMUIsdUNBQTJCOztJQUMzQiwwQ0FBeUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuXHRBcHBsaWNhdGlvblJlZixcblx0Q29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuXHREaXJlY3RpdmUsXG5cdEVtYmVkZGVkVmlld1JlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0TGlzdGVuZXIsXG5cdEluamVjdG9yLFxuXHRJbnB1dCxcblx0T3B0aW9uYWwsXG5cdE91dHB1dCxcblx0UmVuZGVyZXIyLFxuXHRWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtOZ0NvbnRyb2x9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7T3B0aW9uc30gZnJvbSAnLi4vLi4vbW9kZWxzL2RhdGVwaWNrZXItb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQge0RpcmVjdGl2ZU9wdGlvbnN9IGZyb20gJy4uLy4uL21vZGVscy9kaXJlY3RpdmUtb3B0aW9ucy5tb2RlbCc7XG5pbXBvcnQge1V0aWxpdGllc1NlcnZpY2V9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3V0aWxpdGllcy5zZXJ2aWNlJztcbmltcG9ydCB7QW5pbWF0ZXBpY2tlckNvbXBvbmVudH0gZnJvbSAnLi4vYW5pbWF0ZXBpY2tlci9hbmltYXRlcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQge0RhdGVwaWNrZXJDb21wb25lbnR9IGZyb20gJy4vZGF0ZXBpY2tlci5jb21wb25lbnQnO1xuaW1wb3J0IHtEZWZhdWx0RGlyZWN0aXZlT3B0aW9uc30gZnJvbSAnLi9kYXRlcGlja2VyLm9wdGlvbnMnO1xuXG5ARGlyZWN0aXZlKHtcblx0c2VsZWN0b3I6ICdbYWFEYXRlcGlja2VyXSdcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckRpcmVjdGl2ZSB7XG5cdGRhdGVwaWNrZXI6IGFueSA9IG51bGw7IC8vIFRPRE86IGZpeCB0eXBlczogRGF0ZXBpY2tlckNvbXBvbmVudCB8IEFuaW1hdGVwaWNrZXJDb21wb25lbnRcblx0Y2xpY2tMaXN0ZW5lcjtcblxuXHRfb3B0aW9ucyA9IERlZmF1bHREaXJlY3RpdmVPcHRpb25zO1xuXG5cdEBJbnB1dCgnYWFEYXRlcGlja2VyJylcblx0c2V0IG9wdGlvbnMob3B0aW9uczogRGlyZWN0aXZlT3B0aW9ucykge1xuXHRcdGlmIChvcHRpb25zID09PSB1bmRlZmluZWQgfHwgIW9wdGlvbnMpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0Ly8gVE9ETzogY291bGQgYmUgaW1wcm92ZWRcblx0XHR0aGlzLl9vcHRpb25zID0gey4uLnRoaXMuX29wdGlvbnMsIC4uLm9wdGlvbnN9O1xuXHR9XG5cblx0Z2V0IG9wdGlvbnMoKTogRGlyZWN0aXZlT3B0aW9ucyB7XG5cdFx0cmV0dXJuIHRoaXMuX29wdGlvbnM7XG5cdH1cblxuXHRwcml2YXRlIF9kYXRlcGlja2VyT3B0aW9ucztcblx0QElucHV0KCdvcHRpb25zJylcblx0c2V0IGRhdGVwaWNrZXJPcHRpb25zKG9wdGlvbnM6IE9wdGlvbnMpIHtcblx0XHR0aGlzLl9kYXRlcGlja2VyT3B0aW9ucyA9IG9wdGlvbnM7XG5cblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIub3B0aW9ucyA9IG9wdGlvbnM7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IGRhdGVwaWNrZXJPcHRpb25zKCkge1xuXHRcdHJldHVybiB0aGlzLl9kYXRlcGlja2VyT3B0aW9ucztcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgdGhlIHRoZSBsYW5ndWFnZSBtYW51YWx5LiBBIHN0cmluZyB3aXRoIGEgQkNQIDQ3IGxhbmd1YWdlIHRhZ1xuXHQgKiBAZXhhbXBsZSBubC1OTFxuXHQgKi9cblx0cHJpdmF0ZSBfbGFuZ3VhZ2U7XG5cdEBJbnB1dCgpXG5cdHNldCBsYW5ndWFnZSh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5fbGFuZ3VhZ2UgPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5sYW5ndWFnZSA9IHZhbHVlO1xuXHRcdH1cblx0fVxuXG5cdGdldCBsYW5ndWFnZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XG5cdH1cblxuXHQvKipcblx0ICogTWluaW1hbCBEYXRlOiBJZiBzZXQgdGhlIGRhdGVzIGJlZm9yZSBpdCB3aWxsIGJlIGRpc2FibGVkXG5cdCAqL1xuXHRwcml2YXRlIF9taW5EYXRlO1xuXHRASW5wdXQoKVxuXHRzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSkge1xuXHRcdHRoaXMuX21pbkRhdGUgPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5taW5EYXRlID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IG1pbkRhdGUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX21pbkRhdGU7XG5cdH1cblxuXHQvKipcblx0ICogTWF4aW1hbCBEYXRlOiBJZiBzZXQgdGhlIGRhdGVzIGFmdGVyIGl0IHdpbGwgYmUgZGlzYWJsZWRcblx0ICovXG5cdHByaXZhdGUgX21heERhdGU7XG5cdEBJbnB1dCgpXG5cdHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlKSB7XG5cdFx0dGhpcy5fbWF4RGF0ZSA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm1heERhdGUgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgbWF4RGF0ZSgpIHtcblx0XHRyZXR1cm4gdGhpcy5fbWluRGF0ZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBOdW1iZXIgb2YgbW9udGhzOiB0aGUgbnVtYmVyIG9mIG1vbnRocyBkaXNwbGF5ZWRcblx0ICovXG5cdHByaXZhdGUgX251bWJlck9mTW9udGhzO1xuXHRASW5wdXQoKVxuXHRzZXQgbnVtYmVyT2ZNb250aHModmFsdWUpIHtcblx0XHR0aGlzLl9udW1iZXJPZk1vbnRocyA9IHZhbHVlO1xuXG5cdFx0aWYgKHRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLm51bWJlck9mTW9udGhzID0gdmFsdWU7XG5cdFx0fVxuXHR9XG5cblx0Z2V0IG51bWJlck9mTW9udGhzKCkge1xuXHRcdHJldHVybiB0aGlzLl9udW1iZXJPZk1vbnRocztcblx0fVxuXG5cdC8qKlxuXHQgKiBUaGVtZSBzdHJpbmcgaXMgYWRkZWQgdG8gdGhlIGhvc3Rcblx0ICovXG5cdHByaXZhdGUgX3RoZW1lO1xuXHRASW5wdXQoKVxuXHRzZXQgdGhlbWUodmFsdWUpIHtcblx0XHRpZiAodGhpcy5kYXRlcGlja2VyKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIudGhlbWUgPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgdGhlbWUoKSB7XG5cdFx0cmV0dXJuIHRoaXMuX3RoZW1lO1xuXHR9XG5cblx0LyoqXG5cdCAqIFRoZSBvcGVuIHN0YXRlXG5cdCAqL1xuXHRwcml2YXRlIF9pc09wZW47XG5cdEBJbnB1dCgpXG5cdHNldCBpc09wZW4odmFsdWUpIHtcblx0XHR0aGlzLl9pc09wZW4gPSB2YWx1ZTtcblxuXHRcdGlmICh0aGlzLmRhdGVwaWNrZXIpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5pc09wZW4gPSB2YWx1ZTtcblx0XHR9XG5cdH1cblxuXHRnZXQgaXNPcGVuKCkge1xuXHRcdHJldHVybiB0aGlzLl9pc09wZW47XG5cdH1cblxuXHQvKipcblx0ICogU2VsZWN0ZWQgRGF0ZXM6IGhhbmRsZXMgdGhlIHNlbGVjdGVkIGRhdGVzIGFycmF5LiBDYW4gYmUgc2V0IGJvdGggaW50ZXJuYWxseSBhbmQgZXh0ZXJuYWxseVxuXHQgKi9cblx0cHJpdmF0ZSBfc2VsZWN0ZWREYXRlczogRGF0ZVtdID0gW107XG5cdEBPdXRwdXQoKSBzZWxlY3RlZERhdGVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG5cdEBJbnB1dCgpXG5cdHNldCBzZWxlY3RlZERhdGVzKHZhbHVlOiBEYXRlW10pIHtcblx0XHRpZiAodmFsdWUgPT09IHVuZGVmaW5lZCB8fCB0aGlzLl9zZWxlY3RlZERhdGVzID09PSB2YWx1ZSkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblx0XHR0aGlzLl9zZWxlY3RlZERhdGVzID0gdmFsdWU7XG5cdFx0dGhpcy5zZWxlY3RlZERhdGVzQ2hhbmdlLmVtaXQodGhpcy5fc2VsZWN0ZWREYXRlcyk7XG5cdH1cblxuXHRnZXQgc2VsZWN0ZWREYXRlcygpOiBEYXRlW10ge1xuXHRcdHJldHVybiB0aGlzLl9zZWxlY3RlZERhdGVzO1xuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudC50YXJnZXQnXSlcblx0b25DbGljaygpIHtcblx0XHRpZiAoIXRoaXMuZGF0ZXBpY2tlcikge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyID0gdGhpcy5jcmVhdGVEYXRlcGlja2VyKCk7XG5cblx0XHRcdHRoaXMuc2V0RGF0ZXBpY2tlck9wdGlvbnNBbmRJbnB1dHMoKTtcblx0XHRcdHRoaXMuc3Vic2NyaWJlVG9TZWxlY3RlZENoYW5nZXMoKTtcblx0XHR9XG5cblx0XHRpZiAoIXRoaXMuZGF0ZXBpY2tlci5pc09wZW4pIHtcblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuYXBwZW5kVG9Cb2R5KSB7XG5cdFx0XHRcdHRoaXMuc2V0UG9zaXRpb24oKTtcblx0XHRcdH1cblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5vcGVuKCk7XG5cblx0XHRcdGlmICh0aGlzLm9wdGlvbnMuY2xvc2VPbkJsdXIpIHtcblx0XHRcdFx0c2V0VGltZW91dChcblx0XHRcdFx0XHQoKSA9PlxuXHRcdFx0XHRcdFx0KHRoaXMuY2xpY2tMaXN0ZW5lciA9IHRoaXMucmVuZGVyZXIubGlzdGVuKCdkb2N1bWVudCcsICdjbGljaycsIHRoaXMub25CbHVySGFuZGxlci5iaW5kKHRoaXMpKSlcblx0XHRcdFx0KTtcblx0XHRcdH1cblx0XHR9XG5cdH1cblxuXHRjb25zdHJ1Y3Rvcihcblx0XHRwdWJsaWMgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcblx0XHRwdWJsaWMgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG5cdFx0cHJpdmF0ZSBhcHBSZWY6IEFwcGxpY2F0aW9uUmVmLFxuXHRcdHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuXHRcdHByaXZhdGUgcmVuZGVyZXI6IFJlbmRlcmVyMixcblx0XHRAT3B0aW9uYWwoKSBwdWJsaWMgZm9ybUNvbnRyb2w6IE5nQ29udHJvbFxuXHQpIHtcblx0fVxuXG5cdC8qKlxuXHQgKiBBZGQgc2VsZWN0ZWQgY2hhbmdlc1xuXHQgKi9cblx0c3Vic2NyaWJlVG9TZWxlY3RlZENoYW5nZXMoKTogdm9pZCB7XG5cdFx0dGhpcy5kYXRlcGlja2VyLnNlbGVjdGVkRGF0ZXNDaGFuZ2Uuc3Vic2NyaWJlKGRhdGUgPT4ge1xuXHRcdFx0aWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcblx0XHRcdFx0dGhpcy5mb3JtQ29udHJvbC5jb250cm9sLnNldFZhbHVlKGRhdGUpO1xuXHRcdFx0fSBlbHNlIHtcblx0XHRcdFx0dGhpcy5zZWxlY3RlZERhdGVzID0gZGF0ZTtcblx0XHRcdH1cblx0XHR9KTtcblx0fVxuXG5cdC8qKlxuXHQgKiBTZXQgYWxsIHRoZSBvcHRpb25zIGFuZCBpbnB1dHMgb2YgdGhlIGRhdGVwaWNrZXJcblx0ICovXG5cdHNldERhdGVwaWNrZXJPcHRpb25zQW5kSW5wdXRzKCk6IHZvaWQge1xuXHRcdHRoaXMuZGF0ZXBpY2tlci5vcHRpb25zID0gdGhpcy5kYXRlcGlja2VyT3B0aW9ucztcblx0XHR0aGlzLmRhdGVwaWNrZXIuaXNPcGVuID0gdGhpcy5pc09wZW4gfHwgZmFsc2U7XG5cdFx0dGhpcy5kYXRlcGlja2VyLmFzRGlyZWN0aXZlID0gdHJ1ZTtcblx0XHR0aGlzLmRhdGVwaWNrZXIubnVtYmVyT2ZNb250aHMgPSB0aGlzLm51bWJlck9mTW9udGhzO1xuXHRcdHRoaXMuZGF0ZXBpY2tlci50aGVtZSA9IHRoaXMudGhlbWU7XG5cdFx0dGhpcy5kYXRlcGlja2VyLl9zZWxlY3RlZERhdGVzID0gdGhpcy5zZWxlY3RlZERhdGVzO1xuXHRcdHRoaXMuZGF0ZXBpY2tlci5sYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2U7XG5cdFx0dGhpcy5kYXRlcGlja2VyLm1pbkRhdGUgPSB0aGlzLm1pbkRhdGU7XG5cdFx0dGhpcy5kYXRlcGlja2VyLm1pbkRhdGUgPSB0aGlzLm1heERhdGU7XG5cdH1cblxuXHQvKipcblx0ICogSGFuZGxlcyB0aGUgKGZha2VkKSBibHVyIGV2ZW50XG5cdCAqXG5cdCAqIEBwYXJhbSBldmVudFxuXHQgKi9cblx0b25CbHVySGFuZGxlcihldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHRpZiAoXG5cdFx0XHRldmVudC50YXJnZXQgIT09IHRoaXMuZGF0ZXBpY2tlci5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQgJiZcblx0XHRcdCF0aGlzLmRhdGVwaWNrZXIuZWxlbWVudC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGV2ZW50LnRhcmdldClcblx0XHQpIHtcblx0XHRcdC8vIGNoZWNrIGNsaWNrIG9yaWdpblxuXHRcdFx0dGhpcy5jbGlja0xpc3RlbmVyKCk7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIuY2xvc2UodHJ1ZSk7XG5cdFx0fVxuXHR9XG5cblx0LyoqXG5cdCAqIFJldHVybnMgYSBjcmVhdGUgRGF0ZXBpY2tlckNvbXBvbmVudCBtZXRob2Rcblx0ICovXG5cdGNyZWF0ZURhdGVwaWNrZXIoKTogYW55IHtcblx0XHRyZXR1cm4gdGhpcy5vcHRpb25zLmFwcGVuZFRvQm9keSA/IHRoaXMuYXBwZW5kVG9Cb2R5KCkgOiB0aGlzLmFwcGVuZFRvQ29udGFpbmVyKCk7XG5cdH1cblxuXHQvKipcblx0ICogU2V0cyB0aGUgcG9zaXRpb24gb2YgdGhlIGRhdGVwaWNrZXJcblx0ICovXG5cdHNldFBvc2l0aW9uKCkge1xuXHRcdGNvbnN0IHBvc2l0aW9uID0gVXRpbGl0aWVzU2VydmljZS5nZXRQYWdlT2Zmc2V0KHRoaXMudmlld0NvbnRhaW5lclJlZi5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xuXHRcdGNvbnNvbGUubG9nKCd0aGlzLm9wdGlvbnMub3BlbkRpcmVjdGlvbjogJywgdGhpcy5vcHRpb25zLm9wZW5EaXJlY3Rpb24pO1xuXHRcdGlmICh0aGlzLm9wdGlvbnMub3BlbkRpcmVjdGlvbiA9PT0gJ2JvdHRvbScpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci50b3BQb3NpdGlvbiA9IHBvc2l0aW9uLmJvdHRvbTtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5sZWZ0UG9zaXRpb24gPSBwb3NpdGlvbi5sZWZ0O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm9wdGlvbnMub3BlbkRpcmVjdGlvbiA9PT0gJ2xlZnQnKSB7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIudG9wUG9zaXRpb24gPSBwb3NpdGlvbi50b3A7XG5cdFx0XHR0aGlzLmRhdGVwaWNrZXIucmlnaHRQb3NpdGlvbiA9IHBvc2l0aW9uLmZvclJpZ2h0O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm9wdGlvbnMub3BlbkRpcmVjdGlvbiA9PT0gJ3JpZ2h0Jykge1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLnRvcFBvc2l0aW9uID0gcG9zaXRpb24udG9wO1xuXHRcdFx0dGhpcy5kYXRlcGlja2VyLmxlZnRQb3NpdGlvbiA9IHBvc2l0aW9uLnJpZ2h0O1xuXHRcdH1cblxuXHRcdGlmICh0aGlzLm9wdGlvbnMub3BlbkRpcmVjdGlvbiA9PT0gJ3RvcCcpIHtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5ib3R0b21Qb3NpdGlvbiA9IHBvc2l0aW9uLmZvckJvdHRvbTtcblx0XHRcdHRoaXMuZGF0ZXBpY2tlci5sZWZ0UG9zaXRpb24gPSBwb3NpdGlvbi5sZWZ0O1xuXHRcdH1cblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBlbmRzIHRoZSBEYXRlcGlja2VyQ29tcG9uZW50IHRvIHRoZSBib2R5IGFuZCByZXR1cm5zIHRoZSBpbnN0YW5jZVxuXHQgKi9cblx0YXBwZW5kVG9Cb2R5KCk6IGFueSB7XG5cdFx0Y29uc3QgZGF0ZXBpY2tlckNvbXBvbmVudCA9IHRoaXMub3B0aW9ucy51c2VBbmltYXRlUGlja2VyID8gQW5pbWF0ZXBpY2tlckNvbXBvbmVudCA6IERhdGVwaWNrZXJDb21wb25lbnQ7XG5cdFx0Y29uc3QgY29tcG9uZW50UmVmID0gdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcblx0XHRcdC5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShkYXRlcGlja2VyQ29tcG9uZW50KVxuXHRcdFx0LmNyZWF0ZSh0aGlzLmluamVjdG9yKTtcblxuXHRcdHRoaXMuYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcblxuXHRcdGNvbnN0IGRvbUVsZW0gPSAoY29tcG9uZW50UmVmLmhvc3RWaWV3IGFzIEVtYmVkZGVkVmlld1JlZjxhbnk+KS5yb290Tm9kZXNbMF0gYXMgSFRNTEVsZW1lbnQ7XG5cblx0XHRkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKGRvbUVsZW0pO1xuXG5cdFx0cmV0dXJuIGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcblx0fVxuXG5cdC8qKlxuXHQgKiBBcHBlbmRzIHRoZSBEYXRlcGlja2VyQ29tcG9uZW50IHRvIHRoZSBjb250YWluZXIgYW5kIHJldHVybnMgdGhlIGluc3RhbmNlXG5cdCAqL1xuXHRhcHBlbmRUb0NvbnRhaW5lcigpOiBhbnkge1xuXHRcdGNvbnN0IGRhdGVwaWNrZXJDb21wb25lbnQgPSB0aGlzLm9wdGlvbnMudXNlQW5pbWF0ZVBpY2tlciA/IEFuaW1hdGVwaWNrZXJDb21wb25lbnQgOiBEYXRlcGlja2VyQ29tcG9uZW50O1xuXHRcdGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuY29tcG9uZW50RmFjdG9yeVJlc29sdmVyLnJlc29sdmVDb21wb25lbnRGYWN0b3J5KGRhdGVwaWNrZXJDb21wb25lbnQpO1xuXHRcdHJldHVybiB0aGlzLnZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFJlZikuaW5zdGFuY2U7XG5cdH1cbn1cbiJdfQ==
@@ -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