myrta-ui 1.0.39 → 1.0.40

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.
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectionStrategy, Component, EventEmitter, forwardRef, HostListener, Input, Output, ViewChildren } from '@angular/core';
2
2
  import { FormArray, FormControl, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
3
3
  import { NgxOtpBehavior } from '../../models/input-opt.model';
4
- import { InputOptSizesEnum } from "./input-opt.enum";
4
+ import { InputOptSizesEnum } from './input-opt.enum';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "../../services/input-opt.service";
7
7
  import * as i2 from "../../../../error-message/error-message.component";
@@ -43,8 +43,10 @@ export class InputOptComponent {
43
43
  this.checkInvalid = null;
44
44
  this.change = new EventEmitter();
45
45
  this.fillChange = new EventEmitter();
46
- this.onChange = (value) => { };
47
- this.onTouched = () => { };
46
+ this.onChange = (value) => {
47
+ };
48
+ this.onTouched = () => {
49
+ };
48
50
  }
49
51
  set disable(isDisabled) {
50
52
  this.handleDisable(isDisabled);
@@ -89,11 +91,19 @@ export class InputOptComponent {
89
91
  get getClasses() {
90
92
  return `${InputOptSizesEnum[this.size]} ${this.customClasses}`;
91
93
  }
94
+ get getContainerClasses() {
95
+ return this.otpConfig?.classList?.container || '';
96
+ }
97
+ get getInputBoxClasses() {
98
+ return this.otpConfig?.classList?.inputBox || '';
99
+ }
92
100
  convertToFormControl(absCtrl) {
93
101
  return absCtrl;
94
102
  }
95
103
  clear() {
96
- this.removeStyleFromAll(this.otpConfig.classList.inputFilled);
104
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
105
+ this.removeStyleFromAll(this.otpConfig.classList.inputFilled);
106
+ }
97
107
  this.ngxOtpArray.reset();
98
108
  this.ref.detectChanges();
99
109
  if (this.otpConfig.autofocus) {
@@ -103,7 +113,9 @@ export class InputOptComponent {
103
113
  handleKeyUp(index, value) {
104
114
  // @ts-ignore
105
115
  if (this.otpConfig.pattern.test(value) && value !== 'Backspace') {
106
- this.addStyle(index, this.otpConfig.classList.inputFilled);
116
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
117
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
118
+ }
107
119
  if (!this.ngxOtpArray.valid) {
108
120
  this.getFormControlByIndex(index).setValue(value, { emitEvent: false });
109
121
  this.stepForward(index);
@@ -114,7 +126,9 @@ export class InputOptComponent {
114
126
  }
115
127
  }
116
128
  handleDelete(index) {
117
- this.removeStyle(index, this.otpConfig.classList.inputFilled);
129
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
130
+ this.removeStyle(index, this.otpConfig.classList.inputFilled);
131
+ }
118
132
  if ((this.otpConfig.behavior === NgxOtpBehavior.LEGACY &&
119
133
  !this.focusedInputHasValue) ||
120
134
  this.otpConfig.behavior !== NgxOtpBehavior.LEGACY) {
@@ -172,7 +186,9 @@ export class InputOptComponent {
172
186
  }
173
187
  setInitialStyles() {
174
188
  this.styles = this.otpService.init2DArray(this.otpConfig.otpLength);
175
- this.addStyleToAll(this.otpConfig.classList.input);
189
+ if (this.otpConfig.classList && this.otpConfig.classList.input) {
190
+ this.addStyleToAll(this.otpConfig.classList.input);
191
+ }
176
192
  }
177
193
  setFocus(index) {
178
194
  this.inputs[index].focus();
@@ -199,7 +215,9 @@ export class InputOptComponent {
199
215
  .split('')
200
216
  .slice(0, this.otpConfig.otpLength)
201
217
  .map((character, index) => {
202
- this.addStyle(index, this.otpConfig.classList.inputFilled);
218
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
219
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
220
+ }
203
221
  this.getFormControlByIndex(index).setValue(character);
204
222
  lastIndex = index;
205
223
  });
@@ -214,24 +232,34 @@ export class InputOptComponent {
214
232
  handleDisable(isDisabled) {
215
233
  if (isDisabled) {
216
234
  this.ngxOtpArray.disable();
217
- this.addStyleToAll(this.otpConfig.classList.inputDisabled);
235
+ if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
236
+ this.addStyleToAll(this.otpConfig.classList.inputDisabled);
237
+ }
218
238
  }
219
239
  else {
220
240
  this.ngxOtpArray.enable();
221
- this.removeStyleFromAll(this.otpConfig.classList.inputDisabled);
241
+ if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
242
+ this.removeStyleFromAll(this.otpConfig.classList.inputDisabled);
243
+ }
222
244
  }
223
245
  }
224
246
  handleStatusChange(status) {
225
- this.removeStyleFromAll([
226
- ...this.otpService.toArray(this.otpConfig.classList.inputSuccess),
227
- ...this.otpService.toArray(this.otpConfig.classList.inputError),
228
- ]);
247
+ if (this.otpConfig.classList && (this.otpConfig.classList.inputSuccess && this.otpConfig.classList.inputError)) {
248
+ this.removeStyleFromAll([
249
+ ...this.otpService.toArray(this.otpConfig.classList.inputSuccess),
250
+ ...this.otpService.toArray(this.otpConfig.classList.inputError),
251
+ ]);
252
+ }
229
253
  if (status) {
230
254
  if (status === 'success') {
231
- this.addStyleToAll(this.otpConfig.classList.inputSuccess);
255
+ if (this.otpConfig.classList && this.otpConfig.classList.inputSuccess) {
256
+ this.addStyleToAll(this.otpConfig.classList.inputSuccess);
257
+ }
232
258
  }
233
259
  else if (status === 'error') {
234
- this.addStyleToAll(this.otpConfig.classList.inputError);
260
+ if (this.otpConfig.classList && this.otpConfig.classList.inputError) {
261
+ this.addStyleToAll(this.otpConfig.classList.inputError);
262
+ }
235
263
  }
236
264
  }
237
265
  }
@@ -263,7 +291,9 @@ export class InputOptComponent {
263
291
  .split('')
264
292
  .slice(0, this.otpConfig.otpLength)
265
293
  .map((character, index) => {
266
- this.addStyle(index, this.otpConfig.classList.inputFilled);
294
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
295
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
296
+ }
267
297
  this.getFormControlByIndex(index).setValue(character, { emitEvent: false });
268
298
  lastIndex = index;
269
299
  });
@@ -291,7 +321,7 @@ InputOptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
291
321
  useExisting: forwardRef(() => InputOptComponent),
292
322
  multi: true,
293
323
  },
294
- ], viewQueries: [{ propertyName: "otpInputElements", predicate: ["otpInputElement"], descendants: true }], ngImport: i0, template: "<form\r\n [ngClass]=\"otpConfig.classList.container\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"otpConfig.classList.inputBox\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"], components: [{ type: i2.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.OptPatternDirective, selector: "[mrxOptPattern]", inputs: ["mrxOptPattern"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
324
+ ], viewQueries: [{ propertyName: "otpInputElements", predicate: ["otpInputElement"], descendants: true }], ngImport: i0, template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"], components: [{ type: i2.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i3.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i3.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i3.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i5.OptPatternDirective, selector: "[mrxOptPattern]", inputs: ["mrxOptPattern"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
295
325
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptComponent, decorators: [{
296
326
  type: Component,
297
327
  args: [{ selector: 'mrx-input-opt', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -300,7 +330,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
300
330
  useExisting: forwardRef(() => InputOptComponent),
301
331
  multi: true,
302
332
  },
303
- ], template: "<form\r\n [ngClass]=\"otpConfig.classList.container\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"otpConfig.classList.inputBox\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"] }]
333
+ ], template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"] }]
304
334
  }], ctorParameters: function () { return [{ type: i1.InputOptService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
305
335
  type: Input
306
336
  }], customClasses: [{
@@ -328,4 +358,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
328
358
  type: HostListener,
329
359
  args: ['paste', ['$event']]
330
360
  }] } });
331
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW9wdC9jb21wb25lbnRzL2lucHV0LW9wdC9pbnB1dC1vcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L2NvbXBvbmVudHMvaW5wdXQtb3B0L2lucHV0LW9wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBRTdDLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQW1DLE1BQU0sOEJBQThCLENBQUM7QUFHL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8saUJBQWlCO0lBOEQ1QixZQUNtQixVQUEyQixFQUMzQixHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9EakMsbUJBQWMsR0FBRyxNQUFNLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcseUJBQXlCLENBQUM7UUFHL0MsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQUcsS0FBSyxDQUFBO1FBRXRCLGdCQUFXLEdBQUcs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VSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQzs0QkFDaEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7c0lBa0NlLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsYUFBYTtzQkFBNUIsS0FBSztnQkFDVSxPQUFPO3NCQUF0QixLQUFLO2dCQUNVLGNBQWM7c0JBQTdCLEtBQUs7Z0JBQ1UsWUFBWTtzQkFBM0IsS0FBSztnQkFFTyxPQUFPO3NCQUFuQixLQUFLO2dCQUtPLE1BQU07c0JBQWxCLEtBQUs7Z0JBVU8sTUFBTTtzQkFBbEIsS0FBSztnQkFJMkIsZ0JBQWdCO3NCQUFoRCxZQUFZO3VCQUFDLGlCQUFpQjtnQkFFckIsTUFBTTtzQkFBZixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBc1I0QixPQUFPO3NCQUF6QyxZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPbkRlc3Ryb3ksXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBRdWVyeUxpc3QsXHJcbiAgVmlld0NoaWxkcmVuXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgRm9ybUFycmF5LCBGb3JtQ29udHJvbCwgTkdfVkFMVUVfQUNDRVNTT1IsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5neE90cEJlaGF2aW9yLCBOZ3hPdHBJbnB1dENvbmZpZywgTmd4T3RwU3RhdHVzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL2lucHV0LW9wdC5tb2RlbCc7XHJcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBJbnB1dE9wdFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9pbnB1dC1vcHQuc2VydmljZSc7XHJcbmltcG9ydCB7IElucHV0T3B0U2l6ZXNFbnVtLCBJbnB1dE9wdFNpemVzVHlwZXMgfSBmcm9tIFwiLi9pbnB1dC1vcHQuZW51bVwiO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtb3B0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtb3B0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1vcHQuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0T3B0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE9wdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGRlZmF1bHRQYXR0ZXJuID0gL14uKyQvO1xyXG4gIHByaXZhdGUgREVGQVVMVF9BUklBX0xBQkVMID0gJ09uZSB0aW1lIHBhc3N3b3JkIGlucHV0JztcclxuICBwcml2YXRlIExBU1RfSU5QVVRfSU5ERVghOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbnB1dHMhOiBIVE1MSW5wdXRFbGVtZW50W107XHJcbiAgcHJpdmF0ZSBpc05neE90cEFycmF5RGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG5neE90cEFycmF5JCE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzZWRJbnB1dEhhc1ZhbHVlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc0luaXQgPSBmYWxzZVxyXG5cclxuICBuZ3hPdHBBcnJheSA9IG5ldyBGb3JtQXJyYXkoW10pO1xyXG4gIGFyaWFMYWJlbHM6IHN0cmluZ1tdID0gW107XHJcbiAgcGF0dGVybiE6IFJlZ0V4cDtcclxuICBzdHlsZXM6IHN0cmluZ1tdW10gPSBbXTtcclxuXHJcbiAgb3RwQ29uZmlnOiBOZ3hPdHBJbnB1dENvbmZpZyA9IHtcclxuICAgIG90cExlbmd0aDogNixcclxuICAgIGF1dG9mb2N1czogdHJ1ZSxcclxuICAgIGF1dG9ibHVyOiB0cnVlLFxyXG4gICAgYmVoYXZpb3I6IE5neE90cEJlaGF2aW9yLkRFRkFVTFQsXHJcbiAgICBwYXR0ZXJuOiB0aGlzLmRlZmF1bHRQYXR0ZXJuLFxyXG4gICAgY2xhc3NMaXN0OiB7XHJcbiAgICAgIGNvbnRhaW5lcjogJycsXHJcbiAgICAgIGlucHV0Qm94OiAnJyxcclxuICAgICAgaW5wdXQ6ICcnLFxyXG4gICAgICBpbnB1dEZpbGxlZDogJycsXHJcbiAgICAgIGlucHV0RGlzYWJsZWQ6ICcnLFxyXG4gICAgICBpbnB1dFN1Y2Nlc3M6ICcnLFxyXG4gICAgICBpbnB1dEVycm9yOiAnJyxcclxuICAgIH1cclxuICB9O1xyXG5cclxuICBASW5wdXQoKSBwdWJsaWMgc2l6ZTogSW5wdXRPcHRTaXplc1R5cGVzID0gJ2xhcmdlJ1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBjdXN0b21DbGFzc2VzID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGludmFsaWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZE1lc3NhZ2U6IHN0cmluZyB8IHN0cmluZ1tdID0gJyc7XHJcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIEBJbnB1dCgpIHNldCBkaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuaGFuZGxlRGlzYWJsZShpc0Rpc2FibGVkKTtcclxuICAgIHRoaXMuaXNOZ3hPdHBBcnJheURpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBjb25maWcoYzogTmd4T3RwSW5wdXRDb25maWcpIHtcclxuICAgIHRoaXMub3RwQ29uZmlnID0geyAuLi50aGlzLm90cENvbmZpZywgLi4uYyB9O1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdD8uaW5wdXQpIHtcclxuICAgICAgdGhpcy5zZXRJbml0aWFsU3R5bGVzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWMucGF0dGVybikge1xyXG4gICAgICB0aGlzLm90cENvbmZpZy5wYXR0ZXJuID0gdGhpcy5kZWZhdWx0UGF0dGVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOiBOZ3hPdHBTdGF0dXMpIHtcclxuICAgIHRoaXMuaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKCdvdHBJbnB1dEVsZW1lbnQnKSBvdHBJbnB1dEVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICBAT3V0cHV0KCkgZmlsbENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG90cFNlcnZpY2U6IElucHV0T3B0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFVwT3RwRm9ybSgpO1xyXG4gICAgdGhpcy5zZXRVcEFyaWFMYWJlbHMoKTtcclxuICAgIHRoaXMuTEFTVF9JTlBVVF9JTkRFWCA9IHRoaXMub3RwQ29uZmlnLm90cExlbmd0aCAtIDE7XHJcbiAgICB0aGlzLm90cEZvcm1DaGFuZ2VMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXROYXRpdmVIVE1MRWxlbWVudHMoKTtcclxuICAgIHRoaXMuc2V0SW5pdGlhbEZvY3VzKCk7XHJcbiAgICB0aGlzLnNldE51bWVyaWNJbnB1dElmUG9zc2libGUoKTtcclxuICAgIHRoaXMuaGFuZGxlRGlzYWJsZSh0aGlzLmlzTmd4T3RwQXJyYXlEaXNhYmxlZCk7XHJcbiAgICB0aGlzLmlzSW5pdCA9IHRydWVcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5uZ3hPdHBBcnJheSQudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgaXNJbnZhbGlkTWVzc2FnZSgpOiBib29sZWFuIHtcclxuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlLmxlbmd0aDtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0aGlzLmNoZWNrSW52YWxpZCA9PT0gZmFsc2UgP1xyXG4gICAgICAnbXJ4LWlucHV0LWNoZWNrZWQtc3VjY2VzcycgOlxyXG4gICAgICB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJ1xyXG4gIH1cclxuXHJcbiAgZ2V0IGdldENsYXNzZXMoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHtJbnB1dE9wdFNpemVzRW51bVt0aGlzLnNpemVdfSAke3RoaXMuY3VzdG9tQ2xhc3Nlc31gXHJcbiAgfVxyXG5cclxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChhYnNDdHJsOiBBYnN0cmFjdENvbnRyb2wgfCBudWxsKTogRm9ybUNvbnRyb2wge1xyXG4gICAgcmV0dXJuIGFic0N0cmwgYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBjbGVhcigpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICB0aGlzLm5neE90cEFycmF5LnJlc2V0KCk7XHJcbiAgICB0aGlzLnJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcblxyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlS2V5VXAoaW5kZXg6IG51bWJlciwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgLy8gQHRzLWlnbm9yZVxyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLnBhdHRlcm4udGVzdCh2YWx1ZSkgJiYgdmFsdWUgIT09ICdCYWNrc3BhY2UnKSB7XHJcbiAgICAgIHRoaXMuYWRkU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICAgIGlmICghdGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4KS5zZXRWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLnN0ZXBGb3J3YXJkKGluZGV4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJsdXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGVsZXRlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMucmVtb3ZlU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICBpZiAoXHJcbiAgICAgICh0aGlzLm90cENvbmZpZy5iZWhhdmlvciA9PT0gTmd4T3RwQmVoYXZpb3IuTEVHQUNZICYmXHJcbiAgICAgICAgIXRoaXMuZm9jdXNlZElucHV0SGFzVmFsdWUpIHx8XHJcbiAgICAgIHRoaXMub3RwQ29uZmlnLmJlaGF2aW9yICE9PSBOZ3hPdHBCZWhhdmlvci5MRUdBQ1lcclxuICAgICkge1xyXG4gICAgICB0aGlzLnN0ZXBCYWNrd2FyZChpbmRleCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmZvY3VzZWRJbnB1dEhhc1ZhbHVlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVGb2N1cyhpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICB0aGlzLmZvY3VzZWRJbnB1dEhhc1ZhbHVlID0gISF0aGlzLm5neE90cEFycmF5LmNvbnRyb2xzW2luZGV4XS52YWx1ZTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5vdHBDb25maWcuYmVoYXZpb3IgPT09IE5neE90cEJlaGF2aW9yLkxFR0FDWSAmJlxyXG4gICAgICB0aGlzLmZvY3VzZWRJbnB1dEhhc1ZhbHVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pbnB1dHNbaW5kZXhdLnNlbGVjdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RlcEJhY2t3YXJkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA+IDApIHtcclxuICAgICAgdGhpcy5zZXRGb2N1cyhpbmRleCAtIDEpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc3RlcEZvcndhcmQoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgaWYgKGluZGV4IDwgdGhpcy5MQVNUX0lOUFVUX0lOREVYKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoaW5kZXggKyAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgb3RwRm9ybUNoYW5nZUxpc3RlbmVyKCk6IHZvaWQge1xyXG4gICAgdGhpcy5uZ3hPdHBBcnJheSQgPSB0aGlzLm5neE90cEFycmF5LnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoKHZhbHVlcykgPT4ge1xyXG4gICAgICBpZiAodGhpcy5pc0luaXQpIHtcclxuICAgICAgICB0aGlzLmNoYW5nZS5lbWl0KHZhbHVlcyk7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLm5neE90cEFycmF5LnZhbGlkKSB7XHJcbiAgICAgICAgICB0aGlzLmZpbGxDaGFuZ2UuZW1pdCh2YWx1ZXMuam9pbignJykpO1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwT3RwRm9ybSgpOiB2b2lkIHtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5vdHBDb25maWcub3RwTGVuZ3RoOyBpKyspIHtcclxuICAgICAgdGhpcy5uZ3hPdHBBcnJheS5wdXNoKG5ldyBGb3JtQ29udHJvbCgnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldFVwQXJpYUxhYmVscygpOiB2b2lkIHtcclxuICAgIGNvbnN0IGxhYmVscyA9IHRoaXMub3RwQ29uZmlnLmFyaWFMYWJlbHM7XHJcblxyXG4gICAgdGhpcy5hcmlhTGFiZWxzID0gQXJyYXkuaXNBcnJheShsYWJlbHMpXHJcbiAgICAgID8gbGFiZWxzXHJcbiAgICAgIDogbmV3IEFycmF5KHRoaXMub3RwQ29uZmlnLm90cExlbmd0aCkuZmlsbChcclxuICAgICAgICBsYWJlbHMgfHwgdGhpcy5ERUZBVUxUX0FSSUFfTEFCRUxcclxuICAgICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0TmF0aXZlSFRNTEVsZW1lbnRzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dHMgPSB0aGlzLm90cElucHV0RWxlbWVudHMubWFwKChlbGVtZW50KSA9PiBlbGVtZW50Lm5hdGl2ZUVsZW1lbnQpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsRm9jdXMoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEluaXRpYWxTdHlsZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMub3RwU2VydmljZS5pbml0MkRBcnJheSh0aGlzLm90cENvbmZpZy5vdHBMZW5ndGgpO1xyXG4gICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldEZvY3VzKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzW2luZGV4XS5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXROdW1lcmljSW5wdXRJZlBvc3NpYmxlKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLm51bWVyaWNJbnB1dE1vZGUpIHtcclxuICAgICAgdGhpcy5vdHBDb25maWcucGF0dGVybiA9IHRoaXMuZGVmYXVsdFBhdHRlcm47XHJcbiAgICAgIHRoaXMuaW5wdXRzLm1hcCgoZWxlbWVudCkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdpbnB1dG1vZGUnLCAnbnVtZXJpYycpO1xyXG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdwYXR0ZXJuJywgJ1swLTldKicpO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgYmx1cigpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5hdXRvYmx1cikge1xyXG4gICAgICB0aGlzLmlucHV0cy5tYXAoKGlucHV0KSA9PiBpbnB1dC5ibHVyKCkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVQYXN0ZSh2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcucGF0dGVybi50ZXN0KHZhbHVlKSkge1xyXG4gICAgICBsZXQgbGFzdEluZGV4ID0gMDtcclxuICAgICAgdmFsdWVcclxuICAgICAgICAuc3BsaXQoJycpXHJcbiAgICAgICAgLnNsaWNlKDAsIHRoaXMub3RwQ29uZmlnLm90cExlbmd0aClcclxuICAgICAgICAubWFwKChjaGFyYWN0ZXI6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRTdHlsZShpbmRleCwgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKTtcclxuICAgICAgICAgIHRoaXMuZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4KS5zZXRWYWx1ZShjaGFyYWN0ZXIpO1xyXG4gICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9jdXMobGFzdEluZGV4ICsgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlRGlzYWJsZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XHJcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xyXG4gICAgICB0aGlzLm5neE90cEFycmF5LmRpc2FibGUoKTtcclxuICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubmd4T3RwQXJyYXkuZW5hYmxlKCk7XHJcbiAgICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1czogTmd4T3RwU3RhdHVzKTogdm9pZCB7XHJcbiAgICB0aGlzLnJlbW92ZVN0eWxlRnJvbUFsbChbXHJcbiAgICAgIC4uLnRoaXMub3RwU2VydmljZS50b0FycmF5KFxyXG4gICAgICAgIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3NcclxuICAgICAgKSxcclxuICAgICAgLi4udGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RXJyb3IpLFxyXG4gICAgXSk7XHJcblxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICB0aGlzLmFkZFN0eWxlVG9BbGwodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0U3VjY2Vzcyk7XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEVycm9yKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRGb3JtQ29udHJvbEJ5SW5kZXgoaW5kZXg6IG51bWJlcik6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiB0aGlzLm5neE90cEFycmF5LmNvbnRyb2xzW2luZGV4XSBhcyBGb3JtQ29udHJvbDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU3R5bGUoaW5kZXg6IG51bWJlciwgc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UuYWRkSXRlbUF0SW5kZXgoXHJcbiAgICAgIHRoaXMuc3R5bGVzLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYWRkU3R5bGVUb0FsbChzdHlsZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMub3RwU2VydmljZS5hZGRJdGVtVG9BbGwoXHJcbiAgICAgIHRoaXMuc3R5bGVzLFxyXG4gICAgICB0aGlzLm90cFNlcnZpY2UudG9BcnJheShzdHlsZXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVTdHlsZShpbmRleDogbnVtYmVyLCBzdHlsZXM6IHN0cmluZyB8IHN0cmluZ1tdKTogdm9pZCB7XHJcbiAgICB0aGlzLnN0eWxlcyA9IHRoaXMub3RwU2VydmljZS5yZW1vdmVJdGVtQXRJbmRleChcclxuICAgICAgdGhpcy5zdHlsZXMsXHJcbiAgICAgIGluZGV4LFxyXG4gICAgICB0aGlzLm90cFNlcnZpY2UudG9BcnJheShzdHlsZXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZW1vdmVTdHlsZUZyb21BbGwoc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UucmVtb3ZlSXRlbUZyb21BbGwoXHJcbiAgICAgIHRoaXMuc3R5bGVzLFxyXG4gICAgICB0aGlzLm90cFNlcnZpY2UudG9BcnJheShzdHlsZXMpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBvbkNoYW5nZSA9ICh2YWx1ZTogSW5wdXRUZXh0VmFsdWVUeXBlcykgPT4ge307XHJcbiAgcHJpdmF0ZSBvblRvdWNoZWQgPSAoKSA9PiB7fTtcclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSkge1xyXG4gICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAoKSA9PiB7fSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyB3cml0ZVZhbHVlKG91dHNpZGVWYWx1ZTogSW5wdXRUZXh0VmFsdWVUeXBlcykge1xyXG4gICAgaWYgKG91dHNpZGVWYWx1ZSkge1xyXG4gICAgICBsZXQgbGFzdEluZGV4ID0gMDtcclxuICAgICAgU3RyaW5nKG91dHNpZGVWYWx1ZSlcclxuICAgICAgICAuc3BsaXQoJycpXHJcbiAgICAgICAgLnNsaWNlKDAsIHRoaXMub3RwQ29uZmlnLm90cExlbmd0aClcclxuICAgICAgICAubWFwKChjaGFyYWN0ZXI6IHN0cmluZywgaW5kZXg6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgdGhpcy5hZGRTdHlsZShpbmRleCwgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKTtcclxuICAgICAgICAgIHRoaXMuZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4KS5zZXRWYWx1ZShjaGFyYWN0ZXIsIHtlbWl0RXZlbnQ6IGZhbHNlfSk7XHJcbiAgICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLm5neE90cEFycmF5LnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5ibHVyKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cyhsYXN0SW5kZXggKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcigncGFzdGUnLCBbJyRldmVudCddKSBvblBhc3RlKGV2ZW50OiBDbGlwYm9hcmRFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIHRoaXMuaGFuZGxlUGFzdGUoZXZlbnQuY2xpcGJvYXJkRGF0YS5nZXREYXRhKCd0ZXh0JykpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5wdXRUeXBlKCk6ICd0ZXh0JyB8ICdwYXNzd29yZCcgfCAndGVsJyB7XHJcbiAgICByZXR1cm4gdGhpcy5vdHBDb25maWcuaXNQYXNzd29yZElucHV0ID8gJ3Bhc3N3b3JkJyA6IHRoaXMub3RwQ29uZmlnLmlzTnVtYmVySW5wdXQgPyAndGVsJyA6ICd0ZXh0J1xyXG4gIH1cclxufVxyXG4iLCI8Zm9ybVxyXG4gIFtuZ0NsYXNzXT1cIm90cENvbmZpZy5jbGFzc0xpc3QuY29udGFpbmVyXCJcclxuICBjbGFzcz1cIm1yeC1pbnB1dC1vdHAtY29udGFpbmVyXCJcclxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXHJcbj5cclxuICA8ZGl2XHJcbiAgICAqbmdGb3I9XCJsZXQgY29udHJvbCBvZiBuZ3hPdHBBcnJheS5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiXHJcbiAgICBbbmdDbGFzc109XCJvdHBDb25maWcuY2xhc3NMaXN0LmlucHV0Qm94XCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgICBbY2xhc3NdPVwiY2hlY2tWYWxpZENsYXNzZXNcIlxyXG4gICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwLWJveFwiXHJcbiAgPlxyXG4gICAgPGxhYmVsIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsc1tpXVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjb3RwSW5wdXRFbGVtZW50XHJcbiAgICAgICAgW2lkXT1cIidtcngtaW5wdXQtb3RwLScgKyBpXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woY29udHJvbClcIlxyXG4gICAgICAgIFttcnhPcHRQYXR0ZXJuXT1cIm90cENvbmZpZy5wYXR0ZXJuXCJcclxuICAgICAgICBbdHlwZV09XCJnZXRJbnB1dFR5cGUoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwic3R5bGVzW2ldXCJcclxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlS2V5VXAoaSwgJGV2ZW50LmtleSlcIlxyXG4gICAgICAgIChrZXl1cC5iYWNrc3BhY2UpPVwiaGFuZGxlRGVsZXRlKGkpXCJcclxuICAgICAgICAoa2V5dXAuYXJyb3dMZWZ0KT1cInN0ZXBCYWNrd2FyZChpKVwiXHJcbiAgICAgICAgKGtleXVwLmFycm93UmlnaHQpPVwic3RlcEZvcndhcmQoaSlcIlxyXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVGb2N1cyhpKVwiXHJcbiAgICAgICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwXCJcclxuICAgICAgICBtYXhsZW5ndGg9XCIxXCJcclxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcclxuICAgICAgLz5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICpuZ0lmPVwiaW52YWxpZCAmJiBpc0ludmFsaWRNZXNzYWdlXCJcclxuICBjdXN0b21DbGFzc2VzPVwidGV4dC1sZWZ0XCJcclxuICBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIlxyXG4+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuIl19
361
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL215cnRhLXVpL3NyYy9saWIvY29tcG9uZW50cy9mb3JtL2lucHV0LW9wdC9jb21wb25lbnRzL2lucHV0LW9wdC9pbnB1dC1vcHQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L2NvbXBvbmVudHMvaW5wdXQtb3B0L2lucHV0LW9wdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUwsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFFVCxZQUFZLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBRTdDLE1BQU0sRUFFTixZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFtQixTQUFTLEVBQUUsV0FBVyxFQUFFLGlCQUFpQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxjQUFjLEVBQW1DLE1BQU0sOEJBQThCLENBQUM7QUFHL0YsT0FBTyxFQUFFLGlCQUFpQixFQUFzQixNQUFNLGtCQUFrQixDQUFDOzs7Ozs7O0FBZ0J6RSxNQUFNLE9BQU8saUJBQWlCO0lBOEQ1QixZQUNtQixVQUEyQixFQUMzQixHQUFzQjtRQUR0QixlQUFVLEdBQVYsVUFBVSxDQUFpQjtRQUMzQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQS9EakMsbUJBQWMsR0FBRyxNQUFNLENBQUM7UUFDeEIsdUJBQWtCLEdBQUcseUJBQXlCLENBQUM7UUFHL0MsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBRTlCLHlCQUFvQixHQUFHLEtBQUssQ0FBQztRQUM3QixXQUFNLEdBQUcsS0FBSyxDQUFDO1FBRXZCLGdCQUFXLEdBQUcs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SUFDckcsQ0FBQzs7OEdBOVhVLGlCQUFpQjtrR0FBakIsaUJBQWlCLDRWQVJqQjtRQUNUO1lBQ0UsT0FBTyxFQUFFLGlCQUFpQjtZQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLGlCQUFpQixDQUFDO1lBQ2hELEtBQUssRUFBRSxJQUFJO1NBQ1o7S0FDRixrSUM3QkgsNnVDQXVDQTsyRkRSYSxpQkFBaUI7a0JBYjdCLFNBQVM7K0JBQ0UsZUFBZSxtQkFHUix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLGtCQUFrQixDQUFDOzRCQUNoRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjtzSUFrQ2UsSUFBSTtzQkFBbkIsS0FBSztnQkFDVSxhQUFhO3NCQUE1QixLQUFLO2dCQUNVLE9BQU87c0JBQXRCLEtBQUs7Z0JBQ1UsY0FBYztzQkFBN0IsS0FBSztnQkFDVSxZQUFZO3NCQUEzQixLQUFLO2dCQUVPLE9BQU87c0JBQW5CLEtBQUs7Z0JBS08sTUFBTTtzQkFBbEIsS0FBSztnQkFVTyxNQUFNO3NCQUFsQixLQUFLO2dCQUkyQixnQkFBZ0I7c0JBQWhELFlBQVk7dUJBQUMsaUJBQWlCO2dCQUVyQixNQUFNO3NCQUFmLE1BQU07Z0JBQ0csVUFBVTtzQkFBbkIsTUFBTTtnQkEwVDRCLE9BQU87c0JBQXpDLFlBQVk7dUJBQUMsT0FBTyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDb21wb25lbnQsXHJcbiAgRWxlbWVudFJlZixcclxuICBFdmVudEVtaXR0ZXIsIGZvcndhcmRSZWYsIEhvc3RMaXN0ZW5lciwgSW5wdXQsIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sLCBGb3JtQXJyYXksIEZvcm1Db250cm9sLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTmd4T3RwQmVoYXZpb3IsIE5neE90cElucHV0Q29uZmlnLCBOZ3hPdHBTdGF0dXMgfSBmcm9tICcuLi8uLi9tb2RlbHMvaW5wdXQtb3B0Lm1vZGVsJztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IElucHV0T3B0U2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2lucHV0LW9wdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgSW5wdXRPcHRTaXplc0VudW0sIElucHV0T3B0U2l6ZXNUeXBlcyB9IGZyb20gJy4vaW5wdXQtb3B0LmVudW0nO1xyXG5pbXBvcnQgeyBJbnB1dFRleHRWYWx1ZVR5cGVzIH0gZnJvbSAnLi4vLi4vLi4vaW5wdXQtdGV4dC9pbnB1dC10ZXh0LmVudW0nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtb3B0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vaW5wdXQtb3B0LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9pbnB1dC1vcHQuY29tcG9uZW50Lmxlc3MnXSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IElucHV0T3B0Q29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJbnB1dE9wdENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95IHtcclxuICBwcml2YXRlIGRlZmF1bHRQYXR0ZXJuID0gL14uKyQvO1xyXG4gIHByaXZhdGUgREVGQVVMVF9BUklBX0xBQkVMID0gJ09uZSB0aW1lIHBhc3N3b3JkIGlucHV0JztcclxuICBwcml2YXRlIExBU1RfSU5QVVRfSU5ERVghOiBudW1iZXI7XHJcbiAgcHJpdmF0ZSBpbnB1dHMhOiBIVE1MSW5wdXRFbGVtZW50W107XHJcbiAgcHJpdmF0ZSBpc05neE90cEFycmF5RGlzYWJsZWQgPSBmYWxzZTtcclxuICBwcml2YXRlIG5neE90cEFycmF5JCE6IFN1YnNjcmlwdGlvbjtcclxuICBwcml2YXRlIGZvY3VzZWRJbnB1dEhhc1ZhbHVlID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBpc0luaXQgPSBmYWxzZTtcclxuXHJcbiAgbmd4T3RwQXJyYXkgPSBuZXcgRm9ybUFycmF5KFtdKTtcclxuICBhcmlhTGFiZWxzOiBzdHJpbmdbXSA9IFtdO1xyXG4gIHBhdHRlcm4hOiBSZWdFeHA7XHJcbiAgc3R5bGVzOiBzdHJpbmdbXVtdID0gW107XHJcblxyXG4gIG90cENvbmZpZzogTmd4T3RwSW5wdXRDb25maWcgPSB7XHJcbiAgICBvdHBMZW5ndGg6IDYsXHJcbiAgICBhdXRvZm9jdXM6IHRydWUsXHJcbiAgICBhdXRvYmx1cjogdHJ1ZSxcclxuICAgIGJlaGF2aW9yOiBOZ3hPdHBCZWhhdmlvci5ERUZBVUxULFxyXG4gICAgcGF0dGVybjogdGhpcy5kZWZhdWx0UGF0dGVybixcclxuICAgIGNsYXNzTGlzdDoge1xyXG4gICAgICBjb250YWluZXI6ICcnLFxyXG4gICAgICBpbnB1dEJveDogJycsXHJcbiAgICAgIGlucHV0OiAnJyxcclxuICAgICAgaW5wdXRGaWxsZWQ6ICcnLFxyXG4gICAgICBpbnB1dERpc2FibGVkOiAnJyxcclxuICAgICAgaW5wdXRTdWNjZXNzOiAnJyxcclxuICAgICAgaW5wdXRFcnJvcjogJycsXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgQElucHV0KCkgcHVibGljIHNpemU6IElucHV0T3B0U2l6ZXNUeXBlcyA9ICdsYXJnZSc7XHJcbiAgQElucHV0KCkgcHVibGljIGN1c3RvbUNsYXNzZXMgPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgaW52YWxpZCA9IGZhbHNlO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcclxuICBASW5wdXQoKSBwdWJsaWMgY2hlY2tJbnZhbGlkOiB0cnVlIHwgZmFsc2UgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgQElucHV0KCkgc2V0IGRpc2FibGUoaXNEaXNhYmxlZDogYm9vbGVhbikge1xyXG4gICAgdGhpcy5oYW5kbGVEaXNhYmxlKGlzRGlzYWJsZWQpO1xyXG4gICAgdGhpcy5pc05neE90cEFycmF5RGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xyXG4gIH1cclxuXHJcbiAgQElucHV0KCkgc2V0IGNvbmZpZyhjOiBOZ3hPdHBJbnB1dENvbmZpZykge1xyXG4gICAgdGhpcy5vdHBDb25maWcgPSB7Li4udGhpcy5vdHBDb25maWcsIC4uLmN9O1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdD8uaW5wdXQpIHtcclxuICAgICAgdGhpcy5zZXRJbml0aWFsU3R5bGVzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAoIWMucGF0dGVybikge1xyXG4gICAgICB0aGlzLm90cENvbmZpZy5wYXR0ZXJuID0gdGhpcy5kZWZhdWx0UGF0dGVybjtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBJbnB1dCgpIHNldCBzdGF0dXMoc3RhdHVzOiBOZ3hPdHBTdGF0dXMpIHtcclxuICAgIHRoaXMuaGFuZGxlU3RhdHVzQ2hhbmdlKHN0YXR1cyk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkcmVuKCdvdHBJbnB1dEVsZW1lbnQnKSBvdHBJbnB1dEVsZW1lbnRzITogUXVlcnlMaXN0PEVsZW1lbnRSZWY+O1xyXG5cclxuICBAT3V0cHV0KCkgY2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nW10+ID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmdbXT4oKTtcclxuICBAT3V0cHV0KCkgZmlsbENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz4gPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IG90cFNlcnZpY2U6IElucHV0T3B0U2VydmljZSxcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmVmOiBDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFVwT3RwRm9ybSgpO1xyXG4gICAgdGhpcy5zZXRVcEFyaWFMYWJlbHMoKTtcclxuICAgIHRoaXMuTEFTVF9JTlBVVF9JTkRFWCA9IHRoaXMub3RwQ29uZmlnLm90cExlbmd0aCAtIDE7XHJcbiAgICB0aGlzLm90cEZvcm1DaGFuZ2VMaXN0ZW5lcigpO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5zZXROYXRpdmVIVE1MRWxlbWVudHMoKTtcclxuICAgIHRoaXMuc2V0SW5pdGlhbEZvY3VzKCk7XHJcbiAgICB0aGlzLnNldE51bWVyaWNJbnB1dElmUG9zc2libGUoKTtcclxuICAgIHRoaXMuaGFuZGxlRGlzYWJsZSh0aGlzLmlzTmd4T3RwQXJyYXlEaXNhYmxlZCk7XHJcbiAgICB0aGlzLmlzSW5pdCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMubmd4T3RwQXJyYXkkLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGlzSW52YWxpZE1lc3NhZ2UoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gISF0aGlzLmludmFsaWRNZXNzYWdlIHx8ICEhdGhpcy5pbnZhbGlkTWVzc2FnZS5sZW5ndGg7XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgZ2V0IGNoZWNrVmFsaWRDbGFzc2VzKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cclxuICAgICAgJ21yeC1pbnB1dC1jaGVja2VkLXN1Y2Nlc3MnIDpcclxuICAgICAgdGhpcy5jaGVja0ludmFsaWQgPT09IHRydWUgPyAnbXJ4LWlucHV0LWNoZWNrZWQtZXJyb3InIDogJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIGAke0lucHV0T3B0U2l6ZXNFbnVtW3RoaXMuc2l6ZV19ICR7dGhpcy5jdXN0b21DbGFzc2VzfWA7XHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0Q29udGFpbmVyQ2xhc3NlcygpOiBzdHJpbmcgfCBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gdGhpcy5vdHBDb25maWc/LmNsYXNzTGlzdD8uY29udGFpbmVyIHx8ICcnXHJcbiAgfVxyXG5cclxuICBnZXQgZ2V0SW5wdXRCb3hDbGFzc2VzKCk6IHN0cmluZyB8IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiB0aGlzLm90cENvbmZpZz8uY2xhc3NMaXN0Py5pbnB1dEJveCB8fCAnJ1xyXG4gIH1cclxuXHJcbiAgY29udmVydFRvRm9ybUNvbnRyb2woYWJzQ3RybDogQWJzdHJhY3RDb250cm9sIHwgbnVsbCk6IEZvcm1Db250cm9sIHtcclxuICAgIHJldHVybiBhYnNDdHJsIGFzIEZvcm1Db250cm9sO1xyXG4gIH1cclxuXHJcbiAgY2xlYXIoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCkge1xyXG4gICAgICB0aGlzLnJlbW92ZVN0eWxlRnJvbUFsbCh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMubmd4T3RwQXJyYXkucmVzZXQoKTtcclxuICAgIHRoaXMucmVmLmRldGVjdENoYW5nZXMoKTtcclxuXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuYXV0b2ZvY3VzKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoMCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBoYW5kbGVLZXlVcChpbmRleDogbnVtYmVyLCB2YWx1ZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcucGF0dGVybi50ZXN0KHZhbHVlKSAmJiB2YWx1ZSAhPT0gJ0JhY2tzcGFjZScpIHtcclxuICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpIHtcclxuICAgICAgICB0aGlzLmFkZFN0eWxlKGluZGV4LCB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4KS5zZXRWYWx1ZSh2YWx1ZSwge2VtaXRFdmVudDogZmFsc2V9KTtcclxuICAgICAgICB0aGlzLnN0ZXBGb3J3YXJkKGluZGV4KTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmJsdXIoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRGVsZXRlKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKFxyXG4gICAgICAodGhpcy5vdHBDb25maWcuYmVoYXZpb3IgPT09IE5neE90cEJlaGF2aW9yLkxFR0FDWSAmJlxyXG4gICAgICAgICF0aGlzLmZvY3VzZWRJbnB1dEhhc1ZhbHVlKSB8fFxyXG4gICAgICB0aGlzLm90cENvbmZpZy5iZWhhdmlvciAhPT0gTmd4T3RwQmVoYXZpb3IuTEVHQUNZXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5zdGVwQmFja3dhcmQoaW5kZXgpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgaGFuZGxlRm9jdXMoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZSA9ICEhdGhpcy5uZ3hPdHBBcnJheS5jb250cm9sc1tpbmRleF0udmFsdWU7XHJcbiAgICBpZiAoXHJcbiAgICAgIHRoaXMub3RwQ29uZmlnLmJlaGF2aW9yID09PSBOZ3hPdHBCZWhhdmlvci5MRUdBQ1kgJiZcclxuICAgICAgdGhpcy5mb2N1c2VkSW5wdXRIYXNWYWx1ZVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzW2luZGV4XS5zZWxlY3QoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0ZXBCYWNrd2FyZChpbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgICBpZiAoaW5kZXggPiAwKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9jdXMoaW5kZXggLSAxKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHN0ZXBGb3J3YXJkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICAgIGlmIChpbmRleCA8IHRoaXMuTEFTVF9JTlBVVF9JTkRFWCkge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKGluZGV4ICsgMSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG90cEZvcm1DaGFuZ2VMaXN0ZW5lcigpOiB2b2lkIHtcclxuICAgIHRoaXMubmd4T3RwQXJyYXkkID0gdGhpcy5uZ3hPdHBBcnJheS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKCh2YWx1ZXMpID0+IHtcclxuICAgICAgaWYgKHRoaXMuaXNJbml0KSB7XHJcbiAgICAgICAgdGhpcy5jaGFuZ2UuZW1pdCh2YWx1ZXMpO1xyXG5cclxuICAgICAgICBpZiAodGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgICAgdGhpcy5maWxsQ2hhbmdlLmVtaXQodmFsdWVzLmpvaW4oJycpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcE90cEZvcm0oKTogdm9pZCB7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMub3RwQ29uZmlnLm90cExlbmd0aDsgaSsrKSB7XHJcbiAgICAgIHRoaXMubmd4T3RwQXJyYXkucHVzaChuZXcgRm9ybUNvbnRyb2woJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSkpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRVcEFyaWFMYWJlbHMoKTogdm9pZCB7XHJcbiAgICBjb25zdCBsYWJlbHMgPSB0aGlzLm90cENvbmZpZy5hcmlhTGFiZWxzO1xyXG5cclxuICAgIHRoaXMuYXJpYUxhYmVscyA9IEFycmF5LmlzQXJyYXkobGFiZWxzKVxyXG4gICAgICA/IGxhYmVsc1xyXG4gICAgICA6IG5ldyBBcnJheSh0aGlzLm90cENvbmZpZy5vdHBMZW5ndGgpLmZpbGwoXHJcbiAgICAgICAgbGFiZWxzIHx8IHRoaXMuREVGQVVMVF9BUklBX0xBQkVMXHJcbiAgICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE5hdGl2ZUhUTUxFbGVtZW50cygpOiB2b2lkIHtcclxuICAgIHRoaXMuaW5wdXRzID0gdGhpcy5vdHBJbnB1dEVsZW1lbnRzLm1hcCgoZWxlbWVudCkgPT4gZWxlbWVudC5uYXRpdmVFbGVtZW50KTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0SW5pdGlhbEZvY3VzKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmF1dG9mb2N1cykge1xyXG4gICAgICB0aGlzLnNldEZvY3VzKDApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXRJbml0aWFsU3R5bGVzKCk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UuaW5pdDJEQXJyYXkodGhpcy5vdHBDb25maWcub3RwTGVuZ3RoKTtcclxuXHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dCkge1xyXG4gICAgICB0aGlzLmFkZFN0eWxlVG9BbGwodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0Rm9jdXMoaW5kZXg6IG51bWJlcik6IHZvaWQge1xyXG4gICAgdGhpcy5pbnB1dHNbaW5kZXhdLmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIHNldE51bWVyaWNJbnB1dElmUG9zc2libGUoKTogdm9pZCB7XHJcbiAgICBpZiAodGhpcy5vdHBDb25maWcubnVtZXJpY0lucHV0TW9kZSkge1xyXG4gICAgICB0aGlzLm90cENvbmZpZy5wYXR0ZXJuID0gdGhpcy5kZWZhdWx0UGF0dGVybjtcclxuICAgICAgdGhpcy5pbnB1dHMubWFwKChlbGVtZW50KSA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ2lucHV0bW9kZScsICdudW1lcmljJyk7XHJcbiAgICAgICAgZWxlbWVudC5zZXRBdHRyaWJ1dGUoJ3BhdHRlcm4nLCAnWzAtOV0qJyk7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBibHVyKCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMub3RwQ29uZmlnLmF1dG9ibHVyKSB7XHJcbiAgICAgIHRoaXMuaW5wdXRzLm1hcCgoaW5wdXQpID0+IGlucHV0LmJsdXIoKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGhhbmRsZVBhc3RlKHZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIC8vIEB0cy1pZ25vcmVcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5wYXR0ZXJuLnRlc3QodmFsdWUpKSB7XHJcbiAgICAgIGxldCBsYXN0SW5kZXggPSAwO1xyXG4gICAgICB2YWx1ZVxyXG4gICAgICAgIC5zcGxpdCgnJylcclxuICAgICAgICAuc2xpY2UoMCwgdGhpcy5vdHBDb25maWcub3RwTGVuZ3RoKVxyXG4gICAgICAgIC5tYXAoKGNoYXJhY3Rlcjogc3RyaW5nLCBpbmRleDogbnVtYmVyKSA9PiB7XHJcbiAgICAgICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCkge1xyXG4gICAgICAgICAgICB0aGlzLmFkZFN0eWxlKGluZGV4LCB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRGaWxsZWQpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgdGhpcy5nZXRGb3JtQ29udHJvbEJ5SW5kZXgoaW5kZXgpLnNldFZhbHVlKGNoYXJhY3Rlcik7XHJcbiAgICAgICAgICBsYXN0SW5kZXggPSBpbmRleDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgIGlmICh0aGlzLm5neE90cEFycmF5LnZhbGlkKSB7XHJcbiAgICAgICAgdGhpcy5ibHVyKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZXRGb2N1cyhsYXN0SW5kZXggKyAxKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVEaXNhYmxlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcclxuICAgIGlmIChpc0Rpc2FibGVkKSB7XHJcbiAgICAgIHRoaXMubmd4T3RwQXJyYXkuZGlzYWJsZSgpO1xyXG4gICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKSB7XHJcbiAgICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5uZ3hPdHBBcnJheS5lbmFibGUoKTtcclxuICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXREaXNhYmxlZCkge1xyXG4gICAgICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dERpc2FibGVkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBoYW5kbGVTdGF0dXNDaGFuZ2Uoc3RhdHVzOiBOZ3hPdHBTdGF0dXMpOiB2b2lkIHtcclxuICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3MgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RXJyb3IpKSB7XHJcbiAgICAgIHRoaXMucmVtb3ZlU3R5bGVGcm9tQWxsKFtcclxuICAgICAgICAuLi50aGlzLm90cFNlcnZpY2UudG9BcnJheShcclxuICAgICAgICAgIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3NcclxuICAgICAgICApLFxyXG4gICAgICAgIC4uLnRoaXMub3RwU2VydmljZS50b0FycmF5KHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEVycm9yKSxcclxuICAgICAgXSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHN0YXR1cykge1xyXG4gICAgICBpZiAoc3RhdHVzID09PSAnc3VjY2VzcycpIHtcclxuICAgICAgICBpZiAodGhpcy5vdHBDb25maWcuY2xhc3NMaXN0ICYmIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dFN1Y2Nlc3MpIHtcclxuICAgICAgICAgIHRoaXMuYWRkU3R5bGVUb0FsbCh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRTdWNjZXNzKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSBpZiAoc3RhdHVzID09PSAnZXJyb3InKSB7XHJcbiAgICAgICAgaWYgKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdCAmJiB0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QuaW5wdXRFcnJvcikge1xyXG4gICAgICAgICAgdGhpcy5hZGRTdHlsZVRvQWxsKHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEVycm9yKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0Rm9ybUNvbnRyb2xCeUluZGV4KGluZGV4OiBudW1iZXIpOiBGb3JtQ29udHJvbCB7XHJcbiAgICByZXR1cm4gdGhpcy5uZ3hPdHBBcnJheS5jb250cm9sc1tpbmRleF0gYXMgRm9ybUNvbnRyb2w7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0eWxlKGluZGV4OiBudW1iZXIsIHN0eWxlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5vdHBTZXJ2aWNlLmFkZEl0ZW1BdEluZGV4KFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgaW5kZXgsXHJcbiAgICAgIHRoaXMub3RwU2VydmljZS50b0FycmF5KHN0eWxlcylcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGFkZFN0eWxlVG9BbGwoc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UuYWRkSXRlbVRvQWxsKFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGUoaW5kZXg6IG51bWJlciwgc3R5bGVzOiBzdHJpbmcgfCBzdHJpbmdbXSk6IHZvaWQge1xyXG4gICAgdGhpcy5zdHlsZXMgPSB0aGlzLm90cFNlcnZpY2UucmVtb3ZlSXRlbUF0SW5kZXgoXHJcbiAgICAgIHRoaXMuc3R5bGVzLFxyXG4gICAgICBpbmRleCxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcmVtb3ZlU3R5bGVGcm9tQWxsKHN0eWxlczogc3RyaW5nIHwgc3RyaW5nW10pOiB2b2lkIHtcclxuICAgIHRoaXMuc3R5bGVzID0gdGhpcy5vdHBTZXJ2aWNlLnJlbW92ZUl0ZW1Gcm9tQWxsKFxyXG4gICAgICB0aGlzLnN0eWxlcyxcclxuICAgICAgdGhpcy5vdHBTZXJ2aWNlLnRvQXJyYXkoc3R5bGVzKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgb25DaGFuZ2UgPSAodmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpID0+IHtcclxuICB9O1xyXG4gIHByaXZhdGUgb25Ub3VjaGVkID0gKCkgPT4ge1xyXG4gIH07XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMub25DaGFuZ2UgPSBmbjtcclxuICB9XHJcblxyXG4gIHB1YmxpYyByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcclxuICAgIHRoaXMub25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBwdWJsaWMgd3JpdGVWYWx1ZShvdXRzaWRlVmFsdWU6IElucHV0VGV4dFZhbHVlVHlwZXMpIHtcclxuICAgIGlmIChvdXRzaWRlVmFsdWUpIHtcclxuICAgICAgbGV0IGxhc3RJbmRleCA9IDA7XHJcbiAgICAgIFN0cmluZyhvdXRzaWRlVmFsdWUpXHJcbiAgICAgICAgLnNwbGl0KCcnKVxyXG4gICAgICAgIC5zbGljZSgwLCB0aGlzLm90cENvbmZpZy5vdHBMZW5ndGgpXHJcbiAgICAgICAgLm1hcCgoY2hhcmFjdGVyOiBzdHJpbmcsIGluZGV4OiBudW1iZXIpID0+IHtcclxuICAgICAgICAgIGlmICh0aGlzLm90cENvbmZpZy5jbGFzc0xpc3QgJiYgdGhpcy5vdHBDb25maWcuY2xhc3NMaXN0LmlucHV0RmlsbGVkKSB7XHJcbiAgICAgICAgICAgIHRoaXMuYWRkU3R5bGUoaW5kZXgsIHRoaXMub3RwQ29uZmlnLmNsYXNzTGlzdC5pbnB1dEZpbGxlZCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLmdldEZvcm1Db250cm9sQnlJbmRleChpbmRleCkuc2V0VmFsdWUoY2hhcmFjdGVyLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xyXG4gICAgICAgICAgbGFzdEluZGV4ID0gaW5kZXg7XHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICBpZiAodGhpcy5uZ3hPdHBBcnJheS52YWxpZCkge1xyXG4gICAgICAgIHRoaXMuYmx1cigpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuc2V0Rm9jdXMobGFzdEluZGV4ICsgMSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ3Bhc3RlJywgWyckZXZlbnQnXSkgb25QYXN0ZShldmVudDogQ2xpcGJvYXJkRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XHJcbiAgICAvLyBAdHMtaWdub3JlXHJcbiAgICB0aGlzLmhhbmRsZVBhc3RlKGV2ZW50LmNsaXBib2FyZERhdGEuZ2V0RGF0YSgndGV4dCcpKTtcclxuICB9XHJcblxyXG4gIGdldElucHV0VHlwZSgpOiAndGV4dCcgfCAncGFzc3dvcmQnIHwgJ3RlbCcge1xyXG4gICAgcmV0dXJuIHRoaXMub3RwQ29uZmlnLmlzUGFzc3dvcmRJbnB1dCA/ICdwYXNzd29yZCcgOiB0aGlzLm90cENvbmZpZy5pc051bWJlcklucHV0ID8gJ3RlbCcgOiAndGV4dCc7XHJcbiAgfVxyXG59XHJcbiIsIjxmb3JtXHJcbiAgW25nQ2xhc3NdPVwiZ2V0Q29udGFpbmVyQ2xhc3Nlc1wiXHJcbiAgY2xhc3M9XCJtcngtaW5wdXQtb3RwLWNvbnRhaW5lclwiXHJcbiAgW2NsYXNzXT1cImdldENsYXNzZXNcIlxyXG4+XHJcbiAgPGRpdlxyXG4gICAgKm5nRm9yPVwibGV0IGNvbnRyb2wgb2Ygbmd4T3RwQXJyYXkuY29udHJvbHM7IGxldCBpID0gaW5kZXhcIlxyXG4gICAgW25nQ2xhc3NdPVwiZ2V0SW5wdXRCb3hDbGFzc2VzXCJcclxuICAgIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiXHJcbiAgICBbY2xhc3NdPVwiY2hlY2tWYWxpZENsYXNzZXNcIlxyXG4gICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwLWJveFwiXHJcbiAgPlxyXG4gICAgPGxhYmVsIFthdHRyLmFyaWEtbGFiZWxdPVwiYXJpYUxhYmVsc1tpXVwiPlxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICAjb3RwSW5wdXRFbGVtZW50XHJcbiAgICAgICAgW2lkXT1cIidtcngtaW5wdXQtb3RwLScgKyBpXCJcclxuICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woY29udHJvbClcIlxyXG4gICAgICAgIFttcnhPcHRQYXR0ZXJuXT1cIm90cENvbmZpZy5wYXR0ZXJuXCJcclxuICAgICAgICBbdHlwZV09XCJnZXRJbnB1dFR5cGUoKVwiXHJcbiAgICAgICAgW25nQ2xhc3NdPVwic3R5bGVzW2ldXCJcclxuICAgICAgICAoa2V5dXApPVwiaGFuZGxlS2V5VXAoaSwgJGV2ZW50LmtleSlcIlxyXG4gICAgICAgIChrZXl1cC5iYWNrc3BhY2UpPVwiaGFuZGxlRGVsZXRlKGkpXCJcclxuICAgICAgICAoa2V5dXAuYXJyb3dMZWZ0KT1cInN0ZXBCYWNrd2FyZChpKVwiXHJcbiAgICAgICAgKGtleXVwLmFycm93UmlnaHQpPVwic3RlcEZvcndhcmQoaSlcIlxyXG4gICAgICAgIChmb2N1cyk9XCJoYW5kbGVGb2N1cyhpKVwiXHJcbiAgICAgICAgY2xhc3M9XCJtcngtaW5wdXQtb3RwXCJcclxuICAgICAgICBtYXhsZW5ndGg9XCIxXCJcclxuICAgICAgICBhdXRvY2FwaXRhbGl6ZT1cIm9mZlwiXHJcbiAgICAgICAgc3BlbGxjaGVjaz1cImZhbHNlXCJcclxuICAgICAgLz5cclxuICAgIDwvbGFiZWw+XHJcbiAgPC9kaXY+XHJcbjwvZm9ybT5cclxuXHJcbjxtcngtZXJyb3ItbWVzc2FnZVxyXG4gICpuZ0lmPVwiaW52YWxpZCAmJiBpc0ludmFsaWRNZXNzYWdlXCJcclxuICBjdXN0b21DbGFzc2VzPVwidGV4dC1sZWZ0XCJcclxuICBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIlxyXG4+PC9tcngtZXJyb3ItbWVzc2FnZT5cclxuIl19
@@ -3,4 +3,4 @@ export var NgxOtpBehavior;
3
3
  NgxOtpBehavior[NgxOtpBehavior["DEFAULT"] = 0] = "DEFAULT";
4
4
  NgxOtpBehavior[NgxOtpBehavior["LEGACY"] = 1] = "LEGACY";
5
5
  })(NgxOtpBehavior || (NgxOtpBehavior = {}));
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L21vZGVscy9pbnB1dC1vcHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qix5REFBTyxDQUFBO0lBQ1AsdURBQU0sQ0FBQTtBQUNSLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5neE90cFN0YXR1cyA9ICdzdWNjZXNzJyB8ICdlcnJvcicgfCBudWxsO1xyXG5cclxuZXhwb3J0IGVudW0gTmd4T3RwQmVoYXZpb3Ige1xyXG4gIERFRkFVTFQsXHJcbiAgTEVHQUNZLFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBOZ3hPdHBTdHlsZXMgPSB7XHJcbiAgY29udGFpbmVyOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBpbnB1dEJveDogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgaW5wdXQ6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIGlucHV0RmlsbGVkOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBpbnB1dERpc2FibGVkOiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBpbnB1dFN1Y2Nlc3M6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIGlucHV0RXJyb3I6IHN0cmluZyB8IHN0cmluZ1tdO1xyXG59O1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBOZ3hPdHBJbnB1dENvbmZpZyB7XHJcbiAgb3RwTGVuZ3RoOiBudW1iZXI7XHJcbiAgcGF0dGVybj86IFJlZ0V4cDtcclxuICBhdXRvZm9jdXM/OiBib29sZWFuO1xyXG4gIGF1dG9ibHVyPzogYm9vbGVhbjtcclxuICBpc1Bhc3N3b3JkSW5wdXQ/OiBib29sZWFuO1xyXG4gIGlzTnVtYmVySW5wdXQ/OiBib29sZWFuO1xyXG4gIGFyaWFMYWJlbHM/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBudW1lcmljSW5wdXRNb2RlPzogYm9vbGVhbjtcclxuICBjbGFzc0xpc3Q6IE5neE90cFN0eWxlcztcclxuICBiZWhhdmlvcj86IE5neE90cEJlaGF2aW9yO1xyXG59XHJcblxyXG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtb3B0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtb3B0L21vZGVscy9pbnB1dC1vcHQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxDQUFOLElBQVksY0FHWDtBQUhELFdBQVksY0FBYztJQUN4Qix5REFBTyxDQUFBO0lBQ1AsdURBQU0sQ0FBQTtBQUNSLENBQUMsRUFIVyxjQUFjLEtBQWQsY0FBYyxRQUd6QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5neE90cFN0YXR1cyA9ICdzdWNjZXNzJyB8ICdlcnJvcicgfCBudWxsO1xyXG5cclxuZXhwb3J0IGVudW0gTmd4T3RwQmVoYXZpb3Ige1xyXG4gIERFRkFVTFQsXHJcbiAgTEVHQUNZLFxyXG59XHJcblxyXG5leHBvcnQgdHlwZSBOZ3hPdHBTdHlsZXMgPSB7XHJcbiAgY29udGFpbmVyPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgaW5wdXRCb3g/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxuICBpbnB1dD86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIGlucHV0RmlsbGVkPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgaW5wdXREaXNhYmxlZD86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIGlucHV0U3VjY2Vzcz86IHN0cmluZyB8IHN0cmluZ1tdO1xyXG4gIGlucHV0RXJyb3I/OiBzdHJpbmcgfCBzdHJpbmdbXTtcclxufTtcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4T3RwSW5wdXRDb25maWcge1xyXG4gIG90cExlbmd0aDogbnVtYmVyO1xyXG4gIHBhdHRlcm4/OiBSZWdFeHA7XHJcbiAgYXV0b2ZvY3VzPzogYm9vbGVhbjtcclxuICBhdXRvYmx1cj86IGJvb2xlYW47XHJcbiAgaXNQYXNzd29yZElucHV0PzogYm9vbGVhbjtcclxuICBpc051bWJlcklucHV0PzogYm9vbGVhbjtcclxuICBhcmlhTGFiZWxzPzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgbnVtZXJpY0lucHV0TW9kZT86IGJvb2xlYW47XHJcbiAgY2xhc3NMaXN0PzogTmd4T3RwU3R5bGVzO1xyXG4gIGJlaGF2aW9yPzogTmd4T3RwQmVoYXZpb3I7XHJcbn1cclxuXHJcbiJdfQ==
@@ -11845,8 +11845,10 @@ class InputOptComponent {
11845
11845
  this.checkInvalid = null;
11846
11846
  this.change = new EventEmitter();
11847
11847
  this.fillChange = new EventEmitter();
11848
- this.onChange = (value) => { };
11849
- this.onTouched = () => { };
11848
+ this.onChange = (value) => {
11849
+ };
11850
+ this.onTouched = () => {
11851
+ };
11850
11852
  }
