@cuby-ui/core 0.0.238 → 0.0.239

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.
@@ -228,7 +228,7 @@ export class CuiUtilityInfoComponent {
228
228
  return !this.isDescriptionEmpty() && !this.form.invalid;
229
229
  }
230
230
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
231
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityInfoComponent, isStandalone: true, selector: "cui-utility-info", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiAccordionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => i1.CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i2.CuiFormFieldComponent), selector: "cui-form-field" }, { kind: "ngmodule", type: i0.forwardRef(() => CuiHintModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiInputModule) }, { kind: "component", type: i0.forwardRef(() => i3.CuiInputTextComponent), selector: "cui-input-text" }, { kind: "directive", type: i0.forwardRef(() => i4.CuiTextFieldIdDirective), selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i0.forwardRef(() => i5.CuiTextFieldPlaceholderDirective), selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i0.forwardRef(() => i6.CuiTextFieldIsErrorDirective), selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiLabelModule) }, { kind: "component", type: i0.forwardRef(() => i7.CuiLabelComponent), selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: i0.forwardRef(() => CuiEditorBlockComponent), selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "component", type: i0.forwardRef(() => CuiGeneralControlErrorHintComponent), selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i8.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i8.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => TranslocoDirective), selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
231
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityInfoComponent, isStandalone: true, selector: "cui-utility-info", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiAccordionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => i1.CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => i2.CuiFormFieldComponent), selector: "cui-form-field" }, { kind: "ngmodule", type: i0.forwardRef(() => CuiHintModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiInputModule) }, { kind: "component", type: i0.forwardRef(() => i3.CuiInputTextComponent), selector: "cui-input-text" }, { kind: "directive", type: i0.forwardRef(() => i4.CuiTextFieldIdDirective), selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i0.forwardRef(() => i5.CuiTextFieldPlaceholderDirective), selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i0.forwardRef(() => i6.CuiTextFieldIsErrorDirective), selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiLabelModule) }, { kind: "component", type: i0.forwardRef(() => i7.CuiLabelComponent), selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: i0.forwardRef(() => CuiEditorBlockComponent), selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "component", type: i0.forwardRef(() => CuiGeneralControlErrorHintComponent), selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i8.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i8.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => TranslocoDirective), selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
232
232
  }
233
233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityInfoComponent, decorators: [{
234
234
  type: Component,
@@ -244,6 +244,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
244
244
  ReactiveFormsModule,
245
245
  TranslocoDirective,
246
246
  CuiTooltip
247
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"] }]
247
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"] }]
248
248
  }], ctorParameters: () => [] });
