survery-lib 0.1.53 → 0.1.54

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.
@@ -3,6 +3,7 @@ import { Validators } from '@angular/forms';
3
3
  import { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';
4
4
  import { debounceTime, filter, map } from 'rxjs';
5
5
  import { InputTypeEnum } from '../../../shared/enums/input-type.enum';
6
+ import { PhoneValidator } from '../../validators/phone.validator';
6
7
  import * as i0 from "@angular/core";
7
8
  import * as i1 from "@ng-stack/forms";
8
9
  import * as i2 from "../../services/survey-lib.service";
@@ -68,6 +69,9 @@ export class QuestionTextTemplateComponent {
68
69
  else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {
69
70
  this.fCtrls.answer.addValidators([Validators.email]);
70
71
  }
72
+ else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Phone) {
73
+ this.fCtrls.answer.addValidators([PhoneValidator]);
74
+ }
71
75
  this.fCtrls.answer.updateValueAndValidity();
72
76
  }
73
77
  this.toggleEnableAnswer(value.isReadOnly);
@@ -148,4 +152,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
148
152
  }], isDisabled: [{
149
153
  type: Input
150
154
  }] } });
151
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7Ozs7Ozs7O0FBT3RFLE1BQU0sT0FBTyw2QkFBNkI7SUFNeEMsSUFBSSxNQUFNO1FBQ1IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQztJQUM3QixDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxnQkFBZ0IsQ0FBQztJQUMxQixDQUFDO0lBRUQsSUFBSSx1QkFBdUI7UUFDekIsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUM7UUFDbkMsSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksSUFBSSxTQUFTLENBQUMsUUFBUSxJQUFJLElBQUksRUFBRTtZ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bUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMvRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELG9CQUFvQixDQUFDLE9BQVk7UUFDL0IsT0FBTyxPQUFzQixDQUFDO0lBQ2hDLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxVQUFtQjtRQUM1QyxJQUFJLFVBQVUsSUFBSSxJQUFJLEVBQUU7WUFDdEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUE7U0FDN0I7YUFBTTtZQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFBO1NBQzVCO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUM5QyxDQUFDOzhHQWxKVSw2QkFBNkI7a0dBQTdCLDZCQUE2Qiw2TkNqQjFDLHFzQ0FtQlU7OzJGREZHLDZCQUE2QjtrQkFMekMsU0FBUzsrQkFDRSw0QkFBNEI7aUlBdUM1QixPQUFPO3NCQUFoQixNQUFNO2dCQUVFLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDTyxXQUFXO3NCQUF2QixLQUFLO2dCQThDTyxVQUFVO3NCQUF0QixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCBhcyBGb3JtQ29udHJvbFN0YWNrLCBWYWxpZGF0b3JzTW9kZWwgfSBmcm9tICdAbmctc3RhY2svZm9ybXMnO1xuaW1wb3J0IHsgU3VydmV5UXVlc3Rpb25EdG8gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZHRvcy9zdXJ2ZXktcXVlc3Rpb24uZHRvJztcbmltcG9ydCB7IFF1ZXN0aW9uVHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvcXVlc3Rpb24tdHlwZS5lbnVtJztcbmltcG9ydCB7IFF1ZXN0aW9uVGV4dFRlbXBsYXRlRm9ybUludGVyZmFjZSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9mb3JtLWludGVyZmFjZXMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5mb3JtLWludGVyZmFjZSc7XG5pbXBvcnQgeyBkZWJvdW5jZVRpbWUsIGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUXVlc3Rpb25BbnN3ZXJNb2RlbCB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9tb2RlbHMvcXVlc3Rpb24tYW5zd2VyLm1vZGVsJztcbmltcG9ydCB7IERlZmF1bHRRdWVzdGlvbkFuc3dlckR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL2RlZmF1bHQtcXVlc3Rpb24tYW5zd2Vycy5kdG8nO1xuaW1wb3J0IHsgU3VydmV5TGliU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3N1cnZleS1saWIuc2VydmljZSc7XG5pbXBvcnQgeyBJbnB1dFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2xpYi1xdWVzdGlvbi10ZXh0LXRlbXBsYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUXVlc3Rpb25UZXh0VGVtcGxhdGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHN1cnZleVF1ZXN0aW9uOiBTdXJ2ZXlRdWVzdGlvbkR0bztcbiAgckZvcm06IEZvcm1Hcm91cDxRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+O1xuICBjdXN0b21QYXR0ZXJuczogbnVsbDtcblxuICBnZXQgZkN0cmxzKCkge1xuICAgIHJldHVybiB0aGlzLnJGb3JtLmNvbnRyb2xzO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uVHlwZUVudW0oKSB7XG4gICAgcmV0dXJuIFF1ZXN0aW9uVHlwZUVudW07XG4gIH1cblxuICBnZXQgcXVlc3Rpb25NaW5NYXhJbmRpY2F0b3IoKSB7XG4gICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICBpZiAoZm9ybVZhbHVlLmlucHV0TWF4ICE9IG51bGwgfHwgZm9ybVZhbHVlLmlucHV0TWluICE9IG51bGwpIHtcblxuICAgICAgaWYgKGZvcm1WYWx1ZS5pbnB1dE1heCAhPSBudWxsICYmIGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQXJhYmljTGFuZyA/IGAg2YrYrNioINij2YYg2KrZg9mI2YYg2KfZhNmC2YrZhdipINin2YTZhdiv2K7ZhNipINmF2YYgYCArICBmb3JtVmFsdWUuaW5wdXRNaW4gKyAnINil2YTZiSAnICsgZm9ybVZhbHVlLmlucHV0TWF4XG4gICAgICAgIDogYHRoZSB2YWx1ZSBlbnRlcmVkIG11c3QgYmUgZnJvbSAke2Zvcm1WYWx1ZS5pbnB1dE1pbn0gdG8gJHtmb3JtVmFsdWUuaW5wdXRNYXh9YDtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYoIGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlzQXJhYmljTGFuZyA/IGDZitis2Kgg2KPZhiDYqtmD2YjZhiDYo9mC2YQg2YLZitmF2Kkg2YTZhNmF2K/YrtmEINiq2LPYp9mI2YogJHtmb3JtVmFsdWUuaW5wdXRNaW59YFxuICAgICAgICA6YHRoZSBtaW5pbXVtIHZhbHVlIG9mIHRoZSBpbnB1dCBtdXN0IGJlICR7Zm9ybVZhbHVlLmlucHV0TWlufWA7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKCBmb3JtVmFsdWUuaW5wdXRNYXggIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBg2YrYrNioINij2YYg2KrZg9mI2YYg2KPZg9io2LEg2YLZitmF2Kkg2YTZhNmF2K/YrtmEINiq2LPYp9mI2YogJHtmb3JtVmFsdWUuaW5wdXRNYXh9YFxuICAgICAgICA6YHRoZSBtYXhpbXVtIHZhbHVlIG9mIHRoZSBpbnB1dCBtdXN0IGJlICR7Zm9ybVZhbHVlLmlucHV0TWF4fWA7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIG51bGw7XG4gIH1cblxuICBAT3V0cHV0KCkgZW1pdHRlciA9IG5ldyBFdmVudEVtaXR0ZXI8UXVlc3Rpb25BbnN3ZXJNb2RlbD4oKTtcblxuICBASW5wdXQoKSBpc0FyYWJpY0xhbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgaXNUZXh0QXJlYTogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzZXQgc2V0UXVlc3Rpb24odmFsdWU6IFN1cnZleVF1ZXN0aW9uRHRvKSB7XG4gICAgdGhpcy5zdXJ2ZXlRdWVzdGlvbiA9IHZhbHVlO1xuXG4gICAgdGhpcy5yRm9ybS5wYXRjaFZhbHVlKHtcbiAgICAgIGlkOiB2YWx1ZS5xdWVzdGlvbklkLFxuICAgICAgbmFtZTogdmFsdWUucXVlc3Rpb25OYW1lLFxuICAgICAgdGl0bGU6IHZhbHVlLnF1ZXN0aW9uVGl0bGUsXG4gICAgICB0eXBlSWQ6IHZhbHVlLnF1ZXN0aW9uVHlwZUlkLFxuICAgICAgZGVzY3JpcHRpb246IHZhbHVlLnF1ZXN0aW9uRGVzY3JpcHRpb24sXG4gICAgICBpc0Rpc2FibGVkOiB2YWx1ZS5pc1JlYWRPbmx5LFxuICAgICAgaXNTaG93OiB2YWx1ZS5pc1Zpc2FibGVcbiAgICB9KTtcblxuICAgIGlmICh2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSBudWxsICYmIHZhbHVlLnN1cnZleUFuc3dlcnNbMF0/LmFuc3dlcklkICE9IHVuZGVmaW5lZCkge1xuICAgICAgdGhpcy5mQ3RybHMuc3VydmV5QW5zd2VySWQuc2V0VmFsdWUodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5hbnN3ZXJJZCk7XG4gICAgICB0aGlzLmZDdHJscy5pbnB1dFR5cGVJZC5zZXRWYWx1ZSh2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkKTtcbiAgICB9XG5cbiAgICBpZiAodmFsdWUuaXNSZXF1aXJlZCA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5yZXF1aXJlZF0pO1xuXG4gICAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCA9PSBJbnB1dFR5cGVFbnVtLk51bWJlcikge1xuICAgICAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbiAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRNaW4uc2V0VmFsdWUodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbik7XG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWluKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4pXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCAhPSBudWxsKSB7XG4gICAgICAgICAgdGhpcy5mQ3RybHMuaW5wdXRNYXguc2V0VmFsdWUodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1heCk7XG4gICAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMubWF4KHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXgpXSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dE1pbiAhPSBudWxsIHx8IHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXggIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0VHlwZUlkLnNldFZhbHVlKElucHV0VHlwZUVudW0uVGV4dCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5FbWFpbCkge1xuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbVmFsaWRhdG9ycy5lbWFpbF0pO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH1cblxuICAgIHRoaXMudG9nZ2xlRW5hYmxlQW5zd2VyKHZhbHVlLmlzUmVhZE9ubHkpO1xuICB9XG5cbiAgQElucHV0KCkgc2V0IGlzRGlzYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLnRvZ2dsZUVuYWJsZUFuc3dlcih2YWx1ZSk7XG4gIH1cblxuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2Zvcm1CdWlsZGVyOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBfc3VydmV5TGliU2VydmljZTogU3VydmV5TGliU2VydmljZSkge1xuICAgIHRoaXMuckZvcm0gPSB0aGlzLl9mb3JtQnVpbGRlci5ncm91cDxRdWVzdGlvblRleHRUZW1wbGF0ZUZvcm1JbnRlcmZhY2U+KHtcbiAgICAgIGlkOiBbbnVsbF0sXG4gICAgICBuYW1lOiBbbnVsbF0sXG4gICAgICB0aXRsZTogW251bGxdLFxuICAgICAgdHlwZUlkOiBbbnVsbF0sXG4gICAgICBkZXNjcmlwdGlvbjogW251bGxdLFxuICAgICAgc3VydmV5QW5zd2VySWQ6IFtudWxsXSxcbiAgICAgIGFuc3dlcjogW251bGxdLFxuICAgICAgaXNEaXNhYmxlZDogW2ZhbHNlXSxcbiAgICAgIGlzU2hvdzogW3RydWVdLFxuICAgICAgaW5wdXRUeXBlSWQ6IFtudWxsXSxcbiAgICAgIGlucHV0TWluOiBbbnVsbF0sXG4gICAgICBpbnB1dE1heDogW251bGxdXG4gICAgfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudmFsdWVDaGFuZ2VzLnBpcGUoKS5waXBlKGRlYm91bmNlVGltZSgyMDApKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgY29uc3QgZm9ybVZhbHVlID0gdGhpcy5yRm9ybS52YWx1ZTtcbiAgICAgIHRoaXMuZW1pdHRlci5lbWl0KHtcbiAgICAgICAgUXVlc3Rpb25JZDogZm9ybVZhbHVlLmlkLFxuICAgICAgICBJc1ZhbGlkOiB0aGlzLmZDdHJscy5hbnN3ZXIudmFsaWQsXG4gICAgICAgIEFuc3dlcjogdmFsdWUsXG4gICAgICAgIFN1cnZleUFuc3dlcklkOiBmb3JtVmFsdWUuc3VydmV5QW5zd2VySWRcbiAgICAgIH0pXG4gICAgfSk7XG5cbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUobnVsbCk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnN1cnZleUFuc3dlcnNPYnNydi5waXBlKG1hcCh4ID0+IHguZGVmYXVsdEFuc3dlcnMuZmlsdGVyKHggPT4geC5RdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkpXG4gICAgICAucGlwZShmaWx0ZXIoeCA9PiB4Lmxlbmd0aCA+IDApKS5waXBlKG1hcCh4ID0+IHguYXQoMCkpKVxuICAgICAgLnN1YnNjcmliZShhbnN3ZXIgPT4ge1xuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuc2V0VmFsdWUoYW5zd2VyLkFuc3dlclRleHQpO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLl9zdXJ2ZXlMaWJTZXJ2aWNlLnF1ZXN0aW9uSXNEaXNhYmxlZE9ic3J2LnBpcGUoZmlsdGVyKHggPT4geC5xdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgdGhpcy5mQ3RybHMuaXNEaXNhYmxlZC5zZXRWYWx1ZSh4LmlzRGlzYWJsZWQpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5xdWVzdGlvbklzU2hvd09ic3J2LnBpcGUoZmlsdGVyKHggPT4geC5xdWVzdGlvbklkID09IHRoaXMuZkN0cmxzLmlkLnZhbHVlKSkuc3Vic2NyaWJlKHggPT4ge1xuICAgICAgdGhpcy5mQ3RybHMuaXNTaG93LnNldFZhbHVlKHguaXNTaG93KTtcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnZlcnRUb0Zvcm1Db250cm9sKGVsZW1lbnQ6IGFueSkge1xuICAgIHJldHVybiBlbGVtZW50IGFzIEZvcm1Db250cm9sO1xuICB9XG5cbiAgcHJpdmF0ZSB0b2dnbGVFbmFibGVBbnN3ZXIoaXNSZWFkT25seTogYm9vbGVhbikge1xuICAgIGlmIChpc1JlYWRPbmx5ID09IHRydWUpIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5kaXNhYmxlKClcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmVuYWJsZSgpXG4gICAgfVxuICAgIHRoaXMuZkN0cmxzLmFuc3dlci51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XG4gIH1cblxufVxuIiwiPGRpdiBjbGFzcz1cInF1YXN0aW9uXCIgW2Zvcm1Hcm91cF09XCJyRm9ybVwiIFthdHRyLmlkXT1cIidxdWVzdGlvbl8nK2ZDdHJscy5pZC52YWx1ZVwiXG4gICAgW25nQ2xhc3NdPVwieydpbnZhbGlkLXF1ZXN0aW9uJzogZkN0cmxzLmFuc3dlci5pbnZhbGlkICwgJ2Qtbm9uZSc6ZkN0cmxzLmlzU2hvdy52YWx1ZSAhPSB0cnVlfVwiPlxuICAgIDxoMyBjbGFzcz1cInF1YXN0aW9uLXRpdGxlIFwiPlxuICAgICAgICA8c3BhbiBbaW5uZXJIVE1MXT1cInN1cnZleVF1ZXN0aW9uPy5xdWVzdGlvblRpdGxlXCI+PC9zcGFuPlxuICAgICAgICA8c3BhbiBzdHlsZT1cImNvbG9yOiByZWQ7XCIgKm5nSWY9XCJzdXJ2ZXlRdWVzdGlvbi5pc1JlcXVpcmVkXCI+Kjwvc3Bhbj5cbiAgICAgICAgPHAgKm5nSWY9XCJxdWVzdGlvbk1pbk1heEluZGljYXRvclwiIGNsYXNzPVwidGV4dC1kYW5nZXJcIj5cbiAgICAgICAgICAgIDxzbWFsbCA+e3txdWVzdGlvbk1pbk1heEluZGljYXRvcn19PC9zbWFsbD5cbiAgICAgICAgPC9wPiBcbiAgICA8L2gzPlxuICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LXF1YXN0aW9uXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc1RleHRBcmVhID09IGZhbHNlIGVsc2UgdGV4dEFyZWFUZW1wbGF0ZVwiPlxuICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZm9ybS1jb250cm9sXCIgbGliTWFza2VkRm9yTWluTWF4ICBbYXR0ci5taW5dPVwiZkN0cmxzLmlucHV0TWluLnZhbHVlXCJcbiAgICAgICAgICAgICAgICBbYXR0ci5tYXhdPVwiZkN0cmxzLmlucHV0TWF4LnZhbHVlXCIgW2Zvcm1Db250cm9sXT1cImNvbnZlcnRUb0Zvcm1Db250cm9sKGZDdHJscy5hbnN3ZXIpXCJcbiAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiaXNEaXNhYmxlZFwiIFthdHRyLnR5cGVdPVwiZkN0cmxzLmlucHV0VHlwZUlkLnZhbHVlIHwgdGV4dEJveFR5cGVBdHRyXCI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI3RleHRBcmVhVGVtcGxhdGU+XG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiByb3dzPVwiMlwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIj48L3RleHRhcmVhPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PiJdfQ==
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL2NvbXBvbmVudHMvcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3N1cnZlcnktbGliL3NyYy9saWIvY29tcG9uZW50cy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlL3F1ZXN0aW9uLXRleHQtdGVtcGxhdGUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHekQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMENBQTBDLENBQUM7QUFFNUUsT0FBTyxFQUFFLFlBQVksRUFBd0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUl2RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtDQUFrQyxDQUFDOzs7Ozs7OztBQU9sRSxNQUFNLE9BQU8sNkJBQTZCO0lBTXhDLElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUM7SUFDN0IsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sZ0JBQWdCLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQUksdUJBQXVCO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ25DLElBQUksU0FBUyxDQUFDLFFBQVEsSUFB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QXZCLEtBQUs7Z0JBaURPLFVBQVU7c0JBQXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycyB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAsIEZvcm1Db250cm9sIGFzIEZvcm1Db250cm9sU3RhY2ssIFZhbGlkYXRvcnNNb2RlbCB9IGZyb20gJ0BuZy1zdGFjay9mb3Jtcyc7XG5pbXBvcnQgeyBTdXJ2ZXlRdWVzdGlvbkR0byB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9kdG9zL3N1cnZleS1xdWVzdGlvbi5kdG8nO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlRW51bSB9IGZyb20gJy4uLy4uLy4uL3NoYXJlZC9lbnVtcy9xdWVzdGlvbi10eXBlLmVudW0nO1xuaW1wb3J0IHsgUXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2Zvcm0taW50ZXJmYWNlcy9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmZvcm0taW50ZXJmYWNlJztcbmltcG9ydCB7IGRlYm91bmNlVGltZSwgZGlzdGluY3RVbnRpbENoYW5nZWQsIGZpbHRlciwgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBRdWVzdGlvbkFuc3dlck1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL21vZGVscy9xdWVzdGlvbi1hbnN3ZXIubW9kZWwnO1xuaW1wb3J0IHsgRGVmYXVsdFF1ZXN0aW9uQW5zd2VyRHRvIH0gZnJvbSAnLi4vLi4vLi4vc2hhcmVkL2R0b3MvZGVmYXVsdC1xdWVzdGlvbi1hbnN3ZXJzLmR0byc7XG5pbXBvcnQgeyBTdXJ2ZXlMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvc3VydmV5LWxpYi5zZXJ2aWNlJztcbmltcG9ydCB7IElucHV0VHlwZUVudW0gfSBmcm9tICcuLi8uLi8uLi9zaGFyZWQvZW51bXMvaW5wdXQtdHlwZS5lbnVtJztcbmltcG9ydCB7IFBob25lVmFsaWRhdG9yIH0gZnJvbSAnLi4vLi4vdmFsaWRhdG9ycy9waG9uZS52YWxpZGF0b3InO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdsaWItcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9xdWVzdGlvbi10ZXh0LXRlbXBsYXRlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vcXVlc3Rpb24tdGV4dC10ZW1wbGF0ZS5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIFF1ZXN0aW9uVGV4dFRlbXBsYXRlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBzdXJ2ZXlRdWVzdGlvbjogU3VydmV5UXVlc3Rpb25EdG87XG4gIHJGb3JtOiBGb3JtR3JvdXA8UXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlPjtcbiAgY3VzdG9tUGF0dGVybnM6IG51bGw7XG5cbiAgZ2V0IGZDdHJscygpIHtcbiAgICByZXR1cm4gdGhpcy5yRm9ybS5jb250cm9scztcbiAgfVxuXG4gIGdldCBxdWVzdGlvblR5cGVFbnVtKCkge1xuICAgIHJldHVybiBRdWVzdGlvblR5cGVFbnVtO1xuICB9XG5cbiAgZ2V0IHF1ZXN0aW9uTWluTWF4SW5kaWNhdG9yKCkge1xuICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgaWYgKGZvcm1WYWx1ZS5pbnB1dE1heCAhPSBudWxsIHx8IGZvcm1WYWx1ZS5pbnB1dE1pbiAhPSBudWxsKSB7XG5cbiAgICAgIGlmIChmb3JtVmFsdWUuaW5wdXRNYXggIT0gbnVsbCAmJiBmb3JtVmFsdWUuaW5wdXRNaW4gIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBgINmK2KzYqCDYo9mGINiq2YPZiNmGINin2YTZgtmK2YXYqSDYp9mE2YXYr9iu2YTYqSDZhdmGIGAgKyAgZm9ybVZhbHVlLmlucHV0TWluICsgJyDYpdmE2YkgJyArIGZvcm1WYWx1ZS5pbnB1dE1heFxuICAgICAgICA6IGB0aGUgdmFsdWUgZW50ZXJlZCBtdXN0IGJlIGZyb20gJHtmb3JtVmFsdWUuaW5wdXRNaW59IHRvICR7Zm9ybVZhbHVlLmlucHV0TWF4fWA7XG4gICAgICB9XG4gICAgICBlbHNlIGlmKCBmb3JtVmFsdWUuaW5wdXRNaW4gIT0gbnVsbCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pc0FyYWJpY0xhbmcgPyBg2YrYrNioINij2YYg2KrZg9mI2YYg2KPZgtmEINmC2YrZhdipINmE2YTZhdiv2K7ZhCDYqtiz2KfZiNmKICR7Zm9ybVZhbHVlLmlucHV0TWlufWBcbiAgICAgICAgOmB0aGUgbWluaW11bSB2YWx1ZSBvZiB0aGUgaW5wdXQgbXVzdCBiZSAke2Zvcm1WYWx1ZS5pbnB1dE1pbn1gO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiggZm9ybVZhbHVlLmlucHV0TWF4ICE9IG51bGwpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuaXNBcmFiaWNMYW5nID8gYNmK2KzYqCDYo9mGINiq2YPZiNmGINij2YPYqNixINmC2YrZhdipINmE2YTZhdiv2K7ZhCDYqtiz2KfZiNmKICR7Zm9ybVZhbHVlLmlucHV0TWF4fWBcbiAgICAgICAgOmB0aGUgbWF4aW11bSB2YWx1ZSBvZiB0aGUgaW5wdXQgbXVzdCBiZSAke2Zvcm1WYWx1ZS5pbnB1dE1heH1gO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBudWxsO1xuICB9XG5cbiAgQE91dHB1dCgpIGVtaXR0ZXIgPSBuZXcgRXZlbnRFbWl0dGVyPFF1ZXN0aW9uQW5zd2VyTW9kZWw+KCk7XG5cbiAgQElucHV0KCkgaXNBcmFiaWNMYW5nOiBib29sZWFuID0gZmFsc2U7XG4gIEBJbnB1dCgpIGlzVGV4dEFyZWE6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgc2V0IHNldFF1ZXN0aW9uKHZhbHVlOiBTdXJ2ZXlRdWVzdGlvbkR0bykge1xuICAgIHRoaXMuc3VydmV5UXVlc3Rpb24gPSB2YWx1ZTtcblxuICAgIHRoaXMuckZvcm0ucGF0Y2hWYWx1ZSh7XG4gICAgICBpZDogdmFsdWUucXVlc3Rpb25JZCxcbiAgICAgIG5hbWU6IHZhbHVlLnF1ZXN0aW9uTmFtZSxcbiAgICAgIHRpdGxlOiB2YWx1ZS5xdWVzdGlvblRpdGxlLFxuICAgICAgdHlwZUlkOiB2YWx1ZS5xdWVzdGlvblR5cGVJZCxcbiAgICAgIGRlc2NyaXB0aW9uOiB2YWx1ZS5xdWVzdGlvbkRlc2NyaXB0aW9uLFxuICAgICAgaXNEaXNhYmxlZDogdmFsdWUuaXNSZWFkT25seSxcbiAgICAgIGlzU2hvdzogdmFsdWUuaXNWaXNhYmxlXG4gICAgfSk7XG5cbiAgICBpZiAodmFsdWUuc3VydmV5QW5zd2Vyc1swXT8uYW5zd2VySWQgIT0gbnVsbCAmJiB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdPy5hbnN3ZXJJZCAhPSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuZkN0cmxzLnN1cnZleUFuc3dlcklkLnNldFZhbHVlKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uYW5zd2VySWQpO1xuICAgICAgdGhpcy5mQ3RybHMuaW5wdXRUeXBlSWQuc2V0VmFsdWUodmFsdWUuc3VydmV5QW5zd2Vyc1swXS5pbnB1dFR5cGVJZCk7XG4gICAgfVxuXG4gICAgaWYgKHZhbHVlLmlzUmVxdWlyZWQgPT0gdHJ1ZSkge1xuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWRdKTtcblxuICAgICAgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5OdW1iZXIpIHtcbiAgICAgICAgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4gIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0TWluLnNldFZhbHVlKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4pO1xuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1pbih2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWluKV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXggIT0gbnVsbCkge1xuICAgICAgICAgIHRoaXMuZkN0cmxzLmlucHV0TWF4LnNldFZhbHVlKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNYXgpO1xuICAgICAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLm1heCh2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4KV0pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRNaW4gIT0gbnVsbCB8fCB2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0TWF4ICE9IG51bGwpIHtcbiAgICAgICAgICB0aGlzLmZDdHJscy5pbnB1dFR5cGVJZC5zZXRWYWx1ZShJbnB1dFR5cGVFbnVtLlRleHQpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2YWx1ZS5zdXJ2ZXlBbnN3ZXJzWzBdLmlucHV0VHlwZUlkID09IElucHV0VHlwZUVudW0uRW1haWwpIHtcbiAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMuZW1haWxdKTtcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlLnN1cnZleUFuc3dlcnNbMF0uaW5wdXRUeXBlSWQgPT0gSW5wdXRUeXBlRW51bS5QaG9uZSkge1xuICAgICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuYWRkVmFsaWRhdG9ycyhbUGhvbmVWYWxpZGF0b3JdKTtcbiAgICAgIH1cblxuICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcbiAgICB9XG5cbiAgICB0aGlzLnRvZ2dsZUVuYWJsZUFuc3dlcih2YWx1ZS5pc1JlYWRPbmx5KTtcbiAgfVxuXG4gIEBJbnB1dCgpIHNldCBpc0Rpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy50b2dnbGVFbmFibGVBbnN3ZXIodmFsdWUpO1xuICB9XG5cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9mb3JtQnVpbGRlcjogRm9ybUJ1aWxkZXIsIHByaXZhdGUgX3N1cnZleUxpYlNlcnZpY2U6IFN1cnZleUxpYlNlcnZpY2UpIHtcbiAgICB0aGlzLnJGb3JtID0gdGhpcy5fZm9ybUJ1aWxkZXIuZ3JvdXA8UXVlc3Rpb25UZXh0VGVtcGxhdGVGb3JtSW50ZXJmYWNlPih7XG4gICAgICBpZDogW251bGxdLFxuICAgICAgbmFtZTogW251bGxdLFxuICAgICAgdGl0bGU6IFtudWxsXSxcbiAgICAgIHR5cGVJZDogW251bGxdLFxuICAgICAgZGVzY3JpcHRpb246IFtudWxsXSxcbiAgICAgIHN1cnZleUFuc3dlcklkOiBbbnVsbF0sXG4gICAgICBhbnN3ZXI6IFtudWxsXSxcbiAgICAgIGlzRGlzYWJsZWQ6IFtmYWxzZV0sXG4gICAgICBpc1Nob3c6IFt0cnVlXSxcbiAgICAgIGlucHV0VHlwZUlkOiBbbnVsbF0sXG4gICAgICBpbnB1dE1pbjogW251bGxdLFxuICAgICAgaW5wdXRNYXg6IFtudWxsXVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnZhbHVlQ2hhbmdlcy5waXBlKCkucGlwZShkZWJvdW5jZVRpbWUoMjAwKSkuc3Vic2NyaWJlKHZhbHVlID0+IHtcbiAgICAgIGNvbnN0IGZvcm1WYWx1ZSA9IHRoaXMuckZvcm0udmFsdWU7XG4gICAgICB0aGlzLmVtaXR0ZXIuZW1pdCh7XG4gICAgICAgIFF1ZXN0aW9uSWQ6IGZvcm1WYWx1ZS5pZCxcbiAgICAgICAgSXNWYWxpZDogdGhpcy5mQ3RybHMuYW5zd2VyLnZhbGlkLFxuICAgICAgICBBbnN3ZXI6IHZhbHVlLFxuICAgICAgICBTdXJ2ZXlBbnN3ZXJJZDogZm9ybVZhbHVlLnN1cnZleUFuc3dlcklkXG4gICAgICB9KVxuICAgIH0pO1xuXG4gICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKG51bGwpO1xuXG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5zdXJ2ZXlBbnN3ZXJzT2JzcnYucGlwZShtYXAoeCA9PiB4LmRlZmF1bHRBbnN3ZXJzLmZpbHRlcih4ID0+IHguUXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpKVxuICAgICAgLnBpcGUoZmlsdGVyKHggPT4geC5sZW5ndGggPiAwKSkucGlwZShtYXAoeCA9PiB4LmF0KDApKSlcbiAgICAgIC5zdWJzY3JpYmUoYW5zd2VyID0+IHtcbiAgICAgICAgdGhpcy5mQ3RybHMuYW5zd2VyLnNldFZhbHVlKGFuc3dlci5BbnN3ZXJUZXh0KTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy5fc3VydmV5TGliU2VydmljZS5xdWVzdGlvbklzRGlzYWJsZWRPYnNydi5waXBlKGZpbHRlcih4ID0+IHgucXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpLnN1YnNjcmliZSh4ID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLmlzRGlzYWJsZWQuc2V0VmFsdWUoeC5pc0Rpc2FibGVkKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX3N1cnZleUxpYlNlcnZpY2UucXVlc3Rpb25Jc1Nob3dPYnNydi5waXBlKGZpbHRlcih4ID0+IHgucXVlc3Rpb25JZCA9PSB0aGlzLmZDdHJscy5pZC52YWx1ZSkpLnN1YnNjcmliZSh4ID0+IHtcbiAgICAgIHRoaXMuZkN0cmxzLmlzU2hvdy5zZXRWYWx1ZSh4LmlzU2hvdyk7XG4gICAgfSk7XG4gIH1cblxuICBjb252ZXJ0VG9Gb3JtQ29udHJvbChlbGVtZW50OiBhbnkpIHtcbiAgICByZXR1cm4gZWxlbWVudCBhcyBGb3JtQ29udHJvbDtcbiAgfVxuXG4gIHByaXZhdGUgdG9nZ2xlRW5hYmxlQW5zd2VyKGlzUmVhZE9ubHk6IGJvb2xlYW4pIHtcbiAgICBpZiAoaXNSZWFkT25seSA9PSB0cnVlKSB7XG4gICAgICB0aGlzLmZDdHJscy5hbnN3ZXIuZGlzYWJsZSgpXG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuZkN0cmxzLmFuc3dlci5lbmFibGUoKVxuICAgIH1cbiAgICB0aGlzLmZDdHJscy5hbnN3ZXIudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICB9XG5cbn1cbiIsIjxkaXYgY2xhc3M9XCJxdWFzdGlvblwiIFtmb3JtR3JvdXBdPVwickZvcm1cIiBbYXR0ci5pZF09XCIncXVlc3Rpb25fJytmQ3RybHMuaWQudmFsdWVcIlxuICAgIFtuZ0NsYXNzXT1cInsnaW52YWxpZC1xdWVzdGlvbic6IGZDdHJscy5hbnN3ZXIuaW52YWxpZCAsICdkLW5vbmUnOmZDdHJscy5pc1Nob3cudmFsdWUgIT0gdHJ1ZX1cIj5cbiAgICA8aDMgY2xhc3M9XCJxdWFzdGlvbi10aXRsZSBcIj5cbiAgICAgICAgPHNwYW4gW2lubmVySFRNTF09XCJzdXJ2ZXlRdWVzdGlvbj8ucXVlc3Rpb25UaXRsZVwiPjwvc3Bhbj5cbiAgICAgICAgPHNwYW4gc3R5bGU9XCJjb2xvcjogcmVkO1wiICpuZ0lmPVwic3VydmV5UXVlc3Rpb24uaXNSZXF1aXJlZFwiPio8L3NwYW4+XG4gICAgICAgIDxwICpuZ0lmPVwicXVlc3Rpb25NaW5NYXhJbmRpY2F0b3JcIiBjbGFzcz1cInRleHQtZGFuZ2VyXCI+XG4gICAgICAgICAgICA8c21hbGwgPnt7cXVlc3Rpb25NaW5NYXhJbmRpY2F0b3J9fTwvc21hbGw+XG4gICAgICAgIDwvcD4gXG4gICAgPC9oMz5cbiAgICA8ZGl2IGNsYXNzPVwidGV4dC1xdWFzdGlvblwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNUZXh0QXJlYSA9PSBmYWxzZSBlbHNlIHRleHRBcmVhVGVtcGxhdGVcIj5cbiAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGxpYk1hc2tlZEZvck1pbk1heCAgW2F0dHIubWluXT1cImZDdHJscy5pbnB1dE1pbi52YWx1ZVwiXG4gICAgICAgICAgICAgICAgW2F0dHIubWF4XT1cImZDdHJscy5pbnB1dE1heC52YWx1ZVwiIFtmb3JtQ29udHJvbF09XCJjb252ZXJ0VG9Gb3JtQ29udHJvbChmQ3RybHMuYW5zd2VyKVwiXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRGlzYWJsZWRcIiBbYXR0ci50eXBlXT1cImZDdHJscy5pbnB1dFR5cGVJZC52YWx1ZSB8IHRleHRCb3hUeXBlQXR0clwiPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0ZXh0QXJlYVRlbXBsYXRlPlxuICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcm93cz1cIjJcIiBbZm9ybUNvbnRyb2xdPVwiY29udmVydFRvRm9ybUNvbnRyb2woZkN0cmxzLmFuc3dlcilcIlxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc0Rpc2FibGVkXCI+PC90ZXh0YXJlYT5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L2Rpdj4iXX0=
@@ -22,6 +22,9 @@ export class TextBoxTypeAttrPipe {
22
22
  else if (value == InputTypeEnum.Password) {
23
23
  return 'password';
24
24
  }
25
+ else if (value == InputTypeEnum.Phone) {
26
+ return 'Phone';
27
+ }
25
28
  }
