ng-ipa-library 6.1.3 → 6.1.5

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.
@@ -417,7 +417,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImpo
417
417
  }], type: [{
418
418
  type: Input
419
419
  }], label: [{
420
- type: Input
420
+ type: Input,
421
+ args: [{ required: true }]
421
422
  }], placeholder: [{
422
423
  type: Input
423
424
  }], required: [{
@@ -514,7 +515,6 @@ class DropdownInputComponent {
514
515
  this.validationService = validationService;
515
516
  this.controlDir = controlDir;
516
517
  this.isPlatformCodeDesignSystem = false;
517
- this.label = 'text input';
518
518
  this.items = [];
519
519
  this.required = false;
520
520
  this.searchable = false;
@@ -588,10 +588,6 @@ class DropdownInputComponent {
588
588
  item.classList.add('active');
589
589
  // Update Data
590
590
  hiddenSelect.value = value;
591
- this.writeValue(value);
592
- this.onChange(value);
593
- this.formControl.setValue(value);
594
- this.formControl.markAsTouched();
595
591
  // Trigger Change Event
596
592
  hiddenSelect.dispatchEvent(new Event('change', { bubbles: true }));
597
593
  });
@@ -599,24 +595,27 @@ class DropdownInputComponent {
599
595
  });
600
596
  }
