myrta-ui 1.1.77 → 1.1.78
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.
- package/esm2020/lib/components/button/button.component.mjs +17 -4
- package/esm2020/lib/components/button/button.enum.mjs +1 -1
- package/esm2020/lib/components/button/button.module.mjs +5 -4
- package/esm2020/lib/components/form/document-editor/document-editor.component.mjs +1 -1
- package/esm2020/lib/components/form/formula-editor/formula-editor.component.mjs +2 -2
- package/esm2020/lib/components/form/input-file/input-file.component.mjs +3 -3
- package/esm2020/lib/components/form/input-file-image/components/file-image-edit-modal/file-image-edit-modal.component.mjs +1 -1
- package/esm2020/lib/components/form/input-file-image/input-file-image.component.mjs +2 -2
- package/esm2020/lib/components/form/input-select/input-select.component.mjs +2 -2
- package/esm2020/lib/components/form/json-editor/json-editor.component.mjs +222 -0
- package/esm2020/lib/components/form/json-editor/json-editor.enum.mjs +2 -0
- package/esm2020/lib/components/form/json-editor/json-editor.module.mjs +26 -0
- package/esm2020/lib/components/form/json-editor/utils/jsoneditoroptions.mjs +17 -0
- package/esm2020/lib/components/gallery/components/gallery-confirm-modal/gallery-confirm-modal.component.mjs +1 -1
- package/esm2020/lib/components/gallery/gallery.component.mjs +1 -1
- package/esm2020/lib/components/modal/modal.component.mjs +2 -2
- package/esm2020/lib/components/pdf-viewer/pdf-viewer.component.mjs +12 -5
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/myrta-ui.mjs +298 -22
- package/fesm2015/myrta-ui.mjs.map +1 -1
- package/fesm2020/myrta-ui.mjs +298 -22
- package/fesm2020/myrta-ui.mjs.map +1 -1
- package/lib/components/button/button.component.d.ts +8 -2
- package/lib/components/button/button.enum.d.ts +1 -0
- package/lib/components/button/button.module.d.ts +2 -1
- package/lib/components/form/json-editor/json-editor.component.d.ts +58 -0
- package/lib/components/form/json-editor/json-editor.enum.d.ts +5 -0
- package/lib/components/form/json-editor/json-editor.module.d.ts +8 -0
- package/lib/components/form/json-editor/utils/jsoneditoroptions.d.ts +128 -0
- package/lib/components/pdf-viewer/pdf-viewer.component.d.ts +1 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -70,7 +70,7 @@ DocumentEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
|
|
|
70
70
|
useExisting: forwardRef(() => DocumentEditorComponent),
|
|
71
71
|
multi: true,
|
|
72
72
|
},
|
|
73
|
-
], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\n <mrx-button\n size=\"small\"\n type=\"secondary\"\n (mrxClick)=\"insertShortCode(shortCode)\"\n >{{ shortCode.viewName }}</mrx-button>\n </ng-container>\n <mrx-button\n *ngIf=\"isSliced\"\n size=\"small\"\n (mrxClick)=\"showAllShortCodes()\"\n >\u0415\u0449\u0435</mrx-button>\n </div>\n\n <div class=\"mrx-document-editor__editor mb-2\">\n <mrx-editor\n #editor\n [ngModel]=\"transformedValue\"\n [toolbar]=\"toolbar\"\n [customClasses]=\"customClasses\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [iframe]=\"true\"\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\n (ngModelChange)=\"updateValue($event)\"\n ></mrx-editor>\n </div>\n\n <div class=\"mrx-document-editor__preview\">\n <mrx-button\n size=\"medium\"\n type=\"secondary\"\n iconClass=\"icon-view\"\n [disabled]=\"!transformedValue\"\n (mrxClick)=\"openPreviewModal()\"\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\n </div>\n</div>\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }, { type: i3.EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "config", "defaultInlineStyle", "defaultActionOnPaste", "askBeforePasteHTML", "editHTMLDocumentMode", "askBeforePasteFromWord", "defaultMode", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed", "modelChange", "blurred"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
73
|
+
], viewQueries: [{ propertyName: "editor", first: true, predicate: ["editor"], descendants: true }], ngImport: i0, template: "<div class=\"mrx-document-editor\">\n <div class=\"mrx-document-editor__shortcode-buttons mb-2\">\n <ng-container *ngFor=\"let shortCode of sliceShortCodeButtons\">\n <mrx-button\n size=\"small\"\n type=\"secondary\"\n (mrxClick)=\"insertShortCode(shortCode)\"\n >{{ shortCode.viewName }}</mrx-button>\n </ng-container>\n <mrx-button\n *ngIf=\"isSliced\"\n size=\"small\"\n (mrxClick)=\"showAllShortCodes()\"\n >\u0415\u0449\u0435</mrx-button>\n </div>\n\n <div class=\"mrx-document-editor__editor mb-2\">\n <mrx-editor\n #editor\n [ngModel]=\"transformedValue\"\n [toolbar]=\"toolbar\"\n [customClasses]=\"customClasses\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [iframe]=\"true\"\n [editHTMLDocumentMode]=\"editHTMLDocumentMode\"\n (ngModelChange)=\"updateValue($event)\"\n ></mrx-editor>\n </div>\n\n <div class=\"mrx-document-editor__preview\">\n <mrx-button\n size=\"medium\"\n type=\"secondary\"\n iconClass=\"icon-view\"\n [disabled]=\"!transformedValue\"\n (mrxClick)=\"openPreviewModal()\"\n >\u041F\u0440\u0435\u0434\u043F\u0440\u043E\u0441\u043C\u043E\u0442\u0440</mrx-button>\n </div>\n</div>\n", styles: [".mrx-document-editor__shortcode-buttons{display:flex;flex-wrap:wrap;gap:var(--sizing-2)}\n"], components: [{ type: i2.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }, { type: i3.EditorComponent, selector: "mrx-editor", inputs: ["fields", "toolbar", "maxLength", "minHeight", "customClasses", "placeholder", "disabled", "readonly", "iframe", "config", "defaultInlineStyle", "defaultActionOnPaste", "askBeforePasteHTML", "editHTMLDocumentMode", "askBeforePasteFromWord", "defaultMode", "invalid", "invalidMessage", "checkInvalid"], outputs: ["changed", "modelChange", "blurred"] }], directives: [{ type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
74
74
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: DocumentEditorComponent, decorators: [{
|
|
75
75
|
type: Component,
|
|
76
76
|
args: [{ selector: 'mrx-document-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
@@ -290,14 +290,14 @@ FormulaEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0",
|
|
|
290
290
|
provide: NG_VALUE_ACCESSOR,
|
|
291
291
|
useExisting: forwardRef(() => FormulaEditorComponent),
|
|
292
292
|
multi: true
|
|
293
|
-
}], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"mrx-formula-editor\"\n [class.mrx-input-error]=\"getInvalid\"\n [class.-disabled]=\"disabled\"\n [class.-readonly]=\"readonly\"\n [class]=\"getClasses\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"visibleValue.trim() | safe\"\n #inputElement\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n [attr.data-ph]=\"placeholder\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown.enter)=\"onKeyup($event)\"\n (keydown.tab)=\"onKeyup($event)\"\n ></div>\n\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\n </div>\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\n <div class=\"mrx-formula-editor__popup--error\">\n {{ getErrorMessage }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let item of filteredList\"\n (click)=\"insertTag(item); $event.stopPropagation()\"\n >\n {{ item.dropLabel || item.label }}\n </div>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"mrx-formula-editor__popup--row\">\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\n </div>\n </ng-template>\n </div>\n </div>\n\n <mrx-error-message\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\n [invalidMessage]=\"getErrorMessage\"\n ></mrx-error-message>\n\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--
|
|
293
|
+
}], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true, static: true }], ngImport: i0, template: "<div\n class=\"mrx-formula-editor\"\n [class.mrx-input-error]=\"getInvalid\"\n [class.-disabled]=\"disabled\"\n [class.-readonly]=\"readonly\"\n [class]=\"getClasses\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"visibleValue.trim() | safe\"\n #inputElement\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n [attr.data-ph]=\"placeholder\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown.enter)=\"onKeyup($event)\"\n (keydown.tab)=\"onKeyup($event)\"\n ></div>\n\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\n </div>\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\n <div class=\"mrx-formula-editor__popup--error\">\n {{ getErrorMessage }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let item of filteredList\"\n (click)=\"insertTag(item); $event.stopPropagation()\"\n >\n {{ item.dropLabel || item.label }}\n </div>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"mrx-formula-editor__popup--row\">\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\n </div>\n </ng-template>\n </div>\n </div>\n\n <mrx-error-message\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\n [invalidMessage]=\"getErrorMessage\"\n ></mrx-error-message>\n\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--brand-bg-tertiary-hover, #FBF5EE)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"], components: [{ type: i1.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }, { type: i2.SaveStateComponent, selector: "mrx-save-state", inputs: ["type", "fields", "id"] }], directives: [{ type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "safe": i4.SafePipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
294
294
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FormulaEditorComponent, decorators: [{
|
|
295
295
|
type: Component,
|
|
296
296
|
args: [{ selector: 'mrx-formula-editor', changeDetection: ChangeDetectionStrategy.OnPush, providers: [{
|
|
297
297
|
provide: NG_VALUE_ACCESSOR,
|
|
298
298
|
useExisting: forwardRef(() => FormulaEditorComponent),
|
|
299
299
|
multi: true
|
|
300
|
-
}], template: "<div\n class=\"mrx-formula-editor\"\n [class.mrx-input-error]=\"getInvalid\"\n [class.-disabled]=\"disabled\"\n [class.-readonly]=\"readonly\"\n [class]=\"getClasses\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"visibleValue.trim() | safe\"\n #inputElement\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n [attr.data-ph]=\"placeholder\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown.enter)=\"onKeyup($event)\"\n (keydown.tab)=\"onKeyup($event)\"\n ></div>\n\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\n </div>\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\n <div class=\"mrx-formula-editor__popup--error\">\n {{ getErrorMessage }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let item of filteredList\"\n (click)=\"insertTag(item); $event.stopPropagation()\"\n >\n {{ item.dropLabel || item.label }}\n </div>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"mrx-formula-editor__popup--row\">\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\n </div>\n </ng-template>\n </div>\n </div>\n\n <mrx-error-message\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\n [invalidMessage]=\"getErrorMessage\"\n ></mrx-error-message>\n\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--
|
|
300
|
+
}], template: "<div\n class=\"mrx-formula-editor\"\n [class.mrx-input-error]=\"getInvalid\"\n [class.-disabled]=\"disabled\"\n [class.-readonly]=\"readonly\"\n [class]=\"getClasses\"\n>\n <div class=\"mrx-formula-editor__wrapper\">\n <div\n [innerHTML]=\"visibleValue.trim() | safe\"\n #inputElement\n class=\"mrx-formula-editor__box\"\n contenteditable=\"true\"\n [attr.data-ph]=\"placeholder\"\n (input)=\"onInput($event)\"\n (blur)=\"onBlur($event)\"\n (focus)=\"onFocus($event)\"\n (keydown.enter)=\"onKeyup($event)\"\n (keydown.tab)=\"onKeyup($event)\"\n ></div>\n\n <div class=\"mrx-formula-editor__clear\" *ngIf=\"canClean\" (click)=\"onClear()\">\n <div class=\"mrx-icon icon-close\" [class]=\"getIconClass\"></div>\n </div>\n\n <div class=\"mrx-formula-editor__popup\" *ngIf=\"isFocused\">\n <ng-container *ngIf=\"errorModel.isError && isFocused\">\n <div class=\"mrx-formula-editor__popup--error\">\n {{ getErrorMessage }}\n </div>\n </ng-container>\n <ng-container *ngIf=\"filteredList.length; else emptyList\">\n <div\n class=\"mrx-formula-editor__popup--row\"\n *ngFor=\"let item of filteredList\"\n (click)=\"insertTag(item); $event.stopPropagation()\"\n >\n {{ item.dropLabel || item.label }}\n </div>\n </ng-container>\n <ng-template #emptyList>\n <div class=\"mrx-formula-editor__popup--row\">\n \u041D\u0435\u0442 \u0440\u0435\u0437\u0443\u043B\u044C\u0442\u0430\u0442\u043E\u0432\n </div>\n </ng-template>\n </div>\n </div>\n\n <mrx-error-message\n *ngIf=\"getInvalid && getErrorMessage && !isFocused\"\n [invalidMessage]=\"getErrorMessage\"\n ></mrx-error-message>\n\n <mrx-save-state [id]=\"uuid\" [fields]=\"fields\"></mrx-save-state>\n</div>\n", styles: [".mrx-formula-editor{position:relative}.mrx-formula-editor__box{border:var(--border-width-default) solid var(--neutral-bg-stroke-default);border-radius:var(--border-radius-1, 4px);outline:none;color:var(--neutral-text-primary, #262626);transition:outline-width .2s,border .2s;-webkit-user-modify:read-write;overflow-wrap:break-word;-webkit-line-break:after-white-space}.mrx-formula-editor__box:focus,.mrx-formula-editor__box:active{outline:var(--neutral-bg-island-default) solid var(--border-width-focused)}.mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--neutral-bg-stroke-hover)}.mrx-formula-editor__wrapper{position:relative}.mrx-formula-editor__clear{position:absolute;top:12px;right:12px;cursor:pointer}.mrx-formula-editor__box ::ng-deep .tag{display:inline-flex;cursor:default;-webkit-user-modify:read-only}.mrx-formula-editor__box ::ng-deep .argument{border-radius:var(--border-radius-1, 4px);background:var(--brand-bg-secondary-default, #EDF5FF)}.mrx-formula-editor__box ::ng-deep .bracket{color:var(--neutral-text-tertiary, #71767E)}.mrx-formula-editor__box ::ng-deep .operator{color:var(--system-text-attention, #AC5C06)}.mrx-formula-editor__box ::ng-deep .number{color:var(--system-text-negative, #8E2100)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box{padding:5px 44px 5px var(--spacing-2, 8px);font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:36px}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-lg-font-family, \"PT Sans\");font-size:var(--body-lg-font-size, 16px);font-weight:var(--body-lg-font-weight, 400);line-height:var(--body-lg-line-height, 24px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-lg .mrx-formula-editor__box::ng-deep .tag.argument{padding:6px 12px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-md .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box{padding:5px 36px 5px var(--spacing-2, 8px);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:28px}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-large{font-family:var(--body-md-font-family, \"PT Sans\");font-size:var(--body-md-font-size, 14px);font-weight:var(--body-md-font-weight, 400);line-height:var(--body-md-line-height, 20px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.-medium{font-family:var(--body-sm-font-family, \"PT Sans\");font-size:var(--body-sm-font-size, 12px);font-weight:var(--body-sm-font-weight, 400);line-height:var(--body-sm-line-height, 16px)}.mrx-formula-editor.mrx-formula-editor-sm .mrx-formula-editor__box::ng-deep .tag.argument{padding:4px 8px;margin:0 2px}.mrx-formula-editor__popup{position:absolute;z-index:99;width:100%;border-radius:var(--border-radius-1);background:var(--neutral-bg-island-default, #F8F9FA);box-shadow:0 1px 4px #3a3a3a4d;background-color:#fff;max-height:240px;overflow-x:hidden;overflow-y:auto;margin-top:4px}.mrx-formula-editor__popup--error{padding:var(--spacing-2) var(--spacing-4);font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--system-text-negative, #8E2100)}.mrx-formula-editor__popup--row{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);padding:calc(var(--spacing-2) + var(--spacing-half)) var(--spacing-4);white-space:normal;transition:background-color .2s}.mrx-formula-editor__popup--row:hover{cursor:pointer;background-color:var(--brand-bg-tertiary-hover, #FBF5EE)!important}.mrx-formula-editor__box:empty:not(:focus):before{content:attr(data-ph);color:var(--neutral-text-tertiary, #71767E);padding-left:8px}.mrx-formula-editor.-disabled .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-tertiary, #71767E);pointer-events:none}.mrx-formula-editor.-readonly .mrx-formula-editor__box{background-color:var(--neutral-bg-disabled, #EEF0F4);color:var(--neutral-text-primary, #262626);pointer-events:none}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box{border-color:var(--system-bg-controls-negative-default);background-color:var(--system-bg-negative-secondary)}.mrx-formula-editor.mrx-input-checked-error .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-negative-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box{background-color:var(--system-bg-positive-secondary);border-color:var(--system-bg-controls-positive-default)}.mrx-formula-editor.mrx-input-checked-success .mrx-formula-editor__box:hover{border:var(--border-width-default) solid var(--system-bg-controls-positive-default)}\n"] }]
|
|
301
301
|
}], ctorParameters: function () { return [{ type: Document, decorators: [{
|
|
302
302
|
type: Inject,
|
|
303
303
|
args: [DOCUMENT]
|
|
@@ -295,10 +295,10 @@ export class InputFileComponent {
|
|
|
295
295
|
}
|
|
296
296
|
}
|
|
297
297
|
InputFileComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputFileComponent, deps: [{ token: i1.FileUploadService }], target: i0.ɵɵFactoryTarget.Component });
|
|
298
|
-
InputFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputFileComponent, selector: "mrx-input-file", inputs: { autoUpload: "autoUpload", required: "required", readonly: "readonly", viewOnly: "viewOnly", disabled: "disabled", bottomFiles: "bottomFiles", maxSize: "maxSize", maxFiles: "maxFiles", minFiles: "minFiles", formData: "formData", uploadEndPoint: "uploadEndPoint", deleteEndPoint: "deleteEndPoint", downloadEndPoint: "downloadEndPoint", fileNamePlaceholder: "fileNamePlaceholder", showInputWithError: "showInputWithError", showDeleteButton: "showDeleteButton", isTooltipValue: "isTooltipValue", isDownloadingFile: "isDownloadingFile", isHideListFiles: "isHideListFiles", target: "target", deleteConfirm: "deleteConfirm", innerTemplate: "innerTemplate", uploadAdditionalData: "uploadAdditionalData", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", messageTooManyFiles: "messageTooManyFiles", messageFileTooBig: "messageFileTooBig", messageEmptyFile: "messageEmptyFile", messageInvalidFileFormat: "messageInvalidFileFormat", placeholder: "placeholder", placeholderFileMaxSize: "placeholderFileMaxSize", placeholderFileFormat: "placeholderFileFormat", initFiles: ["files", "initFiles"], initAllowedExtensions: ["allowedExtensions", "initAllowedExtensions"] }, outputs: { filesChanged: "filesChanged", checkDroppedFile: "checkDroppedFile" }, ngImport: i0, template: "<div\n class=\"ng-form-file-input\"\n [class]=\"getClasses\"\n [class.mrx-input-error]=\"invalid\">\n <div class=\"form-row\" *ngIf=\"readonly; else notReadonly\">\n <div *ngIf=\"!files || files.length == 0\"\n class=\"col-sm-12 col-md-6\"\n >\n <div class=\"d-flex align-items-center color-tertiary\">\n <div class=\"mrx-icon icon-file icon-font-24 mr-2\"></div>\n <span>\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0435\u0442</span>\n </div>\n </div>\n\n <div class=\"col-12\">\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n >\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <a\n class=\"qq-upload-file-selector qq-upload-file\"\n [target]=\"getTarget\"\n [href]=\"downloadUrl(file)\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</a>\n </div>\n <div class=\"info\">\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </div>\n\n <ng-template #notReadonly>\n <ng-container *ngIf=\"!bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n\n <ngx-file-drop\n *ngIf=\"canAdd\"\n [className]=\"'ng-custom-file-input'\"\n [accept]=\"extensions || ''\"\n [disabled]=\"disabled\"\n [ngClass]=\"{'ng-custom-file-input--disabled': disabled}\"\n (onFileDrop)=\"dropped($event)\"\n >\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div\n class=\"ng-custom-file-input-content\"\n (click)=\"!disabled ? openFileSelector() : undefined\"\n >\n <div class=\"text-center\">\n <div class=\"ng-custom-file-input-content--placeholder mb-2\">\n {{placeholder}}\n </div>\n <div class=\"ng-custom-file-input-content--size\">\n {{placeholderFileMaxSize}} {{formatBytes(maxSize)}}\n </div>\n <div class=\"ng-custom-file-input-content--extensions\" *ngIf=\"extensions\">\n {{placeholderFileFormat}} {{extensions}}\n </div>\n </div>\n </div>\n </ng-template>\n </ngx-file-drop>\n\n <ng-container *ngIf=\"bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<mrx-error-message\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\n [invalidMessage]=\"invalidMessage\"\n></mrx-error-message>\n\n<ng-template #fileListTemplate>\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n [ngClass]=\"{'file-error': file.error}\"\n [mrxCdkTooltip]=\"getTooltipValue(fileNamePlaceholder ? fileNamePlaceholder : file.name || '')\"\n [tooltipPosition]=\"'top-start'\"\n >\n <ng-container *ngIf=\"autoUpload\">\n <a class=\"qq-download-link\" [target]=\"getTarget\" [href]=\"downloadUrl(file)\" *ngIf=\"file.uuid && isDownloadingFile\"></a>\n </ng-container>\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <span\n class=\"qq-upload-file-selector qq-upload-file\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</span>\n </div>\n <div class=\"info\">\n <div class=\"ng-custom-file-input_progress\" *ngIf=\"file.uploading\">\n <span [ngStyle]=\"{width: file.percentage + '%'}\"></span>\n </div>\n\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n <span\n *ngIf=\"!readonly && file.uuid && showDeleteButton && !viewOnly\"\n (click)=\"delete(file)\"\n class=\"mrx-icon icon-delete icon-font-24 cursor-pointer\"\n aria-label=\"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\"\n ></span>\n\n <div class=\"ng-custom-file-input-error\" *ngIf=\"file.error\">\n <span class=\"mrx-icon icon-attention icon-color-red icon-font-16 mr-1\"></span>\n <span class=\"color-negative\">{{file.error}}</span>\n </div>\n\n <div\n class=\"mrx-icon icon-close icon-font-24 cursor-pointer ml-2\"\n *ngIf=\"(file.error && !file.uuid) || canCancelUploading(file) && !viewOnly\"\n (click)=\"clear(file)\"\n ></div>\n </div>\n </div>\n </li>\n </ul>\n</ng-template>\n", styles: ["mrx-input-file .new-custom-file-input__item .qq-upload-size-selector{color:var(--neutral-text-tertiary, #71767E)!important}:host::ng-deep .ng-form-file-input .color-tertiary,:host::ng-deep .ng-form-file-input .color-tertiary *{color:var(--neutral-text-tertiary, #71767E)}.ng-custom-file-input-content{padding:var(--spacing-4);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--size,.ng-custom-file-input-content--extensions{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-secondary, #636363)}.new-custom-file-input__item{border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);border-radius:var(--border-radius-1);padding:var(--spacing-3);background-color:var(--brand-bg-tertiary-default, #FFF)}.new-custom-file-input__item .qq-file-info .qq-upload-file-selector{margin:0;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;word-break:break-word;white-space:normal;color:var(--neutral-text-primary)}.new-custom-file-input__item .qq-file-info .qq-upload-size-selector{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363);padding-left:var(--spacing-2);margin-right:var(--spacing-2)}.new-custom-file-input .qq-file-info .info{position:relative;z-index:2}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone{background:var(--brand-bg-tertiary-default, #FFF);border-radius:var(--border-radius-1)!important;border:none;background-image:repeating-linear-gradient(0deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(90deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(180deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(270deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px);background-size:1px 100%,100% 1px,1px 100%,100% 1px;background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:hover,:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:focus{background-image:repeating-linear-gradient(0deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(90deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(180deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(270deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px)}:host::ng-deep .ng-form-file-input .ng-custom-file-input.ng-custom-file-input--disabled .ngx-file-drop__drop-zone{background-color:var(--neutral-bg-disabled, #F4F4F4)}::ng-deep .new-custom-file-input__item.file-error{border-color:var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-custom-file-input-error{white-space:nowrap;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}::ng-deep .ng-form-file-input.mrx-input-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px)!important}::ng-deep .ng-form-file-input.mrx-input-checked-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-negative-secondary);background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px)!important}::ng-deep .ng-form-file-input.mrx-input-checked-success .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-positive-secondary);background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px)!important}\n"], components: [{ type: i2.NgxFileDropComponent, selector: "ngx-file-drop", inputs: ["accept", "directory", "multiple", "dropZoneLabel", "dropZoneClassName", "useDragEnter", "contentClassName", "showBrowseBtn", "browseBtnClassName", "browseBtnLabel", "disabled"], outputs: ["onFileDrop", "onFileOver", "onFileLeave"] }, { type: i3.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgxFileDropContentTemplateDirective, selector: "[ngx-file-drop-content-tmp]" }, { type: i5.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
298
|
+
InputFileComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: InputFileComponent, selector: "mrx-input-file", inputs: { autoUpload: "autoUpload", required: "required", readonly: "readonly", viewOnly: "viewOnly", disabled: "disabled", bottomFiles: "bottomFiles", maxSize: "maxSize", maxFiles: "maxFiles", minFiles: "minFiles", formData: "formData", uploadEndPoint: "uploadEndPoint", deleteEndPoint: "deleteEndPoint", downloadEndPoint: "downloadEndPoint", fileNamePlaceholder: "fileNamePlaceholder", showInputWithError: "showInputWithError", showDeleteButton: "showDeleteButton", isTooltipValue: "isTooltipValue", isDownloadingFile: "isDownloadingFile", isHideListFiles: "isHideListFiles", target: "target", deleteConfirm: "deleteConfirm", innerTemplate: "innerTemplate", uploadAdditionalData: "uploadAdditionalData", invalid: "invalid", invalidMessage: "invalidMessage", checkInvalid: "checkInvalid", messageTooManyFiles: "messageTooManyFiles", messageFileTooBig: "messageFileTooBig", messageEmptyFile: "messageEmptyFile", messageInvalidFileFormat: "messageInvalidFileFormat", placeholder: "placeholder", placeholderFileMaxSize: "placeholderFileMaxSize", placeholderFileFormat: "placeholderFileFormat", initFiles: ["files", "initFiles"], initAllowedExtensions: ["allowedExtensions", "initAllowedExtensions"] }, outputs: { filesChanged: "filesChanged", checkDroppedFile: "checkDroppedFile" }, ngImport: i0, template: "<div\n class=\"ng-form-file-input\"\n [class]=\"getClasses\"\n [class.mrx-input-error]=\"invalid\">\n <div class=\"form-row\" *ngIf=\"readonly; else notReadonly\">\n <div *ngIf=\"!files || files.length == 0\"\n class=\"col-sm-12 col-md-6\"\n >\n <div class=\"d-flex align-items-center color-tertiary\">\n <div class=\"mrx-icon icon-file icon-font-24 mr-2\"></div>\n <span>\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0435\u0442</span>\n </div>\n </div>\n\n <div class=\"col-12\">\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n >\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <a\n class=\"qq-upload-file-selector qq-upload-file\"\n [target]=\"getTarget\"\n [href]=\"downloadUrl(file)\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</a>\n </div>\n <div class=\"info\">\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </div>\n\n <ng-template #notReadonly>\n <ng-container *ngIf=\"!bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n\n <ngx-file-drop\n *ngIf=\"canAdd\"\n [className]=\"'ng-custom-file-input'\"\n [accept]=\"extensions || ''\"\n [disabled]=\"disabled\"\n [ngClass]=\"{'ng-custom-file-input--disabled': disabled}\"\n (onFileDrop)=\"dropped($event)\"\n >\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div\n class=\"ng-custom-file-input-content\"\n (click)=\"!disabled ? openFileSelector() : undefined\"\n >\n <div class=\"text-center\">\n <div class=\"ng-custom-file-input-content--placeholder mb-2\">\n {{placeholder}}\n </div>\n <div class=\"ng-custom-file-input-content--size mb-1\">\n {{placeholderFileMaxSize}} {{formatBytes(maxSize)}}\n </div>\n <div class=\"ng-custom-file-input-content--extensions\" *ngIf=\"extensions\">\n {{placeholderFileFormat}} {{extensions}}\n </div>\n </div>\n </div>\n </ng-template>\n </ngx-file-drop>\n\n <ng-container *ngIf=\"bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<mrx-error-message\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\n [invalidMessage]=\"invalidMessage\"\n></mrx-error-message>\n\n<ng-template #fileListTemplate>\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n [ngClass]=\"{'file-error': file.error}\"\n [mrxCdkTooltip]=\"getTooltipValue(fileNamePlaceholder ? fileNamePlaceholder : file.name || '')\"\n [tooltipPosition]=\"'top-start'\"\n >\n <ng-container *ngIf=\"autoUpload\">\n <a class=\"qq-download-link\" [target]=\"getTarget\" [href]=\"downloadUrl(file)\" *ngIf=\"file.uuid && isDownloadingFile\"></a>\n </ng-container>\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <span\n class=\"qq-upload-file-selector qq-upload-file\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</span>\n </div>\n <div class=\"info\">\n <div class=\"ng-custom-file-input_progress\" *ngIf=\"file.uploading\">\n <span [ngStyle]=\"{width: file.percentage + '%'}\"></span>\n </div>\n\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n <span\n *ngIf=\"!readonly && file.uuid && showDeleteButton && !viewOnly\"\n (click)=\"delete(file)\"\n class=\"mrx-icon icon-delete icon-font-24 cursor-pointer\"\n aria-label=\"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\"\n ></span>\n\n <div class=\"ng-custom-file-input-error\" *ngIf=\"file.error\">\n <span class=\"mrx-icon icon-attention icon-color-red icon-font-16 mr-1\"></span>\n <span class=\"color-negative\">{{file.error}}</span>\n </div>\n\n <div\n class=\"mrx-icon icon-close icon-font-24 cursor-pointer ml-2\"\n *ngIf=\"(file.error && !file.uuid) || canCancelUploading(file) && !viewOnly\"\n (click)=\"clear(file)\"\n ></div>\n </div>\n </div>\n </li>\n </ul>\n</ng-template>\n", styles: ["mrx-input-file .new-custom-file-input__item .qq-upload-size-selector{color:var(--neutral-text-tertiary, #71767E)!important}:host::ng-deep .ng-form-file-input .color-tertiary,:host::ng-deep .ng-form-file-input .color-tertiary *{color:var(--neutral-text-tertiary, #71767E)}.ng-custom-file-input-content{padding:var(--spacing-4);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--size,.ng-custom-file-input-content--extensions{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-secondary, #636363)}.new-custom-file-input__item{border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);border-radius:var(--border-radius-1);padding:var(--spacing-3);background-color:var(--brand-bg-tertiary-default, #FFF)}.new-custom-file-input__item .qq-file-info .qq-upload-file-selector{margin:0;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;word-break:break-word;white-space:normal;color:var(--neutral-text-primary)}.new-custom-file-input__item .qq-file-info .qq-upload-size-selector{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363);padding-left:var(--spacing-2);margin-right:var(--spacing-2)}.new-custom-file-input .qq-file-info .info{position:relative;z-index:2}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone{background:var(--brand-bg-tertiary-default, #FFF);border-radius:var(--border-radius-1)!important;border:1px dashed var(--neutral-bg-stroke-default, #DAD5CE);height:94px}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:hover,:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:focus{border:1px dashed var(--neutral-bg-stroke-hover, #BCB5AC)}:host::ng-deep .ng-form-file-input .ng-custom-file-input.ng-custom-file-input--disabled .ngx-file-drop__drop-zone{background-color:var(--neutral-bg-disabled, #F4F4F4)}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__content{height:94px}::ng-deep .new-custom-file-input__item.file-error{border-color:var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-custom-file-input-error{white-space:nowrap;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}::ng-deep .ng-form-file-input.mrx-input-error .ng-custom-file-input .ngx-file-drop__drop-zone{border:1px dashed var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-form-file-input.mrx-input-checked-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-negative-secondary);border:1px dashed var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-form-file-input.mrx-input-checked-success .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-positive-secondary);border:1px dashed var(--system-bg-controls-positive-default, #108E3A)}\n"], components: [{ type: i2.NgxFileDropComponent, selector: "ngx-file-drop", inputs: ["accept", "directory", "multiple", "dropZoneLabel", "dropZoneClassName", "useDragEnter", "contentClassName", "showBrowseBtn", "browseBtnClassName", "browseBtnLabel", "disabled"], outputs: ["onFileDrop", "onFileOver", "onFileLeave"] }, { type: i3.ErrorMessageComponent, selector: "mrx-error-message", inputs: ["invalid", "invalidMessage", "customClasses"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i2.NgxFileDropContentTemplateDirective, selector: "[ngx-file-drop-content-tmp]" }, { type: i5.CdkTooltipDirective, selector: "[mrxCdkTooltip]", inputs: ["mrxCdkTooltip", "tooltipActive", "autoCloseByScroll", "tooltipPosition", "tooltipMaxWidth"] }, { type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
|
|
299
299
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: InputFileComponent, decorators: [{
|
|
300
300
|
type: Component,
|
|
301
|
-
args: [{ selector: 'mrx-input-file', template: "<div\n class=\"ng-form-file-input\"\n [class]=\"getClasses\"\n [class.mrx-input-error]=\"invalid\">\n <div class=\"form-row\" *ngIf=\"readonly; else notReadonly\">\n <div *ngIf=\"!files || files.length == 0\"\n class=\"col-sm-12 col-md-6\"\n >\n <div class=\"d-flex align-items-center color-tertiary\">\n <div class=\"mrx-icon icon-file icon-font-24 mr-2\"></div>\n <span>\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0435\u0442</span>\n </div>\n </div>\n\n <div class=\"col-12\">\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n >\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <a\n class=\"qq-upload-file-selector qq-upload-file\"\n [target]=\"getTarget\"\n [href]=\"downloadUrl(file)\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</a>\n </div>\n <div class=\"info\">\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </div>\n\n <ng-template #notReadonly>\n <ng-container *ngIf=\"!bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n\n <ngx-file-drop\n *ngIf=\"canAdd\"\n [className]=\"'ng-custom-file-input'\"\n [accept]=\"extensions || ''\"\n [disabled]=\"disabled\"\n [ngClass]=\"{'ng-custom-file-input--disabled': disabled}\"\n (onFileDrop)=\"dropped($event)\"\n >\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div\n class=\"ng-custom-file-input-content\"\n (click)=\"!disabled ? openFileSelector() : undefined\"\n >\n <div class=\"text-center\">\n <div class=\"ng-custom-file-input-content--placeholder mb-2\">\n {{placeholder}}\n </div>\n <div class=\"ng-custom-file-input-content--size\">\n {{placeholderFileMaxSize}} {{formatBytes(maxSize)}}\n </div>\n <div class=\"ng-custom-file-input-content--extensions\" *ngIf=\"extensions\">\n {{placeholderFileFormat}} {{extensions}}\n </div>\n </div>\n </div>\n </ng-template>\n </ngx-file-drop>\n\n <ng-container *ngIf=\"bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<mrx-error-message\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\n [invalidMessage]=\"invalidMessage\"\n></mrx-error-message>\n\n<ng-template #fileListTemplate>\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n [ngClass]=\"{'file-error': file.error}\"\n [mrxCdkTooltip]=\"getTooltipValue(fileNamePlaceholder ? fileNamePlaceholder : file.name || '')\"\n [tooltipPosition]=\"'top-start'\"\n >\n <ng-container *ngIf=\"autoUpload\">\n <a class=\"qq-download-link\" [target]=\"getTarget\" [href]=\"downloadUrl(file)\" *ngIf=\"file.uuid && isDownloadingFile\"></a>\n </ng-container>\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <span\n class=\"qq-upload-file-selector qq-upload-file\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</span>\n </div>\n <div class=\"info\">\n <div class=\"ng-custom-file-input_progress\" *ngIf=\"file.uploading\">\n <span [ngStyle]=\"{width: file.percentage + '%'}\"></span>\n </div>\n\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n <span\n *ngIf=\"!readonly && file.uuid && showDeleteButton && !viewOnly\"\n (click)=\"delete(file)\"\n class=\"mrx-icon icon-delete icon-font-24 cursor-pointer\"\n aria-label=\"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\"\n ></span>\n\n <div class=\"ng-custom-file-input-error\" *ngIf=\"file.error\">\n <span class=\"mrx-icon icon-attention icon-color-red icon-font-16 mr-1\"></span>\n <span class=\"color-negative\">{{file.error}}</span>\n </div>\n\n <div\n class=\"mrx-icon icon-close icon-font-24 cursor-pointer ml-2\"\n *ngIf=\"(file.error && !file.uuid) || canCancelUploading(file) && !viewOnly\"\n (click)=\"clear(file)\"\n ></div>\n </div>\n </div>\n </li>\n </ul>\n</ng-template>\n", styles: ["mrx-input-file .new-custom-file-input__item .qq-upload-size-selector{color:var(--neutral-text-tertiary, #71767E)!important}:host::ng-deep .ng-form-file-input .color-tertiary,:host::ng-deep .ng-form-file-input .color-tertiary *{color:var(--neutral-text-tertiary, #71767E)}.ng-custom-file-input-content{padding:var(--spacing-4);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--size,.ng-custom-file-input-content--extensions{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-secondary, #636363)}.new-custom-file-input__item{border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);border-radius:var(--border-radius-1);padding:var(--spacing-3);background-color:var(--brand-bg-tertiary-default, #FFF)}.new-custom-file-input__item .qq-file-info .qq-upload-file-selector{margin:0;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;word-break:break-word;white-space:normal;color:var(--neutral-text-primary)}.new-custom-file-input__item .qq-file-info .qq-upload-size-selector{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363);padding-left:var(--spacing-2);margin-right:var(--spacing-2)}.new-custom-file-input .qq-file-info .info{position:relative;z-index:2}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone{background:var(--brand-bg-tertiary-default, #FFF);border-radius:var(--border-radius-1)!important;border:none;background-image:repeating-linear-gradient(0deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(90deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(180deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px),repeating-linear-gradient(270deg,var(--neutral-bg-stroke-default, #DAD5CE),var(--neutral-bg-stroke-default, #DAD5CE) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-default, #DAD5CE) 10px);background-size:1px 100%,100% 1px,1px 100%,100% 1px;background-position:0 0,0 0,100% 0,0 100%;background-repeat:no-repeat}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:hover,:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:focus{background-image:repeating-linear-gradient(0deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(90deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(180deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px),repeating-linear-gradient(270deg,var(--neutral-bg-stroke-hover, #BCB5AC),var(--neutral-bg-stroke-hover, #BCB5AC) 6px,transparent 6px,transparent 10px,var(--neutral-bg-stroke-hover, #BCB5AC) 10px)}:host::ng-deep .ng-form-file-input .ng-custom-file-input.ng-custom-file-input--disabled .ngx-file-drop__drop-zone{background-color:var(--neutral-bg-disabled, #F4F4F4)}::ng-deep .new-custom-file-input__item.file-error{border-color:var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-custom-file-input-error{white-space:nowrap;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}::ng-deep .ng-form-file-input.mrx-input-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px)!important}::ng-deep .ng-form-file-input.mrx-input-checked-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-negative-secondary);background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-negative-default, #B83B15),var(--system-bg-controls-negative-default, #B83B15) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-negative-default, #B83B15) 10px)!important}::ng-deep .ng-form-file-input.mrx-input-checked-success .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-positive-secondary);background-image:repeating-linear-gradient(0deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(90deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(180deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px),repeating-linear-gradient(270deg,var(--system-bg-controls-positive-default, #108E3A),var(--system-bg-controls-positive-default, #108E3A) 6px,transparent 6px,transparent 10px,var(--system-bg-controls-positive-default, #108E3A) 10px)!important}\n"] }]
|
|
301
|
+
args: [{ selector: 'mrx-input-file', template: "<div\n class=\"ng-form-file-input\"\n [class]=\"getClasses\"\n [class.mrx-input-error]=\"invalid\">\n <div class=\"form-row\" *ngIf=\"readonly; else notReadonly\">\n <div *ngIf=\"!files || files.length == 0\"\n class=\"col-sm-12 col-md-6\"\n >\n <div class=\"d-flex align-items-center color-tertiary\">\n <div class=\"mrx-icon icon-file icon-font-24 mr-2\"></div>\n <span>\u0414\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u043E\u0432 \u043D\u0435\u0442</span>\n </div>\n </div>\n\n <div class=\"col-12\">\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n >\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <a\n class=\"qq-upload-file-selector qq-upload-file\"\n [target]=\"getTarget\"\n [href]=\"downloadUrl(file)\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</a>\n </div>\n <div class=\"info\">\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n </div>\n </div>\n </li>\n </ul>\n </div>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </div>\n\n <ng-template #notReadonly>\n <ng-container *ngIf=\"!bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n\n <ngx-file-drop\n *ngIf=\"canAdd\"\n [className]=\"'ng-custom-file-input'\"\n [accept]=\"extensions || ''\"\n [disabled]=\"disabled\"\n [ngClass]=\"{'ng-custom-file-input--disabled': disabled}\"\n (onFileDrop)=\"dropped($event)\"\n >\n <ng-template ngx-file-drop-content-tmp let-openFileSelector=\"openFileSelector\">\n <div\n class=\"ng-custom-file-input-content\"\n (click)=\"!disabled ? openFileSelector() : undefined\"\n >\n <div class=\"text-center\">\n <div class=\"ng-custom-file-input-content--placeholder mb-2\">\n {{placeholder}}\n </div>\n <div class=\"ng-custom-file-input-content--size mb-1\">\n {{placeholderFileMaxSize}} {{formatBytes(maxSize)}}\n </div>\n <div class=\"ng-custom-file-input-content--extensions\" *ngIf=\"extensions\">\n {{placeholderFileFormat}} {{extensions}}\n </div>\n </div>\n </div>\n </ng-template>\n </ngx-file-drop>\n\n <ng-container *ngIf=\"bottomFiles && !isHideListFiles\">\n <ng-container *ngTemplateOutlet=\"fileListTemplate\"></ng-container>\n <ng-container *ngTemplateOutlet=\"innerTemplate; context:{}\"></ng-container>\n </ng-container>\n </ng-template>\n</div>\n\n<mrx-error-message\n *ngIf=\"(!isValid || invalid) && isInvalidMessage\"\n [invalidMessage]=\"invalidMessage\"\n></mrx-error-message>\n\n<ng-template #fileListTemplate>\n <ul class=\"new-custom-file-input\" *ngIf=\"files.length\">\n <li\n class=\"new-custom-file-input__item\"\n *ngFor=\"let file of files; trackBy: trackByFn\"\n [ngClass]=\"{'file-error': file.error}\"\n [mrxCdkTooltip]=\"getTooltipValue(fileNamePlaceholder ? fileNamePlaceholder : file.name || '')\"\n [tooltipPosition]=\"'top-start'\"\n >\n <ng-container *ngIf=\"autoUpload\">\n <a class=\"qq-download-link\" [target]=\"getTarget\" [href]=\"downloadUrl(file)\" *ngIf=\"file.uuid && isDownloadingFile\"></a>\n </ng-container>\n <div class=\"qq-file-info\">\n <div class=\"d-flex align-items-center\">\n <span class=\"mrx-icon icon-file icon-font-24 mr-2\"></span>\n <span\n class=\"qq-upload-file-selector qq-upload-file\"\n [title]=\"fileNamePlaceholder ? fileNamePlaceholder : file.name\"\n >{{fileNamePlaceholder ? fileNamePlaceholder : file.name}}</span>\n </div>\n <div class=\"info\">\n <div class=\"ng-custom-file-input_progress\" *ngIf=\"file.uploading\">\n <span [ngStyle]=\"{width: file.percentage + '%'}\"></span>\n </div>\n\n <span class=\"qq-upload-size-selector qq-upload-size\" *ngIf=\"!file.error\">{{formatBytes(file.size)}}</span>\n <span\n *ngIf=\"!readonly && file.uuid && showDeleteButton && !viewOnly\"\n (click)=\"delete(file)\"\n class=\"mrx-icon icon-delete icon-font-24 cursor-pointer\"\n aria-label=\"\u0423\u0434\u0430\u043B\u0438\u0442\u044C\"\n ></span>\n\n <div class=\"ng-custom-file-input-error\" *ngIf=\"file.error\">\n <span class=\"mrx-icon icon-attention icon-color-red icon-font-16 mr-1\"></span>\n <span class=\"color-negative\">{{file.error}}</span>\n </div>\n\n <div\n class=\"mrx-icon icon-close icon-font-24 cursor-pointer ml-2\"\n *ngIf=\"(file.error && !file.uuid) || canCancelUploading(file) && !viewOnly\"\n (click)=\"clear(file)\"\n ></div>\n </div>\n </div>\n </li>\n </ul>\n</ng-template>\n", styles: ["mrx-input-file .new-custom-file-input__item .qq-upload-size-selector{color:var(--neutral-text-tertiary, #71767E)!important}:host::ng-deep .ng-form-file-input .color-tertiary,:host::ng-deep .ng-form-file-input .color-tertiary *{color:var(--neutral-text-tertiary, #71767E)}.ng-custom-file-input-content{padding:var(--spacing-4);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--placeholder{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363)}.ng-custom-file-input-content--size,.ng-custom-file-input-content--extensions{font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height);color:var(--neutral-text-secondary, #636363)}.new-custom-file-input__item{border:1px solid var(--neutral-bg-stroke-default, #DAD5CE);border-radius:var(--border-radius-1);padding:var(--spacing-3);background-color:var(--brand-bg-tertiary-default, #FFF)}.new-custom-file-input__item .qq-file-info .qq-upload-file-selector{margin:0;-webkit-line-clamp:1;display:-webkit-box;-webkit-box-orient:vertical;overflow:hidden;max-width:100%;word-break:break-word;white-space:normal;color:var(--neutral-text-primary)}.new-custom-file-input__item .qq-file-info .qq-upload-size-selector{font-family:var(--body-md-font-family);font-size:var(--body-md-font-size);font-weight:var(--body-md-font-weight);line-height:var(--body-md-line-height);color:var(--neutral-text-secondary, #636363);padding-left:var(--spacing-2);margin-right:var(--spacing-2)}.new-custom-file-input .qq-file-info .info{position:relative;z-index:2}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone{background:var(--brand-bg-tertiary-default, #FFF);border-radius:var(--border-radius-1)!important;border:1px dashed var(--neutral-bg-stroke-default, #DAD5CE);height:94px}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:hover,:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__drop-zone:focus{border:1px dashed var(--neutral-bg-stroke-hover, #BCB5AC)}:host::ng-deep .ng-form-file-input .ng-custom-file-input.ng-custom-file-input--disabled .ngx-file-drop__drop-zone{background-color:var(--neutral-bg-disabled, #F4F4F4)}:host::ng-deep .ng-form-file-input .ng-custom-file-input .ngx-file-drop__content{height:94px}::ng-deep .new-custom-file-input__item.file-error{border-color:var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-custom-file-input-error{white-space:nowrap;font-family:var(--body-sm-font-family);font-size:var(--body-sm-font-size);font-weight:var(--body-sm-font-weight);line-height:var(--body-sm-line-height)}::ng-deep .ng-form-file-input.mrx-input-error .ng-custom-file-input .ngx-file-drop__drop-zone{border:1px dashed var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-form-file-input.mrx-input-checked-error .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-negative-secondary);border:1px dashed var(--system-bg-controls-negative-default, #B83B15)}::ng-deep .ng-form-file-input.mrx-input-checked-success .ng-custom-file-input .ngx-file-drop__drop-zone{background-color:var(--system-bg-positive-secondary);border:1px dashed var(--system-bg-controls-positive-default, #108E3A)}\n"] }]
|
|
302
302
|
}], ctorParameters: function () { return [{ type: i1.FileUploadService }]; }, propDecorators: { autoUpload: [{
|
|
303
303
|
type: Input
|
|
304
304
|
}], required: [{
|
|
@@ -376,4 +376,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
|
|
|
376
376
|
}], checkDroppedFile: [{
|
|
377
377
|
type: Output
|
|
378
378
|
}] } });
|
|
379
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT25GLE1BQU0sT0FBTyxrQkFBa0I7SUEyRTdCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBMUV4RCxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUUxQixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFFYixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFD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LE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hGaWxlRHJvcEVudHJ5IH0gZnJvbSAnbmd4LWZpbGUtZHJvcCc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwsIFVwbG9hZGVkRmlsZU1vZGVsLCBVcGxvYWRlZFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBmb3JtYXRCeXRlcyB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvZXh0ZW5zaW9uL2lucHV0LWZpbGUuZXh0ZW5zaW9uJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzRW51bSB9IGZyb20gJy4vZW51bXMvZXJyb3ItbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQgeyBJbnB1dEZpbGVUYXJnZXRUeXBlcywgSW5wdXRGaWxlVGFyZ2V0VHlwZXNFbnVtIH0gZnJvbSAnLi9pbnB1dC1maWxlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmlsZS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZpbGVDb21wb25lbnQge1xuICBmb3JtYXRCeXRlcyA9IGZvcm1hdEJ5dGVzO1xuICBleHRlbnNpb25zPzogc3RyaW5nO1xuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcbiAgZmlsZXM6IElucHV0RmlsZU1vZGVsW10gPSBbXTtcblxuICBASW5wdXQoKSBwdWJsaWMgYXV0b1VwbG9hZCA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHZpZXdPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYm90dG9tRmlsZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFNpemUgPSAzMTQ1NzI4MDtcbiAgQElucHV0KCkgcHVibGljIG1heEZpbGVzID0gNTtcbiAgQElucHV0KCkgcHVibGljIG1pbkZpbGVzID0gMDtcbiAgQElucHV0KCkgcHVibGljIGZvcm1EYXRhOiBhbnkgPSB7fTsgLy8g0J/QsNGA0LDQvNC10YLRgNGLLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC/0LXRgNC10LTQsNCy0LDRgtGM0YHRjyDQsiDRhNC+0YDQvNC1XG4gIEBJbnB1dCgpIHB1YmxpYyB1cGxvYWRFbmRQb2ludCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZUVuZFBvaW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZG93bmxvYWRFbmRQb2ludD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZpbGVOYW1lUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93SW5wdXRXaXRoRXJyb3IgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0RlbGV0ZUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc1Rvb2x0aXBWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEb3dubG9hZGluZ0ZpbGUgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNIaWRlTGlzdEZpbGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YXJnZXQ6IElucHV0RmlsZVRhcmdldFR5cGVzID0gJ19zZWxmJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZUNvbmZpcm0/OiAoZmlsZTogVXBsb2FkZWRGaWxlTW9kZWwsIHJlc3VsdDogKG9rOiBib29sZWFuKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkQWRkaXRpb25hbERhdGE6IGFueSA9IHt9O1xuXG4gIC8vIEVSUk9SXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gRVJST1IgTUVTU0FHRVNcbiAgQElucHV0KCkgcHVibGljIG1lc3NhZ2VUb29NYW55RmlsZXM6IHN0cmluZyA9IEVycm9yTWVzc2FnZXNFbnVtLlRvb01hbnlGaWxlcztcbiAgQElucHV0KCkgcHVibGljIG1lc3NhZ2VGaWxlVG9vQmlnOiBzdHJpbmcgPSBFcnJvck1lc3NhZ2VzRW51bS5GaWxlVG9vQmlnO1xuICBASW5wdXQoKSBwdWJsaWMgbWVzc2FnZUVtcHR5RmlsZTogc3RyaW5nID0gRXJyb3JNZXNzYWdlc0VudW0uRW1wdHlGaWxlO1xuICBASW5wdXQoKSBwdWJsaWMgbWVzc2FnZUludmFsaWRGaWxlRm9ybWF0OiBzdHJpbmcgPSBFcnJvck1lc3NhZ2VzRW51bS5JbnZhbGlkRmlsZUZvcm1hdDtcblxuICAvLyBQTEFDRUhPTERFUlNcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJ9Cf0LXRgNC10L3QtdGB0LjRgtC1INGE0LDQudC7INGBINGD0YHRgtGA0L7QudGB0YLQstCwINC40LvQuCDQvdCw0LbQvNC40YLQtSDQvdCwINC00LDQvdC90L7QtSDQv9C+0LvQtSDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0YTQsNC50LvQsCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckZpbGVNYXhTaXplID0gJ9Cg0LDQt9C80LXRgCDRhNCw0LnQu9CwOiDQvdC1INCx0L7Qu9GM0YjQtSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckZpbGVGb3JtYXQgPSAn0KTQvtGA0LzQsNGCINGE0LDQudC70LA6JztcblxuICBASW5wdXQoJ2ZpbGVzJylcbiAgc2V0IGluaXRGaWxlcyhkYXRhOiBVcGxvYWRlZEZpbGVNb2RlbFtdIHwgVXBsb2FkZWRGaWxlTW9kZWwpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IGRhdGEubWFwKHMgPT4gKHsgLi4ucyB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGVzID0gW3sgLi4uZGF0YSB9XTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnYWxsb3dlZEV4dGVuc2lvbnMnKVxuICBwdWJsaWMgc2V0IGluaXRBbGxvd2VkRXh0ZW5zaW9ucyh2YWw6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHZhbDtcbiAgICAgIHRoaXMuZXh0ZW5zaW9ucyA9IHZhbC5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsbG93ZWRFeHRlbnNpb25zID0gW107XG4gICAgICB0aGlzLmV4dGVuc2lvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dEZpbGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGVja0Ryb3BwZWRGaWxlOiBFdmVudEVtaXR0ZXI8SW5wdXRGaWxlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlKSB7XG4gIH1cblxuICBnZXQgY2FuQWRkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNob3dJbnB1dFdpdGhFcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMubWF4RmlsZXMgPiB0aGlzLmZpbGVzLmZpbHRlcihzID0+ICFzLmVycm9yKS5sZW5ndGg7XG4gICAgfSBcbiAgICByZXR1cm4gdGhpcy5tYXhGaWxlcyA+IHRoaXMuZmlsZXMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRUYXJnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSW5wdXRGaWxlVGFyZ2V0VHlwZXNFbnVtW3RoaXMudGFyZ2V0XVxuICB9XG5cbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XG4gICAgICB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVZhbGlkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9vbHRpcFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzVG9vbHRpcFZhbHVlICYmIHZhbHVlID8gdmFsdWUgOiAnJ1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhc2VWYWxpZGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJbnB1dEZpbGVNb2RlbCkge1xuICAgIHJldHVybiBCb29sZWFuKGl0ZW0udXVpZCkgPyBpdGVtLnV1aWQgOiBpdGVtLnRlbXBVdWlkO1xuICB9XG5cbiAgZGVsZXRlKGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVsZXRlQ29uZmlybSkge1xuICAgICAgdGhpcy5kZWxldGVDb25maXJtKGZpbGUsIChvaykgPT4ge1xuICAgICAgICBpZiAob2spIHtcbiAgICAgICAgICBjb25zdCBmaW5kRmlsZSA9IHRoaXMuZmlsZXMuZmluZChzID0+IHMudXVpZCA9PT0gZmlsZS51dWlkKTtcbiAgICAgICAgICBpZiAoZmluZEZpbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZUVuZFBvaW50KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5jcmVhdGVGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1FxdXVpZCcsIGZpbGUudXVpZCk7XG4gICAgICAgICAgICAgIGZpbmRGaWxlLmRlbGV0aW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvVXBsb2FkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkU2VydmljZS5kZWxldGUodGhpcy5kZWxldGVFbmRQb2ludCwgZm9ybURhdGEpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UodGhpcy5maWxlcy5pbmRleE9mKGZpbmRGaWxlKSwgMSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkZWRBbGxGaWxlcygpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZWQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKGZpbGUpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKHRoaXMuZmlsZXMuaW5kZXhPZihmaW5kRmlsZSksIDEpO1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkZWRBbGxGaWxlcygpO1xuICAgICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2FuQ2FuY2VsVXBsb2FkaW5nKGZpbGU6IElucHV0RmlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhZmlsZS51cGxvYWRpbmcgJiYgZmlsZS5wZXJjZW50YWdlID8gZmlsZS5wZXJjZW50YWdlIDwgOTAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRlZEFsbEZpbGVzKCkge1xuICAgIGZvcihsZXQgaT0wOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZmlsZXNbaV07XG4gICAgICBkYXRhLmVycm9yID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5jaGVja0ZvclVwbG9hZChkYXRhLCB0cnVlKTsgICAgICBcbiAgICAgIGlmKHRoaXMubWF4RmlsZXMgPD0gaSkge1xuICAgICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlVG9vTWFueUZpbGVzOyBcbiAgICAgIH0gZWxzZSBpZighZGF0YS5lcnJvcikge1xuICAgICAgICBkYXRhLnV1aWQgPSBkYXRhLnV1aWQgfHwgZGF0YS50ZW1wVXVpZCB8fCAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhcihmaWxlOiBJbnB1dEZpbGVNb2RlbCk6IHZvaWQge1xuICAgIGlmIChmaWxlLnVwbG9hZGluZykge1xuICAgICAgaWYgKGZpbGUuZXhlY3V0aW9uKSB7XG4gICAgICAgIGZpbGUuZXhlY3V0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmluZEZpbGVJZHggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgaWYgKGZpbmRGaWxlSWR4ID49IDApIHtcbiAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGZpbmRGaWxlSWR4LCAxKTtcbiAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVVcGxvYWRlZEFsbEZpbGVzKCk7XG5cbiAgfVxuXG4gIGRvd25sb2FkVXJsKGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsKTogc3RyaW5nIHtcbiAgICBpZiAoZmlsZS51cmwgJiYgIWZpbGUuc2l6ZSkge1xuICAgICAgcmV0dXJuIGZpbGUudXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5kb3dubG9hZEVuZFBvaW50KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmRvd25sb2FkRW5kUG9pbnR9P3V1aWQ9JHtmaWxlLnV1aWR9YDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnIyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRyb3BwZWQoZmlsZXM6IE5neEZpbGVEcm9wRW50cnlbXSkge1xuICAgIGZvciAoY29uc3QgZHJvcHBlZEZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGlmIChkcm9wcGVkRmlsZS5maWxlRW50cnkuaXNGaWxlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRmlsZUVudHJ5O1xuICAgICAgICBmaWxlRW50cnkuZmlsZSgoZmlsZTogRmlsZSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCB3YXMgYSBkaXJlY3RvcnkgKGVtcHR5IGRpcmVjdG9yaWVzIGFyZSBhZGRlZCwgb3RoZXJ3aXNlIG9ubHkgZmlsZXMpXG4gICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtRGF0YUtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmZvcm1EYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybURhdGEoKTogRm9ybURhdGEge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAodGhpcy5tYXhGaWxlcykge1xuICAgICAgZm9ybS5hcHBlbmQoJ01heEZpbGVzJywgdGhpcy5tYXhGaWxlcy50b1N0cmluZygxMCkpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gdGhpcy5mb3JtRGF0YUtleXMoKTtcbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IGZvcm0uYXBwZW5kKGtleSwgdGhpcy5mb3JtRGF0YVtrZXldKSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICB1dWlkOiAnJyxcbiAgICAgIHRlbXBVdWlkOiB1dWlkdjQoKSxcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgIHVwbG9hZGluZzogdHJ1ZSxcbiAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICBmaWxlOiBmaWxlXG4gICAgfSBhcyBJbnB1dEZpbGVNb2RlbDtcblxuICAgIGlmICghdGhpcy5jaGVja0ZvclVwbG9hZChkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5jcmVhdGVGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnRmlsZScsIGZpbGUpO1xuXG4gICAgaWYgKHRoaXMudXBsb2FkQWRkaXRpb25hbERhdGEgJiYgT2JqZWN0LmtleXModGhpcy51cGxvYWRBZGRpdGlvbmFsRGF0YSkubGVuZ3RoKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnVwbG9hZEFkZGl0aW9uYWxEYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHRoaXMudXBsb2FkQWRkaXRpb25hbERhdGFba2V5XSk7XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF1dG9VcGxvYWQpIHtcbiAgICAgIGRhdGEuZXhlY3V0aW9uID0gdGhpcy5maWxlVXBsb2FkU2VydmljZS51cGxvYWQodGhpcy51cGxvYWRFbmRQb2ludCwgZm9ybURhdGEpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSHR0cEV2ZW50PFVwbG9hZGVkUmVzdWx0TW9kZWw+KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2VIZWFkZXI6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICBpZiAoZXZlbnQudG90YWwpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnBlcmNlbnRhZ2UgPSBNYXRoLnJvdW5kKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmJvZHkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRhdGEucGVyY2VudGFnZSA9IDA7XG4gICAgICAgICAgICAgICAgZGF0YS51dWlkID0gZXZlbnQuYm9keS51dWlkO1xuICAgICAgICAgICAgICAgIGRhdGEuZmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkYXRhLmVycm9yID0gZXZlbnQuYm9keS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbikge1xuICAgICAgICAgICAgICAgICAgZGF0YS5leGVjdXRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlcy5ldmVyeShzID0+ICFzLnVwbG9hZGluZykpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZEZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIocyA9PiAhcy5lcnJvcik7XG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KGNvbXBsZXRlZEZpbGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgZGF0YS51dWlkID0gZGF0YS50ZW1wVXVpZCB8fCAnJztcblxuICAgICAgaWYgKHRoaXMuZmlsZXMuZXZlcnkocyA9PiAhcy51cGxvYWRpbmcpKSB7XG4gICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvclVwbG9hZChkYXRhOiBJbnB1dEZpbGVNb2RlbCwgZXhpc3Rpbmc/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jaGVja0Ryb3BwZWRGaWxlLmVtaXQoZGF0YSlcblxuICAgIGlmICghdGhpcy5jYW5BZGQgJiYgIWV4aXN0aW5nKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlVG9vTWFueUZpbGVzO1xuICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsZXMucHVzaChkYXRhKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZighZXhpc3RpbmcpIHtcbiAgICAgIHRoaXMuZmlsZXMucHVzaChkYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5maWxlICYmIGRhdGEuZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlRmlsZVRvb0JpZztcbiAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZmlsZSAmJiBkYXRhLmZpbGUuc2l6ZSA9PSAwKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlRW1wdHlGaWxlO1xuICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRFeHRlbnNpb25zLnNvbWUoXG4gICAgICBzID0+IGRhdGEuZmlsZSAmJiBkYXRhLmZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHMudG9Mb3dlckNhc2UoKSkpKSB7XG5cbiAgICAgIGRhdGEuZXJyb3IgPSB0aGlzLm1lc3NhZ2VJbnZhbGlkRmlsZUZvcm1hdDtcbiAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJuZy1mb3JtLWZpbGUtaW5wdXRcIlxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIiAqbmdJZj1cInJlYWRvbmx5OyBlbHNlIG5vdFJlYWRvbmx5XCI+XG4gICAgPGRpdiAqbmdJZj1cIiFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT0gMFwiXG4gICAgICAgICBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNlwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sb3ItdGVydGlhcnlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pY29uIGljb24tZmlsZSBpY29uLWZvbnQtMjQgbXItMlwiPjwvZGl2PlxuICAgICAgICA8c3Bhbj7QlNC+0LrRg9C80LXQvdGC0L7QsiDQvdC10YI8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDx1bCBjbGFzcz1cIm5ldy1jdXN0b20tZmlsZS1pbnB1dFwiICpuZ0lmPVwiZmlsZXMubGVuZ3RoXCI+XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwibmV3LWN1c3RvbS1maWxlLWlucHV0X19pdGVtXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcS1maWxlLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1maWxlIGljb24tZm9udC0yNCBtci0yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwicXEtdXBsb2FkLWZpbGUtc2VsZWN0b3IgcXEtdXBsb2FkLWZpbGVcIlxuICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0VGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJkb3dubG9hZFVybChmaWxlKVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImZpbGVOYW1lUGxhY2Vob2xkZXIgPyBmaWxlTmFtZVBsYWNlaG9sZGVyIDogZmlsZS5uYW1lXCJcbiAgICAgICAgICAgICAgPnt7ZmlsZU5hbWVQbGFjZWhvbGRlciA/IGZpbGVOYW1lUGxhY2Vob2xkZXIgOiBmaWxlLm5hbWV9fTwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxcS11cGxvYWQtc2l6ZS1zZWxlY3RvciBxcS11cGxvYWQtc2l6ZVwiICpuZ0lmPVwiIWZpbGUuZXJyb3JcIj57e2Zvcm1hdEJ5dGVzKGZpbGUuc2l6ZSl9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDp7fVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI25vdFJlYWRvbmx5PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYm90dG9tRmlsZXMgJiYgIWlzSGlkZUxpc3RGaWxlc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVMaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlOyBjb250ZXh0Ont9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmd4LWZpbGUtZHJvcFxuICAgICAgKm5nSWY9XCJjYW5BZGRcIlxuICAgICAgW2NsYXNzTmFtZV09XCInbmctY3VzdG9tLWZpbGUtaW5wdXQnXCJcbiAgICAgIFthY2NlcHRdPVwiZXh0ZW5zaW9ucyB8fCAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPVwieyduZy1jdXN0b20tZmlsZS1pbnB1dC0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIlxuICAgICAgKG9uRmlsZURyb3ApPVwiZHJvcHBlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbmd4LWZpbGUtZHJvcC1jb250ZW50LXRtcCBsZXQtb3BlbkZpbGVTZWxlY3Rvcj1cIm9wZW5GaWxlU2VsZWN0b3JcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibmctY3VzdG9tLWZpbGUtaW5wdXQtY29udGVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IG9wZW5GaWxlU2VsZWN0b3IoKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy1jdXN0b20tZmlsZS1pbnB1dC1jb250ZW50LS1wbGFjZWhvbGRlciBtYi0yXCI+XG4gICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXJ9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctY3VzdG9tLWZpbGUtaW5wdXQtY29udGVudC0tc2l6ZVwiPlxuICAgICAgICAgICAgICB7e3BsYWNlaG9sZGVyRmlsZU1heFNpemV9fSB7e2Zvcm1hdEJ5dGVzKG1heFNpemUpfX1cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLWN1c3RvbS1maWxlLWlucHV0LWNvbnRlbnQtLWV4dGVuc2lvbnNcIiAqbmdJZj1cImV4dGVuc2lvbnNcIj5cbiAgICAgICAgICAgICAge3twbGFjZWhvbGRlckZpbGVGb3JtYXR9fSB7e2V4dGVuc2lvbnN9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25neC1maWxlLWRyb3A+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYm90dG9tRmlsZXMgJiYgIWlzSGlkZUxpc3RGaWxlc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVMaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlOyBjb250ZXh0Ont9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cblxuPG1yeC1lcnJvci1tZXNzYWdlXG4gICpuZ0lmPVwiKCFpc1ZhbGlkIHx8IGludmFsaWQpICYmIGlzSW52YWxpZE1lc3NhZ2VcIlxuICBbaW52YWxpZE1lc3NhZ2VdPVwiaW52YWxpZE1lc3NhZ2VcIlxuPjwvbXJ4LWVycm9yLW1lc3NhZ2U+XG5cbjxuZy10ZW1wbGF0ZSAjZmlsZUxpc3RUZW1wbGF0ZT5cbiAgPHVsIGNsYXNzPVwibmV3LWN1c3RvbS1maWxlLWlucHV0XCIgKm5nSWY9XCJmaWxlcy5sZW5ndGhcIj5cbiAgICA8bGlcbiAgICAgIGNsYXNzPVwibmV3LWN1c3RvbS1maWxlLWlucHV0X19pdGVtXCJcbiAgICAgICpuZ0Zvcj1cImxldCBmaWxlIG9mIGZpbGVzOyB0cmFja0J5OiB0cmFja0J5Rm5cIlxuICAgICAgW25nQ2xhc3NdPVwieydmaWxlLWVycm9yJzogZmlsZS5lcnJvcn1cIlxuICAgICAgW21yeENka1Rvb2x0aXBdPVwiZ2V0VG9vbHRpcFZhbHVlKGZpbGVOYW1lUGxhY2Vob2xkZXIgPyBmaWxlTmFtZVBsYWNlaG9sZGVyIDogZmlsZS5uYW1lIHx8ICcnKVwiXG4gICAgICBbdG9vbHRpcFBvc2l0aW9uXT1cIid0b3Atc3RhcnQnXCJcbiAgICA+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYXV0b1VwbG9hZFwiPlxuICAgICAgICA8YSBjbGFzcz1cInFxLWRvd25sb2FkLWxpbmtcIiBbdGFyZ2V0XT1cImdldFRhcmdldFwiIFtocmVmXT1cImRvd25sb2FkVXJsKGZpbGUpXCIgKm5nSWY9XCJmaWxlLnV1aWQgJiYgaXNEb3dubG9hZGluZ0ZpbGVcIj48L2E+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxkaXYgY2xhc3M9XCJxcS1maWxlLWluZm9cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tZmlsZSBpY29uLWZvbnQtMjQgbXItMlwiPjwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgY2xhc3M9XCJxcS11cGxvYWQtZmlsZS1zZWxlY3RvciBxcS11cGxvYWQtZmlsZVwiXG4gICAgICAgICAgICBbdGl0bGVdPVwiZmlsZU5hbWVQbGFjZWhvbGRlciA/IGZpbGVOYW1lUGxhY2Vob2xkZXIgOiBmaWxlLm5hbWVcIlxuICAgICAgICAgID57e2ZpbGVOYW1lUGxhY2Vob2xkZXIgPyBmaWxlTmFtZVBsYWNlaG9sZGVyIDogZmlsZS5uYW1lfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mb1wiPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy1jdXN0b20tZmlsZS1pbnB1dF9wcm9ncmVzc1wiICpuZ0lmPVwiZmlsZS51cGxvYWRpbmdcIj5cbiAgICAgICAgICAgIDxzcGFuIFtuZ1N0eWxlXT1cInt3aWR0aDogZmlsZS5wZXJjZW50YWdlICsgJyUnfVwiPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwicXEtdXBsb2FkLXNpemUtc2VsZWN0b3IgcXEtdXBsb2FkLXNpemVcIiAqbmdJZj1cIiFmaWxlLmVycm9yXCI+e3tmb3JtYXRCeXRlcyhmaWxlLnNpemUpfX08L3NwYW4+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwiIXJlYWRvbmx5ICYmIGZpbGUudXVpZCAmJiBzaG93RGVsZXRlQnV0dG9uICYmICF2aWV3T25seVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlKGZpbGUpXCJcbiAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1kZWxldGUgaWNvbi1mb250LTI0IGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIGFyaWEtbGFiZWw9XCLQo9C00LDQu9C40YLRjFwiXG4gICAgICAgICAgPjwvc3Bhbj5cblxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy1jdXN0b20tZmlsZS1pbnB1dC1lcnJvclwiICpuZ0lmPVwiZmlsZS5lcnJvclwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcngtaWNvbiBpY29uLWF0dGVudGlvbiBpY29uLWNvbG9yLXJlZCBpY29uLWZvbnQtMTYgbXItMVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY29sb3ItbmVnYXRpdmVcIj57e2ZpbGUuZXJyb3J9fTwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cblxuICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgIGNsYXNzPVwibXJ4LWljb24gaWNvbi1jbG9zZSBpY29uLWZvbnQtMjQgY3Vyc29yLXBvaW50ZXIgbWwtMlwiXG4gICAgICAgICAgICAqbmdJZj1cIihmaWxlLmVycm9yICYmICFmaWxlLnV1aWQpIHx8IGNhbkNhbmNlbFVwbG9hZGluZyhmaWxlKSAmJiAhdmlld09ubHlcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImNsZWFyKGZpbGUpXCJcbiAgICAgICAgICA+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9saT5cbiAgPC91bD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
379
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtZmlsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9teXJ0YS11aS9zcmMvbGliL2NvbXBvbmVudHMvZm9ybS9pbnB1dC1maWxlL2lucHV0LWZpbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbXlydGEtdWkvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm0vaW5wdXQtZmlsZS9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBMkIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBRTdHLE9BQU8sRUFBYSxhQUFhLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsRUFBRSxJQUFJLE1BQU0sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVwQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0saURBQWlELENBQUM7QUFFOUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUF3Qix3QkFBd0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7O0FBT25GLE1BQU0sT0FBTyxrQkFBa0I7SUEyRTdCLFlBQW9CLGlCQUFvQztRQUFwQyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBMUV4RCxnQkFBVyxHQUFHLFdBQVcsQ0FBQztRQUUxQixzQkFBaUIsR0FBYSxFQUFFLENBQUM7UUFDakMsVUFBSyxHQUFxQixFQUFFLENBQUM7UUFFYixlQUFVLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFD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LE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOZ3hGaWxlRHJvcEVudHJ5IH0gZnJvbSAnbmd4LWZpbGUtZHJvcCc7XG5pbXBvcnQgeyBIdHRwRXZlbnQsIEh0dHBFdmVudFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBjYXRjaEVycm9yIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRU1QVFkgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IHY0IGFzIHV1aWR2NCB9IGZyb20gJ3V1aWQnO1xuaW1wb3J0IHsgSW5wdXRGaWxlTW9kZWwsIFVwbG9hZGVkRmlsZU1vZGVsLCBVcGxvYWRlZFJlc3VsdE1vZGVsIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzL2lucHV0LWZpbGUvaW5wdXQtZmlsZS5tb2RlbCc7XG5pbXBvcnQgeyBmb3JtYXRCeXRlcyB9IGZyb20gJy4uLy4uLy4uL2hlbHBlcnMvZXh0ZW5zaW9uL2lucHV0LWZpbGUuZXh0ZW5zaW9uJztcbmltcG9ydCB7IEZpbGVVcGxvYWRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZXMvZmlsZS11cGxvYWQvZmlsZS11cGxvYWQuc2VydmljZSc7XG5pbXBvcnQgeyBFcnJvck1lc3NhZ2VzRW51bSB9IGZyb20gJy4vZW51bXMvZXJyb3ItbWVzc2FnZXMuZW51bSc7XG5pbXBvcnQgeyBJbnB1dEZpbGVUYXJnZXRUeXBlcywgSW5wdXRGaWxlVGFyZ2V0VHlwZXNFbnVtIH0gZnJvbSAnLi9pbnB1dC1maWxlLmVudW0nO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdtcngtaW5wdXQtZmlsZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC1maWxlLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vaW5wdXQtZmlsZS5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dEZpbGVDb21wb25lbnQge1xuICBmb3JtYXRCeXRlcyA9IGZvcm1hdEJ5dGVzO1xuICBleHRlbnNpb25zPzogc3RyaW5nO1xuICBhbGxvd2VkRXh0ZW5zaW9uczogc3RyaW5nW10gPSBbXTtcbiAgZmlsZXM6IElucHV0RmlsZU1vZGVsW10gPSBbXTtcblxuICBASW5wdXQoKSBwdWJsaWMgYXV0b1VwbG9hZCA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyByZXF1aXJlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgcmVhZG9ubHkgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIHZpZXdPbmx5ID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBkaXNhYmxlZCA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgYm90dG9tRmlsZXMgPSBmYWxzZTtcbiAgQElucHV0KCkgcHVibGljIG1heFNpemUgPSAzMTQ1NzI4MDtcbiAgQElucHV0KCkgcHVibGljIG1heEZpbGVzID0gNTtcbiAgQElucHV0KCkgcHVibGljIG1pbkZpbGVzID0gMDtcbiAgQElucHV0KCkgcHVibGljIGZvcm1EYXRhOiBhbnkgPSB7fTsgLy8g0J/QsNGA0LDQvNC10YLRgNGLLCDQutC+0YLQvtGA0YvQtSDQsdGD0LTRg9GCINC/0LXRgNC10LTQsNCy0LDRgtGM0YHRjyDQsiDRhNC+0YDQvNC1XG4gIEBJbnB1dCgpIHB1YmxpYyB1cGxvYWRFbmRQb2ludCE6IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZUVuZFBvaW50Pzogc3RyaW5nO1xuICBASW5wdXQoKSBwdWJsaWMgZG93bmxvYWRFbmRQb2ludD86IHN0cmluZztcbiAgQElucHV0KCkgcHVibGljIGZpbGVOYW1lUGxhY2Vob2xkZXI/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHB1YmxpYyBzaG93SW5wdXRXaXRoRXJyb3IgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgc2hvd0RlbGV0ZUJ1dHRvbiA9IHRydWU7XG4gIEBJbnB1dCgpIHB1YmxpYyBpc1Rvb2x0aXBWYWx1ZSA9IGZhbHNlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNEb3dubG9hZGluZ0ZpbGUgPSB0cnVlO1xuICBASW5wdXQoKSBwdWJsaWMgaXNIaWRlTGlzdEZpbGVzID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyB0YXJnZXQ6IElucHV0RmlsZVRhcmdldFR5cGVzID0gJ19zZWxmJztcbiAgQElucHV0KCkgcHVibGljIGRlbGV0ZUNvbmZpcm0/OiAoZmlsZTogVXBsb2FkZWRGaWxlTW9kZWwsIHJlc3VsdDogKG9rOiBib29sZWFuKSA9PiB2b2lkKSA9PiB2b2lkO1xuXG4gIEBJbnB1dCgpIHB1YmxpYyBpbm5lclRlbXBsYXRlITogVGVtcGxhdGVSZWY8YW55PjtcblxuICBASW5wdXQoKSBwdWJsaWMgdXBsb2FkQWRkaXRpb25hbERhdGE6IGFueSA9IHt9O1xuXG4gIC8vIEVSUk9SXG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkID0gZmFsc2U7XG4gIEBJbnB1dCgpIHB1YmxpYyBpbnZhbGlkTWVzc2FnZTogc3RyaW5nIHwgc3RyaW5nW10gPSAnJztcbiAgQElucHV0KCkgcHVibGljIGNoZWNrSW52YWxpZDogdHJ1ZSB8IGZhbHNlIHwgbnVsbCA9IG51bGw7XG5cbiAgLy8gRVJST1IgTUVTU0FHRVNcbiAgQElucHV0KCkgcHVibGljIG1lc3NhZ2VUb29NYW55RmlsZXM6IHN0cmluZyA9IEVycm9yTWVzc2FnZXNFbnVtLlRvb01hbnlGaWxlcztcbiAgQElucHV0KCkgcHVibGljIG1lc3NhZ2VGaWxlVG9vQmlnOiBzdHJpbmcgPSBFcnJvck1lc3NhZ2VzRW51bS5GaWxlVG9vQmlnO1xuICBASW5wdXQoKSBwdWJsaWMgbWVzc2FnZUVtcHR5RmlsZTogc3RyaW5nID0gRXJyb3JNZXNzYWdlc0VudW0uRW1wdHlGaWxlO1xuICBASW5wdXQoKSBwdWJsaWMgbWVzc2FnZUludmFsaWRGaWxlRm9ybWF0OiBzdHJpbmcgPSBFcnJvck1lc3NhZ2VzRW51bS5JbnZhbGlkRmlsZUZvcm1hdDtcblxuICAvLyBQTEFDRUhPTERFUlNcbiAgQElucHV0KCkgcHVibGljIHBsYWNlaG9sZGVyID0gJ9Cf0LXRgNC10L3QtdGB0LjRgtC1INGE0LDQudC7INGBINGD0YHRgtGA0L7QudGB0YLQstCwINC40LvQuCDQvdCw0LbQvNC40YLQtSDQvdCwINC00LDQvdC90L7QtSDQv9C+0LvQtSDQtNC70Y8g0LTQvtCx0LDQstC70LXQvdC40Y8g0YTQsNC50LvQsCc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckZpbGVNYXhTaXplID0gJ9Cg0LDQt9C80LXRgCDRhNCw0LnQu9CwOiDQvdC1INCx0L7Qu9GM0YjQtSc7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlckZpbGVGb3JtYXQgPSAn0KTQvtGA0LzQsNGCINGE0LDQudC70LA6JztcblxuICBASW5wdXQoJ2ZpbGVzJylcbiAgc2V0IGluaXRGaWxlcyhkYXRhOiBVcGxvYWRlZEZpbGVNb2RlbFtdIHwgVXBsb2FkZWRGaWxlTW9kZWwpIHtcbiAgICBpZiAoZGF0YSkge1xuICAgICAgaWYgKEFycmF5LmlzQXJyYXkoZGF0YSkpIHtcbiAgICAgICAgdGhpcy5maWxlcyA9IGRhdGEubWFwKHMgPT4gKHsgLi4ucyB9KSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmZpbGVzID0gW3sgLi4uZGF0YSB9XTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5maWxlcyA9IFtdO1xuICAgIH1cbiAgfVxuXG4gIEBJbnB1dCgnYWxsb3dlZEV4dGVuc2lvbnMnKVxuICBwdWJsaWMgc2V0IGluaXRBbGxvd2VkRXh0ZW5zaW9ucyh2YWw6IHN0cmluZ1tdKSB7XG4gICAgaWYgKHZhbCkge1xuICAgICAgdGhpcy5hbGxvd2VkRXh0ZW5zaW9ucyA9IHZhbDtcbiAgICAgIHRoaXMuZXh0ZW5zaW9ucyA9IHZhbC5qb2luKCcsICcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmFsbG93ZWRFeHRlbnNpb25zID0gW107XG4gICAgICB0aGlzLmV4dGVuc2lvbnMgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpIHB1YmxpYyBmaWxlc0NoYW5nZWQ6IEV2ZW50RW1pdHRlcjxJbnB1dEZpbGVNb2RlbFtdPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpIHB1YmxpYyBjaGVja0Ryb3BwZWRGaWxlOiBFdmVudEVtaXR0ZXI8SW5wdXRGaWxlTW9kZWw+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmlsZVVwbG9hZFNlcnZpY2U6IEZpbGVVcGxvYWRTZXJ2aWNlKSB7XG4gIH1cblxuICBnZXQgY2FuQWRkKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLnNob3dJbnB1dFdpdGhFcnJvcikge1xuICAgICAgcmV0dXJuIHRoaXMubWF4RmlsZXMgPiB0aGlzLmZpbGVzLmZpbHRlcihzID0+ICFzLmVycm9yKS5sZW5ndGg7XG4gICAgfSBcbiAgICByZXR1cm4gdGhpcy5tYXhGaWxlcyA+IHRoaXMuZmlsZXMubGVuZ3RoO1xuICB9XG5cbiAgcHVibGljIGdldCBnZXRUYXJnZXQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gSW5wdXRGaWxlVGFyZ2V0VHlwZXNFbnVtW3RoaXMudGFyZ2V0XVxuICB9XG5cbiAgcHVibGljIGdldCBpc0ludmFsaWRNZXNzYWdlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhIXRoaXMuaW52YWxpZE1lc3NhZ2UgfHwgISF0aGlzLmludmFsaWRNZXNzYWdlLmxlbmd0aDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgY2hlY2tWYWxpZENsYXNzZXMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5jaGVja0ludmFsaWQgPT09IGZhbHNlID9cbiAgICAgICdtcngtaW5wdXQtY2hlY2tlZC1zdWNjZXNzJyA6XG4gICAgICB0aGlzLmNoZWNrSW52YWxpZCA9PT0gdHJ1ZSA/ICdtcngtaW5wdXQtY2hlY2tlZC1lcnJvcicgOiAnJztcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZ2V0Q2xhc3NlcygpOiBzdHJpbmcge1xuICAgIHJldHVybiBgJHt0aGlzLmNoZWNrVmFsaWRDbGFzc2VzfWA7XG4gIH1cblxuICBwdWJsaWMgZ2V0IGlzVmFsaWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVZhbGlkYXRlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0VG9vbHRpcFZhbHVlKHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmlzVG9vbHRpcFZhbHVlICYmIHZhbHVlID8gdmFsdWUgOiAnJ1xuICB9XG5cbiAgcHJvdGVjdGVkIGJhc2VWYWxpZGF0ZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHRyYWNrQnlGbihpbmRleDogbnVtYmVyLCBpdGVtOiBJbnB1dEZpbGVNb2RlbCkge1xuICAgIHJldHVybiBCb29sZWFuKGl0ZW0udXVpZCkgPyBpdGVtLnV1aWQgOiBpdGVtLnRlbXBVdWlkO1xuICB9XG5cbiAgZGVsZXRlKGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGVsZXRlQ29uZmlybSkge1xuICAgICAgdGhpcy5kZWxldGVDb25maXJtKGZpbGUsIChvaykgPT4ge1xuICAgICAgICBpZiAob2spIHtcbiAgICAgICAgICBjb25zdCBmaW5kRmlsZSA9IHRoaXMuZmlsZXMuZmluZChzID0+IHMudXVpZCA9PT0gZmlsZS51dWlkKTtcbiAgICAgICAgICBpZiAoZmluZEZpbGUpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRlbGV0ZUVuZFBvaW50KSB7XG4gICAgICAgICAgICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5jcmVhdGVGb3JtRGF0YSgpO1xuICAgICAgICAgICAgICBmb3JtRGF0YS5hcHBlbmQoJ1FxdXVpZCcsIGZpbGUudXVpZCk7XG4gICAgICAgICAgICAgIGZpbmRGaWxlLmRlbGV0aW5nID0gdHJ1ZTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5hdXRvVXBsb2FkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5maWxlVXBsb2FkU2VydmljZS5kZWxldGUodGhpcy5kZWxldGVFbmRQb2ludCwgZm9ybURhdGEpLnN1YnNjcmliZShyZXN1bHQgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5maWxlcy5zcGxpY2UodGhpcy5maWxlcy5pbmRleE9mKGZpbmRGaWxlKSwgMSk7XG4gICAgICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkZWRBbGxGaWxlcygpO1xuICAgICAgICAgICAgICAgICAgdGhpcy5maWxlc0NoYW5nZWQuZW1pdCh0aGlzLmZpbGVzKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0aGlzLmNsZWFyKGZpbGUpO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKHRoaXMuZmlsZXMuaW5kZXhPZihmaW5kRmlsZSksIDEpO1xuICAgICAgICAgICAgICB0aGlzLnZhbGlkYXRlVXBsb2FkZWRBbGxGaWxlcygpO1xuICAgICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KHRoaXMuZmlsZXMpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY2FuQ2FuY2VsVXBsb2FkaW5nKGZpbGU6IElucHV0RmlsZU1vZGVsKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuICEhZmlsZS51cGxvYWRpbmcgJiYgZmlsZS5wZXJjZW50YWdlID8gZmlsZS5wZXJjZW50YWdlIDwgOTAgOiBmYWxzZTtcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVVcGxvYWRlZEFsbEZpbGVzKCkge1xuICAgIGZvcihsZXQgaT0wOyBpIDwgdGhpcy5maWxlcy5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgZGF0YSA9IHRoaXMuZmlsZXNbaV07XG4gICAgICBkYXRhLmVycm9yID0gdW5kZWZpbmVkO1xuICAgICAgdGhpcy5jaGVja0ZvclVwbG9hZChkYXRhLCB0cnVlKTsgICAgICBcbiAgICAgIGlmKHRoaXMubWF4RmlsZXMgPD0gaSkge1xuICAgICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlVG9vTWFueUZpbGVzOyBcbiAgICAgIH0gZWxzZSBpZighZGF0YS5lcnJvcikge1xuICAgICAgICBkYXRhLnV1aWQgPSBkYXRhLnV1aWQgfHwgZGF0YS50ZW1wVXVpZCB8fCAnJztcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBjbGVhcihmaWxlOiBJbnB1dEZpbGVNb2RlbCk6IHZvaWQge1xuICAgIGlmIChmaWxlLnVwbG9hZGluZykge1xuICAgICAgaWYgKGZpbGUuZXhlY3V0aW9uKSB7XG4gICAgICAgIGZpbGUuZXhlY3V0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgZmluZEZpbGVJZHggPSB0aGlzLmZpbGVzLmluZGV4T2YoZmlsZSk7XG4gICAgaWYgKGZpbmRGaWxlSWR4ID49IDApIHtcbiAgICAgIHRoaXMuZmlsZXMuc3BsaWNlKGZpbmRGaWxlSWR4LCAxKTtcbiAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgfVxuICAgIHRoaXMudmFsaWRhdGVVcGxvYWRlZEFsbEZpbGVzKCk7XG5cbiAgfVxuXG4gIGRvd25sb2FkVXJsKGZpbGU6IFVwbG9hZGVkRmlsZU1vZGVsKTogc3RyaW5nIHtcbiAgICBpZiAoZmlsZS51cmwgJiYgIWZpbGUuc2l6ZSkge1xuICAgICAgcmV0dXJuIGZpbGUudXJsO1xuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5kb3dubG9hZEVuZFBvaW50KSB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLmRvd25sb2FkRW5kUG9pbnR9P3V1aWQ9JHtmaWxlLnV1aWR9YDtcbiAgICAgIH1cbiAgICAgIHJldHVybiAnIyc7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGRyb3BwZWQoZmlsZXM6IE5neEZpbGVEcm9wRW50cnlbXSkge1xuICAgIGZvciAoY29uc3QgZHJvcHBlZEZpbGUgb2YgZmlsZXMpIHtcbiAgICAgIGlmIChkcm9wcGVkRmlsZS5maWxlRW50cnkuaXNGaWxlKSB7XG4gICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRmlsZUVudHJ5O1xuICAgICAgICBmaWxlRW50cnkuZmlsZSgoZmlsZTogRmlsZSkgPT4ge1xuICAgICAgICAgIHRoaXMudXBsb2FkRmlsZShmaWxlKTtcbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICAvLyBJdCB3YXMgYSBkaXJlY3RvcnkgKGVtcHR5IGRpcmVjdG9yaWVzIGFyZSBhZGRlZCwgb3RoZXJ3aXNlIG9ubHkgZmlsZXMpXG4gICAgICAgIGNvbnN0IGZpbGVFbnRyeSA9IGRyb3BwZWRGaWxlLmZpbGVFbnRyeSBhcyBGaWxlU3lzdGVtRGlyZWN0b3J5RW50cnk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBmb3JtRGF0YUtleXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBPYmplY3Qua2V5cyh0aGlzLmZvcm1EYXRhKTtcbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlRm9ybURhdGEoKTogRm9ybURhdGEge1xuICAgIGNvbnN0IGZvcm0gPSBuZXcgRm9ybURhdGEoKTtcbiAgICBpZiAodGhpcy5tYXhGaWxlcykge1xuICAgICAgZm9ybS5hcHBlbmQoJ01heEZpbGVzJywgdGhpcy5tYXhGaWxlcy50b1N0cmluZygxMCkpO1xuICAgIH1cbiAgICBjb25zdCBrZXlzID0gdGhpcy5mb3JtRGF0YUtleXMoKTtcbiAgICBrZXlzLmZvckVhY2goa2V5ID0+IGZvcm0uYXBwZW5kKGtleSwgdGhpcy5mb3JtRGF0YVtrZXldKSk7XG4gICAgcmV0dXJuIGZvcm07XG4gIH1cblxuICBwcml2YXRlIHVwbG9hZEZpbGUoZmlsZTogRmlsZSk6IHZvaWQge1xuICAgIGNvbnN0IGRhdGEgPSB7XG4gICAgICB1dWlkOiAnJyxcbiAgICAgIHRlbXBVdWlkOiB1dWlkdjQoKSxcbiAgICAgIG5hbWU6IGZpbGUubmFtZSxcbiAgICAgIHNpemU6IGZpbGUuc2l6ZSxcbiAgICAgIHVwbG9hZGluZzogdHJ1ZSxcbiAgICAgIHBlcmNlbnRhZ2U6IDAsXG4gICAgICBmaWxlOiBmaWxlXG4gICAgfSBhcyBJbnB1dEZpbGVNb2RlbDtcblxuICAgIGlmICghdGhpcy5jaGVja0ZvclVwbG9hZChkYXRhKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGNvbnN0IGZvcm1EYXRhID0gdGhpcy5jcmVhdGVGb3JtRGF0YSgpO1xuICAgIGZvcm1EYXRhLmFwcGVuZCgnRmlsZScsIGZpbGUpO1xuXG4gICAgaWYgKHRoaXMudXBsb2FkQWRkaXRpb25hbERhdGEgJiYgT2JqZWN0LmtleXModGhpcy51cGxvYWRBZGRpdGlvbmFsRGF0YSkubGVuZ3RoKSB7XG4gICAgICBPYmplY3Qua2V5cyh0aGlzLnVwbG9hZEFkZGl0aW9uYWxEYXRhKS5mb3JFYWNoKGtleSA9PiB7XG4gICAgICAgIGZvcm1EYXRhLmFwcGVuZChrZXksIHRoaXMudXBsb2FkQWRkaXRpb25hbERhdGFba2V5XSk7XG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmICh0aGlzLmF1dG9VcGxvYWQpIHtcbiAgICAgIGRhdGEuZXhlY3V0aW9uID0gdGhpcy5maWxlVXBsb2FkU2VydmljZS51cGxvYWQodGhpcy51cGxvYWRFbmRQb2ludCwgZm9ybURhdGEpLnBpcGUoXG4gICAgICAgIGNhdGNoRXJyb3IoKGVycikgPT4ge1xuICAgICAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICAgICAgcmV0dXJuIEVNUFRZO1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgICAuc3Vic2NyaWJlKChldmVudDogSHR0cEV2ZW50PFVwbG9hZGVkUmVzdWx0TW9kZWw+KSA9PiB7XG4gICAgICAgICAgc3dpdGNoIChldmVudC50eXBlKSB7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuU2VudDpcbiAgICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgICBjYXNlIEh0dHBFdmVudFR5cGUuUmVzcG9uc2VIZWFkZXI6XG4gICAgICAgICAgICAgIGJyZWFrO1xuICAgICAgICAgICAgY2FzZSBIdHRwRXZlbnRUeXBlLlVwbG9hZFByb2dyZXNzOlxuICAgICAgICAgICAgICBpZiAoZXZlbnQudG90YWwpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnBlcmNlbnRhZ2UgPSBNYXRoLnJvdW5kKGV2ZW50LmxvYWRlZCAvIGV2ZW50LnRvdGFsICogMTAwKTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBicmVhaztcbiAgICAgICAgICAgIGNhc2UgSHR0cEV2ZW50VHlwZS5SZXNwb25zZTpcbiAgICAgICAgICAgICAgaWYgKGV2ZW50LmJvZHkpIHtcbiAgICAgICAgICAgICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIGRhdGEucGVyY2VudGFnZSA9IDA7XG4gICAgICAgICAgICAgICAgZGF0YS51dWlkID0gZXZlbnQuYm9keS51dWlkO1xuICAgICAgICAgICAgICAgIGRhdGEuZmlsZSA9IHVuZGVmaW5lZDtcbiAgICAgICAgICAgICAgICBkYXRhLmVycm9yID0gZXZlbnQuYm9keS5tZXNzYWdlO1xuICAgICAgICAgICAgICAgIGlmIChkYXRhLmV4ZWN1dGlvbikge1xuICAgICAgICAgICAgICAgICAgZGF0YS5leGVjdXRpb24udW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGhpcy5maWxlcy5ldmVyeShzID0+ICFzLnVwbG9hZGluZykpIHtcbiAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBsZXRlZEZpbGVzID0gdGhpcy5maWxlcy5maWx0ZXIocyA9PiAhcy5lcnJvcik7XG4gICAgICAgICAgICAgICAgICB0aGlzLmZpbGVzQ2hhbmdlZC5lbWl0KGNvbXBsZXRlZEZpbGVzKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBkYXRhLnVwbG9hZGluZyA9IGZhbHNlO1xuICAgICAgZGF0YS51dWlkID0gZGF0YS50ZW1wVXVpZCB8fCAnJztcblxuICAgICAgaWYgKHRoaXMuZmlsZXMuZXZlcnkocyA9PiAhcy51cGxvYWRpbmcpKSB7XG4gICAgICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy5maWxlcyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvclVwbG9hZChkYXRhOiBJbnB1dEZpbGVNb2RlbCwgZXhpc3Rpbmc/OiBib29sZWFuKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jaGVja0Ryb3BwZWRGaWxlLmVtaXQoZGF0YSlcblxuICAgIGlmICghdGhpcy5jYW5BZGQgJiYgIWV4aXN0aW5nKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlVG9vTWFueUZpbGVzO1xuICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMuZmlsZXMucHVzaChkYXRhKTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZighZXhpc3RpbmcpIHtcbiAgICAgIHRoaXMuZmlsZXMucHVzaChkYXRhKTtcbiAgICB9XG5cbiAgICBpZiAoZGF0YS5maWxlICYmIGRhdGEuZmlsZS5zaXplID4gdGhpcy5tYXhTaXplKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlRmlsZVRvb0JpZztcbiAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgaWYgKGRhdGEuZmlsZSAmJiBkYXRhLmZpbGUuc2l6ZSA9PSAwKSB7XG4gICAgICBkYXRhLmVycm9yID0gdGhpcy5tZXNzYWdlRW1wdHlGaWxlO1xuICAgICAgZGF0YS51cGxvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5hbGxvd2VkRXh0ZW5zaW9ucy5sZW5ndGggPiAwICYmICF0aGlzLmFsbG93ZWRFeHRlbnNpb25zLnNvbWUoXG4gICAgICBzID0+IGRhdGEuZmlsZSAmJiBkYXRhLmZpbGUubmFtZS50b0xvd2VyQ2FzZSgpLmVuZHNXaXRoKHMudG9Mb3dlckNhc2UoKSkpKSB7XG5cbiAgICAgIGRhdGEuZXJyb3IgPSB0aGlzLm1lc3NhZ2VJbnZhbGlkRmlsZUZvcm1hdDtcbiAgICAgIGRhdGEudXBsb2FkaW5nID0gZmFsc2U7XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRydWU7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJuZy1mb3JtLWZpbGUtaW5wdXRcIlxuICBbY2xhc3NdPVwiZ2V0Q2xhc3Nlc1wiXG4gIFtjbGFzcy5tcngtaW5wdXQtZXJyb3JdPVwiaW52YWxpZFwiPlxuICA8ZGl2IGNsYXNzPVwiZm9ybS1yb3dcIiAqbmdJZj1cInJlYWRvbmx5OyBlbHNlIG5vdFJlYWRvbmx5XCI+XG4gICAgPGRpdiAqbmdJZj1cIiFmaWxlcyB8fCBmaWxlcy5sZW5ndGggPT0gMFwiXG4gICAgICAgICBjbGFzcz1cImNvbC1zbS0xMiBjb2wtbWQtNlwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgY29sb3ItdGVydGlhcnlcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cIm1yeC1pY29uIGljb24tZmlsZSBpY29uLWZvbnQtMjQgbXItMlwiPjwvZGl2PlxuICAgICAgICA8c3Bhbj7QlNC+0LrRg9C80LXQvdGC0L7QsiDQvdC10YI8L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJjb2wtMTJcIj5cbiAgICAgIDx1bCBjbGFzcz1cIm5ldy1jdXN0b20tZmlsZS1pbnB1dFwiICpuZ0lmPVwiZmlsZXMubGVuZ3RoXCI+XG4gICAgICAgIDxsaVxuICAgICAgICAgIGNsYXNzPVwibmV3LWN1c3RvbS1maWxlLWlucHV0X19pdGVtXCJcbiAgICAgICAgICAqbmdGb3I9XCJsZXQgZmlsZSBvZiBmaWxlczsgdHJhY2tCeTogdHJhY2tCeUZuXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJxcS1maWxlLWluZm9cIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyXCI+XG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1maWxlIGljb24tZm9udC0yNCBtci0yXCI+PC9zcGFuPlxuICAgICAgICAgICAgICA8YVxuICAgICAgICAgICAgICAgIGNsYXNzPVwicXEtdXBsb2FkLWZpbGUtc2VsZWN0b3IgcXEtdXBsb2FkLWZpbGVcIlxuICAgICAgICAgICAgICAgIFt0YXJnZXRdPVwiZ2V0VGFyZ2V0XCJcbiAgICAgICAgICAgICAgICBbaHJlZl09XCJkb3dubG9hZFVybChmaWxlKVwiXG4gICAgICAgICAgICAgICAgW3RpdGxlXT1cImZpbGVOYW1lUGxhY2Vob2xkZXIgPyBmaWxlTmFtZVBsYWNlaG9sZGVyIDogZmlsZS5uYW1lXCJcbiAgICAgICAgICAgICAgPnt7ZmlsZU5hbWVQbGFjZWhvbGRlciA/IGZpbGVOYW1lUGxhY2Vob2xkZXIgOiBmaWxlLm5hbWV9fTwvYT5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImluZm9cIj5cbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJxcS11cGxvYWQtc2l6ZS1zZWxlY3RvciBxcS11cGxvYWQtc2l6ZVwiICpuZ0lmPVwiIWZpbGUuZXJyb3JcIj57e2Zvcm1hdEJ5dGVzKGZpbGUuc2l6ZSl9fTwvc3Bhbj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2xpPlxuICAgICAgPC91bD5cbiAgICA8L2Rpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiaW5uZXJUZW1wbGF0ZTsgY29udGV4dDp7fVwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8bmctdGVtcGxhdGUgI25vdFJlYWRvbmx5PlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhYm90dG9tRmlsZXMgJiYgIWlzSGlkZUxpc3RGaWxlc1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImZpbGVMaXN0VGVtcGxhdGVcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJpbm5lclRlbXBsYXRlOyBjb250ZXh0Ont9XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmd4LWZpbGUtZHJvcFxuICAgICAgKm5nSWY9XCJjYW5BZGRcIlxuICAgICAgW2NsYXNzTmFtZV09XCInbmctY3VzdG9tLWZpbGUtaW5wdXQnXCJcbiAgICAgIFthY2NlcHRdPVwiZXh0ZW5zaW9ucyB8fCAnJ1wiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW25nQ2xhc3NdPVwieyduZy1jdXN0b20tZmlsZS1pbnB1dC0tZGlzYWJsZWQnOiBkaXNhYmxlZH1cIlxuICAgICAgKG9uRmlsZURyb3ApPVwiZHJvcHBlZCgkZXZlbnQpXCJcbiAgICA+XG4gICAgICA8bmctdGVtcGxhdGUgbmd4LWZpbGUtZHJvcC1jb250ZW50LXRtcCBsZXQtb3BlbkZpbGVTZWxlY3Rvcj1cIm9wZW5GaWxlU2VsZWN0b3JcIj5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibmctY3VzdG9tLWZpbGUtaW5wdXQtY29udGVudFwiXG4gICAgICAgICAgKGNsaWNrKT1cIiFkaXNhYmxlZCA/IG9wZW5GaWxlU2VsZWN0b3IoKSA6IHVuZGVmaW5lZFwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXJcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJuZy1jdXN0b20tZmlsZS1pbnB1dC1jb250ZW50LS1wbGFjZWhvbGRlciBtYi0yXCI+XG4gICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXJ9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctY3VzdG9tLWZpbGUtaW5wdXQtY29udGVudC0tc2l6ZSBtYi0xXCI+XG4gICAgICAgICAgICAgIHt7cGxhY2Vob2xkZXJGaWxlTWF4U2l6ZX19IHt7Zm9ybWF0Qnl0ZXMobWF4U2l6ZSl9fVxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibmctY3VzdG9tLWZpbGUtaW5wdXQtY29udGVudC0tZXh0ZW5zaW9uc1wiICpuZ0lmPVwiZXh0ZW5zaW9uc1wiPlxuICAgICAgICAgICAgICB7e3BsYWNlaG9sZGVyRmlsZUZvcm1hdH19IHt7ZXh0ZW5zaW9uc319XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmd4LWZpbGUtZHJvcD5cblxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJib3R0b21GaWxlcyAmJiAhaXNIaWRlTGlzdEZpbGVzXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZmlsZUxpc3RUZW1wbGF0ZVwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImlubmVyVGVtcGxhdGU7IGNvbnRleHQ6e31cIj48L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvZGl2PlxuXG48bXJ4LWVycm9yLW1lc3NhZ2VcbiAgKm5nSWY9XCIoIWlzVmFsaWQgfHwgaW52YWxpZCkgJiYgaXNJbnZhbGlkTWVzc2FnZVwiXG4gIFtpbnZhbGlkTWVzc2FnZV09XCJpbnZhbGlkTWVzc2FnZVwiXG4+PC9tcngtZXJyb3ItbWVzc2FnZT5cblxuPG5nLXRlbXBsYXRlICNmaWxlTGlzdFRlbXBsYXRlPlxuICA8dWwgY2xhc3M9XCJuZXctY3VzdG9tLWZpbGUtaW5wdXRcIiAqbmdJZj1cImZpbGVzLmxlbmd0aFwiPlxuICAgIDxsaVxuICAgICAgY2xhc3M9XCJuZXctY3VzdG9tLWZpbGUtaW5wdXRfX2l0ZW1cIlxuICAgICAgKm5nRm9yPVwibGV0IGZpbGUgb2YgZmlsZXM7IHRyYWNrQnk6IHRyYWNrQnlGblwiXG4gICAgICBbbmdDbGFzc109XCJ7J2ZpbGUtZXJyb3InOiBmaWxlLmVycm9yfVwiXG4gICAgICBbbXJ4Q2RrVG9vbHRpcF09XCJnZXRUb29sdGlwVmFsdWUoZmlsZU5hbWVQbGFjZWhvbGRlciA/IGZpbGVOYW1lUGxhY2Vob2xkZXIgOiBmaWxlLm5hbWUgfHwgJycpXCJcbiAgICAgIFt0b29sdGlwUG9zaXRpb25dPVwiJ3RvcC1zdGFydCdcIlxuICAgID5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhdXRvVXBsb2FkXCI+XG4gICAgICAgIDxhIGNsYXNzPVwicXEtZG93bmxvYWQtbGlua1wiIFt0YXJnZXRdPVwiZ2V0VGFyZ2V0XCIgW2hyZWZdPVwiZG93bmxvYWRVcmwoZmlsZSlcIiAqbmdJZj1cImZpbGUudXVpZCAmJiBpc0Rvd25sb2FkaW5nRmlsZVwiPjwvYT5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPGRpdiBjbGFzcz1cInFxLWZpbGUtaW5mb1wiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlclwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXJ4LWljb24gaWNvbi1maWxlIGljb24tZm9udC0yNCBtci0yXCI+PC9zcGFuPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cInFxLXVwbG9hZC1maWxlLXNlbGVjdG9yIHFxLXVwbG9hZC1maWxlXCJcbiAgICAgICAgICAgIFt0aXRsZV09XCJmaWxlTmFtZVBsYWNlaG9sZGVyID8gZmlsZU5hbWVQbGFjZWhvbGRlciA6IGZpbGUubmFtZVwiXG4gICAgICAgICAgPnt7ZmlsZU5hbWVQbGFjZWhvbGRlciA/IGZpbGVOYW1lUGxhY2Vob2xkZXIgOiBmaWxlLm5hbWV9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvXCI+XG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLWN1c3RvbS1maWxlLWlucHV0X3Byb2dyZXNzXCIgKm5nSWY9XCJmaWxlLnVwbG9hZGluZ1wiPlxuICAgICAgICAgICAgPHNwYW4gW25nU3R5bGVdPVwie3dpZHRoOiBmaWxlLnBlcmNlbnRhZ2UgKyAnJSd9XCI+PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPHNwYW4gY2xhc3M9XCJxcS11cGxvYWQtc2l6ZS1zZWxlY3RvciBxcS11cGxvYWQtc2l6ZVwiICpuZ0lmPVwiIWZpbGUuZXJyb3JcIj57e2Zvcm1hdEJ5dGVzKGZpbGUuc2l6ZSl9fTwvc3Bhbj5cbiAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgKm5nSWY9XCIhcmVhZG9ubHkgJiYgZmlsZS51dWlkICYmIHNob3dEZWxldGVCdXR0b24gJiYgIXZpZXdPbmx5XCJcbiAgICAgICAgICAgIChjbGljayk9XCJkZWxldGUoZmlsZSlcIlxuICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWRlbGV0ZSBpY29uLWZvbnQtMjQgY3Vyc29yLXBvaW50ZXJcIlxuICAgICAgICAgICAgYXJpYS1sYWJlbD1cItCj0LTQsNC70LjRgtGMXCJcbiAgICAgICAgICA+PC9zcGFuPlxuXG4gICAgICAgICAgPGRpdiBjbGFzcz1cIm5nLWN1c3RvbS1maWxlLWlucHV0LWVycm9yXCIgKm5nSWY9XCJmaWxlLmVycm9yXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1yeC1pY29uIGljb24tYXR0ZW50aW9uIGljb24tY29sb3ItcmVkIGljb24tZm9udC0xNiBtci0xXCI+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjb2xvci1uZWdhdGl2ZVwiPnt7ZmlsZS5lcnJvcn19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuXG4gICAgICAgICAgPGRpdlxuICAgICAgICAgICAgY2xhc3M9XCJtcngtaWNvbiBpY29uLWNsb3NlIGljb24tZm9udC0yNCBjdXJzb3ItcG9pbnRlciBtbC0yXCJcbiAgICAgICAgICAgICpuZ0lmPVwiKGZpbGUuZXJyb3IgJiYgIWZpbGUudXVpZCkgfHwgY2FuQ2FuY2VsVXBsb2FkaW5nKGZpbGUpICYmICF2aWV3T25seVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiY2xlYXIoZmlsZSlcIlxuICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2xpPlxuICA8L3VsPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -58,7 +58,7 @@ export class FileImageEditModalComponent extends SimpleModalComponent {
|
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
FileImageEditModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FileImageEditModalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
61
|
-
FileImageEditModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\n [title]=\"title\"\n [size]=\"'medium'\"\n (close)=\"close()\"\n>\n <div class=\"row\">\n <div class=\"col col-12\">\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\n </div>\n\n <div class=\"col col-12\">\n <div class=\"mrx-input-image-cropper__wrapper\">\n <image-cropper\n [imageFile]=\"fileImage\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"aspectRatio\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded($event)\"\n (cropperReady)=\"cropperReady()\"\n (loadImageFailed)=\"loadImageFailed()\"\n [backgroundColor]=\"'#000000'\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [cropperMaxWidth]=\"cropperMaxWidth\"\n [cropperMaxHeight]=\"cropperMaxHeight\"\n ></image-cropper>\n\n <div class=\"mrx-input-image-cropper__controls\">\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #footerContent>\n <mrx-button\n [customClasses]=\"'mr-3'\"\n [type]=\"'secondary'\"\n [size]=\"'medium'\"\n (click)=\"close()\"\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\n </mrx-button>\n <mrx-button\n [type]=\"'primary'\"\n [size]=\"'medium'\"\n (click)=\"ok()\"\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\n </mrx-button>\n </ng-template>\n</mrx-modal>\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:rgba(31,34,38,.5);border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"], components: [{ type: i1.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "okText", "closeText", "size", "color", "customClasses", "expandable", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back"] }, { type: i2.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "format", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { type: i3.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType"], outputs: ["mrxClick"] }] });
|
|
61
|
+
FileImageEditModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: FileImageEditModalComponent, selector: "mrx-file-image-edit-modal", usesInheritance: true, ngImport: i0, template: "<mrx-modal\n [title]=\"title\"\n [size]=\"'medium'\"\n (close)=\"close()\"\n>\n <div class=\"row\">\n <div class=\"col col-12\">\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\n </div>\n\n <div class=\"col col-12\">\n <div class=\"mrx-input-image-cropper__wrapper\">\n <image-cropper\n [imageFile]=\"fileImage\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"aspectRatio\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded($event)\"\n (cropperReady)=\"cropperReady()\"\n (loadImageFailed)=\"loadImageFailed()\"\n [backgroundColor]=\"'#000000'\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [cropperMaxWidth]=\"cropperMaxWidth\"\n [cropperMaxHeight]=\"cropperMaxHeight\"\n ></image-cropper>\n\n <div class=\"mrx-input-image-cropper__controls\">\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #footerContent>\n <mrx-button\n [customClasses]=\"'mr-3'\"\n [type]=\"'secondary'\"\n [size]=\"'medium'\"\n (click)=\"close()\"\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\n </mrx-button>\n <mrx-button\n [type]=\"'primary'\"\n [size]=\"'medium'\"\n (click)=\"ok()\"\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\n </mrx-button>\n </ng-template>\n</mrx-modal>\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:rgba(31,34,38,.5);border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"], components: [{ type: i1.ModalComponent, selector: "mrx-modal", inputs: ["title", "message", "okText", "closeText", "size", "color", "customClasses", "expandable", "isClose", "isBack", "backText", "enableFooter", "alignButtons", "isLoading", "iconPosition"], outputs: ["ok", "close", "back"] }, { type: i2.ImageCropperComponent, selector: "image-cropper", inputs: ["imageChangedEvent", "imageURL", "imageBase64", "imageFile", "imageAltText", "format", "transform", "maintainAspectRatio", "aspectRatio", "resetCropOnAspectRatioChange", "resizeToWidth", "resizeToHeight", "cropperMinWidth", "cropperMinHeight", "cropperMaxHeight", "cropperMaxWidth", "cropperStaticWidth", "cropperStaticHeight", "canvasRotation", "initialStepSize", "roundCropper", "onlyScaleDown", "imageQuality", "autoCrop", "backgroundColor", "containWithinAspectRatio", "hideResizeSquares", "allowMoveImage", "cropper", "alignImage", "disabled", "hidden"], outputs: ["imageCropped", "startCropImage", "imageLoaded", "cropperReady", "loadImageFailed", "transformChange"] }, { type: i3.ButtonComponent, selector: "mrx-button", inputs: ["size", "type", "color", "iconPosition", "active", "disabled", "isLoading", "iconOnly", "customClasses", "label", "icon", "iconClass", "buttonType", "href", "target", "routerLink", "queryParams"], outputs: ["mrxClick"] }] });
|
|
62
62
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: FileImageEditModalComponent, decorators: [{
|
|
63
63
|
type: Component,
|
|
64
64
|
args: [{ selector: 'mrx-file-image-edit-modal', template: "<mrx-modal\n [title]=\"title\"\n [size]=\"'medium'\"\n (close)=\"close()\"\n>\n <div class=\"row\">\n <div class=\"col col-12\">\n <p>\u0412\u044B\u0431\u0440\u0430\u043D\u043D\u0430\u044F \u043E\u0431\u043B\u0430\u0441\u0442\u044C \u0431\u0443\u0434\u0435\u0442 \u043F\u043E\u043A\u0430\u0437\u044B\u0432\u0430\u0442\u044C\u0441\u044F \u043D\u0430 \u043E\u0431\u043B\u043E\u0436\u043A\u0435 \u0441\u0442\u0440\u0430\u043D\u0438\u0446\u044B</p>\n </div>\n\n <div class=\"col col-12\">\n <div class=\"mrx-input-image-cropper__wrapper\">\n <image-cropper\n [imageFile]=\"fileImage\"\n [maintainAspectRatio]=\"true\"\n [aspectRatio]=\"aspectRatio\"\n format=\"png\"\n (imageCropped)=\"imageCropped($event)\"\n (imageLoaded)=\"imageLoaded($event)\"\n (cropperReady)=\"cropperReady()\"\n (loadImageFailed)=\"loadImageFailed()\"\n [backgroundColor]=\"'#000000'\"\n [canvasRotation]=\"canvasRotation\"\n [transform]=\"transform\"\n [cropperMaxWidth]=\"cropperMaxWidth\"\n [cropperMaxHeight]=\"cropperMaxHeight\"\n ></image-cropper>\n\n <div class=\"mrx-input-image-cropper__controls\">\n <svg (click)=\"rotateLeft()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"2\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M4.5 18.5C5.05228 18.5 5.5 18.0523 5.5 17.5C5.5 16.9477 5.05228 16.5 4.5 16.5C3.94772 16.5 3.5 16.9477 3.5 17.5C3.5 18.0523 3.94772 18.5 4.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M9.99978 20.3333L7.77756 18.1111L2.88867 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M13.1575 21.6842C18.5932 21.6842 22.9996 17.2777 22.9996 11.8421C22.9996 6.40646 18.5932 2 13.1575 2C7.72189 2 3.31543 6.40646 3.31543 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M1.00026 10.1052L3.31605 12.421L5.63184 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n\n <svg (click)=\"rotateRight()\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <rect x=\"14\" y=\"15\" width=\"8\" height=\"8\" rx=\"0.888889\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M16.5 18.5C17.0523 18.5 17.5 18.0523 17.5 17.5C17.5 16.9477 17.0523 16.5 16.5 16.5C15.9477 16.5 15.5 16.9477 15.5 17.5C15.5 18.0523 15.9477 18.5 16.5 18.5Z\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M21.9998 20.3333L19.7776 18.1111L14.8887 23\" stroke=\"white\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n <path d=\"M10.8425 21.6842C5.40682 21.6842 1.00036 17.2777 1.00036 11.8421C1.00036 6.40646 5.40682 2 10.8425 2C16.2781 2 20.6846 6.40646 20.6846 11.8421\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\"/>\n <path d=\"M22.9997 10.1052L20.684 12.421L18.3682 10.1052\" stroke=\"white\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\n </svg>\n </div>\n </div>\n </div>\n </div>\n\n <ng-template #footerContent>\n <mrx-button\n [customClasses]=\"'mr-3'\"\n [type]=\"'secondary'\"\n [size]=\"'medium'\"\n (click)=\"close()\"\n >\u041E\u0442\u043C\u0435\u043D\u0438\u0442\u044C\n </mrx-button>\n <mrx-button\n [type]=\"'primary'\"\n [size]=\"'medium'\"\n (click)=\"ok()\"\n >\u041F\u043E\u0434\u0442\u0432\u0435\u0440\u0434\u0438\u0442\u044C\n </mrx-button>\n </ng-template>\n</mrx-modal>\n", styles: [":host::ng-deep .mrx-input-image-cropper__wrapper{position:relative}:host::ng-deep .mrx-input-image-cropper__controls{padding:8px;background:rgba(31,34,38,.5);border-radius:4px;position:absolute;left:50%;bottom:24px;transform:translate(-50%)}:host::ng-deep .mrx-input-image-cropper__controls svg{cursor:pointer}:host::ng-deep .mrx-input-image-cropper__controls svg:not(:last-child){margin-right:16px}\n"] }]
|