@morozeckiy/dd-lib 0.2.71 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/assets/images/svg/file.svg +12 -0
  2. package/assets/images/svg/reload.svg +11 -0
  3. package/assets/scss/common.scss +21 -0
  4. package/assets/scss/grid.scss +158 -0
  5. package/assets/scss/keyframes.scss +9 -0
  6. package/assets/scss/reset.scss +4 -0
  7. package/assets/scss/titles.scss +24 -10
  8. package/assets/styles.scss +2 -0
  9. package/esm2022/lib/common/lib-common-input-text.mjs +30 -25
  10. package/esm2022/lib/components/data-empty/data-empty.component.mjs +8 -3
  11. package/esm2022/lib/core/dialog/modal-base/modal-base.component.mjs +5 -5
  12. package/esm2022/lib/core/directives/click-outside.directive.mjs +2 -2
  13. package/esm2022/lib/core/services/destroy.service.mjs +1 -1
  14. package/esm2022/lib/core/services/fetcher.service.mjs +1 -1
  15. package/esm2022/lib/core/services/validators.service.mjs +33 -1
  16. package/esm2022/lib/core/toast/toast-config.mjs +11 -2
  17. package/esm2022/lib/core/toast/toast.service.mjs +18 -1
  18. package/esm2022/lib/lib-button/lib-button.component.mjs +3 -3
  19. package/esm2022/lib/lib-card/lib-card.component.mjs +3 -3
  20. package/esm2022/lib/lib-checkbox/lib-checkbox.component.mjs +11 -6
  21. package/esm2022/lib/lib-date-range/lib-date-range.component.mjs +3 -3
  22. package/esm2022/lib/lib-file-loader/lib-file-loader.component.mjs +6 -4
  23. package/esm2022/lib/lib-file-upload/lib-file-upload.component.mjs +8 -20
  24. package/esm2022/lib/lib-filter-button/lib-filter-button.component.mjs +3 -3
  25. package/esm2022/lib/lib-image-loader/lib-image-loader.component.mjs +3 -3
  26. package/esm2022/lib/lib-input/lib-input.component.mjs +42 -11
  27. package/esm2022/lib/lib-search-input/lib-search-input.component.mjs +3 -3
  28. package/esm2022/lib/lib-select/lib-select.component.mjs +51 -13
  29. package/esm2022/lib/lib-tabs-fragment/lib-tabs-fragment.component.mjs +5 -2
  30. package/esm2022/lib/lib-textarea/lib-textarea.component.mjs +3 -3
  31. package/esm2022/lib/svg-icons/svg-icon.model.mjs +11 -1
  32. package/fesm2022/morozeckiy-dd-lib.mjs +238 -99
  33. package/fesm2022/morozeckiy-dd-lib.mjs.map +1 -1
  34. package/lib/common/lib-common-input-text.d.ts +11 -4
  35. package/lib/components/data-empty/data-empty.component.d.ts +2 -1
  36. package/lib/core/dialog/modal-base/modal-base.component.d.ts +2 -2
  37. package/lib/core/services/fetcher.service.d.ts +4 -1
  38. package/lib/core/services/validators.service.d.ts +3 -2
  39. package/lib/core/toast/toast-config.d.ts +5 -2
  40. package/lib/core/toast/toast.service.d.ts +5 -1
  41. package/lib/lib-checkbox/lib-checkbox.component.d.ts +3 -1
  42. package/lib/lib-file-loader/lib-file-loader.component.d.ts +3 -2
  43. package/lib/lib-file-upload/lib-file-upload.component.d.ts +5 -8
  44. package/lib/lib-input/lib-input.component.d.ts +12 -4
  45. package/lib/lib-select/lib-select.component.d.ts +13 -4
  46. package/lib/lib-tabs-fragment/lib-tabs-fragment.component.d.ts +3 -2
  47. package/lib/svg-icons/svg-icon.model.d.ts +15 -1
  48. package/morozeckiy-dd-lib-0.3.0.tgz +0 -0
  49. package/package.json +1 -1
  50. package/morozeckiy-dd-lib-0.2.71.tgz +0 -0
@@ -25,7 +25,7 @@ export class LibTextareaComponent extends LibCommonInputTextComponent {
25
25
  useExisting: forwardRef(() => LibTextareaComponent),
26
26
  multi: true,
27
27
  },