11851
11853
  set disable(isDisabled) {
11852
11854
  this.handleDisable(isDisabled);
@@ -11892,11 +11894,21 @@ class InputOptComponent {
11892
11894
  get getClasses() {
11893
11895
  return `${InputOptSizesEnum[this.size]} ${this.customClasses}`;
11894
11896
  }
11897
+ get getContainerClasses() {
11898
+ var _a, _b;
11899
+ return ((_b = (_a = this.otpConfig) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.container) || '';
11900
+ }
11901
+ get getInputBoxClasses() {
11902
+ var _a, _b;
11903
+ return ((_b = (_a = this.otpConfig) === null || _a === void 0 ? void 0 : _a.classList) === null || _b === void 0 ? void 0 : _b.inputBox) || '';
11904
+ }
11895
11905
  convertToFormControl(absCtrl) {
11896
11906
  return absCtrl;
11897
11907
  }
11898
11908
  clear() {
11899
- this.removeStyleFromAll(this.otpConfig.classList.inputFilled);
11909
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
11910
+ this.removeStyleFromAll(this.otpConfig.classList.inputFilled);
11911
+ }
11900
11912
  this.ngxOtpArray.reset();
11901
11913
  this.ref.detectChanges();
11902
11914
  if (this.otpConfig.autofocus) {
@@ -11906,7 +11918,9 @@ class InputOptComponent {
11906
11918
  handleKeyUp(index, value) {
11907
11919
  // @ts-ignore
11908
11920
  if (this.otpConfig.pattern.test(value) && value !== 'Backspace') {
11909
- this.addStyle(index, this.otpConfig.classList.inputFilled);
11921
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
11922
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
11923
+ }
11910
11924
  if (!this.ngxOtpArray.valid) {
11911
11925
  this.getFormControlByIndex(index).setValue(value, { emitEvent: false });
11912
11926
  this.stepForward(index);
@@ -11917,7 +11931,9 @@ class InputOptComponent {
11917
11931
  }
11918
11932
  }
11919
11933
  handleDelete(index) {
11920
- this.removeStyle(index, this.otpConfig.classList.inputFilled);
11934
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
11935
+ this.removeStyle(index, this.otpConfig.classList.inputFilled);
11936
+ }
11921
11937
  if ((this.otpConfig.behavior === NgxOtpBehavior.LEGACY &&
11922
11938
  !this.focusedInputHasValue) ||
11923
11939
  this.otpConfig.behavior !== NgxOtpBehavior.LEGACY) {
@@ -11975,7 +11991,9 @@ class InputOptComponent {
11975
11991
  }
11976
11992
  setInitialStyles() {
11977
11993
  this.styles = this.otpService.init2DArray(this.otpConfig.otpLength);
11978
- this.addStyleToAll(this.otpConfig.classList.input);
11994
+ if (this.otpConfig.classList && this.otpConfig.classList.input) {
11995
+ this.addStyleToAll(this.otpConfig.classList.input);
11996
+ }
11979
11997
  }
11980
11998
  setFocus(index) {
11981
11999
  this.inputs[index].focus();
@@ -12002,7 +12020,9 @@ class InputOptComponent {
12002
12020
  .split('')
12003
12021
  .slice(0, this.otpConfig.otpLength)
12004
12022
  .map((character, index) => {
12005
- this.addStyle(index, this.otpConfig.classList.inputFilled);
12023
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
12024
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
12025
+ }
12006
12026
  this.getFormControlByIndex(index).setValue(character);
12007
12027
  lastIndex = index;
12008
12028
  });
@@ -12017,24 +12037,34 @@ class InputOptComponent {
12017
12037
  handleDisable(isDisabled) {
12018
12038
  if (isDisabled) {
12019
12039
  this.ngxOtpArray.disable();
12020
- this.addStyleToAll(this.otpConfig.classList.inputDisabled);
12040
+ if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
12041
+ this.addStyleToAll(this.otpConfig.classList.inputDisabled);
12042
+ }
12021
12043
  }
12022
12044
  else {
12023
12045
  this.ngxOtpArray.enable();
12024
- this.removeStyleFromAll(this.otpConfig.classList.inputDisabled);
12046
+ if (this.otpConfig.classList && this.otpConfig.classList.inputDisabled) {
12047
+ this.removeStyleFromAll(this.otpConfig.classList.inputDisabled);
12048
+ }
12025
12049
  }
12026
12050
  }
12027
12051
  handleStatusChange(status) {
12028
- this.removeStyleFromAll([
12029
- ...this.otpService.toArray(this.otpConfig.classList.inputSuccess),
12030
- ...this.otpService.toArray(this.otpConfig.classList.inputError),
12031
- ]);
12052
+ if (this.otpConfig.classList && (this.otpConfig.classList.inputSuccess && this.otpConfig.classList.inputError)) {
12053
+ this.removeStyleFromAll([
12054
+ ...this.otpService.toArray(this.otpConfig.classList.inputSuccess),
12055
+ ...this.otpService.toArray(this.otpConfig.classList.inputError),
12056
+ ]);
12057
+ }
12032
12058
  if (status) {
12033
12059
  if (status === 'success') {
12034
- this.addStyleToAll(this.otpConfig.classList.inputSuccess);
12060
+ if (this.otpConfig.classList && this.otpConfig.classList.inputSuccess) {
12061
+ this.addStyleToAll(this.otpConfig.classList.inputSuccess);
12062
+ }
12035
12063
  }
12036
12064
  else if (status === 'error') {
12037
- this.addStyleToAll(this.otpConfig.classList.inputError);
12065
+ if (this.otpConfig.classList && this.otpConfig.classList.inputError) {
12066
+ this.addStyleToAll(this.otpConfig.classList.inputError);
12067
+ }
12038
12068
  }
12039
12069
  }
12040
12070
  }
@@ -12066,7 +12096,9 @@ class InputOptComponent {
12066
12096
  .split('')
12067
12097
  .slice(0, this.otpConfig.otpLength)
12068
12098
  .map((character, index) => {
12069
- this.addStyle(index, this.otpConfig.classList.inputFilled);
12099
+ if (this.otpConfig.classList && this.otpConfig.classList.inputFilled) {
12100
+ this.addStyle(index, this.otpConfig.classList.inputFilled);
12101
+ }
12070
12102
  this.getFormControlByIndex(index).setValue(character, { emitEvent: false });
12071
12103
  lastIndex = index;
12072
12104
  });
@@ -12094,7 +12126,7 @@ InputOptComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", vers
12094
12126
  useExisting: forwardRef(() => InputOptComponent),
12095
12127
  multi: true,
12096
12128
  },
12097
- ], viewQueries: [{ propertyName: "otpInputElements", predicate: ["otpInputElement"], descendants: true }], ngImport: i0, template: "<form\r\n [ngClass]=\"otpConfig.classList.container\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"otpConfig.classList.inputBox\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: OptPatternDirective, selector: "[mrxOptPattern]", inputs: ["mrxOptPattern"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12129
+ ], viewQueries: [{ propertyName: "otpInputElements", predicate: ["otpInputElement"], descendants: true }], ngImport: i0, template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"], components: [{ type: ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalidMessage", "customClasses"] }], directives: [{ type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i1$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: OptPatternDirective, selector: "[mrxOptPattern]", inputs: ["mrxOptPattern"] }, { type: i1$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
12098
12130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputOptComponent, decorators: [{
12099
12131
  type: Component,
12100
12132
  args: [{ selector: 'mrx-input-opt', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
@@ -12103,7 +12135,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
12103
12135
  useExisting: forwardRef(() => InputOptComponent),
12104
12136
  multi: true,
12105
12137
  },
12106
- ], template: "<form\r\n [ngClass]=\"otpConfig.classList.container\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"otpConfig.classList.inputBox\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"] }]
12138
+ ], template: "<form\r\n [ngClass]=\"getContainerClasses\"\r\n class=\"mrx-input-otp-container\"\r\n [class]=\"getClasses\"\r\n>\r\n <div\r\n *ngFor=\"let control of ngxOtpArray.controls; let i = index\"\r\n [ngClass]=\"getInputBoxClasses\"\r\n [class.mrx-input-error]=\"invalid\"\r\n [class]=\"checkValidClasses\"\r\n class=\"mrx-input-otp-box\"\r\n >\r\n <label [attr.aria-label]=\"ariaLabels[i]\">\r\n <input\r\n #otpInputElement\r\n [id]=\"'mrx-input-otp-' + i\"\r\n [formControl]=\"convertToFormControl(control)\"\r\n [mrxOptPattern]=\"otpConfig.pattern\"\r\n [type]=\"getInputType()\"\r\n [ngClass]=\"styles[i]\"\r\n (keyup)=\"handleKeyUp(i, $event.key)\"\r\n (keyup.backspace)=\"handleDelete(i)\"\r\n (keyup.arrowLeft)=\"stepBackward(i)\"\r\n (keyup.arrowRight)=\"stepForward(i)\"\r\n (focus)=\"handleFocus(i)\"\r\n class=\"mrx-input-otp\"\r\n maxlength=\"1\"\r\n autocapitalize=\"off\"\r\n spellcheck=\"false\"\r\n />\r\n </label>\r\n </div>\r\n</form>\r\n\r\n<mrx-error-message\r\n *ngIf=\"invalid && isInvalidMessage\"\r\n customClasses=\"text-left\"\r\n [invalidMessage]=\"invalidMessage\"\r\n></mrx-error-message>\r\n", styles: [".mrx-input-otp{background:var(--brand-bg-tertiary-default, #FFF);color:var(--neutral-text-primary, #262626);text-align:center;outline:0}.mrx-input-otp-container{display:flex}.mrx-input-otp-box label{margin-bottom:0}.mrx-input-otp-disabled{opacity:.3}.mrx-input-otp-container.mrx-input-opt-lg{gap:12px}.mrx-input-otp-container.mrx-input-opt-lg .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}.mrx-input-otp-container.mrx-input-opt-md{gap:10px}.mrx-input-otp-container.mrx-input-opt-md .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}.mrx-input-otp-container.mrx-input-opt-responsive{flex-wrap:wrap;gap:12px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-12);height:var(--sizing-12);border-radius:var(--border-radius-1);border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);font-family:var(--headlines-lvl-3-font-family);font-weight:var(--headlines-lvl-3-font-weight);line-height:var(--headlines-lvl-3-line-height);font-size:var(--headlines-lvl-3-font-size)}@media (max-width: 576px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:10px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-10);height:var(--sizing-10);font-family:var(--headlines-lvl-4-font-family);font-weight:var(--headlines-lvl-4-font-weight);line-height:var(--headlines-lvl-4-line-height);font-size:var(--headlines-lvl-4-font-size)}}@media (max-width: 370px){.mrx-input-otp-container.mrx-input-opt-responsive{gap:8px}.mrx-input-otp-container.mrx-input-opt-responsive .mrx-input-otp{width:var(--sizing-8);height:var(--sizing-8);font-family:var(--headlines-lvl-5-font-family);font-weight:var(--headlines-lvl-5-font-weight);line-height:var(--headlines-lvl-5-line-height);font-size:var(--headlines-lvl-5-font-size)}}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-error .mrx-input-otp{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-input-otp-container .mrx-input-otp-box.mrx-input-checked-success .mrx-input-otp{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}\n"] }]
12107
12139
  }], ctorParameters: function () { return [{ type: InputOptService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { size: [{
12108
12140
  type: Input
12109
12141
  }], customClasses: [{