26
29
  return 'text';
27
30
  }
@@ -34,4 +37,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
34
37
  name: 'textBoxTypeAttr'
35
38
  }]
36
39
  }] });
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1ib3gtdHlwZS1hdHRyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3BpcGVzL3RleHQtYm94LXR5cGUtYXR0ci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixTQUFTLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWU7UUFDaEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksS0FBSyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hDLE9BQU8sT0FBTyxDQUFDO2FBQ2hCO2lCQUFNLElBQUksS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7aUJBQ0ksSUFBSSxLQUFLLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDeEMsT0FBTyxnQkFBZ0IsQ0FBQzthQUN6QjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQzthQUNoQjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUN0QyxPQUFPLFFBQVEsQ0FBQzthQUNqQjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUN4QyxPQUFPLFVBQVUsQ0FBQzthQUNuQjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0F4QlUsbUJBQW1COzRHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RleHRCb3hUeXBlQXR0cidcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEJveFR5cGVBdHRyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybSh2YWx1ZTogSW5wdXRUeXBlRW51bSwgLi4uYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uQ29sb3IpIHtcbiAgICAgICAgcmV0dXJuICdjb2xvcic7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uRGF0ZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodmFsdWUgPT0gSW5wdXRUeXBlRW51bS5EYXRlVGltZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGV0aW1lLWxvY2FsJztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uRW1haWwpIHtcbiAgICAgICAgcmV0dXJuICdlbWFpbCc7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PSBJbnB1dFR5cGVFbnVtLk51bWJlcikge1xuICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PSBJbnB1dFR5cGVFbnVtLlBhc3N3b3JkKSB7XG4gICAgICAgIHJldHVybiAncGFzc3dvcmQnO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiAndGV4dCc7XG4gIH1cbn1cbiJdfQ==
40
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC1ib3gtdHlwZS1hdHRyLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zdXJ2ZXJ5LWxpYi9zcmMvbGliL3BpcGVzL3RleHQtYm94LXR5cGUtYXR0ci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7QUFLbkUsTUFBTSxPQUFPLG1CQUFtQjtJQUU5QixTQUFTLENBQUMsS0FBb0IsRUFBRSxHQUFHLElBQWU7UUFDaEQsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFO1lBQ2pCLElBQUksS0FBSyxJQUFJLGFBQWEsQ0FBQyxLQUFLLEVBQUU7Z0JBQ2hDLE9BQU8sT0FBTyxDQUFDO2FBQ2hCO2lCQUFNLElBQUksS0FBSyxJQUFJLGFBQWEsQ0FBQyxJQUFJLEVBQUU7Z0JBQ3RDLE9BQU8sTUFBTSxDQUFDO2FBQ2Y7aUJBQ0ksSUFBSSxLQUFLLElBQUksYUFBYSxDQUFDLFFBQVEsRUFBRTtnQkFDeEMsT0FBTyxnQkFBZ0IsQ0FBQzthQUN6QjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQzthQUNoQjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsTUFBTSxFQUFFO2dCQUN0QyxPQUFPLFFBQVEsQ0FBQzthQUNqQjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsUUFBUSxFQUFFO2dCQUN4QyxPQUFPLFVBQVUsQ0FBQzthQUNuQjtpQkFDSSxJQUFJLEtBQUssSUFBSSxhQUFhLENBQUMsS0FBSyxFQUFFO2dCQUNyQyxPQUFPLE9BQU8sQ0FBQzthQUNoQjtTQUNGO1FBRUQsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQzs4R0EzQlUsbUJBQW1COzRHQUFuQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBSC9CLElBQUk7bUJBQUM7b0JBQ0osSUFBSSxFQUFFLGlCQUFpQjtpQkFDeEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJbnB1dFR5cGVFbnVtIH0gZnJvbSAnLi4vLi4vc2hhcmVkL2VudW1zL2lucHV0LXR5cGUuZW51bSc7XG5cbkBQaXBlKHtcbiAgbmFtZTogJ3RleHRCb3hUeXBlQXR0cidcbn0pXG5leHBvcnQgY2xhc3MgVGV4dEJveFR5cGVBdHRyUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuXG4gIHRyYW5zZm9ybSh2YWx1ZTogSW5wdXRUeXBlRW51bSwgLi4uYXJnczogdW5rbm93bltdKTogc3RyaW5nIHtcbiAgICBpZiAodmFsdWUgIT0gbnVsbCkge1xuICAgICAgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uQ29sb3IpIHtcbiAgICAgICAgcmV0dXJuICdjb2xvcic7XG4gICAgICB9IGVsc2UgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uRGF0ZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGUnO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodmFsdWUgPT0gSW5wdXRUeXBlRW51bS5EYXRlVGltZSkge1xuICAgICAgICByZXR1cm4gJ2RhdGV0aW1lLWxvY2FsJztcbiAgICAgIH1cbiAgICAgIGVsc2UgaWYgKHZhbHVlID09IElucHV0VHlwZUVudW0uRW1haWwpIHtcbiAgICAgICAgcmV0dXJuICdlbWFpbCc7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PSBJbnB1dFR5cGVFbnVtLk51bWJlcikge1xuICAgICAgICByZXR1cm4gJ251bWJlcic7XG4gICAgICB9XG4gICAgICBlbHNlIGlmICh2YWx1ZSA9PSBJbnB1dFR5cGVFbnVtLlBhc3N3b3JkKSB7XG4gICAgICAgIHJldHVybiAncGFzc3dvcmQnO1xuICAgICAgfVxuICAgICAgZWxzZSBpZiAodmFsdWUgPT0gSW5wdXRUeXBlRW51bS5QaG9uZSkge1xuICAgICAgICByZXR1cm4gJ1Bob25lJztcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gJ3RleHQnO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,11 @@
1
+ export function PhoneValidator(control) {
2
+ if (control.value) {
3
+ var phoneCode = control.value.trim().slice(0, 2);
4
+ var phoneLength = control.value.trim().length;
5
+ if (phoneCode != "05" || phoneLength == 10) {
6
+ return { invalidPhone: true };
7
+ }
8
+ }
9
+ return null;
10
+ }
11
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGhvbmUudmFsaWRhdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL2xpYi92YWxpZGF0b3JzL3Bob25lLnZhbGlkYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLFVBQVUsY0FBYyxDQUFDLE9BQXdCO0lBQ25ELElBQUksT0FBTyxDQUFDLEtBQUssRUFBRTtRQUNmLElBQUksU0FBUyxHQUFHLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNqRCxJQUFJLFdBQVcsR0FBRyxPQUFPLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQztRQUM5QyxJQUFJLFNBQVMsSUFBSSxJQUFJLElBQUksV0FBVyxJQUFJLEVBQUUsRUFBRTtZQUN4QyxPQUFPLEVBQUUsWUFBWSxFQUFFLElBQUksRUFBRSxDQUFDO1NBQ2pDO0tBQ0o7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNoQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWJzdHJhY3RDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XHJcblxyXG5leHBvcnQgZnVuY3Rpb24gUGhvbmVWYWxpZGF0b3IoY29udHJvbDogQWJzdHJhY3RDb250cm9sKSB7XHJcbiAgICBpZiAoY29udHJvbC52YWx1ZSkge1xyXG4gICAgICAgIHZhciBwaG9uZUNvZGUgPSBjb250cm9sLnZhbHVlLnRyaW0oKS5zbGljZSgwLCAyKTtcclxuICAgICAgICB2YXIgcGhvbmVMZW5ndGggPSBjb250cm9sLnZhbHVlLnRyaW0oKS5sZW5ndGg7XHJcbiAgICAgICAgaWYgKHBob25lQ29kZSAhPSBcIjA1XCIgfHwgcGhvbmVMZW5ndGggPT0gMTApIHtcclxuICAgICAgICAgICAgcmV0dXJuIHsgaW52YWxpZFBob25lOiB0cnVlIH07XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIG51bGw7XHJcbn0iXX0=
@@ -7,5 +7,6 @@ export var InputTypeEnum;
7
7
  InputTypeEnum[InputTypeEnum["Number"] = 5] = "Number";
8
8
  InputTypeEnum[InputTypeEnum["Password"] = 6] = "Password";
9
9
  InputTypeEnum[InputTypeEnum["Text"] = 7] = "Text";
10
+ InputTypeEnum[InputTypeEnum["Phone"] = 8] = "Phone";
10
11
  })(InputTypeEnum || (InputTypeEnum = {}));
11
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9lbnVtcy9pbnB1dC10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFRWDtBQVJELFdBQVksYUFBYTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsaURBQVEsQ0FBQTtJQUNYLHlEQUFZLENBQUE7SUFDVCxtREFBUyxDQUFBO0lBQ1QscURBQVUsQ0FBQTtJQUNWLHlEQUFZLENBQUE7SUFDWixpREFBUSxDQUFBO0FBQ1osQ0FBQyxFQVJXLGFBQWEsS0FBYixhQUFhLFFBUXhCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGVudW0gSW5wdXRUeXBlRW51bSB7XHJcbiAgICBDb2xvciA9IDEsXHJcbiAgICBEYXRlID0gMiAsXHJcblx0RGF0ZVRpbWUgPSAzLFxyXG4gICAgRW1haWwgPSA0LFxyXG4gICAgTnVtYmVyID0gNSxcclxuICAgIFBhc3N3b3JkID0gNixcclxuICAgIFRleHQgPSA3XHJcbn0iXX0=
12
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdHlwZS5lbnVtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvc3VydmVyeS1saWIvc3JjL3NoYXJlZC9lbnVtcy9pbnB1dC10eXBlLmVudW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsTUFBTSxDQUFOLElBQVksYUFTWDtBQVRELFdBQVksYUFBYTtJQUNyQixtREFBUyxDQUFBO0lBQ1QsaURBQVEsQ0FBQTtJQUNSLHlEQUFZLENBQUE7SUFDWixtREFBUyxDQUFBO0lBQ1QscURBQVUsQ0FBQTtJQUNWLHlEQUFZLENBQUE7SUFDWixpREFBUSxDQUFBO0lBQ1IsbURBQVMsQ0FBQTtBQUNiLENBQUMsRUFUVyxhQUFhLEtBQWIsYUFBYSxRQVN4QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBlbnVtIElucHV0VHlwZUVudW0ge1xyXG4gICAgQ29sb3IgPSAxLFxyXG4gICAgRGF0ZSA9IDIsXHJcbiAgICBEYXRlVGltZSA9IDMsXHJcbiAgICBFbWFpbCA9IDQsXHJcbiAgICBOdW1iZXIgPSA1LFxyXG4gICAgUGFzc3dvcmQgPSA2LFxyXG4gICAgVGV4dCA9IDcsXHJcbiAgICBQaG9uZSA9IDhcclxufSJdfQ==
@@ -272,8 +272,20 @@ var InputTypeEnum;
272
272
  InputTypeEnum[InputTypeEnum["Number"] = 5] = "Number";