249
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LWluZm8vdXRpbGl0eS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LWluZm8vdXRpbGl0eS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBbUIsTUFBTSxjQUFjLENB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QUF1QjtrQkFwQm5DLFNBQVM7K0JBQ0ksa0JBQWtCLFdBQ25CO3dCQUNMLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDekMsbUNBQW1DO3dCQUNuQyxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsVUFBVTtxQkFDYixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIGNvbXB1dGVkLFxyXG4gICAgRGVzdHJveVJlZixcclxuICAgIGVmZmVjdCxcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG91dHB1dCxcclxuICAgIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1aUZyYW1lQXBpU2VydmljZSwgRnJhZ21lbnRUeXBlLCBSZXNvdXJjZUZyYWdtZW50IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlLCB0eXBlIEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBDdWlBbGVydFNlcnZpY2UsXHJcbiAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDdWlIaW50TW9kdWxlLFxyXG4gICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICBDdWlMYWJlbE1vZHVsZVxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDdWlUb29sdGlwIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckJsb2NrQ29tcG9uZW50LCBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XHJcbmltcG9ydCB7IEN1aVV0aWxpdHlGb3JtR3JvdXAsIEN1aVV0aWxpdHlGb3JtVmFsdWVzIH0gZnJvbSAnLi91dGlsaXR5LWluZm8ub3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLXV0aWxpdHktaW5mbycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQWNjb3JkaW9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSGludE1vZHVsZSxcclxuICAgICAgICBDdWlJbnB1dE1vZHVsZSxcclxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcclxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IEN1aUVkaXRvckJsb2NrQ29tcG9uZW50KSxcclxuICAgICAgICBDdWlHZW5lcmFsQ29udHJvbEVycm9ySGludENvbXBvbmVudCxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcclxuICAgICAgICBDdWlUb29sdGlwXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91dGlsaXR5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3V0aWxpdHktaW5mby5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eUluZm9Db21wb25lbnQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZnJhbWVBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aUZyYW1lQXBpU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFsZXJ0U2VydmljZSA9IGluamVjdChDdWlBbGVydFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlJZFNlcnZpY2UgPSBpbmplY3QoQ3VpSWRTZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ09OVFJPTF9ERUxBWSA9IDUwMDtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBNQVhfRklMRV9TSVpFID0gMjA5NzE1MjA7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc2NyaXB0aW9uSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwPEN1aVV0aWxpdHlGb3JtR3JvdXA+KHtcclxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKCcnLCBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyh7IGFzeW5jRGVsYXk6IHRoaXMuQ09OVFJPTF9ERUxBWSB9KSksXHJcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgY3VpQ3JlYXRlRGVmYXVsdFZhbGlkYXRvcnMoeyBhc3luY0RlbGF5OiB0aGlzLkNPTlRST0xfREVMQVkgfSkpXHJcbiAgICB9KTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uTW9kYWxPcGVuID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uRW1wdHkgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvcklkID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRodW1ibmFpbCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxSZXNvdXJjZUZyYWdtZW50Pj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJuYWlsVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRodW1ibmFpbCA9IHRoaXMudGh1bWJuYWlsKCk7XHJcblxyXG4gICAgICAgIGlmICh0aHVtYm5haWw/LnJlc291cmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHVtYm5haWwucmVzb3VyY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVzb3VyY2VVcmwoKSArIHRodW1ibmFpbCEuZmlsZUlkITtcclxuICAgIH0pO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHVwbG9hZEJ1dHRvbk5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gdGhpcy50aHVtYm5haWwoKTtcclxuXHJcbiAgICAgICAgaWYgKHRodW1ibmFpbD8ubmFtZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnUkVQTEFDRV9GSUxFJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnVVBMT0FEX0ZJTEUnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHByb3RlY3RlZCBoZWFkaW5nOiBDdWlOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xzKCk6IEN1aVV0aWxpdHlGb3JtR3JvdXAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBpc1RpdGxlRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbHMudGl0bGUuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2xzLnRpdGxlLmRpcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNEZXNjcmlwdGlvbkVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xzLmRlc2NyaXB0aW9uLmludmFsaWQgJiYgdGhpcy5jb250cm9scy5kZXNjcmlwdGlvbi5kaXJ0eTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZnJhbWVySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZVJlc291cmNlVXJsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybUNoYW5nZWQgPSBvdXRwdXQ8UGFydGlhbDxDdWlVdGlsaXR5Rm9ybVZhbHVlcz4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNGb3JtVmFsaWRDaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VXRpbGl0eUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNlbGVjdEZpbGUoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XHJcbiAgICAgICAgaW5wdXQuYWNjZXB0ID0gJ2ltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCB2aWRlby9tcDQnO1xyXG5cclxuICAgICAgICBpbnB1dC5vbmNoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBpbnB1dC5maWxlcztcclxuXHJcbiAgICAgICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEZpbGUoZmlsZXMpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlucHV0LmNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRWRpdG9yRW1wdHkoaXNFbXB0eTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbkVtcHR5LnNldChpc0VtcHR5KTtcclxuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkQ2hhbmdlZC5lbWl0KHRoaXMuY2hlY2tGb3JtVmFsaWRhdGlvbigpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25SZW1vdmVUaHVtYm5haWwoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudElkID0gdGhpcy50aHVtYm5haWwoKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS5kZWxldGVSZXNvdXJjZShmcmFtZUlkLCBmcmFnbWVudElkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBmaWxlSWQ6IG51bGwsIG5hbWU6IG51bGwsIHJlc291cmNlOiBudWxsIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVEZXNjcmlwdGlvbk1vZGFsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbk1vZGFsT3Blbi51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRVdGlsaXR5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVmZmVjdFJlZiA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50aXRsZSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRGcmFtZUZyYWdtZW50cygpO1xyXG4gICAgICAgICAgICBlZmZlY3RSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEZvcm1TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7IHRpdGxlOiB0aGlzLnRpdGxlKCksIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uKCkgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmlzRm9ybVZhbGlkQ2hhbmdlZC5lbWl0KHRoaXMuY2hlY2tGb3JtVmFsaWRhdGlvbigpKSk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgcGFpcndpc2UoKSxcclxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLkNPTlRST0xfREVMQVkpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChbcHJldiwgY3VycmVudF0pID0+IHRoaXMuY29tcGFyZUZvcm1WYWx1ZXMoW3ByZXYsIGN1cnJlbnRdKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEZyYW1lRnJhZ21lbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZyYW1lSWQgPSB0aGlzLmZyYW1lcklkKCk7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS5nZXRGcmFtZShmcmFtZUlkKS5zdWJzY3JpYmUoKGZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGZyYW1lLmZyYWdtZW50cy5mb3JFYWNoKChmcmFnbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgPT09IEZyYWdtZW50VHlwZS5qVGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9ySWQuc2V0KGZyYWdtZW50Py5pZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgPT09IEZyYWdtZW50VHlwZS5yZXNvdXJjZUZpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlc291cmNlRmlsZShmcmFnbWVudCBhcyBSZXNvdXJjZUZyYWdtZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb21wYXJlRm9ybVZhbHVlcyhbcHJldkdyb3VwLCBjdXJyZW50R3J1b3BdOiBQYXJ0aWFsPEN1aVV0aWxpdHlGb3JtVmFsdWVzPltdKTogUGFydGlhbDxDdWlVdGlsaXR5Rm9ybVZhbHVlcz4ge1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjdXJyZW50R3J1b3ApIGFzIChrZXlvZiBDdWlVdGlsaXR5Rm9ybUdyb3VwKVtdO1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XHJcblxyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2R3JvdXBba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGN1cnJlbnRHcnVvcFtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKHByZXYgPT09IGN1cnJlbnQgfHwgdGhpcy5jb250cm9sc1trZXldLmludmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2hhbmdlZEZpZWxkc1trZXldID0gY3VycmVudDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZWRGaWVsZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRSZXNvdXJjZUZpbGUocmVzb3VyY2U6IFJlc291cmNlRnJhZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VSZXNvdXJjZVVybCgpICsgcmVzb3VyY2UuZmlsZUlkITtcclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWwuc2V0KHJlc291cmNlKTtcclxuXHJcbiAgICAgICAgaWYgKCF1cmwgfHwgcmVzb3VyY2U/Lm5hbWU/LnNwbGl0KCcuJykucG9wKCkgIT09ICdtcDQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RmlsZShmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gZmlsZXMuaXRlbSgwKTtcclxuXHJcbiAgICAgICAgaWYgKCFmaWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiB0aGlzLk1BWF9GSUxFX1NJWkUpIHtcclxuICAgICAgICAgICAgdGhpcy5jdWlBbGVydFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5vcGVuKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0lOVkFMSURfRklMRV9TSVpFJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcidcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBpc1ZpZGVvID0gZmlsZS5uYW1lLnNwbGl0KCcuJykuYXQoLTEpID09PSAnbXA0JztcclxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG5cclxuICAgICAgICBpZiAoaXNWaWRlbykge1xyXG4gICAgICAgICAgICB0aGlzLmdldENhcHR1cmVGcm9tVmlkZW8odXJsLCBmaWxlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBuYW1lOiBmaWxlLm5hbWUsIHJlc291cmNlOiB1cmwgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBsb2FkRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudElkID0gdGhpcy50aHVtYm5haWwoKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVzb3VyY2UnLCBmaWxlKTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZUFwaVNlcnZpY2UudXBsb2FkUmVzb3VyY2UoZm9ybURhdGEsIGZyYW1lSWQsIGZyYWdtZW50SWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmw6IHN0cmluZywgZmlsZT86IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSBhcyBIVE1MQ2FudmFzRWxlbWVudDtcclxuICAgICAgICBjb25zdCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJykgYXMgSFRNTFZpZGVvRWxlbWVudDtcclxuXHJcbiAgICAgICAgdmlkZW8uc3JjID0gdXJsO1xyXG4gICAgICAgIHZpZGVvLmN1cnJlbnRUaW1lID0gMTtcclxuICAgICAgICBjYW52YXMud2lkdGggPSAxODQ7XHJcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IDEyMDtcclxuXHJcbiAgICAgICAgdmlkZW8ub25sb2FkZWRkYXRhID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9DYXB0dXJlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAoZmlsZT8ubmFtZSB8fCBwcmV2Py5uYW1lKSEsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IHZpZGVvQ2FwdHVyZVVybFxyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB2aWRlby5sb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0Zvcm1WYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2NyaXB0aW9uRW1wdHkoKSAmJiAhdGhpcy5mb3JtLmludmFsaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICA8c2VjdGlvbiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICA8bGFiZWwgY3VpTGFiZWwgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiIFtmb3JdPVwidGl0bGVJZFwiPlxyXG4gICAgICAgICAgICB7eyB0KCdUSVRMRScpIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8Y3VpLWlucHV0LXRleHRcclxuICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cInRpdGxlSWRcIlxyXG4gICAgICAgICAgICBbY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXJdPVwidCgnQUREX1RJVExFJylcIlxyXG4gICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc1RpdGxlRXJyb3JcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy50aXRsZVwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICBAaWYgKGlzVGl0bGVFcnJvcikge1xyXG4gICAgICAgICAgICA8Y3VpLWdlbmVyYWwtY29udHJvbC1lcnJvci1oaW50IFtjb250cm9sXT1cImZvcm0uY29udHJvbHMudGl0bGVcIiBbaXNWaXNpYmxlXT1cInRydWVcIiAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvY3VpLWZvcm0tZmllbGQ+XHJcbiAgICA8Y3VpLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPGxhYmVsIGN1aUxhYmVsIFtpc1JlcXVpcmVkXT1cInRydWVcIiBbZm9yXT1cImRlc2NyaXB0aW9uSWRcIj5cclxuICAgICAgICAgICAge3sgdCgnU0hPUlRfREVTQ1JJUFRJT04nKSB9fVxyXG4gICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgIDxjdWktaW5wdXQtdGV4dFxyXG4gICAgICAgICAgICBbY3VpVGV4dEZpZWxkSWRdPVwiZGVzY3JpcHRpb25JZFwiXHJcbiAgICAgICAgICAgIGN1aVRleHRGaWVsZFBsYWNlaG9sZGVyPVwie3t0KCdTSE9SVF9ERVNDUklQVElPTicpfX0uLi5cIlxyXG4gICAgICAgICAgICBbY3VpVGV4dEZpZWxkSXNFcnJvcl09XCJpc0Rlc2NyaXB0aW9uRXJyb3JcIlxyXG4gICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZm9ybS5jb250cm9scy5kZXNjcmlwdGlvblwiXHJcbiAgICAgICAgLz5cclxuICAgICAgICBAaWYgKGlzRGVzY3JpcHRpb25FcnJvcikge1xyXG4gICAgICAgICAgICA8Y3VpLWdlbmVyYWwtY29udHJvbC1lcnJvci1oaW50IFtjb250cm9sXT1cImZvcm0uY29udHJvbHMuZGVzY3JpcHRpb25cIiBbaXNWaXNpYmxlXT1cInRydWVcIiAvPlxyXG4gICAgICAgIH1cclxuICAgIDwvY3VpLWZvcm0tZmllbGQ+XHJcbiAgICA8c2VjdGlvbiBjbGFzcz1cImZpbGVcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7IHQoJ1RIVU1CTkFJTCcpIH19PC9zcGFuPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fdXBsb2FkXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3VwbG9hZC1maWxlXCI+XHJcbiAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lOyBhcyBmaWxlSWQpIHtcclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbWFnZVwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImltYWdlX19uYW1lXCI+e3sgdGh1bWJuYWlsKCk/Lm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwhLS0gVE9ETzogbmdTcmMgLS0+XHJcbiAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJpbWFnZV9fdmlld1wiIFtzcmNdPVwidGh1bWJuYWlsVXJsKClcIiBoZWlnaHQ9XCIxMjBcIiB3aWR0aD1cIjE4NFwiIGFsdD1cIlRodW1ibmFpbFwiIC8+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIH1cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19pbmZvXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjdWlCdXR0b24gYXBwZWFyYW5jZT1cIm91dGxpbmVkLWdyYXlcIiBzaXplPVwieHhzXCIgaWNvbj1cImN1aUljb25VcGxvYWRcIlxyXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uU2VsZWN0RmlsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyB1cGxvYWRCdXR0b25OYW1lKCkgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgQGlmICh0aHVtYm5haWwoKT8ubmFtZSkge1xyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRlbnRfX3JlbW92ZS1idXR0b25cIiBjdWlCdXR0b24gYXBwZWFyYW5jZT1cImxpbmtcIiBzaXplPVwic21cIiB0eXBlPVwiYnV0dG9uXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25SZW1vdmVUaHVtYm5haWwoKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IHQoJ1JFTU9WRScpIH19XHJcbiAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbnRlbnRfX2FjY2VwdGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnQUNDRVBURUQnKSB9fTogSlBHLCBKUEVHLCBQTkcsIE1QNCB7eyB0KCdVUF9UTycpIH19IDIwTUJcclxuICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvc2VjdGlvbj5cclxuICAgIEBpZiAoZWRpdG9ySWQoKTsgYXMgZWRpdG9ySWQpIHtcclxuICAgICAgICA8Y3VpLWVkaXRvci1ibG9ja1xyXG4gICAgICAgICAgICBbdGl0bGVdPVwiZm9ybS5jb250cm9scy50aXRsZS52YWx1ZSB8fCB0aXRsZSgpXCJcclxuICAgICAgICAgICAgW2NvbmZpZ109XCJjb25maWcoKVwiXHJcbiAgICAgICAgICAgIFtlZGl0b3JJZF09XCJlZGl0b3JJZFwiXHJcbiAgICAgICAgICAgIFtyZXF1aXJlZF09XCJ0cnVlXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJlZGl0b3JcIlxyXG4gICAgICAgICAgICAoZWRpdG9yRW1wdHkpPVwib25FZGl0b3JFbXB0eSgkZXZlbnQpXCJcclxuICAgICAgICA+PC9jdWktZWRpdG9yLWJsb2NrPlxyXG4gICAgfVxyXG4gIDwvc2VjdGlvbj5cclxuPC9uZy1jb250YWluZXI+XHJcbiJdfQ==
249
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbGl0eS1pbmZvLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LWluZm8vdXRpbGl0eS1pbmZvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvcmUvd2lkZ2V0cy91dGlsaXR5LWluZm8vdXRpbGl0eS1pbmZvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFFBQVEsRUFDUixVQUFVLEVBQ1YsTUFBTSxFQUNOLFVBQVUsRUFDVixNQUFNLEVBQ04sS0FBSyxFQUNMLE1BQU0sRUFDTixNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0UsT0FBTyxFQUFFLGtCQUFrQixFQUFrQyxNQUFNLGNBQWMsQ0FBQztBQUNsRixPQUFPLEVBQUUsWUFBWSxFQUFvQixNQUFNLGNBQWMsQ0FBQztBQUM5RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsWUFBWSxFQUFFLEdBQUcsRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTlELE9BQU8sRUFDSCxrQkFBa0IsRUFDbEIsZUFBZSxFQUNmLGVBQWUsRUFDZixrQkFBa0IsRUFDbEIsYUFBYSxFQUNiLGNBQWMsRUFDZCxjQUFjLEVBQ2pCLE1BQU0sa0JBQWtCLENBQUM7QUFDMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQzlDLE9BQU8sRUFBRSx1QkFBdUIsRUFBbUIsTUFBTSxjQUFjLENB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QUF1QjtrQkFwQm5DLFNBQVM7K0JBQ0ksa0JBQWtCLFdBQ25CO3dCQUNMLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCxjQUFjO3dCQUNkLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQzt3QkFDekMsbUNBQW1DO3dCQUNuQyxtQkFBbUI7d0JBQ25CLGtCQUFrQjt3QkFDbEIsVUFBVTtxQkFDYixjQUNXLElBQUksbUJBR0MsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICAgIENvbXBvbmVudCxcclxuICAgIGNvbXB1dGVkLFxyXG4gICAgRGVzdHJveVJlZixcclxuICAgIGVmZmVjdCxcclxuICAgIGZvcndhcmRSZWYsXHJcbiAgICBpbmplY3QsXHJcbiAgICBpbnB1dCxcclxuICAgIG91dHB1dCxcclxuICAgIHNpZ25hbFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XHJcbmltcG9ydCB7IE5vbk51bGxhYmxlRm9ybUJ1aWxkZXIsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEN1aUZyYW1lQXBpU2VydmljZSwgRnJhZ21lbnRUeXBlLCBSZXNvdXJjZUZyYWdtZW50IH0gZnJvbSAnQGN1YnktdWkvYXBpJztcclxuaW1wb3J0IHsgQ3VpSWRTZXJ2aWNlLCB0eXBlIEN1aU51bGxhYmxlIH0gZnJvbSAnQGN1YnktdWkvY2RrJztcclxuaW1wb3J0IHsgVHJhbnNsb2NvRGlyZWN0aXZlLCBUcmFuc2xvY29TZXJ2aWNlIH0gZnJvbSAnQGpzdmVyc2UvdHJhbnNsb2NvJztcclxuaW1wb3J0IHsgZGVib3VuY2VUaW1lLCBtYXAsIHBhaXJ3aXNlLCBzdGFydFdpdGggfSBmcm9tICdyeGpzJztcclxuXHJcbmltcG9ydCB7XHJcbiAgICBDdWlBY2NvcmRpb25Nb2R1bGUsXHJcbiAgICBDdWlBbGVydFNlcnZpY2UsXHJcbiAgICBDdWlCdXR0b25Nb2R1bGUsXHJcbiAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICBDdWlIaW50TW9kdWxlLFxyXG4gICAgQ3VpSW5wdXRNb2R1bGUsXHJcbiAgICBDdWlMYWJlbE1vZHVsZVxyXG59IGZyb20gJy4uLy4uL2NvbXBvbmVudHMnO1xyXG5pbXBvcnQgeyBDdWlUb29sdGlwIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XHJcbmltcG9ydCB7IEN1aUVkaXRvckJsb2NrQ29tcG9uZW50LCBDdWlFZGl0b3JDb25maWcgfSBmcm9tICcuLi8uLi9lZGl0b3InO1xyXG5pbXBvcnQgeyBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyB9IGZyb20gJy4uLy4uL3V0aWxzJztcclxuaW1wb3J0IHsgQ3VpR2VuZXJhbENvbnRyb2xFcnJvckhpbnRDb21wb25lbnQgfSBmcm9tICcuLi9nZW5lcmFsLWNvbnRyb2wtZXJyb3ItaGludCc7XHJcbmltcG9ydCB7IEN1aVV0aWxpdHlGb3JtR3JvdXAsIEN1aVV0aWxpdHlGb3JtVmFsdWVzIH0gZnJvbSAnLi91dGlsaXR5LWluZm8ub3B0aW9ucyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAnY3VpLXV0aWxpdHktaW5mbycsXHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQ3VpQWNjb3JkaW9uTW9kdWxlLFxyXG4gICAgICAgIEN1aUJ1dHRvbk1vZHVsZSxcclxuICAgICAgICBDdWlGb3JtRmllbGRNb2R1bGUsXHJcbiAgICAgICAgQ3VpSGludE1vZHVsZSxcclxuICAgICAgICBDdWlJbnB1dE1vZHVsZSxcclxuICAgICAgICBDdWlMYWJlbE1vZHVsZSxcclxuICAgICAgICBmb3J3YXJkUmVmKCgpID0+IEN1aUVkaXRvckJsb2NrQ29tcG9uZW50KSxcclxuICAgICAgICBDdWlHZW5lcmFsQ29udHJvbEVycm9ySGludENvbXBvbmVudCxcclxuICAgICAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxyXG4gICAgICAgIFRyYW5zbG9jb0RpcmVjdGl2ZSxcclxuICAgICAgICBDdWlUb29sdGlwXHJcbiAgICBdLFxyXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91dGlsaXR5LWluZm8uY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmw6ICcuL3V0aWxpdHktaW5mby5jb21wb25lbnQuc2NzcycsXHJcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VpVXRpbGl0eUluZm9Db21wb25lbnQge1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95ID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb3JtQnVpbGRlciA9IGluamVjdChOb25OdWxsYWJsZUZvcm1CdWlsZGVyKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsb2NvU2VydmljZSA9IGluamVjdChUcmFuc2xvY29TZXJ2aWNlKTtcclxuICAgIHByaXZhdGUgcmVhZG9ubHkgZnJhbWVBcGlTZXJ2aWNlID0gaW5qZWN0KEN1aUZyYW1lQXBpU2VydmljZSk7XHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGN1aUFsZXJ0U2VydmljZSA9IGluamVjdChDdWlBbGVydFNlcnZpY2UpO1xyXG4gICAgcHJpdmF0ZSByZWFkb25seSBjdWlJZFNlcnZpY2UgPSBpbmplY3QoQ3VpSWRTZXJ2aWNlKTtcclxuXHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgQ09OVFJPTF9ERUxBWSA9IDUwMDtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBNQVhfRklMRV9TSVpFID0gMjA5NzE1MjA7XHJcblxyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRpdGxlSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGRlc2NyaXB0aW9uSWQgPSB0aGlzLmN1aUlkU2VydmljZS5nZW5lcmF0ZSgpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGZvcm0gPSB0aGlzLmZvcm1CdWlsZGVyLmdyb3VwPEN1aVV0aWxpdHlGb3JtR3JvdXA+KHtcclxuICAgICAgICB0aXRsZTogdGhpcy5mb3JtQnVpbGRlci5jb250cm9sKCcnLCBjdWlDcmVhdGVEZWZhdWx0VmFsaWRhdG9ycyh7IGFzeW5jRGVsYXk6IHRoaXMuQ09OVFJPTF9ERUxBWSB9KSksXHJcbiAgICAgICAgZGVzY3JpcHRpb246IHRoaXMuZm9ybUJ1aWxkZXIuY29udHJvbCgnJywgY3VpQ3JlYXRlRGVmYXVsdFZhbGlkYXRvcnMoeyBhc3luY0RlbGF5OiB0aGlzLkNPTlRST0xfREVMQVkgfSkpXHJcbiAgICB9KTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uTW9kYWxPcGVuID0gc2lnbmFsKGZhbHNlKTtcclxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc0Rlc2NyaXB0aW9uRW1wdHkgPSBzaWduYWwoZmFsc2UpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVkaXRvcklkID0gc2lnbmFsPEN1aU51bGxhYmxlPHN0cmluZz4+KG51bGwpO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHRodW1ibmFpbCA9IHNpZ25hbDxDdWlOdWxsYWJsZTxSZXNvdXJjZUZyYWdtZW50Pj4obnVsbCk7XHJcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgdGh1bWJuYWlsVXJsID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHRodW1ibmFpbCA9IHRoaXMudGh1bWJuYWlsKCk7XHJcblxyXG4gICAgICAgIGlmICh0aHVtYm5haWw/LnJlc291cmNlKSB7XHJcbiAgICAgICAgICAgIHJldHVybiB0aHVtYm5haWwucmVzb3VyY2U7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy5iYXNlUmVzb3VyY2VVcmwoKSArIHRodW1ibmFpbCEuZmlsZUlkITtcclxuICAgIH0pO1xyXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IHVwbG9hZEJ1dHRvbk5hbWUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICAgICAgY29uc3QgdGh1bWJuYWlsID0gdGhpcy50aHVtYm5haWwoKTtcclxuXHJcbiAgICAgICAgaWYgKHRodW1ibmFpbD8ubmFtZSkge1xyXG4gICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnUkVQTEFDRV9GSUxFJyk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xvY29TZXJ2aWNlLnRyYW5zbGF0ZSgnVVBMT0FEX0ZJTEUnKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHByb3RlY3RlZCBoZWFkaW5nOiBDdWlOdWxsYWJsZTxzdHJpbmc+ID0gbnVsbDtcclxuXHJcbiAgICBwcm90ZWN0ZWQgZ2V0IGNvbnRyb2xzKCk6IEN1aVV0aWxpdHlGb3JtR3JvdXAge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZvcm0uY29udHJvbHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIGdldCBpc1RpdGxlRXJyb3IoKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuY29udHJvbHMudGl0bGUuaW52YWxpZCAmJiB0aGlzLmNvbnRyb2xzLnRpdGxlLmRpcnR5O1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBnZXQgaXNEZXNjcmlwdGlvbkVycm9yKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbnRyb2xzLmRlc2NyaXB0aW9uLmludmFsaWQgJiYgdGhpcy5jb250cm9scy5kZXNjcmlwdGlvbi5kaXJ0eTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGl0bGUgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZGVzY3JpcHRpb24gPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZnJhbWVySWQgPSBpbnB1dC5yZXF1aXJlZDxzdHJpbmc+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgYmFzZVJlc291cmNlVXJsID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IGNvbmZpZyA9IGlucHV0LnJlcXVpcmVkPEN1aUVkaXRvckNvbmZpZz4oKTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgZm9ybUNoYW5nZWQgPSBvdXRwdXQ8UGFydGlhbDxDdWlVdGlsaXR5Rm9ybVZhbHVlcz4+KCk7XHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgaXNGb3JtVmFsaWRDaGFuZ2VkID0gb3V0cHV0PGJvb2xlYW4+KCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VXRpbGl0eUVmZmVjdCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByb3RlY3RlZCBvblNlbGVjdEZpbGUoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgaW5wdXQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdpbnB1dCcpO1xyXG4gICAgICAgIGlucHV0LnR5cGUgPSAnZmlsZSc7XHJcbiAgICAgICAgaW5wdXQuYWNjZXB0ID0gJ2ltYWdlL2pwZywgaW1hZ2UvanBlZywgaW1hZ2UvcG5nLCB2aWRlby9tcDQnO1xyXG5cclxuICAgICAgICBpbnB1dC5vbmNoYW5nZSA9ICgpOiB2b2lkID0+IHtcclxuICAgICAgICAgICAgY29uc3QgZmlsZXMgPSBpbnB1dC5maWxlcztcclxuXHJcbiAgICAgICAgICAgIGlmICghZmlsZXM/Lmxlbmd0aCkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmdldEZpbGUoZmlsZXMpO1xyXG4gICAgICAgIH07XHJcblxyXG4gICAgICAgIGlucHV0LmNsaWNrKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJvdGVjdGVkIG9uRWRpdG9yRW1wdHkoaXNFbXB0eTogYm9vbGVhbik6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbkVtcHR5LnNldChpc0VtcHR5KTtcclxuICAgICAgICB0aGlzLmlzRm9ybVZhbGlkQ2hhbmdlZC5lbWl0KHRoaXMuY2hlY2tGb3JtVmFsaWRhdGlvbigpKTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25SZW1vdmVUaHVtYm5haWwoKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudElkID0gdGhpcy50aHVtYm5haWwoKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS5kZWxldGVSZXNvdXJjZShmcmFtZUlkLCBmcmFnbWVudElkKS5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBmaWxlSWQ6IG51bGwsIG5hbWU6IG51bGwsIHJlc291cmNlOiBudWxsIH0pKTtcclxuICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBwcm90ZWN0ZWQgb25Ub2dnbGVEZXNjcmlwdGlvbk1vZGFsKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuaXNEZXNjcmlwdGlvbk1vZGFsT3Blbi51cGRhdGUoKHByZXYpID0+ICFwcmV2KTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRVdGlsaXR5RWZmZWN0KCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGVmZmVjdFJlZiA9IGVmZmVjdCgoKSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHRpdGxlID0gdGhpcy50aXRsZSgpO1xyXG5cclxuICAgICAgICAgICAgaWYgKCF0aXRsZSkge1xyXG4gICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICB0aGlzLmluaXRGb3JtU3Vic2NyaXB0aW9ucygpO1xyXG4gICAgICAgICAgICB0aGlzLmluaXRGcmFtZUZyYWdtZW50cygpO1xyXG4gICAgICAgICAgICBlZmZlY3RSZWYuZGVzdHJveSgpO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEZvcm1TdWJzY3JpcHRpb25zKCk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMuZm9ybS5zZXRWYWx1ZSh7IHRpdGxlOiB0aGlzLnRpdGxlKCksIGRlc2NyaXB0aW9uOiB0aGlzLmRlc2NyaXB0aW9uKCkgfSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm0uc3RhdHVzQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmlzRm9ybVZhbGlkQ2hhbmdlZC5lbWl0KHRoaXMuY2hlY2tGb3JtVmFsaWRhdGlvbigpKSk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWxEZXN0cm95ZWQodGhpcy5kZXN0cm95KSxcclxuICAgICAgICAgICAgICAgIHN0YXJ0V2l0aCh0aGlzLmZvcm0udmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgcGFpcndpc2UoKSxcclxuICAgICAgICAgICAgICAgIGRlYm91bmNlVGltZSh0aGlzLkNPTlRST0xfREVMQVkpLFxyXG4gICAgICAgICAgICAgICAgbWFwKChbcHJldiwgY3VycmVudF0pID0+IHRoaXMuY29tcGFyZUZvcm1WYWx1ZXMoW3ByZXYsIGN1cnJlbnRdKSlcclxuICAgICAgICAgICAgKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKCFPYmplY3Qua2V5cyh2YWx1ZSkubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHRoaXMuZm9ybUNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEZyYW1lRnJhZ21lbnRzKCk6IHZvaWQge1xyXG4gICAgICAgIGNvbnN0IGZyYW1lSWQgPSB0aGlzLmZyYW1lcklkKCk7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB0aGlzLmZyYW1lQXBpU2VydmljZS5nZXRGcmFtZShmcmFtZUlkKS5zdWJzY3JpYmUoKGZyYW1lKSA9PiB7XHJcbiAgICAgICAgICAgIGZyYW1lLmZyYWdtZW50cy5mb3JFYWNoKChmcmFnbWVudCkgPT4ge1xyXG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgPT09IEZyYWdtZW50VHlwZS5qVGV4dCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuZWRpdG9ySWQuc2V0KGZyYWdtZW50Py5pZCk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGZyYWdtZW50LnR5cGUgPT09IEZyYWdtZW50VHlwZS5yZXNvdXJjZUZpbGUpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnNldFJlc291cmNlRmlsZShmcmFnbWVudCBhcyBSZXNvdXJjZUZyYWdtZW50KTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjb21wYXJlRm9ybVZhbHVlcyhbcHJldkdyb3VwLCBjdXJyZW50R3J1b3BdOiBQYXJ0aWFsPEN1aVV0aWxpdHlGb3JtVmFsdWVzPltdKTogUGFydGlhbDxDdWlVdGlsaXR5Rm9ybVZhbHVlcz4ge1xyXG4gICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhjdXJyZW50R3J1b3ApIGFzIChrZXlvZiBDdWlVdGlsaXR5Rm9ybUdyb3VwKVtdO1xyXG4gICAgICAgIGNvbnN0IGNoYW5nZWRGaWVsZHM6IFJlY29yZDxzdHJpbmcsIHVua25vd24+ID0ge307XHJcblxyXG4gICAgICAgIGtleXMuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IHByZXYgPSBwcmV2R3JvdXBba2V5XTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudCA9IGN1cnJlbnRHcnVvcFtrZXldO1xyXG5cclxuICAgICAgICAgICAgaWYgKHByZXYgPT09IGN1cnJlbnQgfHwgdGhpcy5jb250cm9sc1trZXldLmludmFsaWQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY2hhbmdlZEZpZWxkc1trZXldID0gY3VycmVudDtcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGNoYW5nZWRGaWVsZHM7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBzZXRSZXNvdXJjZUZpbGUocmVzb3VyY2U6IFJlc291cmNlRnJhZ21lbnQpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCB1cmwgPSB0aGlzLmJhc2VSZXNvdXJjZVVybCgpICsgcmVzb3VyY2UuZmlsZUlkITtcclxuXHJcbiAgICAgICAgdGhpcy50aHVtYm5haWwuc2V0KHJlc291cmNlKTtcclxuXHJcbiAgICAgICAgaWYgKCF1cmwgfHwgcmVzb3VyY2U/Lm5hbWU/LnNwbGl0KCcuJykucG9wKCkgIT09ICdtcDQnKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmwpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RmlsZShmaWxlczogRmlsZUxpc3QpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBmaWxlID0gZmlsZXMuaXRlbSgwKTtcclxuXHJcbiAgICAgICAgaWYgKCFmaWxlKSB7XHJcbiAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmIChmaWxlLnNpemUgPiB0aGlzLk1BWF9GSUxFX1NJWkUpIHtcclxuICAgICAgICAgICAgdGhpcy5jdWlBbGVydFNlcnZpY2VcclxuICAgICAgICAgICAgICAgIC5vcGVuKHRoaXMudHJhbnNsb2NvU2VydmljZS50cmFuc2xhdGUoJ0lOVkFMSURfRklMRV9TSVpFJyksIHtcclxuICAgICAgICAgICAgICAgICAgICBzdGF0dXM6ICdlcnJvcidcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcblxyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBpc1ZpZGVvID0gZmlsZS5uYW1lLnNwbGl0KCcuJykuYXQoLTEpID09PSAnbXA0JztcclxuICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGZpbGUpO1xyXG5cclxuICAgICAgICBpZiAoaXNWaWRlbykge1xyXG4gICAgICAgICAgICB0aGlzLmdldENhcHR1cmVGcm9tVmlkZW8odXJsLCBmaWxlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICB0aGlzLnRodW1ibmFpbC51cGRhdGUoKHByZXYpID0+ICh7IC4uLnByZXYhLCBuYW1lOiBmaWxlLm5hbWUsIHJlc291cmNlOiB1cmwgfSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgdGhpcy51cGxvYWRGaWxlKGZpbGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgdXBsb2FkRmlsZShmaWxlOiBGaWxlKTogdm9pZCB7XHJcbiAgICAgICAgY29uc3QgZnJhbWVJZCA9IHRoaXMuZnJhbWVySWQoKTtcclxuICAgICAgICBjb25zdCBmcmFnbWVudElkID0gdGhpcy50aHVtYm5haWwoKT8uaWQ7XHJcblxyXG4gICAgICAgIGlmICghZnJhbWVJZCB8fCAhZnJhZ21lbnRJZCkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBjb25zdCBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZCgncmVzb3VyY2UnLCBmaWxlKTtcclxuXHJcbiAgICAgICAgdGhpcy5mcmFtZUFwaVNlcnZpY2UudXBsb2FkUmVzb3VyY2UoZm9ybURhdGEsIGZyYW1lSWQsIGZyYWdtZW50SWQpLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0Q2FwdHVyZUZyb21WaWRlbyh1cmw6IHN0cmluZywgZmlsZT86IEZpbGUpOiB2b2lkIHtcclxuICAgICAgICBjb25zdCBjYW52YXMgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdjYW52YXMnKSBhcyBIVE1MQ2FudmFzRWxlbWVudDtcclxuICAgICAgICBjb25zdCB2aWRlbyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3ZpZGVvJykgYXMgSFRNTFZpZGVvRWxlbWVudDtcclxuXHJcbiAgICAgICAgdmlkZW8uc3JjID0gdXJsO1xyXG4gICAgICAgIHZpZGVvLmN1cnJlbnRUaW1lID0gMTtcclxuICAgICAgICBjYW52YXMud2lkdGggPSAxODQ7XHJcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IDEyMDtcclxuXHJcbiAgICAgICAgdmlkZW8ub25sb2FkZWRkYXRhID0gKCk6IHZvaWQgPT4ge1xyXG4gICAgICAgICAgICBjb25zdCBjb250ZXh0ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XHJcblxyXG4gICAgICAgICAgICBpZiAoIWNvbnRleHQpIHtcclxuICAgICAgICAgICAgICAgIHJldHVybjtcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgY29udGV4dC5kcmF3SW1hZ2UodmlkZW8sIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XHJcblxyXG4gICAgICAgICAgICBjYW52YXMudG9CbG9iKChibG9iKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBpZiAoIWJsb2IpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgY29uc3QgdmlkZW9DYXB0dXJlVXJsID0gVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcclxuICAgICAgICAgICAgICAgIHRoaXMudGh1bWJuYWlsLnVwZGF0ZSgocHJldikgPT4gKHtcclxuICAgICAgICAgICAgICAgICAgICAuLi5wcmV2ISxcclxuICAgICAgICAgICAgICAgICAgICBuYW1lOiAoZmlsZT8ubmFtZSB8fCBwcmV2Py5uYW1lKSEsXHJcbiAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IHZpZGVvQ2FwdHVyZVVybFxyXG4gICAgICAgICAgICAgICAgfSkpO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9O1xyXG5cclxuICAgICAgICB2aWRlby5sb2FkKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBjaGVja0Zvcm1WYWxpZGF0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgICAgIHJldHVybiAhdGhpcy5pc0Rlc2NyaXB0aW9uRW1wdHkoKSAmJiAhdGhpcy5mb3JtLmludmFsaWQ7XHJcbiAgICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqdHJhbnNsb2NvPVwibGV0IHRcIj5cclxuICA8c2VjdGlvbiBjbGFzcz1cImNvbnRlbnRcIj5cclxuICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICA8bGFiZWwgY3VpTGFiZWwgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiIFtmb3JdPVwidGl0bGVJZFwiPlxyXG4gICAgICAgICAgICB7eyB0KCdUSVRMRScpIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICA8Y3VpLWlucHV0LXRleHRcclxuICAgICAgICAgICAgW2N1aVRleHRGaWVsZElkXT1cInRpdGxlSWRcIlxyXG4gICAgICAgICAgICBbY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXJdPVwidCgnQUREX0FfVElUTEUnKVwiXHJcbiAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJc0Vycm9yXT1cImlzVGl0bGVFcnJvclwiXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLnRpdGxlXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIEBpZiAoaXNUaXRsZUVycm9yKSB7XHJcbiAgICAgICAgICAgIDxjdWktZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQgW2NvbnRyb2xdPVwiZm9ybS5jb250cm9scy50aXRsZVwiIFtpc1Zpc2libGVdPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9jdWktZm9ybS1maWVsZD5cclxuICAgIDxjdWktZm9ybS1maWVsZD5cclxuICAgICAgICA8bGFiZWwgY3VpTGFiZWwgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiIFtmb3JdPVwiZGVzY3JpcHRpb25JZFwiPlxyXG4gICAgICAgICAgICB7eyB0KCdTSE9SVF9ERVNDUklQVElPTicpIH19XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgPGN1aS1pbnB1dC10ZXh0XHJcbiAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJZF09XCJkZXNjcmlwdGlvbklkXCJcclxuICAgICAgICAgICAgY3VpVGV4dEZpZWxkUGxhY2Vob2xkZXI9XCJ7e3QoJ1NIT1JUX0RFU0NSSVBUSU9OJyl9fS4uLlwiXHJcbiAgICAgICAgICAgIFtjdWlUZXh0RmllbGRJc0Vycm9yXT1cImlzRGVzY3JpcHRpb25FcnJvclwiXHJcbiAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJmb3JtLmNvbnRyb2xzLmRlc2NyaXB0aW9uXCJcclxuICAgICAgICAvPlxyXG4gICAgICAgIEBpZiAoaXNEZXNjcmlwdGlvbkVycm9yKSB7XHJcbiAgICAgICAgICAgIDxjdWktZ2VuZXJhbC1jb250cm9sLWVycm9yLWhpbnQgW2NvbnRyb2xdPVwiZm9ybS5jb250cm9scy5kZXNjcmlwdGlvblwiIFtpc1Zpc2libGVdPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgfVxyXG4gICAgPC9jdWktZm9ybS1maWVsZD5cclxuICAgIDxzZWN0aW9uIGNsYXNzPVwiZmlsZVwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3sgdCgnVEhVTUJOQUlMJykgfX08L3NwYW4+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X191cGxvYWRcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGVudF9fdXBsb2FkLWZpbGVcIj5cclxuICAgICAgICAgIEBpZiAodGh1bWJuYWlsKCk/Lm5hbWU7IGFzIGZpbGVJZCkge1xyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImltYWdlXCI+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiaW1hZ2VfX25hbWVcIj57eyB0aHVtYm5haWwoKT8ubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgPCEtLSBUT0RPOiBuZ1NyYyAtLT5cclxuICAgICAgICAgICAgPGltZyBjbGFzcz1cImltYWdlX192aWV3XCIgW3NyY109XCJ0aHVtYm5haWxVcmwoKVwiIGhlaWdodD1cIjEyMFwiIHdpZHRoPVwiMTg0XCIgYWx0PVwiVGh1bWJuYWlsXCIgLz5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX2luZm9cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGN1aUJ1dHRvbiBhcHBlYXJhbmNlPVwib3V0bGluZWQtZ3JheVwiIHNpemU9XCJ4eHNcIiBpY29uPVwiY3VpSWNvblVwbG9hZFwiXHJcbiAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TZWxlY3RGaWxlKClcIj5cclxuICAgICAgICAgICAgICAgIHt7IHVwbG9hZEJ1dHRvbk5hbWUoKSB9fVxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICBAaWYgKHRodW1ibmFpbCgpPy5uYW1lKSB7XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiY29udGVudF9fcmVtb3ZlLWJ1dHRvblwiIGN1aUJ1dHRvbiBhcHBlYXJhbmNlPVwibGlua1wiIHNpemU9XCJzbVwiIHR5cGU9XCJidXR0b25cIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblJlbW92ZVRodW1ibmFpbCgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgdCgnUkVNT1ZFJykgfX1cclxuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29udGVudF9fYWNjZXB0ZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyB0KCdBQ0NFUFRFRCcpIH19OiBKUEcsIEpQRUcsIFBORywgTVA0IHt7IHQoJ1VQX1RPJykgfX0gMjBNQlxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9zZWN0aW9uPlxyXG4gICAgQGlmIChlZGl0b3JJZCgpOyBhcyBlZGl0b3JJZCkge1xyXG4gICAgICAgIDxjdWktZWRpdG9yLWJsb2NrXHJcbiAgICAgICAgICAgIFt0aXRsZV09XCJmb3JtLmNvbnRyb2xzLnRpdGxlLnZhbHVlIHx8IHRpdGxlKClcIlxyXG4gICAgICAgICAgICBbY29uZmlnXT1cImNvbmZpZygpXCJcclxuICAgICAgICAgICAgW2VkaXRvcklkXT1cImVkaXRvcklkXCJcclxuICAgICAgICAgICAgW3JlcXVpcmVkXT1cInRydWVcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImVkaXRvclwiXHJcbiAgICAgICAgICAgIChlZGl0b3JFbXB0eSk9XCJvbkVkaXRvckVtcHR5KCRldmVudClcIlxyXG4gICAgICAgID48L2N1aS1lZGl0b3ItYmxvY2s+XHJcbiAgICB9XHJcbiAgPC9zZWN0aW9uPlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
@@ -8051,7 +8051,7 @@ class CuiUtilityInfoComponent {
8051
8051
  return !this.isDescriptionEmpty() && !this.form.invalid;
8052
8052
  }