28
- ], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"lib-textarea__title\">\r\n {{ label }} @if (needCounter) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ maxlength - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n } @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n </div>\r\n\r\n @if (errorText && invalid) {\r\n <div class=\"lib-input__error\">{{ errorText }}</div>\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: LibSvgIconComponent, selector: "dd-lib-svg-icon", inputs: ["width", "height", "color", "icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
28
+ ], usesInheritance: true, ngImport: i0, template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"d-block g-text-sm mb-4\">\r\n {{ label }}\r\n @if (needCounter && maxlength) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ +maxlength! - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n }\r\n @if (required) {\r\n <span class=\"red\">*</span>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n @if (maxlength) {\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none;font-size:16px;line-height:24px;color:var(--light-black-color)}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
29
29
  }
30
30
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImport: i0, type: LibTextareaComponent, decorators: [{
31
31
  type: Component,
@@ -35,7 +35,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
35
35
  useExisting: forwardRef(() => LibTextareaComponent),
36
36
  multi: true,
37
37
  },
38
- ], template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"lib-textarea__title\">\r\n {{ label }} @if (needCounter) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ maxlength - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n } @if (required) {\r\n <dd-lib-svg-icon icon=\"error_hint\"></dd-lib-svg-icon>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n </div>\r\n\r\n @if (errorText && invalid) {\r\n <div class=\"lib-input__error\">{{ errorText }}</div>\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__title{margin-bottom:4px;font-size:14px;line-height:24px;display:flex;align-items:flex-start}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px}\n"] }]
38
+ ], template: "<div class=\"lib-textarea\">\r\n <label [for]=\"id\" class=\"d-block g-text-sm mb-4\">\r\n {{ label }}\r\n @if (needCounter && maxlength) {\r\n <span>(\u043E\u0441\u0442\u0430\u043B\u043E\u0441\u044C {{ +maxlength! - (value?.length || 0) }} \u0441\u0438\u043C\u0432\u043E\u043B\u043E\u0432)</span>\r\n }\r\n @if (required) {\r\n <span class=\"red\">*</span>\r\n }\r\n </label>\r\n <div class=\"pos-relative d-flex\">\r\n <textarea\r\n #textarea\r\n (blur)=\"notifyFocusEvent($event)\"\r\n (change)=\"handleChange()\"\r\n (focus)=\"notifyFocusEvent($event)\"\r\n (input)=\"handleInput($event)\"\r\n (keyup.enter)=\"forceChange()\"\r\n [(ngModel)]=\"value\"\r\n [attr.id]=\"id ? id : null\"\r\n [attr.maxlength]=\"maxlength\"\r\n [attr.minlength]=\"minlength\"\r\n [attr.name]=\"name\"\r\n [attr.placeholder]=\"placeholder\"\r\n [attr.tabIndex]=\"tabIndex\"\r\n [class.focused]=\"focused\"\r\n [class.invalid]=\"invalid\"\r\n [disabled]=\"disabled\"\r\n [readOnly]=\"readOnly\"\r\n [required]=\"required\"\r\n [rows]=\"rows\"\r\n class=\"textarea\"></textarea>\r\n @if (maxlength) {\r\n <span class=\"lib-textarea__counter\">{{ value?.length || 0 }}/{{ maxlength }}</span>\r\n }\r\n </div>\r\n\r\n @if (errorTexts.length && showError) {\r\n @for (error of errorTexts; track error) {\r\n <div class=\"lib-input__error\">{{ error }}</div>\r\n }\r\n }\r\n</div>\r\n", styles: [".lib-textarea{position:relative;display:inline;flex-direction:column}.lib-textarea textarea{width:100%;min-height:48px;padding:12px 16px;border-radius:8px;border:1px solid var(--input-border-color);background-color:transparent;resize:none;font-size:16px;line-height:24px;color:var(--light-black-color)}.lib-textarea textarea:hover{border-color:var(--input-active-border-colort)}.lib-textarea textarea:focus{border-color:var(--input-active-border-colort);box-shadow:var(--input-active-border-shadow)}.lib-textarea textarea:disabled{border:none;background-color:var(--input-disable-input);color:var(--input-disable-text);pointer-events:none}.lib-textarea textarea:disabled::placeholder{color:var(--input-placeholder)}.lib-textarea textarea.invalid,.lib-textarea textarea.invalid:hover{border-color:var(--input-error-border-color)}.lib-textarea textarea.invalid:focus{border-color:var(--input-error-border-color);box-shadow:var(--input-error-border-shadow)}.lib-textarea__counter{position:absolute;font-size:12px;font-weight:400;right:16px;bottom:12px;color:var(--input-placeholder)}.lib-textarea__counter textarea:disabled+.lib-text-counter{color:var(--input-disable-text)}.lib-textarea__error{color:var(--primary-red-color);font-size:12px;font-weight:400;line-height:10px;margin-top:2px;position:absolute}\n"] }]
39
39
  }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.ControlContainer, decorators: [{
40
40
  type: Optional
41
41
  }, {
@@ -47,4 +47,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.2.2", ngImpor
47
47
  }], needCounter: [{
48
48
  type: Input
49
49
  }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi10ZXh0YXJlYS9saWItdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXRleHRhcmVhL2xpYi10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEtBQUssRUFFTCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7OztBQWlCM0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDJCQUEyQjtJQUluRSxZQUNFLGVBQWtDLEVBQ00sZ0JBQWtDO1FBRTFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZpQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTDVELFNBQUksR0FBRyxHQUFHLENBQUM7UUFDWCxnQkFBVyxHQUFHLElBQUksQ0FBQztJQU9uQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPO1lBQ1YsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNiLENBQUM7OEdBaEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9IQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREM3QkgsODNDQXFDQSw2MkNEbEJZLFdBQVcsNDBCQUFvQixtQkFBbUI7OzJGQVlqRCxvQkFBb0I7a0JBZmhDLFNBQVM7K0JBQ0UsaUJBQWlCLGNBQ2YsSUFBSSxXQUNQLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLG1CQUFtQixDQUFDLG1CQUc1Qyx1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjs7MEJBUUUsUUFBUTs7MEJBQUksSUFBSTs7MEJBQUksUUFBUTt5Q0FMZixJQUFJO3NCQUFuQixLQUFLO2dCQUNVLFdBQVc7c0JBQTFCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIENvbXBvbmVudCxcclxuICBmb3J3YXJkUmVmLFxyXG4gIEhvc3QsXHJcbiAgSW5wdXQsXHJcbiAgT25Jbml0LFxyXG4gIE9wdGlvbmFsLFxyXG4gIFNraXBTZWxmLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge0NvbnRyb2xDb250YWluZXIsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQge05nT3B0aW1pemVkSW1hZ2V9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7TGliQ29tbW9uSW5wdXRUZXh0Q29tcG9uZW50fSBmcm9tICcuLi9jb21tb24vbGliLWNvbW1vbi1pbnB1dC10ZXh0JztcclxuaW1wb3J0IHtMaWJTdmdJY29uQ29tcG9uZW50fSBmcm9tIFwiLi4vbGliLXN2Zy1pY29uL2xpYi1zdmctaWNvbi5jb21wb25lbnRcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnZGQtbGliLXRleHRhcmVhJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtGb3Jtc01vZHVsZSwgTmdPcHRpbWl6ZWRJbWFnZSwgTGliU3ZnSWNvbkNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2xpYi10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2xpYi10ZXh0YXJlYS5jb21wb25lbnQuc2NzcycsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBMaWJUZXh0YXJlYUNvbXBvbmVudCksXHJcbiAgICAgIG11bHRpOiB0cnVlLFxyXG4gICAgfSxcclxuICBdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTGliVGV4dGFyZWFDb21wb25lbnQgZXh0ZW5kcyBMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIEBJbnB1dCgpIHB1YmxpYyByb3dzID0gJzYnO1xyXG4gIEBJbnB1dCgpIHB1YmxpYyBuZWVkQ291bnRlciA9IHRydWU7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIEBPcHRpb25hbCgpIEBIb3N0KCkgQFNraXBTZWxmKCkgcHJpdmF0ZSBjb250cm9sQ29udGFpbmVyOiBDb250cm9sQ29udGFpbmVyLFxyXG4gICkge1xyXG4gICAgc3VwZXIoY2hhbmdlRGV0ZWN0aW9uKTtcclxuICB9XHJcblxyXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuY29udHJvbCA9XHJcbiAgICAgIHRoaXMuY29udHJvbENvbnRhaW5lciAmJiB0aGlzLmZvcm1Db250cm9sTmFtZVxyXG4gICAgICAgID8gdGhpcy5jb250cm9sQ29udGFpbmVyPy5jb250cm9sPy5nZXQodGhpcy5mb3JtQ29udHJvbE5hbWUpXHJcbiAgICAgICAgOiBudWxsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibGliLXRleHRhcmVhXCI+XHJcbiAgPGxhYmVsIFtmb3JdPVwiaWRcIiBjbGFzcz1cImxpYi10ZXh0YXJlYV9fdGl0bGVcIj5cclxuICAgIHt7IGxhYmVsIH19IEBpZiAobmVlZENvdW50ZXIpIHtcclxuICAgIDxzcGFuPijQvtGB0YLQsNC70L7RgdGMIHt7IG1heGxlbmd0aCAtICh2YWx1ZT8ubGVuZ3RoIHx8IDApIH19INGB0LjQvNCy0L7Qu9C+0LIpPC9zcGFuPlxyXG4gICAgfSBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICA8ZGQtbGliLXN2Zy1pY29uIGljb249XCJlcnJvcl9oaW50XCI+PC9kZC1saWItc3ZnLWljb24+XHJcbiAgICB9XHJcbiAgPC9sYWJlbD5cclxuICA8ZGl2IGNsYXNzPVwicG9zLXJlbGF0aXZlIGQtZmxleFwiPlxyXG4gICAgPHRleHRhcmVhXHJcbiAgICAgICN0ZXh0YXJlYVxyXG4gICAgICAoYmx1cik9XCJub3RpZnlGb2N1c0V2ZW50KCRldmVudClcIlxyXG4gICAgICAoY2hhbmdlKT1cImhhbmRsZUNoYW5nZSgpXCJcclxuICAgICAgKGZvY3VzKT1cIm5vdGlmeUZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgIChpbnB1dCk9XCJoYW5kbGVJbnB1dCgkZXZlbnQpXCJcclxuICAgICAgKGtleXVwLmVudGVyKT1cImZvcmNlQ2hhbmdlKClcIlxyXG4gICAgICBbKG5nTW9kZWwpXT1cInZhbHVlXCJcclxuICAgICAgW2F0dHIuaWRdPVwiaWQgPyBpZCA6IG51bGxcIlxyXG4gICAgICBbYXR0ci5tYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcclxuICAgICAgW2F0dHIubWlubGVuZ3RoXT1cIm1pbmxlbmd0aFwiXHJcbiAgICAgIFthdHRyLm5hbWVdPVwibmFtZVwiXHJcbiAgICAgIFthdHRyLnBsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcclxuICAgICAgW2F0dHIudGFiSW5kZXhdPVwidGFiSW5kZXhcIlxyXG4gICAgICBbY2xhc3MuZm9jdXNlZF09XCJmb2N1c2VkXCJcclxuICAgICAgW2NsYXNzLmludmFsaWRdPVwiaW52YWxpZFwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgIFtyb3dzXT1cInJvd3NcIlxyXG4gICAgICBjbGFzcz1cInRleHRhcmVhXCI+PC90ZXh0YXJlYT5cclxuICAgIDxzcGFuIGNsYXNzPVwibGliLXRleHRhcmVhX19jb3VudGVyXCI+e3sgdmFsdWU/Lmxlbmd0aCB8fCAwIH19L3t7IG1heGxlbmd0aCB9fTwvc3Bhbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgQGlmIChlcnJvclRleHQgJiYgaW52YWxpZCkgIHtcclxuICA8ZGl2IGNsYXNzPVwibGliLWlucHV0X19lcnJvclwiPnt7IGVycm9yVGV4dCB9fTwvZGl2PlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGliLXRleHRhcmVhLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2RkLWxpYi9zcmMvbGliL2xpYi10ZXh0YXJlYS9saWItdGV4dGFyZWEuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGQtbGliL3NyYy9saWIvbGliLXRleHRhcmVhL2xpYi10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsdUJBQXVCLEVBRXZCLFNBQVMsRUFDVCxVQUFVLEVBQ1YsSUFBSSxFQUNKLEtBQUssRUFFTCxRQUFRLEVBQ1IsUUFBUSxHQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBbUIsV0FBVyxFQUFFLGlCQUFpQixFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEYsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDakQsT0FBTyxFQUFDLDJCQUEyQixFQUFDLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0NBQXdDLENBQUM7OztBQWlCM0UsTUFBTSxPQUFPLG9CQUFxQixTQUFRLDJCQUEyQjtJQUluRSxZQUNFLGVBQWtDLEVBQ00sZ0JBQWtDO1FBRTFFLEtBQUssQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUZpQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBTDVELFNBQUksR0FBRyxHQUFHLENBQUM7UUFDWCxnQkFBVyxHQUFHLElBQUksQ0FBQztJQU9uQyxDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxPQUFPO1lBQ1YsSUFBSSxDQUFDLGdCQUFnQixJQUFJLElBQUksQ0FBQyxlQUFlO2dCQUMzQyxDQUFDLENBQUMsSUFBSSxDQUFDLGdCQUFnQixFQUFFLE9BQU8sRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQztnQkFDM0QsQ0FBQyxDQUFDLElBQUksQ0FBQztJQUNiLENBQUM7OEdBaEJVLG9CQUFvQjtrR0FBcEIsb0JBQW9CLG9IQVJwQjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7Z0JBQ25ELEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRixpREM3QkgsOCtDQTJDQSxtMUNEeEJZLFdBQVc7OzJGQVlWLG9CQUFvQjtrQkFmaEMsU0FBUzsrQkFDRSxpQkFBaUIsY0FDZixJQUFJLFdBQ1AsQ0FBQyxXQUFXLEVBQUUsZ0JBQWdCLEVBQUUsbUJBQW1CLENBQUMsbUJBRzVDLHVCQUF1QixDQUFDLE1BQU0sYUFDcEM7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyxFQUFFLFVBQVUsQ0FBQyxHQUFHLEVBQUUscUJBQXFCLENBQUM7NEJBQ25ELEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGOzswQkFRRSxRQUFROzswQkFBSSxJQUFJOzswQkFBSSxRQUFRO3lDQUxmLElBQUk7c0JBQW5CLEtBQUs7Z0JBQ1UsV0FBVztzQkFBMUIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgQ29tcG9uZW50LFxyXG4gIGZvcndhcmRSZWYsXHJcbiAgSG9zdCxcclxuICBJbnB1dCxcclxuICBPbkluaXQsXHJcbiAgT3B0aW9uYWwsXHJcbiAgU2tpcFNlbGYsXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7Q29udHJvbENvbnRhaW5lciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7TmdPcHRpbWl6ZWRJbWFnZX0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHtMaWJDb21tb25JbnB1dFRleHRDb21wb25lbnR9IGZyb20gJy4uL2NvbW1vbi9saWItY29tbW9uLWlucHV0LXRleHQnO1xyXG5pbXBvcnQge0xpYlN2Z0ljb25Db21wb25lbnR9IGZyb20gXCIuLi9saWItc3ZnLWljb24vbGliLXN2Zy1pY29uLmNvbXBvbmVudFwiO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdkZC1saWItdGV4dGFyZWEnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0Zvcm1zTW9kdWxlLCBOZ09wdGltaXplZEltYWdlLCBMaWJTdmdJY29uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vbGliLXRleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vbGliLXRleHRhcmVhLmNvbXBvbmVudC5zY3NzJyxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtcclxuICAgIHtcclxuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXHJcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IExpYlRleHRhcmVhQ29tcG9uZW50KSxcclxuICAgICAgbXVsdGk6IHRydWUsXHJcbiAgICB9LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMaWJUZXh0YXJlYUNvbXBvbmVudCBleHRlbmRzIExpYkNvbW1vbklucHV0VGV4dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgcHVibGljIHJvd3MgPSAnNic7XHJcbiAgQElucHV0KCkgcHVibGljIG5lZWRDb3VudGVyID0gdHJ1ZTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgQE9wdGlvbmFsKCkgQEhvc3QoKSBAU2tpcFNlbGYoKSBwcml2YXRlIGNvbnRyb2xDb250YWluZXI6IENvbnRyb2xDb250YWluZXIsXHJcbiAgKSB7XHJcbiAgICBzdXBlcihjaGFuZ2VEZXRlY3Rpb24pO1xyXG4gIH1cclxuXHJcbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb250cm9sID1cclxuICAgICAgdGhpcy5jb250cm9sQ29udGFpbmVyICYmIHRoaXMuZm9ybUNvbnRyb2xOYW1lXHJcbiAgICAgICAgPyB0aGlzLmNvbnRyb2xDb250YWluZXI/LmNvbnRyb2w/LmdldCh0aGlzLmZvcm1Db250cm9sTmFtZSlcclxuICAgICAgICA6IG51bGw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJsaWItdGV4dGFyZWFcIj5cclxuICA8bGFiZWwgW2Zvcl09XCJpZFwiIGNsYXNzPVwiZC1ibG9jayBnLXRleHQtc20gbWItNFwiPlxyXG4gICAge3sgbGFiZWwgfX1cclxuICAgIEBpZiAobmVlZENvdW50ZXIgJiYgbWF4bGVuZ3RoKSB7XHJcbiAgICAgIDxzcGFuPijQvtGB0YLQsNC70L7RgdGMIHt7ICttYXhsZW5ndGghIC0gKHZhbHVlPy5sZW5ndGggfHwgMCkgfX0g0YHQuNC80LLQvtC70L7Qsik8L3NwYW4+XHJcbiAgICB9XHJcbiAgICBAaWYgKHJlcXVpcmVkKSB7XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwicmVkXCI+Kjwvc3Bhbj5cclxuICAgIH1cclxuICA8L2xhYmVsPlxyXG4gIDxkaXYgY2xhc3M9XCJwb3MtcmVsYXRpdmUgZC1mbGV4XCI+XHJcbiAgICA8dGV4dGFyZWFcclxuICAgICAgI3RleHRhcmVhXHJcbiAgICAgIChibHVyKT1cIm5vdGlmeUZvY3VzRXZlbnQoJGV2ZW50KVwiXHJcbiAgICAgIChjaGFuZ2UpPVwiaGFuZGxlQ2hhbmdlKClcIlxyXG4gICAgICAoZm9jdXMpPVwibm90aWZ5Rm9jdXNFdmVudCgkZXZlbnQpXCJcclxuICAgICAgKGlucHV0KT1cImhhbmRsZUlucHV0KCRldmVudClcIlxyXG4gICAgICAoa2V5dXAuZW50ZXIpPVwiZm9yY2VDaGFuZ2UoKVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwidmFsdWVcIlxyXG4gICAgICBbYXR0ci5pZF09XCJpZCA/IGlkIDogbnVsbFwiXHJcbiAgICAgIFthdHRyLm1heGxlbmd0aF09XCJtYXhsZW5ndGhcIlxyXG4gICAgICBbYXR0ci5taW5sZW5ndGhdPVwibWlubGVuZ3RoXCJcclxuICAgICAgW2F0dHIubmFtZV09XCJuYW1lXCJcclxuICAgICAgW2F0dHIucGxhY2Vob2xkZXJdPVwicGxhY2Vob2xkZXJcIlxyXG4gICAgICBbYXR0ci50YWJJbmRleF09XCJ0YWJJbmRleFwiXHJcbiAgICAgIFtjbGFzcy5mb2N1c2VkXT1cImZvY3VzZWRcIlxyXG4gICAgICBbY2xhc3MuaW52YWxpZF09XCJpbnZhbGlkXCJcclxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcclxuICAgICAgW3JlYWRPbmx5XT1cInJlYWRPbmx5XCJcclxuICAgICAgW3JlcXVpcmVkXT1cInJlcXVpcmVkXCJcclxuICAgICAgW3Jvd3NdPVwicm93c1wiXHJcbiAgICAgIGNsYXNzPVwidGV4dGFyZWFcIj48L3RleHRhcmVhPlxyXG4gICAgQGlmIChtYXhsZW5ndGgpIHtcclxuICAgICAgPHNwYW4gY2xhc3M9XCJsaWItdGV4dGFyZWFfX2NvdW50ZXJcIj57eyB2YWx1ZT8ubGVuZ3RoIHx8IDAgfX0ve3sgbWF4bGVuZ3RoIH19PC9zcGFuPlxyXG4gICAgfVxyXG4gIDwvZGl2PlxyXG5cclxuICBAaWYgKGVycm9yVGV4dHMubGVuZ3RoICYmIHNob3dFcnJvcikge1xyXG4gICAgQGZvciAoZXJyb3Igb2YgZXJyb3JUZXh0czsgdHJhY2sgZXJyb3IpIHtcclxuICAgICAgPGRpdiBjbGFzcz1cImxpYi1pbnB1dF9fZXJyb3JcIj57eyBlcnJvciB9fTwvZGl2PlxyXG4gICAgfVxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==