273
273
  InputTypeEnum[InputTypeEnum["Password"] = 6] = "Password";
274
274
  InputTypeEnum[InputTypeEnum["Text"] = 7] = "Text";
275
+ InputTypeEnum[InputTypeEnum["Phone"] = 8] = "Phone";
275
276
  })(InputTypeEnum || (InputTypeEnum = {}));
276
277
 
278
+ function PhoneValidator(control) {
279
+ if (control.value) {
280
+ var phoneCode = control.value.trim().slice(0, 2);
281
+ var phoneLength = control.value.trim().length;
282
+ if (phoneCode != "05" || phoneLength == 10) {
283
+ return { invalidPhone: true };
284
+ }
285
+ }
286
+ return null;
287
+ }
288
+
277
289
  class MaskedForMinMaxDirective {
278
290
  constructor(el) {
279
291
  this.el = el;
@@ -348,6 +360,9 @@ class TextBoxTypeAttrPipe {
348
360
  else if (value == InputTypeEnum.Password) {
349
361
  return 'password';
350
362
  }
363
+ else if (value == InputTypeEnum.Phone) {
364
+ return 'Phone';
365
+ }
351
366
  }
352
367
  return 'text';
353
368
  }
@@ -419,6 +434,9 @@ class QuestionTextTemplateComponent {
419
434
  else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {
420
435
  this.fCtrls.answer.addValidators([Validators.email]);
421
436
  }
437
+ else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Phone) {
438
+ this.fCtrls.answer.addValidators([PhoneValidator]);
439
+ }
422
440
  this.fCtrls.answer.updateValueAndValidity();
423
441
  }
424
442
  this.toggleEnableAnswer(value.isReadOnly);