8053
8053
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityInfoComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8054
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityInfoComponent, isStandalone: true, selector: "cui-utility-info", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiAccordionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => CuiFormFieldComponent), selector: "cui-form-field" }, { kind: "ngmodule", type: i0.forwardRef(() => CuiHintModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiInputModule) }, { kind: "component", type: i0.forwardRef(() => CuiInputTextComponent), selector: "cui-input-text" }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldIdDirective), selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldPlaceholderDirective), selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldIsErrorDirective), selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiLabelModule) }, { kind: "component", type: i0.forwardRef(() => CuiLabelComponent), selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: i0.forwardRef(() => CuiEditorBlockComponent), selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "component", type: i0.forwardRef(() => CuiGeneralControlErrorHintComponent), selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i2$1.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => TranslocoDirective), selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8054
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: CuiUtilityInfoComponent, isStandalone: true, selector: "cui-utility-info", inputs: { title: { classPropertyName: "title", publicName: "title", isSignal: true, isRequired: true, transformFunction: null }, description: { classPropertyName: "description", publicName: "description", isSignal: true, isRequired: true, transformFunction: null }, framerId: { classPropertyName: "framerId", publicName: "framerId", isSignal: true, isRequired: true, transformFunction: null }, baseResourceUrl: { classPropertyName: "baseResourceUrl", publicName: "baseResourceUrl", isSignal: true, isRequired: true, transformFunction: null }, config: { classPropertyName: "config", publicName: "config", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { formChanged: "formChanged", isFormValidChanged: "isFormValidChanged" }, ngImport: i0, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"], dependencies: [{ kind: "ngmodule", type: i0.forwardRef(() => CuiAccordionModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiButtonModule) }, { kind: "component", type: i0.forwardRef(() => CuiButtonComponent), selector: "button[cuiButton], a[cuiButton]", inputs: ["shape", "disabled", "isLoaderShown", "icon", "iconRight", "appearance", "size"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiFormFieldModule) }, { kind: "component", type: i0.forwardRef(() => CuiFormFieldComponent), selector: "cui-form-field" }, { kind: "ngmodule", type: i0.forwardRef(() => CuiHintModule) }, { kind: "ngmodule", type: i0.forwardRef(() => CuiInputModule) }, { kind: "component", type: i0.forwardRef(() => CuiInputTextComponent), selector: "cui-input-text" }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldIdDirective), selector: "[cuiTextFieldId]", inputs: ["cuiTextFieldId"] }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldPlaceholderDirective), selector: "[cuiTextFieldPlaceholder]", inputs: ["cuiTextFieldPlaceholder"] }, { kind: "directive", type: i0.forwardRef(() => CuiTextFieldIsErrorDirective), selector: "[cuiTextFieldIsError]", inputs: ["cuiTextFieldIsError"] }, { kind: "ngmodule", type: i0.forwardRef(() => CuiLabelModule) }, { kind: "component", type: i0.forwardRef(() => CuiLabelComponent), selector: "label[cuiLabel]", inputs: ["isRequired"] }, { kind: "component", type: i0.forwardRef(() => CuiEditorBlockComponent), selector: "cui-editor-block", inputs: ["title", "editorId", "config", "required"], outputs: ["editorEmpty"] }, { kind: "component", type: i0.forwardRef(() => CuiGeneralControlErrorHintComponent), selector: "cui-general-control-error-hint", inputs: ["control", "isVisible"] }, { kind: "ngmodule", type: i0.forwardRef(() => ReactiveFormsModule) }, { kind: "directive", type: i0.forwardRef(() => i2$1.NgControlStatus), selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i0.forwardRef(() => i2$1.FormControlDirective), selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i0.forwardRef(() => TranslocoDirective), selector: "[transloco]", inputs: ["transloco", "translocoParams", "translocoScope", "translocoRead", "translocoPrefix", "translocoLang", "translocoLoadingTpl"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
8055
8055
  }
8056
8056
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CuiUtilityInfoComponent, decorators: [{
8057
8057
  type: Component,
@@ -8067,7 +8067,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
8067
8067
  ReactiveFormsModule,
8068
8068
  TranslocoDirective,
8069
8069
  CuiTooltip
8070
- ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"] }]
8070
+ ], standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *transloco=\"let t\">\r\n <section class=\"content\">\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"titleId\">\r\n {{ t('TITLE') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"titleId\"\r\n [cuiTextFieldPlaceholder]=\"t('ADD_A_TITLE')\"\r\n [cuiTextFieldIsError]=\"isTitleError\"\r\n [formControl]=\"form.controls.title\"\r\n />\r\n @if (isTitleError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.title\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <cui-form-field>\r\n <label cuiLabel [isRequired]=\"true\" [for]=\"descriptionId\">\r\n {{ t('SHORT_DESCRIPTION') }}\r\n </label>\r\n <cui-input-text\r\n [cuiTextFieldId]=\"descriptionId\"\r\n cuiTextFieldPlaceholder=\"{{t('SHORT_DESCRIPTION')}}...\"\r\n [cuiTextFieldIsError]=\"isDescriptionError\"\r\n [formControl]=\"form.controls.description\"\r\n />\r\n @if (isDescriptionError) {\r\n <cui-general-control-error-hint [control]=\"form.controls.description\" [isVisible]=\"true\" />\r\n }\r\n </cui-form-field>\r\n <section class=\"file\">\r\n <span class=\"title\">{{ t('THUMBNAIL') }}</span>\r\n <div class=\"content__upload\">\r\n <div class=\"content__upload-file\">\r\n @if (thumbnail()?.name; as fileId) {\r\n <div class=\"image\">\r\n <span class=\"image__name\">{{ thumbnail()?.name }}</span>\r\n <!-- TODO: ngSrc -->\r\n <img class=\"image__view\" [src]=\"thumbnailUrl()\" height=\"120\" width=\"184\" alt=\"Thumbnail\" />\r\n </div>\r\n }\r\n <div class=\"content__info\">\r\n <button type=\"button\" cuiButton appearance=\"outlined-gray\" size=\"xxs\" icon=\"cuiIconUpload\"\r\n (click)=\"onSelectFile()\">\r\n {{ uploadButtonName() }}\r\n </button>\r\n @if (thumbnail()?.name) {\r\n <button class=\"content__remove-button\" cuiButton appearance=\"link\" size=\"sm\" type=\"button\"\r\n (click)=\"onRemoveThumbnail()\">\r\n {{ t('REMOVE') }}\r\n </button>\r\n }\r\n\r\n <span class=\"content__accepted\">\r\n {{ t('ACCEPTED') }}: JPG, JPEG, PNG, MP4 {{ t('UP_TO') }} 20MB\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n @if (editorId(); as editorId) {\r\n <cui-editor-block\r\n [title]=\"form.controls.title.value || title()\"\r\n [config]=\"config()\"\r\n [editorId]=\"editorId\"\r\n [required]=\"true\"\r\n class=\"editor\"\r\n (editorEmpty)=\"onEditorEmpty($event)\"\r\n ></cui-editor-block>\r\n }\r\n </section>\r\n</ng-container>\r\n", styles: ["::ng-deep cui-dialog:has(.instruction-description-modal){inset:0;margin:auto;transform:none!important}:host{--editor-height: 650px;display:block}:host .editor{--max-editor-height: var(--editor-height)}.title{font-weight:500;font-size:14px;line-height:20px;display:flex;gap:2px}.title_required{color:var(--cui-danger)}.content{display:flex;flex-direction:column;gap:16px;padding:16px 24px}.content__upload{padding:12px 16px;border-radius:8px;border:1px solid var(--cui-base-200);background:var(--cui-base-10)}.content__info{display:flex;gap:8px;align-items:center;flex-wrap:wrap}.content__accepted{color:var(--cui-base-500)}.content__upload-file{display:flex;align-items:center;gap:8px}.content__upload-file input[type=file]{display:none}.content__remove-button ::ng-deep .c-content{color:var(--cui-danger)!important}.file{display:flex;flex-direction:column;gap:4px}.description_invalid{border:1px solid var(--cui-danger)}.image{position:relative;display:inline-block}.image__view{border-radius:8px;object-fit:cover}.image__name{position:absolute;top:6px;left:14px;color:var(--cui-base-0);overflow:hidden;text-overflow:ellipsis;white-space:nowrap;max-width:170px;z-index:1}.image:after{content:\"\";position:absolute;top:0;left:0;width:100%;height:100%;background-color:#0003;z-index:0;pointer-events:none;border-radius:8px}.button-save{margin-left:auto}.instruction-description-modal{text-transform:none}.empty{padding:16px;color:var(--cui-base-500);text-align:center}\n"] }]
8071
8071
  }], ctorParameters: () => [] });
8072
8072
 
8073
8073
  class CuiCheckListBlockService {