@acpaas-ui/ngx-forms 5.3.0 → 5.4.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.
@@ -14,16 +14,16 @@ import { DATEPICKER_DATE_MASK, DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR
14
14
  import { IntervalBuilder } from '@acpaas-ui/ngx-utils';
15
15
  export class DatepickerComponent {
16
16
  /**
17
- * @param {?=} monthLabels
18
- * @param {?=} weekdayLabels
17
+ * @param {?=} moduleMonthLabels
18
+ * @param {?=} moduleWeekdayLabels
19
19
  * @param {?=} errorLabels
20
20
  * @param {?=} calendarService
21
21
  * @param {?=} formBuilder
22
22
  * @param {?=} ref
23
23
  */
24
- constructor(monthLabels = CALENDAR_DEFAULT_MONTH_LABELS, weekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS, calendarService, formBuilder, ref) {
25
- this.monthLabels = monthLabels;
26
- this.weekdayLabels = weekdayLabels;
24
+ constructor(moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS, moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS, calendarService, formBuilder, ref) {
25
+ this.moduleMonthLabels = moduleMonthLabels;
26
+ this.moduleWeekdayLabels = moduleWeekdayLabels;
27
27
  this.errorLabels = errorLabels;
28
28
  this.calendarService = calendarService;
29
29
  this.formBuilder = formBuilder;
@@ -46,6 +46,8 @@ export class DatepickerComponent {
46
46
  * @return {?}
47
47
  */
48
48
  ngOnInit() {
49
+ this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
50
+ this.monthLabels = this.monthLabels || this.moduleMonthLabels;
49
51
  this.createInterval();
50
52
  this.formControl = this.formBuilder.control({ value: '', disabled: this.isDisabled });
51
53
  this.formControl.valueChanges
@@ -218,7 +220,7 @@ export class DatepickerComponent {
218
220
  DatepickerComponent.decorators = [
219
221
  { type: Component, args: [{
220
222
  selector: 'aui-datepicker',
221
- template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar (selectDate)=\"selectDateFromCalendar($event)\" [range]=\"range\"\n [selectedDate]=\"selectedDate\" [interval]=\"interval\"></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
223
+ template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar\n (selectDate)=\"selectDateFromCalendar($event)\"\n [range]=\"range\"\n [selectedDate]=\"selectedDate\"\n [interval]=\"interval\"\n [weekdayLabels]=\"weekdayLabels\"\n [monthLabels]=\"monthLabels\"\n ></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
222
224
  changeDetection: ChangeDetectionStrategy.OnPush,
223
225
  providers: [{
224
226
  provide: NG_VALUE_ACCESSOR,
@@ -258,6 +260,8 @@ DatepickerComponent.propDecorators = {
258
260
  min: [{ type: Input }],
259
261
  max: [{ type: Input }],
260
262
  autocomplete: [{ type: Input }],
263
+ weekdayLabels: [{ type: Input }],
264
+ monthLabels: [{ type: Input }],
261
265
  blur: [{ type: Output }]
262
266
  };
263
267
  if (false) {
@@ -278,6 +282,10 @@ if (false) {
278
282
  /** @type {?} */
279
283
  DatepickerComponent.prototype.autocomplete;
280
284
  /** @type {?} */
285
+ DatepickerComponent.prototype.weekdayLabels;
286
+ /** @type {?} */
287
+ DatepickerComponent.prototype.monthLabels;
288
+ /** @type {?} */
281
289
  DatepickerComponent.prototype.blur;
282
290
  /** @type {?} */
283
291
  DatepickerComponent.prototype.dateMask;
@@ -308,12 +316,12 @@ if (false) {
308
316
  * @type {?}
309
317
  * @private
310
318
  */
311
- DatepickerComponent.prototype.monthLabels;
319
+ DatepickerComponent.prototype.moduleMonthLabels;
312
320
  /**
313
321
  * @type {?}
314
322
  * @private
315
323
  */
316
- DatepickerComponent.prototype.weekdayLabels;
324
+ DatepickerComponent.prototype.moduleWeekdayLabels;
317
325
  /**
318
326
  * @type {?}
319
327
  * @private
@@ -332,4 +340,4 @@ if (false) {
332
340
  */
333
341
  DatepickerComponent.prototype.ref;
334
342
  }
335
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLFdBQVcsRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZUFBZSxHQUVoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFtQmpFLE1BQU0sT0FBTyxtQkFBbUI7Ozs7Ozs7OztJQXNCOUIsWUFDeUMsY0FBYyw2QkFBNkIsRUFDekMsZ0JBQWdCLCtCQUErQixFQUMvQyxjQUFjLCtCQUErQixFQUMvRSxlQUFnQyxFQUMvQixXQUF3QixFQUN4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VztZQWZ4QyxpQkFBaUI7OztxQkFzRGhCLFNBQVMsU0FBQyxlQUFlLEVBQUUsRUFBQyxNQUFNLEVBQUUsSUFBSSxFQUFDO2lCQUN6QyxLQUFLO21CQUNMLEtBQUs7MEJBQ0wsS0FBSztvQkFDTCxLQUFLO2tCQUNMLEtBQUs7a0JBRUwsS0FBSzsyQkFFTCxLQUFLO21CQUVMLE1BQU07Ozs7SUFYUCxxQ0FBb0U7O0lBQ3BFLGlDQUFvQjs7SUFDcEIsbUNBQXNCOztJQUN0QiwwQ0FBb0M7O0lBQ3BDLG9DQUEwQjs7SUFDMUIsa0NBQ2lCOztJQUNqQixrQ0FDaUI7O0lBQ2pCLDJDQUE2Qjs7SUFFN0IsbUNBQTJDOztJQUUzQyx1Q0FBdUU7O0lBQ3ZFLDBDQUFnQzs7SUFDaEMsMkNBQTBCOztJQUMxQix5Q0FBMEI7O0lBQzFCLHVDQUEwQzs7Ozs7SUFFMUMsa0RBQXVFOzs7OztJQXVJdkUsdUNBQXVEOzs7OztJQUV2RCx3Q0FBc0Q7Ozs7O0lBdElwRCwwQ0FBa0Y7Ozs7O0lBQ2xGLDRDQUF3Rjs7Ozs7SUFDeEYsMENBQXNGOztJQUN0Riw4Q0FBdUM7Ozs7O0lBQ3ZDLDBDQUFnQzs7Ozs7SUFDaEMsa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL2pzLWRhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxuICBDYWxlbmRhclNlcnZpY2UsXG4gIERhdGVwaWNrZXJSZXN1bHQsXG59IGZyb20gJ0BhY3BhYXMtdWkvbmd4LWNhbGVuZGFyJztcblxuaW1wb3J0IHtcbiAgREFURVBJQ0tFUl9EQVRFX01BU0ssXG4gIERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gIERBVEVQSUNLRVJfRVJST1JfTEFCRUxTLFxuICBEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSXG59IGZyb20gJy4uLy4uL2RhdGVwaWNrZXIuY29uZic7XG5pbXBvcnQgeyBEYXRlcGlja2VyVmFsaWRhdGlvbkVycm9ycyB9IGZyb20gJy4uLy4uL3R5cGVzL2RhdGVwaWNrZXIudHlwZXMnO1xuaW1wb3J0IHsgSW50ZXJ2YWwsIEludGVydmFsQnVpbGRlciB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LXV0aWxzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXVpLWRhdGVwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogW1xuICAgICcuL2RhdGVwaWNrZXIuY29tcG9uZW50LnNjc3MnLFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLCAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWZvcndhcmQtcmVmXG4gICAgbXVsdGk6IHRydWUsXG4gIH0sIHtcbiAgICBwcm92aWRlOiBOR19WQUxJREFUT1JTLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVwaWNrZXJDb21wb25lbnQpLCAvLyB0c2xpbnQ6ZGlzYWJsZS1saW5lOm5vLWZvcndhcmQtcmVmXG4gICAgbXVsdGk6IHRydWUsXG4gIH1dLFxufSlcbmV4cG9ydCBjbGFzcyBEYXRlcGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBAVmlld0NoaWxkKEZseW91dERpcmVjdGl2ZSwge3N0YXRpYzogdHJ1ZX0pIGZseW91dDogRmx5b3V0RGlyZWN0aXZlO1xuICBASW5wdXQoKSBpZDogc3RyaW5nO1xuICBASW5wdXQoKSBuYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIHBsYWNlaG9sZGVyID0gJ2RkL21tL3l5eXknO1xuICBASW5wdXQoKSByYW5nZTogRGF0ZVJhbmdlO1xuICBASW5wdXQoKVxuICBtaW46IERhdGUgfCBudWxsO1xuICBASW5wdXQoKVxuICBtYXg6IERhdGUgfCBudWxsO1xuICBASW5wdXQoKSBhdXRvY29tcGxldGU6ICdvZmYnO1xuXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZGF0ZU1hc2sgPSB7bWFzazogREFURVBJQ0tFUl9EQVRFX01BU0ssIHNob3dNYXNrT25Ib3ZlcjogZmFsc2V9O1xuICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgaW50ZXJ2YWw6IEludGVydmFsLklJbnRlcnZhbDxEYXRlPjtcblxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfTU9OVEhfTEFCRUxTKSBwcml2YXRlIG1vbnRoTGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9NT05USF9MQUJFTFMsXG4gICAgQEluamVjdChDQUxFTkRBUl9XRUVLREFZX0xBQkVMUykgcHJpdmF0ZSB3ZWVrZGF5TGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgICBASW5qZWN0KERBVEVQSUNLRVJfRVJST1JfTEFCRUxTKSBwcml2YXRlIGVycm9yTGFiZWxzID0gREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgICBwdWJsaWMgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuY3JlYXRlSW50ZXJ2YWwoKTtcbiAgICB0aGlzLmZvcm1Db250cm9sID0gdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKHt2YWx1ZTogJycsIGRpc2FibGVkOiB0aGlzLmlzRGlzYWJsZWR9KTtcbiAgICB0aGlzLmZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQpXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICBjb25zdCBmb3JtYXQgPSB2YWx1ZS5zcGxpdChEQVRFUElDS0VSX1NFUEFSQVRPUl9DSEFSKS5yZXZlcnNlKCkuam9pbignLScpO1xuICAgICAgICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShmb3JtYXQsICd5eXl5LU1NLWRkJyk7XG4gICAgICAgICAgaWYgKGRhdGUpIHtcbiAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gZGF0ZTtcbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UoZGF0ZS50b0lTT1N0cmluZygpKTtcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gQ2hhbmdlIHZhbHVlIHdpdGggb3JpZ2luYWwgdmFsdWUgKGFuZCBub3QgbnVsbCBvciAnJykgc28gd2UgY2FuIGFkZCBhbiBlcnJvciBpbiB0aGUgdmFsaWRhdGUgZnVuY3Rpb25cbiAgICAgICAgICAgIHRoaXMub25DaGFuZ2UodmFsdWUpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IG51bGw7XG4gICAgICAgICAgdGhpcy5vbkNoYW5nZSgnJyk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5taW4gfHwgY2hhbmdlcy5tYXgpIHtcbiAgICAgICB0aGlzLmNyZWF0ZUludGVydmFsKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5uZXh0KHRydWUpO1xuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVJbnRlcnZhbCgpIHtcbiAgICBpZiAoIXRoaXMubWluICYmICF0aGlzLm1heCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyBDcmVhdGUgYW4gaW50ZXJ2YWwgaWYgbWluL21heCBpcyBmaWxsZWQgaW5cbiAgICB0aGlzLmludGVydmFsID0gSW50ZXJ2YWxCdWlsZGVyLmRhdGVJbnRlcnZhbCh0aGlzLm1pbiA/IG5ldyBEYXRlKHRoaXMubWluKSA6IG51bGwsIHRoaXMubWF4ID8gbmV3IERhdGUodGhpcy5tYXgpIDogbnVsbClcbiAgICAgIC5ub3QoKVxuICAgICAgLmJ1aWxkKCk7XG4gIH1cblxuICBwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogc3RyaW5nIHwgRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gdHlwZW9mIHZhbHVlID09PSAnc3RyaW5nJ1xuICAgICAgPyB0aGlzLmlzSVNPRGF0ZUZvcm1hdCh2YWx1ZSkgPyBuZXcgRGF0ZSh2YWx1ZSkgOiBEYXRlSGVscGVyLnBhcnNlRGF0ZSh2YWx1ZSwgJ2RkL01NL3l5eXknKVxuICAgICAgOiB2YWx1ZTtcbiAgICBjb25zdCBkYXRlU3RyaW5nID0gdGhpcy5zZWxlY3RlZERhdGUgPyB0aGlzLmZvcm1hdERhdGUodGhpcy5zZWxlY3RlZERhdGUpIDogJyc7XG4gICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZShkYXRlU3RyaW5nKTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAocmVzOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPblRvdWNoZWQob25Ub3VjaGVkOiAoXzogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBwdWJsaWMgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5pc0Rpc2FibGVkID0gaXNEaXNhYmxlZDtcblxuICAgIGlmICh0aGlzLmZvcm1Db250cm9sKSB7XG4gICAgICBpZiAoaXNEaXNhYmxlZCAmJiB0aGlzLmZvcm1Db250cm9sLmVuYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlKCk7XG4gICAgICB9IGVsc2UgaWYgKCFpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZWQpIHtcbiAgICAgICAgdGhpcy5mb3JtQ29udHJvbC5lbmFibGUoKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnJlZi5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3REYXRlRnJvbUNhbGVuZGFyKHJlc3VsdDogRGF0ZXBpY2tlclJlc3VsdCk6IHZvaWQge1xuICAgIGlmIChyZXN1bHQuY29tcGxldGUpIHtcbiAgICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUodGhpcy5mb3JtYXREYXRlKHJlc3VsdC5kYXRlKSk7XG4gICAgICB0aGlzLmZseW91dC5jbG9zZSgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBmb3JtYXREYXRlKGRhdGU6IERhdGUpOiBzdHJpbmcge1xuICAgIHJldHVybiBEYXRlSGVscGVyLmZvcm1hdERhdGUoZGF0ZSwgJ0REL01NL1lZWVknLCB7XG4gICAgICBsZWFkaW5nWmVybzogdHJ1ZSxcbiAgICAgIG1vbnRoTGFiZWxzOiB0aGlzLm1vbnRoTGFiZWxzLFxuICAgICAgd2Vla2RheUxhYmVsczogdGhpcy53ZWVrZGF5TGFiZWxzLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHZhbGlkYXRlKGN0cmw6IEZvcm1Db250cm9sKTogRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMge1xuICAgIC8vIG5vIGVycm9yIG9uIGVtcHR5IHZhbHVlIChhZGQgcmVxdWlyZWQgdmFsaWRhdG9yIGluIGFwcClcbiAgICBpZiAoY3RybC52YWx1ZSA9PT0gJycgfHwgY3RybC52YWx1ZSA9PT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgZm9ybWF0IGVycm9yIGlmIG5vIHZhbGlkIGRhdGUgd2FzIHByb3ZpZGVkXG4gICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGN0cmwudmFsdWUpO1xuICAgIGlmICghZGF0ZSkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgZm9ybWF0OiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX0RBVEUsXG4gICAgICB9O1xuICAgIH1cblxuICAgIC8vIG5vIGVycm9yIGlmIHZhbGlkIGRhdGUgYW4gbm8gcmFuZ2UgcHJvdmlkZWRcbiAgICBpZiAoIXRoaXMucmFuZ2UgfHwgIXRoaXMucmFuZ2UubGVuZ3RoKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBlcnJvciB3aGVuIG91dCBvZiByYW5nZVxuICAgIGNvbnN0IHJhbmdlID0gdGhpcy5jYWxlbmRhclNlcnZpY2UuZ2V0UmFuZ2VGb3JEYXRlKGRhdGUsIHRoaXMucmFuZ2UpO1xuXG4gICAgcmV0dXJuIHJhbmdlLmluZGV4T2YoZGF0ZS5nZXREYXRlKCkpID49IDAgPyB7XG4gICAgICByYW5nZTogdGhpcy5lcnJvckxhYmVscy5FUlJPUlNfSU5WQUxJRF9SQU5HRSxcbiAgICB9IDogbnVsbDtcbiAgfVxuXG4gIHB1YmxpYyBoYW5kbGVCbHVyKGU6IEV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5ibHVyLmVtaXQoZSk7XG4gICAgdGhpcy5vblRvdWNoZWQoZSk7XG4gIH1cblxuICBwcml2YXRlIG9uQ2hhbmdlOiAocmVzOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQgPSAoKSA9PiB1bmRlZmluZWQ7XG5cbiAgcHJpdmF0ZSBpc0lTT0RhdGVGb3JtYXQodmFsdWU6IHN0cmluZykge1xuICAgIGlmICh0eXBlb2YgdmFsdWUgIT09ICdzdHJpbmcnKSB7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICAgIHJldHVybiB2YWx1ZS5tYXRjaCgvXFxkezR9LVxcZHsyfS1cXGR7Mn1ULiovKTtcbiAgfVxufVxuIl19
343
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLFdBQVcsRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZUFBZSxHQUloQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFtQmpFLE1BQU0sT0FBTyxtQkFBbUI7Ozs7Ozs7OztJQXdCOUIsWUFDeUMsb0JBQW9CLDZCQUE2QixFQUMvQyxzQkFBc0IsK0JBQStCLEVBQ3JELGNBQWMsK0JBQStCLEVBQy9FLGVBQWdDLEVBQy9CLFdBQXdCLEVB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QkFBbUIsRUFBQzs7d0JBQ2xELEtBQUssRUFBRSxJQUFJO3FCQUNaLENBQUM7O2FBQ0g7Ozs7NENBMEJJLE1BQU0sU0FBQyxxQkFBcUI7NENBQzVCLE1BQU0sU0FBQyx1QkFBdUI7NENBQzlCLE1BQU0sU0FBQyx1QkFBdUI7WUEzRGpDLGVBQWU7WUFSYyxXQUFXO1lBZnhDLGlCQUFpQjs7O3FCQXdEaEIsU0FBUyxTQUFDLGVBQWUsRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUM7aUJBQ3pDLEtBQUs7bUJBQ0wsS0FBSzswQkFDTCxLQUFLO29CQUNMLEtBQUs7a0JBQ0wsS0FBSztrQkFFTCxLQUFLOzJCQUVMLEtBQUs7NEJBQ0wsS0FBSzswQkFDTCxLQUFLO21CQUVMLE1BQU07Ozs7SUFiUCxxQ0FBb0U7O0lBQ3BFLGlDQUFvQjs7SUFDcEIsbUNBQXNCOztJQUN0QiwwQ0FBb0M7O0lBQ3BDLG9DQUEwQjs7SUFDMUIsa0NBQ2lCOztJQUNqQixrQ0FDaUI7O0lBQ2pCLDJDQUE2Qjs7SUFDN0IsNENBQTRDOztJQUM1QywwQ0FBd0M7O0lBRXhDLG1DQUEyQzs7SUFFM0MsdUNBQXVFOztJQUN2RSwwQ0FBZ0M7O0lBQ2hDLDJDQUEwQjs7SUFDMUIseUNBQTBCOztJQUMxQix1Q0FBMEM7Ozs7O0lBRTFDLGtEQUF1RTs7Ozs7SUF5SXZFLHVDQUF1RDs7Ozs7SUFFdkQsd0NBQXNEOzs7OztJQXhJcEQsZ0RBQXdGOzs7OztJQUN4RixrREFBOEY7Ozs7O0lBQzlGLDBDQUFzRjs7SUFDdEYsOENBQXVDOzs7OztJQUN2QywwQ0FBZ0M7Ozs7O0lBQ2hDLGtDQUE4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIGZvcndhcmRSZWYsXG4gIEluamVjdCxcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbiAgVmlld0NoaWxkLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wsIE5HX1ZBTElEQVRPUlMsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRGF0ZUhlbHBlciwgRGF0ZVJhbmdlIH0gZnJvbSAnQGFjcGFhcy11aS9qcy1kYXRlLXV0aWxzJztcbmltcG9ydCB7IEZseW91dERpcmVjdGl2ZSB9IGZyb20gJ0BhY3BhYXMtdWkvbmd4LWZseW91dCc7XG5pbXBvcnQge1xuICBDQUxFTkRBUl9ERUZBVUxUX01PTlRIX0xBQkVMUyxcbiAgQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgQ0FMRU5EQVJfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9XRUVLREFZX0xBQkVMUyxcbiAgQ2FsZW5kYXJTZXJ2aWNlLFxuICBEYXRlcGlja2VyUmVzdWx0LFxuICBXZWVrZGF5TGFiZWxzQ29uZmlnLFxuICBNb250aExhYmVsc0NvbmZpZyxcbn0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtY2FsZW5kYXInO1xuXG5pbXBvcnQge1xuICBEQVRFUElDS0VSX0RBVEVfTUFTSyxcbiAgREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMsXG4gIERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVJcbn0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci5jb25mJztcbmltcG9ydCB7IERhdGVwaWNrZXJWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi4vLi4vdHlwZXMvZGF0ZXBpY2tlci50eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnZhbCwgSW50ZXJ2YWxCdWlsZGVyIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tZm9yd2FyZC1yZWZcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfSwge1xuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tZm9yd2FyZC1yZWZcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnZGQvbW0veXl5eSc7XG4gIEBJbnB1dCgpIHJhbmdlOiBEYXRlUmFuZ2U7XG4gIEBJbnB1dCgpXG4gIG1pbjogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIG1heDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZic7XG4gIEBJbnB1dCgpIHdlZWtkYXlMYWJlbHM6IFdlZWtkYXlMYWJlbHNDb25maWc7XG4gIEBJbnB1dCgpIG1vbnRoTGFiZWxzOiBNb250aExhYmVsc0NvbmZpZztcblxuICBAT3V0cHV0KCkgYmx1ciA9IG5ldyBFdmVudEVtaXR0ZXI8RXZlbnQ+KCk7XG5cbiAgcHVibGljIGRhdGVNYXNrID0ge21hc2s6IERBVEVQSUNLRVJfREFURV9NQVNLLCBzaG93TWFza09uSG92ZXI6IGZhbHNlfTtcbiAgcHVibGljIGZvcm1Db250cm9sOiBGb3JtQ29udHJvbDtcbiAgcHVibGljIHNlbGVjdGVkRGF0ZTogRGF0ZTtcbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgcHVibGljIGludGVydmFsOiBJbnRlcnZhbC5JSW50ZXJ2YWw8RGF0ZT47XG5cbiAgcHJpdmF0ZSBjb21wb25lbnREZXN0cm95ZWQkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENBTEVOREFSX01PTlRIX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVNb250aExhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMpIHByaXZhdGUgbW9kdWxlV2Vla2RheUxhYmVscyA9IENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gICAgQEluamVjdChEQVRFUElDS0VSX0VSUk9SX0xBQkVMUykgcHJpdmF0ZSBlcnJvckxhYmVscyA9IERBVEVQSUNLRVJfREVGQVVMVF9FUlJPUl9MQUJFTFMsXG4gICAgcHVibGljIGNhbGVuZGFyU2VydmljZTogQ2FsZW5kYXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgZm9ybUJ1aWxkZXI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLndlZWtkYXlMYWJlbHMgPSB0aGlzLndlZWtkYXlMYWJlbHMgfHwgdGhpcy5tb2R1bGVXZWVrZGF5TGFiZWxzO1xuICAgIHRoaXMubW9udGhMYWJlbHMgPSB0aGlzLm1vbnRoTGFiZWxzIHx8IHRoaXMubW9kdWxlTW9udGhMYWJlbHM7XG4gICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZH0pO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZhbHVlLnNwbGl0KERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIpLnJldmVyc2UoKS5qb2luKCctJyk7XG4gICAgICAgICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGZvcm1hdCwgJ3l5eXktTU0tZGQnKTtcbiAgICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDaGFuZ2UgdmFsdWUgd2l0aCBvcmlnaW5hbCB2YWx1ZSAoYW5kIG5vdCBudWxsIG9yICcnKSBzbyB3ZSBjYW4gYWRkIGFuIGVycm9yIGluIHRoZSB2YWxpZGF0ZSBmdW5jdGlvblxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm1pbiB8fCBjaGFuZ2VzLm1heCkge1xuICAgICAgIHRoaXMuY3JlYXRlSW50ZXJ2YWwoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUludGVydmFsKCkge1xuICAgIGlmICghdGhpcy5taW4gJiYgIXRoaXMubWF4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENyZWF0ZSBhbiBpbnRlcnZhbCBpZiBtaW4vbWF4IGlzIGZpbGxlZCBpblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBJbnRlcnZhbEJ1aWxkZXIuZGF0ZUludGVydmFsKHRoaXMubWluID8gbmV3IERhdGUodGhpcy5taW4pIDogbnVsbCwgdGhpcy5tYXggPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiBudWxsKVxuICAgICAgLm5vdCgpXG4gICAgICAuYnVpbGQoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMuaXNJU09EYXRlRm9ybWF0KHZhbHVlKSA/IG5ldyBEYXRlKHZhbHVlKSA6IERhdGVIZWxwZXIucGFyc2VEYXRlKHZhbHVlLCAnZGQvTU0veXl5eScpXG4gICAgICA6IHZhbHVlO1xuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkgOiAnJztcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGVTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGVGcm9tQ2FsZW5kYXIocmVzdWx0OiBEYXRlcGlja2VyUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHJlc3VsdC5jb21wbGV0ZSkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdERhdGUocmVzdWx0LmRhdGUpKTtcbiAgICAgIHRoaXMuZmx5b3V0LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVIZWxwZXIuZm9ybWF0RGF0ZShkYXRlLCAnREQvTU0vWVlZWScsIHtcbiAgICAgIGxlYWRpbmdaZXJvOiB0cnVlLFxuICAgICAgbW9udGhMYWJlbHM6IHRoaXMubW9udGhMYWJlbHMsXG4gICAgICB3ZWVrZGF5TGFiZWxzOiB0aGlzLndlZWtkYXlMYWJlbHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY3RybDogRm9ybUNvbnRyb2wpOiBEYXRlcGlja2VyVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gbm8gZXJyb3Igb24gZW1wdHkgdmFsdWUgKGFkZCByZXF1aXJlZCB2YWxpZGF0b3IgaW4gYXBwKVxuICAgIGlmIChjdHJsLnZhbHVlID09PSAnJyB8fCBjdHJsLnZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBmb3JtYXQgZXJyb3IgaWYgbm8gdmFsaWQgZGF0ZSB3YXMgcHJvdmlkZWRcbiAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoY3RybC52YWx1ZSk7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb3JtYXQ6IHRoaXMuZXJyb3JMYWJlbHMuRVJST1JTX0lOVkFMSURfREFURSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gbm8gZXJyb3IgaWYgdmFsaWQgZGF0ZSBhbiBubyByYW5nZSBwcm92aWRlZFxuICAgIGlmICghdGhpcy5yYW5nZSB8fCAhdGhpcy5yYW5nZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHRocm93IGVycm9yIHdoZW4gb3V0IG9mIHJhbmdlXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRSYW5nZUZvckRhdGUoZGF0ZSwgdGhpcy5yYW5nZSk7XG5cbiAgICByZXR1cm4gcmFuZ2UuaW5kZXhPZihkYXRlLmdldERhdGUoKSkgPj0gMCA/IHtcbiAgICAgIHJhbmdlOiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX1JBTkdFLFxuICAgIH0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUJsdXIoZTogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIuZW1pdChlKTtcbiAgICB0aGlzLm9uVG91Y2hlZChlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uVG91Y2hlZDogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGlzSVNPRGF0ZUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9cXGR7NH0tXFxkezJ9LVxcZHsyfVQuKi8pO1xuICB9XG59XG4iXX0=
@@ -13,12 +13,12 @@ import { CALENDAR_DEFAULT_MONTH_LABELS, CALENDAR_DEFAULT_WEEKDAY_LABELS, CALENDA
13
13
  import { DATEPICKER_DATE_MASK, DATEPICKER_DEFAULT_ERROR_LABELS, DATEPICKER_ERROR_LABELS, DATEPICKER_SEPARATOR_CHAR } from '../../datepicker.conf';
14
14
  import { IntervalBuilder } from '@acpaas-ui/ngx-utils';
15
15
  var DatepickerComponent = /** @class */ (function () {
16
- function DatepickerComponent(monthLabels, weekdayLabels, errorLabels, calendarService, formBuilder, ref) {
17
- if (monthLabels === void 0) { monthLabels = CALENDAR_DEFAULT_MONTH_LABELS; }
18
- if (weekdayLabels === void 0) { weekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS; }
16
+ function DatepickerComponent(moduleMonthLabels, moduleWeekdayLabels, errorLabels, calendarService, formBuilder, ref) {
17
+ if (moduleMonthLabels === void 0) { moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS; }
18
+ if (moduleWeekdayLabels === void 0) { moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS; }
19
19
  if (errorLabels === void 0) { errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS; }
20
- this.monthLabels = monthLabels;
21
- this.weekdayLabels = weekdayLabels;
20
+ this.moduleMonthLabels = moduleMonthLabels;
21
+ this.moduleWeekdayLabels = moduleWeekdayLabels;
22
22
  this.errorLabels = errorLabels;
23
23
  this.calendarService = calendarService;
24
24
  this.formBuilder = formBuilder;
@@ -45,6 +45,8 @@ var DatepickerComponent = /** @class */ (function () {
45
45
  */
46
46
  function () {
47
47
  var _this = this;
48
+ this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
49
+ this.monthLabels = this.monthLabels || this.moduleMonthLabels;
48
50
  this.createInterval();
49
51
  this.formControl = this.formBuilder.control({ value: '', disabled: this.isDisabled });
50
52
  this.formControl.valueChanges
@@ -264,7 +266,7 @@ var DatepickerComponent = /** @class */ (function () {
264
266
  DatepickerComponent.decorators = [
265
267
  { type: Component, args: [{
266
268
  selector: 'aui-datepicker',
267
- template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar (selectDate)=\"selectDateFromCalendar($event)\" [range]=\"range\"\n [selectedDate]=\"selectedDate\" [interval]=\"interval\"></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
269
+ template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar\n (selectDate)=\"selectDateFromCalendar($event)\"\n [range]=\"range\"\n [selectedDate]=\"selectedDate\"\n [interval]=\"interval\"\n [weekdayLabels]=\"weekdayLabels\"\n [monthLabels]=\"monthLabels\"\n ></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
268
270
  changeDetection: ChangeDetectionStrategy.OnPush,
269
271
  providers: [{
270
272
  provide: NG_VALUE_ACCESSOR,
@@ -304,6 +306,8 @@ var DatepickerComponent = /** @class */ (function () {
304
306
  min: [{ type: Input }],
305
307
  max: [{ type: Input }],
306
308
  autocomplete: [{ type: Input }],
309
+ weekdayLabels: [{ type: Input }],
310
+ monthLabels: [{ type: Input }],
307
311
  blur: [{ type: Output }]
308
312
  };
309
313
  return DatepickerComponent;
@@ -327,6 +331,10 @@ if (false) {
327
331
  /** @type {?} */
328
332
  DatepickerComponent.prototype.autocomplete;
329
333
  /** @type {?} */
334
+ DatepickerComponent.prototype.weekdayLabels;
335
+ /** @type {?} */
336
+ DatepickerComponent.prototype.monthLabels;
337
+ /** @type {?} */
330
338
  DatepickerComponent.prototype.blur;
331
339
  /** @type {?} */
332
340
  DatepickerComponent.prototype.dateMask;
@@ -357,12 +365,12 @@ if (false) {
357
365
  * @type {?}
358
366
  * @private
359
367
  */
360
- DatepickerComponent.prototype.monthLabels;
368
+ DatepickerComponent.prototype.moduleMonthLabels;
361
369
  /**
362
370
  * @type {?}
363
371
  * @private
364
372
  */
365
- DatepickerComponent.prototype.weekdayLabels;
373
+ DatepickerComponent.prototype.moduleWeekdayLabels;
366
374
  /**
367
375
  * @type {?}
368
376
  * @private
@@ -381,4 +389,4 @@ if (false) {
381
389
  */
382
390
  DatepickerComponent.prototype.ref;
383
391
  }
384
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLFdBQVcsRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZUFBZSxHQUVoQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakU7SUF1Q0UsNkJBQ3lDLFdBQTJDLEVBQ3pDLGFBQStDLEVBQy9DLFdBQTZDLEVBQy9FLGVBQWdDLEVBQy9CLFdBQXdCLEVBQ3hCLEdBQXNCO1FBTFMsNEJBQUEsRUFBQSwyQ0FBMkM7UUFDekMsOEJBQUEsRUFB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LFVBQVU7Ozs0QkFBQyxjQUFNLE9BQUEsbUJBQW1CLEVBQW5CLENBQW1CLEVBQUM7OzRCQUNsRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDOztpQkFDSDs7OztnREF3QkksTUFBTSxTQUFDLHFCQUFxQjtnREFDNUIsTUFBTSxTQUFDLHVCQUF1QjtnREFDOUIsTUFBTSxTQUFDLHVCQUF1QjtnQkF2RGpDLGVBQWU7Z0JBUmMsV0FBVztnQkFmeEMsaUJBQWlCOzs7eUJBc0RoQixTQUFTLFNBQUMsZUFBZSxFQUFFLEVBQUMsTUFBTSxFQUFFLElBQUksRUFBQztxQkFDekMsS0FBSzt1QkFDTCxLQUFLOzhCQUNMLEtBQUs7d0JBQ0wsS0FBSztzQkFDTCxLQUFLO3NCQUVMLEtBQUs7K0JBRUwsS0FBSzt1QkFFTCxNQUFNOztJQXlKVCwwQkFBQztDQUFBLEFBdExELElBc0xDO1NBcktZLG1CQUFtQjs7O0lBQzlCLHFDQUFvRTs7SUFDcEUsaUNBQW9COztJQUNwQixtQ0FBc0I7O0lBQ3RCLDBDQUFvQzs7SUFDcEMsb0NBQTBCOztJQUMxQixrQ0FDaUI7O0lBQ2pCLGtDQUNpQjs7SUFDakIsMkNBQTZCOztJQUU3QixtQ0FBMkM7O0lBRTNDLHVDQUF1RTs7SUFDdkUsMENBQWdDOztJQUNoQywyQ0FBMEI7O0lBQzFCLHlDQUEwQjs7SUFDMUIsdUNBQTBDOzs7OztJQUUxQyxrREFBdUU7Ozs7O0lBdUl2RSx1Q0FBdUQ7Ozs7O0lBRXZELHdDQUFzRDs7Ozs7SUF0SXBELDBDQUFrRjs7Ozs7SUFDbEYsNENBQXdGOzs7OztJQUN4RiwwQ0FBc0Y7O0lBQ3RGLDhDQUF1Qzs7Ozs7SUFDdkMsMENBQWdDOzs7OztJQUNoQyxrQ0FBOEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBmb3J3YXJkUmVmLFxuICBJbmplY3QsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIFZpZXdDaGlsZCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybUJ1aWxkZXIsIEZvcm1Db250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IERhdGVIZWxwZXIsIERhdGVSYW5nZSB9IGZyb20gJ0BhY3BhYXMtdWkvanMtZGF0ZS11dGlscyc7XG5pbXBvcnQgeyBGbHlvdXREaXJlY3RpdmUgfSBmcm9tICdAYWNwYWFzLXVpL25neC1mbHlvdXQnO1xuaW1wb3J0IHtcbiAgQ0FMRU5EQVJfREVGQVVMVF9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX0RFRkFVTFRfV0VFS0RBWV9MQUJFTFMsXG4gIENBTEVOREFSX01PTlRIX0xBQkVMUyxcbiAgQ0FMRU5EQVJfV0VFS0RBWV9MQUJFTFMsXG4gIENhbGVuZGFyU2VydmljZSxcbiAgRGF0ZXBpY2tlclJlc3VsdCxcbn0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtY2FsZW5kYXInO1xuXG5pbXBvcnQge1xuICBEQVRFUElDS0VSX0RBVEVfTUFTSyxcbiAgREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMsXG4gIERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVJcbn0gZnJvbSAnLi4vLi4vZGF0ZXBpY2tlci5jb25mJztcbmltcG9ydCB7IERhdGVwaWNrZXJWYWxpZGF0aW9uRXJyb3JzIH0gZnJvbSAnLi4vLi4vdHlwZXMvZGF0ZXBpY2tlci50eXBlcyc7XG5pbXBvcnQgeyBJbnRlcnZhbCwgSW50ZXJ2YWxCdWlsZGVyIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhdWktZGF0ZXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbXG4gICAgJy4vZGF0ZXBpY2tlci5jb21wb25lbnQuc2NzcycsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBwcm92aWRlcnM6IFt7XG4gICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tZm9yd2FyZC1yZWZcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfSwge1xuICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gRGF0ZXBpY2tlckNvbXBvbmVudCksIC8vIHRzbGludDpkaXNhYmxlLWxpbmU6bm8tZm9yd2FyZC1yZWZcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIERhdGVwaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gIEBWaWV3Q2hpbGQoRmx5b3V0RGlyZWN0aXZlLCB7c3RhdGljOiB0cnVlfSkgZmx5b3V0OiBGbHlvdXREaXJlY3RpdmU7XG4gIEBJbnB1dCgpIGlkOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG5hbWU6IHN0cmluZztcbiAgQElucHV0KCkgcGxhY2Vob2xkZXIgPSAnZGQvbW0veXl5eSc7XG4gIEBJbnB1dCgpIHJhbmdlOiBEYXRlUmFuZ2U7XG4gIEBJbnB1dCgpXG4gIG1pbjogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpXG4gIG1heDogRGF0ZSB8IG51bGw7XG4gIEBJbnB1dCgpIGF1dG9jb21wbGV0ZTogJ29mZic7XG5cbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPEV2ZW50PigpO1xuXG4gIHB1YmxpYyBkYXRlTWFzayA9IHttYXNrOiBEQVRFUElDS0VSX0RBVEVfTUFTSywgc2hvd01hc2tPbkhvdmVyOiBmYWxzZX07XG4gIHB1YmxpYyBmb3JtQ29udHJvbDogRm9ybUNvbnRyb2w7XG4gIHB1YmxpYyBzZWxlY3RlZERhdGU6IERhdGU7XG4gIHB1YmxpYyBpc0Rpc2FibGVkID0gZmFsc2U7XG4gIHB1YmxpYyBpbnRlcnZhbDogSW50ZXJ2YWwuSUludGVydmFsPERhdGU+O1xuXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveWVkJDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChDQUxFTkRBUl9NT05USF9MQUJFTFMpIHByaXZhdGUgbW9udGhMYWJlbHMgPSBDQUxFTkRBUl9ERUZBVUxUX01PTlRIX0xBQkVMUyxcbiAgICBASW5qZWN0KENBTEVOREFSX1dFRUtEQVlfTEFCRUxTKSBwcml2YXRlIHdlZWtkYXlMYWJlbHMgPSBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICAgIEBJbmplY3QoREFURVBJQ0tFUl9FUlJPUl9MQUJFTFMpIHByaXZhdGUgZXJyb3JMYWJlbHMgPSBEQVRFUElDS0VSX0RFRkFVTFRfRVJST1JfTEFCRUxTLFxuICAgIHB1YmxpYyBjYWxlbmRhclNlcnZpY2U6IENhbGVuZGFyU2VydmljZSxcbiAgICBwcml2YXRlIGZvcm1CdWlsZGVyOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIHJlZjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wgPSB0aGlzLmZvcm1CdWlsZGVyLmNvbnRyb2woe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRoaXMuaXNEaXNhYmxlZH0pO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkJClcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIGNvbnN0IGZvcm1hdCA9IHZhbHVlLnNwbGl0KERBVEVQSUNLRVJfU0VQQVJBVE9SX0NIQVIpLnJldmVyc2UoKS5qb2luKCctJyk7XG4gICAgICAgICAgY29uc3QgZGF0ZSA9IERhdGVIZWxwZXIucGFyc2VEYXRlKGZvcm1hdCwgJ3l5eXktTU0tZGQnKTtcbiAgICAgICAgICBpZiAoZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBkYXRlO1xuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZShkYXRlLnRvSVNPU3RyaW5nKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAvLyBDaGFuZ2UgdmFsdWUgd2l0aCBvcmlnaW5hbCB2YWx1ZSAoYW5kIG5vdCBudWxsIG9yICcnKSBzbyB3ZSBjYW4gYWRkIGFuIGVycm9yIGluIHRoZSB2YWxpZGF0ZSBmdW5jdGlvblxuICAgICAgICAgICAgdGhpcy5vbkNoYW5nZSh2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlID0gbnVsbDtcbiAgICAgICAgICB0aGlzLm9uQ2hhbmdlKCcnKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLm1pbiB8fCBjaGFuZ2VzLm1heCkge1xuICAgICAgIHRoaXMuY3JlYXRlSW50ZXJ2YWwoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLm5leHQodHJ1ZSk7XG4gICAgdGhpcy5jb21wb25lbnREZXN0cm95ZWQkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcml2YXRlIGNyZWF0ZUludGVydmFsKCkge1xuICAgIGlmICghdGhpcy5taW4gJiYgIXRoaXMubWF4KSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIC8vIENyZWF0ZSBhbiBpbnRlcnZhbCBpZiBtaW4vbWF4IGlzIGZpbGxlZCBpblxuICAgIHRoaXMuaW50ZXJ2YWwgPSBJbnRlcnZhbEJ1aWxkZXIuZGF0ZUludGVydmFsKHRoaXMubWluID8gbmV3IERhdGUodGhpcy5taW4pIDogbnVsbCwgdGhpcy5tYXggPyBuZXcgRGF0ZSh0aGlzLm1heCkgOiBudWxsKVxuICAgICAgLm5vdCgpXG4gICAgICAuYnVpbGQoKTtcbiAgfVxuXG4gIHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBzdHJpbmcgfCBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZERhdGUgPSB0eXBlb2YgdmFsdWUgPT09ICdzdHJpbmcnXG4gICAgICA/IHRoaXMuaXNJU09EYXRlRm9ybWF0KHZhbHVlKSA/IG5ldyBEYXRlKHZhbHVlKSA6IERhdGVIZWxwZXIucGFyc2VEYXRlKHZhbHVlLCAnZGQvTU0veXl5eScpXG4gICAgICA6IHZhbHVlO1xuICAgIGNvbnN0IGRhdGVTdHJpbmcgPSB0aGlzLnNlbGVjdGVkRGF0ZSA/IHRoaXMuZm9ybWF0RGF0ZSh0aGlzLnNlbGVjdGVkRGF0ZSkgOiAnJztcbiAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKGRhdGVTdHJpbmcpO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2Uob25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcbiAgfVxuXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6IChfOiBhbnkpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcbiAgfVxuXG4gIHB1YmxpYyBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmlzRGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXG4gICAgaWYgKHRoaXMuZm9ybUNvbnRyb2wpIHtcbiAgICAgIGlmIChpc0Rpc2FibGVkICYmIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmRpc2FibGUoKTtcbiAgICAgIH0gZWxzZSBpZiAoIWlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5kaXNhYmxlZCkge1xuICAgICAgICB0aGlzLmZvcm1Db250cm9sLmVuYWJsZSgpO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMucmVmLm1hcmtGb3JDaGVjaygpO1xuICB9XG5cbiAgcHVibGljIHNlbGVjdERhdGVGcm9tQ2FsZW5kYXIocmVzdWx0OiBEYXRlcGlja2VyUmVzdWx0KTogdm9pZCB7XG4gICAgaWYgKHJlc3VsdC5jb21wbGV0ZSkge1xuICAgICAgdGhpcy5mb3JtQ29udHJvbC5zZXRWYWx1ZSh0aGlzLmZvcm1hdERhdGUocmVzdWx0LmRhdGUpKTtcbiAgICAgIHRoaXMuZmx5b3V0LmNsb3NlKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGZvcm1hdERhdGUoZGF0ZTogRGF0ZSk6IHN0cmluZyB7XG4gICAgcmV0dXJuIERhdGVIZWxwZXIuZm9ybWF0RGF0ZShkYXRlLCAnREQvTU0vWVlZWScsIHtcbiAgICAgIGxlYWRpbmdaZXJvOiB0cnVlLFxuICAgICAgbW9udGhMYWJlbHM6IHRoaXMubW9udGhMYWJlbHMsXG4gICAgICB3ZWVrZGF5TGFiZWxzOiB0aGlzLndlZWtkYXlMYWJlbHMsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdmFsaWRhdGUoY3RybDogRm9ybUNvbnRyb2wpOiBEYXRlcGlja2VyVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgLy8gbm8gZXJyb3Igb24gZW1wdHkgdmFsdWUgKGFkZCByZXF1aXJlZCB2YWxpZGF0b3IgaW4gYXBwKVxuICAgIGlmIChjdHJsLnZhbHVlID09PSAnJyB8fCBjdHJsLnZhbHVlID09PSBudWxsKSB7XG4gICAgICByZXR1cm4gbnVsbDtcbiAgICB9XG5cbiAgICAvLyB0aHJvdyBmb3JtYXQgZXJyb3IgaWYgbm8gdmFsaWQgZGF0ZSB3YXMgcHJvdmlkZWRcbiAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoY3RybC52YWx1ZSk7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBmb3JtYXQ6IHRoaXMuZXJyb3JMYWJlbHMuRVJST1JTX0lOVkFMSURfREFURSxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLy8gbm8gZXJyb3IgaWYgdmFsaWQgZGF0ZSBhbiBubyByYW5nZSBwcm92aWRlZFxuICAgIGlmICghdGhpcy5yYW5nZSB8fCAhdGhpcy5yYW5nZS5sZW5ndGgpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHRocm93IGVycm9yIHdoZW4gb3V0IG9mIHJhbmdlXG4gICAgY29uc3QgcmFuZ2UgPSB0aGlzLmNhbGVuZGFyU2VydmljZS5nZXRSYW5nZUZvckRhdGUoZGF0ZSwgdGhpcy5yYW5nZSk7XG5cbiAgICByZXR1cm4gcmFuZ2UuaW5kZXhPZihkYXRlLmdldERhdGUoKSkgPj0gMCA/IHtcbiAgICAgIHJhbmdlOiB0aGlzLmVycm9yTGFiZWxzLkVSUk9SU19JTlZBTElEX1JBTkdFLFxuICAgIH0gOiBudWxsO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZUJsdXIoZTogRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmJsdXIuZW1pdChlKTtcbiAgICB0aGlzLm9uVG91Y2hlZChlKTtcbiAgfVxuXG4gIHByaXZhdGUgb25DaGFuZ2U6IChyZXM6IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIG9uVG91Y2hlZDogKF86IGFueSkgPT4gdm9pZCA9ICgpID0+IHVuZGVmaW5lZDtcblxuICBwcml2YXRlIGlzSVNPRGF0ZUZvcm1hdCh2YWx1ZTogc3RyaW5nKSB7XG4gICAgaWYgKHR5cGVvZiB2YWx1ZSAhPT0gJ3N0cmluZycpIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gICAgcmV0dXJuIHZhbHVlLm1hdGNoKC9cXGR7NH0tXFxkezJ9LVxcZHsyfVQuKi8pO1xuICB9XG59XG4iXX0=
392
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXBpY2tlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AYWNwYWFzLXVpL25neC1mb3Jtcy8iLCJzb3VyY2VzIjpbImxpYi9kYXRlcGlja2VyL2NvbXBvbmVudHMvZGF0ZXBpY2tlci9kYXRlcGlja2VyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osVUFBVSxFQUNWLE1BQU0sRUFDTixLQUFLLEVBSUwsTUFBTSxFQUVOLFNBQVMsR0FDVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQXdCLFdBQVcsRUFBZSxhQUFhLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNsSCxPQUFPLEVBQUUsVUFBVSxFQUFhLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ3hELE9BQU8sRUFDTCw2QkFBNkIsRUFDN0IsK0JBQStCLEVBQy9CLHFCQUFxQixFQUNyQix1QkFBdUIsRUFDdkIsZUFBZSxHQUloQixNQUFNLHlCQUF5QixDQUFDO0FBRWpDLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qix5QkFBeUIsRUFDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQVksZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFFakU7SUF5Q0UsNkJBQ3lDLGlCQUFpRCxFQUMvQyxtQkFBcUQsRUFDckQsV0FBNkMsRUFDL0UsZUFBZ0MsRUFDL0IsV0FBd0IsRUFDeEIsR0FBc0I7UUFMUyxrQ0FBQSxFQUFBLGlEQUFpRDtRQUMvQyxvQ0FBQSxF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Ozs7O0lBQ3ZDLDBDQUFnQzs7Ozs7SUFDaEMsa0NBQThCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgZm9yd2FyZFJlZixcbiAgSW5qZWN0LFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxuICBTaW1wbGVDaGFuZ2VzLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCwgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEYXRlSGVscGVyLCBEYXRlUmFuZ2UgfSBmcm9tICdAYWNwYWFzLXVpL2pzLWRhdGUtdXRpbHMnO1xuaW1wb3J0IHsgRmx5b3V0RGlyZWN0aXZlIH0gZnJvbSAnQGFjcGFhcy11aS9uZ3gtZmx5b3V0JztcbmltcG9ydCB7XG4gIENBTEVOREFSX0RFRkFVTFRfTU9OVEhfTEFCRUxTLFxuICBDQUxFTkRBUl9ERUZBVUxUX1dFRUtEQVlfTEFCRUxTLFxuICBDQUxFTkRBUl9NT05USF9MQUJFTFMsXG4gIENBTEVOREFSX1dFRUtEQVlfTEFCRUxTLFxuICBDYWxlbmRhclNlcnZpY2UsXG4gIERhdGVwaWNrZXJSZXN1bHQsXG4gIFdlZWtkYXlMYWJlbHNDb25maWcsXG4gIE1vbnRoTGFiZWxzQ29uZmlnLFxufSBmcm9tICdAYWNwYWFzLXVpL25neC1jYWxlbmRhcic7XG5cbmltcG9ydCB7XG4gIERBVEVQSUNLRVJfREFURV9NQVNLLFxuICBEQVRFUElDS0VSX0RFRkFVTFRfRVJST1JfTEFCRUxTLFxuICBEQVRFUElDS0VSX0VSUk9SX0xBQkVMUyxcbiAgREFURVBJQ0tFUl9TRVBBUkFUT1JfQ0hBUlxufSBmcm9tICcuLi8uLi9kYXRlcGlja2VyLmNvbmYnO1xuaW1wb3J0IHsgRGF0ZXBpY2tlclZhbGlkYXRpb25FcnJvcnMgfSBmcm9tICcuLi8uLi90eXBlcy9kYXRlcGlja2VyLnR5cGVzJztcbmltcG9ydCB7IEludGVydmFsLCBJbnRlcnZhbEJ1aWxkZXIgfSBmcm9tICdAYWNwYWFzLXVpL25neC11dGlscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F1aS1kYXRlcGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGVwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFtcbiAgICAnLi9kYXRlcGlja2VyLmNvbXBvbmVudC5zY3NzJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSwgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1mb3J3YXJkLXJlZlxuICAgIG11bHRpOiB0cnVlLFxuICB9LCB7XG4gICAgcHJvdmlkZTogTkdfVkFMSURBVE9SUyxcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBEYXRlcGlja2VyQ29tcG9uZW50KSwgLy8gdHNsaW50OmRpc2FibGUtbGluZTpuby1mb3J3YXJkLXJlZlxuICAgIG11bHRpOiB0cnVlLFxuICB9XSxcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZXBpY2tlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgQFZpZXdDaGlsZChGbHlvdXREaXJlY3RpdmUsIHtzdGF0aWM6IHRydWV9KSBmbHlvdXQ6IEZseW91dERpcmVjdGl2ZTtcbiAgQElucHV0KCkgaWQ6IHN0cmluZztcbiAgQElucHV0KCkgbmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBwbGFjZWhvbGRlciA9ICdkZC9tbS95eXl5JztcbiAgQElucHV0KCkgcmFuZ2U6IERhdGVSYW5nZTtcbiAgQElucHV0KClcbiAgbWluOiBEYXRlIHwgbnVsbDtcbiAgQElucHV0KClcbiAgbWF4OiBEYXRlIHwgbnVsbDtcbiAgQElucHV0KCkgYXV0b2NvbXBsZXRlOiAnb2ZmJztcbiAgQElucHV0KCkgd2Vla2RheUxhYmVsczogV2Vla2RheUxhYmVsc0NvbmZpZztcbiAgQElucHV0KCkgbW9udGhMYWJlbHM6IE1vbnRoTGFiZWxzQ29uZmlnO1xuXG4gIEBPdXRwdXQoKSBibHVyID0gbmV3IEV2ZW50RW1pdHRlcjxFdmVudD4oKTtcblxuICBwdWJsaWMgZGF0ZU1hc2sgPSB7bWFzazogREFURVBJQ0tFUl9EQVRFX01BU0ssIHNob3dNYXNrT25Ib3ZlcjogZmFsc2V9O1xuICBwdWJsaWMgZm9ybUNvbnRyb2w6IEZvcm1Db250cm9sO1xuICBwdWJsaWMgc2VsZWN0ZWREYXRlOiBEYXRlO1xuICBwdWJsaWMgaXNEaXNhYmxlZCA9IGZhbHNlO1xuICBwdWJsaWMgaW50ZXJ2YWw6IEludGVydmFsLklJbnRlcnZhbDxEYXRlPjtcblxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCQ6IFN1YmplY3Q8Ym9vbGVhbj4gPSBuZXcgU3ViamVjdDxib29sZWFuPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIEBJbmplY3QoQ0FMRU5EQVJfTU9OVEhfTEFCRUxTKSBwcml2YXRlIG1vZHVsZU1vbnRoTGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9NT05USF9MQUJFTFMsXG4gICAgQEluamVjdChDQUxFTkRBUl9XRUVLREFZX0xBQkVMUykgcHJpdmF0ZSBtb2R1bGVXZWVrZGF5TGFiZWxzID0gQ0FMRU5EQVJfREVGQVVMVF9XRUVLREFZX0xBQkVMUyxcbiAgICBASW5qZWN0KERBVEVQSUNLRVJfRVJST1JfTEFCRUxTKSBwcml2YXRlIGVycm9yTGFiZWxzID0gREFURVBJQ0tFUl9ERUZBVUxUX0VSUk9SX0xBQkVMUyxcbiAgICBwdWJsaWMgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBmb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSByZWY6IENoYW5nZURldGVjdG9yUmVmXG4gICkge1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMud2Vla2RheUxhYmVscyA9IHRoaXMud2Vla2RheUxhYmVscyB8fCB0aGlzLm1vZHVsZVdlZWtkYXlMYWJlbHM7XG4gICAgdGhpcy5tb250aExhYmVscyA9IHRoaXMubW9udGhMYWJlbHMgfHwgdGhpcy5tb2R1bGVNb250aExhYmVscztcbiAgICB0aGlzLmNyZWF0ZUludGVydmFsKCk7XG4gICAgdGhpcy5mb3JtQ29udHJvbCA9IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCh7dmFsdWU6ICcnLCBkaXNhYmxlZDogdGhpcy5pc0Rpc2FibGVkfSk7XG4gICAgdGhpcy5mb3JtQ29udHJvbC52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKFxuICAgICAgICB0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQkKVxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgY29uc3QgZm9ybWF0ID0gdmFsdWUuc3BsaXQoREFURVBJQ0tFUl9TRVBBUkFUT1JfQ0hBUikucmV2ZXJzZSgpLmpvaW4oJy0nKTtcbiAgICAgICAgICBjb25zdCBkYXRlID0gRGF0ZUhlbHBlci5wYXJzZURhdGUoZm9ybWF0LCAneXl5eS1NTS1kZCcpO1xuICAgICAgICAgIGlmIChkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IGRhdGU7XG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKGRhdGUudG9JU09TdHJpbmcoKSk7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIC8vIENoYW5nZSB2YWx1ZSB3aXRoIG9yaWdpbmFsIHZhbHVlIChhbmQgbm90IG51bGwgb3IgJycpIHNvIHdlIGNhbiBhZGQgYW4gZXJyb3IgaW4gdGhlIHZhbGlkYXRlIGZ1bmN0aW9uXG4gICAgICAgICAgICB0aGlzLm9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZERhdGUgPSBudWxsO1xuICAgICAgICAgIHRoaXMub25DaGFuZ2UoJycpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMubWluIHx8IGNoYW5nZXMubWF4KSB7XG4gICAgICAgdGhpcy5jcmVhdGVJbnRlcnZhbCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQubmV4dCh0cnVlKTtcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZCQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlSW50ZXJ2YWwoKSB7XG4gICAgaWYgKCF0aGlzLm1pbiAmJiAhdGhpcy5tYXgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gQ3JlYXRlIGFuIGludGVydmFsIGlmIG1pbi9tYXggaXMgZmlsbGVkIGluXG4gICAgdGhpcy5pbnRlcnZhbCA9IEludGVydmFsQnVpbGRlci5kYXRlSW50ZXJ2YWwodGhpcy5taW4gPyBuZXcgRGF0ZSh0aGlzLm1pbikgOiBudWxsLCB0aGlzLm1heCA/IG5ldyBEYXRlKHRoaXMubWF4KSA6IG51bGwpXG4gICAgICAubm90KClcbiAgICAgIC5idWlsZCgpO1xuICB9XG5cbiAgcHVibGljIHdyaXRlVmFsdWUodmFsdWU6IHN0cmluZyB8IERhdGUpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZSA9IHR5cGVvZiB2YWx1ZSA9PT0gJ3N0cmluZydcbiAgICAgID8gdGhpcy5pc0lTT0RhdGVGb3JtYXQodmFsdWUpID8gbmV3IERhdGUodmFsdWUpIDogRGF0ZUhlbHBlci5wYXJzZURhdGUodmFsdWUsICdkZC9NTS95eXl5JylcbiAgICAgIDogdmFsdWU7XG4gICAgY29uc3QgZGF0ZVN0cmluZyA9IHRoaXMuc2VsZWN0ZWREYXRlID8gdGhpcy5mb3JtYXREYXRlKHRoaXMuc2VsZWN0ZWREYXRlKSA6ICcnO1xuICAgIHRoaXMuZm9ybUNvbnRyb2wuc2V0VmFsdWUoZGF0ZVN0cmluZyk7XG4gIH1cblxuICBwdWJsaWMgcmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHJlczogYW55KSA9PiB2b2lkKTogdm9pZCB7XG4gICAgdGhpcy5vbkNoYW5nZSA9IG9uQ2hhbmdlO1xuICB9XG5cbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKF86IGFueSkgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuICB9XG5cbiAgcHVibGljIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuICAgIHRoaXMuaXNEaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cbiAgICBpZiAodGhpcy5mb3JtQ29udHJvbCkge1xuICAgICAgaWYgKGlzRGlzYWJsZWQgJiYgdGhpcy5mb3JtQ29udHJvbC5lbmFibGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZGlzYWJsZSgpO1xuICAgICAgfSBlbHNlIGlmICghaXNEaXNhYmxlZCAmJiB0aGlzLmZvcm1Db250cm9sLmRpc2FibGVkKSB7XG4gICAgICAgIHRoaXMuZm9ybUNvbnRyb2wuZW5hYmxlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgdGhpcy5yZWYubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0RGF0ZUZyb21DYWxlbmRhcihyZXN1bHQ6IERhdGVwaWNrZXJSZXN1bHQpOiB2b2lkIHtcbiAgICBpZiAocmVzdWx0LmNvbXBsZXRlKSB7XG4gICAgICB0aGlzLmZvcm1Db250cm9sLnNldFZhbHVlKHRoaXMuZm9ybWF0RGF0ZShyZXN1bHQuZGF0ZSkpO1xuICAgICAgdGhpcy5mbHlvdXQuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgZm9ybWF0RGF0ZShkYXRlOiBEYXRlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gRGF0ZUhlbHBlci5mb3JtYXREYXRlKGRhdGUsICdERC9NTS9ZWVlZJywge1xuICAgICAgbGVhZGluZ1plcm86IHRydWUsXG4gICAgICBtb250aExhYmVsczogdGhpcy5tb250aExhYmVscyxcbiAgICAgIHdlZWtkYXlMYWJlbHM6IHRoaXMud2Vla2RheUxhYmVscyxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyB2YWxpZGF0ZShjdHJsOiBGb3JtQ29udHJvbCk6IERhdGVwaWNrZXJWYWxpZGF0aW9uRXJyb3JzIHtcbiAgICAvLyBubyBlcnJvciBvbiBlbXB0eSB2YWx1ZSAoYWRkIHJlcXVpcmVkIHZhbGlkYXRvciBpbiBhcHApXG4gICAgaWYgKGN0cmwudmFsdWUgPT09ICcnIHx8IGN0cmwudmFsdWUgPT09IG51bGwpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIC8vIHRocm93IGZvcm1hdCBlcnJvciBpZiBubyB2YWxpZCBkYXRlIHdhcyBwcm92aWRlZFxuICAgIGNvbnN0IGRhdGUgPSBEYXRlSGVscGVyLnBhcnNlRGF0ZShjdHJsLnZhbHVlKTtcbiAgICBpZiAoIWRhdGUpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGZvcm1hdDogdGhpcy5lcnJvckxhYmVscy5FUlJPUlNfSU5WQUxJRF9EQVRFLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvLyBubyBlcnJvciBpZiB2YWxpZCBkYXRlIGFuIG5vIHJhbmdlIHByb3ZpZGVkXG4gICAgaWYgKCF0aGlzLnJhbmdlIHx8ICF0aGlzLnJhbmdlLmxlbmd0aCkge1xuICAgICAgcmV0dXJuIG51bGw7XG4gICAgfVxuXG4gICAgLy8gdGhyb3cgZXJyb3Igd2hlbiBvdXQgb2YgcmFuZ2VcbiAgICBjb25zdCByYW5nZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmdldFJhbmdlRm9yRGF0ZShkYXRlLCB0aGlzLnJhbmdlKTtcblxuICAgIHJldHVybiByYW5nZS5pbmRleE9mKGRhdGUuZ2V0RGF0ZSgpKSA+PSAwID8ge1xuICAgICAgcmFuZ2U6IHRoaXMuZXJyb3JMYWJlbHMuRVJST1JTX0lOVkFMSURfUkFOR0UsXG4gICAgfSA6IG51bGw7XG4gIH1cblxuICBwdWJsaWMgaGFuZGxlQmx1cihlOiBFdmVudCk6IHZvaWQge1xuICAgIHRoaXMuYmx1ci5lbWl0KGUpO1xuICAgIHRoaXMub25Ub3VjaGVkKGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBvbkNoYW5nZTogKHJlczogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgb25Ub3VjaGVkOiAoXzogYW55KSA9PiB2b2lkID0gKCkgPT4gdW5kZWZpbmVkO1xuXG4gIHByaXZhdGUgaXNJU09EYXRlRm9ybWF0KHZhbHVlOiBzdHJpbmcpIHtcbiAgICBpZiAodHlwZW9mIHZhbHVlICE9PSAnc3RyaW5nJykge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgICByZXR1cm4gdmFsdWUubWF0Y2goL1xcZHs0fS1cXGR7Mn0tXFxkezJ9VC4qLyk7XG4gIH1cbn1cbiJdfQ==
@@ -611,16 +611,16 @@ const DATEPICKER_DATE_MASK = `99${DATEPICKER_SEPARATOR_CHAR}99${DATEPICKER_SEPAR
611
611
  */
612
612
  class DatepickerComponent {
613
613
  /**
614
- * @param {?=} monthLabels
615
- * @param {?=} weekdayLabels
614
+ * @param {?=} moduleMonthLabels
615
+ * @param {?=} moduleWeekdayLabels
616
616
  * @param {?=} errorLabels
617
617
  * @param {?=} calendarService
618
618
  * @param {?=} formBuilder
619
619
  * @param {?=} ref
620
620
  */
621
- constructor(monthLabels = CALENDAR_DEFAULT_MONTH_LABELS, weekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS, calendarService, formBuilder, ref) {
622
- this.monthLabels = monthLabels;
623
- this.weekdayLabels = weekdayLabels;
621
+ constructor(moduleMonthLabels = CALENDAR_DEFAULT_MONTH_LABELS, moduleWeekdayLabels = CALENDAR_DEFAULT_WEEKDAY_LABELS, errorLabels = DATEPICKER_DEFAULT_ERROR_LABELS, calendarService, formBuilder, ref) {
622
+ this.moduleMonthLabels = moduleMonthLabels;
623
+ this.moduleWeekdayLabels = moduleWeekdayLabels;
624
624
  this.errorLabels = errorLabels;
625
625
  this.calendarService = calendarService;
626
626
  this.formBuilder = formBuilder;
@@ -643,6 +643,8 @@ class DatepickerComponent {
643
643
  * @return {?}
644
644
  */
645
645
  ngOnInit() {
646
+ this.weekdayLabels = this.weekdayLabels || this.moduleWeekdayLabels;
647
+ this.monthLabels = this.monthLabels || this.moduleMonthLabels;
646
648
  this.createInterval();
647
649
  this.formControl = this.formBuilder.control({ value: '', disabled: this.isDisabled });
648
650
  this.formControl.valueChanges
@@ -815,7 +817,7 @@ class DatepickerComponent {
815
817
  DatepickerComponent.decorators = [
816
818
  { type: Component, args: [{
817
819
  selector: 'aui-datepicker',
818
- template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar (selectDate)=\"selectDateFromCalendar($event)\" [range]=\"range\"\n [selectedDate]=\"selectedDate\" [interval]=\"interval\"></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
820
+ template: "<div aria-haspopup=\"grid\" auiFlyout class=\"aui-datepicker a-input__wrapper\">\n <input\n (blur)=\"handleBlur($event)\"\n [attr.disabled]=\"isDisabled ? true : null\"\n [auiMask]=\"dateMask.mask\"\n [autocomplete]=\"autocomplete\"\n [formControl]=\"formControl\"\n id=\"{{ id }}\"\n name=\"{{ name }}\"\n placeholder=\"{{ placeholder }}\"\n type=\"text\"\n >\n <aui-icon *ngIf=\"isDisabled\" name=\"ai-calendar-3\" role=\"button\" tabindex=\"0\"></aui-icon>\n\n <ng-container *ngIf=\"!isDisabled\">\n <aui-icon auiFlyoutAction [openOnFocus]=\"false\" name=\"ai-calendar-3\" className=\"is-clickable\" role=\"button\" tabindex=\"0\"></aui-icon>\n </ng-container>\n\n <ng-container *ngIf=\"!isDisabled\">\n <div auiFlyoutZone class=\"m-datepicker m-datepicker--fixed\" role=\"dialog\">\n <aui-calendar\n (selectDate)=\"selectDateFromCalendar($event)\"\n [range]=\"range\"\n [selectedDate]=\"selectedDate\"\n [interval]=\"interval\"\n [weekdayLabels]=\"weekdayLabels\"\n [monthLabels]=\"monthLabels\"\n ></aui-calendar>\n </div>\n </ng-container>\n</div>\n",
819
821
  changeDetection: ChangeDetectionStrategy.OnPush,
820
822
  providers: [{
821
823
  provide: NG_VALUE_ACCESSOR,
@@ -855,6 +857,8 @@ DatepickerComponent.propDecorators = {
855
857
  min: [{ type: Input }],
856
858
  max: [{ type: Input }],
857
859
  autocomplete: [{ type: Input }],
860
+ weekdayLabels: [{ type: Input }],
861
+ monthLabels: [{ type: Input }],
858
862
  blur: [{ type: Output }]
859
863
  };
860
864
  if (false) {
@@ -875,6 +879,10 @@ if (false) {
875
879
  /** @type {?} */
876
880
  DatepickerComponent.prototype.autocomplete;
877
881
  /** @type {?} */
882
+ DatepickerComponent.prototype.weekdayLabels;
883
+ /** @type {?} */
884
+ DatepickerComponent.prototype.monthLabels;
885
+ /** @type {?} */
878
886
  DatepickerComponent.prototype.blur;
879
887
  /** @type {?} */
880
888
  DatepickerComponent.prototype.dateMask;
@@ -905,12 +913,12 @@ if (false) {
905
913
  * @type {?}
906
914
  * @private
907
915
  */
908
- DatepickerComponent.prototype.monthLabels;
916
+ DatepickerComponent.prototype.moduleMonthLabels;
909
917
  /**
910
918
  * @type {?}
911
919
  * @private
912
920
  */
913
- DatepickerComponent.prototype.weekdayLabels;
921
+ DatepickerComponent.prototype.moduleWeekdayLabels;
914
922
  /**
915
923
  * @type {?}
916
924
  * @private