@@ -1 +1 @@
1
- {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/directives/masked-for-min-max.directive.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n private surveyAnswersSubject: Subject<surveyAnswersSubjectDto> = new Subject<surveyAnswersSubjectDto>();\n private reloadSurveySubject: Subject<string> = new Subject<string>();\n private questionIsShowSubject: Subject<{ questionId: number, isShow: boolean }> = new Subject<{ questionId: number, isShow: boolean }>();\n private questionIsDisabledSubject: Subject<{ questionId: number, isDisabled: boolean }> = new Subject<{ questionId: number, isDisabled: boolean }>();\n private addQuestionSubject: Subject<{ question: SurveyQuestionDto, pageIndex: number }> = new Subject<{ question: SurveyQuestionDto, pageIndex: number }>();\n private removeQuestionSubject: Subject<{ questionId: number }> = new Subject<{ questionId: number }>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n get surveyAnswersObsrv() {\n return this.surveyAnswersSubject.asObservable();\n }\n\n get reloadSurveyObsrv() {\n return this.reloadSurveySubject.asObservable();\n }\n\n get questionIsShowObsrv() {\n return this.questionIsShowSubject.asObservable();\n }\n\n get questionIsDisabledObsrv() {\n return this.questionIsDisabledSubject.asObservable();\n }\n\n get addQuestionObsrv() {\n return this.addQuestionSubject.asObservable();\n }\n\n get removeQuestionObsrv() {\n return this.removeQuestionSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\n this.surveyAnswersSubject.next(model);\n }\n\n setQuestionIsShow(questionId: number, isShow: boolean) {\n this.questionIsShowSubject.next({ questionId, isShow });\n }\n\n setQuestionIsDisabled(questionId: number, isDisabled: boolean) {\n this.questionIsDisabledSubject.next({ questionId, isDisabled });\n }\n\n setReloadSurvey() {\n this.reloadSurveySubject.next(guidGenerator());\n }\n\n setAddQuestion(question: SurveyQuestionDto, pageIndex: number) {\n this.addQuestionSubject.next({ question, pageIndex });\n }\n\n setRemoveQuestion(questionId: number) {\n this.removeQuestionSubject.next({ questionId });\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n console.log(`Questions not passed ${useCaseResult.exprestionResultArr.filter(x=>x==false).length}`);\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n currentPageIndex:number;\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2 ,\r\n\tDateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\ndeclare var $: any;\n@Directive({\n selector: '[libMaskedForMinMax]'\n})\nexport class MaskedForMinMaxDirective {\n\n constructor(private el: ElementRef) { }\n\n @HostListener('keypress', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n const input = event.target as HTMLInputElement;\n if (input.type === 'number' || input.type === 'text') {\n var min = null;\n var max = null;\n if (input.getAttribute('min') !== null) {\n min = parseInt(input.getAttribute('min'));\n }\n if (input.getAttribute('max') !== null) {\n max = parseInt(input.getAttribute('max'));\n }\n\n var inputVlaue :any = input.value;\n // allowed key array\n var keyArr = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'Backspace'];\n if (min != null || max != null) {\n if (keyArr.indexOf(event.key) == -1) {\n event.preventDefault();\n }\n\n if (input.selectionStart != null) {\n\n let firstPart = input.value.slice(0, input.selectionStart);\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\n\n inputVlaue = Number (firstPart + event.key + lastPart);\n }\n }\n\n if (min != null) {\n if (parseInt(inputVlaue) < min) {\n event.preventDefault();\n }\n }\n\n if (max !== null) {\n if (parseInt(inputVlaue) > max) {\n event.preventDefault();\n }\n }\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\n\n@Pipe({\n name: 'textBoxTypeAttr'\n})\nexport class TextBoxTypeAttrPipe implements PipeTransform {\n\n transform(value: InputTypeEnum, ...args: unknown[]): string {\n if (value != null) {\n if (value == InputTypeEnum.Color) {\n return 'color';\n } else if (value == InputTypeEnum.Date) {\n return 'date';\n }\n else if (value == InputTypeEnum.DateTime) {\n return 'datetime-local';\n }\n else if (value == InputTypeEnum.Email) {\n return 'email';\n }\n else if (value == InputTypeEnum.Number) {\n return 'number';\n }\n else if (value == InputTypeEnum.Password) {\n return 'password';\n }\n }\n\n return 'text';\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n customPatterns: null;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionMinMaxIndicator() {\n const formValue = this.rForm.value;\n if (formValue.inputMax != null || formValue.inputMin != null) {\n\n if (formValue.inputMax != null && formValue.inputMin != null) {\n return this.isArabicLang ? ` يجب أن تكون القيمة المدخلة من ` + formValue.inputMin + ' إلى ' + formValue.inputMax\n : `the value entered must be from ${formValue.inputMin} to ${formValue.inputMax}`;\n }\n else if( formValue.inputMin != null) {\n return this.isArabicLang ? `يجب أن تكون أقل قيمة للمدخل تساوي ${formValue.inputMin}`\n :`the minimum value of the input must be ${formValue.inputMin}`;\n }\n else if( formValue.inputMax != null) {\n return this.isArabicLang ? `يجب أن تكون أكبر قيمة للمدخل تساوي ${formValue.inputMax}`\n :`the maximum value of the input must be ${formValue.inputMax}`;\n }\n }\n\n return null;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isArabicLang: boolean = false;\n @Input() isTextArea: boolean = false;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n this.fCtrls.inputTypeId.setValue(value.surveyAnswers[0].inputTypeId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n\n if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\n if (value.surveyAnswers[0].inputMin != null) {\n this.fCtrls.inputMin.setValue(value.surveyAnswers[0].inputMin);\n this.fCtrls.answer.addValidators([Validators.min(value.surveyAnswers[0].inputMin)]);\n }\n\n if (value.surveyAnswers[0].inputMax != null) {\n this.fCtrls.inputMax.setValue(value.surveyAnswers[0].inputMax);\n this.fCtrls.answer.addValidators([Validators.max(value.surveyAnswers[0].inputMax)]);\n }\n\n if (value.surveyAnswers[0].inputMin != null || value.surveyAnswers[0].inputMax != null) {\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Text);\n }\n }\n else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\n this.fCtrls.answer.addValidators([Validators.email]);\n }\n\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.toggleEnableAnswer(value.isReadOnly);\n }\n\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null],\n isDisabled: [false],\n isShow: [true],\n inputTypeId: [null],\n inputMin: [null],\n inputMax: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n this.fCtrls.answer.setValue(answer.AnswerText);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n <p *ngIf=\"questionMinMaxIndicator\" class=\"text-danger\">\n <small >{{questionMinMaxIndicator}}</small>\n </p> \n </h3>\n <div class=\"text-quastion\">\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\n <input class=\"form-control\" libMaskedForMinMax [attr.min]=\"fCtrls.inputMin.value\"\n [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\n </ng-container>\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"2\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\"></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionRadioButtonTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n console.log(value);\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionRadioButtonTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\" [innerHTML]=\"item.value.title\"></label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionCheckBoxTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray);\r\n\r\n answer.AnswerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n })\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\" [innerHTML]=\"item.value.title\"></label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n }\n\n constructor(private _formBuilder: FormBuilder ,private _surveyLibService :SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null] ,\n isDisabled:[false],\n isShow : [true]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\n .subscribe(answer=>{\n this.fCtrls.answer.setValue(answer.AnswerId);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\n </ng-select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null],\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: group.value.subQuestionId,\n Answer: group.value.answer,\n IsValid: group.controls.answer.valid\n });\n });\n\n this.fCtrls.subQuestionArray.push(group);\n });\n }\n\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n isDisabled:[false],\n isShow : [true],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n }); \n }\n ngOnInit(): void {\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.ParentQuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0))\n .subscribe(answers=>{\n this.fCtrls.subQuestionArray.controls.forEach(group => {\n var answer = answers.find(x => x.QuestionId == group.value.subQuestionId);\n if (answer != null) {\n group.controls.answer.setValue(answer.AnswerId);\n }\n })\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\n\n subQuestionGroup.controls.answer.setValue(answer.answerId);\n\n this.emitter.emit({\n QuestionId: subQuestionGroup.value.subQuestionId,\n Answer: subQuestionGroup.value.answer,\n IsValid: subQuestionGroup.controls.answer.valid\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\" >\n <span [innerHTML]=\"answers.answerTitle\"></span>\n </div>\n </div>\n\n <div class=\"matrix-row\" [attr.id]=\"'question_'+questionGroup.value.subQuestionId\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\" [innerHTML]=\"questionGroup.value.questionTitle\">\n </div>\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\n <label class=\"form-check-label d-inline d-lg-none\" [innerHTML]=\"answer.answerTitle\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> </label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n console.log(value.surveyAnswers);\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionBooleanTemplateFormInterface>([]) ,\r\n isDisabled:[false],\r\n isShow : [true]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\r\n .subscribe(answer=>{\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if(groupIndex > -1){\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n\r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\"\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\"\n [disabled]=\"fCtrls.isDisabled.value\" name=\"{{elemId}}__radio-btn-option\"\n id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormGroup, Validators , FormBuilder} from '@ng-stack/forms';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\n\n@Component({\n selector: 'lib-question-dropdown-multi-template',\n templateUrl: './question-dropdown-multi-template.component.html',\n styleUrls: ['./question-dropdown-multi-template.component.scss']\n})\nexport class QuestionDropdownMultiTemplateComponent {\n \n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveyAnswers.forEach(surveryAnswer => {\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\n id: [surveryAnswer.answerId],\n title: [surveryAnswer.answerTitle],\n isSelected: [false]\n }))\n })\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n answerArray: this._formBuilder.array<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\n this.fCtrls.answer.setValue(distinctArray);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\nimport { Observable } from 'rxjs';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\nimport { GetNextQuestionResult } from '../../shared/results/api.result';\ndeclare var $: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private url;\n\n constructor(private _HttpClient: HttpClient,\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\n this.url = _LibConfigService.apiUrl;\n }\n\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\n var queryString = $.param(filter);\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/GetNextQuestion?${queryString}`,\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { ApiService } from '../../services/api.service';\n\n@Component({\n selector: 'lib-question-cascade-template',\n templateUrl: './question-cascade-template.component.html',\n styleUrls: ['./question-cascade-template.component.scss']\n})\nexport class QuestionCascadeTemplateComponent {\n surveyQuestionArr: SurveyQuestionDto[] = [];\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionFormArray() {\n return this.fCtrls.questionArr\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() pageIndex: number = null;\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.setQuestions(value);\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\n private _ApiService: ApiService) {\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\n questionArr: this._formBuilder.array<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.questionArr.statusChanges.subscribe(v => {\n console.log(v);\n })\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n if (this.surveyQuestionArr.length > 1) {\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\n\n var deletedQuestions = []\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\n deletedQuestions.push(index);\n }\n\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\n for (let index = 0; index < sortDeletedArr.length; index++) {\n const elementIndex = sortDeletedArr[index];\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\n this._surveyLibService.setRemoveQuestion(questionId);\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x=>x.questionId != questionId);\n this.questionFormArray.removeAt(elementIndex);\n }\n }\n\n if (model.Answer) {\n this._ApiService.getNextQuestion({\n answerId: model.Answer,\n applicantKey: this.applicantKey,\n isPre: this.isPre,\n surveyLanguageId: this.surveyLanguageId\n }).subscribe(res => {\n if (res.errors.filter(x => x.code == 17).length == 0) {\n this.setQuestions(res);\n this._surveyLibService.setAddQuestion(res, this.pageIndex);\n }\n });\n }\n\n this.emitter.emit(model);\n }\n\n identify(index, item: QuestionGroupChildOfQuestionCascadeTemplateFormInterface) {\n return item.id;\n }\n\n private setQuestions(value: SurveyQuestionDto) {\n this.surveyQuestionArr.push(value);\n\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\n id: [value.questionId],\n typeId: [value.questionTypeId],\n answer: null\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.questionArr.push(group);\n }\n\n}\n","<ng-container *ngFor=\"let item of questionFormArray.value ; trackBy:identify ; let i = index\">\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"surveyQuestionArr[i]\"\n (emitter)=\"onUpdateAnswer($event)\" >\n </lib-question-dropdown-template>\n</ng-container>","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, debounceTime, distinctUntilChanged, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\nimport { Validators } from '@angular/forms';\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\n\n surveryLibraryDivId = guidGenerator() as string;\n reloadDefaultAnswerId = guidGenerator() as string;\n surveyData: SurveyDto;\n defaultAnswers: DefaultQuestionAnswerDto[];\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isFirstPage() {\n if (this.showedSurveyPages.length > 0) {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == 0;\n }\n return true;\n }\n\n get isLastPage() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == (this.showedSurveyPages.length - 1)\n }\n\n get showedSurveyPages(): number[] {\n var pageArr: number[] = [];\n for (let index = 0; index < this.fCtrls.questionArray.value.length; index++) {\n const question = this.fCtrls.questionArray.value[index];\n if (question.isShow == true && (question.questionType != this.questionTypeEnum.Matrix || question.isMatrixGroup == true)) {\n pageArr.push(question.surveyPageIndex);\n }\n }\n\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\n\n return distinctArray.sort((a, b) => a - b);\n }\n\n get curruntShowedSurveyPages() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) + 1;\n }\n\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\n return {\n currentPageIndex: this.fCtrls.currentPageIndex.value,\n answers:\n this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n })\n }\n }\n\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n @Input() isArabicLang: boolean = false;\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n @Output() selectLanguageEmit = new EventEmitter<string>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n ngAfterViewInit(): void {\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.pipe(debounceTime(300), distinctUntilChanged()).subscribe(survey => {\n this.fCtrls.questionArray.clear();\n this.fCtrls.ruleQuestionArray.clear();\n this.surveyData = null;\n\n if (survey != null) {\n this.surveyData = survey;\n this.loadQuestions(survey);\n }\n });\n\n this._surveyLibService.addQuestionObsrv.subscribe(res => {\n this.addQuestionGroup(res.question, res.pageIndex);\n });\n\n this._surveyLibService.removeQuestionObsrv.subscribe(res => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == res.questionId);\n this.fCtrls.questionArray.removeAt(index);\n });\n\n }\n\n onPaggingNext() {\n var invalidRecords = this.haveInValidateQuestions();\n if (invalidRecords.length == 0) {\n\n const nextPageIndex = this.getNextShowedPage();\n\n if (nextPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(nextPageIndex);\n setTimeout(() => {\n this.loadQuestionUpdates(nextPageIndex);\n });\n\n $('html, body').animate({\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 120\n }, 2000);\n\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n } else {\n var firstQuestion = invalidRecords[0];\n $('html, body').animate({\n scrollTop: $(`#question_${firstQuestion.questionId}`).offset().top - 120\n }, 2000);\n }\n }\n\n onPaggingBack() {\n const prevPageIndex = this.getPrevShowedPage();\n if (prevPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(prevPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n if (index > -1) {\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox || questionGroup.value.questionType == this.questionTypeEnum.DropDownMulti) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n this.addQuestionGroup(question, pageIndex);\n });\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n return invalidRecords;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value ,\n currentPageIndex : this.fCtrls.currentPageIndex.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n if (questionGroup.value.questionType == QuestionTypeEnum.Matrix && questionGroup.value.isMatrixGroup == true) {\n var subQuestions = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == questionGroup.value.surveyPageIndex && x.isMatrixGroup == false);\n subQuestions.forEach(subQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == subQuestion.questionId);\n var subQuestionGroup = this.fCtrls.questionArray.at(index);\n\n subQuestionGroup.patchValue({\n isShow: questionGroup.value.isShow,\n isDisabled: questionGroup.value.isDisabled\n });\n\n this._surveyLibService.setQuestionIsDisabled(subQuestion.questionId, subQuestion.isDisabled);\n this._surveyLibService.setQuestionIsShow(subQuestion.questionId, subQuestion.isShow);\n });\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n });\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, questionGroup.value.isDisabled_default);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, questionGroup.value.isShow_default);\n });\n }\n });\n\n });\n }\n\n private getNextShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var nextShowedPages = showedPages.filter(x => x > currentPageIndex);\n if (nextShowedPages.length > 0) {\n return nextShowedPages[0];\n }\n return null;\n }\n\n private getPrevShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var prevShowedPages = showedPages.filter(x => x < currentPageIndex);\n if (prevShowedPages.length > 0) {\n return prevShowedPages[prevShowedPages.length - 1];\n }\n return null;\n }\n\n private addQuestionGroup(question: SurveyQuestionDto, pageIndex: number) {\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n })\n }\n }\n\n private loadQuestionUpdates(pageIndex: number) {\n this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {\n this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);\n this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);\n });\n }\n}\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\" [innerHTML]=\"item.questionGroupName\">\r\n </h2>\r\n <span class=\"group-sub-title \" [innerHTML]=\"item.questionGroupDescription\">\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\" [isArabicLang]=\"isArabicLang\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\"\r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">{{isArabicLang ? 'من' : 'of'}} </span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\n\n@Pipe({\n name: 'defaultQuestionAnswer'\n})\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\n if (value != null) {\n return value.find(x => x.QuestionId == questionId); \n }\n\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\n\n@Pipe({\n name: 'defaultQuestionAnswers'\n})\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\n if (value != null) {\n return value.filter(x => x.ParentQuestionId == questionId); \n }\n\n return [];\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\nimport { MaskedForMinMaxDirective } from './directives/masked-for-min-max.directive';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n QuestionDropdownMultiTemplateComponent,\n FilterQuestionPipe,\n DefaultQuestionAnswerPipe,\n DefaultQuestionAnswersPipe,\n TextBoxTypeAttrPipe,\n QuestionCascadeTemplateComponent,\n MaskedForMinMaxDirective\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgsFormsModule, NgSelectModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule,\n providers: [\n { provide: LibConfigService, useValue: config }\n ]\n }\n }\n\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n}\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i2.SurveyLibService","i5.MaskedForMinMaxDirective","i6.TextBoxTypeAttrPipe","Validators","i3.ApiService","i4","i5.QuestionDropdownTemplateComponent","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.QuestionDropdownMultiTemplateComponent","i12.QuestionCascadeTemplateComponent"],"mappings":"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"}
1
+ {"version":3,"file":"survery-lib.mjs","sources":["../../../projects/survery-lib/src/shared/enums/question-type.enum.ts","../../../projects/survery-lib/src/shared/enums/logic-action.enum.ts","../../../projects/survery-lib/src/lib/services/survey-lib.service.ts","../../../projects/survery-lib/src/shared/enums/Logic-Property.enum.ts","../../../projects/survery-lib/src/shared/enums/operator.enum.ts","../../../projects/survery-lib/src/lib/usecases/check-rule-exps.usecase.ts","../../../projects/survery-lib/src/shared/enums/input-type.enum.ts","../../../projects/survery-lib/src/lib/validators/phone.validator.ts","../../../projects/survery-lib/src/lib/directives/masked-for-min-max.directive.ts","../../../projects/survery-lib/src/lib/pipes/text-box-type-attr.pipe.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.ts","../../../projects/survery-lib/src/lib/components/question-text-template/question-text-template.component.html","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.ts","../../../projects/survery-lib/src/lib/components/question-radio-button-template/question-radio-button-template.component.html","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.ts","../../../projects/survery-lib/src/lib/components/question-check-box-template/question-check-box-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-template/question-dropdown-template.component.html","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.ts","../../../projects/survery-lib/src/lib/components/question-matrix-template/question-matrix-template.component.html","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.ts","../../../projects/survery-lib/src/lib/components/question-boolean-template/question-boolean-template.component.html","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.ts","../../../projects/survery-lib/src/lib/components/question-dropdown-multi-template/question-dropdown-multi-template.component.html","../../../projects/survery-lib/src/lib/services/lib-config.service.ts","../../../projects/survery-lib/src/lib/services/api.service.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.ts","../../../projects/survery-lib/src/lib/components/question-cascade-template/question-cascade-template.component.html","../../../projects/survery-lib/src/lib/survery-lib.component.ts","../../../projects/survery-lib/src/lib/survey-lib.component.html","../../../projects/survery-lib/src/lib/pipes/filter-question.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answer.pipe.ts","../../../projects/survery-lib/src/lib/pipes/default-question-answers.pipe.ts","../../../projects/survery-lib/src/lib/survery-lib.module.ts","../../../projects/survery-lib/src/shared/models/survery-question-result.model.ts","../../../projects/survery-lib/src/public-api.ts","../../../projects/survery-lib/src/survery-lib.ts"],"sourcesContent":["export enum QuestionTypeEnum {\r\n RadioButton = 1,\r\n CheckBox = 2,\r\n DropDown = 3,\r\n Boolean = 4,\r\n TextInput = 5,\r\n Matrix = 6,\r\n DropDownMulti = 7 ,\r\n Cascade = 8\r\n}","export enum LogicActionEnum {\r\n Show = 1,\r\n Hide = 2,\r\n Enable = 3,\r\n Disable = 4,\r\n SetAnswer = 5\r\n}","import { Injectable } from '@angular/core';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { SurveyDto } from '../../shared/dtos/survey.dto';\nimport { surveyAnswersSubjectDto } from '../../shared/dtos/survey-answers-subject.dto';\nimport { SurveyLanguageDto } from '../../shared/dtos/survey-language.dto';\nimport { v4 as guidGenerator } from 'uuid';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SurveyLibService {\n\n private surveyDataSubject: Subject<SurveyDto> = new Subject<SurveyDto>();\n private surveyAnswersSubject: Subject<surveyAnswersSubjectDto> = new Subject<surveyAnswersSubjectDto>();\n private reloadSurveySubject: Subject<string> = new Subject<string>();\n private questionIsShowSubject: Subject<{ questionId: number, isShow: boolean }> = new Subject<{ questionId: number, isShow: boolean }>();\n private questionIsDisabledSubject: Subject<{ questionId: number, isDisabled: boolean }> = new Subject<{ questionId: number, isDisabled: boolean }>();\n private addQuestionSubject: Subject<{ question: SurveyQuestionDto, pageIndex: number }> = new Subject<{ question: SurveyQuestionDto, pageIndex: number }>();\n private removeQuestionSubject: Subject<{ questionId: number }> = new Subject<{ questionId: number }>();\n\n get surveyDataObsrv() {\n return this.surveyDataSubject.asObservable();\n }\n\n get surveyAnswersObsrv() {\n return this.surveyAnswersSubject.asObservable();\n }\n\n get reloadSurveyObsrv() {\n return this.reloadSurveySubject.asObservable();\n }\n\n get questionIsShowObsrv() {\n return this.questionIsShowSubject.asObservable();\n }\n\n get questionIsDisabledObsrv() {\n return this.questionIsDisabledSubject.asObservable();\n }\n\n get addQuestionObsrv() {\n return this.addQuestionSubject.asObservable();\n }\n\n get removeQuestionObsrv() {\n return this.removeQuestionSubject.asObservable();\n }\n\n constructor() { }\n\n setSurveyData(survey: SurveyDto) {\n this.surveyDataSubject.next(survey);\n }\n\n setsurveyAnswers(model: surveyAnswersSubjectDto) {\n this.surveyAnswersSubject.next(model);\n }\n\n setQuestionIsShow(questionId: number, isShow: boolean) {\n this.questionIsShowSubject.next({ questionId, isShow });\n }\n\n setQuestionIsDisabled(questionId: number, isDisabled: boolean) {\n this.questionIsDisabledSubject.next({ questionId, isDisabled });\n }\n\n setReloadSurvey() {\n this.reloadSurveySubject.next(guidGenerator());\n }\n\n setAddQuestion(question: SurveyQuestionDto, pageIndex: number) {\n this.addQuestionSubject.next({ question, pageIndex });\n }\n\n setRemoveQuestion(questionId: number) {\n this.removeQuestionSubject.next({ questionId });\n }\n}\n","export enum LogicPropertyEnum{\r\n GreaterThan = 1 ,\r\n GreaterThanOrEqual = 2 ,\r\n LessThan = 3,\r\n LessThanOrEqual = 4 ,\r\n Equal = 5 ,\r\n NotEqual = 6,\r\n IsEmpty = 9 ,\r\n IsNotEmpty = 10 ,\r\n AnyOf =11,\r\n Then = 12\r\n}","export enum OperatorEnum {\r\n Or = 7,\r\n And =8\r\n}","import { Observable, of } from \"rxjs\";\r\nimport { UseCase } from \"./base/use-case\";\r\nimport { SurveyRuleDto } from \"../../shared/dtos/survey-rule.dto\";\r\nimport { Injectable } from \"@angular/core\";\r\nimport { QuestionChildOfSurveryLibFormInterface } from \"../../shared/form-interfaces/survery-lib.form-interface\";\r\nimport { RuleExpDto } from \"../../shared/dtos/rule-exp.dto\";\r\nimport { QuestionTypeEnum } from \"../../shared/enums/question-type.enum\";\r\nimport { LogicPropertyEnum } from \"../../shared/enums/Logic-Property.enum\";\r\nimport { OperatorEnum } from \"../../shared/enums/operator.enum\";\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class CheckRuleExpsUsecase implements UseCase<CheckRulesUsecaseModel, CheckRulesUsecaseResult>{\r\n\r\n constructor() {\r\n\r\n }\r\n\r\n execute(params: CheckRulesUsecaseModel): Observable<CheckRulesUsecaseResult> {\r\n\r\n var useCaseResult: CheckRulesUsecaseResult = {\r\n exprestionResultArr: []\r\n };\r\n\r\n params.ruleExps.forEach(ruleExp => {\r\n const index = params.questions.findIndex(x => x.questionId == ruleExp.questionId);\r\n var questionGroupValue = params.questions.at(index);\r\n\r\n var result: boolean;\r\n\r\n if (questionGroupValue.questionType == QuestionTypeEnum.TextInput) {\r\n result = this.checkRuleExpForAnswerText(ruleExp, questionGroupValue.answerText)\r\n } \r\n else if (questionGroupValue.questionType == QuestionTypeEnum.CheckBox || questionGroupValue.questionType == QuestionTypeEnum.DropDownMulti) {\r\n result = this.checkRuleExpForAnswerIdArr(ruleExp, questionGroupValue.answerIdArr);\r\n } \r\n else {\r\n result = this.checkRuleExpForAnswerId(ruleExp, questionGroupValue.answerId);\r\n }\r\n\r\n useCaseResult.exprestionResultArr.push(result);\r\n });\r\n\r\n console.log(`Questions not passed ${useCaseResult.exprestionResultArr.filter(x=>x==false).length}`);\r\n\r\n return of(useCaseResult);\r\n }\r\n\r\n private checkRuleExpForAnswerId(ruleExp: RuleExpDto, answerId: number) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId > answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.GreaterThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId >= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThan) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId < answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.LessThanOrEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId <= answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Equal) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId == answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.NotEqual) {\r\n\r\n ruleExp.ruleExpAnswers.forEach(answer => {\r\n var result = answerId != answer.answerId\r\n ruleExpResultArr.push(result);\r\n });\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answerId == null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answerId != null\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.AnyOf) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) > -1\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.Then) {\r\n\r\n var answerIdArr: number[] = ruleExp.ruleExpAnswers.map(x => x.answerId);\r\n var result = answerIdArr.findIndex(x => x == answerId) == -1\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerIdArr(ruleExp: RuleExpDto, answerIdArr: number[]) {\r\n var ruleExpResultArr: boolean[] = [];\r\n\r\n answerIdArr?.forEach(answer => {\r\n var isResult = this.checkRuleExpForAnswerId(ruleExp, answer);\r\n ruleExpResultArr.push(isResult);\r\n })\r\n\r\n if (ruleExpResultArr.length == 0) {\r\n return false;\r\n }\r\n else if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n private checkRuleExpForAnswerText(ruleExp: RuleExpDto, answer: string) {\r\n var ruleExpResultArr: boolean[] = [];\r\n if (ruleExp.logicPropertyId == LogicPropertyEnum.IsEmpty) {\r\n\r\n var result = answer == null || answer == ''\r\n ruleExpResultArr.push(result);\r\n\r\n } else if (ruleExp.logicPropertyId == LogicPropertyEnum.IsNotEmpty) {\r\n\r\n var result = answer != null && answer != ''\r\n ruleExpResultArr.push(result);\r\n\r\n }\r\n\r\n\r\n if (ruleExp.ruleExpAnswers.length == 1) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n }\r\n else if (ruleExp.opporator == OperatorEnum.Or) {\r\n return ruleExpResultArr.filter(x => x == true).length > 0\r\n } else {\r\n return ruleExpResultArr.filter(x => x == false).length == 0\r\n }\r\n }\r\n\r\n}\r\n\r\nexport class CheckRulesUsecaseModel {\r\n ruleExps: RuleExpDto[];\r\n questions: QuestionChildOfSurveryLibFormInterface[];\r\n currentPageIndex:number;\r\n}\r\n\r\nexport class CheckRulesUsecaseResult {\r\n exprestionResultArr: boolean[];\r\n}","export enum InputTypeEnum {\r\n Color = 1,\r\n Date = 2,\r\n DateTime = 3,\r\n Email = 4,\r\n Number = 5,\r\n Password = 6,\r\n Text = 7,\r\n Phone = 8\r\n}","import { AbstractControl } from \"@angular/forms\";\r\n\r\nexport function PhoneValidator(control: AbstractControl) {\r\n if (control.value) {\r\n var phoneCode = control.value.trim().slice(0, 2);\r\n var phoneLength = control.value.trim().length;\r\n if (phoneCode != \"05\" || phoneLength == 10) {\r\n return { invalidPhone: true };\r\n }\r\n }\r\n return null;\r\n}","import { Directive, ElementRef, HostListener } from '@angular/core';\ndeclare var $: any;\n@Directive({\n selector: '[libMaskedForMinMax]'\n})\nexport class MaskedForMinMaxDirective {\n\n constructor(private el: ElementRef) { }\n\n @HostListener('keypress', ['$event'])\n onKeyUp(event: KeyboardEvent) {\n const input = event.target as HTMLInputElement;\n if (input.type === 'number' || input.type === 'text') {\n var min = null;\n var max = null;\n if (input.getAttribute('min') !== null) {\n min = parseInt(input.getAttribute('min'));\n }\n if (input.getAttribute('max') !== null) {\n max = parseInt(input.getAttribute('max'));\n }\n\n var inputVlaue :any = input.value;\n // allowed key array\n var keyArr = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 'Backspace'];\n if (min != null || max != null) {\n if (keyArr.indexOf(event.key) == -1) {\n event.preventDefault();\n }\n\n if (input.selectionStart != null) {\n\n let firstPart = input.value.slice(0, input.selectionStart);\n let lastPart = input.value.slice(input.selectionEnd, input.value.length);\n\n inputVlaue = Number (firstPart + event.key + lastPart);\n }\n }\n\n if (min != null) {\n if (parseInt(inputVlaue) < min) {\n event.preventDefault();\n }\n }\n\n if (max !== null) {\n if (parseInt(inputVlaue) > max) {\n event.preventDefault();\n }\n }\n }\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { InputTypeEnum } from '../../shared/enums/input-type.enum';\n\n@Pipe({\n name: 'textBoxTypeAttr'\n})\nexport class TextBoxTypeAttrPipe implements PipeTransform {\n\n transform(value: InputTypeEnum, ...args: unknown[]): string {\n if (value != null) {\n if (value == InputTypeEnum.Color) {\n return 'color';\n } else if (value == InputTypeEnum.Date) {\n return 'date';\n }\n else if (value == InputTypeEnum.DateTime) {\n return 'datetime-local';\n }\n else if (value == InputTypeEnum.Email) {\n return 'email';\n }\n else if (value == InputTypeEnum.Number) {\n return 'number';\n }\n else if (value == InputTypeEnum.Password) {\n return 'password';\n }\n else if (value == InputTypeEnum.Phone) {\n return 'Phone';\n }\n }\n\n return 'text';\n }\n}\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup, FormControl as FormControlStack, ValidatorsModel } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { InputTypeEnum } from '../../../shared/enums/input-type.enum';\nimport { PhoneValidator } from '../../validators/phone.validator';\n\n@Component({\n selector: 'lib-question-text-template',\n templateUrl: './question-text-template.component.html',\n styleUrls: ['./question-text-template.component.scss']\n})\nexport class QuestionTextTemplateComponent implements OnInit {\n\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionTextTemplateFormInterface>;\n customPatterns: null;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionMinMaxIndicator() {\n const formValue = this.rForm.value;\n if (formValue.inputMax != null || formValue.inputMin != null) {\n\n if (formValue.inputMax != null && formValue.inputMin != null) {\n return this.isArabicLang ? ` يجب أن تكون القيمة المدخلة من ` + formValue.inputMin + ' إلى ' + formValue.inputMax\n : `the value entered must be from ${formValue.inputMin} to ${formValue.inputMax}`;\n }\n else if( formValue.inputMin != null) {\n return this.isArabicLang ? `يجب أن تكون أقل قيمة للمدخل تساوي ${formValue.inputMin}`\n :`the minimum value of the input must be ${formValue.inputMin}`;\n }\n else if( formValue.inputMax != null) {\n return this.isArabicLang ? `يجب أن تكون أكبر قيمة للمدخل تساوي ${formValue.inputMax}`\n :`the maximum value of the input must be ${formValue.inputMax}`;\n }\n }\n\n return null;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() isArabicLang: boolean = false;\n @Input() isTextArea: boolean = false;\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.surveyAnswers[0]?.answerId != null && value.surveyAnswers[0]?.answerId != undefined) {\n this.fCtrls.surveyAnswerId.setValue(value.surveyAnswers[0].answerId);\n this.fCtrls.inputTypeId.setValue(value.surveyAnswers[0].inputTypeId);\n }\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n\n if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Number) {\n if (value.surveyAnswers[0].inputMin != null) {\n this.fCtrls.inputMin.setValue(value.surveyAnswers[0].inputMin);\n this.fCtrls.answer.addValidators([Validators.min(value.surveyAnswers[0].inputMin)]);\n }\n\n if (value.surveyAnswers[0].inputMax != null) {\n this.fCtrls.inputMax.setValue(value.surveyAnswers[0].inputMax);\n this.fCtrls.answer.addValidators([Validators.max(value.surveyAnswers[0].inputMax)]);\n }\n\n if (value.surveyAnswers[0].inputMin != null || value.surveyAnswers[0].inputMax != null) {\n this.fCtrls.inputTypeId.setValue(InputTypeEnum.Text);\n }\n }\n else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Email) {\n this.fCtrls.answer.addValidators([Validators.email]);\n }\n else if (value.surveyAnswers[0].inputTypeId == InputTypeEnum.Phone) {\n this.fCtrls.answer.addValidators([PhoneValidator]);\n }\n\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n this.toggleEnableAnswer(value.isReadOnly);\n }\n\n @Input() set isDisabled(value: boolean) {\n this.toggleEnableAnswer(value);\n }\n\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionTextTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n surveyAnswerId: [null],\n answer: [null],\n isDisabled: [false],\n isShow: [true],\n inputTypeId: [null],\n inputMin: [null],\n inputMax: [null]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value,\n SurveyAnswerId: formValue.surveyAnswerId\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n this.fCtrls.answer.setValue(answer.AnswerText);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x => x.questionId == this.fCtrls.id.value)).subscribe(x => {\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n\n private toggleEnableAnswer(isReadOnly: boolean) {\n if (isReadOnly == true) {\n this.fCtrls.answer.disable()\n } else {\n this.fCtrls.answer.enable()\n }\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n}\n","<div class=\"quastion\" [formGroup]=\"rForm\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n <p *ngIf=\"questionMinMaxIndicator\" class=\"text-danger\">\n <small >{{questionMinMaxIndicator}}</small>\n </p> \n </h3>\n <div class=\"text-quastion\">\n <ng-container *ngIf=\"isTextArea == false else textAreaTemplate\">\n <input class=\"form-control\" libMaskedForMinMax [attr.min]=\"fCtrls.inputMin.value\"\n [attr.max]=\"fCtrls.inputMax.value\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\" [attr.type]=\"fCtrls.inputTypeId.value | textBoxTypeAttr\">\n </ng-container>\n <ng-template #textAreaTemplate>\n <textarea class=\"form-control\" rows=\"2\" [formControl]=\"convertToFormControl(fCtrls.answer)\"\n [disabled]=\"isDisabled\"></textarea>\n </ng-template>\n </div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionRadioButtonTemplateFormInterface,\r\n QuestionRadioButtonTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionTextTemplateFormInterface } from '../../../shared/form-interfaces/question-text-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-radio-button-template',\r\n templateUrl: './question-radio-button-template.component.html',\r\n styleUrls: ['./question-radio-button-template.component.scss']\r\n})\r\nexport class QuestionRadioButtonTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionRadioButtonTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionRadioButtonTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionRadioButtonTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionRadioButtonTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n console.log(value);\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv.pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionRadioButtonTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\" \n *ngFor=\"let item of fCtrls.answerArray.controls;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\" [disabled]=\"fCtrls.isDisabled.value\"\n name=\"{{elemId}}__radio-btn-option\" id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\" [innerHTML]=\"item.value.title\"></label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { FormControl, Validators } from '@angular/forms';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport {\r\n AnswerChildOfQuestionCheckBoxTemplateFormInterface,\r\n QuestionCheckBoxTemplateFormInterface\r\n} from '../../../shared/form-interfaces/question-check-box-template.form-interface';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-check-box-template',\r\n templateUrl: './question-check-box-template.component.html',\r\n styleUrls: ['./question-check-box-template.component.scss']\r\n})\r\nexport class QuestionCheckBoxTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionCheckBoxTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionCheckBoxTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionCheckBoxTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n isDisabled:[false],\r\n isShow : [true],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionCheckBoxTemplateFormInterface>([])\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\r\n .subscribe(answer => {\r\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\r\n this.fCtrls.answer.setValue(distinctArray);\r\n\r\n answer.AnswerIdArr.forEach(answerId => {\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answerId);\r\n if (groupIndex > -1) {\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n })\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n \r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface, event: Event) {\r\n var answerArr: number[] = this.fCtrls.answer.value || [];\r\n\r\n if ((event.target as any).checked == true) {\r\n answerArr.push(item.id);\r\n } else {\r\n answerArr = answerArr.filter(x => x != item.id);\r\n }\r\n\r\n answerArr = answerArr.length == 0 ? [] : answerArr;\r\n this.fCtrls.answer.setValue(answerArr);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n\n <div class=\"checkbox-button-quastion\">\n <div class=\"form-check check-box-form-check\" *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input type=\"checkbox\" class=\"form-check-input\" id=\"{{elemId}}__checkbox_{{i}}\" [disabled]=\"fCtrls.isDisabled.value\"\n (change)=\"onChangeAnswer(item.value ,$event)\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label \" for=\"{{elemId}}__checkbox_{{i}}\" [innerHTML]=\"item.value.title\"></label>\n </div>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionDropdownTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-template.form-interface';\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-dropdown-template',\n templateUrl: './question-dropdown-template.component.html',\n styleUrls: ['./question-dropdown-template.component.scss']\n})\nexport class QuestionDropdownTemplateComponent implements OnInit {\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropdownTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n }\n\n constructor(private _formBuilder: FormBuilder ,private _surveyLibService :SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropdownTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null] ,\n isDisabled:[false],\n isShow : [true]\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\n .subscribe(answer=>{\n this.fCtrls.answer.setValue(answer.AnswerId);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"surveyQuestion?.surveyAnswers\" bindValue=\"answerId\" bindLabel=\"answerTitle\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"false\">\n </ng-select>\n </div>\n</div>\n","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\nimport { FormControl, Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\nimport { SurveyQuestionGroupDto } from '../../../shared/dtos/survey-question-group.dto';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { SurveySubQuestionDto } from '../../../shared/dtos/survey-sub-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionMatrixTemplateFormInterface, SubQuestionChildOfQuestionMatrixTemplateFormInterface } from '../../../shared/form-interfaces/question-matrix-template.form-interface';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyLibService } from '../../services/survey-lib.service';\n\n@Component({\n selector: 'lib-question-matrix-template',\n templateUrl: './question-matrix-template.component.html',\n styleUrls: ['./question-matrix-template.component.scss']\n})\nexport class QuestionMatrixTemplateComponent implements OnInit {\n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionMatrixTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n typeId: value.questionTypeId ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveySubQuestions.forEach(x => {\n var group = this._formBuilder.group<SubQuestionChildOfQuestionMatrixTemplateFormInterface>({\n subQuestionId: [x.questionId],\n questionTitle: [x.questionTitle],\n answer: [null],\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n group.controls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: group.value.subQuestionId,\n Answer: group.value.answer,\n IsValid: group.controls.answer.valid\n });\n });\n\n this.fCtrls.subQuestionArray.push(group);\n });\n }\n\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionMatrixTemplateFormInterface>({\n id: [null],\n typeId: [null],\n isDisabled:[false],\n isShow : [true],\n subQuestionArray: this._formBuilder.array<SubQuestionChildOfQuestionMatrixTemplateFormInterface>([])\n }); \n }\n ngOnInit(): void {\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.ParentQuestionId == this.fCtrls.id.value)))\n .pipe(filter(x=>x.length > 0))\n .subscribe(answers=>{\n this.fCtrls.subQuestionArray.controls.forEach(group => {\n var answer = answers.find(x => x.QuestionId == group.value.subQuestionId);\n if (answer != null) {\n group.controls.answer.setValue(answer.AnswerId);\n }\n })\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n onChangeAnswer(question: SubQuestionChildOfQuestionMatrixTemplateFormInterface, answer: SurveyAnswerDto) {\n const index = this.fCtrls.subQuestionArray.value.findIndex(x => x.subQuestionId == question.subQuestionId);\n var subQuestionGroup = this.fCtrls.subQuestionArray.controls[index];\n\n subQuestionGroup.controls.answer.setValue(answer.answerId);\n\n this.emitter.emit({\n QuestionId: subQuestionGroup.value.subQuestionId,\n Answer: subQuestionGroup.value.answer,\n IsValid: subQuestionGroup.controls.answer.valid\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" style=\" border-collapse: collapse;\"\n[ngClass]=\"{'d-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"surveyQuestion?.questionTitle\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"matrix-question\" [formGroup]=\"rForm\">\n <div class=\"matrix-table\" formArrayName=\"subQuestionArray\">\n <div class=\"matrix-head-row\">\n <div class=\"matrix-col\">\n </div>\n <div class=\"matrix-col\" *ngFor=\"let answers of surveyQuestion?.surveyAnswers\" >\n <span [innerHTML]=\"answers.answerTitle\"></span>\n </div>\n </div>\n\n <div class=\"matrix-row\" [attr.id]=\"'question_'+questionGroup.value.subQuestionId\"\n *ngFor=\"let questionGroup of fCtrls.subQuestionArray.controls ;let subQuestionIndex = index\"\n [ngClass]=\"{'invalid-question': questionGroup.controls.answer.invalid}\">\n <div class=\"matrix-col matrix-sub-quastion\" [innerHTML]=\"questionGroup.value.questionTitle\">\n </div>\n <div class=\"matrix-col answer__container\" *ngFor=\"let answer of surveyQuestion?.surveyAnswers;let answerIndex = index\">\n <div class=\"form-check form-check-radio form-check-inline\">\n <input class=\"form-check-input\" type=\"radio\" name=\"{{elemId}}__radio-btn-option_{{subQuestionIndex}}\"\n id=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\" (change)=\"onChangeAnswer(questionGroup.value ,answer)\"\n value=\"{{answer.answerId}}\" [checked]=\"answer.answerId == questionGroup.value.answer\">\n <label class=\"form-check-label d-inline d-lg-none\" [innerHTML]=\"answer.answerTitle\"\n for=\"{{elemId}}__radio-btn_{{subQuestionIndex}}_{{answerIndex}}\"> </label>\n </div>\n </div>\n </div>\n\n </div>\n\n </div>\n</div>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { Validators, FormControl } from '@angular/forms';\r\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\r\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\r\nimport { QuestionRadioButtonTemplateFormInterface } from '../../../shared/form-interfaces/question-radio-button-template.form-interface';\r\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\r\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\r\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface, QuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\r\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\r\nimport { v4 as guidGenerator } from 'uuid';\r\nimport { SurveyAnswerDto } from '../../../shared/dtos/survey-answer.dto';\r\nimport { DefaultQuestionAnswerDto } from '../../../shared/dtos/default-question-answers.dto';\r\nimport { SurveyLibService } from '../../services/survey-lib.service';\r\n\r\n@Component({\r\n selector: 'lib-question-boolean-template',\r\n templateUrl: './question-boolean-template.component.html',\r\n styleUrls: ['./question-boolean-template.component.scss']\r\n})\r\nexport class QuestionBooleanTemplateComponent implements OnInit {\r\n elemId = guidGenerator() as string;\r\n surveyQuestion: SurveyQuestionDto;\r\n rForm: FormGroup<QuestionBooleanTemplateFormInterface>;\r\n\r\n get fCtrls() {\r\n return this.rForm.controls;\r\n }\r\n\r\n get questionTypeEnum() {\r\n return QuestionTypeEnum;\r\n }\r\n\r\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\r\n\r\n @Input() set setQuestion(value: SurveyQuestionDto) {\r\n this.surveyQuestion = value;\r\n this.rForm.patchValue({\r\n id: value.questionId,\r\n name: value.questionName,\r\n title: value.questionTitle,\r\n typeId: value.questionTypeId,\r\n description: value.questionDescription ,\r\n isDisabled: value.isReadOnly,\r\n isShow: value.isVisable\r\n });\r\n\r\n console.log(value.surveyAnswers);\r\n value.surveyAnswers.forEach(surveryAnswer => {\r\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionBooleanTemplateFormInterface>({\r\n id: [surveryAnswer.answerId],\r\n title: [surveryAnswer.answerTitle],\r\n isSelected: [false]\r\n }))\r\n })\r\n\r\n if (value.isRequired == true) {\r\n this.fCtrls.answer.addValidators([Validators.required]);\r\n this.fCtrls.answer.updateValueAndValidity();\r\n }\r\n }\r\n\r\n constructor(private _formBuilder: FormBuilder , private _surveyLibService:SurveyLibService) {\r\n this.rForm = this._formBuilder.group<QuestionBooleanTemplateFormInterface>({\r\n id: [null],\r\n name: [null],\r\n title: [null],\r\n typeId: [null],\r\n description: [null],\r\n answer: [null],\r\n answerArray: this._formBuilder.array<AnswerChildOfQuestionBooleanTemplateFormInterface>([]) ,\r\n isDisabled:[false],\r\n isShow : [true]\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\r\n const formValue = this.rForm.value;\r\n this.emitter.emit({\r\n QuestionId: formValue.id,\r\n IsValid: this.fCtrls.answer.valid,\r\n Answer: value\r\n })\r\n });\r\n\r\n this.fCtrls.answer.setValue(null);\r\n\r\n this._surveyLibService.surveyAnswersObsrv\r\n .pipe(map(x=> x.defaultAnswers.filter(x=>x.QuestionId == this.fCtrls.id.value)))\r\n .pipe(filter(x=>x.length > 0)).pipe(map(x=> x.at(0)))\r\n .subscribe(answer=>{\r\n this.fCtrls.answer.setValue(answer.AnswerId);\r\n\r\n const groupIndex = this.fCtrls.answerArray.value.findIndex(x => x.id == answer.AnswerId);\r\n if(groupIndex > -1){\r\n this.fCtrls.answerArray.at(groupIndex).controls.isSelected.setValue(true);\r\n }\r\n });\r\n\r\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isDisabled.setValue(x.isDisabled);\r\n });\r\n\r\n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\r\n this.fCtrls.isShow.setValue(x.isShow);\r\n });\r\n }\r\n\r\n onChangeAnswer(item: AnswerChildOfQuestionBooleanTemplateFormInterface) {\r\n this.fCtrls.answer.setValue(item.id);\r\n }\r\n\r\n convertToFormControl(element: any) {\r\n return element as FormControl;\r\n }\r\n}\r\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\"\n [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"radio-button-quastion\">\n <div class=\"form-check form-check-radio form-check-inline\"\n *ngFor=\"let item of fCtrls.answerArray.controls ;let i = index\">\n <input class=\"form-check-input\" type=\"radio\" (change)=\"onChangeAnswer(item.value)\"\n [disabled]=\"fCtrls.isDisabled.value\" name=\"{{elemId}}__radio-btn-option\"\n id=\"{{elemId}}__radio-btn_{{i}}\" [checked]=\"item.value.isSelected == true? true : null\">\n <label class=\"form-check-label\" for=\"{{elemId}}__radio-btn_{{i}}\">{{item.value.title}}</label>\n </div>\n </div>\n</div>","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { FormControl } from '@angular/forms';\nimport { FormGroup, Validators , FormBuilder} from '@ng-stack/forms';\nimport { QuestionCheckBoxTemplateFormInterface } from '../../../shared/form-interfaces/question-check-box-template.form-interface';\nimport { debounceTime, distinctUntilChanged, filter, map } from 'rxjs';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { v4 as guidGenerator } from 'uuid';\nimport { AnswerChildOfQuestionDropDownMultiTemplateFormInterface, QuestionDropDownMultiTemplateFormInterface } from '../../../shared/form-interfaces/question-dropdown-multi-template.form-interface';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { AnswerChildOfQuestionBooleanTemplateFormInterface } from '../../../shared/form-interfaces/question-boolean-template.form-interface';\n\n@Component({\n selector: 'lib-question-dropdown-multi-template',\n templateUrl: './question-dropdown-multi-template.component.html',\n styleUrls: ['./question-dropdown-multi-template.component.scss']\n})\nexport class QuestionDropdownMultiTemplateComponent {\n \n elemId = guidGenerator() as string;\n surveyQuestion: SurveyQuestionDto;\n rForm: FormGroup<QuestionDropDownMultiTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.surveyQuestion = value;\n this.rForm.patchValue({\n id: value.questionId,\n name: value.questionName,\n title: value.questionTitle,\n typeId: value.questionTypeId,\n description: value.questionDescription ,\n isDisabled: value.isReadOnly,\n isShow: value.isVisable\n });\n\n value.surveyAnswers.forEach(surveryAnswer => {\n this.fCtrls.answerArray.push(this._formBuilder.group<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>({\n id: [surveryAnswer.answerId],\n title: [surveryAnswer.answerTitle],\n isSelected: [false]\n }))\n })\n\n if (value.isRequired == true) {\n this.fCtrls.answer.addValidators([Validators.required]);\n this.fCtrls.answer.updateValueAndValidity();\n }\n\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService) {\n this.rForm = this._formBuilder.group<QuestionDropDownMultiTemplateFormInterface>({\n id: [null],\n name: [null],\n title: [null],\n typeId: [null],\n description: [null],\n answer: [null],\n isDisabled:[false],\n isShow : [true],\n answerArray: this._formBuilder.array<AnswerChildOfQuestionDropDownMultiTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.answer.valueChanges.pipe().pipe(debounceTime(200)).subscribe(value => {\n const formValue = this.rForm.value;\n this.emitter.emit({\n QuestionId: formValue.id,\n IsValid: this.fCtrls.answer.valid,\n Answer: value\n })\n });\n\n this.fCtrls.answer.setValue(null);\n\n this._surveyLibService.surveyAnswersObsrv\n .pipe(map(x => x.defaultAnswers.filter(x => x.QuestionId == this.fCtrls.id.value)))\n .pipe(filter(x => x.length > 0)).pipe(map(x => x.at(0)))\n .subscribe(answer => {\n const distinctArray = answer.AnswerIdArr.filter((n, i) => answer.AnswerIdArr.indexOf(n) === i);\n this.fCtrls.answer.setValue(distinctArray);\n });\n\n this._surveyLibService.questionIsDisabledObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isDisabled.setValue(x.isDisabled);\n });\n \n this._surveyLibService.questionIsShowObsrv.pipe(filter(x=>x.questionId == this.fCtrls.id.value)).subscribe(x=>{\n this.fCtrls.isShow.setValue(x.isShow);\n });\n }\n\n convertToFormControl(element: any) {\n return element as FormControl;\n }\n}\n","<div class=\"quastion\" [attr.id]=\"'question_'+fCtrls.id.value\" [ngClass]=\"{'invalid-question': fCtrls.answer.invalid , 'd-none':fCtrls.isShow.value != true}\">\n <h3 class=\"quastion-title \">\n <span [innerHTML]=\"fCtrls.title.value\"></span>\n <span style=\"color: red;\" *ngIf=\"surveyQuestion.isRequired\">*</span>\n </h3>\n <div class=\"text-quastion text-quastion__dropdown\">\n <ng-select [items]=\"this.fCtrls.answerArray.value\" bindValue=\"id\" bindLabel=\"title\" class=\"form-control\"\n [formControl]=\"convertToFormControl(fCtrls.answer)\" [disabled]=\"fCtrls.isDisabled.value\" [multiple]=\"true\">\n </ng-select>\n </div>\n</div>\n","import { InjectionToken } from \"@angular/core\";\r\n\r\nexport interface LibConfigModel{\r\n apiUrl: string;\r\n}\r\n\r\nexport const LibConfigService = new InjectionToken<LibConfigModel>('LibConfig');","import { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { LibConfigService, LibConfigModel } from './lib-config.service';\nimport { Observable } from 'rxjs';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { DtoBase } from '../../shared/dtos/base/dto.base';\nimport { GetNextQuestionResult } from '../../shared/results/api.result';\ndeclare var $: any;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ApiService {\n private url;\n\n constructor(private _HttpClient: HttpClient,\n @Inject(LibConfigService) private _LibConfigService: LibConfigModel) {\n this.url = _LibConfigService.apiUrl;\n }\n\n getNextQuestion(filter: { answerId, surveyLanguageId, applicantKey, isPre }): Observable<GetNextQuestionResult> {\n var queryString = $.param(filter);\n return this._HttpClient.get<GetNextQuestionResult>(`${this.url}/GetNextQuestion?${queryString}`,\n { headers: new HttpHeaders({ 'disable-error-alert': 'true' }) });\n }\n}\n","import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { Validators } from '@angular/forms';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionCascadeTemplateFormInterface, QuestionGroupChildOfQuestionCascadeTemplateFormInterface } from '../../../shared/form-interfaces/question-cascade.form-interface';\nimport { SurveyQuestionDto } from '../../../shared/dtos/survey-question.dto';\nimport { QuestionTypeEnum } from '../../../shared/enums/question-type.enum';\nimport { QuestionAnswerModel } from '../../../shared/models/question-answer.model';\nimport { SurveyLibService } from '../../services/survey-lib.service';\nimport { ApiService } from '../../services/api.service';\n\n@Component({\n selector: 'lib-question-cascade-template',\n templateUrl: './question-cascade-template.component.html',\n styleUrls: ['./question-cascade-template.component.scss']\n})\nexport class QuestionCascadeTemplateComponent {\n surveyQuestionArr: SurveyQuestionDto[] = [];\n rForm: FormGroup<QuestionCascadeTemplateFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get questionFormArray() {\n return this.fCtrls.questionArr\n }\n\n @Output() emitter = new EventEmitter<QuestionAnswerModel>();\n\n @Input() pageIndex: number = null;\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n\n @Input() set setQuestion(value: SurveyQuestionDto) {\n this.setQuestions(value);\n }\n\n constructor(private _formBuilder: FormBuilder, private _surveyLibService: SurveyLibService,\n private _ApiService: ApiService) {\n this.rForm = this._formBuilder.group<QuestionCascadeTemplateFormInterface>({\n questionArr: this._formBuilder.array<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>([])\n });\n }\n\n ngOnInit(): void {\n this.fCtrls.questionArr.statusChanges.subscribe(v => {\n console.log(v);\n })\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n if (this.surveyQuestionArr.length > 1) {\n const surveyQuestionIndex = this.surveyQuestionArr.findIndex(c => c.questionId == model.QuestionId);\n\n var deletedQuestions = []\n for (let index = surveyQuestionIndex + 1; index < this.surveyQuestionArr.length; index++) {\n deletedQuestions.push(index);\n }\n\n var sortDeletedArr = deletedQuestions.sort((a, b) => (a > b ? -1 : 1));\n for (let index = 0; index < sortDeletedArr.length; index++) {\n const elementIndex = sortDeletedArr[index];\n const questionId = this.surveyQuestionArr[elementIndex].questionId;\n this._surveyLibService.setRemoveQuestion(questionId);\n this.surveyQuestionArr = this.surveyQuestionArr.filter(x=>x.questionId != questionId);\n this.questionFormArray.removeAt(elementIndex);\n }\n }\n\n if (model.Answer) {\n this._ApiService.getNextQuestion({\n answerId: model.Answer,\n applicantKey: this.applicantKey,\n isPre: this.isPre,\n surveyLanguageId: this.surveyLanguageId\n }).subscribe(res => {\n if (res.errors.filter(x => x.code == 17).length == 0) {\n this.setQuestions(res);\n this._surveyLibService.setAddQuestion(res, this.pageIndex);\n }\n });\n }\n\n this.emitter.emit(model);\n }\n\n identify(index, item: QuestionGroupChildOfQuestionCascadeTemplateFormInterface) {\n return item.id;\n }\n\n private setQuestions(value: SurveyQuestionDto) {\n this.surveyQuestionArr.push(value);\n\n var group = this._formBuilder.group<QuestionGroupChildOfQuestionCascadeTemplateFormInterface>({\n id: [value.questionId],\n typeId: [value.questionTypeId],\n answer: null\n });\n\n if (value.isRequired == true) {\n group.controls.answer.addValidators([Validators.required]);\n group.controls.answer.updateValueAndValidity();\n }\n\n this.fCtrls.questionArr.push(group);\n }\n\n}\n","<ng-container *ngFor=\"let item of questionFormArray.value ; trackBy:identify ; let i = index\">\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"surveyQuestionArr[i]\"\n (emitter)=\"onUpdateAnswer($event)\" >\n </lib-question-dropdown-template>\n</ng-container>","import { AfterViewInit, Component, EventEmitter, Input, OnInit, Output, QueryList, ViewChildren } from '@angular/core';\nimport { SurveyLibService } from './services/survey-lib.service';\nimport { SurveyDto } from '../shared/dtos/survey.dto';\nimport { FormBuilder, FormGroup } from '@ng-stack/forms';\nimport { QuestionChildOfSurveryLibFormInterface, RuleQuestionChildOfSurveryLibFormInterface, SurveryLibFormInterface } from '../shared/form-interfaces/survery-lib.form-interface';\nimport { QuestionTypeEnum } from '../shared/enums/question-type.enum';\nimport { v4 as guidGenerator } from 'uuid';\nimport { QuestionAnswerModel } from '../shared/models/question-answer.model';\nimport { Observable, debounceTime, distinctUntilChanged, of } from 'rxjs';\nimport { LogicPropertyEnum } from '../shared/enums/Logic-Property.enum';\nimport { RuleExpDto } from '../shared/dtos/rule-exp.dto';\nimport { OperatorEnum } from '../shared/enums/operator.enum';\nimport { LogicActionEnum } from '../shared/enums/logic-action.enum';\nimport { CheckRuleExpsUsecase } from './usecases/check-rule-exps.usecase';\nimport { SurveyQuestionResult } from '../shared/models/survery-question-result.model';\nimport { DefaultQuestionAnswerDto } from '../shared/dtos/default-question-answers.dto';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { SurveyLanguageDto } from '../shared/dtos/survey-language.dto';\nimport { SurveySectionEnum } from '../shared/enums/survey-section.enum';\nimport { Validators } from '@angular/forms';\nimport { SurveyQuestionDto } from '../shared/dtos/survey-question.dto';\ndeclare var $: any;\n\n@Component({\n selector: 'lib-survery-lib',\n templateUrl: './survey-lib.component.html',\n styleUrls: ['./survey-lib.component.scss']\n})\nexport class SurveryLibComponent implements OnInit, AfterViewInit {\n\n surveryLibraryDivId = guidGenerator() as string;\n reloadDefaultAnswerId = guidGenerator() as string;\n surveyData: SurveyDto;\n defaultAnswers: DefaultQuestionAnswerDto[];\n rForm: FormGroup<SurveryLibFormInterface>;\n\n get fCtrls() {\n return this.rForm.controls;\n }\n\n get questionTypeEnum() {\n return QuestionTypeEnum;\n }\n\n get isFirstPage() {\n if (this.showedSurveyPages.length > 0) {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == 0;\n }\n return true;\n }\n\n get isLastPage() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) == (this.showedSurveyPages.length - 1)\n }\n\n get showedSurveyPages(): number[] {\n var pageArr: number[] = [];\n for (let index = 0; index < this.fCtrls.questionArray.value.length; index++) {\n const question = this.fCtrls.questionArray.value[index];\n if (question.isShow == true && (question.questionType != this.questionTypeEnum.Matrix || question.isMatrixGroup == true)) {\n pageArr.push(question.surveyPageIndex);\n }\n }\n\n const distinctArray = pageArr.filter((n, i) => pageArr.indexOf(n) === i);\n\n return distinctArray.sort((a, b) => a - b);\n }\n\n get curruntShowedSurveyPages() {\n return this.showedSurveyPages.findIndex(x => x == this.fCtrls.currentPageIndex.value) + 1;\n }\n\n get surveyResult(): { answers: SurveyQuestionResult[], currentPageIndex: number } {\n return {\n currentPageIndex: this.fCtrls.currentPageIndex.value,\n answers:\n this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n })\n }\n }\n\n @Input() isPre: boolean = false;\n @Input() surveyLanguageId: number = null;\n @Input() applicantKey: string = null;\n @Input() isArabicLang: boolean = false;\n\n @Output() surveyResultEmit = new EventEmitter<SurveyQuestionResult[]>();\n @Output() selectLanguageEmit = new EventEmitter<string>();\n\n constructor(private _surveyLibService: SurveyLibService\n , private _formBuilder: FormBuilder, private _checkRuleExpsUsecase: CheckRuleExpsUsecase) {\n\n this.rForm = this._formBuilder.group<SurveryLibFormInterface>({\n currentPageIndex: [0],\n questionArray: this._formBuilder.array<QuestionChildOfSurveryLibFormInterface>([]),\n ruleQuestionArray: this._formBuilder.array<RuleQuestionChildOfSurveryLibFormInterface>([])\n });\n }\n ngAfterViewInit(): void {\n }\n\n ngOnInit(): void {\n this._surveyLibService.surveyDataObsrv.pipe(debounceTime(300), distinctUntilChanged()).subscribe(survey => {\n this.fCtrls.questionArray.clear();\n this.fCtrls.ruleQuestionArray.clear();\n this.surveyData = null;\n\n if (survey != null) {\n this.surveyData = survey;\n this.loadQuestions(survey);\n }\n });\n\n this._surveyLibService.addQuestionObsrv.subscribe(res => {\n this.addQuestionGroup(res.question, res.pageIndex);\n });\n\n this._surveyLibService.removeQuestionObsrv.subscribe(res => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == res.questionId);\n this.fCtrls.questionArray.removeAt(index);\n });\n\n }\n\n onPaggingNext() {\n var invalidRecords = this.haveInValidateQuestions();\n if (invalidRecords.length == 0) {\n\n const nextPageIndex = this.getNextShowedPage();\n\n if (nextPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(nextPageIndex);\n setTimeout(() => {\n this.loadQuestionUpdates(nextPageIndex);\n });\n\n $('html, body').animate({\n scrollTop: $(`#survery-card-${this.surveryLibraryDivId}`).offset().top - 120\n }, 2000);\n\n } else {\n var questionArr = this.fCtrls.questionArray.value.filter(x => x.isMatrixGroup != true).map(x => {\n return {\n SurveyPageIndex: x.surveyPageIndex,\n QuestionId: x.questionId,\n QuestionType: x.questionType,\n AnswerId: x.answerId,\n AnswerText: x.answerText,\n AnswerIdArr: x.answerIdArr\n } as SurveyQuestionResult\n });\n this.surveyResultEmit.emit(questionArr);\n }\n } else {\n var firstQuestion = invalidRecords[0];\n $('html, body').animate({\n scrollTop: $(`#question_${firstQuestion.questionId}`).offset().top - 120\n }, 2000);\n }\n }\n\n onPaggingBack() {\n const prevPageIndex = this.getPrevShowedPage();\n if (prevPageIndex != null) {\n this.fCtrls.currentPageIndex.setValue(prevPageIndex);\n }\n }\n\n onUpdateAnswers(model: QuestionAnswerModel[]) {\n model.forEach(elem => {\n this.onUpdateAnswer(elem);\n });\n }\n\n onUpdateAnswer(model: QuestionAnswerModel) {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == model.QuestionId);\n if (index > -1) {\n var questionGroup = this.fCtrls.questionArray.controls[index];\n questionGroup.controls.isValid.setValue(model.IsValid);\n\n if (questionGroup.value.questionType == this.questionTypeEnum.TextInput) {\n questionGroup.patchValue({\n answerId: model.SurveyAnswerId,\n answerText: model.Answer\n });\n } else if (questionGroup.value.questionType == this.questionTypeEnum.CheckBox || questionGroup.value.questionType == this.questionTypeEnum.DropDownMulti) {\n questionGroup.controls.answerIdArr.setValue(model.Answer);\n } else {\n questionGroup.controls.answerId.setValue(model.Answer);\n }\n\n if (this.fCtrls.ruleQuestionArray.value.findIndex(x => x.questionId == model.QuestionId) > -1) {\n this.checkRules()\n }\n }\n }\n\n private loadQuestions(survey: SurveyDto) {\n survey.surveyPages.forEach((page, pageIndex) => {\n\n page.surveyQuestionGroups.forEach(group => {\n\n group.surveyQuestions.forEach(question => {\n this.addQuestionGroup(question, pageIndex);\n });\n });\n });\n\n survey.surveyRules.forEach(rule => {\n rule.ruleExps.forEach(ruleExp => {\n this.fCtrls.ruleQuestionArray.push(this._formBuilder.group<RuleQuestionChildOfSurveryLibFormInterface>({\n questionId: ruleExp.questionId\n }));\n });\n })\n }\n\n private haveInValidateQuestions() {\n const currentPageIndex = this.fCtrls.currentPageIndex.value;\n var invalidRecords = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == currentPageIndex\n && x.isRequired == true && x.isValid != true && x.isDisabled == false && x.isShow == true && x.isMatrixGroup != true);\n\n if (invalidRecords.length > 0) {\n $(`#survey-page_${currentPageIndex}`).addClass('survey-page_submitted');\n }\n\n return invalidRecords;\n }\n\n private checkRules() {\n\n this.surveyData.surveyRules.forEach(rule => {\n this._checkRuleExpsUsecase.execute({\n ruleExps: rule.ruleExps,\n questions: this.fCtrls.questionArray.value ,\n currentPageIndex : this.fCtrls.currentPageIndex.value\n }).subscribe(result => {\n\n var isPassed = result.exprestionResultArr.filter(x => x == false).length == 0;\n if (isPassed) {\n\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n if (rule.logicActionId == LogicActionEnum.Show) {\n questionGroup.controls.isShow.setValue(true);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.Hide) {\n questionGroup.controls.isShow.setValue(false);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Enable) {\n questionGroup.controls.isDisabled.setValue(false);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, false);\n } else if (rule.logicActionId == LogicActionEnum.Disable) {\n questionGroup.controls.isDisabled.setValue(true);\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, true);\n } else if (rule.logicActionId == LogicActionEnum.SetAnswer) {\n\n }\n\n if (questionGroup.value.questionType == QuestionTypeEnum.Matrix && questionGroup.value.isMatrixGroup == true) {\n var subQuestions = this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == questionGroup.value.surveyPageIndex && x.isMatrixGroup == false);\n subQuestions.forEach(subQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == subQuestion.questionId);\n var subQuestionGroup = this.fCtrls.questionArray.at(index);\n\n subQuestionGroup.patchValue({\n isShow: questionGroup.value.isShow,\n isDisabled: questionGroup.value.isDisabled\n });\n\n this._surveyLibService.setQuestionIsDisabled(subQuestion.questionId, subQuestion.isDisabled);\n this._surveyLibService.setQuestionIsShow(subQuestion.questionId, subQuestion.isShow);\n });\n }\n\n });\n }\n else {\n rule.ruleResultQuestions.forEach(resultQuestion => {\n const index = this.fCtrls.questionArray.value.findIndex(x => x.questionId == resultQuestion.questionId);\n var questionGroup = this.fCtrls.questionArray.at(index);\n questionGroup.patchValue({\n isShow: questionGroup.value.isShow_default,\n isDisabled: questionGroup.value.isDisabled_default\n });\n this._surveyLibService.setQuestionIsDisabled(questionGroup.value.questionId, questionGroup.value.isDisabled_default);\n this._surveyLibService.setQuestionIsShow(questionGroup.value.questionId, questionGroup.value.isShow_default);\n });\n }\n });\n\n });\n }\n\n private getNextShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var nextShowedPages = showedPages.filter(x => x > currentPageIndex);\n if (nextShowedPages.length > 0) {\n return nextShowedPages[0];\n }\n return null;\n }\n\n private getPrevShowedPage() {\n var currentPageIndex = this.fCtrls.currentPageIndex.value;\n var showedPages = this.showedSurveyPages;\n var prevShowedPages = showedPages.filter(x => x < currentPageIndex);\n if (prevShowedPages.length > 0) {\n return prevShowedPages[prevShowedPages.length - 1];\n }\n return null;\n }\n\n private addQuestionGroup(question: SurveyQuestionDto, pageIndex: number) {\n if (question.questionTypeId != 6) {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n } else {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [question.questionId],\n questionType: [question.questionTypeId],\n isMatrixGroup: [true],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable],\n }));\n\n question.surveySubQuestions.forEach(subQuestion => {\n this.fCtrls.questionArray.push(this._formBuilder.group<QuestionChildOfSurveryLibFormInterface>({\n surveyPageIndex: pageIndex,\n questionId: [subQuestion.questionId],\n questionType: [subQuestion.questionTypeId],\n isMatrixGroup: [false],\n answerId: [null],\n answerIdArr: [null],\n answerText: [null],\n isRequired: [question.isRequired],\n isValid: [null],\n isDisabled: [question.isReadOnly],\n isShow: [question.isVisable],\n isDisabled_default: [question.isReadOnly],\n isShow_default: [question.isVisable]\n }));\n })\n }\n }\n\n private loadQuestionUpdates(pageIndex: number) {\n this.fCtrls.questionArray.value.filter(x => x.surveyPageIndex == pageIndex).forEach(question => {\n this._surveyLibService.setQuestionIsShow(question.questionId, question.isShow);\n this._surveyLibService.setQuestionIsDisabled(question.questionId, question.isDisabled);\n });\n }\n}\n","<div id=\"survery-card-{{surveryLibraryDivId}}\" class=\"survay-card\">\r\n <div *ngFor=\"let surveyPage of surveyData?.surveyPages; let surveyPageIndex = index\"\r\n [attr.id]=\"'survey-page_'+surveyPageIndex\" [ngClass]=\"{'d-none': surveyPageIndex != fCtrls.currentPageIndex.value}\">\r\n <ng-container *ngFor=\"let item of surveyPage.surveyQuestionGroups\">\r\n <div class=\"survay-card\">\r\n <div class=\"survay-card-body\">\r\n <div class=\"survay-group\">\r\n <div class=\"title\">\r\n <h2 class=\"group-title\" [innerHTML]=\"item.questionGroupName\">\r\n </h2>\r\n <span class=\"group-sub-title \" [innerHTML]=\"item.questionGroupDescription\">\r\n </span>\r\n </div>\r\n <ng-container *ngFor=\"let question of item.surveyQuestions\">\r\n <lib-question-boolean-template #questionBooleanTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Boolean\">\r\n </lib-question-boolean-template>\r\n\r\n <lib-question-text-template #questionTextTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.TextInput\"\r\n [isTextArea]=\"question.isAdvanceTextArea\" [isArabicLang]=\"isArabicLang\"></lib-question-text-template>\r\n\r\n <lib-question-radio-button-template #questionRadioButtonTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.RadioButton\">\r\n </lib-question-radio-button-template>\r\n\r\n <lib-question-dropdown-template #questionDropdownTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDown\"></lib-question-dropdown-template>\r\n\r\n <lib-question-dropdown-multi-template [setQuestion]=\"question\" (emitter)=\"onUpdateAnswer($event)\"\r\n *ngIf=\"question.questionTypeId == questionTypeEnum.DropDownMulti\">\r\n </lib-question-dropdown-multi-template>\r\n\r\n <lib-question-check-box-template #questionCheckBoxTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.CheckBox\">\r\n </lib-question-check-box-template>\r\n\r\n <lib-question-matrix-template #questionMatrixTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Matrix\">\r\n </lib-question-matrix-template>\r\n\r\n <lib-question-cascade-template #questionCascadeTemplate [setQuestion]=\"question\"\r\n (emitter)=\"onUpdateAnswer($event)\" *ngIf=\"question.questionTypeId == questionTypeEnum.Cascade\"\r\n [applicantKey]=\"applicantKey\" [isPre]=\"isPre\" [surveyLanguageId]=\"surveyLanguageId\"\r\n [pageIndex]=\"surveyPageIndex\"></lib-question-cascade-template>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"survay-card-footr\" *ngIf=\"surveyData != null\">\r\n <div class=\"container\" style=\" justify-content: start;\">\r\n <div class=\"survay-pagination fw-bold\">\r\n <span>{{curruntShowedSurveyPages}}</span>\r\n <span class=\"ms-2 me-2\">{{isArabicLang ? 'من' : 'of'}} </span>\r\n <span>{{showedSurveyPages?.length}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Pipe, PipeTransform } from '@angular/core';\nimport { SurveyQuestionDto } from '../../shared/dtos/survey-question.dto';\nimport { QuestionChildOfSurveryLibFormInterface } from '../../shared/form-interfaces/survery-lib.form-interface';\n\n@Pipe({\n name: 'filterQuestion'\n})\nexport class FilterQuestionPipe implements PipeTransform {\n\n transform(value: SurveyQuestionDto, questionArr: QuestionChildOfSurveryLibFormInterface[]): QuestionChildOfSurveryLibFormInterface {\n return questionArr.find(x=>x.questionId == value.questionId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\nimport { QuestionTypeEnum } from '../../shared/enums/question-type.enum';\n\n@Pipe({\n name: 'defaultQuestionAnswer'\n})\nexport class DefaultQuestionAnswerPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: number , reloadId): DefaultQuestionAnswerDto {\n if (value != null) {\n return value.find(x => x.QuestionId == questionId); \n }\n\n return null;\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { DefaultQuestionAnswerDto } from '../../shared/dtos/default-question-answers.dto';\n\n@Pipe({\n name: 'defaultQuestionAnswers'\n})\nexport class DefaultQuestionAnswersPipe implements PipeTransform {\n\n transform(value: DefaultQuestionAnswerDto[], questionId: any , reloadId): DefaultQuestionAnswerDto[] {\n if (value != null) {\n return value.filter(x => x.ParentQuestionId == questionId); \n }\n\n return [];\n }\n\n}\n","import { ModuleWithProviders, NgModule } from '@angular/core';\nimport { SurveryLibComponent } from './survery-lib.component';\nimport { CommonModule } from '@angular/common';\nimport { HttpClientModule } from '@angular/common/http';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport { NgsFormsModule } from '@ng-stack/forms';\nimport { QuestionTextTemplateComponent } from './components/question-text-template/question-text-template.component';\nimport { QuestionRadioButtonTemplateComponent } from './components/question-radio-button-template/question-radio-button-template.component';\nimport { QuestionCheckBoxTemplateComponent } from './components/question-check-box-template/question-check-box-template.component';\nimport { QuestionDropdownTemplateComponent } from './components/question-dropdown-template/question-dropdown-template.component';\nimport { QuestionMatrixTemplateComponent } from './components/question-matrix-template/question-matrix-template.component';\nimport { QuestionBooleanTemplateComponent } from './components/question-boolean-template/question-boolean-template.component';\nimport { FilterQuestionPipe } from './pipes/filter-question.pipe';\nimport { DefaultQuestionAnswerPipe } from './pipes/default-question-answer.pipe';\nimport { DefaultQuestionAnswersPipe } from './pipes/default-question-answers.pipe';\nimport { QuestionDropdownMultiTemplateComponent } from './components/question-dropdown-multi-template/question-dropdown-multi-template.component';\nimport { NgSelectModule } from '@ng-select/ng-select';\nimport { TextBoxTypeAttrPipe } from './pipes/text-box-type-attr.pipe';\nimport { QuestionCascadeTemplateComponent } from './components/question-cascade-template/question-cascade-template.component';\nimport { LibConfigModel, LibConfigService } from './services/lib-config.service';\nimport { MaskedForMinMaxDirective } from './directives/masked-for-min-max.directive';\n\n\n@NgModule({\n declarations: [\n SurveryLibComponent,\n QuestionTextTemplateComponent,\n QuestionRadioButtonTemplateComponent,\n QuestionCheckBoxTemplateComponent,\n QuestionDropdownTemplateComponent,\n QuestionMatrixTemplateComponent,\n QuestionBooleanTemplateComponent,\n QuestionDropdownMultiTemplateComponent,\n FilterQuestionPipe,\n DefaultQuestionAnswerPipe,\n DefaultQuestionAnswersPipe,\n TextBoxTypeAttrPipe,\n QuestionCascadeTemplateComponent,\n MaskedForMinMaxDirective\n ],\n imports: [\n CommonModule, HttpClientModule, ReactiveFormsModule, FormsModule, NgsFormsModule, NgSelectModule\n ],\n exports: [\n SurveryLibComponent\n ]\n})\nexport class SurveryLibModule {\n\n public static forRoot(config: LibConfigModel): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule,\n providers: [\n { provide: LibConfigService, useValue: config }\n ]\n }\n }\n\n public static forChild(): ModuleWithProviders<SurveryLibModule> {\n return {\n ngModule: SurveryLibModule\n }\n }\n}\n","export class SurveyQuestionResult{\r\n SurveyPageIndex:number;\r\n QuestionId;\r\n QuestionType;\r\n AnswerId;\r\n AnswerIdArr;\r\n AnswerText;\r\n}","/*\n * Public API Surface of survery-lib\n */\n\nexport * from './lib/survery-lib.component';\nexport * from './lib/services/survey-lib.service';\nexport * from './lib/survery-lib.module';\nexport * from './shared/models/survery-question-result.model'\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["guidGenerator","i2.SurveyLibService","i5.MaskedForMinMaxDirective","i6.TextBoxTypeAttrPipe","Validators","i3.ApiService","i4","i5.QuestionDropdownTemplateComponent","i1.SurveyLibService","i2","i3.CheckRuleExpsUsecase","i5.QuestionTextTemplateComponent","i6.QuestionRadioButtonTemplateComponent","i7.QuestionCheckBoxTemplateComponent","i8.QuestionDropdownTemplateComponent","i9.QuestionMatrixTemplateComponent","i10.QuestionBooleanTemplateComponent","i11.QuestionDropdownMultiTemplateComponent","i12.QuestionCascadeTemplateComponent"],"mappings":";;;;;;;;;;;;;;;AAAA,IAAY,gBASX,CAAA;AATD,CAAA,UAAY,gBAAgB,EAAA;AACxB,IAAA,gBAAA,CAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,gBAAA,CAAA,gBAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACb,IAAA,gBAAA,CAAA,gBAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,gBAAA,CAAA,gBAAA,CAAA,eAAA,CAAA,GAAA,CAAA,CAAA,GAAA,eAAiB,CAAA;AACjB,IAAA,gBAAA,CAAA,gBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACf,CAAC,EATW,gBAAgB,KAAhB,gBAAgB,GAS3B,EAAA,CAAA,CAAA;;ACTD,IAAY,eAMX,CAAA;AAND,CAAA,UAAY,eAAe,EAAA;AACvB,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,eAAA,CAAA,eAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,eAAA,CAAA,eAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,eAAA,CAAA,eAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,eAAA,CAAA,eAAA,CAAA,WAAA,CAAA,GAAA,CAAA,CAAA,GAAA,WAAa,CAAA;AACjB,CAAC,EANW,eAAe,KAAf,eAAe,GAM1B,EAAA,CAAA,CAAA;;MCKY,gBAAgB,CAAA;AAU3B,IAAA,IAAI,eAAe,GAAA;AACjB,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE,CAAC;KAC9C;AAED,IAAA,IAAI,kBAAkB,GAAA;AACpB,QAAA,OAAO,IAAI,CAAC,oBAAoB,CAAC,YAAY,EAAE,CAAC;KACjD;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,YAAY,EAAE,CAAC;KAChD;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KAClD;AAED,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,OAAO,IAAI,CAAC,yBAAyB,CAAC,YAAY,EAAE,CAAC;KACtD;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,YAAY,EAAE,CAAC;KAC/C;AAED,IAAA,IAAI,mBAAmB,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,YAAY,EAAE,CAAC;KAClD;AAED,IAAA,WAAA,GAAA;AApCQ,QAAA,IAAA,CAAA,iBAAiB,GAAuB,IAAI,OAAO,EAAa,CAAC;AACjE,QAAA,IAAA,CAAA,oBAAoB,GAAqC,IAAI,OAAO,EAA2B,CAAC;AAChG,QAAA,IAAA,CAAA,mBAAmB,GAAoB,IAAI,OAAO,EAAU,CAAC;AAC7D,QAAA,IAAA,CAAA,qBAAqB,GAAqD,IAAI,OAAO,EAA2C,CAAC;AACjI,QAAA,IAAA,CAAA,yBAAyB,GAAyD,IAAI,OAAO,EAA+C,CAAC;AAC7I,QAAA,IAAA,CAAA,kBAAkB,GAAgE,IAAI,OAAO,EAAsD,CAAC;AACpJ,QAAA,IAAA,CAAA,qBAAqB,GAAoC,IAAI,OAAO,EAA0B,CAAC;KA8BtF;AAEjB,IAAA,aAAa,CAAC,MAAiB,EAAA;AAC7B,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KACrC;AAED,IAAA,gBAAgB,CAAC,KAA8B,EAAA;AAC7C,QAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvC;IAED,iBAAiB,CAAC,UAAkB,EAAE,MAAe,EAAA;QACnD,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;KACzD;IAED,qBAAqB,CAAC,UAAkB,EAAE,UAAmB,EAAA;QAC3D,IAAI,CAAC,yBAAyB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC,CAAC;KACjE;IAED,eAAe,GAAA;QACb,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAACA,EAAa,EAAE,CAAC,CAAC;KAChD;IAED,cAAc,CAAC,QAA2B,EAAE,SAAiB,EAAA;QAC3D,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,EAAE,CAAC,CAAC;KACvD;AAED,IAAA,iBAAiB,CAAC,UAAkB,EAAA;QAClC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,CAAC,CAAC;KACjD;8GAlEU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,cAFf,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAH5B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACVD,IAAY,iBAWX,CAAA;AAXD,CAAA,UAAY,iBAAiB,EAAA;AACzB,IAAA,iBAAA,CAAA,iBAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,oBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,oBAAsB,CAAA;AACtB,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,iBAAA,CAAA,GAAA,CAAA,CAAA,GAAA,iBAAmB,CAAA;AACnB,IAAA,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,iBAAA,CAAA,iBAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAW,CAAA;AACX,IAAA,iBAAA,CAAA,iBAAA,CAAA,YAAA,CAAA,GAAA,EAAA,CAAA,GAAA,YAAe,CAAA;AACf,IAAA,iBAAA,CAAA,iBAAA,CAAA,OAAA,CAAA,GAAA,EAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,iBAAA,CAAA,iBAAA,CAAA,MAAA,CAAA,GAAA,EAAA,CAAA,GAAA,MAAS,CAAA;AACb,CAAC,EAXW,iBAAiB,KAAjB,iBAAiB,GAW5B,EAAA,CAAA,CAAA;;ACXD,IAAY,YAGX,CAAA;AAHD,CAAA,UAAY,YAAY,EAAA;AACpB,IAAA,YAAA,CAAA,YAAA,CAAA,IAAA,CAAA,GAAA,CAAA,CAAA,GAAA,IAAM,CAAA;AACN,IAAA,YAAA,CAAA,YAAA,CAAA,KAAA,CAAA,GAAA,CAAA,CAAA,GAAA,KAAM,CAAA;AACV,CAAC,EAHW,YAAY,KAAZ,YAAY,GAGvB,EAAA,CAAA,CAAA;;MCUY,oBAAoB,CAAA;AAE/B,IAAA,WAAA,GAAA;KAEC;AAED,IAAA,OAAO,CAAC,MAA8B,EAAA;AAEpC,QAAA,IAAI,aAAa,GAA4B;AAC3C,YAAA,mBAAmB,EAAE,EAAE;SACxB,CAAC;AAEF,QAAA,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;YAChC,MAAM,KAAK,GAAG,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,OAAO,CAAC,UAAU,CAAC,CAAC;YAClF,IAAI,kBAAkB,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AAEpD,YAAA,IAAI,MAAe,CAAC;AAEpB,YAAA,IAAI,kBAAkB,CAAC,YAAY,IAAI,gBAAgB,CAAC,SAAS,EAAE;gBACjE,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,OAAO,EAAE,kBAAkB,CAAC,UAAU,CAAC,CAAA;AAChF,aAAA;AACI,iBAAA,IAAI,kBAAkB,CAAC,YAAY,IAAI,gBAAgB,CAAC,QAAQ,IAAI,kBAAkB,CAAC,YAAY,IAAI,gBAAgB,CAAC,aAAa,EAAE;gBAC1I,MAAM,GAAG,IAAI,CAAC,0BAA0B,CAAC,OAAO,EAAE,kBAAkB,CAAC,WAAW,CAAC,CAAC;AACnF,aAAA;AACI,iBAAA;gBACH,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,CAAC,QAAQ,CAAC,CAAC;AAC7E,aAAA;AAED,YAAA,aAAa,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;QAEH,OAAO,CAAC,GAAG,CAAC,CAAA,qBAAA,EAAwB,aAAa,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,IAAE,KAAK,CAAC,CAAC,MAAM,CAAE,CAAA,CAAC,CAAC;AAEpG,QAAA,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;KAC1B;IAEO,uBAAuB,CAAC,OAAmB,EAAE,QAAgB,EAAA;QACnE,IAAI,gBAAgB,GAAc,EAAE,CAAC;AACrC,QAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,WAAW,EAAE;AAE5D,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;AACvC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,kBAAkB,EAAE;AAE1E,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;AACxC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,QAAQ,EAAE;AAEhE,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;AACvC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,eAAe,EAAE;AAEvE,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;AACxC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAE7D,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;AACxC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,QAAQ,EAAE;AAEhE,YAAA,OAAO,CAAC,cAAc,CAAC,OAAO,CAAC,MAAM,IAAG;AACtC,gBAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,MAAM,CAAC,QAAQ,CAAA;AACxC,gBAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAChC,aAAC,CAAC,CAAC;AAEJ,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,OAAO,EAAE;AAE/D,YAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAA;AAC7B,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,UAAU,EAAE;AAElE,YAAA,IAAI,MAAM,GAAG,QAAQ,IAAI,IAAI,CAAA;AAC7B,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAE7D,YAAA,IAAI,WAAW,GAAa,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxE,YAAA,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAA;AAC3D,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,IAAI,EAAE;AAE5D,YAAA,IAAI,WAAW,GAAa,OAAO,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,CAAC;AACxE,YAAA,IAAI,MAAM,GAAG,WAAW,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAA;AAC5D,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAED,QAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACI,aAAA,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3C,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AACI,aAAA,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,EAAE,EAAE;AAC7C,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;AAC5D,SAAA;KACF;IAEO,0BAA0B,CAAC,OAAmB,EAAE,WAAqB,EAAA;QAC3E,IAAI,gBAAgB,GAAc,EAAE,CAAC;AAErC,QAAA,WAAW,EAAE,OAAO,CAAC,MAAM,IAAG;YAC5B,IAAI,QAAQ,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;AAC7D,YAAA,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;AAClC,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,gBAAgB,CAAC,MAAM,IAAI,CAAC,EAAE;AAChC,YAAA,OAAO,KAAK,CAAC;AACd,SAAA;AACI,aAAA,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;AAC3C,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AACI,aAAA,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,EAAE,EAAE;AAC7C,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;AAC5D,SAAA;KACF;IAEO,yBAAyB,CAAC,OAAmB,EAAE,MAAc,EAAA;QACnE,IAAI,gBAAgB,GAAc,EAAE,CAAC;AACrC,QAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,OAAO,EAAE;YAExD,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,CAAA;AAC3C,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAAM,aAAA,IAAI,OAAO,CAAC,eAAe,IAAI,iBAAiB,CAAC,UAAU,EAAE;YAElE,IAAI,MAAM,GAAG,MAAM,IAAI,IAAI,IAAI,MAAM,IAAI,EAAE,CAAA;AAC3C,YAAA,gBAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAE/B,SAAA;AAGD,QAAA,IAAI,OAAO,CAAC,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;AACtC,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AACI,aAAA,IAAI,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC,EAAE,EAAE;AAC7C,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAA;AAC1D,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,gBAAgB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAA;AAC5D,SAAA;KACF;8GAjKU,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;MAsKY,sBAAsB,CAAA;AAIlC,CAAA;MAEY,uBAAuB,CAAA;AAEnC;;AC1LD,IAAY,aASX,CAAA;AATD,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACT,IAAA,aAAA,CAAA,aAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAU,CAAA;AACV,IAAA,aAAA,CAAA,aAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAY,CAAA;AACZ,IAAA,aAAA,CAAA,aAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAQ,CAAA;AACR,IAAA,aAAA,CAAA,aAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAS,CAAA;AACb,CAAC,EATW,aAAa,KAAb,aAAa,GASxB,EAAA,CAAA,CAAA;;ACPK,SAAU,cAAc,CAAC,OAAwB,EAAA;IACnD,IAAI,OAAO,CAAC,KAAK,EAAE;AACf,QAAA,IAAI,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACjD,IAAI,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,MAAM,CAAC;AAC9C,QAAA,IAAI,SAAS,IAAI,IAAI,IAAI,WAAW,IAAI,EAAE,EAAE;AACxC,YAAA,OAAO,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC;AACjC,SAAA;AACJ,KAAA;AACD,IAAA,OAAO,IAAI,CAAC;AAChB;;MCNa,wBAAwB,CAAA;AAEnC,IAAA,WAAA,CAAoB,EAAc,EAAA;QAAd,IAAE,CAAA,EAAA,GAAF,EAAE,CAAY;KAAK;AAGvC,IAAA,OAAO,CAAC,KAAoB,EAAA;AAC1B,QAAA,MAAM,KAAK,GAAG,KAAK,CAAC,MAA0B,CAAC;QAC/C,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE;YACpD,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,IAAI,GAAG,GAAG,IAAI,CAAC;YACf,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBACtC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,aAAA;YACD,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,KAAK,IAAI,EAAE;gBACtC,GAAG,GAAG,QAAQ,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC;AAC3C,aAAA;AAED,YAAA,IAAI,UAAU,GAAQ,KAAK,CAAC,KAAK,CAAC;;YAElC,IAAI,MAAM,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,WAAW,CAAC,CAAC;AAC7E,YAAA,IAAI,GAAG,IAAI,IAAI,IAAI,GAAG,IAAI,IAAI,EAAE;gBAC9B,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE;oBACnC,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,iBAAA;AAED,gBAAA,IAAI,KAAK,CAAC,cAAc,IAAI,IAAI,EAAE;AAEhC,oBAAA,IAAI,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,cAAc,CAAC,CAAC;AAC3D,oBAAA,IAAI,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;oBAEzE,UAAU,GAAG,MAAM,CAAE,SAAS,GAAG,KAAK,CAAC,GAAG,GAAG,QAAQ,CAAC,CAAC;AACxD,iBAAA;AACF,aAAA;YAED,IAAI,GAAG,IAAI,IAAI,EAAE;AACf,gBAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE;oBAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,iBAAA;AACF,aAAA;YAED,IAAI,GAAG,KAAK,IAAI,EAAE;AAChB,gBAAA,IAAI,QAAQ,CAAC,UAAU,CAAC,GAAG,GAAG,EAAE;oBAC9B,KAAK,CAAC,cAAc,EAAE,CAAC;AACxB,iBAAA;AACF,aAAA;AACF,SAAA;KACF;8GA9CU,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAxB,wBAAwB,EAAA,QAAA,EAAA,sBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAxB,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAHpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AACjC,iBAAA,CAAA;iGAMC,OAAO,EAAA,CAAA;sBADN,YAAY;uBAAC,UAAU,EAAE,CAAC,QAAQ,CAAC,CAAA;;;MCHzB,mBAAmB,CAAA;AAE9B,IAAA,SAAS,CAAC,KAAoB,EAAE,GAAG,IAAe,EAAA;QAChD,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,IAAI,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE;AAChC,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AAAM,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,IAAI,EAAE;AACtC,gBAAA,OAAO,MAAM,CAAC;AACf,aAAA;AACI,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE;AACxC,gBAAA,OAAO,gBAAgB,CAAC;AACzB,aAAA;AACI,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE;AACrC,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AACI,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,MAAM,EAAE;AACtC,gBAAA,OAAO,QAAQ,CAAC;AACjB,aAAA;AACI,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,QAAQ,EAAE;AACxC,gBAAA,OAAO,UAAU,CAAC;AACnB,aAAA;AACI,iBAAA,IAAI,KAAK,IAAI,aAAa,CAAC,KAAK,EAAE;AACrC,gBAAA,OAAO,OAAO,CAAC;AAChB,aAAA;AACF,SAAA;AAED,QAAA,OAAO,MAAM,CAAC;KACf;8GA3BU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAnB,mBAAmB,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,iBAAiB;AACxB,iBAAA,CAAA;;;MCaY,6BAA6B,CAAA;AAMxC,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,IAAI,uBAAuB,GAAA;AACzB,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;QACnC,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;YAE5D,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC5D,gBAAA,OAAO,IAAI,CAAC,YAAY,GAAG,CAAiC,+BAAA,CAAA,GAAI,SAAS,CAAC,QAAQ,GAAG,OAAO,GAAG,SAAS,CAAC,QAAQ;sBAC/G,CAAkC,+BAAA,EAAA,SAAS,CAAC,QAAQ,OAAO,SAAS,CAAC,QAAQ,CAAA,CAAE,CAAC;AACnF,aAAA;AACI,iBAAA,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACnC,OAAO,IAAI,CAAC,YAAY,GAAG,CAAqC,kCAAA,EAAA,SAAS,CAAC,QAAQ,CAAE,CAAA;AACpF,sBAAC,CAA0C,uCAAA,EAAA,SAAS,CAAC,QAAQ,EAAE,CAAC;AACjE,aAAA;AACI,iBAAA,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI,EAAE;gBACnC,OAAO,IAAI,CAAC,YAAY,GAAG,CAAsC,mCAAA,EAAA,SAAS,CAAC,QAAQ,CAAE,CAAA;AACrF,sBAAC,CAA0C,uCAAA,EAAA,SAAS,CAAC,QAAQ,EAAE,CAAC;AACjE,aAAA;AACF,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;IAMD,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAE5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;QAEH,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,QAAQ,IAAI,SAAS,EAAE;AAC7F,YAAA,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;AACrE,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;AACtE,SAAA;AAED,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAExD,YAAA,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,MAAM,EAAE;gBAC9D,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC3C,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrF,iBAAA;gBAED,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;AAC3C,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;oBAC/D,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;AACrF,iBAAA;gBAED,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,IAAI,EAAE;oBACtF,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACtD,iBAAA;AACF,aAAA;AACI,iBAAA,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,EAAE;AAClE,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC;AACtD,aAAA;AACI,iBAAA,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,WAAW,IAAI,aAAa,CAAC,KAAK,EAAE;gBAClE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC;AACpD,aAAA;AAED,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;AAED,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;KAC3C;IAED,IAAa,UAAU,CAAC,KAAc,EAAA;AACpC,QAAA,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;KAChC;IAGD,WAAoB,CAAA,YAAyB,EAAU,iBAAmC,EAAA;QAAtE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AA1DhF,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QAEnD,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;QAC9B,IAAU,CAAA,UAAA,GAAY,KAAK,CAAC;QAwDnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAoC;YACtE,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,cAAc,EAAE,CAAC,IAAI,CAAC;YACtB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAE,CAAC,KAAK,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,QAAQ,EAAE,CAAC,IAAI,CAAC;YAChB,QAAQ,EAAE,CAAC,IAAI,CAAC;AACjB,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;gBACb,cAAc,EAAE,SAAS,CAAC,cAAc;AACzC,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzH,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,SAAS,CAAC,MAAM,IAAG;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACjD,SAAC,CAAC,CAAC;AAEL,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;YACnH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAG;YAC/G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;AAEO,IAAA,kBAAkB,CAAC,UAAmB,EAAA;QAC5C,IAAI,UAAU,IAAI,IAAI,EAAE;AACtB,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAA;AAC7B,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,CAAA;AAC5B,SAAA;AACD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;KAC7C;8GArJU,6BAA6B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA7B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,6BAA6B,6NClB1C,qsCAmBU,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDDG,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBALzC,SAAS;+BACE,4BAA4B,EAAA,QAAA,EAAA,qsCAAA,EAAA,CAAA;8HAuC5B,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEE,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBACO,WAAW,EAAA,CAAA;sBAAvB,KAAK;gBAiDO,UAAU,EAAA,CAAA;sBAAtB,KAAK;;;MEpFK,oCAAoC,CAAA;AAK/C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,IAAG;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwD;AAC1G,gBAAA,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5B,gBAAA,KAAK,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;gBAClC,UAAU,EAAE,CAAC,KAAK,CAAC;AACpB,aAAA,CAAC,CAAC,CAAA;AACL,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,WAAoB,CAAA,YAAyB,EAAU,iBAAmC,EAAA;QAAtE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAxC1F,IAAM,CAAA,MAAA,GAAGH,EAAa,EAAY,CAAC;AAYzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QA6B1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAA2C;YAC7E,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwD,EAAE,CAAC;AAChG,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACnB,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAElC,QAAA,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACzH,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,SAAS,CAAC,MAAM,IAAG;YAClB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzF,YAAA,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;AACnB,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3E,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACN;AAED,IAAA,cAAc,CAAC,IAA2D,EAAA;QACxE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtC;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GA9FU,oCAAoC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,mJCtBjD,g/BAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDQa,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBALhD,SAAS;+BACE,oCAAoC,EAAA,QAAA,EAAA,g/BAAA,EAAA,CAAA;8HAiBpC,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MEdK,iCAAiC,CAAA;AAK5C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,IAAG;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAqD;AACvG,gBAAA,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5B,gBAAA,KAAK,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;gBAClC,UAAU,EAAE,CAAC,KAAK,CAAC;AACpB,aAAA,CAAC,CAAC,CAAA;AACL,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,WAAoB,CAAA,YAAyB,EAAU,iBAAmC,EAAA;QAAtE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAxC1F,IAAM,CAAA,MAAA,GAAGD,EAAa,EAAY,CAAC;AAYzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QA6B1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwC;YAC1E,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAqD,EAAE,CAAC;AAC7F,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACtC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAClF,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,SAAS,CAAC,MAAM,IAAG;YAClB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAE3C,YAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,QAAQ,IAAG;gBACpC,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,QAAQ,CAAC,CAAC;AAClF,gBAAA,IAAI,UAAU,GAAG,CAAC,CAAC,EAAE;AACnB,oBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC3E,iBAAA;AACH,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACN;IAED,cAAc,CAAC,IAAuD,EAAE,KAAY,EAAA;QAClF,IAAI,SAAS,GAAa,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAAC;AAEzD,QAAA,IAAK,KAAK,CAAC,MAAc,CAAC,OAAO,IAAI,IAAI,EAAE;AACzC,YAAA,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC;AACjD,SAAA;AAED,QAAA,SAAS,GAAG,SAAS,CAAC,MAAM,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAC;QACnD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACxC;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GA1GU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,gJCvB9C,q7BAcA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDSa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,iCAAiC,EAAA,QAAA,EAAA,q7BAAA,EAAA,CAAA;8HAiBjC,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MErBK,iCAAiC,CAAA;AAI5C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,WAAoB,CAAA,YAAyB,EAAW,iBAAmC,EAAA;QAAvE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAW,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;AApBjF,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QAqB1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwC;YAC1E,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;AAChB,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACxC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACrD,SAAS,CAAC,MAAM,IAAE;YACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC/C,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GA3EU,iCAAiC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAjC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iCAAiC,+ICjB9C,6sBAWA,EAAA,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDMa,iCAAiC,EAAA,UAAA,EAAA,CAAA;kBAL7C,SAAS;+BACE,gCAAgC,EAAA,QAAA,EAAA,6sBAAA,EAAA,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,CAAA;8HAgBhC,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MEXK,+BAA+B,CAAA;AAK1C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC,IAAG;AACnC,YAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwD;AACzF,gBAAA,aAAa,EAAE,CAAC,CAAC,CAAC,UAAU,CAAC;AAC7B,gBAAA,aAAa,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC;gBAChC,MAAM,EAAE,CAAC,IAAI,CAAC;AACf,aAAA,CAAC,CAAC;AAEH,YAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,gBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,gBAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAChD,aAAA;YAED,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAClF,gBAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,gBAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,oBAAA,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;AACrC,oBAAA,MAAM,EAAE,KAAK,CAAC,KAAK,CAAC,MAAM;AAC1B,oBAAA,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;AACrC,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YAEH,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3C,SAAC,CAAC,CAAC;KACJ;IAED,WAAoB,CAAA,YAAyB,EAAW,iBAAkC,EAAA;QAAtE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAW,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAiB;QAhD1F,IAAM,CAAA,MAAA,GAAGD,EAAa,EAAY,CAAC;AAYzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QAqC1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAsC;YACxE,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;YACf,gBAAgB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAwD,EAAE,CAAC;AACrG,SAAA,CAAC,CAAC;KACJ;IACD,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACxC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AACrF,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC;aAC9B,SAAS,CAAC,OAAO,IAAE;YAClB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,IAAG;gBACpD,IAAI,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;gBAC1E,IAAI,MAAM,IAAI,IAAI,EAAE;oBAClB,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AACjD,iBAAA;AACH,aAAC,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;IAED,cAAc,CAAC,QAA+D,EAAE,MAAuB,EAAA;QACrG,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC3G,QAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QAEpE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAE3D,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,YAAA,UAAU,EAAE,gBAAgB,CAAC,KAAK,CAAC,aAAa;AAChD,YAAA,MAAM,EAAE,gBAAgB,CAAC,KAAK,CAAC,MAAM;AACrC,YAAA,OAAO,EAAE,gBAAgB,CAAC,QAAQ,CAAC,MAAM,CAAC,KAAK;AAChD,SAAA,CAAC,CAAC;KACJ;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GA/FU,+BAA+B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,6ICpB5C,g9DAmCM,EAAA,MAAA,EAAA,CAAA,6tBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDfO,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAL3C,SAAS;+BACE,8BAA8B,EAAA,QAAA,EAAA,g9DAAA,EAAA,MAAA,EAAA,CAAA,6tBAAA,CAAA,EAAA,CAAA;8HAiB9B,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MEhBK,gCAAgC,CAAA;AAK3C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,QAAA,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,IAAG;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAoD;AACtG,gBAAA,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5B,gBAAA,KAAK,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;gBAClC,UAAU,EAAE,CAAC,KAAK,CAAC;AACpB,aAAA,CAAC,CAAC,CAAA;AACL,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;KACF;IAED,WAAoB,CAAA,YAAyB,EAAY,iBAAkC,EAAA;QAAvE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAY,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAiB;QAzC3F,IAAM,CAAA,MAAA,GAAGD,EAAa,EAAY,CAAC;AAYzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QA8B1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAuC;YACzE,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAoD,EAAE,CAAC;YAC3F,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;AAChB,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACxC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAC/E,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,MAAM,GAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACrD,SAAS,CAAC,MAAM,IAAE;YACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;YAE7C,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,IAAI,MAAM,CAAC,QAAQ,CAAC,CAAC;AACzF,YAAA,IAAG,UAAU,GAAG,CAAC,CAAC,EAAC;AACnB,gBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACzE,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,IAAuD,EAAA;QACpE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;KACtC;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GA/FU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,8ICnB7C,6+BAeM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDIO,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,6+BAAA,EAAA,CAAA;8HAiB/B,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MEhBK,sCAAsC,CAAA;AAMjD,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;IAID,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACpB,EAAE,EAAE,KAAK,CAAC,UAAU;YACpB,IAAI,EAAE,KAAK,CAAC,YAAY;YACxB,KAAK,EAAE,KAAK,CAAC,aAAa;YAC1B,MAAM,EAAE,KAAK,CAAC,cAAc;YAC5B,WAAW,EAAE,KAAK,CAAC,mBAAmB;YACtC,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,MAAM,EAAE,KAAK,CAAC,SAAS;AACxB,SAAA,CAAC,CAAC;AAEH,QAAA,KAAK,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,IAAG;AAC1C,YAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAA0D;AAC5G,gBAAA,EAAE,EAAE,CAAC,aAAa,CAAC,QAAQ,CAAC;AAC5B,gBAAA,KAAK,EAAE,CAAC,aAAa,CAAC,WAAW,CAAC;gBAClC,UAAU,EAAE,CAAC,KAAK,CAAC;AACpB,aAAA,CAAC,CAAC,CAAA;AACL,SAAC,CAAC,CAAA;AAEF,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,CAACG,YAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AACxD,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAC7C,SAAA;KAEF;IAED,WAAoB,CAAA,YAAyB,EAAU,iBAAmC,EAAA;QAAtE,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAzC1F,IAAM,CAAA,MAAA,GAAGJ,EAAa,EAAY,CAAC;AAYzB,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QA8B1D,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAA6C;YAC/E,EAAE,EAAE,CAAC,IAAI,CAAC;YACV,IAAI,EAAE,CAAC,IAAI,CAAC;YACZ,KAAK,EAAE,CAAC,IAAI,CAAC;YACb,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,WAAW,EAAE,CAAC,IAAI,CAAC;YACnB,MAAM,EAAE,CAAC,IAAI,CAAC;YACd,UAAU,EAAC,CAAC,KAAK,CAAC;YAClB,MAAM,EAAG,CAAC,IAAI,CAAC;YACf,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAA0D,EAAE,CAAC;AAClG,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,IAAG;AAC/E,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;AACnC,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;gBAChB,UAAU,EAAE,SAAS,CAAC,EAAE;AACxB,gBAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK;AACjC,gBAAA,MAAM,EAAE,KAAK;AACd,aAAA,CAAC,CAAA;AACJ,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QAElC,IAAI,CAAC,iBAAiB,CAAC,kBAAkB;AACtC,aAAA,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;AAClF,aAAA,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;aACvD,SAAS,CAAC,MAAM,IAAG;YAClB,MAAM,aAAa,GAAG,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;YAC/F,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7C,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAChH,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;AAChD,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,IAAE;YAC5G,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACxC,SAAC,CAAC,CAAC;KACN;AAED,IAAA,oBAAoB,CAAC,OAAY,EAAA;AAC/B,QAAA,OAAO,OAAsB,CAAC;KAC/B;8GAxFU,sCAAsC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sCAAsC,qJClBnD,ksBAWA,EAAA,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,EAAA,cAAA,EAAA,YAAA,EAAA,kBAAA,EAAA,UAAA,EAAA,SAAA,EAAA,eAAA,EAAA,cAAA,EAAA,aAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,SAAA,EAAA,YAAA,EAAA,cAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,wBAAA,EAAA,UAAA,EAAA,WAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,EAAA,OAAA,EAAA,QAAA,EAAA,OAAA,EAAA,KAAA,EAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDOa,sCAAsC,EAAA,UAAA,EAAA,CAAA;kBALlD,SAAS;+BACE,sCAAsC,EAAA,QAAA,EAAA,ksBAAA,EAAA,MAAA,EAAA,CAAA,8CAAA,CAAA,EAAA,CAAA;8HAkBtC,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEM,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;AE5BD,MAAM,gBAAgB,GAAG,IAAI,cAAc,CAAiB,WAAW,CAAC;;MCMlE,UAAU,CAAA;IAGrB,WAAoB,CAAA,WAAuB,EACP,iBAAiC,EAAA;QADjD,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QACP,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAgB;AACnE,QAAA,IAAI,CAAC,GAAG,GAAG,iBAAiB,CAAC,MAAM,CAAC;KACrC;AAED,IAAA,eAAe,CAAC,MAA2D,EAAA;QACzE,IAAI,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAClC,QAAA,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAwB,CAAG,EAAA,IAAI,CAAC,GAAG,CAAoB,iBAAA,EAAA,WAAW,CAAE,CAAA,EAC9F,EAAE,OAAO,EAAE,IAAI,WAAW,CAAC,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;KACnE;AAZU,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,8CAIX,gBAAgB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAJf,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAU,cAFT,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,UAAU,EAAA,UAAA,EAAA,CAAA;kBAHtB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;0BAKI,MAAM;2BAAC,gBAAgB,CAAA;;;MCDf,gCAAgC,CAAA;AAI3C,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,IAAI,iBAAiB,GAAA;AACnB,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAA;KAC/B;IASD,IAAa,WAAW,CAAC,KAAwB,EAAA;AAC/C,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;KAC1B;AAED,IAAA,WAAA,CAAoB,YAAyB,EAAU,iBAAmC,EAChF,WAAuB,EAAA;QADb,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAChF,IAAW,CAAA,WAAA,GAAX,WAAW,CAAY;QA3BjC,IAAiB,CAAA,iBAAA,GAAwB,EAAE,CAAC;AAelC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,YAAY,EAAuB,CAAC;QAEnD,IAAS,CAAA,SAAA,GAAW,IAAI,CAAC;QACzB,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC;QAChC,IAAY,CAAA,YAAA,GAAW,IAAI,CAAC;QAQnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAAuC;YACzE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAA2D,EAAE,CAAC;AACnG,SAAA,CAAC,CAAC;KACJ;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,IAAG;AAClD,YAAA,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,SAAC,CAAC,CAAA;KACH;AAED,IAAA,cAAc,CAAC,KAA0B,EAAA;AACvC,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,MAAM,mBAAmB,GAAG,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;YAEpG,IAAI,gBAAgB,GAAG,EAAE,CAAA;AACzB,YAAA,KAAK,IAAI,KAAK,GAAG,mBAAmB,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AACxF,gBAAA,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC9B,aAAA;AAED,YAAA,IAAI,cAAc,GAAG,gBAAgB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACvE,YAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,cAAc,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAC1D,gBAAA,MAAM,YAAY,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;gBAC3C,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,CAAC,UAAU,CAAC;AACnE,gBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,UAAU,CAAC,CAAC;AACrD,gBAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;AACtF,gBAAA,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC/C,aAAA;AACF,SAAA;QAED,IAAI,KAAK,CAAC,MAAM,EAAE;AAChB,YAAA,IAAI,CAAC,WAAW,CAAC,eAAe,CAAC;gBAC/B,QAAQ,EAAE,KAAK,CAAC,MAAM;gBACtB,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,KAAK,EAAE,IAAI,CAAC,KAAK;gBACjB,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;AACxC,aAAA,CAAC,CAAC,SAAS,CAAC,GAAG,IAAG;gBACjB,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACpD,oBAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC;oBACvB,IAAI,CAAC,iBAAiB,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;AAC5D,iBAAA;AACH,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,QAAQ,CAAC,KAAK,EAAE,IAA8D,EAAA;QAC5E,OAAO,IAAI,CAAC,EAAE,CAAC;KAChB;AAEO,IAAA,YAAY,CAAC,KAAwB,EAAA;AAC3C,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAEnC,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAA2D;AAC5F,YAAA,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC;AACtB,YAAA,MAAM,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC;AAC9B,YAAA,MAAM,EAAE,IAAI;AACb,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,KAAK,CAAC,UAAU,IAAI,IAAI,EAAE;AAC5B,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC3D,YAAA,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,sBAAsB,EAAE,CAAC;AAChD,SAAA;QAED,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACrC;8GA/FU,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAI,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAhC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gCAAgC,0PCf7C,gTAIe,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDWF,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAL5C,SAAS;+BACE,+BAA+B,EAAA,QAAA,EAAA,gTAAA,EAAA,CAAA;oJAoB/B,OAAO,EAAA,CAAA;sBAAhB,MAAM;gBAEE,SAAS,EAAA,CAAA;sBAAjB,KAAK;gBACG,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEO,WAAW,EAAA,CAAA;sBAAvB,KAAK;;;MELK,mBAAmB,CAAA;AAQ9B,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC;KAC5B;AAED,IAAA,IAAI,gBAAgB,GAAA;AAClB,QAAA,OAAO,gBAAgB,CAAC;KACzB;AAED,IAAA,IAAI,WAAW,GAAA;AACb,QAAA,IAAI,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE;YACrC,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC5F,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;AAED,IAAA,IAAI,UAAU,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,iBAAiB,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;KAC7H;AAED,IAAA,IAAI,iBAAiB,GAAA;QACnB,IAAI,OAAO,GAAa,EAAE,CAAC;AAC3B,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;AAC3E,YAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACxD,IAAI,QAAQ,CAAC,MAAM,IAAI,IAAI,KAAK,QAAQ,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,MAAM,IAAI,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,EAAE;AACxH,gBAAA,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACxC,aAAA;AACF,SAAA;QAED,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;AAEzE,QAAA,OAAO,aAAa,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;KAC5C;AAED,IAAA,IAAI,wBAAwB,GAAA;QAC1B,OAAO,IAAI,CAAC,iBAAiB,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC3F;AAED,IAAA,IAAI,YAAY,GAAA;QACd,OAAO;AACL,YAAA,gBAAgB,EAAE,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK;YACpD,OAAO,EACL,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;gBAC3E,OAAO;oBACL,eAAe,EAAE,CAAC,CAAC,eAAe;oBAClC,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,YAAY,EAAE,CAAC,CAAC,YAAY;oBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;oBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;oBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;iBACH,CAAA;AAC3B,aAAC,CAAC;SACL,CAAA;KACF;AAUD,IAAA,WAAA,CAAoB,iBAAmC,EAC3C,YAAyB,EAAU,qBAA2C,EAAA;QADtE,IAAiB,CAAA,iBAAA,GAAjB,iBAAiB,CAAkB;QAC3C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAa;QAAU,IAAqB,CAAA,qBAAA,GAArB,qBAAqB,CAAsB;QArE1F,IAAmB,CAAA,mBAAA,GAAGP,EAAa,EAAY,CAAC;QAChD,IAAqB,CAAA,qBAAA,GAAGA,EAAa,EAAY,CAAC;QA2DzC,IAAK,CAAA,KAAA,GAAY,KAAK,CAAC;QACvB,IAAgB,CAAA,gBAAA,GAAW,IAAI,CAAC;QAChC,IAAY,CAAA,YAAA,GAAW,IAAI,CAAC;QAC5B,IAAY,CAAA,YAAA,GAAY,KAAK,CAAC;AAE7B,QAAA,IAAA,CAAA,gBAAgB,GAAG,IAAI,YAAY,EAA0B,CAAC;AAC9D,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,YAAY,EAAU,CAAC;QAKxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK,CAA0B;YAC5D,gBAAgB,EAAE,CAAC,CAAC,CAAC;YACrB,aAAa,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAAyC,EAAE,CAAC;YAClF,iBAAiB,EAAE,IAAI,CAAC,YAAY,CAAC,KAAK,CAA6C,EAAE,CAAC;AAC3F,SAAA,CAAC,CAAC;KACJ;IACD,eAAe,GAAA;KACd;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,EAAE,oBAAoB,EAAE,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;AACxG,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,EAAE,CAAC;AACtC,YAAA,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;YAEvB,IAAI,MAAM,IAAI,IAAI,EAAE;AAClB,gBAAA,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC;AACzB,gBAAA,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAC5B,aAAA;AACH,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,SAAS,CAAC,GAAG,IAAG;YACtD,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,QAAQ,EAAE,GAAG,CAAC,SAAS,CAAC,CAAC;AACrD,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,SAAS,CAAC,GAAG,IAAG;YACzD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,CAAC;YAC7F,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC5C,SAAC,CAAC,CAAC;KAEJ;IAED,aAAa,GAAA;AACX,QAAA,IAAI,cAAc,GAAG,IAAI,CAAC,uBAAuB,EAAE,CAAC;AACpD,QAAA,IAAI,cAAc,CAAC,MAAM,IAAI,CAAC,EAAE;AAE9B,YAAA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAE/C,IAAI,aAAa,IAAI,IAAI,EAAE;gBACzB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;gBACrD,UAAU,CAAC,MAAK;AACd,oBAAA,IAAI,CAAC,mBAAmB,CAAC,aAAa,CAAC,CAAC;AAC1C,iBAAC,CAAC,CAAC;AAEH,gBAAA,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;AACtB,oBAAA,SAAS,EAAE,CAAC,CAAC,CAAA,cAAA,EAAiB,IAAI,CAAC,mBAAmB,CAAE,CAAA,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG;iBAC7E,EAAE,IAAI,CAAC,CAAC;AAEV,aAAA;AAAM,iBAAA;gBACL,IAAI,WAAW,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,IAAG;oBAC7F,OAAO;wBACL,eAAe,EAAE,CAAC,CAAC,eAAe;wBAClC,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,YAAY,EAAE,CAAC,CAAC,YAAY;wBAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;wBACpB,UAAU,EAAE,CAAC,CAAC,UAAU;wBACxB,WAAW,EAAE,CAAC,CAAC,WAAW;qBACH,CAAA;AAC3B,iBAAC,CAAC,CAAC;AACH,gBAAA,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,aAAA;AACF,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,aAAa,GAAG,cAAc,CAAC,CAAC,CAAC,CAAC;AACtC,YAAA,CAAC,CAAC,YAAY,CAAC,CAAC,OAAO,CAAC;AACtB,gBAAA,SAAS,EAAE,CAAC,CAAC,CAAA,UAAA,EAAa,aAAa,CAAC,UAAU,CAAE,CAAA,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,GAAG,GAAG;aACzE,EAAE,IAAI,CAAC,CAAC;AACV,SAAA;KACF;IAED,aAAa,GAAA;AACX,QAAA,MAAM,aAAa,GAAG,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAC/C,IAAI,aAAa,IAAI,IAAI,EAAE;YACzB,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AACtD,SAAA;KACF;AAED,IAAA,eAAe,CAAC,KAA4B,EAAA;AAC1C,QAAA,KAAK,CAAC,OAAO,CAAC,IAAI,IAAG;AACnB,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;AAC5B,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,cAAc,CAAC,KAA0B,EAAA;QACvC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;AAC/F,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;YAC9D,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAEvD,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE;gBACvE,aAAa,CAAC,UAAU,CAAC;oBACvB,QAAQ,EAAE,KAAK,CAAC,cAAc;oBAC9B,UAAU,EAAE,KAAK,CAAC,MAAM;AACzB,iBAAA,CAAC,CAAC;AACJ,aAAA;iBAAM,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,IAAI,CAAC,gBAAgB,CAAC,aAAa,EAAE;gBACxJ,aAAa,CAAC,QAAQ,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AAC3D,aAAA;AAAM,iBAAA;gBACL,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;AACxD,aAAA;YAED,IAAI,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE;gBAC7F,IAAI,CAAC,UAAU,EAAE,CAAA;AAClB,aAAA;AACF,SAAA;KACF;AAEO,IAAA,aAAa,CAAC,MAAiB,EAAA;QACrC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,SAAS,KAAI;AAE7C,YAAA,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,KAAK,IAAG;AAExC,gBAAA,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,QAAQ,IAAG;AACvC,oBAAA,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,SAAS,CAAC,CAAC;AAC7C,iBAAC,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAC;AAEH,QAAA,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAG;AAChC,YAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,OAAO,IAAG;AAC9B,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAA6C;oBACrG,UAAU,EAAE,OAAO,CAAC,UAAU;AAC/B,iBAAA,CAAC,CAAC,CAAC;AACN,aAAC,CAAC,CAAC;AACL,SAAC,CAAC,CAAA;KACH;IAEO,uBAAuB,GAAA;QAC7B,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;QAC5D,IAAI,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,gBAAgB;AACjG,eAAA,CAAC,CAAC,UAAU,IAAI,IAAI,IAAI,CAAC,CAAC,OAAO,IAAI,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,KAAK,IAAI,CAAC,CAAC,MAAM,IAAI,IAAI,IAAI,CAAC,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;AAExH,QAAA,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE;YAC7B,CAAC,CAAC,CAAgB,aAAA,EAAA,gBAAgB,CAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACzE,SAAA;AAED,QAAA,OAAO,cAAc,CAAC;KACvB;IAEO,UAAU,GAAA;QAEhB,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,OAAO,CAAC,IAAI,IAAG;AACzC,YAAA,IAAI,CAAC,qBAAqB,CAAC,OAAO,CAAC;gBACjC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gBAAA,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK;AAC1C,gBAAA,gBAAgB,EAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK;AACtD,aAAA,CAAC,CAAC,SAAS,CAAC,MAAM,IAAG;gBAEpB,IAAI,QAAQ,GAAG,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC;AAC9E,gBAAA,IAAI,QAAQ,EAAE;AAEZ,oBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,IAAG;wBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AACxG,wBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;AACxD,wBAAA,IAAI,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,IAAI,EAAE;4BAC9C,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AAC7C,4BAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AAChF,yBAAA;AAAM,6BAAA,IAAI,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,IAAI,EAAE;4BACrD,aAAa,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAC9C,4BAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACjF,yBAAA;AAAM,6BAAA,IAAI,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,MAAM,EAAE;4BACvD,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAClD,4BAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACrF,yBAAA;AAAM,6BAAA,IAAI,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,OAAO,EAAE;4BACxD,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;AACjD,4BAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;AACpF,yBAAA;AAAM,6BAAA,IAAI,IAAI,CAAC,aAAa,IAAI,eAAe,CAAC,SAAS,EAAE;AAE3D,yBAAA;AAED,wBAAA,IAAI,aAAa,CAAC,KAAK,CAAC,YAAY,IAAI,gBAAgB,CAAC,MAAM,IAAI,aAAa,CAAC,KAAK,CAAC,aAAa,IAAI,IAAI,EAAE;AAC5G,4BAAA,IAAI,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,IAAI,CAAC,CAAC,aAAa,IAAI,KAAK,CAAC,CAAC;AACrJ,4BAAA,YAAY,CAAC,OAAO,CAAC,WAAW,IAAG;gCACjC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,WAAW,CAAC,UAAU,CAAC,CAAC;AACrG,gCAAA,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;gCAE3D,gBAAgB,CAAC,UAAU,CAAC;AAC1B,oCAAA,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,MAAM;AAClC,oCAAA,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,UAAU;AAC3C,iCAAA,CAAC,CAAC;AAEH,gCAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;AAC7F,gCAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,WAAW,CAAC,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;AACvF,6BAAC,CAAC,CAAC;AACJ,yBAAA;AAEH,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACI,qBAAA;AACH,oBAAA,IAAI,CAAC,mBAAmB,CAAC,OAAO,CAAC,cAAc,IAAG;wBAChD,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;AACxG,wBAAA,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;wBACxD,aAAa,CAAC,UAAU,CAAC;AACvB,4BAAA,MAAM,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc;AAC1C,4BAAA,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB;AACnD,yBAAA,CAAC,CAAC;AACH,wBAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;AACrH,wBAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,aAAa,CAAC,KAAK,CAAC,UAAU,EAAE,aAAa,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;AAC/G,qBAAC,CAAC,CAAC;AACJ,iBAAA;AACH,aAAC,CAAC,CAAC;AAEL,SAAC,CAAC,CAAC;KACJ;IAEO,iBAAiB,GAAA;QACvB,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1D,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACzC,QAAA,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;AACpE,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9B,YAAA,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC;AAC3B,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,iBAAiB,GAAA;QACvB,IAAI,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,CAAC;AAC1D,QAAA,IAAI,WAAW,GAAG,IAAI,CAAC,iBAAiB,CAAC;AACzC,QAAA,IAAI,eAAe,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC;AACpE,QAAA,IAAI,eAAe,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,OAAO,eAAe,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AACpD,SAAA;AACD,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,gBAAgB,CAAC,QAA2B,EAAE,SAAiB,EAAA;AACrE,QAAA,IAAI,QAAQ,CAAC,cAAc,IAAI,CAAC,EAAE;AAChC,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAyC;AAC7F,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,gBAAA,YAAY,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACvC,aAAa,EAAE,CAAC,KAAK,CAAC;gBACtB,QAAQ,EAAE,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,CAAC,IAAI,CAAC;gBACnB,UAAU,EAAE,CAAC,IAAI,CAAC;AAClB,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACjC,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,gBAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5B,gBAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzC,gBAAA,cAAc,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACrC,aAAA,CAAC,CAAC,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAyC;AAC7F,gBAAA,eAAe,EAAE,SAAS;AAC1B,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,gBAAA,YAAY,EAAE,CAAC,QAAQ,CAAC,cAAc,CAAC;gBACvC,aAAa,EAAE,CAAC,IAAI,CAAC;gBACrB,QAAQ,EAAE,CAAC,IAAI,CAAC;gBAChB,WAAW,EAAE,CAAC,IAAI,CAAC;gBACnB,UAAU,EAAE,CAAC,IAAI,CAAC;AAClB,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;gBACjC,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,gBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,gBAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5B,gBAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzC,gBAAA,cAAc,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACrC,aAAA,CAAC,CAAC,CAAC;AAEJ,YAAA,QAAQ,CAAC,kBAAkB,CAAC,OAAO,CAAC,WAAW,IAAG;AAChD,gBAAA,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,KAAK,CAAyC;AAC7F,oBAAA,eAAe,EAAE,SAAS;AAC1B,oBAAA,UAAU,EAAE,CAAC,WAAW,CAAC,UAAU,CAAC;AACpC,oBAAA,YAAY,EAAE,CAAC,WAAW,CAAC,cAAc,CAAC;oBAC1C,aAAa,EAAE,CAAC,KAAK,CAAC;oBACtB,QAAQ,EAAE,CAAC,IAAI,CAAC;oBAChB,WAAW,EAAE,CAAC,IAAI,CAAC;oBACnB,UAAU,EAAE,CAAC,IAAI,CAAC;AAClB,oBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;oBACjC,OAAO,EAAE,CAAC,IAAI,CAAC;AACf,oBAAA,UAAU,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjC,oBAAA,MAAM,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AAC5B,oBAAA,kBAAkB,EAAE,CAAC,QAAQ,CAAC,UAAU,CAAC;AACzC,oBAAA,cAAc,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;AACrC,iBAAA,CAAC,CAAC,CAAC;AACN,aAAC,CAAC,CAAA;AACH,SAAA;KACF;AAEO,IAAA,mBAAmB,CAAC,SAAiB,EAAA;QAC3C,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,eAAe,IAAI,SAAS,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC7F,YAAA,IAAI,CAAC,iBAAiB,CAAC,iBAAiB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC/E,YAAA,IAAI,CAAC,iBAAiB,CAAC,qBAAqB,CAAC,QAAQ,CAAC,UAAU,EAAE,QAAQ,CAAC,UAAU,CAAC,CAAC;AACzF,SAAC,CAAC,CAAC;KACJ;8GAnWU,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAQ,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,kRCjChC,8uHA6DM,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAK,6BAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,YAAA,EAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oCAAA,EAAA,QAAA,EAAA,oCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,iCAAA,EAAA,QAAA,EAAA,gCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,+BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sCAAA,EAAA,QAAA,EAAA,sCAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,gCAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,aAAA,CAAA,EAAA,OAAA,EAAA,CAAA,SAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FD5BO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,iBAAiB,EAAA,QAAA,EAAA,8uHAAA,EAAA,MAAA,EAAA,CAAA,8PAAA,CAAA,EAAA,CAAA;8JAkElB,KAAK,EAAA,CAAA;sBAAb,KAAK;gBACG,gBAAgB,EAAA,CAAA;sBAAxB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBACG,YAAY,EAAA,CAAA;sBAApB,KAAK;gBAEI,gBAAgB,EAAA,CAAA;sBAAzB,MAAM;gBACG,kBAAkB,EAAA,CAAA;sBAA3B,MAAM;;;ME9FI,kBAAkB,CAAA;IAE7B,SAAS,CAAC,KAAwB,EAAE,WAAqD,EAAA;AACvF,QAAA,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,IAAE,CAAC,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,CAAC,CAAC;KAC9D;8GAJU,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAlB,kBAAkB,EAAA,IAAA,EAAA,gBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,gBAAgB;AACvB,iBAAA,CAAA;;;MCCY,yBAAyB,CAAA;AAEpC,IAAA,SAAS,CAAC,KAAiC,EAAE,UAAkB,EAAG,QAAQ,EAAA;QACxE,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,IAAI,UAAU,CAAC,CAAC;AACpD,SAAA;AAED,QAAA,OAAO,IAAI,CAAC;KACb;8GARU,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAAzB,yBAAyB,EAAA,IAAA,EAAA,uBAAA,EAAA,CAAA,CAAA,EAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAHrC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,uBAAuB;AAC9B,iBAAA,CAAA;;;MCAY,0BAA0B,CAAA;AAErC,IAAA,SAAS,CAAC,KAAiC,EAAE,UAAe,EAAG,QAAQ,EAAA;QACrE,IAAI,KAAK,IAAI,IAAI,EAAE;AACjB,YAAA,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,gBAAgB,IAAI,UAAU,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,OAAO,EAAE,CAAC;KACX;8GARU,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;4GAA1B,0BAA0B,EAAA,IAAA,EAAA,wBAAA,EAAA,CAAA,CAAA,EAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,wBAAwB;AAC/B,iBAAA,CAAA;;;MC0CY,gBAAgB,CAAA;IAEpB,OAAO,OAAO,CAAC,MAAsB,EAAA;QAC1C,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;AAC1B,YAAA,SAAS,EAAE;AACT,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,MAAM,EAAE;AAChD,aAAA;SACF,CAAA;KACF;AAEM,IAAA,OAAO,QAAQ,GAAA;QACpB,OAAO;AACL,YAAA,QAAQ,EAAE,gBAAgB;SAC3B,CAAA;KACF;8GAfU,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAhB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,gBAAgB,iBAtBzB,mBAAmB;YACnB,6BAA6B;YAC7B,oCAAoC;YACpC,iCAAiC;YACjC,iCAAiC;YACjC,+BAA+B;YAC/B,gCAAgC;YAChC,sCAAsC;YACtC,kBAAkB;YAClB,yBAAyB;YACzB,0BAA0B;YAC1B,mBAAmB;YACnB,gCAAgC;AAChC,YAAA,wBAAwB,CAGxB,EAAA,OAAA,EAAA,CAAA,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,aAGhG,mBAAmB,CAAA,EAAA,CAAA,CAAA,EAAA;+GAGV,gBAAgB,EAAA,OAAA,EAAA,CANzB,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAMvF,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAxB5B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,mBAAmB;wBACnB,6BAA6B;wBAC7B,oCAAoC;wBACpC,iCAAiC;wBACjC,iCAAiC;wBACjC,+BAA+B;wBAC/B,gCAAgC;wBAChC,sCAAsC;wBACtC,kBAAkB;wBAClB,yBAAyB;wBACzB,0BAA0B;wBAC1B,mBAAmB;wBACnB,gCAAgC;wBAChC,wBAAwB;AACzB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,WAAW,EAAE,cAAc,EAAE,cAAc;AACjG,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,mBAAmB;AACpB,qBAAA;AACF,iBAAA,CAAA;;;MC9CY,oBAAoB,CAAA;AAOhC;;ACPD;;AAEG;;ACFH;;AAEG;;;;"}
@@ -0,0 +1,4 @@
1
+ import { AbstractControl } from "@angular/forms";
2
+ export declare function PhoneValidator(control: AbstractControl): {
3
+ invalidPhone: boolean;
4
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "survery-lib",
3
- "version": "0.1.53",
3
+ "version": "0.1.54",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^16.1.0",
6
6
  "@angular/core": "^16.1.0"
@@ -5,5 +5,6 @@ export declare enum InputTypeEnum {
5
5
  Email = 4,
6
6
  Number = 5,
7
7
  Password = 6,
8
- Text = 7
8
+ Text = 7,
9
+ Phone = 8
9
10
  }