@libs-ui/components-image-editor 0.2.306 → 0.2.307-0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +50 -45
- package/defines/image-editor.define.d.ts +1 -1
- package/demo/image-editor-demo.component.d.ts +2 -0
- package/esm2022/defines/image-editor.define.mjs +14 -14
- package/esm2022/demo/image-editor-demo.component.mjs +29 -26
- package/esm2022/image-editor.component.mjs +54 -39
- package/esm2022/index.mjs +1 -1
- package/esm2022/interfaces/function-control-event.interface.mjs +1 -1
- package/esm2022/interfaces/image-editor.interface.mjs +1 -1
- package/esm2022/resize/resize.component.mjs +21 -20
- package/fesm2022/libs-ui-components-image-editor.mjs +108 -89
- package/fesm2022/libs-ui-components-image-editor.mjs.map +1 -1
- package/image-editor.component.d.ts +1 -0
- package/package.json +9 -9
- package/resize/resize.component.d.ts +5 -5
package/esm2022/index.mjs
CHANGED
|
@@ -3,4 +3,4 @@ export * from './interfaces/image-editor.interface';
|
|
|
3
3
|
export * from './interfaces/function-control-event.interface';
|
|
4
4
|
export * from './resize/resize.component';
|
|
5
5
|
export * from './demo/image-editor-demo.component';
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDJCQUEyQixDQUFDO0FBQzFDLGNBQWMsb0NBQW9DLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2ltYWdlLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2ltYWdlLWVkaXRvci5pbnRlcmZhY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmV4cG9ydCAqIGZyb20gJy4vcmVzaXplL3Jlc2l6ZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9kZW1vL2ltYWdlLWVkaXRvci1kZW1vLmNvbXBvbmVudCc7XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW1hZ2UtZWRpdG9yL3NyYy9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIElJbWFnZUVkaXRvckZ1bmN0aW9uQ29udHJvbEV2ZW50IHtcbiAgY3JvcEltYWdlOiAoKSA9PiBQcm9taXNlPHN0cmluZz47XG4gIHNldExvYWRpbmdTdGF0ZTogKGxvYWRpbmc6IGJvb2xlYW4pID0+IHZvaWQ7XG59XG4iXX0=
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1hZ2UtZWRpdG9yLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL2ludGVyZmFjZXMvaW1hZ2UtZWRpdG9yLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVFlQRV9BU1BFQ1RfUkFUSU8gfSBmcm9tICdAbGlicy11aS9pbnRlcmZhY2VzLXR5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBJU2F2ZUZpbGUge1xuICBmaWxlOiBCbG9iO1xuICB1cmw6IHN0cmluZztcbiAgbW9kZTogVFlQRV9NT0RFX1NBVkU7XG59XG5cbmV4cG9ydCB0eXBlIFRZUEVfTU9ERV9TQVZFID0gJ3NhdmUtZmlsZScgfCAnc2F2ZS1hcGknIHwgJ3NhdmUtYXBpLWFzLW5ldy1maWxlJztcbmV4cG9ydCBpbnRlcmZhY2UgSUNyb3BSYXRpb0l0ZW0ge1xuICBrZXk6IFRZUEVfQVNQRUNUX1JBVElPO1xuICBpY29uOiBzdHJpbmc7XG4gIHZhbHVlPzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDcm9wU2l6ZSB7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElSZWN0Q2xpcCB7XG4gIHRvcDogbnVtYmVyO1xuICBsZWZ0OiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICByaWdodDogbnVtYmVyO1xuICBib3R0b206IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUmVzaXplRGF0YSB7XG4gIHJhdGlvOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgdHlwZSBUWVBFX1JFU0laRV9TVEFURSA9ICdUTCcgfCAnQkwnIHwgJ1RSJyB8ICdCUicgfCAnVkwnIHwgJ1ZSJyB8ICdIVCcgfCAnSEInIHwgJ25vbmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIElTdGFydE1vdXNlRGltIHtcbiAgY2xpZW50WDogbnVtYmVyO1xuICBjbGllbnRZOiBudW1iZXI7XG4gIHdpZHRoOiBudW1iZXI7XG4gIGhlaWdodDogbnVtYmVyO1xuICB0b3A6IG51bWJlcjtcbiAgbGVmdDogbnVtYmVyO1xuICBpbWFnZVRvcDogbnVtYmVyO1xuICBpbWFnZUxlZnQ6IG51bWJlcjtcbiAgaW1hZ2VXaWR0aDogbnVtYmVyO1xuICBpbWFnZUhlaWdodDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHlsZXMge1xuICB3aWR0aD86IG51bWJlcjtcbiAgaGVpZ2h0PzogbnVtYmVyO1xuICB0b3A/OiBudW1iZXI7XG4gIGxlZnQ/OiBudW1iZXI7XG4gIGRpc3BsYXk/OiBzdHJpbmc7XG4gIHNyYz86IHN0cmluZztcbiAgY2xpcD86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgTU9ERV9FRElUID0gJ3NhdmUtZmlsZScgfCAnc2F2ZS1hcGknO1xuIl19
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from
|
|
2
|
-
import { getDataUrl } from
|
|
3
|
-
import { TranslateModule } from
|
|
4
|
-
import { LibsUiComponentsModalComponent } from
|
|
5
|
-
import { LibsUiComponentsInputsValidComponent } from
|
|
6
|
-
import { convertBase64ToBlob, convertBlobToFile, getLabelBySizeFile } from
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { getDataUrl } from '../defines/image-editor.define';
|
|
3
|
+
import { TranslateModule } from '@ngx-translate/core';
|
|
4
|
+
import { LibsUiComponentsModalComponent } from '@libs-ui/components-modal';
|
|
5
|
+
import { LibsUiComponentsInputsValidComponent } from '@libs-ui/components-inputs-valid';
|
|
6
|
+
import { convertBase64ToBlob, convertBlobToFile, getLabelBySizeFile } from '@libs-ui/utils';
|
|
7
7
|
import * as i0 from "@angular/core";
|
|
8
8
|
import * as i1 from "@ngx-translate/core";
|
|
9
9
|
export class LibsUiComponentsImageEditorResizeComponent {
|
|
@@ -21,17 +21,20 @@ export class LibsUiComponentsImageEditorResizeComponent {
|
|
|
21
21
|
outClose = new EventEmitter();
|
|
22
22
|
outSave = new EventEmitter();
|
|
23
23
|
constructor() {
|
|
24
|
-
this.buttonsFooter = [
|
|
24
|
+
this.buttonsFooter = [
|
|
25
|
+
{
|
|
25
26
|
type: 'button-third',
|
|
26
27
|
label: 'i18n_cancel',
|
|
27
|
-
action: async () => this.outClose.emit()
|
|
28
|
-
},
|
|
28
|
+
action: async () => this.outClose.emit(),
|
|
29
|
+
},
|
|
30
|
+
{
|
|
29
31
|
label: 'i18n_save',
|
|
30
32
|
action: async () => {
|
|
31
33
|
this.outSave.emit(this.resizeData);
|
|
32
34
|
this.outClose.emit();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
+
},
|
|
36
|
+
},
|
|
37
|
+
];
|
|
35
38
|
this.inputValidFunctionControl = [];
|
|
36
39
|
}
|
|
37
40
|
async ngOnInit() {
|
|
@@ -48,8 +51,8 @@ export class LibsUiComponentsImageEditorResizeComponent {
|
|
|
48
51
|
ratio = 100;
|
|
49
52
|
this.resizeData.ratio = ratio;
|
|
50
53
|
}
|
|
51
|
-
this.resizeData.width = Math.max(parseInt(`${this.originWidth * ratio / 100}`), 1);
|
|
52
|
-
this.resizeData.height = Math.max(parseInt(`${this.originHeight * ratio / 100}`), 1);
|
|
54
|
+
this.resizeData.width = Math.max(parseInt(`${(this.originWidth * ratio) / 100}`), 1);
|
|
55
|
+
this.resizeData.height = Math.max(parseInt(`${(this.originHeight * ratio) / 100}`), 1);
|
|
53
56
|
// this.inputValidFunctionControl.forEach(item => item.detectChanges());
|
|
54
57
|
this.currentFileSize = await this.getFileSize();
|
|
55
58
|
}
|
|
@@ -81,8 +84,8 @@ export class LibsUiComponentsImageEditorResizeComponent {
|
|
|
81
84
|
if (!value || value > originByValue) {
|
|
82
85
|
return;
|
|
83
86
|
}
|
|
84
|
-
this.resizeData[fieldResize] = Math.max(parseInt(`${originOtherValue * value / originByValue}`), 1);
|
|
85
|
-
this.resizeData.ratio = Math.max(parseInt(`${100 * value / originByValue}`), 1);
|
|
87
|
+
this.resizeData[fieldResize] = Math.max(parseInt(`${(originOtherValue * value) / originByValue}`), 1);
|
|
88
|
+
this.resizeData.ratio = Math.max(parseInt(`${(100 * value) / originByValue}`), 1);
|
|
86
89
|
this.currentFileSize = await this.getFileSize();
|
|
87
90
|
}
|
|
88
91
|
handlerInputValidFunctionControl(event) {
|
|
@@ -94,13 +97,11 @@ export class LibsUiComponentsImageEditorResizeComponent {
|
|
|
94
97
|
}
|
|
95
98
|
}
|
|
96
99
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsImageEditorResizeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
97
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LibsUiComponentsImageEditorResizeComponent, isStandalone: true, selector: "libs-ui-components-image_editor-resize", inputs: { resizeData: "resizeData", originWidth: "originWidth", originHeight: "originHeight", src: "src", zIndex: "zIndex", mimetype: "mimetype" }, outputs: { outClose: "outClose", outSave: "outSave" }, ngImport: i0, template: "<libs_ui-components-modal
|
|
100
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: LibsUiComponentsImageEditorResizeComponent, isStandalone: true, selector: "libs-ui-components-image_editor-resize", inputs: { resizeData: "resizeData", originWidth: "originWidth", originHeight: "originHeight", src: "src", zIndex: "zIndex", mimetype: "mimetype" }, outputs: { outClose: "outClose", outSave: "outSave" }, ngImport: i0, template: "<libs_ui-components-modal\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [mode]=\"'center'\"\n [width]=\"'500px'\"\n [height]=\"'auto'\"\n [title]=\"'i18n_resize' | translate\"\n [zIndex]=\"zIndex\"\n [buttonsFooter]=\"buttonsFooter\"\n (outEvent)=\"handlerEvent($event)\">\n <div class=\"libs-ui-modal-body-custom w-full h-full\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">{{ 'i18n_ratio_size' | translate }} (%)</div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[132px]'\"\n [dataType]=\"'int'\"\n [fieldNameBind]=\"'ratio'\"\n [(item)]=\"resizeData\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"100\"\n [valueUpDownNumber]=\"1\"\n [validRequired]=\"{ isRequired: true }\"\n [ignoreShowError]=\"true\"\n (outValueChange)=\"handlerResizeRatio()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"mt-[16px] relative\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_width' | translate }}\n </div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [maxValueNumber]=\"originWidth\"\n [minValueNumber]=\"1\"\n [fieldNameBind]=\"'width'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{ id: 'px', label: 'px' }]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeWidth()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"flex items-center mt-[8px]\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_length' | translate }}\n </div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"originHeight\"\n [fieldNameBind]=\"'height'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{ id: 'px', label: 'px' }]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeHeight()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"absolute flex items-center left-[236px] top-[14px]\">\n <div class=\"w-[20px] h-[44px] libs-ui-border-top-general libs-ui-border-right-general libs-ui-border-bottom-general\"></div>\n <div class=\"ml-[6px] text-[#9ca2ad] libs-ui-icon-lock\"></div>\n </div>\n </div>\n <div class=\"mt-[16px]\">\n <div class=\"libs-ui-font-h6m text-[#6a7383] mb-[8px]\">{{ 'i18n_size_photo' | translate }}</div>\n <div class=\"libs-ui-font-h5r rounded-[4px] py-[8px] px-[16px] bg-[#f8f9fa] text-[#9ca2ad]\">\n {{ 'i18n_file_size_compare_when_resize' | translate: { current_size: currentFileSize, original_size: originFileSize } }}\n </div>\n </div>\n </div>\n</libs_ui-components-modal>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsModalComponent, selector: "libs_ui-components-modal", inputs: ["show", "mode", "isBackdropTransparent", "isBackgroundTransparentModal", "isSizeBackdropByWidthHeightInput", "hasShadowBoxWhenHiddenBackDropTransparent", "classIncludeModalWrapper", "zIndex", "width", "height", "maxWidth", "maxHeight", "minWidth", "isFullScreen", "disable", "ignoreCommunicateMicroEvent", "headerConfig", "bodyConfig", "footerConfig", "buttonsFooter", "title", "titleUseXssFilter", "titleUseTooltip", "titleUseInnerText"], outputs: ["showChange", "widthChange", "heightChange", "maxWidthChange", "maxHeightChange", "minWidthChange", "disableChange", "buttonsFooterChange", "outScrollContent", "outEvent", "outFunctionControl"] }, { kind: "component", type: LibsUiComponentsInputsValidComponent, selector: "libs_ui-components-inputs-valid", inputs: ["item", "labelConfig", "emitEmptyInDataTypeNumber", "ignoreBlockInputMaxValue", "fieldNameBind", "showCount", "typeComponentSelectItem", "valueComponentSelectItem", "disableComponentSelectItem", "tagInput", "dataType", "typeInput", "modeInput", "resetAutoCompletePassword", "textAreaEnterNotNewLine", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "ignoreWidthInput100", "classIncludeInput", "classContainerInput", "readonly", "disable", "noBorder", "backgroundNone", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "classContainerBottomInput", "autoRemoveEmoji", "defaultHeight", "maxHeightTextArea", "minHeightTextArea", "ignoreShowError", "borderError", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "zIndexPopoverContent", "unitsLeft", "configUnitLeft", "keySelectedUnitLeft", "unitsRight", "configUnitRight", "keySelectedUnitRight", "maxValueNumber", "minValueNumber", "ignoreContentLeft", "ignoreContentRight", "isBaselineStyle", "valuePatternShowError", "validPattern", "validRequired", "validMinLength", "validMinValue", "validMaxValue", "validMaxLength", "functionValid", "maxLength", "positionMessageErrorStartInput", "classInclude", "resize", "templateLeftBottomInput", "templateRightBottomInput", "onlyAcceptNegativeValue", "autoAddZeroLessThan10InTypeInt", "maxLengthNumberCount", "classMessageErrorInclude", "ignoreStopPropagationEvent", "ignoreUnitRightClassReadOnly", "paddingRightCustomSpecific", "focusTimeOut", "debounceTimeValidate"], outputs: ["itemChange", "outValueChange", "outSelect", "outIconLeft", "outIconRight", "outClickButtonLabel", "outSwitchEventLabel", "outLabelRightClick", "outEnterInputEvent", "outHeightAreaChange", "outFunctionsControl", "outFocusAndBlur", "outChangeValueByButtonUpDown"] }] });
|
|
98
101
|
}
|
|
99
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsImageEditorResizeComponent, decorators: [{
|
|
100
103
|
type: Component,
|
|
101
|
-
args: [{ selector: 'libs-ui-components-image_editor-resize', standalone: true, imports: [
|
|
102
|
-
TranslateModule, LibsUiComponentsModalComponent, LibsUiComponentsInputsValidComponent
|
|
103
|
-
], template: "<libs_ui-components-modal [headerConfig]=\"{ignoreHeaderTheme: true}\"\n [mode]=\"'center'\"\n [width]=\"'500px'\"\n [height]=\"'auto'\"\n [title]=\"'i18n_resize' | translate\"\n [zIndex]=\"zIndex\"\n [buttonsFooter]=\"buttonsFooter\"\n (outEvent)=\"handlerEvent($event)\">\n <div class=\"libs-ui-modal-body-custom w-full h-full\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_ratio_size' | translate }} (%)\n </div>\n <libs_ui-components-inputs-valid [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[132px]'\"\n [dataType]=\"'int'\"\n [fieldNameBind]=\"'ratio'\"\n [(item)]=\"resizeData\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"100\"\n [valueUpDownNumber]=\"1\"\n [validRequired]=\"{isRequired: true}\"\n [ignoreShowError]=\"true\"\n (outValueChange)=\"handlerResizeRatio()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"mt-[16px] relative\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_width' | translate }}\n </div>\n <libs_ui-components-inputs-valid [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [maxValueNumber]=\"originWidth\"\n [minValueNumber]=\"1\"\n [fieldNameBind]=\"'width'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{id: 'px', label: 'px'}]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeWidth()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"flex items-center mt-[8px]\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_length' | translate }}\n </div>\n <libs_ui-components-inputs-valid [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"originHeight\"\n [fieldNameBind]=\"'height'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{id: 'px', label: 'px'}]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeHeight()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"absolute flex items-center left-[236px] top-[14px]\">\n <div\n class=\"w-[20px] h-[44px] libs-ui-border-top-general libs-ui-border-right-general libs-ui-border-bottom-general\">\n </div>\n <div class=\"ml-[6px] text-[#9ca2ad] libs-ui-icon-lock\"></div>\n </div>\n </div>\n <div class=\"mt-[16px]\">\n <div class=\"libs-ui-font-h6m text-[#6a7383] mb-[8px]\">{{ 'i18n_size_photo' | translate }}</div>\n <div class=\"libs-ui-font-h5r rounded-[4px] py-[8px] px-[16px] bg-[#f8f9fa] text-[#9ca2ad]\">\n {{ 'i18n_file_size_compare_when_resize' | translate:{current_size: currentFileSize, original_size: originFileSize} }}\n </div>\n </div>\n </div>\n</libs_ui-components-modal>\n" }]
|
|
104
|
+
args: [{ selector: 'libs-ui-components-image_editor-resize', standalone: true, imports: [TranslateModule, LibsUiComponentsModalComponent, LibsUiComponentsInputsValidComponent], template: "<libs_ui-components-modal\n [headerConfig]=\"{ ignoreHeaderTheme: true }\"\n [mode]=\"'center'\"\n [width]=\"'500px'\"\n [height]=\"'auto'\"\n [title]=\"'i18n_resize' | translate\"\n [zIndex]=\"zIndex\"\n [buttonsFooter]=\"buttonsFooter\"\n (outEvent)=\"handlerEvent($event)\">\n <div class=\"libs-ui-modal-body-custom w-full h-full\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">{{ 'i18n_ratio_size' | translate }} (%)</div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[132px]'\"\n [dataType]=\"'int'\"\n [fieldNameBind]=\"'ratio'\"\n [(item)]=\"resizeData\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"100\"\n [valueUpDownNumber]=\"1\"\n [validRequired]=\"{ isRequired: true }\"\n [ignoreShowError]=\"true\"\n (outValueChange)=\"handlerResizeRatio()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"mt-[16px] relative\">\n <div class=\"flex items-center\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_width' | translate }}\n </div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [maxValueNumber]=\"originWidth\"\n [minValueNumber]=\"1\"\n [fieldNameBind]=\"'width'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{ id: 'px', label: 'px' }]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeWidth()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"flex items-center mt-[8px]\">\n <div class=\"libs-ui-font-h7r mr-[4px] text-[#6a7383] w-[100px] shrink-0\">\n {{ 'i18n_length' | translate }}\n </div>\n <libs_ui-components-inputs-valid\n [ignoreWidthInput100]=\"true\"\n [classIncludeInput]=\"'w-[102px]'\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"1\"\n [maxValueNumber]=\"originHeight\"\n [fieldNameBind]=\"'height'\"\n [(item)]=\"resizeData\"\n [unitsRight]=\"[{ id: 'px', label: 'px' }]\"\n [keySelectedUnitRight]=\"'px'\"\n [valueUpDownNumber]=\"1\"\n (outValueChange)=\"handlerResizeHeight()\"\n (outFunctionsControl)=\"handlerInputValidFunctionControl($event)\" />\n </div>\n <div class=\"absolute flex items-center left-[236px] top-[14px]\">\n <div class=\"w-[20px] h-[44px] libs-ui-border-top-general libs-ui-border-right-general libs-ui-border-bottom-general\"></div>\n <div class=\"ml-[6px] text-[#9ca2ad] libs-ui-icon-lock\"></div>\n </div>\n </div>\n <div class=\"mt-[16px]\">\n <div class=\"libs-ui-font-h6m text-[#6a7383] mb-[8px]\">{{ 'i18n_size_photo' | translate }}</div>\n <div class=\"libs-ui-font-h5r rounded-[4px] py-[8px] px-[16px] bg-[#f8f9fa] text-[#9ca2ad]\">\n {{ 'i18n_file_size_compare_when_resize' | translate: { current_size: currentFileSize, original_size: originFileSize } }}\n </div>\n </div>\n </div>\n</libs_ui-components-modal>\n" }]
|
|
104
105
|
}], ctorParameters: () => [], propDecorators: { resizeData: [{
|
|
105
106
|
type: Input,
|
|
106
107
|
args: [{ required: true }]
|
|
@@ -122,4 +123,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
122
123
|
}], outSave: [{
|
|
123
124
|
type: Output
|
|
124
125
|
}] } });
|
|
125
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL3Jlc2l6ZS9yZXNpemUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvcmVzaXplL3Jlc2l6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFvQixNQUFNLDJCQUEyQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFXNUYsTUFBTSxPQUFPLDBDQUEwQztJQUUzQyxhQUFhLENBQWlCO0lBQzlCLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3BCLGNBQWMsQ0FBVTtJQUN4QixlQUFlLENBQVU7SUFFM0IseUJBQXlCLENBQXlDO0lBRS9DLFVBQVUsQ0FBZTtJQUN6QixXQUFXLENBQVU7SUFDckIsWUFBWSxDQUFVO0lBQ3RCLEdBQUcsQ0FBVTtJQUMvQixNQUFNLENBQVU7SUFDaEIsUUFBUSxDQUFVO0lBRVIsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDcEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFN0Q7UUFDRSxJQUFJLENBQUMsYUFBYSxH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aEYsSUFBSSxDQUFDLGVBQWUsR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsRCxDQUFDO0lBRVMsZ0NBQWdDLENBQUMsS0FBc0M7UUFDL0UsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM3QyxDQUFDO0lBRVMsWUFBWSxDQUFDLEtBQXVCO1FBQzVDLElBQUksS0FBSyxLQUFLLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsQ0FBQztJQUNILENBQUM7d0dBeEdVLDBDQUEwQzs0RkFBMUMsMENBQTBDLDZTQ25CdkQsODFHQTRFQSwyQ0Q1REksZUFBZSw0RkFBRSw4QkFBOEIsbXRCQUFFLG9DQUFvQzs7NEZBRzVFLDBDQUEwQztrQkFUdEQsU0FBUzsrQkFFRSx3Q0FBd0MsY0FFdEMsSUFBSSxXQUNQO3dCQUNQLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSxvQ0FBb0M7cUJBQ3RGO3dEQVcwQixVQUFVO3NCQUFwQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxXQUFXO3NCQUFyQyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxZQUFZO3NCQUF0QyxLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDRSxHQUFHO3NCQUE3QixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFDaEIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBRWEsUUFBUTtzQkFBMUIsTUFBTTtnQkFDWSxPQUFPO3NCQUF6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBnZXREYXRhVXJsIH0gZnJvbSBcIi4uL2RlZmluZXMvaW1hZ2UtZWRpdG9yLmRlZmluZVwiO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcbmltcG9ydCB7IElCdXR0b24gfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvblwiO1xuaW1wb3J0IHsgSUlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2xFdmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy12YWxpZFwiO1xuaW1wb3J0IHsgSVJlc2l6ZURhdGEgfSBmcm9tIFwiLi4vaW50ZXJmYWNlcy9pbWFnZS1lZGl0b3IuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzTW9kYWxDb21wb25lbnQsIFRZUEVfTU9EQUxfRVZFTlQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1tb2RhbFwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtaW5wdXRzLXZhbGlkXCI7XG5pbXBvcnQgeyBjb252ZXJ0QmFzZTY0VG9CbG9iLCBjb252ZXJ0QmxvYlRvRmlsZSwgZ2V0TGFiZWxCeVNpemVGaWxlIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2NvbXBvbmVudC1zZWxlY3RvclxuICBzZWxlY3RvcjogJ2xpYnMtdWktY29tcG9uZW50cy1pbWFnZV9lZGl0b3ItcmVzaXplJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3Jlc2l6ZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsIExpYnNVaUNvbXBvbmVudHNNb2RhbENvbXBvbmVudCwgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgTGlic1VpQ29tcG9uZW50c0ltYWdlRWRpdG9yUmVzaXplQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwcm90ZWN0ZWQgYnV0dG9uc0Zvb3RlcjogQXJyYXk8SUJ1dHRvbj47XG4gIHByb3RlY3RlZCBpbWFnZSA9IG5ldyBJbWFnZSgpO1xuICBwcm90ZWN0ZWQgb3JpZ2luRmlsZVNpemUhOiBzdHJpbmc7XG4gIHByb3RlY3RlZCBjdXJyZW50RmlsZVNpemUhOiBzdHJpbmc7XG5cbiAgcHJpdmF0ZSBpbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sOiBBcnJheTxJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50PjtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSByZXNpemVEYXRhITogSVJlc2l6ZURhdGE7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG9yaWdpbldpZHRoITogbnVtYmVyO1xuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KSBvcmlnaW5IZWlnaHQhOiBudW1iZXI7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHNyYyE6IHN0cmluZztcbiAgQElucHV0KCkgekluZGV4PzogbnVtYmVyO1xuICBASW5wdXQoKSBtaW1ldHlwZT86IHN0cmluZztcblxuICBAT3V0cHV0KCkgcmVhZG9ubHkgb3V0Q2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBvdXRTYXZlID0gbmV3IEV2ZW50RW1pdHRlcjxJUmVzaXplRGF0YT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmJ1dHRvbnNGb290ZXIgPSBbe1xuICAgICAgdHlwZTogJ2J1dHRvbi10aGlyZCcsXG4gICAgICBsYWJlbDogJ2kxOG5fY2FuY2VsJyxcbiAgICAgIGFjdGlvbjogYXN5bmMgKCkgPT4gdGhpcy5vdXRDbG9zZS5lbWl0KClcbiAgICB9LCB7XG4gICAgICBsYWJlbDogJ2kxOG5fc2F2ZScsXG4gICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgdGhpcy5vdXRTYXZlLmVtaXQodGhpcy5yZXNpemVEYXRhKTtcbiAgICAgICAgdGhpcy5vdXRDbG9zZS5lbWl0KCk7XG4gICAgICB9XG4gICAgfV07XG4gICAgdGhpcy5pbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sID0gW107XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBmaWxlU2l6ZSA9IGF3YWl0IHRoaXMuZ2V0RmlsZVNpemUoKTtcblxuICAgIHRoaXMuY3VycmVudEZpbGVTaXplID0gZmlsZVNpemU7XG4gICAgdGhpcy5vcmlnaW5GaWxlU2l6ZSA9IGZpbGVTaXplO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIGhhbmRsZXJSZXNpemVSYXRpbygpIHtcbiAgICBsZXQgcmF0aW8gPSBwYXJzZUludChgJHt0aGlzLnJlc2l6ZURhdGEucmF0aW99YCk7XG5cbiAgICBpZiAoIXJhdGlvIHx8IHJhdGlvIDwgMCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAocmF0aW8gPiAxMDApIHtcbiAgICAgIHJhdGlvID0gMTAwO1xuICAgICAgdGhpcy5yZXNpemVEYXRhLnJhdGlvID0gcmF0aW87XG4gICAgfVxuICAgIHRoaXMucmVzaXplRGF0YS53aWR0aCA9IE1hdGgubWF4KHBhcnNlSW50KGAke3RoaXMub3JpZ2luV2lkdGggKiByYXRpbyAvIDEwMH1gKSwgMSk7XG4gICAgdGhpcy5yZXNpemVEYXRhLmhlaWdodCA9IE1hdGgubWF4KHBhcnNlSW50KGAke3RoaXMub3JpZ2luSGVpZ2h0ICogcmF0aW8gLyAxMDB9YCksIDEpO1xuICAgIC8vIHRoaXMuaW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbC5mb3JFYWNoKGl0ZW0gPT4gaXRlbS5kZXRlY3RDaGFuZ2VzKCkpO1xuICAgIHRoaXMuY3VycmVudEZpbGVTaXplID0gYXdhaXQgdGhpcy5nZXRGaWxlU2l6ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRGaWxlU2l6ZSgpIHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8c3RyaW5nPigocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5pbWFnZS5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIGNvbnN0IGNhbnZhcyA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2NhbnZhcycpO1xuXG4gICAgICAgIGNhbnZhcy53aWR0aCA9IHRoaXMucmVzaXplRGF0YS53aWR0aDtcbiAgICAgICAgY2FudmFzLmhlaWdodCA9IHRoaXMucmVzaXplRGF0YS5oZWlnaHQ7XG4gICAgICAgIGNvbnN0IGN0eCA9IGNhbnZhcy5nZXRDb250ZXh0KCcyZCcpO1xuICAgICAgICBpZiAoY3R4KSB7XG4gICAgICAgICAgY3R4LmRyYXdJbWFnZSh0aGlzLmltYWdlLCAwLCAwLCBjYW52YXMud2lkdGgsIGNhbnZhcy5oZWlnaHQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IHNyYyA9IGdldERhdGFVcmwoY2FudmFzLCB0aGlzLm1pbWV0eXBlLCB0aGlzLnNyYyk7XG4gICAgICAgIGNvbnN0IGZpbGUgPSBjb252ZXJ0QmFzZTY0VG9CbG9iKHNyYyk7XG5cbiAgICAgICAgcmVzb2x2ZShnZXRMYWJlbEJ5U2l6ZUZpbGUoY29udmVydEJsb2JUb0ZpbGUoZmlsZSwgRGF0ZS5ub3coKS50b0xvY2FsZVN0cmluZygpKS5zaXplKSk7XG4gICAgICB9O1xuICAgICAgdGhpcy5pbWFnZS5zcmMgPSB0aGlzLnNyYztcbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyUmVzaXplV2lkdGgoKSB7XG4gICAgdGhpcy5wcm9jZXNzUmVzaXplV2lkdGhPckhlaWdodCgnd2lkdGgnLCAnaGVpZ2h0JywgdGhpcy5vcmlnaW5XaWR0aCwgdGhpcy5vcmlnaW5IZWlnaHQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJSZXNpemVIZWlnaHQoKSB7XG4gICAgdGhpcy5wcm9jZXNzUmVzaXplV2lkdGhPckhlaWdodCgnaGVpZ2h0JywgJ3dpZHRoJywgdGhpcy5vcmlnaW5IZWlnaHQsIHRoaXMub3JpZ2luV2lkdGgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBwcm9jZXNzUmVzaXplV2lkdGhPckhlaWdodChyZXNpemVCeTogJ3dpZHRoJyB8ICdoZWlnaHQnLCBmaWVsZFJlc2l6ZTogJ3dpZHRoJyB8ICdoZWlnaHQnLCBvcmlnaW5CeVZhbHVlOiBudW1iZXIsIG9yaWdpbk90aGVyVmFsdWU6IG51bWJlcikge1xuICAgIGNvbnN0IHZhbHVlID0gcGFyc2VJbnQoYCR7dGhpcy5yZXNpemVEYXRhW3Jlc2l6ZUJ5XX1gKTtcblxuICAgIGlmICghdmFsdWUgfHwgdmFsdWUgPiBvcmlnaW5CeVZhbHVlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMucmVzaXplRGF0YVtmaWVsZFJlc2l6ZV0gPSBNYXRoLm1heChwYXJzZUludChgJHtvcmlnaW5PdGhlclZhbHVlICogdmFsdWUgLyBvcmlnaW5CeVZhbHVlfWApLCAxKTtcbiAgICB0aGlzLnJlc2l6ZURhdGEucmF0aW8gPSBNYXRoLm1heChwYXJzZUludChgJHsxMDAgKiB2YWx1ZSAvIG9yaWdpbkJ5VmFsdWV9YCksIDEpO1xuICAgIHRoaXMuY3VycmVudEZpbGVTaXplID0gYXdhaXQgdGhpcy5nZXRGaWxlU2l6ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5pbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sLnB1c2goZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudChldmVudDogVFlQRV9NT0RBTF9FVkVOVCkge1xuICAgIGlmIChldmVudCA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy5vdXRDbG9zZS5lbWl0KCk7XG4gICAgfVxuICB9XG5cbn0iLCI8bGlic191aS1jb21wb25lbnRzLW1vZGFsIFtoZWFkZXJDb25maWddPVwie2lnbm9yZUhlYWRlclRoZW1lOiB0cnVlfVwiXG4gIFttb2RlXT1cIidjZW50ZXInXCJcbiAgW3dpZHRoXT1cIic1MDBweCdcIlxuICBbaGVpZ2h0XT1cIidhdXRvJ1wiXG4gIFt0aXRsZV09XCInaTE4bl9yZXNpemUnIHwgdHJhbnNsYXRlXCJcbiAgW3pJbmRleF09XCJ6SW5kZXhcIlxuICBbYnV0dG9uc0Zvb3Rlcl09XCJidXR0b25zRm9vdGVyXCJcbiAgKG91dEV2ZW50KT1cImhhbmRsZXJFdmVudCgkZXZlbnQpXCI+XG4gIDxkaXYgY2xhc3M9XCJsaWJzLXVpLW1vZGFsLWJvZHktY3VzdG9tIHctZnVsbCBoLWZ1bGxcIj5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDdyIG1yLVs0cHhdIHRleHQtWyM2YTczODNdIHctWzEwMHB4XSBzaHJpbmstMFwiPlxuICAgICAgICB7eyAnaTE4bl9yYXRpb19zaXplJyB8IHRyYW5zbGF0ZSB9fSAoJSlcbiAgICAgIDwvZGl2PlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdmFsaWQgW2lnbm9yZVdpZHRoSW5wdXQxMDBdPVwidHJ1ZVwiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVJbnB1dF09XCIndy1bMTMycHhdJ1wiXG4gICAgICAgIFtkYXRhVHlwZV09XCInaW50J1wiXG4gICAgICAgIFtmaWVsZE5hbWVCaW5kXT1cIidyYXRpbydcIlxuICAgICAgICBbKGl0ZW0pXT1cInJlc2l6ZURhdGFcIlxuICAgICAgICBbbWluVmFsdWVOdW1iZXJdPVwiMVwiXG4gICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCIxMDBcIlxuICAgICAgICBbdmFsdWVVcERvd25OdW1iZXJdPVwiMVwiXG4gICAgICAgIFt2YWxpZFJlcXVpcmVkXT1cIntpc1JlcXVpcmVkOiB0cnVlfVwiXG4gICAgICAgIFtpZ25vcmVTaG93RXJyb3JdPVwidHJ1ZVwiXG4gICAgICAgIChvdXRWYWx1ZUNoYW5nZSk9XCJoYW5kbGVyUmVzaXplUmF0aW8oKVwiXG4gICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sKCRldmVudClcIiAvPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJtdC1bMTZweF0gcmVsYXRpdmVcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS1mb250LWg3ciBtci1bNHB4XSB0ZXh0LVsjNmE3MzgzXSB3LVsxMDBweF0gc2hyaW5rLTBcIj5cbiAgICAgICAgICB7eyAnaTE4bl93aWR0aCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXZhbGlkIFtpZ25vcmVXaWR0aElucHV0MTAwXT1cInRydWVcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVJbnB1dF09XCIndy1bMTAycHhdJ1wiXG4gICAgICAgICAgW2RhdGFUeXBlXT1cIidpbnQnXCJcbiAgICAgICAgICBbbWF4VmFsdWVOdW1iZXJdPVwib3JpZ2luV2lkdGhcIlxuICAgICAgICAgIFttaW5WYWx1ZU51bWJlcl09XCIxXCJcbiAgICAgICAgICBbZmllbGROYW1lQmluZF09XCInd2lkdGgnXCJcbiAgICAgICAgICBbKGl0ZW0pXT1cInJlc2l6ZURhdGFcIlxuICAgICAgICAgIFt1bml0c1JpZ2h0XT1cIlt7aWQ6ICdweCcsIGxhYmVsOiAncHgnfV1cIlxuICAgICAgICAgIFtrZXlTZWxlY3RlZFVuaXRSaWdodF09XCIncHgnXCJcbiAgICAgICAgICBbdmFsdWVVcERvd25OdW1iZXJdPVwiMVwiXG4gICAgICAgICAgKG91dFZhbHVlQ2hhbmdlKT1cImhhbmRsZXJSZXNpemVXaWR0aCgpXCJcbiAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVySW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCgkZXZlbnQpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImZsZXggaXRlbXMtY2VudGVyIG10LVs4cHhdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaWJzLXVpLWZvbnQtaDdyIG1yLVs0cHhdIHRleHQtWyM2YTczODNdIHctWzEwMHB4XSBzaHJpbmstMFwiPlxuICAgICAgICAgIHt7ICdpMThuX2xlbmd0aCcgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLXZhbGlkIFtpZ25vcmVXaWR0aElucHV0MTAwXT1cInRydWVcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVJbnB1dF09XCIndy1bMTAycHhdJ1wiXG4gICAgICAgICAgW2RhdGFUeXBlXT1cIidpbnQnXCJcbiAgICAgICAgICBbbWluVmFsdWVOdW1iZXJdPVwiMVwiXG4gICAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cIm9yaWdpbkhlaWdodFwiXG4gICAgICAgICAgW2ZpZWxkTmFtZUJpbmRdPVwiJ2hlaWdodCdcIlxuICAgICAgICAgIFsoaXRlbSldPVwicmVzaXplRGF0YVwiXG4gICAgICAgICAgW3VuaXRzUmlnaHRdPVwiW3tpZDogJ3B4JywgbGFiZWw6ICdweCd9XVwiXG4gICAgICAgICAgW2tleVNlbGVjdGVkVW5pdFJpZ2h0XT1cIidweCdcIlxuICAgICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCIxXCJcbiAgICAgICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlclJlc2l6ZUhlaWdodCgpXCJcbiAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVySW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCgkZXZlbnQpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGZsZXggaXRlbXMtY2VudGVyIGxlZnQtWzIzNnB4XSB0b3AtWzE0cHhdXCI+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cInctWzIwcHhdIGgtWzQ0cHhdIGxpYnMtdWktYm9yZGVyLXRvcC1nZW5lcmFsIGxpYnMtdWktYm9yZGVyLXJpZ2h0LWdlbmVyYWwgbGlicy11aS1ib3JkZXItYm90dG9tLWdlbmVyYWxcIj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC1bNnB4XSB0ZXh0LVsjOWNhMmFkXSBsaWJzLXVpLWljb24tbG9ja1wiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm10LVsxNnB4XVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNm0gdGV4dC1bIzZhNzM4M10gbWItWzhweF1cIj57eyAnaTE4bl9zaXplX3Bob3RvJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgcm91bmRlZC1bNHB4XSBweS1bOHB4XSBweC1bMTZweF0gYmctWyNmOGY5ZmFdIHRleHQtWyM5Y2EyYWRdXCI+XG4gICAgICAgIHt7ICdpMThuX2ZpbGVfc2l6ZV9jb21wYXJlX3doZW5fcmVzaXplJyB8IHRyYW5zbGF0ZTp7Y3VycmVudF9zaXplOiBjdXJyZW50RmlsZVNpemUsIG9yaWdpbmFsX3NpemU6IG9yaWdpbkZpbGVTaXplfSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9saWJzX3VpLWNvbXBvbmVudHMtbW9kYWw+XG4iXX0=
|
|
126
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzaXplLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbWFnZS1lZGl0b3Ivc3JjL3Jlc2l6ZS9yZXNpemUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2ltYWdlLWVkaXRvci9zcmMvcmVzaXplL3Jlc2l6ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUM1RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFJdEQsT0FBTyxFQUFFLDhCQUE4QixFQUFvQixNQUFNLDJCQUEyQixDQUFDO0FBQzdGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxpQkFBaUIsRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFTNUYsTUFBTSxPQUFPLDBDQUEwQztJQUMzQyxhQUFhLENBQWlCO0lBQzlCLEtBQUssR0FBRyxJQUFJLEtBQUssRUFBRSxDQUFDO0lBQ3BCLGNBQWMsQ0FBVTtJQUN4QixlQUFlLENBQVU7SUFFM0IseUJBQXlCLENBQXlDO0lBRS9DLFVBQVUsQ0FBZTtJQUN6QixXQUFXLENBQVU7SUFDckIsWUFBWSxDQUFVO0lBQ3RCLEdBQUcsQ0FBVTtJQUMvQixNQUFNLENBQVU7SUFDaEIsUUFBUSxDQUFVO0lBRVIsUUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7SUFDcEMsT0FBTyxHQUFHLElBQUksWUFBWSxFQUFlLENBQUM7SUFFN0Q7UUFDRSxJQUFJLENBQUMsYUFBYSxH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RyxhQUFhLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ2xGLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDbEQsQ0FBQztJQUVTLGdDQUFnQyxDQUFDLEtBQXNDO1FBQy9FLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVTLFlBQVksQ0FBQyxLQUF1QjtRQUM1QyxJQUFJLEtBQUssS0FBSyxPQUFPLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3ZCLENBQUM7SUFDSCxDQUFDO3dHQTFHVSwwQ0FBMEM7NEZBQTFDLDBDQUEwQyw2U0NqQnZELG8yR0E0RUEsMkNEN0RZLGVBQWUsNEZBQUUsOEJBQThCLG10QkFBRSxvQ0FBb0M7OzRGQUVwRiwwQ0FBMEM7a0JBUHRELFNBQVM7K0JBRUUsd0NBQXdDLGNBRXRDLElBQUksV0FDUCxDQUFDLGVBQWUsRUFBRSw4QkFBOEIsRUFBRSxvQ0FBb0MsQ0FBQzt3REFVckUsVUFBVTtzQkFBcEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsV0FBVztzQkFBckMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsWUFBWTtzQkFBdEMsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ0UsR0FBRztzQkFBN0IsS0FBSzt1QkFBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUU7Z0JBQ2hCLE1BQU07c0JBQWQsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVhLFFBQVE7c0JBQTFCLE1BQU07Z0JBQ1ksT0FBTztzQkFBekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGdldERhdGFVcmwgfSBmcm9tICcuLi9kZWZpbmVzL2ltYWdlLWVkaXRvci5kZWZpbmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBJQnV0dG9uIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbic7XG5pbXBvcnQgeyBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWQnO1xuaW1wb3J0IHsgSVJlc2l6ZURhdGEgfSBmcm9tICcuLi9pbnRlcmZhY2VzL2ltYWdlLWVkaXRvci5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c01vZGFsQ29tcG9uZW50LCBUWVBFX01PREFMX0VWRU5UIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1tb2RhbCc7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy12YWxpZCc7XG5pbXBvcnQgeyBjb252ZXJ0QmFzZTY0VG9CbG9iLCBjb252ZXJ0QmxvYlRvRmlsZSwgZ2V0TGFiZWxCeVNpemVGaWxlIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzLXVpLWNvbXBvbmVudHMtaW1hZ2VfZWRpdG9yLXJlc2l6ZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9yZXNpemUuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbVHJhbnNsYXRlTW9kdWxlLCBMaWJzVWlDb21wb25lbnRzTW9kYWxDb21wb25lbnQsIExpYnNVaUNvbXBvbmVudHNJbnB1dHNWYWxpZENvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbWFnZUVkaXRvclJlc2l6ZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHByb3RlY3RlZCBidXR0b25zRm9vdGVyOiBBcnJheTxJQnV0dG9uPjtcbiAgcHJvdGVjdGVkIGltYWdlID0gbmV3IEltYWdlKCk7XG4gIHByb3RlY3RlZCBvcmlnaW5GaWxlU2l6ZSE6IHN0cmluZztcbiAgcHJvdGVjdGVkIGN1cnJlbnRGaWxlU2l6ZSE6IHN0cmluZztcblxuICBwcml2YXRlIGlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2w6IEFycmF5PElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQ+O1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIHJlc2l6ZURhdGEhOiBJUmVzaXplRGF0YTtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgb3JpZ2luV2lkdGghOiBudW1iZXI7XG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pIG9yaWdpbkhlaWdodCE6IG51bWJlcjtcbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSkgc3JjITogc3RyaW5nO1xuICBASW5wdXQoKSB6SW5kZXg/OiBudW1iZXI7XG4gIEBJbnB1dCgpIG1pbWV0eXBlPzogc3RyaW5nO1xuXG4gIEBPdXRwdXQoKSByZWFkb25seSBvdXRDbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IG91dFNhdmUgPSBuZXcgRXZlbnRFbWl0dGVyPElSZXNpemVEYXRhPigpO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuYnV0dG9uc0Zvb3RlciA9IFtcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2J1dHRvbi10aGlyZCcsXG4gICAgICAgIGxhYmVsOiAnaTE4bl9jYW5jZWwnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHRoaXMub3V0Q2xvc2UuZW1pdCgpLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgbGFiZWw6ICdpMThuX3NhdmUnLFxuICAgICAgICBhY3Rpb246IGFzeW5jICgpID0+IHtcbiAgICAgICAgICB0aGlzLm91dFNhdmUuZW1pdCh0aGlzLnJlc2l6ZURhdGEpO1xuICAgICAgICAgIHRoaXMub3V0Q2xvc2UuZW1pdCgpO1xuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICAgIHRoaXMuaW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCA9IFtdO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZmlsZVNpemUgPSBhd2FpdCB0aGlzLmdldEZpbGVTaXplKCk7XG5cbiAgICB0aGlzLmN1cnJlbnRGaWxlU2l6ZSA9IGZpbGVTaXplO1xuICAgIHRoaXMub3JpZ2luRmlsZVNpemUgPSBmaWxlU2l6ZTtcbiAgfVxuXG4gIHByb3RlY3RlZCBhc3luYyBoYW5kbGVyUmVzaXplUmF0aW8oKSB7XG4gICAgbGV0IHJhdGlvID0gcGFyc2VJbnQoYCR7dGhpcy5yZXNpemVEYXRhLnJhdGlvfWApO1xuXG4gICAgaWYgKCFyYXRpbyB8fCByYXRpbyA8IDApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHJhdGlvID4gMTAwKSB7XG4gICAgICByYXRpbyA9IDEwMDtcbiAgICAgIHRoaXMucmVzaXplRGF0YS5yYXRpbyA9IHJhdGlvO1xuICAgIH1cbiAgICB0aGlzLnJlc2l6ZURhdGEud2lkdGggPSBNYXRoLm1heChwYXJzZUludChgJHsodGhpcy5vcmlnaW5XaWR0aCAqIHJhdGlvKSAvIDEwMH1gKSwgMSk7XG4gICAgdGhpcy5yZXNpemVEYXRhLmhlaWdodCA9IE1hdGgubWF4KHBhcnNlSW50KGAkeyh0aGlzLm9yaWdpbkhlaWdodCAqIHJhdGlvKSAvIDEwMH1gKSwgMSk7XG4gICAgLy8gdGhpcy5pbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sLmZvckVhY2goaXRlbSA9PiBpdGVtLmRldGVjdENoYW5nZXMoKSk7XG4gICAgdGhpcy5jdXJyZW50RmlsZVNpemUgPSBhd2FpdCB0aGlzLmdldEZpbGVTaXplKCk7XG4gIH1cblxuICBwcml2YXRlIGdldEZpbGVTaXplKCkge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlKSA9PiB7XG4gICAgICB0aGlzLmltYWdlLm9ubG9hZCA9ICgpID0+IHtcbiAgICAgICAgY29uc3QgY2FudmFzID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgnY2FudmFzJyk7XG5cbiAgICAgICAgY2FudmFzLndpZHRoID0gdGhpcy5yZXNpemVEYXRhLndpZHRoO1xuICAgICAgICBjYW52YXMuaGVpZ2h0ID0gdGhpcy5yZXNpemVEYXRhLmhlaWdodDtcbiAgICAgICAgY29uc3QgY3R4ID0gY2FudmFzLmdldENvbnRleHQoJzJkJyk7XG4gICAgICAgIGlmIChjdHgpIHtcbiAgICAgICAgICBjdHguZHJhd0ltYWdlKHRoaXMuaW1hZ2UsIDAsIDAsIGNhbnZhcy53aWR0aCwgY2FudmFzLmhlaWdodCk7XG4gICAgICAgIH1cbiAgICAgICAgY29uc3Qgc3JjID0gZ2V0RGF0YVVybChjYW52YXMsIHRoaXMubWltZXR5cGUsIHRoaXMuc3JjKTtcbiAgICAgICAgY29uc3QgZmlsZSA9IGNvbnZlcnRCYXNlNjRUb0Jsb2Ioc3JjKTtcblxuICAgICAgICByZXNvbHZlKGdldExhYmVsQnlTaXplRmlsZShjb252ZXJ0QmxvYlRvRmlsZShmaWxlLCBEYXRlLm5vdygpLnRvTG9jYWxlU3RyaW5nKCkpLnNpemUpKTtcbiAgICAgIH07XG4gICAgICB0aGlzLmltYWdlLnNyYyA9IHRoaXMuc3JjO1xuICAgIH0pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJSZXNpemVXaWR0aCgpIHtcbiAgICB0aGlzLnByb2Nlc3NSZXNpemVXaWR0aE9ySGVpZ2h0KCd3aWR0aCcsICdoZWlnaHQnLCB0aGlzLm9yaWdpbldpZHRoLCB0aGlzLm9yaWdpbkhlaWdodCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclJlc2l6ZUhlaWdodCgpIHtcbiAgICB0aGlzLnByb2Nlc3NSZXNpemVXaWR0aE9ySGVpZ2h0KCdoZWlnaHQnLCAnd2lkdGgnLCB0aGlzLm9yaWdpbkhlaWdodCwgdGhpcy5vcmlnaW5XaWR0aCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHByb2Nlc3NSZXNpemVXaWR0aE9ySGVpZ2h0KHJlc2l6ZUJ5OiAnd2lkdGgnIHwgJ2hlaWdodCcsIGZpZWxkUmVzaXplOiAnd2lkdGgnIHwgJ2hlaWdodCcsIG9yaWdpbkJ5VmFsdWU6IG51bWJlciwgb3JpZ2luT3RoZXJWYWx1ZTogbnVtYmVyKSB7XG4gICAgY29uc3QgdmFsdWUgPSBwYXJzZUludChgJHt0aGlzLnJlc2l6ZURhdGFbcmVzaXplQnldfWApO1xuXG4gICAgaWYgKCF2YWx1ZSB8fCB2YWx1ZSA+IG9yaWdpbkJ5VmFsdWUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5yZXNpemVEYXRhW2ZpZWxkUmVzaXplXSA9IE1hdGgubWF4KHBhcnNlSW50KGAkeyhvcmlnaW5PdGhlclZhbHVlICogdmFsdWUpIC8gb3JpZ2luQnlWYWx1ZX1gKSwgMSk7XG4gICAgdGhpcy5yZXNpemVEYXRhLnJhdGlvID0gTWF0aC5tYXgocGFyc2VJbnQoYCR7KDEwMCAqIHZhbHVlKSAvIG9yaWdpbkJ5VmFsdWV9YCksIDEpO1xuICAgIHRoaXMuY3VycmVudEZpbGVTaXplID0gYXdhaXQgdGhpcy5nZXRGaWxlU2l6ZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sKGV2ZW50OiBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50KSB7XG4gICAgdGhpcy5pbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sLnB1c2goZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudChldmVudDogVFlQRV9NT0RBTF9FVkVOVCkge1xuICAgIGlmIChldmVudCA9PT0gJ2Nsb3NlJykge1xuICAgICAgdGhpcy5vdXRDbG9zZS5lbWl0KCk7XG4gICAgfVxuICB9XG59XG4iLCI8bGlic191aS1jb21wb25lbnRzLW1vZGFsXG4gIFtoZWFkZXJDb25maWddPVwieyBpZ25vcmVIZWFkZXJUaGVtZTogdHJ1ZSB9XCJcbiAgW21vZGVdPVwiJ2NlbnRlcidcIlxuICBbd2lkdGhdPVwiJzUwMHB4J1wiXG4gIFtoZWlnaHRdPVwiJ2F1dG8nXCJcbiAgW3RpdGxlXT1cIidpMThuX3Jlc2l6ZScgfCB0cmFuc2xhdGVcIlxuICBbekluZGV4XT1cInpJbmRleFwiXG4gIFtidXR0b25zRm9vdGVyXT1cImJ1dHRvbnNGb290ZXJcIlxuICAob3V0RXZlbnQpPVwiaGFuZGxlckV2ZW50KCRldmVudClcIj5cbiAgPGRpdiBjbGFzcz1cImxpYnMtdWktbW9kYWwtYm9keS1jdXN0b20gdy1mdWxsIGgtZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlclwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgbXItWzRweF0gdGV4dC1bIzZhNzM4M10gdy1bMTAwcHhdIHNocmluay0wXCI+e3sgJ2kxOG5fcmF0aW9fc2l6ZScgfCB0cmFuc2xhdGUgfX0gKCUpPC9kaXY+XG4gICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZFxuICAgICAgICBbaWdub3JlV2lkdGhJbnB1dDEwMF09XCJ0cnVlXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZUlucHV0XT1cIid3LVsxMzJweF0nXCJcbiAgICAgICAgW2RhdGFUeXBlXT1cIidpbnQnXCJcbiAgICAgICAgW2ZpZWxkTmFtZUJpbmRdPVwiJ3JhdGlvJ1wiXG4gICAgICAgIFsoaXRlbSldPVwicmVzaXplRGF0YVwiXG4gICAgICAgIFttaW5WYWx1ZU51bWJlcl09XCIxXCJcbiAgICAgICAgW21heFZhbHVlTnVtYmVyXT1cIjEwMFwiXG4gICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCIxXCJcbiAgICAgICAgW3ZhbGlkUmVxdWlyZWRdPVwieyBpc1JlcXVpcmVkOiB0cnVlIH1cIlxuICAgICAgICBbaWdub3JlU2hvd0Vycm9yXT1cInRydWVcIlxuICAgICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlclJlc2l6ZVJhdGlvKClcIlxuICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVySW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCgkZXZlbnQpXCIgLz5cbiAgICA8L2Rpdj5cbiAgICA8ZGl2IGNsYXNzPVwibXQtWzE2cHhdIHJlbGF0aXZlXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXJcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgbXItWzRweF0gdGV4dC1bIzZhNzM4M10gdy1bMTAwcHhdIHNocmluay0wXCI+XG4gICAgICAgICAge3sgJ2kxOG5fd2lkdGgnIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZFxuICAgICAgICAgIFtpZ25vcmVXaWR0aElucHV0MTAwXT1cInRydWVcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVJbnB1dF09XCIndy1bMTAycHhdJ1wiXG4gICAgICAgICAgW2RhdGFUeXBlXT1cIidpbnQnXCJcbiAgICAgICAgICBbbWF4VmFsdWVOdW1iZXJdPVwib3JpZ2luV2lkdGhcIlxuICAgICAgICAgIFttaW5WYWx1ZU51bWJlcl09XCIxXCJcbiAgICAgICAgICBbZmllbGROYW1lQmluZF09XCInd2lkdGgnXCJcbiAgICAgICAgICBbKGl0ZW0pXT1cInJlc2l6ZURhdGFcIlxuICAgICAgICAgIFt1bml0c1JpZ2h0XT1cIlt7IGlkOiAncHgnLCBsYWJlbDogJ3B4JyB9XVwiXG4gICAgICAgICAgW2tleVNlbGVjdGVkVW5pdFJpZ2h0XT1cIidweCdcIlxuICAgICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCIxXCJcbiAgICAgICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlclJlc2l6ZVdpZHRoKClcIlxuICAgICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sKCRldmVudClcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIgbXQtWzhweF1cIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oN3IgbXItWzRweF0gdGV4dC1bIzZhNzM4M10gdy1bMTAwcHhdIHNocmluay0wXCI+XG4gICAgICAgICAge3sgJ2kxOG5fbGVuZ3RoJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICA8L2Rpdj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdmFsaWRcbiAgICAgICAgICBbaWdub3JlV2lkdGhJbnB1dDEwMF09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlSW5wdXRdPVwiJ3ctWzEwMnB4XSdcIlxuICAgICAgICAgIFtkYXRhVHlwZV09XCInaW50J1wiXG4gICAgICAgICAgW21pblZhbHVlTnVtYmVyXT1cIjFcIlxuICAgICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJvcmlnaW5IZWlnaHRcIlxuICAgICAgICAgIFtmaWVsZE5hbWVCaW5kXT1cIidoZWlnaHQnXCJcbiAgICAgICAgICBbKGl0ZW0pXT1cInJlc2l6ZURhdGFcIlxuICAgICAgICAgIFt1bml0c1JpZ2h0XT1cIlt7IGlkOiAncHgnLCBsYWJlbDogJ3B4JyB9XVwiXG4gICAgICAgICAgW2tleVNlbGVjdGVkVW5pdFJpZ2h0XT1cIidweCdcIlxuICAgICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCIxXCJcbiAgICAgICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlclJlc2l6ZUhlaWdodCgpXCJcbiAgICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVySW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbCgkZXZlbnQpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImFic29sdXRlIGZsZXggaXRlbXMtY2VudGVyIGxlZnQtWzIzNnB4XSB0b3AtWzE0cHhdXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LVsyMHB4XSBoLVs0NHB4XSBsaWJzLXVpLWJvcmRlci10b3AtZ2VuZXJhbCBsaWJzLXVpLWJvcmRlci1yaWdodC1nZW5lcmFsIGxpYnMtdWktYm9yZGVyLWJvdHRvbS1nZW5lcmFsXCI+PC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJtbC1bNnB4XSB0ZXh0LVsjOWNhMmFkXSBsaWJzLXVpLWljb24tbG9ja1wiPjwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiBjbGFzcz1cIm10LVsxNnB4XVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNm0gdGV4dC1bIzZhNzM4M10gbWItWzhweF1cIj57eyAnaTE4bl9zaXplX3Bob3RvJyB8IHRyYW5zbGF0ZSB9fTwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktZm9udC1oNXIgcm91bmRlZC1bNHB4XSBweS1bOHB4XSBweC1bMTZweF0gYmctWyNmOGY5ZmFdIHRleHQtWyM5Y2EyYWRdXCI+XG4gICAgICAgIHt7ICdpMThuX2ZpbGVfc2l6ZV9jb21wYXJlX3doZW5fcmVzaXplJyB8IHRyYW5zbGF0ZTogeyBjdXJyZW50X3NpemU6IGN1cnJlbnRGaWxlU2l6ZSwgb3JpZ2luYWxfc2l6ZTogb3JpZ2luRmlsZVNpemUgfSB9fVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9saWJzX3VpLWNvbXBvbmVudHMtbW9kYWw+XG4iXX0=
|