601
597
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownInputComponent, deps: [{ token: IPAFormService }, { token: i2$1.NgControl, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
602
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownInputComponent, isStandalone: false, selector: "ipa-dropdown-input", inputs: { id: "id", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", firstItemLabel: "firstItemLabel", searchable: "searchable", notFoundText: "notFoundText", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm", fromGenerateForm: "fromGenerateForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">\u0627\u062E\u062A\u0631 {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
598
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.15", type: DropdownInputComponent, isStandalone: false, selector: "ipa-dropdown-input", inputs: { id: "id", isPlatformCodeDesignSystem: "isPlatformCodeDesignSystem", label: "label", items: "items", textField: "textField", valueField: "valueField", required: "required", firstItemLabel: "firstItemLabel", searchable: "searchable", notFoundText: "notFoundText", classes: "classes", containerClasses: "containerClasses", isArabicForm: "isArabicForm", fromGenerateForm: "fromGenerateForm" }, viewQueries: [{ propertyName: "input", first: true, predicate: ["select"], descendants: true, static: true }], ngImport: i0, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">\u0627\u062E\u062A\u0631 {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i2$2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2$2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2$2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2$1.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ɵɵDir, selector: "[dir]", inputs: ["dir"], outputs: ["dirChange"], exportAs: ["dir"] }, { kind: "component", type: i5.NgSelectComponent, selector: "ng-select", inputs: ["ariaLabelDropdown", "bindLabel", "bindValue", "ariaLabel", "markFirst", "placeholder", "fixedPlaceholder", "notFoundText", "typeToSearchText", "preventToggleOnRightClick", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "tabFocusOnClearButton", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "ngClass", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick", "keyDownFn"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }] }); }
603
599
  }
604
600
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DropdownInputComponent, decorators: [{
605
601
  type: Component,
606
- args: [{ selector: 'ipa-dropdown-input', standalone: false, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">\u0627\u062E\u062A\u0631 {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>" }]
602
+ args: [{ selector: 'ipa-dropdown-input', standalone: false, template: "<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">\u0627\u062E\u062A\u0631 {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>" }]
607
603
  }], ctorParameters: () => [{ type: IPAFormService }, { type: i2$1.NgControl, decorators: [{
608
604
  type: Self
609
605
  }] }], propDecorators: { input: [{
610
606
  type: ViewChild,
611
607
  args: ['select', { static: true }]
612
608
  }], id: [{
613
- type: Input
609
+ type: Input,
610
+ args: [{ required: true }]
614
611
  }], isPlatformCodeDesignSystem: [{
615
612
  type: Input
616
613
  }], label: [{
617
- type: Input
614
+ type: Input,
615
+ args: [{ required: true }]
618
616
  }], items: [{
619
- type: Input
617
+ type: Input,
618
+ args: [{ required: true }]
620
619
  }], textField: [{
621
620
  type: Input
622
621
  }], valueField: [{
@@ -1254,26 +1253,28 @@ class ShareButtonComponent {
1254
1253
  this.isPlatformCodeDesignSystem = false;
1255
1254
  }
1256
1255
  ngAfterViewInit() {
1257
- const elements = document.getElementsByClassName('sb-show-icon');
1258
- if (!elements[0].getAttribute('id')) {
1256
+ const button = document.getElementsByClassName('sb-show-icon')[0];
1257
+ if (!button.getAttribute('id')) {
1259
1258
  if (this.isPlatformCodeDesignSystem) {
1260
- elements[0].setAttribute('type', 'button');
1261
- elements[0].innerHTML = this.btnLabel;
1262
- elements[0].classList.add('mb-2', 'tp-link');
1259
+ button.setAttribute('type', 'button');
1260
+ button.innerHTML = this.btnLabel;
1261
+ button.classList.add('mb-2', 'tp-link');
1263
1262
  const img = document.createElement('img');
1264
1263
  img.src =
1265
1264
  '/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg';
1266
1265
  img.classList.add('link-text-icon');
1267
- elements[0].appendChild(img);
1266
+ button.appendChild(img);
1267
+ button.classList.remove('sb-show-icon', 'sb-wrapper');
1268
+ button.removeAttribute('_ngcontent-ng-c3896670994');
1268
1269
  }
1269
1270
  else {
1270
- elements[0].setAttribute('type', 'button');
1271
- elements[0].setAttribute('id', 'IPAShareBtn');
1271
+ button.setAttribute('type', 'button');
1272
+ button.setAttribute('id', 'IPAShareBtn');
1272
1273
  const label = document.createElement('label');
1273
1274
  label.innerHTML = this.btnLabel;
1274
1275
  label.classList.add('sm-share-title');
1275
1276
  label.classList.add('me-1');
1276
- elements[0].before(label);
1277
+ button.before(label);
1277
1278
  }
1278
1279
  }
1279
1280
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ng-ipa-library.mjs","sources":["../../../projects/ng-ipa-library/src/lib/pipes/hijri-date.pipe.ts","../../../projects/ng-ipa-library/src/lib/pipes/pipes.module.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/ipa-form.service.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.html","../../../projects/ng-ipa-library/src/lib/core/services/loader.service.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.html","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.ts","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.html","../../../projects/ng-ipa-library/src/lib/share-button/share-button.module.ts","../../../projects/ng-ipa-library/src/lib/ng-ipa-library.module.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/loading.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/common.service.ts","../../../projects/ng-ipa-library/src/lib/core/services/error.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/error.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/auth.service.ts","../../../projects/ng-ipa-library/src/lib/core/services/token.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/token.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/myIPAToken.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbs.service.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbsV2.service.ts","../../../projects/ng-ipa-library/src/public-api.ts","../../../projects/ng-ipa-library/src/ng-ipa-library.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport momentHijri from 'moment-hijri';\r\n@Pipe({\n name: 'hijriDate',\n standalone: false\n})\r\nexport class HijriDatePipe implements PipeTransform {\r\n transform(\r\n date: string,\r\n format: string = 'iYYYY-iMM-iDD',\r\n lang: 'ar' | 'en' = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HijriDatePipe } from './hijri-date.pipe';\r\n\r\n@NgModule({\r\n declarations: [HijriDatePipe],\r\n exports: [HijriDatePipe],\r\n})\r\nexport class PipesModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors } from '@angular/forms';\r\nimport momentHijri from 'moment-hijri';\r\nimport { Moment } from 'moment';\r\nimport { NgbDate, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IPAFormService {\r\n constructor(private parserFormatter: NgbDateParserFormatter) {}\r\n\r\n /**\r\n * check link is valid.\r\n */\r\n static linkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?)$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { link: true };\r\n }\r\n\r\n /**\r\n * check mp4 link is valid.\r\n */\r\n static mp4LinkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?(\\/[\\w\\u0600-\\u06FF]+\\.mp4))$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { linkMP4: true };\r\n }\r\n\r\n /**\r\n * check mobile number is valid.\r\n */\r\n static mobileNo(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink = /^05\\d{8}$/.test(control.value);\r\n return isValidLink || !control.value ? null : { mobileNo: true };\r\n }\r\n\r\n /**\r\n * check email is valid.\r\n */\r\n static email(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { Email: true };\r\n }\r\n\r\n /**\r\n * check national ID or iqama ID is valid.\r\n */\r\n static checkID(control: AbstractControl): ValidationErrors | null {\r\n let isValid = false;\r\n const value = control.value;\r\n if (\r\n IPAFormService.nationalIdValidate(value) ||\r\n IPAFormService.iqamaIdValidate(value)\r\n ) {\r\n isValid = true;\r\n } else {\r\n isValid = false;\r\n }\r\n return isValid || !value ? null : { checkId: true };\r\n }\r\n\r\n static validHijriDate(control: AbstractControl): ValidationErrors | null {\r\n const date: NgbDate = control.value;\r\n const isValid = IPAFormService.checkHijriDateValid(date);\r\n return isValid || !date\r\n ? null\r\n : {\r\n ngbDate: {\r\n invalid:\r\n date?.year +\r\n '-' +\r\n (date?.month > 10 ? date?.month : '0' + date?.month) +\r\n '-' +\r\n (date?.day > 10 ? date?.day : '0' + date?.day),\r\n },\r\n };\r\n }\r\n\r\n getErrorMessage(\r\n control: UntypedFormControl,\r\n patternErrorMsg = '',\r\n isArabic: boolean\r\n ): string | null {\r\n for (const propertyName in control?.errors) {\r\n if (\r\n control?.errors.hasOwnProperty(propertyName) &&\r\n (control.touched || control.dirty)\r\n ) {\r\n return this.getValidatorErrorMessage(\r\n propertyName,\r\n control.errors[propertyName],\r\n patternErrorMsg,\r\n isArabic\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * convert gregorian date to hijri date (Based on Umm al-Qura calculations).\r\n * @param date: gregorian date\r\n * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,\r\n * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,\r\n * dd => ن, ddd => إثنين, dddd => الإثنين\r\n * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'\r\n * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'\r\n */\r\n convertToHijriDate(\r\n date: string,\r\n format = 'iYYYY-iMM-iDD',\r\n lang = 'ar-SA'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n\r\n convertToGregorianDate(\r\n date: Moment,\r\n format = 'YYYY-MM-DD',\r\n lang = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n const m = momentHijri.iConvert.toGregorian(\r\n date.year(),\r\n date.month(),\r\n date.date()\r\n );\r\n return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);\r\n }\r\n\r\n getCurrentHijriDate() {\r\n momentHijri.locale('en');\r\n return momentHijri().format('iYYYY/iMM/iDD');\r\n }\r\n\r\n private getValidatorErrorMessage(\r\n validatorName: string,\r\n validatorValue: any,\r\n patternErrorMsg: string,\r\n isArabic: boolean\r\n ): string {\r\n if (validatorName === 'pattern') {\r\n validatorValue = this.addPatternMsg(validatorValue, patternErrorMsg);\r\n }\r\n const config: any = {\r\n required: isArabic ? 'هذا الحقل مطلوب' : 'this field required',\r\n pattern: `${validatorValue.message}`,\r\n Email:\r\n (isArabic ? 'خطأ في البريد الالكتروني ' : 'Invalid email ') +\r\n '(example@example.com)',\r\n maxlength: isArabic\r\n ? `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`\r\n : `this field is more than (${validatorValue.requiredLength}) letter`,\r\n minlength: isArabic\r\n ? `على الأقل عدد ${validatorValue.requiredLength} حرف`\r\n : `this field is less than (${validatorValue.requiredLength}) letter`,\r\n min: isArabic\r\n ? `رقم اكبر من أو يساوي ${validatorValue.min}`\r\n : `number more than or equal (${validatorValue.min})`,\r\n max: isArabic\r\n ? `رقم اصغر من أو يساوي ${validatorValue.max}`\r\n : `number less than or equal (${validatorValue.min})`,\r\n ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),\r\n checkId: isArabic\r\n ? 'رقم الهوية أو الاقامة غير صحيح'\r\n : 'Wrong ID or Iqama number',\r\n link:\r\n (isArabic ? 'الرابط غير صحيح ' : 'Wrong link ') +\r\n '(http://example.com)',\r\n linkMP4:\r\n (isArabic ? 'رابط MP4 غير صحيح ' : 'Wrong MP4 link ') +\r\n '(http://example.com/example.mp4)',\r\n mobileNo:\r\n (isArabic ? 'خطأ في رقم الجوال ' : 'Wrong mobile number ') +\r\n '(05xxxxxxxx)',\r\n };\r\n return config[validatorName];\r\n }\r\n\r\n private addPatternMsg(validatorValue: any, patternErrorMsg: string) {\r\n let pattern = {\r\n ...validatorValue,\r\n message: patternErrorMsg,\r\n };\r\n return pattern;\r\n }\r\n\r\n private getNgbDatepickerErrorMsg(validatorValue: any): string {\r\n let msg = '';\r\n if (validatorValue.maxDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.maxDate.actual\r\n )}\" اكبر من تاريخ اليوم \"${this.parserFormatter.format(\r\n validatorValue.maxDate.maxDate\r\n )}\"`;\r\n } else if (validatorValue.minDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.minDate.actual\r\n )}\" يجب ان يكون اكبر من أو يساوي تاريخ البداية \"${this.parserFormatter.format(\r\n validatorValue.minDate.minDate\r\n )}\"`;\r\n } else if (validatorValue.invalid) {\r\n msg = `التاريخ المدخل غير صحيح ${validatorValue.invalid}.`;\r\n }\r\n return msg;\r\n }\r\n\r\n private static checkHijriDateValid(date: NgbDate): boolean {\r\n return !(\r\n momentHijri.iDaysInMonth(date?.year, date?.month - 1) < date?.day ||\r\n date?.day <= 0 ||\r\n date?.month <= 0 ||\r\n date?.month > 12 ||\r\n date?.year?.toString().length !== 4\r\n );\r\n }\r\n\r\n private static convertToEn(value: string) {\r\n let newValue = '';\r\n for (let i = 0; i < value.length; i++) {\r\n let ch = value.charCodeAt(i);\r\n if (ch >= 1584 && ch <= 1650) {\r\n let newChar = ch - 1584;\r\n newValue = newValue + String.fromCharCode(newChar);\r\n } else {\r\n newValue = newValue + String.fromCharCode(ch);\r\n }\r\n }\r\n return newValue;\r\n }\r\n\r\n private static nationalIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '1'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static iqamaIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '2'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: ['./text-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class TextInputComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('input', { static: true }) input!: ElementRef;\r\n @Input() isPlatformCodeDesignSystem: boolean = false;\r\n @Input() id!: string;\r\n @Input() type = 'text';\r\n @Input() label!: string;\r\n @Input() placeholder!: string;\r\n @Input() required = false;\r\n @Input() patternErrorMsg!: string;\r\n @Input() onlyNumber = false;\r\n @Input() pattern = '';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n this.placeholder = this.placeholder\r\n ? this.placeholder\r\n : this.label ? 'اكتب ' + this.label : '';\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n checkIsNumber(event: Event) {\r\n if (this.onlyNumber) {\r\n const initialValue = this.formControl.value;\r\n const newValue = initialValue.replace(/[^0-9]*/g, '');\r\n this.formControl.patchValue(newValue);\r\n this.formControl.markAsPristine();\r\n if (initialValue !== this.formControl.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-textarea-input',\r\n templateUrl: './textarea-input.component.html',\r\n styleUrls: ['./textarea-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class TextareaInputComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('input', { static: true }) input: ElementRef<any> =\r\n new ElementRef<any>(null);\r\n @Input() isPlatformCodeDesignSystem: boolean = false;\r\n @Input() id!: string;\r\n @Input() label!: string;\r\n @Input() placeholder!: string;\r\n @Input() required = false;\r\n @Input() patternErrorMsg!: string;\r\n @Input() pattern!: string;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n this.placeholder = this.placeholder\r\n ? this.placeholder\r\n : this.label ? 'اكتب ' + this.label : '';\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-dropdown-input',\r\n templateUrl: './dropdown-input.component.html',\r\n styleUrls: ['./dropdown-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class DropdownInputComponent implements OnInit {\r\n @ViewChild('select', { static: true }) input!: HTMLSelectElement;\r\n @Input() id!: string;\r\n @Input() isPlatformCodeDesignSystem = false;\r\n @Input() label: string = 'text input';\r\n @Input() items: any[] = [];\r\n @Input() textField!: string;\r\n @Input() valueField!: string;\r\n @Input() required = false;\r\n @Input() firstItemLabel!: string;\r\n @Input() searchable = false;\r\n @Input() notFoundText = 'لا يوجد بيانات';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n @Input() fromGenerateForm = false;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n\r\n document.addEventListener('DOMContentLoaded', () => {\r\n if (this.isPlatformCodeDesignSystem) this.initCustomDropdowns();\r\n });\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n if (this.input) this.input.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n '',\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n initCustomDropdowns(): void {\r\n // Select all custom wrappers\r\n const wrappers = document.querySelectorAll(\r\n '.custom-dropdown-wrapper-' + this.id\r\n );\r\n wrappers.forEach((wrapper) => {\r\n // Find parent container\r\n const parent = wrapper.closest('.form-group') || wrapper.parentElement;\r\n if (!parent) return;\r\n // Locate Elements\r\n const hiddenSelect = parent.querySelector('select');\r\n const dropdownButton = wrapper.querySelector('.dropdown-toggle');\r\n const dropdownButtonSpan =\r\n dropdownButton!.querySelector('span') || dropdownButton;\r\n const dropdownItems = wrapper.querySelectorAll('.dropdown-item');\r\n if (!hiddenSelect || !dropdownButton) return;\r\n // Sync visual state with hidden select on load\r\n if (hiddenSelect.selectedIndex > -1) {\r\n const selectedOption = hiddenSelect.options[hiddenSelect.selectedIndex];\r\n dropdownButtonSpan!.textContent = selectedOption.text;\r\n // Set active class\r\n dropdownItems.forEach((item) => {\r\n const isActive =\r\n item.getAttribute('data-value') === hiddenSelect.value;\r\n item.classList.toggle('active', isActive);\r\n });\r\n }\r\n // Handle Item Click\r\n dropdownItems.forEach((item) => {\r\n item.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const value = item.getAttribute('data-value');\r\n const text = item.textContent!.trim();\r\n // Update UI\r\n dropdownButtonSpan!.textContent = text || `اختر ${this.label}`; \r\n dropdownItems.forEach((i) => i.classList.remove('active'));\r\n item.classList.add('active');\r\n // Update Data\r\n hiddenSelect.value = value!;\r\n this.writeValue(value);\r\n this.onChange(value);\r\n this.formControl.setValue(value);\r\n this.formControl.markAsTouched();\r\n // Trigger Change Event\r\n hiddenSelect.dispatchEvent(new Event('change', { bubbles: true }));\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">اختر {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoaderService {\r\n public isLoading = new BehaviorSubject(false);\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\n selector: 'ipa-loader',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n standalone: false\n})\r\nexport class LoaderComponent implements AfterViewInit {\r\n loading = true;\r\n @Input() isLocal = false;\r\n\r\n constructor(\r\n private loaderService: LoaderService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n const loader = document.getElementById('cover-spin');\r\n if (loader) {\r\n if (this.loading) {\r\n loader.style.display = 'flex';\r\n } else {\r\n if (loader.style.display !== 'none') loader.style.display = 'none';\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div id=\"cover-spin\" *ngIf=\"loading && isLocal\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport {\r\n DropzoneConfigInterface,\r\n DropzoneDirective,\r\n} from 'ngx-dropzone-wrapper';\r\nimport { UntypedFormControl } from '@angular/forms';\r\n\r\n@Component({\n selector: 'ipa-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: false\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @ViewChild(DropzoneDirective, { static: false })\r\n dropzoneDir!: DropzoneDirective;\r\n @Input() isArabicForm = true;\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() acceptedFiles = '';\r\n @Input() multiple = 1; // set maxFiles (NOT uploadMultiple)in the config object,\r\n @Input() maxFileSize = 2;\r\n @Input() method = 'POST';\r\n @Input() autoUpload = false;\r\n @Input() apiUrl = 'apiUrl';\r\n @Input() authorization!: string;\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n dragEnter = false;\r\n errors: string[] = [];\r\n config!: DropzoneConfigInterface;\r\n filesAdded: File[] = [];\r\n currentFiles: File[] = [];\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n\r\n constructor(\r\n // private authService: AuthService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.setConfiguration();\r\n }\r\n\r\n operationCompleted(e: any): void {\r\n if (this.filesAdded.length > 0) {\r\n this.successUpload.emit(this.filesAdded);\r\n this.filesAdded = [];\r\n }\r\n this.dropzoneDir.reset();\r\n }\r\n\r\n onUploadSuccess(e: any): void {\r\n const file = e[0];\r\n if (file.status === 'success') {\r\n this.filesAdded.push(file);\r\n }\r\n const message = this.isArabicForm\r\n ? 'تم تحميل المرفقات بنجاح'\r\n : 'Attachments uploaded successfully';\r\n this.toastrService.success(message);\r\n }\r\n\r\n onUploadError(e: any): void {\r\n if (e[1]) {\r\n this.errors = [];\r\n this.errors.push(`${e[1]} (${e[0].name})`);\r\n }\r\n }\r\n\r\n fileWasAdded(e: File): void {\r\n const myDropzone = this.dropzoneDir.dropzone();\r\n if (this.multiple === 1) {\r\n this.currentFiles = [];\r\n this.filesAdded = [];\r\n this.errors = [];\r\n const files = myDropzone.files;\r\n if (files.length > 1) {\r\n myDropzone.removeFile(files[0]);\r\n }\r\n }\r\n this.currentFiles.push(e);\r\n this.fileAdded.emit(e);\r\n }\r\n\r\n sending(e: any): void {\r\n this.errors = [];\r\n }\r\n\r\n reset(e: any): void {}\r\n\r\n deleteFile(file: any): void {\r\n this.currentFiles = this.currentFiles.filter(\r\n (x) => x.name !== file.name && x.size !== file.size\r\n );\r\n this.errors = [];\r\n this.fileDeleted.emit();\r\n }\r\n\r\n private setConfiguration() {\r\n this.label = (this.isArabicForm ? 'رفع ' : 'Upload ') + this.label;\r\n this.config = {\r\n url: this.apiUrl,\r\n method: this.method,\r\n headers: {\r\n Authorization: 'Bearer ' + this.authorization,\r\n },\r\n maxFilesize: this.maxFileSize,\r\n maxFiles: this.multiple,\r\n uploadMultiple: this.multiple > 1,\r\n dictInvalidFileType: this.isArabicForm\r\n ? 'صيغة الملف غير مسموح بها'\r\n : 'the file format is not allowed',\r\n dictFileTooBig: this.isArabicForm\r\n ? 'الحجم تجاوز الحد المسموح'\r\n : `the file size must be less than or equal (${this.maxFileSize}) MB`,\r\n dictMaxFilesExceeded: this.isArabicForm\r\n ? 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف'\r\n : 'Please delete existing files to be able to upload this file',\r\n acceptedFiles: this.acceptedFiles,\r\n autoProcessQueue: this.autoUpload,\r\n previewTemplate: '<span></span>',\r\n dictRemoveFile: '',\r\n };\r\n }\r\n}\r\n","<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"text-danger\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? 'قم بسحب الملف أو اضغط هنا' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? 'الصيغة المسموح بها:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? 'اقصى حجم للمرفق:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>","import { Component, Input, OnInit, Self } from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\n\r\n@Component({\n selector: 'ipa-recaptcha',\n templateUrl: './recaptcha.component.html',\n styleUrls: ['./recaptcha.component.scss'],\n standalone: false\n})\r\nexport class RecaptchaComponent implements OnInit {\r\n @Input() siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang: 'ar' | 'en' = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n constructor(@Self() public controlDir: NgControl) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form/ipa-form.service';\r\nimport { Column, GenerateForm } from '../models/generateForm.model';\r\n\r\n@Component({\r\n selector: 'ipa-generate-form',\r\n templateUrl: './generate-form.component.html',\r\n styleUrls: ['./generate-form.component.scss'],\r\n standalone: false\r\n})\r\nexport class GenerateFormComponent implements OnInit {\r\n @Input() generateForm!: UntypedFormGroup;\r\n @Input() form!: GenerateForm;\r\n @Input() isArabicForm = true;\r\n @Input() isPlatformCodeDesignSystem = false;\r\n\r\n // recaptcha inputs\r\n @Input() siteKey!: string;\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang: 'ar' | 'en' = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n\r\n // file upload outputs\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n\r\n errorMsg!: string | null;\r\n\r\n constructor(private validationService: IPAFormService) {}\r\n\r\n ngOnInit(): void {\r\n this.changeDataValueForEngForm();\r\n this.createForm();\r\n }\r\n\r\n getFormControls(formControlName: string) {\r\n return this.generateForm.get('items' + formControlName) as UntypedFormArray;\r\n }\r\n\r\n getErrorMessage(formControlName: string): string | null {\r\n const formControl = this.generateForm.controls[\r\n formControlName\r\n ] as UntypedFormControl;\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n formControl,\r\n '',\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n SuccessUpload(event: any) {\r\n this.successUpload.emit(event);\r\n }\r\n\r\n FileAdded(file: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(file);\r\n this.fileAdded.emit(file);\r\n }\r\n\r\n FileDeleted(event: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(null);\r\n this.fileDeleted.emit(event);\r\n }\r\n\r\n private changeDataValueForEngForm() {\r\n this.form.columns = this.form.columns.map((column) => {\r\n return {\r\n ...column,\r\n data: column.data?.map((item) => {\r\n const value = item[column.textField!];\r\n return {\r\n ...item,\r\n [column.textField!]: this.isArabicForm\r\n ? value.split(',')[0]\r\n : value.split(',')[1],\r\n };\r\n }),\r\n };\r\n });\r\n }\r\n\r\n private createForm() {\r\n this.form.columns.forEach((column) => {\r\n if (column.type === 'checkbox') {\r\n this.addCheckboxControl(column);\r\n } else {\r\n this.generateForm.addControl(\r\n column.formControlName,\r\n new UntypedFormControl(\r\n column.type === 'file' && column.multipleFile! > 1 ? [] : null,\r\n [\r\n column.required ? Validators.required : Validators.nullValidator,\r\n column.validationPattern\r\n ? Validators.pattern(column.validationPattern)\r\n : Validators.nullValidator,\r\n ['select', 'radio', 'file', 'recaptcha'].indexOf(column.type) <=\r\n -1\r\n ? Validators.maxLength(column.size!)\r\n : Validators.nullValidator,\r\n column.type === 'number'\r\n ? Validators.min(1)\r\n : Validators.nullValidator,\r\n column.formControlName === 'email'\r\n ? IPAFormService.email\r\n : Validators.nullValidator,\r\n column.formControlName === 'mobileNo'\r\n ? IPAFormService.mobileNo\r\n : Validators.nullValidator,\r\n column.formControlName === 'userId'\r\n ? IPAFormService.checkID\r\n : Validators.nullValidator,\r\n \r\n ]\r\n )\r\n );\r\n }\r\n });\r\n }\r\n\r\n private addCheckboxControl(column: Column) {\r\n let checkboxGroup = new UntypedFormArray(\r\n column.data!.map((item) => {\r\n return new UntypedFormGroup({\r\n [column.valueField!]: new UntypedFormControl(item[column.valueField!]),\r\n [column.textField!]: new UntypedFormControl(item[column.textField!]),\r\n checkbox: new UntypedFormControl(false),\r\n });\r\n })\r\n );\r\n\r\n this.generateForm.addControl(\r\n column.formControlName,\r\n new UntypedFormControl(\r\n null,\r\n column.required ? Validators.required : Validators.nullValidator\r\n )\r\n );\r\n this.generateForm.addControl(\r\n 'items' + column.formControlName,\r\n checkboxGroup\r\n );\r\n checkboxGroup.valueChanges.subscribe((value: any[]) => {\r\n let selectedItems = this.getCheckboxSelectedValues(value);\r\n if (selectedItems) {\r\n this.generateForm.controls[column.formControlName].patchValue(\r\n selectedItems.map((x) => x[column.textField!])\r\n );\r\n } else {\r\n this.generateForm.controls[column.formControlName].patchValue(null);\r\n this.generateForm.controls[column.formControlName].markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n private getCheckboxSelectedValues(items: any[]): any[] | null {\r\n let selectedItems = items.filter((item) => item.checkbox);\r\n return selectedItems.length > 0 ? selectedItems : null;\r\n }\r\n}\r\n","<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\r\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\r\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateStruct,\r\n NgbInputDatepicker,\r\n NgbInputDatepickerConfig,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n standalone: false\r\n})\r\nexport class DatepickerComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('d') datepicker!: NgbInputDatepicker;\r\n @Input() id!: string;\r\n @Input() label = 'datepicker';\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() required = false;\r\n @Input() maxDate!: NgbDateStruct;\r\n @Input() minDate!: NgbDateStruct;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n isHijriDatepicker!: boolean;\r\n today = this.calendar.getToday();\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private ipaFormService: IPAFormService,\r\n private calendar: NgbCalendar,\r\n @Self() public controlDir: NgControl,\r\n config: NgbInputDatepickerConfig,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n config.container = null;\r\n config.placement = 'bottom-center';\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n if (this.isHijriDatepicker) validators.push(IPAFormService.validHijriDate);\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n openDatepicker(event: Event) {\r\n if (!this.datepicker.isOpen()) {\r\n setTimeout(() => {\r\n this.changeDatepickerTitles();\r\n }, 100);\r\n this.datepicker.toggle();\r\n event.preventDefault();\r\n return;\r\n }\r\n this.datepicker.close();\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.ipaFormService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n private changeDatepickerTitles(): void {\r\n // change pervious month button title\r\n const arrowPre = document\r\n .getElementsByClassName('ngb-dp-arrow-prev')\r\n .item(0) as HTMLDivElement;\r\n const buttonPrev = arrowPre.getElementsByTagName('button').item(0);\r\n if (this.isArabicForm) buttonPrev!.title! = 'الشهر السابق';\r\n else buttonPrev!.title! = 'Pervious month';\r\n\r\n // change next month button title\r\n const arrowNext = document\r\n .getElementsByClassName('ngb-dp-arrow-next')\r\n .item(0) as HTMLDivElement;\r\n const buttonNext = arrowNext.getElementsByTagName('button').item(0);\r\n if (this.isArabicForm) buttonNext!.title! = 'الشهر التالي';\r\n else buttonNext!.title! = 'Next month';\r\n\r\n // change month list title\r\n const divList = document\r\n .getElementsByClassName('ngb-dp-navigation-select')\r\n .item(0) as HTMLDivElement;\r\n const selectList = divList.getElementsByTagName('select');\r\n if (this.isArabicForm) {\r\n selectList.item(0)!.title! = 'اختر الشهر';\r\n selectList.item(1)!.title! = 'اختر السنة';\r\n } else {\r\n selectList.item(0)!.title! = 'Select month';\r\n selectList.item(1)!.title! = 'Select year';\r\n }\r\n }\r\n}\r\n","<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">اليوم</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">مسح</button>\r\n </ng-template>\r\n</div>\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'محرم',\r\n 'صفر',\r\n 'ربيع الأول',\r\n 'ربيع الآخر',\r\n 'جمادى الأولى',\r\n 'جمادى الآخرة',\r\n 'رجب',\r\n 'شعبان',\r\n 'رمضان',\r\n 'شوال',\r\n 'ذو القعدة',\r\n 'ذو الحجة',\r\n];\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { IslamicI18n } from './IslamicI18n';\r\n@Component({\n selector: 'ipa-hijri-datepicker',\n templateUrl: '../datepicker.component.html',\n styleUrls: ['../datepicker.component.scss'],\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\n { provide: NgbDatepickerI18n, useClass: IslamicI18n },\n ],\n standalone: false\n})\r\nexport class HijriDatepickerComponent extends DatepickerComponent {\r\n isHijriDatepicker = true;\r\n}\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'اغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n];\r\n\r\n@Injectable()\r\nexport class Gregorian18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { Gregorian18n } from './gregorian18n';\r\n\r\n@Component({\n selector: 'ipa-gregorian-datepicker',\n templateUrl: '../datepicker.component.html',\n styleUrls: ['../datepicker.component.scss'],\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarGregorian },\n { provide: NgbDatepickerI18n, useClass: Gregorian18n },\n ],\n standalone: false\n})\r\nexport class GregorianDatepickerComponent extends DatepickerComponent {\r\n isHijriDatepicker = false;\r\n}\r\n","import { Component, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ipa-share-button',\r\n templateUrl: './share-button.component.html',\r\n styleUrls: ['./share-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class ShareButtonComponent implements AfterViewInit {\r\n @Input() title = '';\r\n @Input() description = '';\r\n @Input() btnLabel = '';\r\n @Input() isPlatformCodeDesignSystem = false;\r\n constructor() {}\r\n ngAfterViewInit(): void {\r\n const elements = document.getElementsByClassName('sb-show-icon');\r\n if (!elements[0].getAttribute('id')) {\r\n if (this.isPlatformCodeDesignSystem) {\r\n elements[0].setAttribute('type', 'button');\r\n elements[0].innerHTML = this.btnLabel;\r\n elements[0].classList.add('mb-2', 'tp-link');\r\n const img = document.createElement('img');\r\n img.src =\r\n '/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg';\r\n img.classList.add('link-text-icon');\r\n elements[0].appendChild(img);\r\n } else {\r\n elements[0].setAttribute('type', 'button');\r\n elements[0].setAttribute('id', 'IPAShareBtn');\r\n const label = document.createElement('label');\r\n label.innerHTML = this.btnLabel;\r\n label.classList.add('sm-share-title');\r\n label.classList.add('me-1');\r\n elements[0].before(label);\r\n }\r\n }\r\n }\r\n}\r\n","<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n FaIconLibrary,\r\n FontAwesomeModule,\r\n} from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\r\nimport { ShareButtonsPopupModule } from 'ngx-sharebuttons/popup';\r\nimport { ShareButtonComponent } from './share-button.component';\r\n\r\n@NgModule({\r\n declarations: [ShareButtonComponent],\r\n imports: [\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ShareButtonComponent,\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ]\r\n})\r\nexport class ShareButtonModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIconPacks(fas);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\nimport { TextInputComponent } from './ipa-form/text-input/text-input.component';\r\nimport { TextareaInputComponent } from './ipa-form/textarea-input/textarea-input.component';\r\nimport { DropdownInputComponent } from './ipa-form/dropdown-input/dropdown-input.component';\r\nimport { LoaderComponent } from './core/components/loading/loading.component';\r\nimport { GenerateFormComponent } from './generate-form/generate-form.component';\r\nimport { FileUploadComponent } from './ipa-form/file-upload/file-upload.component';\r\nimport { DatepickerComponent } from './ipa-form/datepicker/datepicker.component';\r\nimport { HijriDatepickerComponent } from './ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nimport { GregorianDatepickerComponent } from './ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nimport { ShareButtonModule } from './share-button/share-button.module';\r\nimport { RecaptchaComponent } from './ipa-form/recaptcha/recaptcha.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n DatepickerComponent,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n RecaptchaComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToastrModule,\r\n DropzoneModule,\r\n NgxCaptchaModule,\r\n PipesModule,\r\n NgbDatepickerModule,\r\n ShareButtonModule,\r\n NgSelectModule,\r\n ],\r\n exports: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n PipesModule,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n ShareButtonModule,\r\n RecaptchaComponent,\r\n ],\r\n})\r\nexport class NgIPALibraryModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService) {}\r\n\r\n removeRequest(req: HttpRequest<any>): void {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n this.requests.push(req);\r\n\r\n this.loaderService.isLoading.next(true);\r\n return new Observable((observer) => {\r\n const subscription = next.handle(req).subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(req);\r\n observer.next(event);\r\n }\r\n },\r\n (err) => {\r\n this.removeRequest(req);\r\n observer.error(err);\r\n },\r\n () => {\r\n this.removeRequest(req);\r\n observer.complete();\r\n }\r\n );\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(req);\r\n subscription.unsubscribe();\r\n };\r\n });\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.loaderService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n constructor(private toastrService: ToastrService) {}\r\n\r\n copyToClipboard(copyText: any, message: string) {\r\n navigator.clipboard.writeText(copyText.toString());\r\n this.toastrService.success(message, '', {\r\n positionClass: 'toast-bottom-right',\r\n });\r\n }\r\n\r\n print(element: string, title: string, classes?: string) {\r\n const styles = this.getElementTag('style');\r\n const links = this.getElementTag('link');\r\n const scripts = this.getElementTag('script');\r\n\r\n const printContents = document.getElementById(element)?.innerHTML;\r\n const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');\r\n const data = `\r\n <!DOCTYPE html>\r\n <head>\r\n <title> ${title} </title>\r\n <meta charset=\"utf-8\">\r\n ${links}\r\n ${styles}\r\n <style>\r\n @media print {\r\n .noPrint{\r\n display: none !important;\r\n }\r\n body {\r\n direction: rtl;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body class=\"${classes}\">\r\n ${printContents}\r\n ${scripts}\r\n </body>\r\n\r\n </html>`;\r\n popupWin?.document.open();\r\n popupWin?.document.write(data);\r\n popupWin?.document.close();\r\n popupWin?.focus();\r\n popupWin?.addEventListener('focus', () => {\r\n setTimeout(() => {\r\n if (popupWin.document.hasFocus()) {\r\n popupWin.print();\r\n popupWin.close();\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n\r\n return html.join('\\r\\n');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { ApiResponse } from '../../models/apiResponse';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\nimport { CommonService } from '../../services/common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n urls: ExceptionUrl[] = [];\r\n constructor(\r\n private toastrService: ToastrService,\r\n private commonService: CommonService\r\n ) {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n\r\n showErrorMsg(response: ApiResponse, toastrConfig: Partial<IndividualConfig>) {\r\n if (response.errors && response.errors.length > 0) {\r\n toastrConfig.enableHtml = true;\r\n let msg = '';\r\n response.errors.forEach((error) => {\r\n msg += `<li>${error}</li>`;\r\n });\r\n this.toastrService.error(\r\n `<ul>${msg}</ul>`,\r\n response.message,\r\n toastrConfig\r\n );\r\n } else {\r\n this.toastrService.error('', response.message, toastrConfig);\r\n }\r\n }\r\n\r\n show500ErrorMsg(\r\n response: ApiException,\r\n toastrConfig: Partial<IndividualConfig>\r\n ) {\r\n const msg = response.innerException + ' ' + (response.stackTrace ?? '');\r\n const toastr = this.toastrService.error(\r\n msg,\r\n response.message,\r\n toastrConfig\r\n );\r\n toastr.onShown.subscribe(() => {\r\n this.addCopyButton(response.message + '\\n' + msg);\r\n });\r\n }\r\n\r\n private addCopyButton(copyText: string) {\r\n const messageToast = document.getElementsByClassName(\r\n 'toast-message'\r\n )[0] as HTMLDivElement;\r\n const icon = document.createElement('i');\r\n icon.classList.add('ms-2', 'fas', 'fa-copy');\r\n icon.addEventListener('click', () => {\r\n this.commonService.copyToClipboard(\r\n copyText,\r\n 'تم نسخ الرسالة إلى الحافظة'\r\n );\r\n });\r\n messageToast.appendChild(icon);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../services/error.service';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { IndividualConfig } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private errorService: ErrorService) {}\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n const response = error.error as ApiException;\r\n const toastrConfig: Partial<IndividualConfig> = {\r\n disableTimeOut: true,\r\n closeButton: true,\r\n tapToDismiss: false,\r\n };\r\n switch (response.statusCode) {\r\n case 500:\r\n this.errorService.show500ErrorMsg(response, toastrConfig);\r\n break;\r\n\r\n default:\r\n this.errorService.showErrorMsg(response, toastrConfig);\r\n break;\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n private isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.errorService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public currentUser = new BehaviorSubject<DecodedToken>({ exp: 0 });\r\n currentUserUrl = '';\r\n constructor() {}\r\n\r\n getToken(): string {\r\n return localStorage.getItem('token') ?? '';\r\n }\r\n\r\n getDecodedToken(): any {\r\n return this.decodeJwt(this.getToken());\r\n }\r\n\r\n setCurrentUser(): void {\r\n const decodedToken = this.getDecodedToken() as DecodedToken;\r\n if (!decodedToken) {\r\n this.currentUser.next({ exp: 0 });\r\n return;\r\n }\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid,\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n getTokenFromHidden(): string {\r\n return (\r\n (document.querySelector('[id$=hfToken]') as HTMLInputElement).value ?? ''\r\n );\r\n }\r\n\r\n getDecodedTokenFromHidden(): any {\r\n return this.decodeJwt(this.getTokenFromHidden());\r\n }\r\n\r\n setCurrentUserFromHidden(): void {\r\n const decodedToken = this.getDecodedTokenFromHidden() as DecodedToken;\r\n if (!decodedToken) {\r\n this.currentUser.next({ exp: 0 });\r\n return;\r\n }\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid?.split('\\\\')[1],\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n setCurrentUserUrl(url: string) {\r\n this.currentUserUrl = url;\r\n }\r\n\r\n private decodeJwt(token: string): any {\r\n if (!token || token === 'null' || token === 'undefined') {\r\n return null;\r\n }\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TokenService {\n urls: ExceptionUrl[] = [];\n constructor() {}\n\n setExceptionUrls(urls: ExceptionUrl[]) {\n this.urls = urls;\n }\n\n addExceptionUrl(url: ExceptionUrl) {\n this.urls.push(url);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpClient,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\nimport { User } from '../../models/user.model';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { TokenService } from '../services/token.service';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n refresh = true;\r\n constructor(\r\n private authService: AuthService,\r\n private http: HttpClient,\r\n private loaderService: LoaderService,\r\n private tokenService: TokenService\r\n ) {\r\n this.loaderService.addExceptionUrl({\r\n path: '/api/users?refresh',\r\n method: 'GET',\r\n });\r\n this.tokenService.addExceptionUrl({\r\n path: '/api/users?refresh',\r\n method: 'GET',\r\n });\r\n }\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getToken();\r\n if (token) {\r\n this.isTokenExpired(token);\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n private isTokenExpired(token: string) {\r\n const redirectPath = location.pathname;\r\n const decodedToken = this.authService.getDecodedToken() as DecodedToken;\r\n const expDate = new Date((decodedToken.exp ?? 0) * 1000);\r\n if (expDate < new Date()) {\r\n location.replace('/ar/login?redirect=' + redirectPath);\r\n return;\r\n } else {\r\n if (this.authService.currentUserUrl) {\r\n if (this.refresh) {\r\n this.http\r\n .get<User>(this.authService.currentUserUrl + `users?refresh`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n })\r\n .subscribe((user) => {\r\n localStorage.setItem('token', user.token);\r\n this.refresh = false;\r\n setTimeout(() => {\r\n this.refresh = true;\r\n }, 60 * 1000);\r\n });\r\n }\r\n } else {\r\n throw new Error(\r\n \"provide current base user api url using this function authService.setCurrentUserUrl('https://...')\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.tokenService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { TokenService } from '../services/token.service';\r\n\r\n@Injectable()\r\nexport class myIPATokenInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {}\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getTokenFromHidden();\r\n if (token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.tokenService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsService {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.sub-section-title');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n setMainPageTitle(text: string, url: string) {\r\n const div = document.getElementsByClassName('main-section-title');\r\n if (div && div.length > 0) {\r\n div[0].innerHTML = `<a id=\"site-url\" href=\"${url}\">${text}</a>`;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n //get last child\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n lastIndex.classList.remove(...['bc-current']);\r\n //add new link\r\n lastIndex.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n //add new span and empty span\r\n const newSpan = this.createSpan(nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.childNodes;\r\n //get last child\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastSpan.innerHTML;\r\n lastSpan.classList.remove(...[spanClasses]);\r\n lastSpan.innerHTML = '';\r\n //add new link\r\n lastSpan.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const currentSpan = document.getElementById(\r\n 'ctl00_path'\r\n ) as HTMLSpanElement;\r\n currentSpan.innerHTML = '';\r\n const newSpan = document.createElement('span');\r\n currentSpan?.appendChild(newSpan);\r\n newSpan.appendChild(\r\n this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses)\r\n );\r\n const spans = currentSpan?.children;\r\n for (let i = 1; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex?.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n this.setCurrentNode(spans);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n let index = -1;\r\n for (let i = 0; i < spans.length; i++) {\r\n const span = spans.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = spans.length - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n spans?.item(index)?.remove();\r\n spans?.item(index)?.remove();\r\n } else {\r\n spans?.item(index)?.remove();\r\n spans?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n while (length > 0) {\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n length--;\r\n }\r\n if (spans.length > 0) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string, classes: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.classList.add(...[classes]);\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const lastSpanLink = spans\r\n ?.item(spans.length - 1)\r\n ?.children.item(0) as HTMLAnchorElement;\r\n lastSpan?.classList.add(...['bc-current']);\r\n lastSpan.innerHTML = lastSpanLink.innerHTML;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsV2Service {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.page-title .container');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n //get last child\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n //add new link\r\n const link = this.createLink(innerHTML, location.pathname, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n //add new span\r\n const newSpan = this.createSpan(nodeName);\r\n lastIndex.after(link, arrowImg, newSpan);\r\n lastIndex.remove();\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n //get last child\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n //add new link\r\n const link = this.createLink(innerHTML, location.pathname, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n lastIndex.after(link, arrowImg);\r\n lastIndex.remove();\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n //add new link\r\n const link = this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n lastIndex.after(link, arrowImg);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName);\r\n lastIndex.after(newSpan);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const currentDiv = document.getElementById(\r\n 'path'\r\n )?.querySelector('.container') as HTMLDivElement;\r\n currentDiv.innerHTML = '';\r\n //add first link\r\n const firstLink = this.createLink(\r\n nodeList[0].nodeName,\r\n nodeList[0].nodeUrl, linkClasses\r\n );\r\n currentDiv.appendChild(firstLink);\r\n //add arrow img\r\n const firstArrowImg = this.createImg(imgClasses);\r\n currentDiv.appendChild(firstArrowImg);\r\n //add rest of nodes\r\n for (let i = 1; i < nodeList.length; i++) {\r\n if (nodeList[i].nodeUrl) {\r\n //add new link\r\n const link = this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl, linkClasses\r\n );\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n currentDiv.appendChild(link);\r\n currentDiv.appendChild(arrowImg);\r\n } else {\r\n //add last span\r\n const span = this.createSpan(nodeList[i].nodeName);\r\n currentDiv.appendChild(span);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n elements?.item(elements.length - 1)?.remove();\r\n elements?.item(elements.length - 1)?.remove();\r\n this.setCurrentNode(elements);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n let index = -1;\r\n for (let i = 0; i < elements?.length!; i++) {\r\n const span = elements?.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = elements?.length! - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n elements?.item(index)?.remove();\r\n elements?.item(index)?.remove();\r\n } else {\r\n elements?.item(index)?.remove();\r\n elements?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(elements);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n while (length > 0) {\r\n elements?.item(elements.length - 1)?.remove();\r\n elements?.item(elements.length - 1)?.remove();\r\n length--;\r\n }\r\n if (elements?.length! > 0) {\r\n this.setCurrentNode(elements);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private createImg(\r\n classes: string,\r\n src: string = 'https://newportal.ipa.edu.sa/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/path.svg'\r\n ): HTMLImageElement {\r\n const img = document.createElement('img');\r\n img.src = src;\r\n img.classList.add(...[classes]);\r\n return img;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const span = this.createSpan(lastSpan.innerHTML);\r\n lastSpan.replaceWith(span);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ipa-library\r\n */\r\n// module\r\nexport * from './lib/ng-ipa-library.module';\r\nexport * from 'ngx-toastr';\r\nexport * from '@ng-select/ng-select';\r\nexport * from '@ng-bootstrap/ng-bootstrap';\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/share-button/share-button.module';\r\n\r\n// core components\r\nexport * from './lib/core/components/loading/loading.component';\r\n\r\n// form components\r\nexport * from './lib/ipa-form/text-input/text-input.component';\r\nexport * from './lib/ipa-form/textarea-input/textarea-input.component';\r\nexport * from './lib/ipa-form/dropdown-input/dropdown-input.component';\r\nexport * from './lib/ipa-form/file-upload/file-upload.component';\r\nexport * from './lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nexport * from './lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nexport * from './lib/ipa-form/recaptcha/recaptcha.component';\r\nexport * from './lib/generate-form/generate-form.component';\r\nexport * from './lib/share-button/share-button.component';\r\n\r\n// interceptors\r\nexport * from './lib/core/interceptors/loading.interceptor';\r\nexport * from './lib/core/interceptors/error.interceptor';\r\nexport * from './lib/core/interceptors/token.interceptor';\r\nexport * from './lib/core/interceptors/myIPAToken.interceptor';\r\n\r\n// services\r\nexport * from './lib/core/services/loader.service';\r\nexport * from './lib/core/services/error.service';\r\nexport * from './lib/core/services/token.service';\r\nexport * from './lib/core/services/auth.service';\r\nexport * from './lib/ipa-form/ipa-form.service';\r\nexport * from './lib/services/breadcrumbs.service';\r\nexport * from './lib/services/breadcrumbsV2.service';\r\nexport * from './lib/services/common.service';\r\n\r\n//pipes\r\nexport * from './lib/pipes/hijri-date.pipe';\r\n\r\n//models\r\nexport * from './lib/models/pagedResult';\r\nexport * from './lib/models/apiException';\r\nexport * from './lib/models/apiResponse';\r\nexport * from './lib/models/generateForm.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.IPAFormService","i2","i3","i1.LoaderService","i4.TextInputComponent","i5.TextareaInputComponent","i6.DropdownInputComponent","i7.FileUploadComponent","i8.RecaptchaComponent","i4","WEEKDAYS","MONTHS","i2.CommonService","i1.ErrorService","i1.AuthService","i3.LoaderService","i4.TokenService","i2.TokenService"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;MAMa,aAAa,CAAA;AACxB,IAAA,SAAS,CACP,IAAY,EACZ,SAAiB,eAAe,EAChC,OAAoB,IAAI,EAAA;AAExB,QAAA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC;+GARW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAb,aAAa,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,CAAA;;4FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBAJzB,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACF,oBAAA,IAAI,EAAE,WAAW;AACjB,oBAAA,UAAU,EAAE;AACf,iBAAA;;;MCEY,WAAW,CAAA;+GAAX,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAX,WAAW,EAAA,YAAA,EAAA,CAHP,aAAa,CAAA,EAAA,OAAA,EAAA,CAClB,aAAa,CAAA,EAAA,CAAA,CAAA;gHAEZ,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBAJvB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,aAAa,CAAC;oBAC7B,OAAO,EAAE,CAAC,aAAa,CAAC;AACzB,iBAAA;;;MCGY,cAAc,CAAA;AACzB,IAAA,WAAA,CAAoB,eAAuC,EAAA;QAAvC,IAAA,CAAA,eAAe,GAAf,eAAe;IAA2B;AAE9D;;AAEG;IACH,OAAO,cAAc,CAAC,OAAwB,EAAA;QAC5C,MAAM,WAAW,GACf,uDAAuD,CAAC,IAAI,CAC1D,OAAO,CAAC,KAAK,CACd;AACH,QAAA,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE;IAC9D;AAEA;;AAEG;IACH,OAAO,iBAAiB,CAAC,OAAwB,EAAA;QAC/C,MAAM,WAAW,GACf,kFAAkF,CAAC,IAAI,CACrF,OAAO,CAAC,KAAK,CACd;AACH,QAAA,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IACjE;AAEA;;AAEG;IACH,OAAO,QAAQ,CAAC,OAAwB,EAAA;QACtC,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;AACnD,QAAA,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,QAAQ,EAAE,IAAI,EAAE;IAClE;AAEA;;AAEG;IACH,OAAO,KAAK,CAAC,OAAwB,EAAA;QACnC,MAAM,WAAW,GACf,qHAAqH,CAAC,IAAI,CACxH,OAAO,CAAC,KAAK,CACd;AACH,QAAA,OAAO,WAAW,IAAI,CAAC,OAAO,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE;IAC/D;AAEA;;AAEG;IACH,OAAO,OAAO,CAAC,OAAwB,EAAA;QACrC,IAAI,OAAO,GAAG,KAAK;AACnB,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK;AAC3B,QAAA,IACE,cAAc,CAAC,kBAAkB,CAAC,KAAK,CAAC;AACxC,YAAA,cAAc,CAAC,eAAe,CAAC,KAAK,CAAC,EACrC;YACA,OAAO,GAAG,IAAI;QAChB;aAAO;YACL,OAAO,GAAG,KAAK;QACjB;AACA,QAAA,OAAO,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE;IACrD;IAEA,OAAO,cAAc,CAAC,OAAwB,EAAA;AAC5C,QAAA,MAAM,IAAI,GAAY,OAAO,CAAC,KAAK;QACnC,MAAM,OAAO,GAAG,cAAc,CAAC,mBAAmB,CAAC,IAAI,CAAC;QACxD,OAAO,OAAO,IAAI,CAAC;AACjB,cAAE;AACF,cAAE;AACE,gBAAA,OAAO,EAAE;oBACP,OAAO,EACL,IAAI,EAAE,IAAI;wBACV,GAAG;AACH,yBAAC,IAAI,EAAE,KAAK,GAAG,EAAE,GAAG,IAAI,EAAE,KAAK,GAAG,GAAG,GAAG,IAAI,EAAE,KAAK,CAAC;wBACpD,GAAG;AACH,yBAAC,IAAI,EAAE,GAAG,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC;AACjD,iBAAA;aACF;IACP;AAEA,IAAA,eAAe,CACb,OAA2B,EAC3B,eAAe,GAAG,EAAE,EACpB,QAAiB,EAAA;AAEjB,QAAA,KAAK,MAAM,YAAY,IAAI,OAAO,EAAE,MAAM,EAAE;AAC1C,YAAA,IACE,OAAO,EAAE,MAAM,CAAC,cAAc,CAAC,YAAY,CAAC;iBAC3C,OAAO,CAAC,OAAO,IAAI,OAAO,CAAC,KAAK,CAAC,EAClC;AACA,gBAAA,OAAO,IAAI,CAAC,wBAAwB,CAClC,YAAY,EACZ,OAAO,CAAC,MAAM,CAAC,YAAY,CAAC,EAC5B,eAAe,EACf,QAAQ,CACT;YACH;QACF;AACA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;;;AAQG;IACH,kBAAkB,CAChB,IAAY,EACZ,MAAM,GAAG,eAAe,EACxB,IAAI,GAAG,OAAO,EAAA;AAEd,QAAA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IACzC;IAEA,sBAAsB,CACpB,IAAY,EACZ,MAAM,GAAG,YAAY,EACrB,IAAI,GAAG,IAAI,EAAA;AAEX,QAAA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;QACxB,MAAM,CAAC,GAAG,WAAW,CAAC,QAAQ,CAAC,WAAW,CACxC,IAAI,CAAC,IAAI,EAAE,EACX,IAAI,CAAC,KAAK,EAAE,EACZ,IAAI,CAAC,IAAI,EAAE,CACZ;QACD,OAAO,WAAW,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;IAC/D;IAEA,mBAAmB,GAAA;AACjB,QAAA,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC;AACxB,QAAA,OAAO,WAAW,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC;IAC9C;AAEQ,IAAA,wBAAwB,CAC9B,aAAqB,EACrB,cAAmB,EACnB,eAAuB,EACvB,QAAiB,EAAA;AAEjB,QAAA,IAAI,aAAa,KAAK,SAAS,EAAE;YAC/B,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,cAAc,EAAE,eAAe,CAAC;QACtE;AACA,QAAA,MAAM,MAAM,GAAQ;YAClB,QAAQ,EAAE,QAAQ,GAAG,iBAAiB,GAAG,qBAAqB;AAC9D,YAAA,OAAO,EAAE,CAAA,EAAG,cAAc,CAAC,OAAO,CAAA,CAAE;YACpC,KAAK,EACH,CAAC,QAAQ,GAAG,2BAA2B,GAAG,gBAAgB;gBAC1D,uBAAuB;AACzB,YAAA,SAAS,EAAE;AACT,kBAAE,CAAA,6BAAA,EAAgC,cAAc,CAAC,cAAc,CAAA,KAAA;AAC/D,kBAAE,CAAA,yBAAA,EAA4B,cAAc,CAAC,cAAc,CAAA,QAAA,CAAU;AACvE,YAAA,SAAS,EAAE;AACT,kBAAE,CAAA,cAAA,EAAiB,cAAc,CAAC,cAAc,CAAA,IAAA;AAChD,kBAAE,CAAA,yBAAA,EAA4B,cAAc,CAAC,cAAc,CAAA,QAAA,CAAU;AACvE,YAAA,GAAG,EAAE;AACH,kBAAE,CAAA,qBAAA,EAAwB,cAAc,CAAC,GAAG,CAAA;AAC5C,kBAAE,CAAA,2BAAA,EAA8B,cAAc,CAAC,GAAG,CAAA,CAAA,CAAG;AACvD,YAAA,GAAG,EAAE;AACH,kBAAE,CAAA,qBAAA,EAAwB,cAAc,CAAC,GAAG,CAAA;AAC5C,kBAAE,CAAA,2BAAA,EAA8B,cAAc,CAAC,GAAG,CAAA,CAAA,CAAG;AACvD,YAAA,OAAO,EAAE,IAAI,CAAC,wBAAwB,CAAC,cAAc,CAAC;AACtD,YAAA,OAAO,EAAE;AACP,kBAAE;AACF,kBAAE,0BAA0B;YAC9B,IAAI,EACF,CAAC,QAAQ,GAAG,kBAAkB,GAAG,aAAa;gBAC9C,sBAAsB;YACxB,OAAO,EACL,CAAC,QAAQ,GAAG,oBAAoB,GAAG,iBAAiB;gBACpD,kCAAkC;YACpC,QAAQ,EACN,CAAC,QAAQ,GAAG,oBAAoB,GAAG,sBAAsB;gBACzD,cAAc;SACjB;AACD,QAAA,OAAO,MAAM,CAAC,aAAa,CAAC;IAC9B;IAEQ,aAAa,CAAC,cAAmB,EAAE,eAAuB,EAAA;AAChE,QAAA,IAAI,OAAO,GAAG;AACZ,YAAA,GAAG,cAAc;AACjB,YAAA,OAAO,EAAE,eAAe;SACzB;AACD,QAAA,OAAO,OAAO;IAChB;AAEQ,IAAA,wBAAwB,CAAC,cAAmB,EAAA;QAClD,IAAI,GAAG,GAAG,EAAE;AACZ,QAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AAC1B,YAAA,GAAG,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,eAAe,CAAC,MAAM,CAClD,cAAc,CAAC,OAAO,CAAC,MAAM,CAC9B,CAAA,uBAAA,EAA0B,IAAI,CAAC,eAAe,CAAC,MAAM,CACpD,cAAc,CAAC,OAAO,CAAC,OAAO,CAC/B,CAAA,CAAA,CAAG;QACN;AAAO,aAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACjC,YAAA,GAAG,GAAG,CAAA,gBAAA,EAAmB,IAAI,CAAC,eAAe,CAAC,MAAM,CAClD,cAAc,CAAC,OAAO,CAAC,MAAM,CAC9B,CAAA,8CAAA,EAAiD,IAAI,CAAC,eAAe,CAAC,MAAM,CAC3E,cAAc,CAAC,OAAO,CAAC,OAAO,CAC/B,CAAA,CAAA,CAAG;QACN;AAAO,aAAA,IAAI,cAAc,CAAC,OAAO,EAAE;AACjC,YAAA,GAAG,GAAG,CAAA,wBAAA,EAA2B,cAAc,CAAC,OAAO,GAAG;QAC5D;AACA,QAAA,OAAO,GAAG;IACZ;IAEQ,OAAO,mBAAmB,CAAC,IAAa,EAAA;AAC9C,QAAA,OAAO,EACL,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,GAAG,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG;YACjE,IAAI,EAAE,GAAG,IAAI,CAAC;YACd,IAAI,EAAE,KAAK,IAAI,CAAC;YAChB,IAAI,EAAE,KAAK,GAAG,EAAE;YAChB,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,MAAM,KAAK,CAAC,CACpC;IACH;IAEQ,OAAO,WAAW,CAAC,KAAa,EAAA;QACtC,IAAI,QAAQ,GAAG,EAAE;AACjB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,IAAI,EAAE,GAAG,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;YAC5B,IAAI,EAAE,IAAI,IAAI,IAAI,EAAE,IAAI,IAAI,EAAE;AAC5B,gBAAA,IAAI,OAAO,GAAG,EAAE,GAAG,IAAI;gBACvB,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC;YACpD;iBAAO;gBACL,QAAQ,GAAG,QAAQ,GAAG,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC;YAC/C;QACF;AACA,QAAA,OAAO,QAAQ;IACjB;IAEQ,OAAO,kBAAkB,CAAC,OAAe,EAAA;QAC/C,IAAI,OAAO,EAAE;YACX,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACrC,IAAI,MAAM,GAAG,EAAE;YACf,IAAI,OAAO,GAAG,CAAC;AACf,YAAA,OAAO,OAAO,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1B,oBAAA,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC;gBACzD;qBAAO;oBACL,MAAM;AACJ,wBAAA,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE;gBACpE;AACA,gBAAA,OAAO,EAAE;YACX;YACA,IAAI,MAAM,GAAG,CAAC;YACd,IAAI,UAAU,GAAG,CAAC;AAClB,YAAA,IAAI,MAAM;AACV,YAAA,IAAI,cAAc;AAClB,YAAA,IAAI,UAAU;YACd,OAAO,GAAG,CAAC;AACX,YAAA,OAAO,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxC,MAAM,IAAI,UAAU;AACpB,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACtB,cAAc,GAAG,MAAM;YACzB;iBAAO;AACL,gBAAA,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE;AACA,YAAA,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,UAAU,GAAG,CAAC;YAChB;iBAAO;gBACL,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE;YAChD;YACA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACxC,YAAA,IACE,UAAU;AACR,gBAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC1D,KAAK,CAAC,MAAM,IAAI,EAAE;gBAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAC5B;AACA,gBAAA,OAAO,IAAI;YACb;iBAAO;AACL,gBAAA,OAAO,KAAK;YACd;QACF;aAAO;AACL,YAAA,OAAO,KAAK;QACd;IACF;IAEQ,OAAO,eAAe,CAAC,OAAe,EAAA;QAC5C,IAAI,OAAO,EAAE;YACX,IAAI,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;YACrC,IAAI,MAAM,GAAG,EAAE;YACf,IAAI,OAAO,GAAG,CAAC;AACf,YAAA,OAAO,OAAO,GAAG,CAAC,EAAE;gBAClB,IAAI,CAAC,OAAO,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC1B,oBAAA,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC;gBACzD;qBAAO;oBACL,MAAM;AACJ,wBAAA,MAAM,GAAG,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,CAAC,CAAC,GAAG,CAAC,EAAE,QAAQ,EAAE;gBACpE;AACA,gBAAA,OAAO,EAAE;YACX;YACA,IAAI,MAAM,GAAG,CAAC;YACd,IAAI,UAAU,GAAG,CAAC;AAClB,YAAA,IAAI,MAAM;AACV,YAAA,IAAI,cAAc;AAClB,YAAA,IAAI,UAAU;YACd,OAAO,GAAG,CAAC;AACX,YAAA,OAAO,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE;gBAC9B,UAAU,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC;gBACxC,MAAM,IAAI,UAAU;AACpB,gBAAA,OAAO,EAAE;YACX;AACA,YAAA,MAAM,GAAG,MAAM,CAAC,QAAQ,EAAE;AAC1B,YAAA,IAAI,MAAM,CAAC,MAAM,IAAI,CAAC,EAAE;gBACtB,cAAc,GAAG,MAAM;YACzB;iBAAO;AACL,gBAAA,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;YACrE;AACA,YAAA,IAAI,cAAc,IAAI,CAAC,EAAE;gBACvB,UAAU,GAAG,CAAC;YAChB;iBAAO;gBACL,UAAU,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,EAAE,QAAQ,EAAE;YAChD;YACA,IAAI,QAAQ,GAAG,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACxC,YAAA,IACE,UAAU;AACR,gBAAA,QAAQ,CAAC,SAAS,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,QAAQ,CAAC,MAAM,CAAC;gBAC1D,KAAK,CAAC,MAAM,IAAI,EAAE;gBAClB,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,GAAG,EAC5B;AACA,gBAAA,OAAO,IAAI;YACb;iBAAO;AACL,gBAAA,OAAO,KAAK;YACd;QACF;aAAO;AACL,YAAA,OAAO,KAAK;QACd;IACF;+GA9UW,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAd,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cAFb,MAAM,EAAA,CAAA,CAAA;;4FAEP,cAAc,EAAA,UAAA,EAAA,CAAA;kBAH1B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCWY,kBAAkB,CAAA;AAiB7B,IAAA,WAAA,CACU,iBAAiC,EAC1B,UAAqB,EAC5B,EAAqB,EAAA;QAFrB,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACV,IAAA,CAAA,UAAU,GAAV,UAAU;QACjB,IAAA,CAAA,EAAE,GAAF,EAAE;QAlBH,IAAA,CAAA,0BAA0B,GAAY,KAAK;QAE3C,IAAA,CAAA,IAAI,GAAG,MAAM;QAGb,IAAA,CAAA,QAAQ,GAAG,KAAK;QAEhB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,OAAO,GAAG,EAAE;QAGZ,IAAA,CAAA,YAAY,GAAG,IAAI;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;AAQ1D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;IACtC;IAEA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AAEhE,QAAA,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,sBAAsB,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,OAA6B;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;cACpB,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;IAC5C;IAEA,QAAQ,CAAC,KAAU,EAAA,EAAS;AAE5B,IAAA,SAAS,KAAU;AACnB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE;IAC5C;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,aAAa,CAAC,KAAY,EAAA;AACxB,QAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACnB,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK;YAC3C,MAAM,QAAQ,GAAG,YAAY,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC;AACrD,YAAA,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;YACjC,IAAI,YAAY,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;gBAC3C,KAAK,CAAC,eAAe,EAAE;YACzB;QACF;IACF;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CACpD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,CAClB;QACD,OAAO,IAAI,CAAC,QAAQ;IACtB;+GA3EW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,mgBCnB/B,u1DAqBM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,CAAA,EAAA,CAAA,CAAA;;4FDFO,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAGd,KAAK,EAAA,QAAA,EAAA,u1DAAA,EAAA;;0BAqBd;yEAlBmC,KAAK,EAAA,CAAA;sBAA1C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC3B,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,EAAE,EAAA,CAAA;sBAAV;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;MEbU,sBAAsB,CAAA;AAgBjC,IAAA,WAAA,CACU,iBAAiC,EAC1B,UAAqB,EAC5B,EAAqB,EAAA;QAFrB,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACV,IAAA,CAAA,UAAU,GAAV,UAAU;QACjB,IAAA,CAAA,EAAE,GAAF,EAAE;AAlB0B,QAAA,IAAA,CAAA,KAAK,GACzC,IAAI,UAAU,CAAM,IAAI,CAAC;QAClB,IAAA,CAAA,0BAA0B,GAAY,KAAK;QAI3C,IAAA,CAAA,QAAQ,GAAG,KAAK;QAKhB,IAAA,CAAA,YAAY,GAAG,IAAI;AAC5B,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;AAQ1D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;IACtC;IAEA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AAEhE,QAAA,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,sBAAsB,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,OAA6B;AAChD,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;cACpB,IAAI,CAAC;AACP,cAAE,IAAI,CAAC,KAAK,GAAG,OAAO,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE;IAC5C;IAEA,QAAQ,CAAC,KAAU,EAAA,EAAS;AAE5B,IAAA,SAAS,KAAU;AACnB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE;IAC5C;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CACpD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,CAClB;QACD,OAAO,IAAI,CAAC,QAAQ;IACtB;+GA9DW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,+dCnBnC,4yDA0BM,EAAA,MAAA,EAAA,CAAA,+eAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,CAAA,EAAA,CAAA,CAAA;;4FDPO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,4yDAAA,EAAA,MAAA,EAAA,CAAA,+eAAA,CAAA,EAAA;;0BAoBd;yEAjBmC,KAAK,EAAA,CAAA;sBAA1C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,OAAO,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAE3B,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,EAAE,EAAA,CAAA;sBAAV;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACS,WAAW,EAAA,CAAA;sBAAnB;gBACO,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;MEdU,sBAAsB,CAAA;IAmBjC,WAAA,CACU,iBAAiC,EAC1B,UAAqB,EAAA;QAD5B,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QACV,IAAA,CAAA,UAAU,GAAV,UAAU;QAlBlB,IAAA,CAAA,0BAA0B,GAAG,KAAK;QAClC,IAAA,CAAA,KAAK,GAAW,YAAY;QAC5B,IAAA,CAAA,KAAK,GAAU,EAAE;QAGjB,IAAA,CAAA,QAAQ,GAAG,KAAK;QAEhB,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,YAAY,GAAG,gBAAgB;QAG/B,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,gBAAgB,GAAG,KAAK;AACjC,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;AAO1D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;IACtC;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AAEhE,QAAA,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,sBAAsB,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,OAA6B;AAEhD,QAAA,QAAQ,CAAC,gBAAgB,CAAC,kBAAkB,EAAE,MAAK;YACjD,IAAI,IAAI,CAAC,0BAA0B;gBAAE,IAAI,CAAC,mBAAmB,EAAE;AACjE,QAAA,CAAC,CAAC;IACJ;IAEA,QAAQ,CAAC,KAAU,EAAA,EAAS;AAE5B,IAAA,SAAS,KAAU;AACnB,IAAA,UAAU,CAAC,GAAQ,EAAA;QACjB,IAAI,IAAI,CAAC,KAAK;YAAE,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,EAAE;IAC9C;AAEA,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,IAAI,YAAY,GAAA;AACd,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CACpD,IAAI,CAAC,WAAW,EAChB,EAAE,EACF,IAAI,CAAC,YAAY,CAClB;QACD,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEA,mBAAmB,GAAA;;AAEjB,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,gBAAgB,CACxC,2BAA2B,GAAG,IAAI,CAAC,EAAE,CACtC;AACD,QAAA,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,KAAI;;AAE3B,YAAA,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,aAAa;AACtE,YAAA,IAAI,CAAC,MAAM;gBAAE;;YAEb,MAAM,YAAY,GAAG,MAAM,CAAC,aAAa,CAAC,QAAQ,CAAC;YACnD,MAAM,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC,kBAAkB,CAAC;YAChE,MAAM,kBAAkB,GACtB,cAAe,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,cAAc;YACzD,MAAM,aAAa,GAAG,OAAO,CAAC,gBAAgB,CAAC,gBAAgB,CAAC;AAChE,YAAA,IAAI,CAAC,YAAY,IAAI,CAAC,cAAc;gBAAE;;AAEtC,YAAA,IAAI,YAAY,CAAC,aAAa,GAAG,CAAC,CAAC,EAAE;gBACnC,MAAM,cAAc,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC,aAAa,CAAC;AACvE,gBAAA,kBAAmB,CAAC,WAAW,GAAG,cAAc,CAAC,IAAI;;AAErD,gBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;AAC7B,oBAAA,MAAM,QAAQ,GACZ,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,KAAK;oBACxD,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,QAAQ,CAAC;AAC3C,gBAAA,CAAC,CAAC;YACJ;;AAEA,YAAA,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,KAAI;gBAC7B,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC,CAAC,KAAI;oBACnC,CAAC,CAAC,cAAc,EAAE;oBAClB,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC;oBAC7C,MAAM,IAAI,GAAG,IAAI,CAAC,WAAY,CAAC,IAAI,EAAE;;oBAErC,kBAAmB,CAAC,WAAW,GAAG,IAAI,IAAI,QAAQ,IAAI,CAAC,KAAK,CAAA,CAAE;AAC9D,oBAAA,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;AAC1D,oBAAA,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC;;AAE5B,oBAAA,YAAY,CAAC,KAAK,GAAG,KAAM;AAC3B,oBAAA,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC;AACtB,oBAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AACpB,oBAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,KAAK,CAAC;AAChC,oBAAA,IAAI,CAAC,WAAW,CAAC,aAAa,EAAE;;AAEhC,oBAAA,YAAY,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,QAAQ,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;AACpE,gBAAA,CAAC,CAAC;AACJ,YAAA,CAAC,CAAC;AACJ,QAAA,CAAC,CAAC;IACJ;+GA/GW,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,sBAAsB,8kBCjBnC,qrIAiEM,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,cAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,6GAAA,EAAA,MAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,KAAA,EAAA,QAAA,EAAA,OAAA,EAAA,MAAA,EAAA,CAAA,KAAA,CAAA,EAAA,OAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,CAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,EAAA,2BAAA,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,uBAAA,EAAA,UAAA,EAAA,sBAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,QAAA,EAAA,YAAA,EAAA,WAAA,EAAA,QAAA,EAAA,OAAA,EAAA,aAAA,EAAA,kBAAA,EAAA,iBAAA,EAAA,WAAA,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;;4FDhDO,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBANlC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,cAGlB,KAAK,EAAA,QAAA,EAAA,qrIAAA,EAAA;;0BAuBd;yCApBoC,KAAK,EAAA,CAAA;sBAA3C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,QAAQ,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;gBAC5B,EAAE,EAAA,CAAA;sBAAV;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;;;MExBU,aAAa,CAAA;AAGxB,IAAA,WAAA,GAAA;AAFO,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;QAC7C,IAAA,CAAA,IAAI,GAAmB,EAAE;IACV;AAEf,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,eAAe,CAAC,GAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB;+GAXW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCOY,eAAe,CAAA;IAI1B,WAAA,CACU,aAA4B,EAC5B,GAAsB,EAAA;QADtB,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,GAAG,GAAH,GAAG;QALb,IAAA,CAAA,OAAO,GAAG,IAAI;QACL,IAAA,CAAA,OAAO,GAAG,KAAK;IAKrB;IAEH,eAAe,GAAA;QACb,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC3C,YAAA,IAAI,CAAC,OAAO,GAAG,CAAC;YAChB,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC;YACpD,IAAI,MAAM,EAAE;AACV,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;gBAC/B;qBAAO;AACL,oBAAA,IAAI,MAAM,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;AAAE,wBAAA,MAAM,CAAC,KAAK,CAAC,OAAO,GAAG,MAAM;gBACpE;YACF;AACA,YAAA,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE;AAC1B,QAAA,CAAC,CAAC;IACJ;+GAtBW,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAE,aAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,eAAe,uGCd5B,uGAGA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDWa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,YAAY,cAGV,KAAK,EAAA,QAAA,EAAA,uGAAA,EAAA,MAAA,EAAA,CAAA,6BAAA,CAAA,EAAA;+GAIV,OAAO,EAAA,CAAA;sBAAf;;;MEKU,mBAAmB,CAAA;AAuB9B,IAAA,WAAA;;IAEU,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;QAtBd,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,KAAK,GAAG,EAAE;QACV,IAAA,CAAA,QAAQ,GAAG,KAAK;QAChB,IAAA,CAAA,aAAa,GAAG,EAAE;AAClB,QAAA,IAAA,CAAA,QAAQ,GAAG,CAAC,CAAC;QACb,IAAA,CAAA,WAAW,GAAG,CAAC;QACf,IAAA,CAAA,MAAM,GAAG,MAAM;QACf,IAAA,CAAA,UAAU,GAAG,KAAK;QAClB,IAAA,CAAA,MAAM,GAAG,QAAQ;AAEhB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;QAC1C,IAAA,CAAA,SAAS,GAAG,KAAK;QACjB,IAAA,CAAA,MAAM,GAAa,EAAE;QAErB,IAAA,CAAA,UAAU,GAAW,EAAE;QACvB,IAAA,CAAA,YAAY,GAAW,EAAE;AACzB,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;IAKzD;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,gBAAgB,EAAE;IACzB;AAEA,IAAA,kBAAkB,CAAC,CAAM,EAAA;QACvB,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;YAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC;AACxC,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;QACtB;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE;IAC1B;AAEA,IAAA,eAAe,CAAC,CAAM,EAAA;AACpB,QAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC;AACjB,QAAA,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;AAC7B,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;QAC5B;AACA,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC;AACnB,cAAE;cACA,mCAAmC;AACvC,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,CAAC;IACrC;AAEA,IAAA,aAAa,CAAC,CAAM,EAAA;AAClB,QAAA,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE;AACR,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAA,EAAG,CAAC,CAAC,CAAC,CAAC,CAAA,EAAA,EAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAA,CAAA,CAAG,CAAC;QAC5C;IACF;AAEA,IAAA,YAAY,CAAC,CAAO,EAAA;QAClB,MAAM,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC9C,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,CAAC,EAAE;AACvB,YAAA,IAAI,CAAC,YAAY,GAAG,EAAE;AACtB,YAAA,IAAI,CAAC,UAAU,GAAG,EAAE;AACpB,YAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,YAAA,MAAM,KAAK,GAAG,UAAU,CAAC,KAAK;AAC9B,YAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;gBACpB,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACjC;QACF;AACA,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;AACzB,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC;IACxB;AAEA,IAAA,OAAO,CAAC,CAAM,EAAA;AACZ,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;IAClB;IAEA,KAAK,CAAC,CAAM,EAAA,EAAS;AAErB,IAAA,UAAU,CAAC,IAAS,EAAA;AAClB,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAC1C,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CACpD;AACD,QAAA,IAAI,CAAC,MAAM,GAAG,EAAE;AAChB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE;IACzB;IAEQ,gBAAgB,GAAA;QACtB,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,YAAY,GAAG,MAAM,GAAG,SAAS,IAAI,IAAI,CAAC,KAAK;QAClE,IAAI,CAAC,MAAM,GAAG;YACZ,GAAG,EAAE,IAAI,CAAC,MAAM;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM;AACnB,YAAA,OAAO,EAAE;AACP,gBAAA,aAAa,EAAE,SAAS,GAAG,IAAI,CAAC,aAAa;AAC9C,aAAA;YACD,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,YAAA,cAAc,EAAE,IAAI,CAAC,QAAQ,GAAG,CAAC;YACjC,mBAAmB,EAAE,IAAI,CAAC;AACxB,kBAAE;AACF,kBAAE,gCAAgC;YACpC,cAAc,EAAE,IAAI,CAAC;AACnB,kBAAE;AACF,kBAAE,CAAA,0CAAA,EAA6C,IAAI,CAAC,WAAW,CAAA,IAAA,CAAM;YACvE,oBAAoB,EAAE,IAAI,CAAC;AACzB,kBAAE;AACF,kBAAE,6DAA6D;YACjE,aAAa,EAAE,IAAI,CAAC,aAAa;YACjC,gBAAgB,EAAE,IAAI,CAAC,UAAU;AACjC,YAAA,eAAe,EAAE,eAAe;AAChC,YAAA,cAAc,EAAE,EAAE;SACnB;IACH;+GAhHW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;mGAAnB,mBAAmB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,WAAA,EAAA,aAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,QAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,OAAA,EAAA,EAAA,aAAA,EAAA,eAAA,EAAA,SAAA,EAAA,WAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,aAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EACnB,iBAAiB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECtB9B,0rEAoCM,EAAA,MAAA,EAAA,CAAA,ubAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,IAAA,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,iBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,SAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,MAAA,EAAA,WAAA,EAAA,SAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,WAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,kBAAA,EAAA,kBAAA,EAAA,oBAAA,EAAA,OAAA,EAAA,eAAA,EAAA,qBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDfO,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,iBAAiB,cAGf,KAAK,EAAA,QAAA,EAAA,0rEAAA,EAAA,MAAA,EAAA,CAAA,ubAAA,CAAA,EAAA;kFAInB,WAAW,EAAA,CAAA;sBADV,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;gBAEtC,YAAY,EAAA,CAAA;sBAApB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,UAAU,EAAA,CAAA;sBAAlB;gBACQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACS,aAAa,EAAA,CAAA;sBAAtB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBACS,WAAW,EAAA,CAAA;sBAApB;;;ME3BU,kBAAkB,CAAA;AAQ7B,IAAA,WAAA,CAA2B,UAAqB,EAAA;QAArB,IAAA,CAAA,UAAU,GAAV,UAAU;QAP5B,IAAA,CAAA,OAAO,GAAG,0CAA0C;QACpD,IAAA,CAAA,aAAa,GAAyB,QAAQ;QAC9C,IAAA,CAAA,IAAI,GAAgB,IAAI;QACxB,IAAA,CAAA,aAAa,GAAsB,OAAO;QAC1C,IAAA,CAAA,KAAK,GAAqB,OAAO;QACjC,IAAA,CAAA,eAAe,GAAG,IAAI;AAC/B,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;AAE1D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;IACtC;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;AAEhE,QAAA,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,sBAAsB,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,OAA6B;IAClD;IAEA,QAAQ,CAAC,KAAU,EAAA,EAAS;AAE5B,IAAA,SAAS,KAAU;IACnB,UAAU,CAAC,GAAQ,EAAA,EAAS;AAE5B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;+GAhCW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,kBAAkB,4OCT/B,sNAEiB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAE,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDOJ,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAN9B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,eAAe,cAGb,KAAK,EAAA,QAAA,EAAA,sNAAA,EAAA;;0BAUN;yCAPJ,OAAO,EAAA,CAAA;sBAAf;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,eAAe,EAAA,CAAA;sBAAvB;;;MEJU,qBAAqB,CAAA;AAqBhC,IAAA,WAAA,CAAoB,iBAAiC,EAAA;QAAjC,IAAA,CAAA,iBAAiB,GAAjB,iBAAiB;QAlB5B,IAAA,CAAA,YAAY,GAAG,IAAI;QACnB,IAAA,CAAA,0BAA0B,GAAG,KAAK;QAIlC,IAAA,CAAA,aAAa,GAAyB,QAAQ;QAC9C,IAAA,CAAA,IAAI,GAAgB,IAAI;QACxB,IAAA,CAAA,aAAa,GAAsB,OAAO;QAC1C,IAAA,CAAA,KAAK,GAAqB,OAAO;QACjC,IAAA,CAAA,eAAe,GAAG,IAAI;;AAGrB,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAE;AAClC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAE;AAC9B,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAE;IAIc;IAExD,QAAQ,GAAA;QACN,IAAI,CAAC,yBAAyB,EAAE;QAChC,IAAI,CAAC,UAAU,EAAE;IACnB;AAEA,IAAA,eAAe,CAAC,eAAuB,EAAA;QACrC,OAAO,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,OAAO,GAAG,eAAe,CAAqB;IAC7E;AAEA,IAAA,eAAe,CAAC,eAAuB,EAAA;QACrC,MAAM,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAC5C,eAAe,CACM;AACvB,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,iBAAiB,CAAC,eAAe,CACpD,WAAW,EACX,EAAE,EACF,IAAI,CAAC,YAAY,CAClB;QACD,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA,IAAA,aAAa,CAAC,KAAU,EAAA;AACtB,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;IAChC;IAEA,SAAS,CAAC,IAAS,EAAE,eAAuB,EAAA;AAC1C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5D,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;IAC3B;IAEA,WAAW,CAAC,KAAU,EAAE,eAAuB,EAAA;AAC7C,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AAC5D,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;IAC9B;IAEQ,yBAAyB,GAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,KAAI;YACnD,OAAO;AACL,gBAAA,GAAG,MAAM;gBACT,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,IAAI,KAAI;oBAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC;oBACrC,OAAO;AACL,wBAAA,GAAG,IAAI;AACP,wBAAA,CAAC,MAAM,CAAC,SAAU,GAAG,IAAI,CAAC;8BACtB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;8BAClB,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;qBACxB;AACH,gBAAA,CAAC,CAAC;aACH;AACH,QAAA,CAAC,CAAC;IACJ;IAEQ,UAAU,GAAA;QAChB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,MAAM,KAAI;AACnC,YAAA,IAAI,MAAM,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9B,gBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC;YACjC;iBAAO;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,MAAM,CAAC,eAAe,EACtB,IAAI,kBAAkB,CACpB,MAAM,CAAC,IAAI,KAAK,MAAM,IAAI,MAAM,CAAC,YAAa,GAAG,CAAC,GAAG,EAAE,GAAG,IAAI,EAC9D;AACE,oBAAA,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa;AAChE,oBAAA,MAAM,CAAC;0BACH,UAAU,CAAC,OAAO,CAAC,MAAM,CAAC,iBAAiB;0BAC3C,UAAU,CAAC,aAAa;AAC5B,oBAAA,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,WAAW,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7D,wBAAA,CAAC;0BACG,UAAU,CAAC,SAAS,CAAC,MAAM,CAAC,IAAK;0BACjC,UAAU,CAAC,aAAa;oBAC5B,MAAM,CAAC,IAAI,KAAK;AACd,0BAAE,UAAU,CAAC,GAAG,CAAC,CAAC;0BAChB,UAAU,CAAC,aAAa;oBAC5B,MAAM,CAAC,eAAe,KAAK;0BACvB,cAAc,CAAC;0BACf,UAAU,CAAC,aAAa;oBAC5B,MAAM,CAAC,eAAe,KAAK;0BACvB,cAAc,CAAC;0BACf,UAAU,CAAC,aAAa;oBAC5B,MAAM,CAAC,eAAe,KAAK;0BACvB,cAAc,CAAC;0BACf,UAAU,CAAC,aAAa;AAE7B,iBAAA,CACF,CACF;YACH;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,kBAAkB,CAAC,MAAc,EAAA;AACvC,QAAA,IAAI,aAAa,GAAG,IAAI,gBAAgB,CACtC,MAAM,CAAC,IAAK,CAAC,GAAG,CAAC,CAAC,IAAI,KAAI;YACxB,OAAO,IAAI,gBAAgB,CAAC;AAC1B,gBAAA,CAAC,MAAM,CAAC,UAAW,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,UAAW,CAAC,CAAC;AACtE,gBAAA,CAAC,MAAM,CAAC,SAAU,GAAG,IAAI,kBAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,SAAU,CAAC,CAAC;AACpE,gBAAA,QAAQ,EAAE,IAAI,kBAAkB,CAAC,KAAK,CAAC;AACxC,aAAA,CAAC;QACJ,CAAC,CAAC,CACH;AAED,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,MAAM,CAAC,eAAe,EACtB,IAAI,kBAAkB,CACpB,IAAI,EACJ,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,QAAQ,GAAG,UAAU,CAAC,aAAa,CACjE,CACF;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,UAAU,CAC1B,OAAO,GAAG,MAAM,CAAC,eAAe,EAChC,aAAa,CACd;QACD,aAAa,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAY,KAAI;YACpD,IAAI,aAAa,GAAG,IAAI,CAAC,yBAAyB,CAAC,KAAK,CAAC;YACzD,IAAI,aAAa,EAAE;AACjB,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,UAAU,CAC3D,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,MAAM,CAAC,SAAU,CAAC,CAAC,CAC/C;YACH;iBAAO;AACL,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;AACnE,gBAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,aAAa,EAAE;YACpE;AACF,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,yBAAyB,CAAC,KAAY,EAAA;AAC5C,QAAA,IAAI,aAAa,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,CAAC;AACzD,QAAA,OAAO,aAAa,CAAC,MAAM,GAAG,CAAC,GAAG,aAAa,GAAG,IAAI;IACxD;+GAvJW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAD,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,qBAAqB,qdCXlC,yqLAgGA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,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,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,8CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,4BAAA,EAAA,QAAA,EAAA,uGAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,8FAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,iBAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,0FAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,kBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,4BAAA,EAAA,IAAA,EAAA,OAAA,EAAA,aAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,sBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,IAAA,EAAA,4BAAA,EAAA,OAAA,EAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,cAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,QAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,EAAA,WAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,eAAA,EAAA,MAAA,EAAA,eAAA,EAAA,OAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDrFa,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBANjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,mBAAmB,cAGjB,KAAK,EAAA,QAAA,EAAA,yqLAAA,EAAA;gFAGV,YAAY,EAAA,CAAA;sBAApB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,YAAY,EAAA,CAAA;sBAApB;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;gBAGQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,IAAI,EAAA,CAAA;sBAAZ;gBACQ,aAAa,EAAA,CAAA;sBAArB;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBAGS,aAAa,EAAA,CAAA;sBAAtB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBACS,WAAW,EAAA,CAAA;sBAApB;;;MEJU,mBAAmB,CAAA;IAgB9B,WAAA,CACU,cAA8B,EAC9B,QAAqB,EACd,UAAqB,EACpC,MAAgC,EACxB,EAAqB,EAAA;QAJrB,IAAA,CAAA,cAAc,GAAd,cAAc;QACd,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACD,IAAA,CAAA,UAAU,GAAV,UAAU;QAEjB,IAAA,CAAA,EAAE,GAAF,EAAE;QAlBH,IAAA,CAAA,KAAK,GAAG,YAAY;QACpB,IAAA,CAAA,eAAe,GAAG,iBAAiB;QACnC,IAAA,CAAA,QAAQ,GAAG,KAAK;QAKhB,IAAA,CAAA,YAAY,GAAG,IAAI;AAE5B,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAChC,QAAA,IAAA,CAAA,WAAW,GAAuB,IAAI,kBAAkB,CAAC,EAAE,CAAC;AAU1D,QAAA,IAAI,CAAC,UAAU,CAAC,aAAa,GAAG,IAAI;AACpC,QAAA,MAAM,CAAC,SAAS,GAAG,IAAI;AACvB,QAAA,MAAM,CAAC,SAAS,GAAG,eAAe;IACpC;IAEA,qBAAqB,GAAA;AACnB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE;IACzB;IAEA,QAAQ,GAAA;AACN,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,OAAO;AACvC,QAAA,MAAM,UAAU,GAAG,OAAO,EAAE,SAAS,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,EAAE;QAChE,IAAI,IAAI,CAAC,iBAAiB;AAAE,YAAA,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,cAAc,CAAC;AAC1E,QAAA,OAAO,EAAE,aAAa,CAAC,UAAU,CAAC;QAClC,OAAO,EAAE,sBAAsB,EAAE;AACjC,QAAA,IAAI,CAAC,WAAW,GAAG,OAA6B;IAClD;IAEA,QAAQ,CAAC,KAAU,EAAA,EAAS;AAE5B,IAAA,SAAS,KAAU;IACnB,UAAU,CAAC,GAAQ,EAAA,EAAS;AAE5B,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE;IACpB;AAEA,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;IACrB;AAEA,IAAA,cAAc,CAAC,KAAY,EAAA;QACzB,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,EAAE;YAC7B,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,sBAAsB,EAAE;YAC/B,CAAC,EAAE,GAAG,CAAC;AACP,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE;YACxB,KAAK,CAAC,cAAc,EAAE;YACtB;QACF;AACA,QAAA,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE;IACzB;AAEA,IAAA,IAAI,YAAY,GAAA;QACd,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,eAAe,CACjD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,eAAe,EACpB,IAAI,CAAC,YAAY,CAClB;QACD,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEQ,sBAAsB,GAAA;;QAE5B,MAAM,QAAQ,GAAG;aACd,sBAAsB,CAAC,mBAAmB;aAC1C,IAAI,CAAC,CAAC,CAAmB;AAC5B,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QAClE,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,UAAW,CAAC,KAAM,GAAG,cAAc;;AACrD,YAAA,UAAW,CAAC,KAAM,GAAG,gBAAgB;;QAG1C,MAAM,SAAS,GAAG;aACf,sBAAsB,CAAC,mBAAmB;aAC1C,IAAI,CAAC,CAAC,CAAmB;AAC5B,QAAA,MAAM,UAAU,GAAG,SAAS,CAAC,oBAAoB,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,YAAY;AAAE,YAAA,UAAW,CAAC,KAAM,GAAG,cAAc;;AACrD,YAAA,UAAW,CAAC,KAAM,GAAG,YAAY;;QAGtC,MAAM,OAAO,GAAG;aACb,sBAAsB,CAAC,0BAA0B;aACjD,IAAI,CAAC,CAAC,CAAmB;QAC5B,MAAM,UAAU,GAAG,OAAO,CAAC,oBAAoB,CAAC,QAAQ,CAAC;AACzD,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,YAAY;YACzC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,YAAY;QAC3C;aAAO;YACL,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,cAAc;YAC3C,UAAU,CAAC,IAAI,CAAC,CAAC,CAAE,CAAC,KAAM,GAAG,aAAa;QAC5C;IACF;+GAxGW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAR,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,mBAAmB,4YCxBhC,0nDAqBA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAO,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDGa,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,gBAAgB,cAGd,KAAK,EAAA,QAAA,EAAA,0nDAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA;;0BAqBhB;gHAlBa,UAAU,EAAA,CAAA;sBAAzB,SAAS;uBAAC,GAAG;gBACL,EAAE,EAAA,CAAA;sBAAV;gBACQ,KAAK,EAAA,CAAA;sBAAb;gBACQ,eAAe,EAAA,CAAA;sBAAvB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,OAAO,EAAA,CAAA;sBAAf;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;gBACQ,YAAY,EAAA,CAAA;sBAApB;;;AE9BH,MAAMQ,UAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACpD,MAAMC,QAAM,GAAG;IACb,MAAM;IACN,KAAK;IACL,YAAY;IACZ,YAAY;IACZ,cAAc;IACd,cAAc;IACd,KAAK;IACL,OAAO;IACP,OAAO;IACP,MAAM;IACN,WAAW;IACX,UAAU;CACX;AAGK,MAAO,WAAY,SAAQ,iBAAiB,CAAA;AAChD,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAOA,QAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAOA,QAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B;AAEA,IAAA,eAAe,CAAC,OAAe,EAAA;AAC7B,QAAA,OAAOD,UAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9B;AAEA,IAAA,eAAe,CAAC,IAAmB,EAAA;AACjC,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;IACjD;+GAfW,WAAW,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAX,WAAW,EAAA,CAAA,CAAA;;4FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB;;;ACNK,MAAO,wBAAyB,SAAQ,mBAAmB,CAAA;AAVjE,IAAA,WAAA,GAAA;;QAWE,IAAA,CAAA,iBAAiB,GAAG,IAAI;AACzB,IAAA;+GAFY,wBAAwB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAxB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,wBAAwB,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,SAAA,EANtB;AACP,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,0BAA0B,EAAE;AAC9D,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE;AACxD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EFXL,0nDAqBA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAX,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FEPa,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAVpC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,sBAAsB,EAAA,SAAA,EAGrB;AACP,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,0BAA0B,EAAE;AAC9D,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,WAAW,EAAE;AACxD,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,0nDAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA;;;ACRrB,MAAM,QAAQ,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AACpD,MAAM,MAAM,GAAG;IACb,OAAO;IACP,QAAQ;IACR,MAAM;IACN,OAAO;IACP,MAAM;IACN,OAAO;IACP,OAAO;IACP,OAAO;IACP,QAAQ;IACR,QAAQ;IACR,QAAQ;IACR,QAAQ;CACT;AAGK,MAAO,YAAa,SAAQ,iBAAiB,CAAA;AACjD,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC7B,QAAA,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B;AAEA,IAAA,gBAAgB,CAAC,KAAa,EAAA;AAC5B,QAAA,OAAO,MAAM,CAAC,KAAK,GAAG,CAAC,CAAC;IAC1B;AAEA,IAAA,eAAe,CAAC,OAAe,EAAA;AAC7B,QAAA,OAAO,QAAQ,CAAC,OAAO,GAAG,CAAC,CAAC;IAC9B;AAEA,IAAA,eAAe,CAAC,IAAmB,EAAA;AACjC,QAAA,OAAO,CAAA,EAAG,IAAI,CAAC,GAAG,CAAA,CAAA,EAAI,IAAI,CAAC,KAAK,CAAA,CAAA,EAAI,IAAI,CAAC,IAAI,EAAE;IACjD;+GAfW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAZ,YAAY,EAAA,CAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;;ACLK,MAAO,4BAA6B,SAAQ,mBAAmB,CAAA;AAVrE,IAAA,WAAA,GAAA;;QAWE,IAAA,CAAA,iBAAiB,GAAG,KAAK;AAC1B,IAAA;+GAFY,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,4BAA4B,EAAA,YAAA,EAAA,KAAA,EAAA,QAAA,EAAA,0BAAA,EAAA,SAAA,EAN1B;AACP,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AACxD,YAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACzD,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EJZL,0nDAqBA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,wIAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,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,EAAAC,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,aAAA,EAAA,WAAA,EAAA,eAAA,EAAA,cAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,WAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,eAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FINa,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAVxC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,0BAA0B,EAAA,SAAA,EAGzB;AACP,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,oBAAoB,EAAE;AACxD,wBAAA,EAAE,OAAO,EAAE,iBAAiB,EAAE,QAAQ,EAAE,YAAY,EAAE;AACzD,qBAAA,EAAA,UAAA,EACW,KAAK,EAAA,QAAA,EAAA,0nDAAA,EAAA,MAAA,EAAA,CAAA,mVAAA,CAAA,EAAA;;;MCLR,oBAAoB,CAAA;AAK/B,IAAA,WAAA,GAAA;QAJS,IAAA,CAAA,KAAK,GAAG,EAAE;QACV,IAAA,CAAA,WAAW,GAAG,EAAE;QAChB,IAAA,CAAA,QAAQ,GAAG,EAAE;QACb,IAAA,CAAA,0BAA0B,GAAG,KAAK;IAC5B;IACf,eAAe,GAAA;QACb,MAAM,QAAQ,GAAG,QAAQ,CAAC,sBAAsB,CAAC,cAAc,CAAC;QAChE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE;AACnC,YAAA,IAAI,IAAI,CAAC,0BAA0B,EAAE;gBACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC1C,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;AACrC,gBAAA,QAAQ,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC;gBAC5C,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,gBAAA,GAAG,CAAC,GAAG;AACL,oBAAA,kEAAkE;AACpE,gBAAA,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;gBACnC,QAAQ,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,CAAC;YAC9B;iBAAO;gBACL,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;gBAC1C,QAAQ,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,IAAI,EAAE,aAAa,CAAC;gBAC7C,MAAM,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,OAAO,CAAC;AAC7C,gBAAA,KAAK,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ;AAC/B,gBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACrC,gBAAA,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,CAAC;gBAC3B,QAAQ,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;YAC3B;QACF;IACF;+GA5BW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,oBAAoB,qNCRjC,0MAEqB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,IAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,EAAA,WAAA,EAAA,KAAA,EAAA,OAAA,EAAA,aAAA,EAAA,OAAA,EAAA,MAAA,EAAA,aAAA,EAAA,MAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDMR,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBANhC,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,cAGhB,KAAK,EAAA,QAAA,EAAA,0MAAA,EAAA;wDAGR,KAAK,EAAA,CAAA;sBAAb;gBACQ,WAAW,EAAA,CAAA;sBAAnB;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBACQ,0BAA0B,EAAA,CAAA;sBAAlC;;;MEeU,iBAAiB,CAAA;AAC5B,IAAA,WAAA,CAAY,OAAsB,EAAA;AAChC,QAAA,OAAO,CAAC,YAAY,CAAC,GAAG,CAAC;IAC3B;+GAHW,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gHAAjB,iBAAiB,EAAA,YAAA,EAAA,CAfb,oBAAoB,CAAA,EAAA,OAAA,EAAA,CAEjC,gBAAgB;YAChB,uBAAuB;YACvB,aAAa;AACb,YAAA,iBAAiB,aAGjB,oBAAoB;YACpB,gBAAgB;YAChB,uBAAuB;YACvB,aAAa;YACb,iBAAiB,CAAA,EAAA,CAAA,CAAA;AAGR,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,YAb1B,gBAAgB;YAChB,uBAAuB;YACvB,aAAa;AACb,YAAA,iBAAiB,EAIjB,gBAAgB;YAChB,uBAAuB;YACvB,aAAa;YACb,iBAAiB,CAAA,EAAA,CAAA,CAAA;;4FAGR,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAhB7B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,YAAY,EAAE,CAAC,oBAAoB,CAAC;AACpC,oBAAA,OAAO,EAAE;wBACP,gBAAgB;wBAChB,uBAAuB;wBACvB,aAAa;wBACb,iBAAiB;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,gBAAgB;wBAChB,uBAAuB;wBACvB,aAAa;wBACb,iBAAiB;AAClB;AACF,iBAAA;;;MCmCY,kBAAkB,CAAA;+GAAlB,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,iBArC3B,kBAAkB;YAClB,sBAAsB;YACtB,sBAAsB;YACtB,eAAe;YACf,qBAAqB;YACrB,mBAAmB;YACnB,mBAAmB;YACnB,wBAAwB;YACxB,4BAA4B;AAC5B,YAAA,kBAAkB,aAGlB,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,mBAAmB;YACnB,iBAAiB;AACjB,YAAA,cAAc,aAGd,kBAAkB;YAClB,sBAAsB;YACtB,sBAAsB;YACtB,eAAe;YACf,qBAAqB;YACrB,mBAAmB;YACnB,WAAW;YACX,wBAAwB;YACxB,4BAA4B;YAC5B,iBAAiB;YACjB,kBAAkB,CAAA,EAAA,CAAA,CAAA;AAGT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,YAzB3B,YAAY;YACZ,WAAW;YACX,mBAAmB;YACnB,YAAY;YACZ,cAAc;YACd,gBAAgB;YAChB,WAAW;YACX,mBAAmB;YACnB,iBAAiB;AACjB,YAAA,cAAc,EASd,WAAW;YAGX,iBAAiB,CAAA,EAAA,CAAA,CAAA;;4FAIR,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAvC9B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,kBAAkB;wBAClB,sBAAsB;wBACtB,sBAAsB;wBACtB,eAAe;wBACf,qBAAqB;wBACrB,mBAAmB;wBACnB,mBAAmB;wBACnB,wBAAwB;wBACxB,4BAA4B;wBAC5B,kBAAkB;AACnB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,WAAW;wBACX,mBAAmB;wBACnB,YAAY;wBACZ,cAAc;wBACd,gBAAgB;wBAChB,WAAW;wBACX,mBAAmB;wBACnB,iBAAiB;wBACjB,cAAc;AACf,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,kBAAkB;wBAClB,sBAAsB;wBACtB,sBAAsB;wBACtB,eAAe;wBACf,qBAAqB;wBACrB,mBAAmB;wBACnB,WAAW;wBACX,wBAAwB;wBACxB,4BAA4B;wBAC5B,iBAAiB;wBACjB,kBAAkB;AACnB,qBAAA;AACF,iBAAA;;;MChDY,kBAAkB,CAAA;AAG7B,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;QAFzB,IAAA,CAAA,QAAQ,GAAuB,EAAE;IAEU;AAEnD,IAAA,aAAa,CAAC,GAAqB,EAAA;QACjC,MAAM,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC;AACpC,QAAA,IAAI,CAAC,IAAI,CAAC,EAAE;YACV,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC;QAC5B;AACA,QAAA,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC;IAC7D;IAEA,SAAS,CACP,GAAyB,EACzB,IAAiB,EAAA;AAEjB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACzB;AACA,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC;QAEvB,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;AACvC,QAAA,OAAO,IAAI,UAAU,CAAC,CAAC,QAAQ,KAAI;AACjC,YAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAC7C,CAAC,KAAK,KAAI;AACR,gBAAA,IAAI,KAAK,YAAY,YAAY,EAAE;AACjC,oBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACvB,oBAAA,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;gBACtB;AACF,YAAA,CAAC,EACD,CAAC,GAAG,KAAI;AACN,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;AACvB,gBAAA,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;YACrB,CAAC,EACD,MAAK;AACH,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBACvB,QAAQ,CAAC,QAAQ,EAAE;AACrB,YAAA,CAAC,CACF;;AAED,YAAA,OAAO,MAAK;AACV,gBAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC;gBACvB,YAAY,CAAC,WAAW,EAAE;AAC5B,YAAA,CAAC;AACH,QAAA,CAAC,CAAC;IACJ;AAEA,IAAA,WAAW,CAAC,GAAqB,EAAA;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;AACzC,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3D,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;+GAvDW,kBAAkB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAlB,kBAAkB,EAAA,CAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;;MCLY,aAAa,CAAA;AACxB,IAAA,WAAA,CAAoB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;IAAkB;IAEnD,eAAe,CAAC,QAAa,EAAE,OAAe,EAAA;QAC5C,SAAS,CAAC,SAAS,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;QAClD,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,EAAE;AACtC,YAAA,aAAa,EAAE,oBAAoB;AACpC,SAAA,CAAC;IACJ;AAEA,IAAA,KAAK,CAAC,OAAe,EAAE,KAAa,EAAE,OAAgB,EAAA;QACpD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC;QAC1C,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACxC,MAAM,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC;QAE5C,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,SAAS;AACjE,QAAA,MAAM,QAAQ,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,EAAE,qCAAqC,CAAC;AAC3E,QAAA,MAAM,IAAI,GAAG,CAAA;;;sBAGK,KAAK,CAAA;;cAEb,KAAK,CAAA;cACL,MAAM,CAAA;;;;;;;;;;;;yBAYK,OAAO,CAAA;cAClB,aAAa,CAAA;cACb,OAAO,CAAA;;;gBAGL;AACZ,QAAA,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE;AACzB,QAAA,QAAQ,EAAE,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC;AAC9B,QAAA,QAAQ,EAAE,QAAQ,CAAC,KAAK,EAAE;QAC1B,QAAQ,EAAE,KAAK,EAAE;AACjB,QAAA,QAAQ,EAAE,gBAAgB,CAAC,OAAO,EAAE,MAAK;YACvC,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,QAAQ,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE;oBAChC,QAAQ,CAAC,KAAK,EAAE;oBAChB,QAAQ,CAAC,KAAK,EAAE;gBAClB;YACF,CAAC,EAAE,IAAI,CAAC;AACV,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,aAAa,CAAC,GAAgC,EAAA;QACpD,MAAM,IAAI,GAAa,EAAE;QACzB,MAAM,QAAQ,GAAG,QAAQ,CAAC,oBAAoB,CAAC,GAAG,CAAC;AACnD,QAAA,KAAK,IAAI,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE;YACpD,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC;QACtC;AAEA,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC;IAC1B;+GA/DW,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA;;4FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCKY,YAAY,CAAA;IAEvB,WAAA,CACU,aAA4B,EAC5B,aAA4B,EAAA;QAD5B,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,aAAa,GAAb,aAAa;QAHvB,IAAA,CAAA,IAAI,GAAmB,EAAE;IAItB;AAEH,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,eAAe,CAAC,GAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB;IAEA,YAAY,CAAC,QAAqB,EAAE,YAAuC,EAAA;AACzE,QAAA,IAAI,QAAQ,CAAC,MAAM,IAAI,QAAQ,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,YAAA,YAAY,CAAC,UAAU,GAAG,IAAI;YAC9B,IAAI,GAAG,GAAG,EAAE;YACZ,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,KAAI;AAChC,gBAAA,GAAG,IAAI,CAAA,IAAA,EAAO,KAAK,CAAA,KAAA,CAAO;AAC5B,YAAA,CAAC,CAAC;AACF,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CACtB,CAAA,IAAA,EAAO,GAAG,CAAA,KAAA,CAAO,EACjB,QAAQ,CAAC,OAAO,EAChB,YAAY,CACb;QACH;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;QAC9D;IACF;IAEA,eAAe,CACb,QAAsB,EACtB,YAAuC,EAAA;AAEvC,QAAA,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,GAAG,GAAG,IAAI,QAAQ,CAAC,UAAU,IAAI,EAAE,CAAC;AACvE,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CACrC,GAAG,EACH,QAAQ,CAAC,OAAO,EAChB,YAAY,CACb;AACD,QAAA,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,MAAK;YAC5B,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,OAAO,GAAG,IAAI,GAAG,GAAG,CAAC;AACnD,QAAA,CAAC,CAAC;IACJ;AAEQ,IAAA,aAAa,CAAC,QAAgB,EAAA;QACpC,MAAM,YAAY,GAAG,QAAQ,CAAC,sBAAsB,CAClD,eAAe,CAChB,CAAC,CAAC,CAAmB;QACtB,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;QACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC;AAC5C,QAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAK;YAClC,IAAI,CAAC,aAAa,CAAC,eAAe,CAChC,QAAQ,EACR,4BAA4B,CAC7B;AACH,QAAA,CAAC,CAAC;AACF,QAAA,YAAY,CAAC,WAAW,CAAC,IAAI,CAAC;IAChC;+GA5DW,YAAY,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCKY,gBAAgB,CAAA;AAC3B,IAAA,WAAA,CAAoB,YAA0B,EAAA;QAA1B,IAAA,CAAA,YAAY,GAAZ,YAAY;IAAiB;IAEjD,SAAS,CACP,GAAyB,EACzB,IAAiB,EAAA;AAEjB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;AACzB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC;QACzB;AAEA,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,IAAI,CAC1B,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,YAAA,MAAM,QAAQ,GAAG,KAAK,CAAC,KAAqB;AAC5C,YAAA,MAAM,YAAY,GAA8B;AAC9C,gBAAA,cAAc,EAAE,IAAI;AACpB,gBAAA,WAAW,EAAE,IAAI;AACjB,gBAAA,YAAY,EAAE,KAAK;aACpB;AACD,YAAA,QAAQ,QAAQ,CAAC,UAAU;AACzB,gBAAA,KAAK,GAAG;oBACN,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACzD;AAEF,gBAAA;oBACE,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,QAAQ,EAAE,YAAY,CAAC;oBACtD;;AAEJ,YAAA,OAAO,UAAU,CAAC,MAAM,KAAK,CAAC;QAChC,CAAC,CAAC,CACH;IACH;AAEQ,IAAA,WAAW,CAAC,GAAqB,EAAA;QACvC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3D,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;+GAxCW,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCNY,WAAW,CAAA;AAGtB,IAAA,WAAA,GAAA;QAFO,IAAA,CAAA,WAAW,GAAG,IAAI,eAAe,CAAe,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;QAClE,IAAA,CAAA,cAAc,GAAG,EAAE;IACJ;IAEf,QAAQ,GAAA;QACN,OAAO,YAAY,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE;IAC5C;IAEA,eAAe,GAAA;QACb,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,CAAC;IACxC;IAEA,cAAc,GAAA;AACZ,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,EAAkB;QAC3D,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACjC;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,YAAY,CAAC,MAAM;YAC3B,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,GAAG,EAAE,YAAY,CAAC,GAAG;AACtB,SAAA,CAAC;IACJ;IAEA,kBAAkB,GAAA;AAChB,QAAA,QACG,QAAQ,CAAC,aAAa,CAAC,eAAe,CAAsB,CAAC,KAAK,IAAI,EAAE;IAE7E;IAEA,yBAAyB,GAAA;QACvB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,kBAAkB,EAAE,CAAC;IAClD;IAEA,wBAAwB,GAAA;AACtB,QAAA,MAAM,YAAY,GAAG,IAAI,CAAC,yBAAyB,EAAkB;QACrE,IAAI,CAAC,YAAY,EAAE;YACjB,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;YACjC;QACF;AACA,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;YACpB,MAAM,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YAC3C,KAAK,EAAE,YAAY,CAAC,KAAK;YACzB,UAAU,EAAE,YAAY,CAAC,UAAU;YACnC,GAAG,EAAE,YAAY,CAAC,GAAG;AACtB,SAAA,CAAC;IACJ;AAEA,IAAA,iBAAiB,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,CAAC,cAAc,GAAG,GAAG;IAC3B;AAEQ,IAAA,SAAS,CAAC,KAAa,EAAA;QAC7B,IAAI,CAAC,KAAK,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,WAAW,EAAE;AACvD,YAAA,OAAO,IAAI;QACb;QACA,MAAM,SAAS,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AACrC,QAAA,MAAM,MAAM,GAAG,SAAS,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,GAAG,CAAC;AAC9D,QAAA,MAAM,WAAW,GAAG,kBAAkB,CACpC,IAAI,CAAC,MAAM;aACR,KAAK,CAAC,EAAE;AACR,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;YACT,OAAO,GAAG,GAAG,CAAC,IAAI,GAAG,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9D,QAAA,CAAC;AACA,aAAA,IAAI,CAAC,EAAE,CAAC,CACZ;AACD,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC;IAChC;+GAtEW,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAX,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA,CAAA;;4FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCAY,YAAY,CAAA;AAEvB,IAAA,WAAA,GAAA;QADA,IAAA,CAAA,IAAI,GAAmB,EAAE;IACV;AAEf,IAAA,gBAAgB,CAAC,IAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;IAClB;AAEA,IAAA,eAAe,CAAC,GAAiB,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;IACrB;+GAVW,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA,CAAA;;4FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCWY,gBAAgB,CAAA;AAE3B,IAAA,WAAA,CACU,WAAwB,EACxB,IAAgB,EAChB,aAA4B,EAC5B,YAA0B,EAAA;QAH1B,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,IAAI,GAAJ,IAAI;QACJ,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,YAAY,GAAZ,YAAY;QALtB,IAAA,CAAA,OAAO,GAAG,IAAI;AAOZ,QAAA,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC;AACjC,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC;AACF,QAAA,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC;AAChC,YAAA,IAAI,EAAE,oBAAoB;AAC1B,YAAA,MAAM,EAAE,KAAK;AACd,SAAA,CAAC;IACJ;IAEA,SAAS,CACP,OAA6B,EAC7B,IAAiB,EAAA;AAEjB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;QACzC,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AAC1B,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACtB,gBAAA,UAAU,EAAE;oBACV,aAAa,EAAE,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AACjC,iBAAA;AACF,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B;AAEQ,IAAA,cAAc,CAAC,KAAa,EAAA;AAClC,QAAA,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ;QACtC,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,eAAe,EAAkB;AACvE,QAAA,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,CAAC,YAAY,CAAC,GAAG,IAAI,CAAC,IAAI,IAAI,CAAC;AACxD,QAAA,IAAI,OAAO,GAAG,IAAI,IAAI,EAAE,EAAE;AACxB,YAAA,QAAQ,CAAC,OAAO,CAAC,qBAAqB,GAAG,YAAY,CAAC;YACtD;QACF;aAAO;AACL,YAAA,IAAI,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE;AACnC,gBAAA,IAAI,IAAI,CAAC,OAAO,EAAE;AAChB,oBAAA,IAAI,CAAC;yBACF,GAAG,CAAO,IAAI,CAAC,WAAW,CAAC,cAAc,GAAG,eAAe,EAAE;AAC5D,wBAAA,OAAO,EAAE,EAAE,aAAa,EAAE,CAAA,OAAA,EAAU,KAAK,EAAE,EAAE;qBAC9C;AACA,yBAAA,SAAS,CAAC,CAAC,IAAI,KAAI;wBAClB,YAAY,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC;AACzC,wBAAA,IAAI,CAAC,OAAO,GAAG,KAAK;wBACpB,UAAU,CAAC,MAAK;AACd,4BAAA,IAAI,CAAC,OAAO,GAAG,IAAI;AACrB,wBAAA,CAAC,EAAE,EAAE,GAAG,IAAI,CAAC;AACf,oBAAA,CAAC,CAAC;gBACN;YACF;iBAAO;AACL,gBAAA,MAAM,IAAI,KAAK,CACb,oGAAoG,CACrG;YACH;QACF;IACF;AAEA,IAAA,WAAW,CAAC,GAAqB,EAAA;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3D,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;+GA1EW,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAb,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAc,aAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAAhB,gBAAgB,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B;;;MCHY,qBAAqB,CAAA;IAChC,WAAA,CACU,WAAwB,EACxB,YAA0B,EAAA;QAD1B,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,YAAY,GAAZ,YAAY;IACnB;IAEH,SAAS,CACP,OAA6B,EAC7B,IAAiB,EAAA;AAEjB,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;AAC7B,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAC7B;QACA,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,kBAAkB,EAAE;QACnD,IAAI,KAAK,EAAE;AACT,YAAA,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC;AACtB,gBAAA,UAAU,EAAE;oBACV,aAAa,EAAE,CAAA,OAAA,EAAU,KAAK,CAAA,CAAE;AACjC,iBAAA;AACF,aAAA,CAAC;QACJ;AACA,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B;AAEA,IAAA,WAAW,CAAC,GAAqB,EAAA;QAC/B,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE;AACxC,YAAA,IAAI,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE;AAC3D,gBAAA,OAAO,IAAI;YACb;QACF;AACA,QAAA,OAAO,KAAK;IACd;+GA/BW,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAG,YAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;mHAArB,qBAAqB,EAAA,CAAA,CAAA;;4FAArB,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBADjC;;;MCLY,kBAAkB,CAAA;AAC7B,IAAA,WAAA,GAAA,EAAe;AAEf,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,oBAAoB,CAAC;QAC5D,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,WAAW,GAAG,IAAI;QAC5B;IACF;IAEA,gBAAgB,CAAC,IAAY,EAAE,GAAW,EAAA;QACxC,MAAM,GAAG,GAAG,QAAQ,CAAC,sBAAsB,CAAC,oBAAoB,CAAC;QACjE,IAAI,GAAG,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,EAAE;YACzB,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,CAAA,uBAAA,EAA0B,GAAG,CAAA,EAAA,EAAK,IAAI,CAAA,IAAA,CAAM;QACjE;IACF;IAEA,aAAa,CACX,QAAgB,EAChB,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,SAAS,EAAA;QAEvB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ;;AAE7D,QAAA,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;AAClE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;AACrC,QAAA,SAAS,CAAC,SAAS,GAAG,EAAE;QACxB,SAAS,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;;AAE7C,QAAA,SAAS,CAAC,WAAW,CACnB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAC3D;;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,WAAW,CAAC;QACtD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAChD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1C;IAEA,iBAAiB,CACf,QAAuB,EACvB,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,SAAS,EAAA;QAEvB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,UAAU;;AAE/D,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;AACjE,QAAA,MAAM,SAAS,GAAG,QAAQ,CAAC,SAAS;QACpC,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;AAC3C,QAAA,QAAQ,CAAC,SAAS,GAAG,EAAE;;AAEvB,QAAA,QAAQ,CAAC,WAAW,CAClB,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,CAC3D;AAED,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;AAClE,YAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC9C,OAAO,CAAC,WAAW,CACjB,IAAI,CAAC,UAAU,CACb,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EACnB,WAAW,CACZ,CACF;gBACD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAChD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C;iBAAO;AACL,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC;gBAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAChD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C;QACF;IACF;IAEA,iBAAiB,CACf,QAAuB,EACvB,WAAW,GAAG,YAAY,EAC1B,WAAW,GAAG,SAAS,EAAA;QAEvB,MAAM,WAAW,GAAG,QAAQ,CAAC,cAAc,CACzC,YAAY,CACM;AACpB,QAAA,WAAW,CAAC,SAAS,GAAG,EAAE;QAC1B,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC9C,QAAA,WAAW,EAAE,WAAW,CAAC,OAAO,CAAC;QACjC,OAAO,CAAC,WAAW,CACjB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC,CACxE;AACD,QAAA,MAAM,KAAK,GAAG,WAAW,EAAE,QAAQ;AACnC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,SAAS,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;AAClE,YAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAC9C,OAAO,CAAC,WAAW,CACjB,IAAI,CAAC,UAAU,CACb,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EACnB,WAAW,CACZ,CACF;gBACD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAChD,SAAS,EAAE,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC3C;iBAAO;AACL,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,WAAW,CAAC;gBAClE,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;gBAChD,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;YAC1C;QACF;IACF;IAEA,oBAAoB,GAAA;QAClB,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY,CAAC,EAAE,QAAQ;AAC7D,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AACvC,QAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AACvC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;IAC5B;AAEA,IAAA,0BAA0B,CAAC,QAAgB,EAAA;AACzC,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY;AAChD,cAAE,QAA0B;AAC9B,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;YACrC,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;YAC1B,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE;gBAC1C,KAAK,GAAG,CAAC;gBACT;YACF;QACF;QACA,MAAM,QAAQ,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,KAAK,KAAK;QAC3C,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC7B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;QAC9B;aAAO;YACL,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;YAC5B,KAAK,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;QAClC;QACA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAC5B;IACF;AAEA,IAAA,6BAA6B,CAAC,MAAc,EAAA;AAC1C,QAAA,MAAM,KAAK,GAAG,QAAQ,CAAC,cAAc,CAAC,YAAY;AAChD,cAAE,QAA0B;AAC9B,QAAA,OAAO,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AACvC,YAAA,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AACvC,YAAA,MAAM,EAAE;QACV;AACA,QAAA,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACpB,YAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;QAC5B;IACF;AAEQ,IAAA,UAAU,CAChB,SAAiB,EACjB,IAAmB,EACnB,OAAe,EAAA;QAEf,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,QAAA,OAAO,IAAI;IACb;IAEQ,UAAU,CAAC,SAAiB,EAAE,OAAe,EAAA;QACnD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;QAC3C,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,SAAS;AAChC,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,cAAc,CAAC,KAAsB,EAAA;AAC3C,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;QACjE,MAAM,YAAY,GAAG;AACnB,cAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACvB,cAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAsB;QACzC,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;AAC1C,QAAA,QAAQ,CAAC,SAAS,GAAG,YAAY,CAAC,SAAS;IAC7C;+GArLW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAlB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA,CAAA;;4FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;MCCY,oBAAoB,CAAA;AAC/B,IAAA,WAAA,GAAA,EAAe;AAEf,IAAA,YAAY,CAAC,IAAY,EAAA;QACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC;QAChE,IAAI,OAAO,EAAE;AACX,YAAA,OAAO,CAAC,WAAW,GAAG,IAAI;QAC5B;IACF;IAEA,aAAa,CACX,QAAgB,EAChB,UAAU,GAAG,YAAY,EACzB,WAAW,GAAG,WAAW,EAAA;QAEzB,MAAM,QAAQ,GAAG;aACd,cAAc,CAAC,MAAM;AACtB,cAAE,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ;;AAEzC,QAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAoB;AACxE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;;AAErC,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;;QAE3C,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QACzC,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,CAAC;QACxC,SAAS,CAAC,MAAM,EAAE;IACpB;IAEA,iBAAiB,CACf,QAAuB,EACvB,UAAU,GAAG,YAAY,EACzB,WAAW,GAAG,WAAW,EAAA;QAEzB,MAAM,QAAQ,GAAG;aACd,cAAc,CAAC,MAAM;AACtB,cAAE,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ;;AAEzC,QAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAoB;AACxE,QAAA,MAAM,SAAS,GAAG,SAAS,CAAC,SAAS;AACrC,QAAA,SAAS,CAAC,SAAS,GAAG,EAAE;;AAExB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,SAAS,EAAE,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;;QAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAC3C,QAAA,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;QAC/B,SAAS,CAAC,MAAM,EAAE;AAClB,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,MAAM,SAAS,GAAG,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAoB;AACxE,YAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;gBACvB,MAAM,OAAO,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;;gBAE9C,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CAAC;;gBAEpF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAC3C,gBAAA,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,QAAQ,CAAC;YACjC;iBAAO;AACL,gBAAA,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AACrD,gBAAA,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC;YAC1B;QACF;IACF;IAEA,iBAAiB,CACf,QAAuB,EACvB,UAAU,GAAG,YAAY,EACzB,WAAW,GAAG,WAAW,EAAA;AAEzB,QAAA,MAAM,UAAU,GAAG,QAAQ,CAAC,cAAc,CACxC,MAAM,CACP,EAAE,aAAa,CAAC,YAAY,CAAmB;AAChD,QAAA,UAAU,CAAC,SAAS,GAAG,EAAE;;QAEzB,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,CAC/B,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,WAAW,CACjC;AACD,QAAA,UAAU,CAAC,WAAW,CAAC,SAAS,CAAC;;QAEjC,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAChD,QAAA,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC;;AAErC,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,YAAA,IAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;;gBAEvB,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAC1B,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,EACpB,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,EAAG,WAAW,CAClC;;gBAED,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC;AAC3C,gBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;AAC5B,gBAAA,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC;YAClC;iBAAO;;AAEL,gBAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;AAClD,gBAAA,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC;YAC9B;QACF;IACF;IAEA,oBAAoB,GAAA;QAClB,MAAM,QAAQ,GAAG;aACd,cAAc,CAAC,MAAM;AACtB,cAAE,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ;AACzC,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7C,QAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7C,QAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;IAC/B;AAEA,IAAA,0BAA0B,CAAC,QAAgB,EAAA;QACzC,MAAM,QAAQ,GAAG;aACd,cAAc,CAAC,MAAM;AACtB,cAAE,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ;AACzC,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC;AACd,QAAA,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,EAAE,MAAO,EAAE,CAAC,EAAE,EAAE;YAC1C,MAAM,IAAI,GAAG,QAAQ,EAAE,IAAI,CAAC,CAAC,CAAC;YAC9B,IAAI,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,QAAQ,EAAE;gBAC1C,KAAK,GAAG,CAAC;gBACT;YACF;QACF;QACA,MAAM,QAAQ,GAAG,QAAQ,EAAE,MAAO,GAAG,CAAC,KAAK,KAAK;QAChD,IAAI,KAAK,KAAK,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE;YAC7B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;QACjC;aAAO;YACL,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE;YAC/B,QAAQ,EAAE,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;QACrC;QACA,IAAI,QAAQ,EAAE;AACZ,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC/B;IACF;AAEA,IAAA,6BAA6B,CAAC,MAAc,EAAA;QAC1C,MAAM,QAAQ,GAAG;aACd,cAAc,CAAC,MAAM;AACtB,cAAE,aAAa,CAAC,YAAY,CAAC,EAAE,QAAQ;AACzC,QAAA,OAAO,MAAM,GAAG,CAAC,EAAE;AACjB,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7C,YAAA,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE;AAC7C,YAAA,MAAM,EAAE;QACV;AACA,QAAA,IAAI,QAAQ,EAAE,MAAO,GAAG,CAAC,EAAE;AACzB,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;QAC/B;IACF;AAEQ,IAAA,UAAU,CAChB,SAAiB,EACjB,IAAmB,EACnB,OAAe,EAAA;QAEf,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC;AACxC,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI,IAAI,EAAE;QACtB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAChC,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,UAAU,CAAC,SAAiB,EAAA;QAClC,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC;AAC3C,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,GAAG,SAAS;AAChC,QAAA,OAAO,IAAI;IACb;AAEQ,IAAA,SAAS,CACf,OAAe,EACf,GAAA,GAAc,0FAA0F,EAAA;QAExG,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC;AACzC,QAAA,GAAG,CAAC,GAAG,GAAG,GAAG;QACb,GAAG,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AAC/B,QAAA,OAAO,GAAG;IACZ;AAEQ,IAAA,cAAc,CAAC,KAAsB,EAAA;AAC3C,QAAA,MAAM,QAAQ,GAAG,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAoB;QACjE,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,SAAS,CAAC;AAChD,QAAA,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC;IAC5B;+GAvLW,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAApB,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,cAFnB,MAAM,EAAA,CAAA,CAAA;;4FAEP,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAHhC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;;ACLD;;AAEG;AACH;;ACHA;;AAEG;;;;"}
1
+ {"version":3,"file":"ng-ipa-library.mjs","sources":["../../../projects/ng-ipa-library/src/lib/pipes/hijri-date.pipe.ts","../../../projects/ng-ipa-library/src/lib/pipes/pipes.module.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/ipa-form.service.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/text-input/text-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/textarea-input/textarea-input.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/dropdown-input/dropdown-input.component.html","../../../projects/ng-ipa-library/src/lib/core/services/loader.service.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.ts","../../../projects/ng-ipa-library/src/lib/core/components/loading/loading.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/file-upload/file-upload.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/recaptcha/recaptcha.component.html","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.ts","../../../projects/ng-ipa-library/src/lib/generate-form/generate-form.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/datepicker.component.html","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/IslamicI18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian18n.ts","../../../projects/ng-ipa-library/src/lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.ts","../../../projects/ng-ipa-library/src/lib/share-button/share-button.component.html","../../../projects/ng-ipa-library/src/lib/share-button/share-button.module.ts","../../../projects/ng-ipa-library/src/lib/ng-ipa-library.module.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/loading.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/common.service.ts","../../../projects/ng-ipa-library/src/lib/core/services/error.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/error.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/services/auth.service.ts","../../../projects/ng-ipa-library/src/lib/core/services/token.service.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/token.interceptor.ts","../../../projects/ng-ipa-library/src/lib/core/interceptors/myIPAToken.interceptor.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbs.service.ts","../../../projects/ng-ipa-library/src/lib/services/breadcrumbsV2.service.ts","../../../projects/ng-ipa-library/src/public-api.ts","../../../projects/ng-ipa-library/src/ng-ipa-library.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\nimport momentHijri from 'moment-hijri';\r\n@Pipe({\n name: 'hijriDate',\n standalone: false\n})\r\nexport class HijriDatePipe implements PipeTransform {\r\n transform(\r\n date: string,\r\n format: string = 'iYYYY-iMM-iDD',\r\n lang: 'ar' | 'en' = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n}\r\n","import { NgModule } from '@angular/core';\r\nimport { HijriDatePipe } from './hijri-date.pipe';\r\n\r\n@NgModule({\r\n declarations: [HijriDatePipe],\r\n exports: [HijriDatePipe],\r\n})\r\nexport class PipesModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport { AbstractControl, UntypedFormControl, ValidationErrors } from '@angular/forms';\r\nimport momentHijri from 'moment-hijri';\r\nimport { Moment } from 'moment';\r\nimport { NgbDate, NgbDateParserFormatter } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class IPAFormService {\r\n constructor(private parserFormatter: NgbDateParserFormatter) {}\r\n\r\n /**\r\n * check link is valid.\r\n */\r\n static linkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?)$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { link: true };\r\n }\r\n\r\n /**\r\n * check mp4 link is valid.\r\n */\r\n static mp4LinkValidation(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^((https?:\\/\\/)[\\w-]+(\\.[a-z-]+)+\\.?(:\\d+)?(\\/\\S*)?(\\/[\\w\\u0600-\\u06FF]+\\.mp4))$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { linkMP4: true };\r\n }\r\n\r\n /**\r\n * check mobile number is valid.\r\n */\r\n static mobileNo(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink = /^05\\d{8}$/.test(control.value);\r\n return isValidLink || !control.value ? null : { mobileNo: true };\r\n }\r\n\r\n /**\r\n * check email is valid.\r\n */\r\n static email(control: AbstractControl): ValidationErrors | null {\r\n const isValidLink =\r\n /^(([^<>()[\\]\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@(([^<>()[\\]\\.,;:\\s@\\\"]+\\.)+[^<>()[\\]\\.,;:\\s@\\\"]{2,})$/.test(\r\n control.value\r\n );\r\n return isValidLink || !control.value ? null : { Email: true };\r\n }\r\n\r\n /**\r\n * check national ID or iqama ID is valid.\r\n */\r\n static checkID(control: AbstractControl): ValidationErrors | null {\r\n let isValid = false;\r\n const value = control.value;\r\n if (\r\n IPAFormService.nationalIdValidate(value) ||\r\n IPAFormService.iqamaIdValidate(value)\r\n ) {\r\n isValid = true;\r\n } else {\r\n isValid = false;\r\n }\r\n return isValid || !value ? null : { checkId: true };\r\n }\r\n\r\n static validHijriDate(control: AbstractControl): ValidationErrors | null {\r\n const date: NgbDate = control.value;\r\n const isValid = IPAFormService.checkHijriDateValid(date);\r\n return isValid || !date\r\n ? null\r\n : {\r\n ngbDate: {\r\n invalid:\r\n date?.year +\r\n '-' +\r\n (date?.month > 10 ? date?.month : '0' + date?.month) +\r\n '-' +\r\n (date?.day > 10 ? date?.day : '0' + date?.day),\r\n },\r\n };\r\n }\r\n\r\n getErrorMessage(\r\n control: UntypedFormControl,\r\n patternErrorMsg = '',\r\n isArabic: boolean\r\n ): string | null {\r\n for (const propertyName in control?.errors) {\r\n if (\r\n control?.errors.hasOwnProperty(propertyName) &&\r\n (control.touched || control.dirty)\r\n ) {\r\n return this.getValidatorErrorMessage(\r\n propertyName,\r\n control.errors[propertyName],\r\n patternErrorMsg,\r\n isArabic\r\n );\r\n }\r\n }\r\n return null;\r\n }\r\n\r\n /**\r\n * convert gregorian date to hijri date (Based on Umm al-Qura calculations).\r\n * @param date: gregorian date\r\n * @param format: iDD => day: ١٥, iMM => month: ٠٤, iMMM => month: ربيع ٢,\r\n * iMMMM => ربيع الثاني, iYY => year: ٤٢, iYYYY => year: ١٤٤٢,\r\n * dd => ن, ddd => إثنين, dddd => الإثنين\r\n * @example 'iYYYY/iM/iDهـ الموافق YYYY/M/Dم'\r\n * '١٤٤٢/٠٤/١٥هـ الموافق ٢٠٢٠/١١/٣٠'\r\n */\r\n convertToHijriDate(\r\n date: string,\r\n format = 'iYYYY-iMM-iDD',\r\n lang = 'ar-SA'\r\n ): string {\r\n momentHijri.locale(lang);\r\n return momentHijri(date).format(format);\r\n }\r\n\r\n convertToGregorianDate(\r\n date: Moment,\r\n format = 'YYYY-MM-DD',\r\n lang = 'en'\r\n ): string {\r\n momentHijri.locale(lang);\r\n const m = momentHijri.iConvert.toGregorian(\r\n date.year(),\r\n date.month(),\r\n date.date()\r\n );\r\n return momentHijri(new Date(m.gy, m.gm, m.gd)).format(format);\r\n }\r\n\r\n getCurrentHijriDate() {\r\n momentHijri.locale('en');\r\n return momentHijri().format('iYYYY/iMM/iDD');\r\n }\r\n\r\n private getValidatorErrorMessage(\r\n validatorName: string,\r\n validatorValue: any,\r\n patternErrorMsg: string,\r\n isArabic: boolean\r\n ): string {\r\n if (validatorName === 'pattern') {\r\n validatorValue = this.addPatternMsg(validatorValue, patternErrorMsg);\r\n }\r\n const config: any = {\r\n required: isArabic ? 'هذا الحقل مطلوب' : 'this field required',\r\n pattern: `${validatorValue.message}`,\r\n Email:\r\n (isArabic ? 'خطأ في البريد الالكتروني ' : 'Invalid email ') +\r\n '(example@example.com)',\r\n maxlength: isArabic\r\n ? `تجاوز عدد الحقل المسموح بها (${validatorValue.requiredLength}) حرف`\r\n : `this field is more than (${validatorValue.requiredLength}) letter`,\r\n minlength: isArabic\r\n ? `على الأقل عدد ${validatorValue.requiredLength} حرف`\r\n : `this field is less than (${validatorValue.requiredLength}) letter`,\r\n min: isArabic\r\n ? `رقم اكبر من أو يساوي ${validatorValue.min}`\r\n : `number more than or equal (${validatorValue.min})`,\r\n max: isArabic\r\n ? `رقم اصغر من أو يساوي ${validatorValue.max}`\r\n : `number less than or equal (${validatorValue.min})`,\r\n ngbDate: this.getNgbDatepickerErrorMsg(validatorValue),\r\n checkId: isArabic\r\n ? 'رقم الهوية أو الاقامة غير صحيح'\r\n : 'Wrong ID or Iqama number',\r\n link:\r\n (isArabic ? 'الرابط غير صحيح ' : 'Wrong link ') +\r\n '(http://example.com)',\r\n linkMP4:\r\n (isArabic ? 'رابط MP4 غير صحيح ' : 'Wrong MP4 link ') +\r\n '(http://example.com/example.mp4)',\r\n mobileNo:\r\n (isArabic ? 'خطأ في رقم الجوال ' : 'Wrong mobile number ') +\r\n '(05xxxxxxxx)',\r\n };\r\n return config[validatorName];\r\n }\r\n\r\n private addPatternMsg(validatorValue: any, patternErrorMsg: string) {\r\n let pattern = {\r\n ...validatorValue,\r\n message: patternErrorMsg,\r\n };\r\n return pattern;\r\n }\r\n\r\n private getNgbDatepickerErrorMsg(validatorValue: any): string {\r\n let msg = '';\r\n if (validatorValue.maxDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.maxDate.actual\r\n )}\" اكبر من تاريخ اليوم \"${this.parserFormatter.format(\r\n validatorValue.maxDate.maxDate\r\n )}\"`;\r\n } else if (validatorValue.minDate) {\r\n msg = `التاريخ المدخل \"${this.parserFormatter.format(\r\n validatorValue.minDate.actual\r\n )}\" يجب ان يكون اكبر من أو يساوي تاريخ البداية \"${this.parserFormatter.format(\r\n validatorValue.minDate.minDate\r\n )}\"`;\r\n } else if (validatorValue.invalid) {\r\n msg = `التاريخ المدخل غير صحيح ${validatorValue.invalid}.`;\r\n }\r\n return msg;\r\n }\r\n\r\n private static checkHijriDateValid(date: NgbDate): boolean {\r\n return !(\r\n momentHijri.iDaysInMonth(date?.year, date?.month - 1) < date?.day ||\r\n date?.day <= 0 ||\r\n date?.month <= 0 ||\r\n date?.month > 12 ||\r\n date?.year?.toString().length !== 4\r\n );\r\n }\r\n\r\n private static convertToEn(value: string) {\r\n let newValue = '';\r\n for (let i = 0; i < value.length; i++) {\r\n let ch = value.charCodeAt(i);\r\n if (ch >= 1584 && ch <= 1650) {\r\n let newChar = ch - 1584;\r\n newValue = newValue + String.fromCharCode(newChar);\r\n } else {\r\n newValue = newValue + String.fromCharCode(ch);\r\n }\r\n }\r\n return newValue;\r\n }\r\n\r\n private static nationalIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '1'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n\r\n private static iqamaIdValidate(civilId: string): boolean {\r\n if (civilId) {\r\n let strID = this.convertToEn(civilId);\r\n let digits = '';\r\n let counter = 0;\r\n while (counter < 9) {\r\n if ((counter + 1) % 2 == 0) {\r\n digits = digits + strID.substring(counter, counter + 1);\r\n } else {\r\n digits =\r\n digits + (+strID.substring(counter, counter + 1) * 2).toString();\r\n }\r\n counter++;\r\n }\r\n let intSum = 0;\r\n let intSumTemp = 0;\r\n let strSum;\r\n let intOddSumDigit;\r\n let CheckDigit;\r\n counter = 0;\r\n while (counter < digits.length) {\r\n intSumTemp = +digits.charAt(counter) * 1;\r\n intSum += intSumTemp;\r\n counter++;\r\n }\r\n strSum = intSum.toString();\r\n if (strSum.length == 1) {\r\n intOddSumDigit = intSum;\r\n } else {\r\n intOddSumDigit = strSum.substring(strSum.length, strSum.length - 1);\r\n }\r\n if (intOddSumDigit == 0) {\r\n CheckDigit = 0;\r\n } else {\r\n CheckDigit = (10 - +intOddSumDigit).toString();\r\n }\r\n let PublicID = this.convertToEn(civilId);\r\n if (\r\n CheckDigit ==\r\n PublicID.substring(PublicID.length - 1, PublicID.length) &&\r\n strID.length == 10 &&\r\n strID.substring(0, 1) == '2'\r\n ) {\r\n return true;\r\n } else {\r\n return false;\r\n }\r\n } else {\r\n return false;\r\n }\r\n }\r\n}\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-text-input',\r\n templateUrl: './text-input.component.html',\r\n styleUrls: ['./text-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class TextInputComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('input', { static: true }) input!: ElementRef;\r\n @Input() isPlatformCodeDesignSystem: boolean = false;\r\n @Input() id!: string;\r\n @Input() type = 'text';\r\n @Input({required: true}) label!: string;\r\n @Input() placeholder!: string;\r\n @Input() required = false;\r\n @Input() patternErrorMsg!: string;\r\n @Input() onlyNumber = false;\r\n @Input() pattern = '';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n this.placeholder = this.placeholder\r\n ? this.placeholder\r\n : this.label ? 'اكتب ' + this.label : '';\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n checkIsNumber(event: Event) {\r\n if (this.onlyNumber) {\r\n const initialValue = this.formControl.value;\r\n const newValue = initialValue.replace(/[^0-9]*/g, '');\r\n this.formControl.patchValue(newValue);\r\n this.formControl.markAsPristine();\r\n if (initialValue !== this.formControl.value) {\r\n event.stopPropagation();\r\n }\r\n }\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <input #input id=\"{{id}}\" class=\"form-control {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label class=\"form-label\" for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <input #input id=\"{{id}}\" class=\"form-control p-2 {{classes}}\" [type]=\"type\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" (input)=\"checkIsNumber($event)\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-textarea-input',\r\n templateUrl: './textarea-input.component.html',\r\n styleUrls: ['./textarea-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class TextareaInputComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('input', { static: true }) input: ElementRef<any> =\r\n new ElementRef<any>(null);\r\n @Input() isPlatformCodeDesignSystem: boolean = false;\r\n @Input() id!: string;\r\n @Input() label!: string;\r\n @Input() placeholder!: string;\r\n @Input() required = false;\r\n @Input() patternErrorMsg!: string;\r\n @Input() pattern!: string;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n this.placeholder = this.placeholder\r\n ? this.placeholder\r\n : this.label ? 'اكتب ' + this.label : '';\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n this.input.nativeElement.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,\r\n 'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </textarea>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"{{containerClasses}}\" [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n <textarea #input id=\"{{id}}\" class=\"form-control {{classes}}\" [required]=\"required\" pattern=\"{{pattern}}\"\r\n placeholder=\"{{placeholder}}\" [formControl]=\"formControl\" (input)=\"onChange(controlDir.control?.value)\"\r\n (blur)=\"onTouched()\" style=\"height: 135px;\"\r\n [ngClass]=\"{\r\n 'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n </textarea>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import {\r\n Component,\r\n ElementRef,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-dropdown-input',\r\n templateUrl: './dropdown-input.component.html',\r\n styleUrls: ['./dropdown-input.component.scss'],\r\n standalone: false,\r\n})\r\nexport class DropdownInputComponent implements OnInit {\r\n @ViewChild('select', { static: true }) input!: HTMLSelectElement;\r\n @Input({required: true}) id!: string;\r\n @Input() isPlatformCodeDesignSystem = false;\r\n @Input({required: true}) label!: string;\r\n @Input({required: true}) items: any[] = [];\r\n @Input() textField!: string;\r\n @Input() valueField!: string;\r\n @Input() required = false;\r\n @Input() firstItemLabel!: string;\r\n @Input() searchable = false;\r\n @Input() notFoundText = 'لا يوجد بيانات';\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n @Input() fromGenerateForm = false;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private validationService: IPAFormService,\r\n @Self() public controlDir: NgControl\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n\r\n document.addEventListener('DOMContentLoaded', () => {\r\n if (this.isPlatformCodeDesignSystem) this.initCustomDropdowns();\r\n });\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {\r\n if (this.input) this.input.value = obj || '';\r\n }\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n this.formControl,\r\n '',\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n initCustomDropdowns(): void {\r\n // Select all custom wrappers\r\n const wrappers = document.querySelectorAll(\r\n '.custom-dropdown-wrapper-' + this.id\r\n );\r\n wrappers.forEach((wrapper) => {\r\n // Find parent container\r\n const parent = wrapper.closest('.form-group') || wrapper.parentElement;\r\n if (!parent) return;\r\n // Locate Elements\r\n const hiddenSelect = parent.querySelector('select');\r\n const dropdownButton = wrapper.querySelector('.dropdown-toggle');\r\n const dropdownButtonSpan =\r\n dropdownButton!.querySelector('span') || dropdownButton;\r\n const dropdownItems = wrapper.querySelectorAll('.dropdown-item');\r\n if (!hiddenSelect || !dropdownButton) return;\r\n // Sync visual state with hidden select on load\r\n if (hiddenSelect.selectedIndex > -1) {\r\n const selectedOption = hiddenSelect.options[hiddenSelect.selectedIndex];\r\n dropdownButtonSpan!.textContent = selectedOption.text;\r\n // Set active class\r\n dropdownItems.forEach((item) => {\r\n const isActive =\r\n item.getAttribute('data-value') === hiddenSelect.value;\r\n item.classList.toggle('active', isActive);\r\n });\r\n }\r\n // Handle Item Click\r\n dropdownItems.forEach((item) => {\r\n item.addEventListener('click', (e) => {\r\n e.preventDefault();\r\n const value = item.getAttribute('data-value');\r\n const text = item.textContent!.trim();\r\n // Update UI\r\n dropdownButtonSpan!.textContent = text || `اختر ${this.label}`; \r\n dropdownItems.forEach((i) => i.classList.remove('active'));\r\n item.classList.add('active');\r\n // Update Data\r\n hiddenSelect.value = value!;\r\n // Trigger Change Event\r\n hiddenSelect.dispatchEvent(new Event('change', { bubbles: true }));\r\n });\r\n });\r\n });\r\n }\r\n}\r\n","<!-- none platform code design system -->\r\n<div class=\"form-floating {{containerClasses}}\" [ngClass]=\"{'d-none': isPlatformCodeDesignSystem}\">\r\n <!-- searchable is false -->\r\n <ng-container *ngIf=\"!searchable\">\r\n <select #select id=\"{{id}}\" class=\"form-select {{classes}}\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </ng-container>\r\n\r\n <!-- searchable is true -->\r\n <ng-select *ngIf=\"searchable\" #select dir=\"rtl\" class=\"{{classes}}\" [formControl]=\"formControl\" [items]=\"items\"\r\n [placeholder]=\"label\" [notFoundText]=\"notFoundText\" [required]=\"required\"\r\n [bindValue]=\"fromGenerateForm? textField : valueField\" [bindLabel]=\"textField\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': \r\n (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\">\r\n </ng-select>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>\r\n<!-- platform code design system -->\r\n<div class=\"form-group w-100 position-relative {{containerClasses}}\"\r\n [ngClass]=\"{'d-none': !isPlatformCodeDesignSystem}\">\r\n <div class=\"d-flex gap-1 mb-2\">\r\n <label class=\"form-label mb-0\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}}</label>\r\n </div>\r\n <!-- Standard hidden select -->\r\n <select #select id=\"select{{id}}\" class=\"form-select d-none\" [required]=\"required\" [formControl]=\"formControl\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <option *ngIf=\"firstItemLabel\" value=\"\">{{firstItemLabel}}</option>\r\n <option *ngFor=\"let item of items\"\r\n [value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}\r\n </option>\r\n </select>\r\n <!-- Custom Dropdown Wrapper -->\r\n <div class=\"dropdown custom-dropdown-wrapper-{{id}} {{containerClasses}}\">\r\n <button\r\n class=\"form-control dropdown-toggle w-100 text-end d-flex justify-content-between align-items-center {{classes}}\"\r\n type=\"button\" data-bs-toggle=\"dropdown\" aria-expanded=\"false\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg}\">\r\n <span class=\"selected-text\">اختر {{label}}</span>\r\n </button>\r\n <ul class=\"dropdown-menu dropdown-menu-end w-100\" style=\"max-height: 500px; overflow-y: auto;\">\r\n <li *ngIf=\"firstItemLabel\">\r\n <span class=\"dropdown-item first-item\" href=\"javascript:void(0);\" [attr.data-value]=\"''\">{{firstItemLabel}}\r\n </span>\r\n </li>\r\n <li *ngFor=\"let item of items\">\r\n <span class=\"dropdown-item\" href=\"javascript:void(0);\"\r\n [attr.data-value]=\"valueField ? fromGenerateForm ? item[textField] : item[valueField] : item\">\r\n {{textField ? item[textField] : item}}</span>\r\n </li>\r\n </ul>\r\n </div>\r\n <div class=\"invalid-feedback ms-3\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n</div>","import { HttpRequest } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class LoaderService {\r\n public isLoading = new BehaviorSubject(false);\r\n urls: ExceptionUrl[] = [];\r\n constructor() {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n}\r\n","import {\r\n AfterViewInit,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n} from '@angular/core';\r\nimport { LoaderService } from '../../services/loader.service';\r\n\r\n@Component({\n selector: 'ipa-loader',\n templateUrl: './loading.component.html',\n styleUrls: ['./loading.component.scss'],\n standalone: false\n})\r\nexport class LoaderComponent implements AfterViewInit {\r\n loading = true;\r\n @Input() isLocal = false;\r\n\r\n constructor(\r\n private loaderService: LoaderService,\r\n private cdr: ChangeDetectorRef\r\n ) {}\r\n\r\n ngAfterViewInit(): void {\r\n this.loaderService.isLoading.subscribe((v) => {\r\n this.loading = v;\r\n const loader = document.getElementById('cover-spin');\r\n if (loader) {\r\n if (this.loading) {\r\n loader.style.display = 'flex';\r\n } else {\r\n if (loader.style.display !== 'none') loader.style.display = 'none';\r\n }\r\n }\r\n this.cdr.detectChanges();\r\n });\r\n }\r\n}\r\n","<div id=\"cover-spin\" *ngIf=\"loading && isLocal\">\r\n <div class=\"spinner\"></div>\r\n</div>\r\n","import {\r\n Component,\r\n EventEmitter,\r\n Input,\r\n OnInit,\r\n Output,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\nimport {\r\n DropzoneConfigInterface,\r\n DropzoneDirective,\r\n} from 'ngx-dropzone-wrapper';\r\nimport { UntypedFormControl } from '@angular/forms';\r\n\r\n@Component({\n selector: 'ipa-file-upload',\n templateUrl: './file-upload.component.html',\n styleUrls: ['./file-upload.component.scss'],\n standalone: false\n})\r\nexport class FileUploadComponent implements OnInit {\r\n @ViewChild(DropzoneDirective, { static: false })\r\n dropzoneDir!: DropzoneDirective;\r\n @Input() isArabicForm = true;\r\n @Input() label = '';\r\n @Input() required = false;\r\n @Input() acceptedFiles = '';\r\n @Input() multiple = 1; // set maxFiles (NOT uploadMultiple)in the config object,\r\n @Input() maxFileSize = 2;\r\n @Input() method = 'POST';\r\n @Input() autoUpload = false;\r\n @Input() apiUrl = 'apiUrl';\r\n @Input() authorization!: string;\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n dragEnter = false;\r\n errors: string[] = [];\r\n config!: DropzoneConfigInterface;\r\n filesAdded: File[] = [];\r\n currentFiles: File[] = [];\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n\r\n constructor(\r\n // private authService: AuthService,\r\n private toastrService: ToastrService\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n this.setConfiguration();\r\n }\r\n\r\n operationCompleted(e: any): void {\r\n if (this.filesAdded.length > 0) {\r\n this.successUpload.emit(this.filesAdded);\r\n this.filesAdded = [];\r\n }\r\n this.dropzoneDir.reset();\r\n }\r\n\r\n onUploadSuccess(e: any): void {\r\n const file = e[0];\r\n if (file.status === 'success') {\r\n this.filesAdded.push(file);\r\n }\r\n const message = this.isArabicForm\r\n ? 'تم تحميل المرفقات بنجاح'\r\n : 'Attachments uploaded successfully';\r\n this.toastrService.success(message);\r\n }\r\n\r\n onUploadError(e: any): void {\r\n if (e[1]) {\r\n this.errors = [];\r\n this.errors.push(`${e[1]} (${e[0].name})`);\r\n }\r\n }\r\n\r\n fileWasAdded(e: File): void {\r\n const myDropzone = this.dropzoneDir.dropzone();\r\n if (this.multiple === 1) {\r\n this.currentFiles = [];\r\n this.filesAdded = [];\r\n this.errors = [];\r\n const files = myDropzone.files;\r\n if (files.length > 1) {\r\n myDropzone.removeFile(files[0]);\r\n }\r\n }\r\n this.currentFiles.push(e);\r\n this.fileAdded.emit(e);\r\n }\r\n\r\n sending(e: any): void {\r\n this.errors = [];\r\n }\r\n\r\n reset(e: any): void {}\r\n\r\n deleteFile(file: any): void {\r\n this.currentFiles = this.currentFiles.filter(\r\n (x) => x.name !== file.name && x.size !== file.size\r\n );\r\n this.errors = [];\r\n this.fileDeleted.emit();\r\n }\r\n\r\n private setConfiguration() {\r\n this.label = (this.isArabicForm ? 'رفع ' : 'Upload ') + this.label;\r\n this.config = {\r\n url: this.apiUrl,\r\n method: this.method,\r\n headers: {\r\n Authorization: 'Bearer ' + this.authorization,\r\n },\r\n maxFilesize: this.maxFileSize,\r\n maxFiles: this.multiple,\r\n uploadMultiple: this.multiple > 1,\r\n dictInvalidFileType: this.isArabicForm\r\n ? 'صيغة الملف غير مسموح بها'\r\n : 'the file format is not allowed',\r\n dictFileTooBig: this.isArabicForm\r\n ? 'الحجم تجاوز الحد المسموح'\r\n : `the file size must be less than or equal (${this.maxFileSize}) MB`,\r\n dictMaxFilesExceeded: this.isArabicForm\r\n ? 'الرجاء حذف الملفات الموجودة حاليا لتتمكن من رفع هذا الملف'\r\n : 'Please delete existing files to be able to upload this file',\r\n acceptedFiles: this.acceptedFiles,\r\n autoProcessQueue: this.autoUpload,\r\n previewTemplate: '<span></span>',\r\n dictRemoveFile: '',\r\n };\r\n }\r\n}\r\n","<div class=\"file-upload\">\r\n <div class=\"upload-overlay\" [dropzone]=\"config\" (error)=\"onUploadError($event)\"\r\n (queueComplete)=\"operationCompleted($event)\" (success)=\"onUploadSuccess($event)\" (dragenter)=\"dragEnter = true\"\r\n (dragLeave)=\"dragEnter = false\" (drop)=\"dragEnter = false\" (dragEnd)=\"dragEnter = false\"\r\n [class.active-border]=\"dragEnter\" (sending)=\"sending($event)\" (reset)=\"reset($event)\"\r\n (addedFile)=\"fileWasAdded($event)\">\r\n </div>\r\n <div class=\"upload-btn-wrapper\">\r\n <div>\r\n <div class=\"subtitle mb-2\">\r\n {{label}}\r\n <span *ngIf=\"required\" class=\"text-danger\">*</span>\r\n </div>\r\n <hr>\r\n <span style=\"font-size: 12px;\">{{isArabicForm? 'قم بسحب الملف أو اضغط هنا' : 'drag or click here'}}</span>\r\n <i class=\"fas fa-upload upload-icon mr-2\"></i>\r\n </div>\r\n <div *ngIf=\"acceptedFiles.length > 0\" class=\"allowed-extensions\">\r\n {{isArabicForm? 'الصيغة المسموح بها:' : 'Allowed format:'}} \r\n <span class=\"extensions\">{{ acceptedFiles }}</span>\r\n </div>\r\n <div class=\"allowed-extensions\">\r\n {{isArabicForm? 'اقصى حجم للمرفق:' : 'Attachment Size:'}}\r\n <span class=\"extensions\">{{ maxFileSize }} MB</span>\r\n </div>\r\n </div>\r\n</div>\r\n<div id=\"attachment-status\" style=\"text-align: center; margin-top:10px;\">\r\n <span style=\"font-size: 14px; margin: auto; font-weight:bold;\" *ngFor=\"let file of currentFiles\">\r\n {{ file.name }} <i (click)=\"deleteFile(file)\" class=\"fas fa-trash\"\r\n style=\"color:firebrick; cursor: pointer;\"></i>\r\n <br>\r\n </span>\r\n <ul class=\"list-unstyled\">\r\n <li class=\"text-danger\" style=\"font-size: 12px;\" *ngFor=\"let error of errors\">{{error}}</li>\r\n </ul>\r\n</div>","import { Component, Input, OnInit, Self } from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\n\r\n@Component({\n selector: 'ipa-recaptcha',\n templateUrl: './recaptcha.component.html',\n styleUrls: ['./recaptcha.component.scss'],\n standalone: false\n})\r\nexport class RecaptchaComponent implements OnInit {\r\n @Input() siteKey = '6LefJQYdAAAAAIlxmfkjNlWidMk8VukIZcs6lO5e';\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang: 'ar' | 'en' = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n constructor(@Self() public controlDir: NgControl) {\r\n this.controlDir.valueAccessor = this;\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n}\r\n","<ngx-recaptcha2 [siteKey]=\"siteKey\" [size]=\"recaptchaSize\" [hl]=\"lang\" [theme]=\"theme\" [type]=\"recaptchaType\"\n [useGlobalDomain]=\"useGlobalDomain\" [formControl]=\"formControl\">\n</ngx-recaptcha2>","import { Component, EventEmitter, Input, OnInit, Output } from '@angular/core';\r\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';\r\nimport { IPAFormService } from '../ipa-form/ipa-form.service';\r\nimport { Column, GenerateForm } from '../models/generateForm.model';\r\n\r\n@Component({\r\n selector: 'ipa-generate-form',\r\n templateUrl: './generate-form.component.html',\r\n styleUrls: ['./generate-form.component.scss'],\r\n standalone: false\r\n})\r\nexport class GenerateFormComponent implements OnInit {\r\n @Input() generateForm!: UntypedFormGroup;\r\n @Input() form!: GenerateForm;\r\n @Input() isArabicForm = true;\r\n @Input() isPlatformCodeDesignSystem = false;\r\n\r\n // recaptcha inputs\r\n @Input() siteKey!: string;\r\n @Input() recaptchaSize: 'compact' | 'normal' = 'normal';\r\n @Input() lang: 'ar' | 'en' = 'ar';\r\n @Input() recaptchaType: 'image' | 'audio' = 'image';\r\n @Input() theme: 'light' | 'dark' = 'light';\r\n @Input() useGlobalDomain = true;\r\n\r\n // file upload outputs\r\n @Output() successUpload = new EventEmitter();\r\n @Output() fileAdded = new EventEmitter();\r\n @Output() fileDeleted = new EventEmitter();\r\n\r\n errorMsg!: string | null;\r\n\r\n constructor(private validationService: IPAFormService) {}\r\n\r\n ngOnInit(): void {\r\n this.changeDataValueForEngForm();\r\n this.createForm();\r\n }\r\n\r\n getFormControls(formControlName: string) {\r\n return this.generateForm.get('items' + formControlName) as UntypedFormArray;\r\n }\r\n\r\n getErrorMessage(formControlName: string): string | null {\r\n const formControl = this.generateForm.controls[\r\n formControlName\r\n ] as UntypedFormControl;\r\n this.errorMsg = this.validationService.getErrorMessage(\r\n formControl,\r\n '',\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n SuccessUpload(event: any) {\r\n this.successUpload.emit(event);\r\n }\r\n\r\n FileAdded(file: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(file);\r\n this.fileAdded.emit(file);\r\n }\r\n\r\n FileDeleted(event: any, formControlName: string) {\r\n this.generateForm.controls[formControlName].patchValue(null);\r\n this.fileDeleted.emit(event);\r\n }\r\n\r\n private changeDataValueForEngForm() {\r\n this.form.columns = this.form.columns.map((column) => {\r\n return {\r\n ...column,\r\n data: column.data?.map((item) => {\r\n const value = item[column.textField!];\r\n return {\r\n ...item,\r\n [column.textField!]: this.isArabicForm\r\n ? value.split(',')[0]\r\n : value.split(',')[1],\r\n };\r\n }),\r\n };\r\n });\r\n }\r\n\r\n private createForm() {\r\n this.form.columns.forEach((column) => {\r\n if (column.type === 'checkbox') {\r\n this.addCheckboxControl(column);\r\n } else {\r\n this.generateForm.addControl(\r\n column.formControlName,\r\n new UntypedFormControl(\r\n column.type === 'file' && column.multipleFile! > 1 ? [] : null,\r\n [\r\n column.required ? Validators.required : Validators.nullValidator,\r\n column.validationPattern\r\n ? Validators.pattern(column.validationPattern)\r\n : Validators.nullValidator,\r\n ['select', 'radio', 'file', 'recaptcha'].indexOf(column.type) <=\r\n -1\r\n ? Validators.maxLength(column.size!)\r\n : Validators.nullValidator,\r\n column.type === 'number'\r\n ? Validators.min(1)\r\n : Validators.nullValidator,\r\n column.formControlName === 'email'\r\n ? IPAFormService.email\r\n : Validators.nullValidator,\r\n column.formControlName === 'mobileNo'\r\n ? IPAFormService.mobileNo\r\n : Validators.nullValidator,\r\n column.formControlName === 'userId'\r\n ? IPAFormService.checkID\r\n : Validators.nullValidator,\r\n \r\n ]\r\n )\r\n );\r\n }\r\n });\r\n }\r\n\r\n private addCheckboxControl(column: Column) {\r\n let checkboxGroup = new UntypedFormArray(\r\n column.data!.map((item) => {\r\n return new UntypedFormGroup({\r\n [column.valueField!]: new UntypedFormControl(item[column.valueField!]),\r\n [column.textField!]: new UntypedFormControl(item[column.textField!]),\r\n checkbox: new UntypedFormControl(false),\r\n });\r\n })\r\n );\r\n\r\n this.generateForm.addControl(\r\n column.formControlName,\r\n new UntypedFormControl(\r\n null,\r\n column.required ? Validators.required : Validators.nullValidator\r\n )\r\n );\r\n this.generateForm.addControl(\r\n 'items' + column.formControlName,\r\n checkboxGroup\r\n );\r\n checkboxGroup.valueChanges.subscribe((value: any[]) => {\r\n let selectedItems = this.getCheckboxSelectedValues(value);\r\n if (selectedItems) {\r\n this.generateForm.controls[column.formControlName].patchValue(\r\n selectedItems.map((x) => x[column.textField!])\r\n );\r\n } else {\r\n this.generateForm.controls[column.formControlName].patchValue(null);\r\n this.generateForm.controls[column.formControlName].markAsTouched();\r\n }\r\n });\r\n }\r\n\r\n private getCheckboxSelectedValues(items: any[]): any[] | null {\r\n let selectedItems = items.filter((item) => item.checkbox);\r\n return selectedItems.length > 0 ? selectedItems : null;\r\n }\r\n}\r\n","<form [formGroup]=\"generateForm\">\r\n <ng-container *ngFor=\"let column of form.columns\">\r\n <div [ngSwitch]=\"column.type\">\r\n <!-- TEXTAREA -->\r\n <div *ngSwitchCase=\"'textArea'\">\r\n <ipa-textarea-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-textarea-input>\r\n </div>\r\n\r\n <!-- DROP DOWN LIST -->\r\n <div *ngSwitchCase=\"'select'\">\r\n <ipa-dropdown-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [items]=\"column.data!\"\r\n [valueField]=\"column.valueField!\" [textField]=\"column.textField!\" [required]=\"column.required\"\r\n [searchable]=\"column.searchable!\" [notFoundText]=\"column.notFoundText!\" [classes]=\"column.inputClasses!\"\r\n [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\" [fromGenerateForm]=\"true\">\r\n </ipa-dropdown-input>\r\n </div>\r\n\r\n <!-- CHECKBOX -->\r\n <div *ngSwitchCase=\"'checkbox'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container [formArrayName]=\"'items'+ column.formControlName\"\r\n *ngFor=\"let control of getFormControls(column.formControlName).controls; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\" [formGroupName]=\"i\">\r\n <input [id]=\"column.formControlName+control.value[column.valueField!]\" class=\"form-check-input\"\r\n type=\"checkbox\" formControlName=\"checkbox\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+control.value[column.valueField!]\">\r\n {{control.value[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- RADIO -->\r\n <div *ngSwitchCase=\"'radio'\" [class]=\"column.containerClasses\">\r\n <label>\r\n <span *ngIf=\"column.required\" class=\"text-danger\">*</span>\r\n {{isArabicForm? column.arabicLabel : column.englishLabel}}\r\n </label>\r\n <ng-container *ngFor=\"let item of column.data; let i = index\">\r\n <div class=\"form-check {{column.inputClasses}}\">\r\n <input [id]=\"column.formControlName+item[column.valueField!]\" class=\"form-check-input\" type=\"radio\"\r\n [formControlName]=\"column.formControlName\" [value]=\"item[column.textField!]\">\r\n <label class=\"form-check-label\" [for]=\"column.formControlName+item[column.valueField!]\">\r\n {{item[column.textField!]}}\r\n </label>\r\n </div>\r\n </ng-container>\r\n <div class=\"invalid-feedback\" style=\"display: block !important;\"\r\n *ngIf=\"getErrorMessage(column.formControlName) !== null\">\r\n {{errorMsg}}\r\n </div>\r\n </div>\r\n\r\n <!-- FILE UPLOAD -->\r\n <div *ngSwitchCase=\"'file'\" [class]=\"column.containerClasses\">\r\n <ipa-file-upload [isArabicForm]=\"isArabicForm\" [required]=\"column.required\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [acceptedFiles]=\"column.acceptedFiles!\"\r\n [multiple]=\"column.multipleFile!\" [maxFileSize]=\"column.size!\" [method]=\"column.apiURlMethod!\"\r\n [autoUpload]=\"column.autoUploadFile!\" [apiUrl]=\"column.apiUrl?? 'apiUrl' \"\r\n [authorization]=\"column.authorization!\" ngDefaultControl [formControlName]=\"column.formControlName\"\r\n (successUpload)=\"SuccessUpload($event)\" (fileAdded)=\"FileAdded($event, column.formControlName)\"\r\n (fileDeleted)=\"FileDeleted($event, column.formControlName)\">\r\n </ipa-file-upload>\r\n </div>\r\n\r\n <!-- recaptcha -->\r\n <div *ngSwitchCase=\"'recaptcha'\" [class]=\"column.containerClasses\">\r\n <ipa-recaptcha [recaptchaSize]=\"recaptchaSize\" [lang]=\"isArabicForm? 'ar':'en'\" [theme]=\"theme\"\r\n [recaptchaType]=\"recaptchaType\" [useGlobalDomain]=\"useGlobalDomain\"\r\n formControlName=\"{{column.formControlName}}\">\r\n </ipa-recaptcha>\r\n </div>\r\n\r\n <!-- DEFAULT -->\r\n <div *ngSwitchDefault>\r\n <ipa-text-input [isPlatformCodeDesignSystem]=\"isPlatformCodeDesignSystem\" [formControlName]=\"column.formControlName\" [id]=\"column.formControlName\" [type]=\"column.type\"\r\n [label]=\"isArabicForm? column.arabicLabel : column.englishLabel\" [required]=\"column.required\"\r\n [patternErrorMsg]=\"isArabicForm? column.patternArErrorMsg! : column.patternEnErrorMsg!\"\r\n [classes]=\"column.inputClasses!\" [containerClasses]=\"column.containerClasses!\" [isArabicForm]=\"isArabicForm\">\r\n </ipa-text-input>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</form>\r\n","import {\r\n AfterContentChecked,\r\n ChangeDetectorRef,\r\n Component,\r\n Input,\r\n OnInit,\r\n Self,\r\n ViewChild,\r\n} from '@angular/core';\r\nimport { UntypedFormControl, NgControl } from '@angular/forms';\r\nimport {\r\n NgbCalendar,\r\n NgbDateStruct,\r\n NgbInputDatepicker,\r\n NgbInputDatepickerConfig,\r\n} from '@ng-bootstrap/ng-bootstrap';\r\nimport { IPAFormService } from '../ipa-form.service';\r\n\r\n@Component({\r\n selector: 'ipa-datepicker',\r\n templateUrl: './datepicker.component.html',\r\n styleUrls: ['./datepicker.component.scss'],\r\n standalone: false\r\n})\r\nexport class DatepickerComponent implements OnInit, AfterContentChecked {\r\n @ViewChild('d') datepicker!: NgbInputDatepicker;\r\n @Input() id!: string;\r\n @Input() label = 'datepicker';\r\n @Input() patternErrorMsg = 'invalid pattern';\r\n @Input() required = false;\r\n @Input() maxDate!: NgbDateStruct;\r\n @Input() minDate!: NgbDateStruct;\r\n @Input() classes!: string;\r\n @Input() containerClasses!: string;\r\n @Input() isArabicForm = true;\r\n isHijriDatepicker!: boolean;\r\n today = this.calendar.getToday();\r\n formControl: UntypedFormControl = new UntypedFormControl('');\r\n errorMsg!: string | null;\r\n\r\n constructor(\r\n private ipaFormService: IPAFormService,\r\n private calendar: NgbCalendar,\r\n @Self() public controlDir: NgControl,\r\n config: NgbInputDatepickerConfig,\r\n private cd: ChangeDetectorRef\r\n ) {\r\n this.controlDir.valueAccessor = this;\r\n config.container = null;\r\n config.placement = 'bottom-center';\r\n }\r\n\r\n ngAfterContentChecked(): void {\r\n this.cd.detectChanges();\r\n }\r\n\r\n ngOnInit(): void {\r\n const control = this.controlDir.control;\r\n const validators = control?.validator ? [control.validator] : [];\r\n if (this.isHijriDatepicker) validators.push(IPAFormService.validHijriDate);\r\n control?.setValidators(validators);\r\n control?.updateValueAndValidity();\r\n this.formControl = control as UntypedFormControl;\r\n }\r\n\r\n onChange(event: any): void {}\r\n\r\n onTouched(): void {}\r\n writeValue(obj: any): void {}\r\n\r\n registerOnChange(fn: any): void {\r\n this.onChange = fn;\r\n }\r\n\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn;\r\n }\r\n\r\n openDatepicker(event: Event) {\r\n if (!this.datepicker.isOpen()) {\r\n setTimeout(() => {\r\n this.changeDatepickerTitles();\r\n }, 100);\r\n this.datepicker.toggle();\r\n event.preventDefault();\r\n return;\r\n }\r\n this.datepicker.close();\r\n }\r\n\r\n get errorMessage(): string | null {\r\n this.errorMsg = this.ipaFormService.getErrorMessage(\r\n this.formControl,\r\n this.patternErrorMsg,\r\n this.isArabicForm\r\n );\r\n return this.errorMsg;\r\n }\r\n\r\n private changeDatepickerTitles(): void {\r\n // change pervious month button title\r\n const arrowPre = document\r\n .getElementsByClassName('ngb-dp-arrow-prev')\r\n .item(0) as HTMLDivElement;\r\n const buttonPrev = arrowPre.getElementsByTagName('button').item(0);\r\n if (this.isArabicForm) buttonPrev!.title! = 'الشهر السابق';\r\n else buttonPrev!.title! = 'Pervious month';\r\n\r\n // change next month button title\r\n const arrowNext = document\r\n .getElementsByClassName('ngb-dp-arrow-next')\r\n .item(0) as HTMLDivElement;\r\n const buttonNext = arrowNext.getElementsByTagName('button').item(0);\r\n if (this.isArabicForm) buttonNext!.title! = 'الشهر التالي';\r\n else buttonNext!.title! = 'Next month';\r\n\r\n // change month list title\r\n const divList = document\r\n .getElementsByClassName('ngb-dp-navigation-select')\r\n .item(0) as HTMLDivElement;\r\n const selectList = divList.getElementsByTagName('select');\r\n if (this.isArabicForm) {\r\n selectList.item(0)!.title! = 'اختر الشهر';\r\n selectList.item(1)!.title! = 'اختر السنة';\r\n } else {\r\n selectList.item(0)!.title! = 'Select month';\r\n selectList.item(1)!.title! = 'Select year';\r\n }\r\n }\r\n}\r\n","<div class=\"form-floating input-group {{containerClasses}}\">\r\n <input id=\"{{id}}\"\r\n [ngClass]=\"{'is-invalid is-invalid:focus': (controlDir.control?.invalid && (controlDir.control?.dirty || controlDir.control?.touched)) && errorMsg,'is-valid is-valid:focus': (controlDir.control?.valid && (controlDir.control?.dirty || controlDir.control?.touched) && (errorMsg || controlDir.value))}\"\r\n class=\"form-control {{classes}}\" [formControl]=\"formControl\" [firstDayOfWeek]=\"7\" ngbDatepicker #d=\"ngbDatepicker\"\r\n [maxDate]=\"maxDate\" [minDate]=\"minDate\" [footerTemplate]=\"footerTemplate\" [required]=\"required\"\r\n style=\"outline: unset; z-index: unset !important;\" autocomplete=\"off\" (blur)=\"onTouched()\" placeholder=\"{{label}}\">\r\n <label for=\"{{id}}\"><span *ngIf=\"required\" class=\"text-danger\">*</span> {{label}} </label>\r\n <span class=\"input-group-text calenderBtn\" (click)=\"openDatepicker($event)\">\r\n <i class=\"far fa-calendar-alt fa-lg\"></i>\r\n </span>\r\n <div class=\"invalid-feedback\" *ngIf=\"errorMessage !== null\">\r\n {{errorMsg}}\r\n </div>\r\n <ng-template #footerTemplate style=\"text-align: center;\">\r\n <hr>\r\n <button type=\"button\" class=\"btn btn-primary btn-sm m-2 \" style=\"width: auto; float: right;\"\r\n (click)=\"formControl.patchValue(today);d.navigateTo(today);d.close()\">اليوم</button>\r\n <button type=\"button\" class=\"btn btn-secondary btn-sm m-2\" style=\"width: auto; float: left;\"\r\n (click)=\"formControl.patchValue(null);d.close()\">مسح</button>\r\n </ng-template>\r\n</div>\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'محرم',\r\n 'صفر',\r\n 'ربيع الأول',\r\n 'ربيع الآخر',\r\n 'جمادى الأولى',\r\n 'جمادى الآخرة',\r\n 'رجب',\r\n 'شعبان',\r\n 'رمضان',\r\n 'شوال',\r\n 'ذو القعدة',\r\n 'ذو الحجة',\r\n];\r\n\r\n@Injectable()\r\nexport class IslamicI18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarIslamicUmalqura, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { IslamicI18n } from './IslamicI18n';\r\n@Component({\n selector: 'ipa-hijri-datepicker',\n templateUrl: '../datepicker.component.html',\n styleUrls: ['../datepicker.component.scss'],\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarIslamicUmalqura },\n { provide: NgbDatepickerI18n, useClass: IslamicI18n },\n ],\n standalone: false\n})\r\nexport class HijriDatepickerComponent extends DatepickerComponent {\r\n isHijriDatepicker = true;\r\n}\r\n","import { TranslationWidth } from '@angular/common';\r\nimport { Injectable } from '@angular/core';\r\nimport { NgbDatepickerI18n, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';\r\n\r\nconst WEEKDAYS = ['ن', 'ث', 'ر', 'خ', 'ج', 'س', 'ح'];\r\nconst MONTHS = [\r\n 'يناير',\r\n 'فبراير',\r\n 'مارس',\r\n 'أبريل',\r\n 'مايو',\r\n 'يونيو',\r\n 'يوليو',\r\n 'اغسطس',\r\n 'سبتمبر',\r\n 'أكتوبر',\r\n 'نوفمبر',\r\n 'ديسمبر',\r\n];\r\n\r\n@Injectable()\r\nexport class Gregorian18n extends NgbDatepickerI18n {\r\n getMonthShortName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getMonthFullName(month: number) {\r\n return MONTHS[month - 1];\r\n }\r\n\r\n getWeekdayLabel(weekday: number) {\r\n return WEEKDAYS[weekday - 1];\r\n }\r\n\r\n getDayAriaLabel(date: NgbDateStruct): string {\r\n return `${date.day}-${date.month}-${date.year}`;\r\n }\r\n}\r\n","import { Component } from '@angular/core';\r\nimport { NgbCalendar, NgbCalendarGregorian, NgbDatepickerI18n } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DatepickerComponent } from '../datepicker.component';\r\nimport { Gregorian18n } from './gregorian18n';\r\n\r\n@Component({\n selector: 'ipa-gregorian-datepicker',\n templateUrl: '../datepicker.component.html',\n styleUrls: ['../datepicker.component.scss'],\n providers: [\n { provide: NgbCalendar, useClass: NgbCalendarGregorian },\n { provide: NgbDatepickerI18n, useClass: Gregorian18n },\n ],\n standalone: false\n})\r\nexport class GregorianDatepickerComponent extends DatepickerComponent {\r\n isHijriDatepicker = false;\r\n}\r\n","import { Component, AfterViewInit, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ipa-share-button',\r\n templateUrl: './share-button.component.html',\r\n styleUrls: ['./share-button.component.scss'],\r\n standalone: false,\r\n})\r\nexport class ShareButtonComponent implements AfterViewInit {\r\n @Input() title = '';\r\n @Input() description = '';\r\n @Input() btnLabel = '';\r\n @Input() isPlatformCodeDesignSystem = false;\r\n constructor() {}\r\n ngAfterViewInit(): void {\r\n const button = document.getElementsByClassName('sb-show-icon')[0] as HTMLButtonElement;\r\n if (!button.getAttribute('id')) {\r\n if (this.isPlatformCodeDesignSystem) {\r\n button.setAttribute('type', 'button');\r\n button.innerHTML = this.btnLabel;\r\n button.classList.add('mb-2', 'tp-link');\r\n const img = document.createElement('img');\r\n img.src =\r\n '/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/share-08.svg';\r\n img.classList.add('link-text-icon');\r\n button.appendChild(img);\r\n button.classList.remove('sb-show-icon', 'sb-wrapper');\r\n button.removeAttribute('_ngcontent-ng-c3896670994');\r\n } else {\r\n button.setAttribute('type', 'button');\r\n button.setAttribute('id', 'IPAShareBtn');\r\n const label = document.createElement('label');\r\n label.innerHTML = this.btnLabel;\r\n label.classList.add('sm-share-title');\r\n label.classList.add('me-1');\r\n button.before(label);\r\n }\r\n }\r\n }\r\n}\r\n","<share-popup-button [title]=\"title\" [description]=\"description\" [icon]=\"'share-alt'\"\r\n [include]=\"['facebook','twitter','linkedin','telegram','whatsapp','copy']\">\r\n</share-popup-button>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { NgModule } from '@angular/core';\r\nimport {\r\n FaIconLibrary,\r\n FontAwesomeModule,\r\n} from '@fortawesome/angular-fontawesome';\r\nimport { fas } from '@fortawesome/free-solid-svg-icons';\r\nimport { ShareIconsModule } from 'ngx-sharebuttons/icons';\r\nimport { ShareButtonsPopupModule } from 'ngx-sharebuttons/popup';\r\nimport { ShareButtonComponent } from './share-button.component';\r\n\r\n@NgModule({\r\n declarations: [ShareButtonComponent],\r\n imports: [\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ],\r\n exports: [\r\n ShareButtonComponent,\r\n ShareIconsModule,\r\n ShareButtonsPopupModule,\r\n OverlayModule,\r\n FontAwesomeModule,\r\n ]\r\n})\r\nexport class ShareButtonModule {\r\n constructor(library: FaIconLibrary) {\r\n library.addIconPacks(fas);\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { FormsModule, ReactiveFormsModule } from '@angular/forms';\r\nimport { ToastrModule } from 'ngx-toastr';\r\nimport { DropzoneModule } from 'ngx-dropzone-wrapper';\r\nimport { NgxCaptchaModule } from 'ngx-captcha';\r\nimport { PipesModule } from './pipes/pipes.module';\r\nimport { NgbDatepickerModule } from '@ng-bootstrap/ng-bootstrap';\r\nimport { NgSelectModule } from '@ng-select/ng-select';\r\n\r\nimport { TextInputComponent } from './ipa-form/text-input/text-input.component';\r\nimport { TextareaInputComponent } from './ipa-form/textarea-input/textarea-input.component';\r\nimport { DropdownInputComponent } from './ipa-form/dropdown-input/dropdown-input.component';\r\nimport { LoaderComponent } from './core/components/loading/loading.component';\r\nimport { GenerateFormComponent } from './generate-form/generate-form.component';\r\nimport { FileUploadComponent } from './ipa-form/file-upload/file-upload.component';\r\nimport { DatepickerComponent } from './ipa-form/datepicker/datepicker.component';\r\nimport { HijriDatepickerComponent } from './ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nimport { GregorianDatepickerComponent } from './ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nimport { ShareButtonModule } from './share-button/share-button.module';\r\nimport { RecaptchaComponent } from './ipa-form/recaptcha/recaptcha.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n DatepickerComponent,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n RecaptchaComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n FormsModule,\r\n ReactiveFormsModule,\r\n ToastrModule,\r\n DropzoneModule,\r\n NgxCaptchaModule,\r\n PipesModule,\r\n NgbDatepickerModule,\r\n ShareButtonModule,\r\n NgSelectModule,\r\n ],\r\n exports: [\r\n TextInputComponent,\r\n TextareaInputComponent,\r\n DropdownInputComponent,\r\n LoaderComponent,\r\n GenerateFormComponent,\r\n FileUploadComponent,\r\n PipesModule,\r\n HijriDatepickerComponent,\r\n GregorianDatepickerComponent,\r\n ShareButtonModule,\r\n RecaptchaComponent,\r\n ],\r\n})\r\nexport class NgIPALibraryModule {}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { LoaderService } from '../services/loader.service';\r\n\r\n@Injectable()\r\nexport class LoadingInterceptor implements HttpInterceptor {\r\n private requests: HttpRequest<any>[] = [];\r\n\r\n constructor(private loaderService: LoaderService) {}\r\n\r\n removeRequest(req: HttpRequest<any>): void {\r\n const i = this.requests.indexOf(req);\r\n if (i >= 0) {\r\n this.requests.splice(i, 1);\r\n }\r\n this.loaderService.isLoading.next(this.requests.length > 0);\r\n }\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n this.requests.push(req);\r\n\r\n this.loaderService.isLoading.next(true);\r\n return new Observable((observer) => {\r\n const subscription = next.handle(req).subscribe(\r\n (event) => {\r\n if (event instanceof HttpResponse) {\r\n this.removeRequest(req);\r\n observer.next(event);\r\n }\r\n },\r\n (err) => {\r\n this.removeRequest(req);\r\n observer.error(err);\r\n },\r\n () => {\r\n this.removeRequest(req);\r\n observer.complete();\r\n }\r\n );\r\n // remove request from queue when cancelled\r\n return () => {\r\n this.removeRequest(req);\r\n subscription.unsubscribe();\r\n };\r\n });\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.loaderService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { ToastrService } from 'ngx-toastr';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class CommonService {\r\n constructor(private toastrService: ToastrService) {}\r\n\r\n copyToClipboard(copyText: any, message: string) {\r\n navigator.clipboard.writeText(copyText.toString());\r\n this.toastrService.success(message, '', {\r\n positionClass: 'toast-bottom-right',\r\n });\r\n }\r\n\r\n print(element: string, title: string, classes?: string) {\r\n const styles = this.getElementTag('style');\r\n const links = this.getElementTag('link');\r\n const scripts = this.getElementTag('script');\r\n\r\n const printContents = document.getElementById(element)?.innerHTML;\r\n const popupWin = window.open('', '', 'top=0,left=0,height=100%,width=auto');\r\n const data = `\r\n <!DOCTYPE html>\r\n <head>\r\n <title> ${title} </title>\r\n <meta charset=\"utf-8\">\r\n ${links}\r\n ${styles}\r\n <style>\r\n @media print {\r\n .noPrint{\r\n display: none !important;\r\n }\r\n body {\r\n direction: rtl;\r\n }\r\n }\r\n </style>\r\n </head>\r\n <body class=\"${classes}\">\r\n ${printContents}\r\n ${scripts}\r\n </body>\r\n\r\n </html>`;\r\n popupWin?.document.open();\r\n popupWin?.document.write(data);\r\n popupWin?.document.close();\r\n popupWin?.focus();\r\n popupWin?.addEventListener('focus', () => {\r\n setTimeout(() => {\r\n if (popupWin.document.hasFocus()) {\r\n popupWin.print();\r\n popupWin.close();\r\n }\r\n }, 1000);\r\n });\r\n }\r\n\r\n private getElementTag(tag: keyof HTMLElementTagNameMap): string {\r\n const html: string[] = [];\r\n const elements = document.getElementsByTagName(tag);\r\n for (let index = 0; index < elements.length; index++) {\r\n html.push(elements[index].outerHTML);\r\n }\r\n\r\n return html.join('\\r\\n');\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { IndividualConfig, ToastrService } from 'ngx-toastr';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { ApiResponse } from '../../models/apiResponse';\r\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\r\nimport { CommonService } from '../../services/common.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorService {\r\n urls: ExceptionUrl[] = [];\r\n constructor(\r\n private toastrService: ToastrService,\r\n private commonService: CommonService\r\n ) {}\r\n\r\n setExceptionUrls(urls: ExceptionUrl[]) {\r\n this.urls = urls;\r\n }\r\n\r\n addExceptionUrl(url: ExceptionUrl) {\r\n this.urls.push(url);\r\n }\r\n\r\n showErrorMsg(response: ApiResponse, toastrConfig: Partial<IndividualConfig>) {\r\n if (response.errors && response.errors.length > 0) {\r\n toastrConfig.enableHtml = true;\r\n let msg = '';\r\n response.errors.forEach((error) => {\r\n msg += `<li>${error}</li>`;\r\n });\r\n this.toastrService.error(\r\n `<ul>${msg}</ul>`,\r\n response.message,\r\n toastrConfig\r\n );\r\n } else {\r\n this.toastrService.error('', response.message, toastrConfig);\r\n }\r\n }\r\n\r\n show500ErrorMsg(\r\n response: ApiException,\r\n toastrConfig: Partial<IndividualConfig>\r\n ) {\r\n const msg = response.innerException + ' ' + (response.stackTrace ?? '');\r\n const toastr = this.toastrService.error(\r\n msg,\r\n response.message,\r\n toastrConfig\r\n );\r\n toastr.onShown.subscribe(() => {\r\n this.addCopyButton(response.message + '\\n' + msg);\r\n });\r\n }\r\n\r\n private addCopyButton(copyText: string) {\r\n const messageToast = document.getElementsByClassName(\r\n 'toast-message'\r\n )[0] as HTMLDivElement;\r\n const icon = document.createElement('i');\r\n icon.classList.add('ms-2', 'fas', 'fa-copy');\r\n icon.addEventListener('click', () => {\r\n this.commonService.copyToClipboard(\r\n copyText,\r\n 'تم نسخ الرسالة إلى الحافظة'\r\n );\r\n });\r\n messageToast.appendChild(icon);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable, throwError } from 'rxjs';\r\nimport { catchError } from 'rxjs/operators';\r\nimport { ErrorService } from '../services/error.service';\r\nimport { ApiException } from '../../models/apiException';\r\nimport { IndividualConfig } from 'ngx-toastr';\r\n\r\n@Injectable()\r\nexport class ErrorInterceptor implements HttpInterceptor {\r\n constructor(private errorService: ErrorService) {}\r\n\r\n intercept(\r\n req: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(req)) {\r\n return next.handle(req);\r\n }\r\n\r\n return next.handle(req).pipe(\r\n catchError((error) => {\r\n const response = error.error as ApiException;\r\n const toastrConfig: Partial<IndividualConfig> = {\r\n disableTimeOut: true,\r\n closeButton: true,\r\n tapToDismiss: false,\r\n };\r\n switch (response.statusCode) {\r\n case 500:\r\n this.errorService.show500ErrorMsg(response, toastrConfig);\r\n break;\r\n\r\n default:\r\n this.errorService.showErrorMsg(response, toastrConfig);\r\n break;\r\n }\r\n return throwError(() => error);\r\n })\r\n );\r\n }\r\n\r\n private isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.errorService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService {\r\n public currentUser = new BehaviorSubject<DecodedToken>({ exp: 0 });\r\n currentUserUrl = '';\r\n constructor() {}\r\n\r\n getToken(): string {\r\n return localStorage.getItem('token') ?? '';\r\n }\r\n\r\n getDecodedToken(): any {\r\n return this.decodeJwt(this.getToken());\r\n }\r\n\r\n setCurrentUser(): void {\r\n const decodedToken = this.getDecodedToken() as DecodedToken;\r\n if (!decodedToken) {\r\n this.currentUser.next({ exp: 0 });\r\n return;\r\n }\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid,\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n getTokenFromHidden(): string {\r\n return (\r\n (document.querySelector('[id$=hfToken]') as HTMLInputElement).value ?? ''\r\n );\r\n }\r\n\r\n getDecodedTokenFromHidden(): any {\r\n return this.decodeJwt(this.getTokenFromHidden());\r\n }\r\n\r\n setCurrentUserFromHidden(): void {\r\n const decodedToken = this.getDecodedTokenFromHidden() as DecodedToken;\r\n if (!decodedToken) {\r\n this.currentUser.next({ exp: 0 });\r\n return;\r\n }\r\n this.currentUser.next({\r\n nameid: decodedToken.nameid?.split('\\\\')[1],\r\n email: decodedToken.email,\r\n given_name: decodedToken.given_name,\r\n exp: decodedToken.exp,\r\n });\r\n }\r\n\r\n setCurrentUserUrl(url: string) {\r\n this.currentUserUrl = url;\r\n }\r\n\r\n private decodeJwt(token: string): any {\r\n if (!token || token === 'null' || token === 'undefined') {\r\n return null;\r\n }\r\n const base64Url = token.split('.')[1];\r\n const base64 = base64Url.replace(/-/g, '+').replace(/_/g, '/');\r\n const jsonPayload = decodeURIComponent(\r\n atob(base64)\r\n .split('')\r\n .map((c) => {\r\n return '%' + ('00' + c.charCodeAt(0).toString(16)).slice(-2);\r\n })\r\n .join('')\r\n );\r\n return JSON.parse(jsonPayload);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\nimport { ExceptionUrl } from '../../models/exceptionUrl.model';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class TokenService {\n urls: ExceptionUrl[] = [];\n constructor() {}\n\n setExceptionUrls(urls: ExceptionUrl[]) {\n this.urls = urls;\n }\n\n addExceptionUrl(url: ExceptionUrl) {\n this.urls.push(url);\n }\n}\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n HttpClient,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { DecodedToken } from '../../models/decodedToken.model';\r\nimport { User } from '../../models/user.model';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { TokenService } from '../services/token.service';\r\n\r\n@Injectable()\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n refresh = true;\r\n constructor(\r\n private authService: AuthService,\r\n private http: HttpClient,\r\n private loaderService: LoaderService,\r\n private tokenService: TokenService\r\n ) {\r\n this.loaderService.addExceptionUrl({\r\n path: '/api/users?refresh',\r\n method: 'GET',\r\n });\r\n this.tokenService.addExceptionUrl({\r\n path: '/api/users?refresh',\r\n method: 'GET',\r\n });\r\n }\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getToken();\r\n if (token) {\r\n this.isTokenExpired(token);\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n private isTokenExpired(token: string) {\r\n const redirectPath = location.pathname;\r\n const decodedToken = this.authService.getDecodedToken() as DecodedToken;\r\n const expDate = new Date((decodedToken.exp ?? 0) * 1000);\r\n if (expDate < new Date()) {\r\n location.replace('/ar/login?redirect=' + redirectPath);\r\n return;\r\n } else {\r\n if (this.authService.currentUserUrl) {\r\n if (this.refresh) {\r\n this.http\r\n .get<User>(this.authService.currentUserUrl + `users?refresh`, {\r\n headers: { Authorization: `Bearer ${token}` },\r\n })\r\n .subscribe((user) => {\r\n localStorage.setItem('token', user.token);\r\n this.refresh = false;\r\n setTimeout(() => {\r\n this.refresh = true;\r\n }, 60 * 1000);\r\n });\r\n }\r\n } else {\r\n throw new Error(\r\n \"provide current base user api url using this function authService.setCurrentUserUrl('https://...')\"\r\n );\r\n }\r\n }\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.tokenService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport {\r\n HttpRequest,\r\n HttpHandler,\r\n HttpEvent,\r\n HttpInterceptor,\r\n} from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\nimport { AuthService } from '../services/auth.service';\r\nimport { TokenService } from '../services/token.service';\r\n\r\n@Injectable()\r\nexport class myIPATokenInterceptor implements HttpInterceptor {\r\n constructor(\r\n private authService: AuthService,\r\n private tokenService: TokenService\r\n ) {}\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n if (this.isException(request)) {\r\n return next.handle(request);\r\n }\r\n const token = this.authService.getTokenFromHidden();\r\n if (token) {\r\n request = request.clone({\r\n setHeaders: {\r\n Authorization: `Bearer ${token}`,\r\n },\r\n });\r\n }\r\n return next.handle(request);\r\n }\r\n\r\n isException(req: HttpRequest<any>): boolean {\r\n for (const url of this.tokenService.urls) {\r\n if (req.url.includes(url.path) && req.method === url.method) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsService {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.sub-section-title');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n setMainPageTitle(text: string, url: string) {\r\n const div = document.getElementsByClassName('main-section-title');\r\n if (div && div.length > 0) {\r\n div[0].innerHTML = `<a id=\"site-url\" href=\"${url}\">${text}</a>`;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n //get last child\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n lastIndex.classList.remove(...['bc-current']);\r\n //add new link\r\n lastIndex.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n //add new span and empty span\r\n const newSpan = this.createSpan(nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const spans = document.getElementById('ctl00_path')?.childNodes;\r\n //get last child\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastSpan.innerHTML;\r\n lastSpan.classList.remove(...[spanClasses]);\r\n lastSpan.innerHTML = '';\r\n //add new link\r\n lastSpan.appendChild(\r\n this.createLink(innerHTML, location.pathname, linkClasses)\r\n );\r\n\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n spanClasses = 'bc-current',\r\n linkClasses = 'bc-node'\r\n ) {\r\n const currentSpan = document.getElementById(\r\n 'ctl00_path'\r\n ) as HTMLSpanElement;\r\n currentSpan.innerHTML = '';\r\n const newSpan = document.createElement('span');\r\n currentSpan?.appendChild(newSpan);\r\n newSpan.appendChild(\r\n this.createLink(nodeList[0].nodeName, nodeList[0].nodeUrl, linkClasses)\r\n );\r\n const spans = currentSpan?.children;\r\n for (let i = 1; i < nodeList.length; i++) {\r\n const lastIndex = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n newSpan.appendChild(\r\n this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl,\r\n linkClasses\r\n )\r\n );\r\n const emptySpan = document.createElement('span');\r\n lastIndex?.after(...[emptySpan, newSpan]);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName, spanClasses);\r\n const emptySpan = document.createElement('span');\r\n lastIndex.after(...[emptySpan, newSpan]);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const spans = document.getElementById('ctl00_path')?.children;\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n this.setCurrentNode(spans);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n let index = -1;\r\n for (let i = 0; i < spans.length; i++) {\r\n const span = spans.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = spans.length - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n spans?.item(index)?.remove();\r\n spans?.item(index)?.remove();\r\n } else {\r\n spans?.item(index)?.remove();\r\n spans?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const spans = document.getElementById('ctl00_path')\r\n ?.children as HTMLCollection;\r\n while (length > 0) {\r\n spans?.item(spans.length - 1)?.remove();\r\n spans?.item(spans.length - 1)?.remove();\r\n length--;\r\n }\r\n if (spans.length > 0) {\r\n this.setCurrentNode(spans);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string, classes: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.classList.add(...[classes]);\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const lastSpanLink = spans\r\n ?.item(spans.length - 1)\r\n ?.children.item(0) as HTMLAnchorElement;\r\n lastSpan?.classList.add(...['bc-current']);\r\n lastSpan.innerHTML = lastSpanLink.innerHTML;\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Breadcrumbs } from '../models/breadcrumbs.model';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class BreadcrumbsV2Service {\r\n constructor() {}\r\n\r\n setPageTitle(text: string) {\r\n const titleEl = document.querySelector('.page-title .container');\r\n if (titleEl) {\r\n titleEl.textContent = text;\r\n }\r\n }\r\n\r\n addBreadcrumb(\r\n nodeName: string,\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n //get last child\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n //add new link\r\n const link = this.createLink(innerHTML, location.pathname, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n //add new span\r\n const newSpan = this.createSpan(nodeName);\r\n lastIndex.after(link, arrowImg, newSpan);\r\n lastIndex.remove();\r\n }\r\n\r\n addBreadcrumbList(\r\n nodeList: Breadcrumbs[],\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n //get last child\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n const innerHTML = lastIndex.innerHTML;\r\n lastIndex.innerHTML = '';\r\n //add new link\r\n const link = this.createLink(innerHTML, location.pathname, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n lastIndex.after(link, arrowImg);\r\n lastIndex.remove();\r\n for (let i = 0; i < nodeList.length; i++) {\r\n const lastIndex = elements?.item(elements.length - 1) as HTMLSpanElement;\r\n if (nodeList[i].nodeUrl) {\r\n const newSpan = document.createElement('span');\r\n //add new link\r\n const link = this.createLink(nodeList[i].nodeName, nodeList[i].nodeUrl, linkClasses);\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n lastIndex.after(link, arrowImg);\r\n } else {\r\n const newSpan = this.createSpan(nodeList[i].nodeName);\r\n lastIndex.after(newSpan);\r\n }\r\n }\r\n }\r\n\r\n createBreadcrumbs(\r\n nodeList: Breadcrumbs[],\r\n imgClasses = 'path_arrow',\r\n linkClasses = 'path-item'\r\n ) {\r\n const currentDiv = document.getElementById(\r\n 'path'\r\n )?.querySelector('.container') as HTMLDivElement;\r\n currentDiv.innerHTML = '';\r\n //add first link\r\n const firstLink = this.createLink(\r\n nodeList[0].nodeName,\r\n nodeList[0].nodeUrl, linkClasses\r\n );\r\n currentDiv.appendChild(firstLink);\r\n //add arrow img\r\n const firstArrowImg = this.createImg(imgClasses);\r\n currentDiv.appendChild(firstArrowImg);\r\n //add rest of nodes\r\n for (let i = 1; i < nodeList.length; i++) {\r\n if (nodeList[i].nodeUrl) {\r\n //add new link\r\n const link = this.createLink(\r\n nodeList[i].nodeName,\r\n nodeList[i].nodeUrl, linkClasses\r\n );\r\n //add arrow img\r\n const arrowImg = this.createImg(imgClasses);\r\n currentDiv.appendChild(link);\r\n currentDiv.appendChild(arrowImg);\r\n } else {\r\n //add last span\r\n const span = this.createSpan(nodeList[i].nodeName);\r\n currentDiv.appendChild(span);\r\n }\r\n }\r\n }\r\n\r\n removeLastBreadcrumb() {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n elements?.item(elements.length - 1)?.remove();\r\n elements?.item(elements.length - 1)?.remove();\r\n this.setCurrentNode(elements);\r\n }\r\n\r\n removeBreadcrumbByNodeName(nodeName: string) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n let index = -1;\r\n for (let i = 0; i < elements?.length!; i++) {\r\n const span = elements?.item(i);\r\n if (span?.textContent?.trim() === nodeName) {\r\n index = i;\r\n break;\r\n }\r\n }\r\n const lastNode = elements?.length! - 1 === index;\r\n if (index !== -1 && !lastNode) {\r\n elements?.item(index)?.remove();\r\n elements?.item(index)?.remove();\r\n } else {\r\n elements?.item(index)?.remove();\r\n elements?.item(index - 1)?.remove();\r\n }\r\n if (lastNode) {\r\n this.setCurrentNode(elements);\r\n }\r\n }\r\n\r\n removeLastBreadcrumbsByLength(length: number) {\r\n const elements = document\r\n .getElementById('path')\r\n ?.querySelector('.container')?.children;\r\n while (length > 0) {\r\n elements?.item(elements.length - 1)?.remove();\r\n elements?.item(elements.length - 1)?.remove();\r\n length--;\r\n }\r\n if (elements?.length! > 0) {\r\n this.setCurrentNode(elements);\r\n }\r\n }\r\n\r\n private createLink(\r\n innerHTML: string,\r\n href: string | null,\r\n classes: string\r\n ): HTMLAnchorElement {\r\n const link = document.createElement('a');\r\n link.innerHTML = ' ' + innerHTML;\r\n link.href = href ?? '';\r\n link.classList.add(...[classes]);\r\n return link;\r\n }\r\n\r\n private createSpan(innerHTML: string): HTMLSpanElement {\r\n const span = document.createElement('span');\r\n span.innerHTML = ' ' + innerHTML;\r\n return span;\r\n }\r\n\r\n private createImg(\r\n classes: string,\r\n src: string = 'https://newportal.ipa.edu.sa/_catalogs/masterpage/ar-sa/CPS/assets/img/internal/path.svg'\r\n ): HTMLImageElement {\r\n const img = document.createElement('img');\r\n img.src = src;\r\n img.classList.add(...[classes]);\r\n return img;\r\n }\r\n\r\n private setCurrentNode(spans?: HTMLCollection) {\r\n const lastSpan = spans?.item(spans.length - 1) as HTMLSpanElement;\r\n const span = this.createSpan(lastSpan.innerHTML);\r\n lastSpan.replaceWith(span);\r\n }\r\n}\r\n","/*\r\n * Public API Surface of ipa-library\r\n */\r\n// module\r\nexport * from './lib/ng-ipa-library.module';\r\nexport * from 'ngx-toastr';\r\nexport * from '@ng-select/ng-select';\r\nexport * from '@ng-bootstrap/ng-bootstrap';\r\nexport * from './lib/pipes/pipes.module';\r\nexport * from './lib/share-button/share-button.module';\r\n\r\n// core components\r\nexport * from './lib/core/components/loading/loading.component';\r\n\r\n// form components\r\nexport * from './lib/ipa-form/text-input/text-input.component';\r\nexport * from './lib/ipa-form/textarea-input/textarea-input.component';\r\nexport * from './lib/ipa-form/dropdown-input/dropdown-input.component';\r\nexport * from './lib/ipa-form/file-upload/file-upload.component';\r\nexport * from './lib/ipa-form/datepicker/hijri-datepicker/hijri-datepicker.component';\r\nexport * from './lib/ipa-form/datepicker/gregorian-datepicker/gregorian-datepicker.component';\r\nexport * from './lib/ipa-form/recaptcha/recaptcha.component';\r\nexport * from './lib/generate-form/generate-form.component';\r\nexport * from './lib/share-button/share-button.component';\r\n\r\n// interceptors\r\nexport * from './lib/core/interceptors/loading.interceptor';\r\nexport * from './lib/core/interceptors/error.interceptor';\r\nexport * from './lib/core/interceptors/token.interceptor';\r\nexport * from './lib/core/interceptors/myIPAToken.interceptor';\r\n\r\n// services\r\nexport * from './lib/core/services/loader.service';\r\nexport * from './lib/core/services/error.service';\r\nexport * from './lib/core/services/token.service';\r\nexport * from './lib/core/services/auth.service';\r\nexport * from './lib/ipa-form/ipa-form.service';\r\nexport * from './lib/services/breadcrumbs.service';\r\nexport * from './lib/services/breadcrumbsV2.service';\r\nexport * from './lib/services/common.service';\r\n\r\n//pipes\r\nexport * from './lib/pipes/hijri-date.pipe';\r\n\r\n//models\r\nexport * from './lib/models/pagedResult';\r\nexport * from './lib/models/apiException';\r\nexport * from './lib/models/apiResponse';\r\nexport * from './lib/models/generateForm.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i1.IPAFormService","i2","i3","i1.LoaderService","i4.TextInputComponent","i5.TextareaInputComponent","i6.DropdownInputComponent","i7.FileUploadComponent","i8.RecaptchaComponent","i4","WEEKDAYS","MONTHS","i2.CommonService","i1.ErrorService","i1.AuthService","i3.LoaderService","i4.TokenService","i2.TokenService"],"mappings":"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"}
@@ -32,5 +32,5 @@ export declare class DropdownInputComponent implements OnInit {
32
32
  get errorMessage(): string | null;
33
33
  initCustomDropdowns(): void;
34
34
  static ɵfac: i0.ɵɵFactoryDeclaration<DropdownInputComponent, [null, { self: true; }]>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<DropdownInputComponent, "ipa-dropdown-input", never, { "id": { "alias": "id"; "required": false; }; "isPlatformCodeDesignSystem": { "alias": "isPlatformCodeDesignSystem"; "required": false; }; "label": { "alias": "label"; "required": false; }; "items": { "alias": "items"; "required": false; }; "textField": { "alias": "textField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "required": { "alias": "required"; "required": false; }; "firstItemLabel": { "alias": "firstItemLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; "fromGenerateForm": { "alias": "fromGenerateForm"; "required": false; }; }, {}, never, never, false, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<DropdownInputComponent, "ipa-dropdown-input", never, { "id": { "alias": "id"; "required": true; }; "isPlatformCodeDesignSystem": { "alias": "isPlatformCodeDesignSystem"; "required": false; }; "label": { "alias": "label"; "required": true; }; "items": { "alias": "items"; "required": true; }; "textField": { "alias": "textField"; "required": false; }; "valueField": { "alias": "valueField"; "required": false; }; "required": { "alias": "required"; "required": false; }; "firstItemLabel": { "alias": "firstItemLabel"; "required": false; }; "searchable": { "alias": "searchable"; "required": false; }; "notFoundText": { "alias": "notFoundText"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; "fromGenerateForm": { "alias": "fromGenerateForm"; "required": false; }; }, {}, never, never, false, never>;
36
36
  }
@@ -32,5 +32,5 @@ export declare class TextInputComponent implements OnInit, AfterContentChecked {
32
32
  checkIsNumber(event: Event): void;
33
33
  get errorMessage(): string | null;
34
34
  static ɵfac: i0.ɵɵFactoryDeclaration<TextInputComponent, [null, { self: true; }, null]>;
35
- static ɵcmp: i0.ɵɵComponentDeclaration<TextInputComponent, "ipa-text-input", never, { "isPlatformCodeDesignSystem": { "alias": "isPlatformCodeDesignSystem"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "patternErrorMsg": { "alias": "patternErrorMsg"; "required": false; }; "onlyNumber": { "alias": "onlyNumber"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; }, {}, never, never, false, never>;
35
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextInputComponent, "ipa-text-input", never, { "isPlatformCodeDesignSystem": { "alias": "isPlatformCodeDesignSystem"; "required": false; }; "id": { "alias": "id"; "required": false; }; "type": { "alias": "type"; "required": false; }; "label": { "alias": "label"; "required": true; }; "placeholder": { "alias": "placeholder"; "required": false; }; "required": { "alias": "required"; "required": false; }; "patternErrorMsg": { "alias": "patternErrorMsg"; "required": false; }; "onlyNumber": { "alias": "onlyNumber"; "required": false; }; "pattern": { "alias": "pattern"; "required": false; }; "classes": { "alias": "classes"; "required": false; }; "containerClasses": { "alias": "containerClasses"; "required": false; }; "isArabicForm": { "alias": "isArabicForm"; "required": false; }; }, {}, never, never, false, never>;
36
36
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ng-ipa-library",
3
- "version": "6.1.3",
3
+ "version": "6.1.5",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "<20.0.0",
6
6
  "@angular/core": "<20.0.0",