@libs-ui/components-inputs-add 0.2.248 → 0.2.249
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/add.component.d.ts
CHANGED
|
@@ -51,7 +51,7 @@ export declare class LibsUiComponentsInputsAddComponent implements OnInit {
|
|
|
51
51
|
readonly unitsRight: import("@angular/core").InputSignal<any[] | undefined>;
|
|
52
52
|
readonly configUnitRight: import("@angular/core").InputSignal<IInputValidUnitConfig>;
|
|
53
53
|
readonly keySelectedUnitRight: import("@angular/core").InputSignal<any>;
|
|
54
|
-
readonly maxValueNumber: import("@angular/core").InputSignal<number>;
|
|
54
|
+
readonly maxValueNumber: import("@angular/core").InputSignal<number | undefined>;
|
|
55
55
|
readonly minValueNumber: import("@angular/core").InputSignal<number | undefined>;
|
|
56
56
|
readonly isBaselineStyle: import("@angular/core").InputSignal<boolean | undefined>;
|
|
57
57
|
readonly valuePatternShowError: import("@angular/core").InputSignal<boolean | undefined>;
|
|
@@ -59,7 +59,7 @@ export class LibsUiComponentsInputsAddComponent {
|
|
|
59
59
|
fieldLabel: 'label',
|
|
60
60
|
});
|
|
61
61
|
keySelectedUnitRight = input();
|
|
62
|
-
maxValueNumber = input(
|
|
62
|
+
maxValueNumber = input();
|
|
63
63
|
minValueNumber = input();
|
|
64
64
|
isBaselineStyle = input(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì
|
|
65
65
|
valuePatternShowError = input(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi
|
|
@@ -225,4 +225,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
225
225
|
LibsUiComponentsLabelComponent
|
|
226
226
|
], changeDetection: ChangeDetectionStrategy.OnPush, template: "@if (fieldNameBind() && items(); as items) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [labelLeft]=\"labelConfig.labelLeft\"\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [labelLeftBehindToggleButton]=\"labelConfig.labelLeftBehindToggleButton\"\n [popover]=\"labelConfig.popover\"\n [required]=\"labelConfig.required\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [labelRightRequired]=\"labelConfig.labelRightRequired\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleSize]=\"labelConfig.toggleSize || 'default'\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable\"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [zIndexPopover]=\"labelConfig.zIndexPopover || 10\"\n [timerDestroyPopover]=\"labelConfig.timerDestroyPopover || 0\"\n [count]=\"labelConfig.count\"\n [limitLength]=\"labelConfig.limitLength\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelLeftClick)=\"handlerEventLabelLeftLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n @for (item of items; track item.uniqKey; let first = $first; let index = $index) {\n <div class=\"flex\"\n [style.marginTop.px]=\"!first ? formInputSpacing() : 0\">\n\n @if (leftTemplateItems(); as leftTemplateItems) {\n <div class=\"flex {{ leftTemplateItems.classInclude }}\">\n @for (rightItem of leftTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('template') {\n @if (item.templateLeftOutlet || templateLeftOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateLeftOutlet || templateLeftOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n <libs_ui-components-inputs-valid [item]=\"item\"\n [fieldNameBind]=\"fieldNameBind()\"\n [placeholder]=\"item.placeholder ?? placeholder()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [tagInput]=\"tagInput()\"\n [dataType]=\"dataType()\"\n [fixedFloat]=\"fixedFloat()\"\n [readonly]=\"readonly() || item.readonly\"\n [disable]=\"disable() || item.disable\"\n [classContainerInput]=\"classContainerInput()\"\n [classIncludeInput]=\"classIncludeInput()\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber() || 1\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [showCount]=\"showCount()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [ignoreShowError]=\"ignoreShowError()\"\n [borderError]=\"borderError()\"\n [unitsLeft]=\"item.unitsLeft || unitsLeft()\"\n [configUnitLeft]=\"item.configUnitLeft || configUnitLeft()\"\n [keySelectedUnitLeft]=\"item.keySelectedUnitLeft || keySelectedUnitLeft()\"\n [unitsRight]=\"item.unitsRight || unitsRight()\"\n [configUnitRight]=\"item.configUnitRight || configUnitRight()\"\n [keySelectedUnitRight]=\"item.keySelectedUnitRight || keySelectedUnitRight()\"\n [maxValueNumber]=\"item.maxValueNumber || maxValueNumber()\"\n [minValueNumber]=\"item.minValueNumber || minValueNumber()\"\n [isBaselineStyle]=\"isBaselineStyle()\"\n [valuePatternShowError]=\"valuePatternShowError()\"\n [validPattern]=\"validPattern()\"\n [validRequired]=\"validRequired()\"\n [validMinLength]=\"validMinLength()\"\n [validMinValue]=\"validMinValue()\"\n [validMaxValue]=\"validMaxValue()\"\n [validMaxLength]=\"validMaxLength()\"\n [functionValid]=\"functionValid()\"\n [maxLength]=\"item.maxLength || maxLength()\"\n [positionMessageErrorStartInput]=\"positionMessageErrorStartInput()\"\n [classInclude]=\"classInclude()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [classMessageErrorInclude]=\"classMessageErrorInclude()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [ignoreUnitRightClassReadOnly]=\"ignoreUnitRightClassReadOnly()\"\n [paddingRightCustomSpecific]=\"paddingRightCustomSpecific()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (outValueChange)=\"handlerValueChange($event, item)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event, item)\" />\n\n @if (rightTemplateItems(); as rightTemplateItems) {\n <div class=\"flex items-center {{ rightTemplateItems.classInclude }}\"\n [style.height.px]=\"defaultHeight() || 32\">\n @for (rightItem of rightTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('remove') {\n @if (!ignoreRemove() && !item.ignoreRemove && items.length > minItems()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-remove mr-[0px]'\"\n classInclude=\"libs-ui-icon-hover-danger !p-[2px] ml-[16px] {{ rightItem.classInclude }}\"\n (outClick)=\"handlerRemove($event, item, index)\" />\n }\n }\n\n @case ('template') {\n @if (item.templateRightOutlet || templateRightOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateRightOutlet || templateRightOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n </div>\n }\n}\n\n@if (!ignoreAddItem() && (!maxItems() || items().length < maxItems())) {\n <libs_ui-components-buttons-button [type]=\"addItemButtonConfig()?.type || 'button-link-primary'\"\n [label]=\"addItemButtonConfig()?.label || 'i18n_add_new'\"\n [classLabel]=\"addItemButtonConfig()?.classLabel || 'libs-uifont-head-5m'\"\n [classIconLeft]=\"addItemButtonConfig()?.classIconLeft || 'libs-ui-icon-add text-[10px] mr-[8px]'\"\n [classInclude]=\"addItemButtonConfig()?.classInclude || '!pb-0 !pl-0 !py-[2px] mt-[8px]'\"\n [disable]=\"disable() || false\"\n (outClick)=\"handlerAddItem($event)\" />\n}\n" }]
|
|
227
227
|
}] });
|
|
228
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvYWRkL3NyYy9hZGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9hZGQvc3JjL2FkZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFHdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFXLHNDQUFzQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckcsT0FBTyxFQUF1RyxvQ0FBb0MsRUFBNkIsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4TixPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUduRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFtQjdFLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0MsbUJBQW1CO0lBQ1gsWUFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUV6QyxnQkFBZ0I7SUFDUCxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3pDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFvQixDQUFDO0lBQzNDLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsT0FBTyxH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QUksQ0FBQyxZQUFZLEVBQUUsQ0FBQyxDQUFDO1lBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ2pDLENBQUMsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ1gsQ0FBQzt3R0F2UFUsa0NBQWtDOzRGQUFsQyxrQ0FBa0MsbStWQy9CL0MseS9PQWlKQSx5RER6SEksZUFBZSwrQkFBRSxnQkFBZ0Isb0pBQ2pDLHNDQUFzQyxzakJBQ3RDLG9DQUFvQyw4ekRBQ3BDLDhCQUE4Qjs7NEZBSXJCLGtDQUFrQztrQkFkOUMsU0FBUzsrQkFFRSwrQkFBK0IsY0FHN0IsSUFBSSxXQUNQO3dCQUNQLGVBQWUsRUFBRSxnQkFBZ0I7d0JBQ2pDLHNDQUFzQzt3QkFDdEMsb0NBQW9DO3dCQUNwQyw4QkFBOEI7cUJBQy9CLG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueSAqL1xuXG5cbmltcG9ydCB7IE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgaW5wdXQsIG1vZGVsLCBPbkluaXQsIG91dHB1dCwgc2lnbmFsLCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUJ1dHRvbiwgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IElJbnB1dFZhbGlkRnVuY3Rpb25Db250cm9sRXZlbnQsIElJbnB1dFZhbGlkVW5pdENvbmZpZywgSVZhbGlkTGVuZ3RoLCBJVmFsaWRQYXR0ZXJuLCBJVmFsaWRSZXF1aXJlZCwgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50LCBUWVBFX0ZVTkNUSU9OX0lOUFVUX1ZBTElEIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWQnO1xuaW1wb3J0IHsgSUxhYmVsLCBMaWJzVWlDb21wb25lbnRzTGFiZWxDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxhYmVsJztcbmltcG9ydCB7IElTd2l0Y2hFdmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtc3dpdGNoJztcbmltcG9ydCB7IElNZXNzYWdlVHJhbnNsYXRlLCBUWVBFX1RFTVBMQVRFX1JFRiB9IGZyb20gJ0BsaWJzLXVpL2ludGVyZmFjZXMtdHlwZXMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCB1dWlkIH0gZnJvbSAnQGxpYnMtdWkvdXRpbHMnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBsZWZ0VGVtcGxhdGVJdGVtcywgcmlnaHRUZW1wbGF0ZUl0ZW1zIH0gZnJvbSAnLi9kZWZpbmVzL2FkZC5kZWZpbmUnO1xuaW1wb3J0IHsgSUVtaXRWYWx1ZUNoYW5nZSwgSUlucHV0QWRkLCBJVGVtcGxhdGVSaWdodExlZnRJdGVtIH0gZnJvbSAnLi9pbnRlcmZhY2VzJztcbmltcG9ydCB7IElJbnB1dEFkZEZ1bmN0aW9uQ29udHJvbEV2ZW50IH0gZnJvbSAnLi9pbnRlcmZhY2VzL2Z1bmN0aW9uLWNvbnRyb2wtZXZlbnQuaW50ZXJmYWNlJztcbmltcG9ydCB7IFRZUEVfREFUQV9UWVBFX0lOUFVULCBUWVBFX0lOUFVULCBUWVBFX1RBR19JTlBVVCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtaW5wdXRzLWlucHV0JztcblxuQENvbXBvbmVudCh7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvY29tcG9uZW50LXNlbGVjdG9yXG4gIHNlbGVjdG9yOiAnbGlic191aS1jb21wb25lbnRzLWlucHV0cy1hZGQnLFxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vYWRkLmNvbXBvbmVudC5zY3NzJ10sXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsIE5nVGVtcGxhdGVPdXRsZXQsXG4gICAgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c1ZhbGlkQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudFxuICBdLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzQWRkQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcml2YXRlIHRpbWVPdXRLZXlVcCA9IHNpZ25hbDxudW1iZXI+KDApO1xuXG4gIC8vICNyZWdpb24gSU5QVVRcbiAgcmVhZG9ubHkgZmllbGROYW1lQmluZCA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgaXRlbXMgPSBtb2RlbC5yZXF1aXJlZDxBcnJheTxJSW5wdXRBZGQ+PigpO1xuICByZWFkb25seSByZWFkb25seSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgZGlzYWJsZSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgcmVhZG9ubHkgYWRkSXRlbUJ1dHRvbkNvbmZpZyA9IGlucHV0PElCdXR0b24+KCk7XG4gIHJlYWRvbmx5IHBsYWNlaG9sZGVyID0gaW5wdXQ8c3RyaW5nPigpO1xuICByZWFkb25seSBsYWJlbENvbmZpZyA9IGlucHV0PElMYWJlbD4oKTtcbiAgcmVhZG9ubHkgZm9ybUlucHV0U3BhY2luZyA9IGlucHV0PG51bWJlcj4oOCk7IC8vIGtob+G6o25nIGPDoWNoIGdp4buvYSBoYWkgw7QgaW5wdXRcbiAgcmVhZG9ubHkgY29uZmlnSXRlbUFkZFRvSXRlbXMgPSBpbnB1dDxJSW5wdXRBZGQ+KCk7XG4gIHJlYWRvbmx5IHJpZ2h0VGVtcGxhdGVJdGVtcyA9IGlucHV0PElUZW1wbGF0ZVJpZ2h0TGVmdEl0ZW0+KHJpZ2h0VGVtcGxhdGVJdGVtcygpKTtcbiAgcmVhZG9ubHkgbGVmdFRlbXBsYXRlSXRlbXMgPSBpbnB1dDxJVGVtcGxhdGVSaWdodExlZnRJdGVtPihsZWZ0VGVtcGxhdGVJdGVtcygpKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVMZWZ0T3V0bGV0ID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSB0ZW1wbGF0ZVJpZ2h0T3V0bGV0ID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSBpZ25vcmVXaWR0aElucHV0MTAwID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgY2xhc3NJbmNsdWRlSW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVySW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IHNob3dDb3VudCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVZhbGlkRW1wdHlGaWVsZCA9IGlucHV0PGJvb2xlYW4+KCk7IC8vIGNo4buJIGPhuqduIGPDsyDDrXQgbmjhuqV0IDEgZmllbGQgY8OzIGdpw6EgdHLhu4sgbMOgIHZhbGlkXG5cbiAgcmVhZG9ubHkgZW1pdEVtcHR5SW5EYXRhVHlwZU51bWJlciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHRhZ0lucHV0ID0gaW5wdXQ8VFlQRV9UQUdfSU5QVVQ+KCk7XG4gIHJlYWRvbmx5IGRhdGFUeXBlID0gaW5wdXQ8VFlQRV9EQVRBX1RZUEVfSU5QVVQ+KCk7XG4gIHJlYWRvbmx5IHR5cGVJbnB1dCA9IGlucHV0PFRZUEVfSU5QVVQ+KCk7XG4gIHJlYWRvbmx5IGZpeGVkRmxvYXQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGFjY2VwdE5lZ2F0aXZlVmFsdWUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB2YWx1ZVVwRG93bk51bWJlciA9IGlucHV0PG51bWJlciB8IHVuZGVmaW5lZD4oKTtcbiAgcmVhZG9ubHkgcmVzZXRBdXRvQ29tcGxldGVQYXNzd29yZCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG5vQm9yZGVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYmFja2dyb3VuZE5vbmUgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSB1c2VDb2xvck1vZGVFeGlzdCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGtlZXBQbGFjZWhvbGRlck9ubHkgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVyQm90dG9tSW5wdXQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGF1dG9SZW1vdmVFbW9qaSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGRlZmF1bHRIZWlnaHQgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVNob3dFcnJvciA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGJvcmRlckVycm9yID0gaW5wdXQ8Ym9vbGVhbj4oKTtcblxuICByZWFkb25seSB1bml0c0xlZnQgPSBpbnB1dDxBcnJheTxhbnk+PigpO1xuICByZWFkb25seSBjb25maWdVbml0TGVmdCA9IGlucHV0PElJbnB1dFZhbGlkVW5pdENvbmZpZz4oe1xuICAgIGZpZWxkS2V5OiAnaWQnLFxuICAgIGZpZWxkTGFiZWw6ICdsYWJlbCcsXG4gIH0pO1xuICByZWFkb25seSBrZXlTZWxlY3RlZFVuaXRMZWZ0ID0gaW5wdXQ8YW55PigpO1xuXG4gIHJlYWRvbmx5IHVuaXRzUmlnaHQgPSBpbnB1dDxBcnJheTxhbnk+PigpO1xuICByZWFkb25seSBjb25maWdVbml0UmlnaHQgPSBpbnB1dDxJSW5wdXRWYWxpZFVuaXRDb25maWc+KHtcbiAgICBmaWVsZEtleTogJ2lkJyxcbiAgICBmaWVsZExhYmVsOiAnbGFiZWwnLFxuICB9KTtcbiAgcmVhZG9ubHkga2V5U2VsZWN0ZWRVbml0UmlnaHQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcmVhZG9ubHkgbWF4VmFsdWVOdW1iZXIgPSBpbnB1dDxudW1iZXI+KE51bWJlci5NQVhfU0FGRV9JTlRFR0VSKTtcbiAgcmVhZG9ubHkgbWluVmFsdWVOdW1iZXIgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGlzQmFzZWxpbmVTdHlsZSA9IGlucHV0PGJvb2xlYW4+KCk7IC8vIGFsaWduLWl0ZW1zLWJhc2VsaW5lIGTDuW5nIGtoaSBjxINuIGlucHV0IHRo4bqzbmcgaMOgbmcgduG7m2kgdOG6pXQgY+G6oyBjw6FjIHBo4bqnbiBraMOhYyBkw7kgY8OzIHZhbGlkYXRlIGhheSBi4bqldCBj4bupIDEgY8OhaSBnw6xcblxuICByZWFkb25seSB2YWx1ZVBhdHRlcm5TaG93RXJyb3IgPSBpbnB1dDxib29sZWFuPigpOyAvLyBt4bq3YyDEkeG7i25oIGtoaSB0ZXN0IHBhdHRlcm4gdHLhuqMgdOG7gSBnacOhIHRy4buLIGLhurFuZyBmYWxzZSBz4bq9IGLDoW8gbOG7l2lcbiAgcmVhZG9ubHkgdmFsaWRQYXR0ZXJuID0gaW5wdXQ8QXJyYXk8SVZhbGlkUGF0dGVybj4+KCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJVmFsaWRSZXF1aXJlZD4oKTtcbiAgcmVhZG9ubHkgdmFsaWRNaW5MZW5ndGggPSBpbnB1dDxJVmFsaWRMZW5ndGg+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWluVmFsdWUgPSBpbnB1dDxJTWVzc2FnZVRyYW5zbGF0ZT4oKTtcbiAgcmVhZG9ubHkgdmFsaWRNYXhWYWx1ZSA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSB2YWxpZE1heExlbmd0aCA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSB2YWxpZER1cGxpY2F0ZSA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSBmdW5jdGlvblZhbGlkID0gaW5wdXQ8VFlQRV9GVU5DVElPTl9JTlBVVF9WQUxJRD4oKTtcbiAgcmVhZG9ubHkgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBwb3NpdGlvbk1lc3NhZ2VFcnJvclN0YXJ0SW5wdXQgPSBpbnB1dDxib29sZWFuPigpOyAvLyBraGkgY8OzIHRlbXBsYXRlIGxlZnQgdsOgIHJpZ2h0IG3DoCBtdeG7kW4gbWVzYWdlIGVycm9yIHh14bqldCBoaeG7h24gYuG6r3QgxJHhuqd1IHThu6sgw7QgaW5wdXQgdGhheSB2w6wgYuG6r3QgxJHhuqd1IHThu6sgdGVtcGxhdGUgIHRyw6FpXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVzaXplID0gaW5wdXQ8J2F1dG8nIHwgJ25vbmUnPigpO1xuICByZWFkb25seSB0ZW1wbGF0ZUxlZnRCb3R0b21JbnB1dCA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSaWdodEJvdHRvbUlucHV0ID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSBvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGF1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG1heExlbmd0aE51bWJlckNvdW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlVW5pdFJpZ2h0Q2xhc3NSZWFkT25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHBhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljID0gaW5wdXQ8bnVtYmVyPigpOyAvLyBmaXggcGFkZGluZ1JpZ2h0IGNvdW50IGtvIGF1dG8gdMOtbmggIzUyMTg1XG4gIHJlYWRvbmx5IGZvY3VzVGltZU91dCA9IGlucHV0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBpZ25vcmVBZGRJdGVtID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpZ25vcmVSZW1vdmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IG1heEl0ZW1zID0gaW5wdXQ8bnVtYmVyPig1KTsgLy8gc+G7kSBsxrDhu6NuZyBpbnB1dCB04buRaSDEkWFcbiAgcmVhZG9ubHkgbWluSXRlbXMgPSBpbnB1dDxudW1iZXI+KDEpOyAvLyBraMO0bmcgxJHGsOG7o2MgcGjDqXAgeMOzYSBu4bq/dSBz4buRIGzGsOG7o25nIGl0ZW1zIDw9IG1pbkl0ZW1zLmxlbmd0aFxuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SUlucHV0QWRkRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dFJlbW92ZSA9IG91dHB1dDxJSW5wdXRBZGQ+KCk7XG4gIHJlYWRvbmx5IG91dEFkZEl0ZW0gPSBvdXRwdXQ8SUlucHV0QWRkPigpO1xuICByZWFkb25seSBvdXRDbGlja0J1dHRvbkxhYmVsID0gb3V0cHV0PElCdXR0b24+KCk7XG4gIHJlYWRvbmx5IG91dFN3aXRjaEV2ZW50TGFiZWwgPSBvdXRwdXQ8SVN3aXRjaEV2ZW50PigpO1xuICByZWFkb25seSBvdXRMYWJlbFJpZ2h0Q2xpY2sgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0TGFiZWxMZWZ0Q2xpY2sgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0VmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUVtaXRWYWx1ZUNoYW5nZT4oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaXRlbXMuc2V0KFt7IFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH1dKTtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1zLnVwZGF0ZShpdGVtcyA9PiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCB1bmlxS2V5OiB1dWlkKCkgfVxuICAgIH0pKTtcblxuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy5jaGVja0lzVmFsaWQuYmluZCh0aGlzKSxcbiAgICAgIHNldE1lc3NhZ2VFcnJvcjogdGhpcy5zZXRNZXNzYWdlRXJyb3IuYmluZCh0aGlzKVxuICAgIH0pO1xuICB9XG5cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZXRNZXNzYWdlRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMoKSkge1xuICAgICAgYXdhaXQgaXRlbS5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcihtZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJc1ZhbGlkKGNoZWNrVmFsaWRSZXF1aXJlZCA9IHRydWUsIGN1cnJlbnRJdGVtPzogSUlucHV0QWRkKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmRpc2FibGUoKSB8fCB0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy5pdGVtcygpKSB7XG4gICAgICBpZiAoaW5wdXQucmVhZG9ubHkgfHwgaW5wdXQuZGlzYWJsZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoZWNrVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmNoZWNrVmFsaWRSZXF1aXJlZChpbnB1dCkpKSB7XG4gICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGN1cnJlbnRJdGVtPy51bmlxS2V5ID09PSBpbnB1dC51bmlxS2V5KSB7XG4gICAgICAgIHZhbGlkID0gYXdhaXQgaW5wdXQuZnVuY3Rpb25Db250cm9sPy5jaGVja0lzVmFsaWQoKSA/PyBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnZhbGlkRHVwbGljYXRlKCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5wdXRbdGhpcy5maWVsZE5hbWVCaW5kKCldKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGlucHV0W3RoaXMuZmllbGROYW1lQmluZCgpXSA9PT0gJ3N0cmluZycgJiYgIWlucHV0W3RoaXMuZmllbGROYW1lQmluZCgpXS50cmltKCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpZWxkc0R1cGxpY2F0ZSA9IHRoaXMuaXRlbXMoKS5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50W3RoaXMuZmllbGROYW1lQmluZCgpXSA9PT0gaW5wdXRbdGhpcy5maWVsZE5hbWVCaW5kKCldKTtcbiAgICAgIGlmICghZmllbGRzRHVwbGljYXRlIHx8ICFmaWVsZHNEdXBsaWNhdGUubGVuZ3RoKSB7XG4gICAgICAgIGlucHV0LmZ1bmN0aW9uQ29udHJvbD8uc2V0TWVzc2FnZUVycm9yKCcnKTtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkc0R1cGxpY2F0ZS5sZW5ndGggPCAyKSB7XG4gICAgICAgIGlucHV0LmZ1bmN0aW9uQ29udHJvbD8uc2V0TWVzc2FnZUVycm9yKCcnKTtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcih0aGlzLnZhbGlkRHVwbGljYXRlKCk/Lm1lc3NhZ2UgfHwgJ2kxOG5fdmFsaWRfZHVwbGljYXRlX21zZycpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tWYWxpZFJlcXVpcmVkKGlucHV0OiBJSW5wdXRBZGQpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgIGNvbnN0IHZhbGlkSWZBdExlYXN0T25lVmFsdWUgPSB0aGlzLmlnbm9yZVZhbGlkRW1wdHlGaWVsZCgpICYmIHRoaXMuaXRlbXMoKS5maW5kKGl0ZW0gPT4gISFpdGVtW3RoaXMuZmllbGROYW1lQmluZCgpXT8udHJpbSgpKTtcblxuICAgIGlmICh2YWxpZElmQXRMZWFzdE9uZVZhbHVlKSB7XG4gICAgICBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcignJyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIShhd2FpdCBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckFkZEl0ZW0oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnSXRlbUFkZFRvSXRlbXMoKSkge1xuICAgICAgY29uc3QgbmV3SXRlbTogSUlucHV0QWRkID0geyB1bmlxS2V5OiB1dWlkKCksIFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH07XG4gICAgICB0aGlzLml0ZW1zLnVwZGF0ZShpdGVtcyA9PiBbLi4uaXRlbXMsIG5ld0l0ZW1dKTtcbiAgICAgIHRoaXMub3V0QWRkSXRlbS5lbWl0KG5ld0l0ZW0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld0l0ZW06IElJbnB1dEFkZCA9IHsgLi4uY2xvbmVEZWVwKHRoaXMuY29uZmlnSXRlbUFkZFRvSXRlbXMpLCB1bmlxS2V5OiB1dWlkKCksIFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH07XG4gICAgdGhpcy5pdGVtcy51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zLCBuZXdJdGVtXSk7XG4gICAgdGhpcy5vdXRBZGRJdGVtLmVtaXQobmV3SXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclJlbW92ZShldmVudDogRXZlbnQsIGl0ZW06IElJbnB1dEFkZCwgaW5kZXg6IG51bWJlcikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXRlbXMudXBkYXRlKGN1cnJlbnRJdGVtcyA9PiBjdXJyZW50SXRlbXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCkpO1xuICAgIHRoaXMub3V0UmVtb3ZlLmVtaXQoaXRlbSk7XG4gICAgdGhpcy50aW1lT3V0S2V5VXAuc2V0KHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dEtleVVwKCkpO1xuICAgICAgdGhpcy5jaGVja0lzVmFsaWQoZmFsc2UpO1xuICAgIH0sIDI1MCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0J1dHRvbkxhYmVsKGJ1dHRvbjogSUJ1dHRvbikge1xuICAgIHRoaXMub3V0Q2xpY2tCdXR0b25MYWJlbC5lbWl0KGJ1dHRvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclN3aXRjaExhYmVsKGV2ZW50OiBJU3dpdGNoRXZlbnQpIHtcbiAgICB0aGlzLm91dFN3aXRjaEV2ZW50TGFiZWwuZW1pdChldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50TGFiZWxMZWZ0TGFiZWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm91dExhYmVsTGVmdENsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudExhYmVsUmlnaHRMYWJlbCgpIHtcbiAgICB0aGlzLm91dExhYmVsUmlnaHRDbGljay5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50LCBpdGVtOiBJSW5wdXRBZGQpIHtcbiAgICBpdGVtLmZ1bmN0aW9uQ29udHJvbCA9IGV2ZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBpdGVtOiBJSW5wdXRBZGQpIHtcbiAgICBpdGVtW3RoaXMuZmllbGROYW1lQmluZCgpXSA9IHZhbHVlO1xuXG4gICAgdGhpcy5vdXRWYWx1ZUNoYW5nZS5lbWl0KHsgdmFsdWUsIGl0ZW0gfSk7XG5cbiAgICB0aGlzLnRpbWVPdXRLZXlVcC5zZXQoc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0S2V5VXAoKSk7XG4gICAgICB0aGlzLmNoZWNrSXNWYWxpZChmYWxzZSwgaXRlbSk7XG4gICAgfSwgMjUwKSk7XG4gIH1cbn0iLCJAaWYgKGZpZWxkTmFtZUJpbmQoKSAmJiBpdGVtcygpOyBhcyBpdGVtcykge1xuICBAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1sYWJlbCBbbGFiZWxMZWZ0XT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdFwiXG4gICAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgICBbbGFiZWxMZWZ0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxMZWZ0Q2xhc3NcIlxuICAgICAgW2ljb25Qb3BvdmVyQ2xhc3NdPVwibGFiZWxDb25maWcuaWNvblBvcG92ZXJDbGFzc1wiXG4gICAgICBbbGFiZWxMZWZ0QmVoaW5kVG9nZ2xlQnV0dG9uXT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdEJlaGluZFRvZ2dsZUJ1dHRvblwiXG4gICAgICBbcG9wb3Zlcl09XCJsYWJlbENvbmZpZy5wb3BvdmVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJsYWJlbENvbmZpZy5yZXF1aXJlZFwiXG4gICAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgICAgW2J1dHRvbnNSaWdodF09XCJsYWJlbENvbmZpZy5idXR0b25zUmlnaHRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNSaWdodFwiXG4gICAgICBbbGFiZWxSaWdodF09XCJsYWJlbENvbmZpZy5sYWJlbFJpZ2h0XCJcbiAgICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICAgIFtsYWJlbFJpZ2h0UmVxdWlyZWRdPVwibGFiZWxDb25maWcubGFiZWxSaWdodFJlcXVpcmVkXCJcbiAgICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICAgIFt0b2dnbGVTaXplXT1cImxhYmVsQ29uZmlnLnRvZ2dsZVNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgIFt0b2dnbGVBY3RpdmVdPVwibGFiZWxDb25maWcudG9nZ2xlQWN0aXZlXCJcbiAgICAgIFt0b2dnbGVEaXNhYmxlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZURpc2FibGVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICAgIFtkZXNjcmlwdGlvbkNsYXNzXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uQ2xhc3NcIlxuICAgICAgW2J1dHRvbnNEZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5idXR0b25zRGVzY3JpcHRpb25cIlxuICAgICAgW2Rpc2FibGVCdXR0b25zRGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NdPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NcIlxuICAgICAgW29ubHlTaG93Q291bnRdPVwibGFiZWxDb25maWcub25seVNob3dDb3VudFwiXG4gICAgICBbekluZGV4UG9wb3Zlcl09XCJsYWJlbENvbmZpZy56SW5kZXhQb3BvdmVyIHx8IDEwXCJcbiAgICAgIFt0aW1lckRlc3Ryb3lQb3BvdmVyXT1cImxhYmVsQ29uZmlnLnRpbWVyRGVzdHJveVBvcG92ZXIgfHwgMFwiXG4gICAgICBbY291bnRdPVwibGFiZWxDb25maWcuY291bnRcIlxuICAgICAgW2xpbWl0TGVuZ3RoXT1cImxhYmVsQ29uZmlnLmxpbWl0TGVuZ3RoXCJcbiAgICAgIChvdXRDbGlja0J1dHRvbik9XCJoYW5kbGVyQ2xpY2tCdXR0b25MYWJlbCgkZXZlbnQpXCJcbiAgICAgIChvdXRTd2l0Y2hFdmVudCk9XCJoYW5kbGVyU3dpdGNoTGFiZWwoJGV2ZW50KVwiXG4gICAgICAob3V0TGFiZWxMZWZ0Q2xpY2spPVwiaGFuZGxlckV2ZW50TGFiZWxMZWZ0TGFiZWwoJGV2ZW50KVwiXG4gICAgICAob3V0TGFiZWxSaWdodENsaWNrKT1cImhhbmRsZXJFdmVudExhYmVsUmlnaHRMYWJlbCgpXCIgLz5cbiAgfVxuICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtLnVuaXFLZXk7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIlxuICAgICAgW3N0eWxlLm1hcmdpblRvcC5weF09XCIhZmlyc3QgPyBmb3JtSW5wdXRTcGFjaW5nKCkgOiAwXCI+XG5cbiAgICAgIEBpZiAobGVmdFRlbXBsYXRlSXRlbXMoKTsgYXMgbGVmdFRlbXBsYXRlSXRlbXMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgge3sgbGVmdFRlbXBsYXRlSXRlbXMuY2xhc3NJbmNsdWRlIH19XCI+XG4gICAgICAgICAgQGZvciAocmlnaHRJdGVtIG9mIGxlZnRUZW1wbGF0ZUl0ZW1zLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKHJpZ2h0SXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnRlbXBsYXRlTGVmdE91dGxldCB8fCB0ZW1wbGF0ZUxlZnRPdXRsZXQoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihpdGVtLnRlbXBsYXRlTGVmdE91dGxldCB8fCB0ZW1wbGF0ZUxlZnRPdXRsZXQoKSB8fCBudWxsKTtjb250ZXh0OntpdGVtOiBpdGVtLCBpbmRleDogaW5kZXh9XCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdmFsaWQgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgIFtmaWVsZE5hbWVCaW5kXT1cImZpZWxkTmFtZUJpbmQoKVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyID8/IHBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbZW1pdEVtcHR5SW5EYXRhVHlwZU51bWJlcl09XCJlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyKClcIlxuICAgICAgICBbdGFnSW5wdXRdPVwidGFnSW5wdXQoKVwiXG4gICAgICAgIFtkYXRhVHlwZV09XCJkYXRhVHlwZSgpXCJcbiAgICAgICAgW2ZpeGVkRmxvYXRdPVwiZml4ZWRGbG9hdCgpXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgaXRlbS5yZWFkb25seVwiXG4gICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCBpdGVtLmRpc2FibGVcIlxuICAgICAgICBbY2xhc3NDb250YWluZXJJbnB1dF09XCJjbGFzc0NvbnRhaW5lcklucHV0KClcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlSW5wdXRdPVwiY2xhc3NJbmNsdWRlSW5wdXQoKVwiXG4gICAgICAgIFthY2NlcHROZWdhdGl2ZVZhbHVlXT1cImFjY2VwdE5lZ2F0aXZlVmFsdWUoKVwiXG4gICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCJ2YWx1ZVVwRG93bk51bWJlcigpIHx8IDFcIlxuICAgICAgICBbaWdub3JlV2lkdGhJbnB1dDEwMF09XCJpZ25vcmVXaWR0aElucHV0MTAwKClcIlxuICAgICAgICBbc2hvd0NvdW50XT1cInNob3dDb3VudCgpXCJcbiAgICAgICAgW3Jlc2V0QXV0b0NvbXBsZXRlUGFzc3dvcmRdPVwicmVzZXRBdXRvQ29tcGxldGVQYXNzd29yZCgpXCJcbiAgICAgICAgW25vQm9yZGVyXT1cIm5vQm9yZGVyKClcIlxuICAgICAgICBbYmFja2dyb3VuZE5vbmVdPVwiYmFja2dyb3VuZE5vbmUoKVwiXG4gICAgICAgIFt1c2VDb2xvck1vZGVFeGlzdF09XCJ1c2VDb2xvck1vZGVFeGlzdCgpXCJcbiAgICAgICAgW2tlZXBQbGFjZWhvbGRlck9ubHldPVwia2VlcFBsYWNlaG9sZGVyT25seSgpXCJcbiAgICAgICAgW2NsYXNzQ29udGFpbmVyQm90dG9tSW5wdXRdPVwiY2xhc3NDb250YWluZXJCb3R0b21JbnB1dCgpXCJcbiAgICAgICAgW2F1dG9SZW1vdmVFbW9qaV09XCJhdXRvUmVtb3ZlRW1vamkoKVwiXG4gICAgICAgIFtkZWZhdWx0SGVpZ2h0XT1cImRlZmF1bHRIZWlnaHQoKVwiXG4gICAgICAgIFtpZ25vcmVTaG93RXJyb3JdPVwiaWdub3JlU2hvd0Vycm9yKClcIlxuICAgICAgICBbYm9yZGVyRXJyb3JdPVwiYm9yZGVyRXJyb3IoKVwiXG4gICAgICAgIFt1bml0c0xlZnRdPVwiaXRlbS51bml0c0xlZnQgfHwgdW5pdHNMZWZ0KClcIlxuICAgICAgICBbY29uZmlnVW5pdExlZnRdPVwiaXRlbS5jb25maWdVbml0TGVmdCB8fCBjb25maWdVbml0TGVmdCgpXCJcbiAgICAgICAgW2tleVNlbGVjdGVkVW5pdExlZnRdPVwiaXRlbS5rZXlTZWxlY3RlZFVuaXRMZWZ0IHx8IGtleVNlbGVjdGVkVW5pdExlZnQoKVwiXG4gICAgICAgIFt1bml0c1JpZ2h0XT1cIml0ZW0udW5pdHNSaWdodCB8fCB1bml0c1JpZ2h0KClcIlxuICAgICAgICBbY29uZmlnVW5pdFJpZ2h0XT1cIml0ZW0uY29uZmlnVW5pdFJpZ2h0IHx8IGNvbmZpZ1VuaXRSaWdodCgpXCJcbiAgICAgICAgW2tleVNlbGVjdGVkVW5pdFJpZ2h0XT1cIml0ZW0ua2V5U2VsZWN0ZWRVbml0UmlnaHQgfHwga2V5U2VsZWN0ZWRVbml0UmlnaHQoKVwiXG4gICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJpdGVtLm1heFZhbHVlTnVtYmVyIHx8IG1heFZhbHVlTnVtYmVyKClcIlxuICAgICAgICBbbWluVmFsdWVOdW1iZXJdPVwiaXRlbS5taW5WYWx1ZU51bWJlciB8fCBtaW5WYWx1ZU51bWJlcigpXCJcbiAgICAgICAgW2lzQmFzZWxpbmVTdHlsZV09XCJpc0Jhc2VsaW5lU3R5bGUoKVwiXG4gICAgICAgIFt2YWx1ZVBhdHRlcm5TaG93RXJyb3JdPVwidmFsdWVQYXR0ZXJuU2hvd0Vycm9yKClcIlxuICAgICAgICBbdmFsaWRQYXR0ZXJuXT1cInZhbGlkUGF0dGVybigpXCJcbiAgICAgICAgW3ZhbGlkUmVxdWlyZWRdPVwidmFsaWRSZXF1aXJlZCgpXCJcbiAgICAgICAgW3ZhbGlkTWluTGVuZ3RoXT1cInZhbGlkTWluTGVuZ3RoKClcIlxuICAgICAgICBbdmFsaWRNaW5WYWx1ZV09XCJ2YWxpZE1pblZhbHVlKClcIlxuICAgICAgICBbdmFsaWRNYXhWYWx1ZV09XCJ2YWxpZE1heFZhbHVlKClcIlxuICAgICAgICBbdmFsaWRNYXhMZW5ndGhdPVwidmFsaWRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFtmdW5jdGlvblZhbGlkXT1cImZ1bmN0aW9uVmFsaWQoKVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiaXRlbS5tYXhMZW5ndGggfHwgbWF4TGVuZ3RoKClcIlxuICAgICAgICBbcG9zaXRpb25NZXNzYWdlRXJyb3JTdGFydElucHV0XT1cInBvc2l0aW9uTWVzc2FnZUVycm9yU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJjbGFzc0luY2x1ZGUoKVwiXG4gICAgICAgIFtvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSgpXCJcbiAgICAgICAgW2F1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludF09XCJhdXRvQWRkWmVyb0xlc3NUaGFuMTBJblR5cGVJbnQoKVwiXG4gICAgICAgIFttYXhMZW5ndGhOdW1iZXJDb3VudF09XCJtYXhMZW5ndGhOdW1iZXJDb3VudCgpXCJcbiAgICAgICAgW2NsYXNzTWVzc2FnZUVycm9ySW5jbHVkZV09XCJjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUoKVwiXG4gICAgICAgIFtpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudF09XCJpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudCgpXCJcbiAgICAgICAgW2lnbm9yZVVuaXRSaWdodENsYXNzUmVhZE9ubHldPVwiaWdub3JlVW5pdFJpZ2h0Q2xhc3NSZWFkT25seSgpXCJcbiAgICAgICAgW3BhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljXT1cInBhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljKClcIlxuICAgICAgICBbZm9jdXNUaW1lT3V0XT1cImZvY3VzVGltZU91dCgpXCJcbiAgICAgICAgKG91dFZhbHVlQ2hhbmdlKT1cImhhbmRsZXJWYWx1ZUNoYW5nZSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2woJGV2ZW50LCBpdGVtKVwiIC8+XG5cbiAgICAgIEBpZiAocmlnaHRUZW1wbGF0ZUl0ZW1zKCk7IGFzIHJpZ2h0VGVtcGxhdGVJdGVtcykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgcmlnaHRUZW1wbGF0ZUl0ZW1zLmNsYXNzSW5jbHVkZSB9fVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJkZWZhdWx0SGVpZ2h0KCkgfHwgMzJcIj5cbiAgICAgICAgICBAZm9yIChyaWdodEl0ZW0gb2YgcmlnaHRUZW1wbGF0ZUl0ZW1zLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKHJpZ2h0SXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgncmVtb3ZlJykge1xuICAgICAgICAgICAgICAgIEBpZiAoIWlnbm9yZVJlbW92ZSgpICYmICFpdGVtLmlnbm9yZVJlbW92ZSAmJiBpdGVtcy5sZW5ndGggPiBtaW5JdGVtcygpKSB7XG4gICAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tbGluay10aGlyZCdcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLXJlbW92ZSBtci1bMHB4XSdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc0luY2x1ZGU9XCJsaWJzLXVpLWljb24taG92ZXItZGFuZ2VyICFwLVsycHhdIG1sLVsxNnB4XSB7eyByaWdodEl0ZW0uY2xhc3NJbmNsdWRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJSZW1vdmUoJGV2ZW50LCBpdGVtLCBpbmRleClcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnRlbXBsYXRlUmlnaHRPdXRsZXQgfHwgdGVtcGxhdGVSaWdodE91dGxldCgpKSB7XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGl0ZW0udGVtcGxhdGVSaWdodE91dGxldCB8fCB0ZW1wbGF0ZVJpZ2h0T3V0bGV0KCkgfHwgbnVsbCk7Y29udGV4dDp7aXRlbTogaXRlbSwgaW5kZXg6IGluZGV4fVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxufVxuXG5AaWYgKCFpZ25vcmVBZGRJdGVtKCkgJiYgKCFtYXhJdGVtcygpIHx8IGl0ZW1zKCkubGVuZ3RoIDwgbWF4SXRlbXMoKSkpIHtcbiAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCJhZGRJdGVtQnV0dG9uQ29uZmlnKCk/LnR5cGUgfHwgJ2J1dHRvbi1saW5rLXByaW1hcnknXCJcbiAgICBbbGFiZWxdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5sYWJlbCB8fCAnaTE4bl9hZGRfbmV3J1wiXG4gICAgW2NsYXNzTGFiZWxdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5jbGFzc0xhYmVsIHx8ICdsaWJzLXVpZm9udC1oZWFkLTVtJ1wiXG4gICAgW2NsYXNzSWNvbkxlZnRdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5jbGFzc0ljb25MZWZ0IHx8ICdsaWJzLXVpLWljb24tYWRkIHRleHQtWzEwcHhdIG1yLVs4cHhdJ1wiXG4gICAgW2NsYXNzSW5jbHVkZV09XCJhZGRJdGVtQnV0dG9uQ29uZmlnKCk/LmNsYXNzSW5jbHVkZSB8fCAnIXBiLTAgIXBsLTAgIXB5LVsycHhdIG10LVs4cHhdJ1wiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGZhbHNlXCJcbiAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFkZEl0ZW0oJGV2ZW50KVwiIC8+XG59XG4iXX0=
|
|
228
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvYWRkL3NyYy9hZGQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9hZGQvc3JjL2FkZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFHdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQWUsTUFBTSxlQUFlLENBQUM7QUFDdEgsT0FBTyxFQUFXLHNDQUFzQyxFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDckcsT0FBTyxFQUF1RyxvQ0FBb0MsRUFBNkIsTUFBTSxrQ0FBa0MsQ0FBQztBQUN4TixPQUFPLEVBQVUsOEJBQThCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUduRixPQUFPLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFtQjdFLE1BQU0sT0FBTyxrQ0FBa0M7SUFDN0MsbUJBQW1CO0lBQ1gsWUFBWSxHQUFHLE1BQU0sQ0FBUyxDQUFDLENBQUMsQ0FBQztJQUV6QyxnQkFBZ0I7SUFDUCxhQUFhLEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBVSxDQUFDO0lBQ3pDLEtBQUssR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFvQixDQUFDO0lBQzNDLFFBQVEsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsT0FBTyxH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LENBQUM7WUFDbEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDakMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDWCxDQUFDO3dHQXZQVSxrQ0FBa0M7NEZBQWxDLGtDQUFrQyxtK1ZDL0IvQyx5L09BaUpBLHlERHpISSxlQUFlLCtCQUFFLGdCQUFnQixvSkFDakMsc0NBQXNDLHNqQkFDdEMsb0NBQW9DLDh6REFDcEMsOEJBQThCOzs0RkFJckIsa0NBQWtDO2tCQWQ5QyxTQUFTOytCQUVFLCtCQUErQixjQUc3QixJQUFJLFdBQ1A7d0JBQ1AsZUFBZSxFQUFFLGdCQUFnQjt3QkFDakMsc0NBQXNDO3dCQUN0QyxvQ0FBb0M7d0JBQ3BDLDhCQUE4QjtxQkFDL0IsbUJBQ2dCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55ICovXG5cblxuaW1wb3J0IHsgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIFRlbXBsYXRlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBJQnV0dG9uLCBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtYnV0dG9ucy1idXR0b24nO1xuaW1wb3J0IHsgSUlucHV0VmFsaWRGdW5jdGlvbkNvbnRyb2xFdmVudCwgSUlucHV0VmFsaWRVbml0Q29uZmlnLCBJVmFsaWRMZW5ndGgsIElWYWxpZFBhdHRlcm4sIElWYWxpZFJlcXVpcmVkLCBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQsIFRZUEVfRlVOQ1RJT05fSU5QVVRfVkFMSUQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWlucHV0cy12YWxpZCc7XG5pbXBvcnQgeyBJTGFiZWwsIExpYnNVaUNvbXBvbmVudHNMYWJlbENvbXBvbmVudCB9IGZyb20gJ0BsaWJzLXVpL2NvbXBvbmVudHMtbGFiZWwnO1xuaW1wb3J0IHsgSVN3aXRjaEV2ZW50IH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1zd2l0Y2gnO1xuaW1wb3J0IHsgSU1lc3NhZ2VUcmFuc2xhdGUsIFRZUEVfVEVNUExBVEVfUkVGIH0gZnJvbSAnQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIHV1aWQgfSBmcm9tICdAbGlicy11aS91dGlscyc7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGxlZnRUZW1wbGF0ZUl0ZW1zLCByaWdodFRlbXBsYXRlSXRlbXMgfSBmcm9tICcuL2RlZmluZXMvYWRkLmRlZmluZSc7XG5pbXBvcnQgeyBJRW1pdFZhbHVlQ2hhbmdlLCBJSW5wdXRBZGQsIElUZW1wbGF0ZVJpZ2h0TGVmdEl0ZW0gfSBmcm9tICcuL2ludGVyZmFjZXMnO1xuaW1wb3J0IHsgSUlucHV0QWRkRnVuY3Rpb25Db250cm9sRXZlbnQgfSBmcm9tICcuL2ludGVyZmFjZXMvZnVuY3Rpb24tY29udHJvbC1ldmVudC5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgVFlQRV9EQVRBX1RZUEVfSU5QVVQsIFRZUEVfSU5QVVQsIFRZUEVfVEFHX0lOUFVUIH0gZnJvbSAnQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtaW5wdXQnO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWFkZCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9hZGQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9hZGQuY29tcG9uZW50LnNjc3MnXSxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIFRyYW5zbGF0ZU1vZHVsZSwgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0xhYmVsQ29tcG9uZW50XG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNBZGRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyAjcmVnaW9uIFBST1BFUlRZXG4gIHByaXZhdGUgdGltZU91dEtleVVwID0gc2lnbmFsPG51bWJlcj4oMCk7XG5cbiAgLy8gI3JlZ2lvbiBJTlBVVFxuICByZWFkb25seSBmaWVsZE5hbWVCaW5kID0gaW5wdXQucmVxdWlyZWQ8c3RyaW5nPigpO1xuICByZWFkb25seSBpdGVtcyA9IG1vZGVsLnJlcXVpcmVkPEFycmF5PElJbnB1dEFkZD4+KCk7XG4gIHJlYWRvbmx5IHJlYWRvbmx5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBkaXNhYmxlID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBhZGRJdGVtQnV0dG9uQ29uZmlnID0gaW5wdXQ8SUJ1dHRvbj4oKTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGxhYmVsQ29uZmlnID0gaW5wdXQ8SUxhYmVsPigpO1xuICByZWFkb25seSBmb3JtSW5wdXRTcGFjaW5nID0gaW5wdXQ8bnVtYmVyPig4KTsgLy8ga2hv4bqjbmcgY8OhY2ggZ2nhu69hIGhhaSDDtCBpbnB1dFxuICByZWFkb25seSBjb25maWdJdGVtQWRkVG9JdGVtcyA9IGlucHV0PElJbnB1dEFkZD4oKTtcbiAgcmVhZG9ubHkgcmlnaHRUZW1wbGF0ZUl0ZW1zID0gaW5wdXQ8SVRlbXBsYXRlUmlnaHRMZWZ0SXRlbT4ocmlnaHRUZW1wbGF0ZUl0ZW1zKCkpO1xuICByZWFkb25seSBsZWZ0VGVtcGxhdGVJdGVtcyA9IGlucHV0PElUZW1wbGF0ZVJpZ2h0TGVmdEl0ZW0+KGxlZnRUZW1wbGF0ZUl0ZW1zKCkpO1xuICByZWFkb25seSB0ZW1wbGF0ZUxlZnRPdXRsZXQgPSBpbnB1dDxUZW1wbGF0ZVJlZjxUWVBFX1RFTVBMQVRFX1JFRj4+KCk7XG4gIHJlYWRvbmx5IHRlbXBsYXRlUmlnaHRPdXRsZXQgPSBpbnB1dDxUZW1wbGF0ZVJlZjxUWVBFX1RFTVBMQVRFX1JFRj4+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVdpZHRoSW5wdXQxMDAgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBjbGFzc0luY2x1ZGVJbnB1dCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgY2xhc3NDb250YWluZXJJbnB1dCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgc2hvd0NvdW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlVmFsaWRFbXB0eUZpZWxkID0gaW5wdXQ8Ym9vbGVhbj4oKTsgLy8gY2jhu4kgY+G6p24gY8OzIMOtdCBuaOG6pXQgMSBmaWVsZCBjw7MgZ2nDoSB0cuG7iyBsw6AgdmFsaWRcblxuICByZWFkb25seSBlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgdGFnSW5wdXQgPSBpbnB1dDxUWVBFX1RBR19JTlBVVD4oKTtcbiAgcmVhZG9ubHkgZGF0YVR5cGUgPSBpbnB1dDxUWVBFX0RBVEFfVFlQRV9JTlBVVD4oKTtcbiAgcmVhZG9ubHkgdHlwZUlucHV0ID0gaW5wdXQ8VFlQRV9JTlBVVD4oKTtcbiAgcmVhZG9ubHkgZml4ZWRGbG9hdCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgYWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHZhbHVlVXBEb3duTnVtYmVyID0gaW5wdXQ8bnVtYmVyIHwgdW5kZWZpbmVkPigpO1xuICByZWFkb25seSByZXNldEF1dG9Db21wbGV0ZVBhc3N3b3JkID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgbm9Cb3JkZXIgPSBpbnB1dDxib29sZWFuPigpO1xuICByZWFkb25seSBiYWNrZ3JvdW5kTm9uZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHVzZUNvbG9yTW9kZUV4aXN0ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkga2VlcFBsYWNlaG9sZGVyT25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgcmVhZG9ubHkgY2xhc3NDb250YWluZXJCb3R0b21JbnB1dCA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgYXV0b1JlbW92ZUVtb2ppID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgZGVmYXVsdEhlaWdodCA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlU2hvd0Vycm9yID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgYm9yZGVyRXJyb3IgPSBpbnB1dDxib29sZWFuPigpO1xuXG4gIHJlYWRvbmx5IHVuaXRzTGVmdCA9IGlucHV0PEFycmF5PGFueT4+KCk7XG4gIHJlYWRvbmx5IGNvbmZpZ1VuaXRMZWZ0ID0gaW5wdXQ8SUlucHV0VmFsaWRVbml0Q29uZmlnPih7XG4gICAgZmllbGRLZXk6ICdpZCcsXG4gICAgZmllbGRMYWJlbDogJ2xhYmVsJyxcbiAgfSk7XG4gIHJlYWRvbmx5IGtleVNlbGVjdGVkVW5pdExlZnQgPSBpbnB1dDxhbnk+KCk7XG5cbiAgcmVhZG9ubHkgdW5pdHNSaWdodCA9IGlucHV0PEFycmF5PGFueT4+KCk7XG4gIHJlYWRvbmx5IGNvbmZpZ1VuaXRSaWdodCA9IGlucHV0PElJbnB1dFZhbGlkVW5pdENvbmZpZz4oe1xuICAgIGZpZWxkS2V5OiAnaWQnLFxuICAgIGZpZWxkTGFiZWw6ICdsYWJlbCcsXG4gIH0pO1xuICByZWFkb25seSBrZXlTZWxlY3RlZFVuaXRSaWdodCA9IGlucHV0PGFueT4oKTtcblxuICByZWFkb25seSBtYXhWYWx1ZU51bWJlciA9IGlucHV0PG51bWJlcj4oKTtcbiAgcmVhZG9ubHkgbWluVmFsdWVOdW1iZXIgPSBpbnB1dDxudW1iZXI+KCk7XG4gIHJlYWRvbmx5IGlzQmFzZWxpbmVTdHlsZSA9IGlucHV0PGJvb2xlYW4+KCk7IC8vIGFsaWduLWl0ZW1zLWJhc2VsaW5lIGTDuW5nIGtoaSBjxINuIGlucHV0IHRo4bqzbmcgaMOgbmcgduG7m2kgdOG6pXQgY+G6oyBjw6FjIHBo4bqnbiBraMOhYyBkw7kgY8OzIHZhbGlkYXRlIGhheSBi4bqldCBj4bupIDEgY8OhaSBnw6xcblxuICByZWFkb25seSB2YWx1ZVBhdHRlcm5TaG93RXJyb3IgPSBpbnB1dDxib29sZWFuPigpOyAvLyBt4bq3YyDEkeG7i25oIGtoaSB0ZXN0IHBhdHRlcm4gdHLhuqMgdOG7gSBnacOhIHRy4buLIGLhurFuZyBmYWxzZSBz4bq9IGLDoW8gbOG7l2lcbiAgcmVhZG9ubHkgdmFsaWRQYXR0ZXJuID0gaW5wdXQ8QXJyYXk8SVZhbGlkUGF0dGVybj4+KCk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJVmFsaWRSZXF1aXJlZD4oKTtcbiAgcmVhZG9ubHkgdmFsaWRNaW5MZW5ndGggPSBpbnB1dDxJVmFsaWRMZW5ndGg+KCk7XG4gIHJlYWRvbmx5IHZhbGlkTWluVmFsdWUgPSBpbnB1dDxJTWVzc2FnZVRyYW5zbGF0ZT4oKTtcbiAgcmVhZG9ubHkgdmFsaWRNYXhWYWx1ZSA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSB2YWxpZE1heExlbmd0aCA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSB2YWxpZER1cGxpY2F0ZSA9IGlucHV0PElNZXNzYWdlVHJhbnNsYXRlPigpO1xuICByZWFkb25seSBmdW5jdGlvblZhbGlkID0gaW5wdXQ8VFlQRV9GVU5DVElPTl9JTlBVVF9WQUxJRD4oKTtcbiAgcmVhZG9ubHkgbWF4TGVuZ3RoID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBwb3NpdGlvbk1lc3NhZ2VFcnJvclN0YXJ0SW5wdXQgPSBpbnB1dDxib29sZWFuPigpOyAvLyBraGkgY8OzIHRlbXBsYXRlIGxlZnQgdsOgIHJpZ2h0IG3DoCBtdeG7kW4gbWVzYWdlIGVycm9yIHh14bqldCBoaeG7h24gYuG6r3QgxJHhuqd1IHThu6sgw7QgaW5wdXQgdGhheSB2w6wgYuG6r3QgxJHhuqd1IHThu6sgdGVtcGxhdGUgIHRyw6FpXG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZz4oKTtcbiAgcmVhZG9ubHkgcmVzaXplID0gaW5wdXQ8J2F1dG8nIHwgJ25vbmUnPigpO1xuICByZWFkb25seSB0ZW1wbGF0ZUxlZnRCb3R0b21JbnB1dCA9IGlucHV0PFRlbXBsYXRlUmVmPFRZUEVfVEVNUExBVEVfUkVGPj4oKTtcbiAgcmVhZG9ubHkgdGVtcGxhdGVSaWdodEJvdHRvbUlucHV0ID0gaW5wdXQ8VGVtcGxhdGVSZWY8VFlQRV9URU1QTEFURV9SRUY+PigpO1xuICByZWFkb25seSBvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IGF1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludCA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IG1heExlbmd0aE51bWJlckNvdW50ID0gaW5wdXQ8bnVtYmVyPigpO1xuICByZWFkb25seSBjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZVN0b3BQcm9wYWdhdGlvbkV2ZW50ID0gaW5wdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgaWdub3JlVW5pdFJpZ2h0Q2xhc3NSZWFkT25seSA9IGlucHV0PGJvb2xlYW4+KCk7XG4gIHJlYWRvbmx5IHBhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljID0gaW5wdXQ8bnVtYmVyPigpOyAvLyBmaXggcGFkZGluZ1JpZ2h0IGNvdW50IGtvIGF1dG8gdMOtbmggIzUyMTg1XG4gIHJlYWRvbmx5IGZvY3VzVGltZU91dCA9IGlucHV0PG51bWJlcj4oKTtcblxuICByZWFkb25seSBpZ25vcmVBZGRJdGVtID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICByZWFkb25seSBpZ25vcmVSZW1vdmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IG1heEl0ZW1zID0gaW5wdXQ8bnVtYmVyPig1KTsgLy8gc+G7kSBsxrDhu6NuZyBpbnB1dCB04buRaSDEkWFcbiAgcmVhZG9ubHkgbWluSXRlbXMgPSBpbnB1dDxudW1iZXI+KDEpOyAvLyBraMO0bmcgxJHGsOG7o2MgcGjDqXAgeMOzYSBu4bq/dSBz4buRIGzGsOG7o25nIGl0ZW1zIDw9IG1pbkl0ZW1zLmxlbmd0aFxuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uc0NvbnRyb2wgPSBvdXRwdXQ8SUlucHV0QWRkRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG4gIHJlYWRvbmx5IG91dFJlbW92ZSA9IG91dHB1dDxJSW5wdXRBZGQ+KCk7XG4gIHJlYWRvbmx5IG91dEFkZEl0ZW0gPSBvdXRwdXQ8SUlucHV0QWRkPigpO1xuICByZWFkb25seSBvdXRDbGlja0J1dHRvbkxhYmVsID0gb3V0cHV0PElCdXR0b24+KCk7XG4gIHJlYWRvbmx5IG91dFN3aXRjaEV2ZW50TGFiZWwgPSBvdXRwdXQ8SVN3aXRjaEV2ZW50PigpO1xuICByZWFkb25seSBvdXRMYWJlbFJpZ2h0Q2xpY2sgPSBvdXRwdXQ8Ym9vbGVhbj4oKTtcbiAgcmVhZG9ubHkgb3V0TGFiZWxMZWZ0Q2xpY2sgPSBvdXRwdXQ8TW91c2VFdmVudD4oKTtcbiAgcmVhZG9ubHkgb3V0VmFsdWVDaGFuZ2UgPSBvdXRwdXQ8SUVtaXRWYWx1ZUNoYW5nZT4oKTtcblxuICBuZ09uSW5pdCgpIHtcbiAgICBpZiAoIXRoaXMuaXRlbXMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuaXRlbXMuc2V0KFt7IFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH1dKTtcbiAgICB9XG5cbiAgICB0aGlzLml0ZW1zLnVwZGF0ZShpdGVtcyA9PiBpdGVtcy5tYXAoaXRlbSA9PiB7XG4gICAgICByZXR1cm4geyAuLi5pdGVtLCB1bmlxS2V5OiB1dWlkKCkgfVxuICAgIH0pKTtcblxuICAgIHRoaXMub3V0RnVuY3Rpb25zQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy5jaGVja0lzVmFsaWQuYmluZCh0aGlzKSxcbiAgICAgIHNldE1lc3NhZ2VFcnJvcjogdGhpcy5zZXRNZXNzYWdlRXJyb3IuYmluZCh0aGlzKVxuICAgIH0pO1xuICB9XG5cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBhc3luYyBzZXRNZXNzYWdlRXJyb3IobWVzc2FnZTogc3RyaW5nKSB7XG4gICAgZm9yIChjb25zdCBpdGVtIG9mIHRoaXMuaXRlbXMoKSkge1xuICAgICAgYXdhaXQgaXRlbS5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcihtZXNzYWdlKVxuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tJc1ZhbGlkKGNoZWNrVmFsaWRSZXF1aXJlZCA9IHRydWUsIGN1cnJlbnRJdGVtPzogSUlucHV0QWRkKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgbGV0IHZhbGlkID0gdHJ1ZTtcblxuICAgIGlmICh0aGlzLmRpc2FibGUoKSB8fCB0aGlzLnJlYWRvbmx5KCkpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cblxuICAgIGZvciAoY29uc3QgaW5wdXQgb2YgdGhpcy5pdGVtcygpKSB7XG4gICAgICBpZiAoaW5wdXQucmVhZG9ubHkgfHwgaW5wdXQuZGlzYWJsZSkge1xuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGNoZWNrVmFsaWRSZXF1aXJlZCkge1xuICAgICAgICBpZiAoIShhd2FpdCB0aGlzLmNoZWNrVmFsaWRSZXF1aXJlZChpbnB1dCkpKSB7XG4gICAgICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGN1cnJlbnRJdGVtPy51bmlxS2V5ID09PSBpbnB1dC51bmlxS2V5KSB7XG4gICAgICAgIHZhbGlkID0gYXdhaXQgaW5wdXQuZnVuY3Rpb25Db250cm9sPy5jaGVja0lzVmFsaWQoKSA/PyBmYWxzZTtcbiAgICAgIH1cblxuICAgICAgaWYgKCF0aGlzLnZhbGlkRHVwbGljYXRlKCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGlmICghaW5wdXRbdGhpcy5maWVsZE5hbWVCaW5kKCldKSB7XG4gICAgICAgIGNvbnRpbnVlO1xuICAgICAgfVxuXG4gICAgICBpZiAodHlwZW9mIGlucHV0W3RoaXMuZmllbGROYW1lQmluZCgpXSA9PT0gJ3N0cmluZycgJiYgIWlucHV0W3RoaXMuZmllbGROYW1lQmluZCgpXS50cmltKCkpIHtcbiAgICAgICAgY29udGludWU7XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IGZpZWxkc0R1cGxpY2F0ZSA9IHRoaXMuaXRlbXMoKS5maWx0ZXIoZWxlbWVudCA9PiBlbGVtZW50W3RoaXMuZmllbGROYW1lQmluZCgpXSA9PT0gaW5wdXRbdGhpcy5maWVsZE5hbWVCaW5kKCldKTtcbiAgICAgIGlmICghZmllbGRzRHVwbGljYXRlIHx8ICFmaWVsZHNEdXBsaWNhdGUubGVuZ3RoKSB7XG4gICAgICAgIGlucHV0LmZ1bmN0aW9uQ29udHJvbD8uc2V0TWVzc2FnZUVycm9yKCcnKTtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cblxuICAgICAgaWYgKGZpZWxkc0R1cGxpY2F0ZS5sZW5ndGggPCAyKSB7XG4gICAgICAgIGlucHV0LmZ1bmN0aW9uQ29udHJvbD8uc2V0TWVzc2FnZUVycm9yKCcnKTtcblxuICAgICAgICBjb250aW51ZTtcbiAgICAgIH1cbiAgICAgIHZhbGlkID0gZmFsc2U7XG4gICAgICBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcih0aGlzLnZhbGlkRHVwbGljYXRlKCk/Lm1lc3NhZ2UgfHwgJ2kxOG5fdmFsaWRfZHVwbGljYXRlX21zZycpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZDtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgY2hlY2tWYWxpZFJlcXVpcmVkKGlucHV0OiBJSW5wdXRBZGQpIHtcbiAgICBsZXQgdmFsaWQgPSB0cnVlO1xuICAgIGNvbnN0IHZhbGlkSWZBdExlYXN0T25lVmFsdWUgPSB0aGlzLmlnbm9yZVZhbGlkRW1wdHlGaWVsZCgpICYmIHRoaXMuaXRlbXMoKS5maW5kKGl0ZW0gPT4gISFpdGVtW3RoaXMuZmllbGROYW1lQmluZCgpXT8udHJpbSgpKTtcblxuICAgIGlmICh2YWxpZElmQXRMZWFzdE9uZVZhbHVlKSB7XG4gICAgICBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LnNldE1lc3NhZ2VFcnJvcignJyk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG5cbiAgICBpZiAoIShhd2FpdCBpbnB1dC5mdW5jdGlvbkNvbnRyb2w/LmNoZWNrSXNWYWxpZCgpKSkge1xuICAgICAgdmFsaWQgPSBmYWxzZTtcbiAgICB9XG5cbiAgICByZXR1cm4gdmFsaWQ7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckFkZEl0ZW0oZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG5cbiAgICBpZiAoIXRoaXMuY29uZmlnSXRlbUFkZFRvSXRlbXMoKSkge1xuICAgICAgY29uc3QgbmV3SXRlbTogSUlucHV0QWRkID0geyB1bmlxS2V5OiB1dWlkKCksIFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH07XG4gICAgICB0aGlzLml0ZW1zLnVwZGF0ZShpdGVtcyA9PiBbLi4uaXRlbXMsIG5ld0l0ZW1dKTtcbiAgICAgIHRoaXMub3V0QWRkSXRlbS5lbWl0KG5ld0l0ZW0pO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGNvbnN0IG5ld0l0ZW06IElJbnB1dEFkZCA9IHsgLi4uY2xvbmVEZWVwKHRoaXMuY29uZmlnSXRlbUFkZFRvSXRlbXMpLCB1bmlxS2V5OiB1dWlkKCksIFt0aGlzLmZpZWxkTmFtZUJpbmQoKV06ICcnIH07XG4gICAgdGhpcy5pdGVtcy51cGRhdGUoaXRlbXMgPT4gWy4uLml0ZW1zLCBuZXdJdGVtXSk7XG4gICAgdGhpcy5vdXRBZGRJdGVtLmVtaXQobmV3SXRlbSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclJlbW92ZShldmVudDogRXZlbnQsIGl0ZW06IElJbnB1dEFkZCwgaW5kZXg6IG51bWJlcikge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuaXRlbXMudXBkYXRlKGN1cnJlbnRJdGVtcyA9PiBjdXJyZW50SXRlbXMuZmlsdGVyKChfLCBpKSA9PiBpICE9PSBpbmRleCkpO1xuICAgIHRoaXMub3V0UmVtb3ZlLmVtaXQoaXRlbSk7XG4gICAgdGhpcy50aW1lT3V0S2V5VXAuc2V0KHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dEtleVVwKCkpO1xuICAgICAgdGhpcy5jaGVja0lzVmFsaWQoZmFsc2UpO1xuICAgIH0sIDI1MCkpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDbGlja0J1dHRvbkxhYmVsKGJ1dHRvbjogSUJ1dHRvbikge1xuICAgIHRoaXMub3V0Q2xpY2tCdXR0b25MYWJlbC5lbWl0KGJ1dHRvbik7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclN3aXRjaExhYmVsKGV2ZW50OiBJU3dpdGNoRXZlbnQpIHtcbiAgICB0aGlzLm91dFN3aXRjaEV2ZW50TGFiZWwuZW1pdChldmVudCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50TGFiZWxMZWZ0TGFiZWwoZXZlbnQ6IE1vdXNlRXZlbnQpIHtcbiAgICB0aGlzLm91dExhYmVsTGVmdENsaWNrLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudExhYmVsUmlnaHRMYWJlbCgpIHtcbiAgICB0aGlzLm91dExhYmVsUmlnaHRDbGljay5lbWl0KHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbnNDb250cm9sKGV2ZW50OiBJSW5wdXRWYWxpZEZ1bmN0aW9uQ29udHJvbEV2ZW50LCBpdGVtOiBJSW5wdXRBZGQpIHtcbiAgICBpdGVtLmZ1bmN0aW9uQ29udHJvbCA9IGV2ZW50O1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJWYWx1ZUNoYW5nZSh2YWx1ZTogc3RyaW5nIHwgbnVtYmVyLCBpdGVtOiBJSW5wdXRBZGQpIHtcbiAgICBpdGVtW3RoaXMuZmllbGROYW1lQmluZCgpXSA9IHZhbHVlO1xuXG4gICAgdGhpcy5vdXRWYWx1ZUNoYW5nZS5lbWl0KHsgdmFsdWUsIGl0ZW0gfSk7XG5cbiAgICB0aGlzLnRpbWVPdXRLZXlVcC5zZXQoc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBjbGVhclRpbWVvdXQodGhpcy50aW1lT3V0S2V5VXAoKSk7XG4gICAgICB0aGlzLmNoZWNrSXNWYWxpZChmYWxzZSwgaXRlbSk7XG4gICAgfSwgMjUwKSk7XG4gIH1cbn0iLCJAaWYgKGZpZWxkTmFtZUJpbmQoKSAmJiBpdGVtcygpOyBhcyBpdGVtcykge1xuICBAaWYgKGxhYmVsQ29uZmlnKCk7IGFzIGxhYmVsQ29uZmlnKSB7XG4gICAgPGxpYnNfdWktY29tcG9uZW50cy1sYWJlbCBbbGFiZWxMZWZ0XT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdFwiXG4gICAgICBbY2xhc3NJbmNsdWRlXT1cImxhYmVsQ29uZmlnLmNsYXNzSW5jbHVkZVwiXG4gICAgICBbbGFiZWxMZWZ0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxMZWZ0Q2xhc3NcIlxuICAgICAgW2ljb25Qb3BvdmVyQ2xhc3NdPVwibGFiZWxDb25maWcuaWNvblBvcG92ZXJDbGFzc1wiXG4gICAgICBbbGFiZWxMZWZ0QmVoaW5kVG9nZ2xlQnV0dG9uXT1cImxhYmVsQ29uZmlnLmxhYmVsTGVmdEJlaGluZFRvZ2dsZUJ1dHRvblwiXG4gICAgICBbcG9wb3Zlcl09XCJsYWJlbENvbmZpZy5wb3BvdmVyXCJcbiAgICAgIFtyZXF1aXJlZF09XCJsYWJlbENvbmZpZy5yZXF1aXJlZFwiXG4gICAgICBbYnV0dG9uc0xlZnRdPVwibGFiZWxDb25maWcuYnV0dG9uc0xlZnRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zTGVmdF09XCJsYWJlbENvbmZpZy5kaXNhYmxlQnV0dG9uc0xlZnRcIlxuICAgICAgW2J1dHRvbnNSaWdodF09XCJsYWJlbENvbmZpZy5idXR0b25zUmlnaHRcIlxuICAgICAgW2Rpc2FibGVCdXR0b25zUmlnaHRdPVwibGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNSaWdodFwiXG4gICAgICBbbGFiZWxSaWdodF09XCJsYWJlbENvbmZpZy5sYWJlbFJpZ2h0XCJcbiAgICAgIFtsYWJlbFJpZ2h0Q2xhc3NdPVwibGFiZWxDb25maWcubGFiZWxSaWdodENsYXNzXCJcbiAgICAgIFtsYWJlbFJpZ2h0UmVxdWlyZWRdPVwibGFiZWxDb25maWcubGFiZWxSaWdodFJlcXVpcmVkXCJcbiAgICAgIFtoYXNUb2dnbGVdPVwibGFiZWxDb25maWcuaGFzVG9nZ2xlXCJcbiAgICAgIFt0b2dnbGVTaXplXT1cImxhYmVsQ29uZmlnLnRvZ2dsZVNpemUgfHwgJ2RlZmF1bHQnXCJcbiAgICAgIFt0b2dnbGVBY3RpdmVdPVwibGFiZWxDb25maWcudG9nZ2xlQWN0aXZlXCJcbiAgICAgIFt0b2dnbGVEaXNhYmxlXT1cImxhYmVsQ29uZmlnLnRvZ2dsZURpc2FibGVcIlxuICAgICAgW2Rlc2NyaXB0aW9uXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uXCJcbiAgICAgIFtkZXNjcmlwdGlvbkNsYXNzXT1cImxhYmVsQ29uZmlnLmRlc2NyaXB0aW9uQ2xhc3NcIlxuICAgICAgW2J1dHRvbnNEZXNjcmlwdGlvbl09XCJsYWJlbENvbmZpZy5idXR0b25zRGVzY3JpcHRpb25cIlxuICAgICAgW2Rpc2FibGVCdXR0b25zRGVzY3JpcHRpb25dPVwibGFiZWxDb25maWcuZGlzYWJsZUJ1dHRvbnNEZXNjcmlwdGlvblwiXG4gICAgICBbYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NdPVwibGFiZWxDb25maWcuYnV0dG9uc0Rlc2NyaXB0aW9uQ29udGFpbmVyQ2xhc3NcIlxuICAgICAgW29ubHlTaG93Q291bnRdPVwibGFiZWxDb25maWcub25seVNob3dDb3VudFwiXG4gICAgICBbekluZGV4UG9wb3Zlcl09XCJsYWJlbENvbmZpZy56SW5kZXhQb3BvdmVyIHx8IDEwXCJcbiAgICAgIFt0aW1lckRlc3Ryb3lQb3BvdmVyXT1cImxhYmVsQ29uZmlnLnRpbWVyRGVzdHJveVBvcG92ZXIgfHwgMFwiXG4gICAgICBbY291bnRdPVwibGFiZWxDb25maWcuY291bnRcIlxuICAgICAgW2xpbWl0TGVuZ3RoXT1cImxhYmVsQ29uZmlnLmxpbWl0TGVuZ3RoXCJcbiAgICAgIChvdXRDbGlja0J1dHRvbik9XCJoYW5kbGVyQ2xpY2tCdXR0b25MYWJlbCgkZXZlbnQpXCJcbiAgICAgIChvdXRTd2l0Y2hFdmVudCk9XCJoYW5kbGVyU3dpdGNoTGFiZWwoJGV2ZW50KVwiXG4gICAgICAob3V0TGFiZWxMZWZ0Q2xpY2spPVwiaGFuZGxlckV2ZW50TGFiZWxMZWZ0TGFiZWwoJGV2ZW50KVwiXG4gICAgICAob3V0TGFiZWxSaWdodENsaWNrKT1cImhhbmRsZXJFdmVudExhYmVsUmlnaHRMYWJlbCgpXCIgLz5cbiAgfVxuICBAZm9yIChpdGVtIG9mIGl0ZW1zOyB0cmFjayBpdGVtLnVuaXFLZXk7IGxldCBmaXJzdCA9ICRmaXJzdDsgbGV0IGluZGV4ID0gJGluZGV4KSB7XG4gICAgPGRpdiBjbGFzcz1cImZsZXhcIlxuICAgICAgW3N0eWxlLm1hcmdpblRvcC5weF09XCIhZmlyc3QgPyBmb3JtSW5wdXRTcGFjaW5nKCkgOiAwXCI+XG5cbiAgICAgIEBpZiAobGVmdFRlbXBsYXRlSXRlbXMoKTsgYXMgbGVmdFRlbXBsYXRlSXRlbXMpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImZsZXgge3sgbGVmdFRlbXBsYXRlSXRlbXMuY2xhc3NJbmNsdWRlIH19XCI+XG4gICAgICAgICAgQGZvciAocmlnaHRJdGVtIG9mIGxlZnRUZW1wbGF0ZUl0ZW1zLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKHJpZ2h0SXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnRlbXBsYXRlTGVmdE91dGxldCB8fCB0ZW1wbGF0ZUxlZnRPdXRsZXQoKSkge1xuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIihpdGVtLnRlbXBsYXRlTGVmdE91dGxldCB8fCB0ZW1wbGF0ZUxlZnRPdXRsZXQoKSB8fCBudWxsKTtjb250ZXh0OntpdGVtOiBpdGVtLCBpbmRleDogaW5kZXh9XCIgLz5cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1pbnB1dHMtdmFsaWQgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgIFtmaWVsZE5hbWVCaW5kXT1cImZpZWxkTmFtZUJpbmQoKVwiXG4gICAgICAgIFtwbGFjZWhvbGRlcl09XCJpdGVtLnBsYWNlaG9sZGVyID8/IHBsYWNlaG9sZGVyKClcIlxuICAgICAgICBbZW1pdEVtcHR5SW5EYXRhVHlwZU51bWJlcl09XCJlbWl0RW1wdHlJbkRhdGFUeXBlTnVtYmVyKClcIlxuICAgICAgICBbdGFnSW5wdXRdPVwidGFnSW5wdXQoKVwiXG4gICAgICAgIFtkYXRhVHlwZV09XCJkYXRhVHlwZSgpXCJcbiAgICAgICAgW2ZpeGVkRmxvYXRdPVwiZml4ZWRGbG9hdCgpXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5KCkgfHwgaXRlbS5yZWFkb25seVwiXG4gICAgICAgIFtkaXNhYmxlXT1cImRpc2FibGUoKSB8fCBpdGVtLmRpc2FibGVcIlxuICAgICAgICBbY2xhc3NDb250YWluZXJJbnB1dF09XCJjbGFzc0NvbnRhaW5lcklucHV0KClcIlxuICAgICAgICBbY2xhc3NJbmNsdWRlSW5wdXRdPVwiY2xhc3NJbmNsdWRlSW5wdXQoKVwiXG4gICAgICAgIFthY2NlcHROZWdhdGl2ZVZhbHVlXT1cImFjY2VwdE5lZ2F0aXZlVmFsdWUoKVwiXG4gICAgICAgIFt2YWx1ZVVwRG93bk51bWJlcl09XCJ2YWx1ZVVwRG93bk51bWJlcigpIHx8IDFcIlxuICAgICAgICBbaWdub3JlV2lkdGhJbnB1dDEwMF09XCJpZ25vcmVXaWR0aElucHV0MTAwKClcIlxuICAgICAgICBbc2hvd0NvdW50XT1cInNob3dDb3VudCgpXCJcbiAgICAgICAgW3Jlc2V0QXV0b0NvbXBsZXRlUGFzc3dvcmRdPVwicmVzZXRBdXRvQ29tcGxldGVQYXNzd29yZCgpXCJcbiAgICAgICAgW25vQm9yZGVyXT1cIm5vQm9yZGVyKClcIlxuICAgICAgICBbYmFja2dyb3VuZE5vbmVdPVwiYmFja2dyb3VuZE5vbmUoKVwiXG4gICAgICAgIFt1c2VDb2xvck1vZGVFeGlzdF09XCJ1c2VDb2xvck1vZGVFeGlzdCgpXCJcbiAgICAgICAgW2tlZXBQbGFjZWhvbGRlck9ubHldPVwia2VlcFBsYWNlaG9sZGVyT25seSgpXCJcbiAgICAgICAgW2NsYXNzQ29udGFpbmVyQm90dG9tSW5wdXRdPVwiY2xhc3NDb250YWluZXJCb3R0b21JbnB1dCgpXCJcbiAgICAgICAgW2F1dG9SZW1vdmVFbW9qaV09XCJhdXRvUmVtb3ZlRW1vamkoKVwiXG4gICAgICAgIFtkZWZhdWx0SGVpZ2h0XT1cImRlZmF1bHRIZWlnaHQoKVwiXG4gICAgICAgIFtpZ25vcmVTaG93RXJyb3JdPVwiaWdub3JlU2hvd0Vycm9yKClcIlxuICAgICAgICBbYm9yZGVyRXJyb3JdPVwiYm9yZGVyRXJyb3IoKVwiXG4gICAgICAgIFt1bml0c0xlZnRdPVwiaXRlbS51bml0c0xlZnQgfHwgdW5pdHNMZWZ0KClcIlxuICAgICAgICBbY29uZmlnVW5pdExlZnRdPVwiaXRlbS5jb25maWdVbml0TGVmdCB8fCBjb25maWdVbml0TGVmdCgpXCJcbiAgICAgICAgW2tleVNlbGVjdGVkVW5pdExlZnRdPVwiaXRlbS5rZXlTZWxlY3RlZFVuaXRMZWZ0IHx8IGtleVNlbGVjdGVkVW5pdExlZnQoKVwiXG4gICAgICAgIFt1bml0c1JpZ2h0XT1cIml0ZW0udW5pdHNSaWdodCB8fCB1bml0c1JpZ2h0KClcIlxuICAgICAgICBbY29uZmlnVW5pdFJpZ2h0XT1cIml0ZW0uY29uZmlnVW5pdFJpZ2h0IHx8IGNvbmZpZ1VuaXRSaWdodCgpXCJcbiAgICAgICAgW2tleVNlbGVjdGVkVW5pdFJpZ2h0XT1cIml0ZW0ua2V5U2VsZWN0ZWRVbml0UmlnaHQgfHwga2V5U2VsZWN0ZWRVbml0UmlnaHQoKVwiXG4gICAgICAgIFttYXhWYWx1ZU51bWJlcl09XCJpdGVtLm1heFZhbHVlTnVtYmVyIHx8IG1heFZhbHVlTnVtYmVyKClcIlxuICAgICAgICBbbWluVmFsdWVOdW1iZXJdPVwiaXRlbS5taW5WYWx1ZU51bWJlciB8fCBtaW5WYWx1ZU51bWJlcigpXCJcbiAgICAgICAgW2lzQmFzZWxpbmVTdHlsZV09XCJpc0Jhc2VsaW5lU3R5bGUoKVwiXG4gICAgICAgIFt2YWx1ZVBhdHRlcm5TaG93RXJyb3JdPVwidmFsdWVQYXR0ZXJuU2hvd0Vycm9yKClcIlxuICAgICAgICBbdmFsaWRQYXR0ZXJuXT1cInZhbGlkUGF0dGVybigpXCJcbiAgICAgICAgW3ZhbGlkUmVxdWlyZWRdPVwidmFsaWRSZXF1aXJlZCgpXCJcbiAgICAgICAgW3ZhbGlkTWluTGVuZ3RoXT1cInZhbGlkTWluTGVuZ3RoKClcIlxuICAgICAgICBbdmFsaWRNaW5WYWx1ZV09XCJ2YWxpZE1pblZhbHVlKClcIlxuICAgICAgICBbdmFsaWRNYXhWYWx1ZV09XCJ2YWxpZE1heFZhbHVlKClcIlxuICAgICAgICBbdmFsaWRNYXhMZW5ndGhdPVwidmFsaWRNYXhMZW5ndGgoKVwiXG4gICAgICAgIFtmdW5jdGlvblZhbGlkXT1cImZ1bmN0aW9uVmFsaWQoKVwiXG4gICAgICAgIFttYXhMZW5ndGhdPVwiaXRlbS5tYXhMZW5ndGggfHwgbWF4TGVuZ3RoKClcIlxuICAgICAgICBbcG9zaXRpb25NZXNzYWdlRXJyb3JTdGFydElucHV0XT1cInBvc2l0aW9uTWVzc2FnZUVycm9yU3RhcnRJbnB1dCgpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCJjbGFzc0luY2x1ZGUoKVwiXG4gICAgICAgIFtvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZV09XCJvbmx5QWNjZXB0TmVnYXRpdmVWYWx1ZSgpXCJcbiAgICAgICAgW2F1dG9BZGRaZXJvTGVzc1RoYW4xMEluVHlwZUludF09XCJhdXRvQWRkWmVyb0xlc3NUaGFuMTBJblR5cGVJbnQoKVwiXG4gICAgICAgIFttYXhMZW5ndGhOdW1iZXJDb3VudF09XCJtYXhMZW5ndGhOdW1iZXJDb3VudCgpXCJcbiAgICAgICAgW2NsYXNzTWVzc2FnZUVycm9ySW5jbHVkZV09XCJjbGFzc01lc3NhZ2VFcnJvckluY2x1ZGUoKVwiXG4gICAgICAgIFtpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudF09XCJpZ25vcmVTdG9wUHJvcGFnYXRpb25FdmVudCgpXCJcbiAgICAgICAgW2lnbm9yZVVuaXRSaWdodENsYXNzUmVhZE9ubHldPVwiaWdub3JlVW5pdFJpZ2h0Q2xhc3NSZWFkT25seSgpXCJcbiAgICAgICAgW3BhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljXT1cInBhZGRpbmdSaWdodEN1c3RvbVNwZWNpZmljKClcIlxuICAgICAgICBbZm9jdXNUaW1lT3V0XT1cImZvY3VzVGltZU91dCgpXCJcbiAgICAgICAgKG91dFZhbHVlQ2hhbmdlKT1cImhhbmRsZXJWYWx1ZUNoYW5nZSgkZXZlbnQsIGl0ZW0pXCJcbiAgICAgICAgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uc0NvbnRyb2woJGV2ZW50LCBpdGVtKVwiIC8+XG5cbiAgICAgIEBpZiAocmlnaHRUZW1wbGF0ZUl0ZW1zKCk7IGFzIHJpZ2h0VGVtcGxhdGVJdGVtcykge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBpdGVtcy1jZW50ZXIge3sgcmlnaHRUZW1wbGF0ZUl0ZW1zLmNsYXNzSW5jbHVkZSB9fVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodC5weF09XCJkZWZhdWx0SGVpZ2h0KCkgfHwgMzJcIj5cbiAgICAgICAgICBAZm9yIChyaWdodEl0ZW0gb2YgcmlnaHRUZW1wbGF0ZUl0ZW1zLml0ZW1zOyB0cmFjayAkaW5kZXgpIHtcbiAgICAgICAgICAgIEBzd2l0Y2ggKHJpZ2h0SXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgncmVtb3ZlJykge1xuICAgICAgICAgICAgICAgIEBpZiAoIWlnbm9yZVJlbW92ZSgpICYmICFpdGVtLmlnbm9yZVJlbW92ZSAmJiBpdGVtcy5sZW5ndGggPiBtaW5JdGVtcygpKSB7XG4gICAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tbGluay10aGlyZCdcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLXJlbW92ZSBtci1bMHB4XSdcIlxuICAgICAgICAgICAgICAgICAgICBjbGFzc0luY2x1ZGU9XCJsaWJzLXVpLWljb24taG92ZXItZGFuZ2VyICFwLVsycHhdIG1sLVsxNnB4XSB7eyByaWdodEl0ZW0uY2xhc3NJbmNsdWRlIH19XCJcbiAgICAgICAgICAgICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJSZW1vdmUoJGV2ZW50LCBpdGVtLCBpbmRleClcIiAvPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIEBjYXNlICgndGVtcGxhdGUnKSB7XG4gICAgICAgICAgICAgICAgQGlmIChpdGVtLnRlbXBsYXRlUmlnaHRPdXRsZXQgfHwgdGVtcGxhdGVSaWdodE91dGxldCgpKSB7XG4gICAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiKGl0ZW0udGVtcGxhdGVSaWdodE91dGxldCB8fCB0ZW1wbGF0ZVJpZ2h0T3V0bGV0KCkgfHwgbnVsbCk7Y29udGV4dDp7aXRlbTogaXRlbSwgaW5kZXg6IGluZGV4fVwiIC8+XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICA8L2Rpdj5cbiAgfVxufVxuXG5AaWYgKCFpZ25vcmVBZGRJdGVtKCkgJiYgKCFtYXhJdGVtcygpIHx8IGl0ZW1zKCkubGVuZ3RoIDwgbWF4SXRlbXMoKSkpIHtcbiAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCJhZGRJdGVtQnV0dG9uQ29uZmlnKCk/LnR5cGUgfHwgJ2J1dHRvbi1saW5rLXByaW1hcnknXCJcbiAgICBbbGFiZWxdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5sYWJlbCB8fCAnaTE4bl9hZGRfbmV3J1wiXG4gICAgW2NsYXNzTGFiZWxdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5jbGFzc0xhYmVsIHx8ICdsaWJzLXVpZm9udC1oZWFkLTVtJ1wiXG4gICAgW2NsYXNzSWNvbkxlZnRdPVwiYWRkSXRlbUJ1dHRvbkNvbmZpZygpPy5jbGFzc0ljb25MZWZ0IHx8ICdsaWJzLXVpLWljb24tYWRkIHRleHQtWzEwcHhdIG1yLVs4cHhdJ1wiXG4gICAgW2NsYXNzSW5jbHVkZV09XCJhZGRJdGVtQnV0dG9uQ29uZmlnKCk/LmNsYXNzSW5jbHVkZSB8fCAnIXBiLTAgIXBsLTAgIXB5LVsycHhdIG10LVs4cHhdJ1wiXG4gICAgW2Rpc2FibGVdPVwiZGlzYWJsZSgpIHx8IGZhbHNlXCJcbiAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFkZEl0ZW0oJGV2ZW50KVwiIC8+XG59XG4iXX0=
|
|
@@ -90,7 +90,7 @@ class LibsUiComponentsInputsAddComponent {
|
|
|
90
90
|
fieldLabel: 'label',
|
|
91
91
|
});
|
|
92
92
|
keySelectedUnitRight = input();
|
|
93
|
-
maxValueNumber = input(
|
|
93
|
+
maxValueNumber = input();
|
|
94
94
|
minValueNumber = input();
|
|
95
95
|
isBaselineStyle = input(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì
|
|
96
96
|
valuePatternShowError = input(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-inputs-add.mjs","sources":["../../../../../../libs-ui/components/inputs/add/src/defines/add.define.ts","../../../../../../libs-ui/components/inputs/add/src/add.component.ts","../../../../../../libs-ui/components/inputs/add/src/add.component.html","../../../../../../libs-ui/components/inputs/add/src/libs-ui-components-inputs-add.ts"],"sourcesContent":["import { ITemplateRightLeftItem } from \"../interfaces/input-add.interface\";\n\nexport const rightTemplateItems = (): ITemplateRightLeftItem => {\n return {\n classInclude: '',\n items: [\n {\n type: 'remove',\n classInclude: ''\n },\n {\n type: 'template',\n classInclude: ''\n }\n ]\n };\n};\n\nexport const leftTemplateItems = (): ITemplateRightLeftItem => {\n return {\n classInclude: '',\n items: [\n {\n type: 'remove',\n classInclude: ''\n },\n {\n type: 'template',\n classInclude: ''\n }\n ]\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model, OnInit, output, signal, TemplateRef } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IInputValidFunctionControlEvent, IInputValidUnitConfig, IValidLength, IValidPattern, IValidRequired, LibsUiComponentsInputsValidComponent, TYPE_FUNCTION_INPUT_VALID } from '@libs-ui/components-inputs-valid';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { ISwitchEvent } from '@libs-ui/components-switch';\nimport { IMessageTranslate, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { cloneDeep, uuid } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { leftTemplateItems, rightTemplateItems } from './defines/add.define';\nimport { IEmitValueChange, IInputAdd, ITemplateRightLeftItem } from './interfaces';\nimport { IInputAddFunctionControlEvent } from './interfaces/function-control-event.interface';\nimport { TYPE_DATA_TYPE_INPUT, TYPE_INPUT, TYPE_TAG_INPUT } from '@libs-ui/components-inputs-input';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-add',\n templateUrl: './add.component.html',\n styleUrls: ['./add.component.scss'],\n standalone: true,\n imports: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsLabelComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsAddComponent implements OnInit {\n // #region PROPERTY\n private timeOutKeyUp = signal<number>(0);\n\n // #region INPUT\n readonly fieldNameBind = input.required<string>();\n readonly items = model.required<Array<IInputAdd>>();\n readonly readonly = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly addItemButtonConfig = input<IButton>();\n readonly placeholder = input<string>();\n readonly labelConfig = input<ILabel>();\n readonly formInputSpacing = input<number>(8); // khoảng cách giữa hai ô input\n readonly configItemAddToItems = input<IInputAdd>();\n readonly rightTemplateItems = input<ITemplateRightLeftItem>(rightTemplateItems());\n readonly leftTemplateItems = input<ITemplateRightLeftItem>(leftTemplateItems());\n readonly templateLeftOutlet = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightOutlet = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly ignoreWidthInput100 = input<boolean>();\n readonly classIncludeInput = input<string>();\n readonly classContainerInput = input<string>();\n readonly showCount = input<boolean>();\n readonly ignoreValidEmptyField = input<boolean>(); // chỉ cần có ít nhất 1 field có giá trị là valid\n\n readonly emitEmptyInDataTypeNumber = input<boolean>();\n readonly tagInput = input<TYPE_TAG_INPUT>();\n readonly dataType = input<TYPE_DATA_TYPE_INPUT>();\n readonly typeInput = input<TYPE_INPUT>();\n readonly fixedFloat = input<number>();\n readonly acceptNegativeValue = input<boolean>();\n readonly valueUpDownNumber = input<number | undefined>();\n readonly resetAutoCompletePassword = input<boolean>();\n readonly noBorder = input<boolean>();\n readonly backgroundNone = input<boolean>();\n readonly useColorModeExist = input<boolean>();\n readonly keepPlaceholderOnly = input<boolean>();\n\n readonly classContainerBottomInput = input<string>();\n readonly autoRemoveEmoji = input<boolean>();\n readonly defaultHeight = input<number>();\n readonly ignoreShowError = input<boolean>();\n readonly borderError = input<boolean>();\n\n readonly unitsLeft = input<Array<any>>();\n readonly configUnitLeft = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitLeft = input<any>();\n\n readonly unitsRight = input<Array<any>>();\n readonly configUnitRight = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitRight = input<any>();\n\n readonly maxValueNumber = input<number>(Number.MAX_SAFE_INTEGER);\n readonly minValueNumber = input<number>();\n readonly isBaselineStyle = input<boolean>(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì\n\n readonly valuePatternShowError = input<boolean>(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi\n readonly validPattern = input<Array<IValidPattern>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMinValue = input<IMessageTranslate>();\n readonly validMaxValue = input<IMessageTranslate>();\n readonly validMaxLength = input<IMessageTranslate>();\n readonly validDuplicate = input<IMessageTranslate>();\n readonly functionValid = input<TYPE_FUNCTION_INPUT_VALID>();\n readonly maxLength = input<number>();\n readonly positionMessageErrorStartInput = input<boolean>(); // khi có template left và right mà muốn mesage error xuất hiện bắt đầu từ ô input thay vì bắt đầu từ template trái\n readonly classInclude = input<string>();\n readonly resize = input<'auto' | 'none'>();\n readonly templateLeftBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly onlyAcceptNegativeValue = input<boolean>();\n readonly autoAddZeroLessThan10InTypeInt = input<boolean>();\n readonly maxLengthNumberCount = input<number>();\n readonly classMessageErrorInclude = input<string>();\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly ignoreUnitRightClassReadOnly = input<boolean>();\n readonly paddingRightCustomSpecific = input<number>(); // fix paddingRight count ko auto tính #52185\n readonly focusTimeOut = input<number>();\n\n readonly ignoreAddItem = input<boolean>(false);\n readonly ignoreRemove = input<boolean>(false);\n readonly maxItems = input<number>(5); // số lượng input tối đa\n readonly minItems = input<number>(1); // không được phép xóa nếu số lượng items <= minItems.length\n\n // #region OUTPUT\n readonly outFunctionsControl = output<IInputAddFunctionControlEvent>();\n readonly outRemove = output<IInputAdd>();\n readonly outAddItem = output<IInputAdd>();\n readonly outClickButtonLabel = output<IButton>();\n readonly outSwitchEventLabel = output<ISwitchEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outLabelLeftClick = output<MouseEvent>();\n readonly outValueChange = output<IEmitValueChange>();\n\n ngOnInit() {\n if (!this.items().length) {\n this.items.set([{ [this.fieldNameBind()]: '' }]);\n }\n\n this.items.update(items => items.map(item => {\n return { ...item, uniqKey: uuid() }\n }));\n\n this.outFunctionsControl.emit({\n checkIsValid: this.checkIsValid.bind(this),\n setMessageError: this.setMessageError.bind(this)\n });\n }\n\n\n /* FUNCTIONS */\n private async setMessageError(message: string) {\n for (const item of this.items()) {\n await item.functionControl?.setMessageError(message)\n }\n }\n\n private async checkIsValid(checkValidRequired = true, currentItem?: IInputAdd): Promise<boolean> {\n let valid = true;\n\n if (this.disable() || this.readonly()) {\n return true;\n }\n\n for (const input of this.items()) {\n if (input.readonly || input.disable) {\n continue;\n }\n\n if (checkValidRequired) {\n if (!(await this.checkValidRequired(input))) {\n valid = false;\n }\n continue;\n }\n\n if (currentItem?.uniqKey === input.uniqKey) {\n valid = await input.functionControl?.checkIsValid() ?? false;\n }\n\n if (!this.validDuplicate()) {\n continue;\n }\n\n if (!input[this.fieldNameBind()]) {\n continue;\n }\n\n if (typeof input[this.fieldNameBind()] === 'string' && !input[this.fieldNameBind()].trim()) {\n continue;\n }\n\n const fieldsDuplicate = this.items().filter(element => element[this.fieldNameBind()] === input[this.fieldNameBind()]);\n if (!fieldsDuplicate || !fieldsDuplicate.length) {\n input.functionControl?.setMessageError('');\n\n continue;\n }\n\n if (fieldsDuplicate.length < 2) {\n input.functionControl?.setMessageError('');\n\n continue;\n }\n valid = false;\n input.functionControl?.setMessageError(this.validDuplicate()?.message || 'i18n_valid_duplicate_msg');\n }\n\n return valid;\n }\n\n private async checkValidRequired(input: IInputAdd) {\n let valid = true;\n const validIfAtLeastOneValue = this.ignoreValidEmptyField() && this.items().find(item => !!item[this.fieldNameBind()]?.trim());\n\n if (validIfAtLeastOneValue) {\n input.functionControl?.setMessageError('');\n return true;\n }\n\n if (!(await input.functionControl?.checkIsValid())) {\n valid = false;\n }\n\n return valid;\n }\n\n protected handlerAddItem(event: Event) {\n event.stopPropagation();\n\n if (!this.configItemAddToItems()) {\n const newItem: IInputAdd = { uniqKey: uuid(), [this.fieldNameBind()]: '' };\n this.items.update(items => [...items, newItem]);\n this.outAddItem.emit(newItem);\n\n return;\n }\n const newItem: IInputAdd = { ...cloneDeep(this.configItemAddToItems), uniqKey: uuid(), [this.fieldNameBind()]: '' };\n this.items.update(items => [...items, newItem]);\n this.outAddItem.emit(newItem);\n }\n\n protected handlerRemove(event: Event, item: IInputAdd, index: number) {\n event.stopPropagation();\n this.items.update(currentItems => currentItems.filter((_, i) => i !== index));\n this.outRemove.emit(item);\n this.timeOutKeyUp.set(setTimeout(() => {\n clearTimeout(this.timeOutKeyUp());\n this.checkIsValid(false);\n }, 250));\n }\n\n protected handlerClickButtonLabel(button: IButton) {\n this.outClickButtonLabel.emit(button);\n }\n\n protected handlerSwitchLabel(event: ISwitchEvent) {\n this.outSwitchEventLabel.emit(event);\n }\n\n protected handlerEventLabelLeftLabel(event: MouseEvent) {\n this.outLabelLeftClick.emit(event);\n }\n\n protected handlerEventLabelRightLabel() {\n this.outLabelRightClick.emit(true);\n }\n\n protected handlerFunctionsControl(event: IInputValidFunctionControlEvent, item: IInputAdd) {\n item.functionControl = event;\n }\n\n protected handlerValueChange(value: string | number, item: IInputAdd) {\n item[this.fieldNameBind()] = value;\n\n this.outValueChange.emit({ value, item });\n\n this.timeOutKeyUp.set(setTimeout(() => {\n clearTimeout(this.timeOutKeyUp());\n this.checkIsValid(false, item);\n }, 250));\n }\n}","@if (fieldNameBind() && items(); as items) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [labelLeft]=\"labelConfig.labelLeft\"\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [labelLeftBehindToggleButton]=\"labelConfig.labelLeftBehindToggleButton\"\n [popover]=\"labelConfig.popover\"\n [required]=\"labelConfig.required\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [labelRightRequired]=\"labelConfig.labelRightRequired\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleSize]=\"labelConfig.toggleSize || 'default'\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable\"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [zIndexPopover]=\"labelConfig.zIndexPopover || 10\"\n [timerDestroyPopover]=\"labelConfig.timerDestroyPopover || 0\"\n [count]=\"labelConfig.count\"\n [limitLength]=\"labelConfig.limitLength\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelLeftClick)=\"handlerEventLabelLeftLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n @for (item of items; track item.uniqKey; let first = $first; let index = $index) {\n <div class=\"flex\"\n [style.marginTop.px]=\"!first ? formInputSpacing() : 0\">\n\n @if (leftTemplateItems(); as leftTemplateItems) {\n <div class=\"flex {{ leftTemplateItems.classInclude }}\">\n @for (rightItem of leftTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('template') {\n @if (item.templateLeftOutlet || templateLeftOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateLeftOutlet || templateLeftOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n <libs_ui-components-inputs-valid [item]=\"item\"\n [fieldNameBind]=\"fieldNameBind()\"\n [placeholder]=\"item.placeholder ?? placeholder()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [tagInput]=\"tagInput()\"\n [dataType]=\"dataType()\"\n [fixedFloat]=\"fixedFloat()\"\n [readonly]=\"readonly() || item.readonly\"\n [disable]=\"disable() || item.disable\"\n [classContainerInput]=\"classContainerInput()\"\n [classIncludeInput]=\"classIncludeInput()\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber() || 1\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [showCount]=\"showCount()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [ignoreShowError]=\"ignoreShowError()\"\n [borderError]=\"borderError()\"\n [unitsLeft]=\"item.unitsLeft || unitsLeft()\"\n [configUnitLeft]=\"item.configUnitLeft || configUnitLeft()\"\n [keySelectedUnitLeft]=\"item.keySelectedUnitLeft || keySelectedUnitLeft()\"\n [unitsRight]=\"item.unitsRight || unitsRight()\"\n [configUnitRight]=\"item.configUnitRight || configUnitRight()\"\n [keySelectedUnitRight]=\"item.keySelectedUnitRight || keySelectedUnitRight()\"\n [maxValueNumber]=\"item.maxValueNumber || maxValueNumber()\"\n [minValueNumber]=\"item.minValueNumber || minValueNumber()\"\n [isBaselineStyle]=\"isBaselineStyle()\"\n [valuePatternShowError]=\"valuePatternShowError()\"\n [validPattern]=\"validPattern()\"\n [validRequired]=\"validRequired()\"\n [validMinLength]=\"validMinLength()\"\n [validMinValue]=\"validMinValue()\"\n [validMaxValue]=\"validMaxValue()\"\n [validMaxLength]=\"validMaxLength()\"\n [functionValid]=\"functionValid()\"\n [maxLength]=\"item.maxLength || maxLength()\"\n [positionMessageErrorStartInput]=\"positionMessageErrorStartInput()\"\n [classInclude]=\"classInclude()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [classMessageErrorInclude]=\"classMessageErrorInclude()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [ignoreUnitRightClassReadOnly]=\"ignoreUnitRightClassReadOnly()\"\n [paddingRightCustomSpecific]=\"paddingRightCustomSpecific()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (outValueChange)=\"handlerValueChange($event, item)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event, item)\" />\n\n @if (rightTemplateItems(); as rightTemplateItems) {\n <div class=\"flex items-center {{ rightTemplateItems.classInclude }}\"\n [style.height.px]=\"defaultHeight() || 32\">\n @for (rightItem of rightTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('remove') {\n @if (!ignoreRemove() && !item.ignoreRemove && items.length > minItems()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-remove mr-[0px]'\"\n classInclude=\"libs-ui-icon-hover-danger !p-[2px] ml-[16px] {{ rightItem.classInclude }}\"\n (outClick)=\"handlerRemove($event, item, index)\" />\n }\n }\n\n @case ('template') {\n @if (item.templateRightOutlet || templateRightOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateRightOutlet || templateRightOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n </div>\n }\n}\n\n@if (!ignoreAddItem() && (!maxItems() || items().length < maxItems())) {\n <libs_ui-components-buttons-button [type]=\"addItemButtonConfig()?.type || 'button-link-primary'\"\n [label]=\"addItemButtonConfig()?.label || 'i18n_add_new'\"\n [classLabel]=\"addItemButtonConfig()?.classLabel || 'libs-uifont-head-5m'\"\n [classIconLeft]=\"addItemButtonConfig()?.classIconLeft || 'libs-ui-icon-add text-[10px] mr-[8px]'\"\n [classInclude]=\"addItemButtonConfig()?.classInclude || '!pb-0 !pl-0 !py-[2px] mt-[8px]'\"\n [disable]=\"disable() || false\"\n (outClick)=\"handlerAddItem($event)\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"libs-ui-components-inputs-add.mjs","sources":["../../../../../../libs-ui/components/inputs/add/src/defines/add.define.ts","../../../../../../libs-ui/components/inputs/add/src/add.component.ts","../../../../../../libs-ui/components/inputs/add/src/add.component.html","../../../../../../libs-ui/components/inputs/add/src/libs-ui-components-inputs-add.ts"],"sourcesContent":["import { ITemplateRightLeftItem } from \"../interfaces/input-add.interface\";\n\nexport const rightTemplateItems = (): ITemplateRightLeftItem => {\n return {\n classInclude: '',\n items: [\n {\n type: 'remove',\n classInclude: ''\n },\n {\n type: 'template',\n classInclude: ''\n }\n ]\n };\n};\n\nexport const leftTemplateItems = (): ITemplateRightLeftItem => {\n return {\n classInclude: '',\n items: [\n {\n type: 'remove',\n classInclude: ''\n },\n {\n type: 'template',\n classInclude: ''\n }\n ]\n };\n};\n","/* eslint-disable @typescript-eslint/no-explicit-any */\n\n\nimport { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, input, model, OnInit, output, signal, TemplateRef } from '@angular/core';\nimport { IButton, LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IInputValidFunctionControlEvent, IInputValidUnitConfig, IValidLength, IValidPattern, IValidRequired, LibsUiComponentsInputsValidComponent, TYPE_FUNCTION_INPUT_VALID } from '@libs-ui/components-inputs-valid';\nimport { ILabel, LibsUiComponentsLabelComponent } from '@libs-ui/components-label';\nimport { ISwitchEvent } from '@libs-ui/components-switch';\nimport { IMessageTranslate, TYPE_TEMPLATE_REF } from '@libs-ui/interfaces-types';\nimport { cloneDeep, uuid } from '@libs-ui/utils';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { leftTemplateItems, rightTemplateItems } from './defines/add.define';\nimport { IEmitValueChange, IInputAdd, ITemplateRightLeftItem } from './interfaces';\nimport { IInputAddFunctionControlEvent } from './interfaces/function-control-event.interface';\nimport { TYPE_DATA_TYPE_INPUT, TYPE_INPUT, TYPE_TAG_INPUT } from '@libs-ui/components-inputs-input';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-add',\n templateUrl: './add.component.html',\n styleUrls: ['./add.component.scss'],\n standalone: true,\n imports: [\n TranslateModule, NgTemplateOutlet,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsLabelComponent\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsAddComponent implements OnInit {\n // #region PROPERTY\n private timeOutKeyUp = signal<number>(0);\n\n // #region INPUT\n readonly fieldNameBind = input.required<string>();\n readonly items = model.required<Array<IInputAdd>>();\n readonly readonly = input<boolean>(false);\n readonly disable = input<boolean>(false);\n readonly addItemButtonConfig = input<IButton>();\n readonly placeholder = input<string>();\n readonly labelConfig = input<ILabel>();\n readonly formInputSpacing = input<number>(8); // khoảng cách giữa hai ô input\n readonly configItemAddToItems = input<IInputAdd>();\n readonly rightTemplateItems = input<ITemplateRightLeftItem>(rightTemplateItems());\n readonly leftTemplateItems = input<ITemplateRightLeftItem>(leftTemplateItems());\n readonly templateLeftOutlet = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightOutlet = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly ignoreWidthInput100 = input<boolean>();\n readonly classIncludeInput = input<string>();\n readonly classContainerInput = input<string>();\n readonly showCount = input<boolean>();\n readonly ignoreValidEmptyField = input<boolean>(); // chỉ cần có ít nhất 1 field có giá trị là valid\n\n readonly emitEmptyInDataTypeNumber = input<boolean>();\n readonly tagInput = input<TYPE_TAG_INPUT>();\n readonly dataType = input<TYPE_DATA_TYPE_INPUT>();\n readonly typeInput = input<TYPE_INPUT>();\n readonly fixedFloat = input<number>();\n readonly acceptNegativeValue = input<boolean>();\n readonly valueUpDownNumber = input<number | undefined>();\n readonly resetAutoCompletePassword = input<boolean>();\n readonly noBorder = input<boolean>();\n readonly backgroundNone = input<boolean>();\n readonly useColorModeExist = input<boolean>();\n readonly keepPlaceholderOnly = input<boolean>();\n\n readonly classContainerBottomInput = input<string>();\n readonly autoRemoveEmoji = input<boolean>();\n readonly defaultHeight = input<number>();\n readonly ignoreShowError = input<boolean>();\n readonly borderError = input<boolean>();\n\n readonly unitsLeft = input<Array<any>>();\n readonly configUnitLeft = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitLeft = input<any>();\n\n readonly unitsRight = input<Array<any>>();\n readonly configUnitRight = input<IInputValidUnitConfig>({\n fieldKey: 'id',\n fieldLabel: 'label',\n });\n readonly keySelectedUnitRight = input<any>();\n\n readonly maxValueNumber = input<number>();\n readonly minValueNumber = input<number>();\n readonly isBaselineStyle = input<boolean>(); // align-items-baseline dùng khi căn input thẳng hàng với tất cả các phần khác dù có validate hay bất cứ 1 cái gì\n\n readonly valuePatternShowError = input<boolean>(); // mặc định khi test pattern trả tề giá trị bằng false sẽ báo lỗi\n readonly validPattern = input<Array<IValidPattern>>();\n readonly validRequired = input<IValidRequired>();\n readonly validMinLength = input<IValidLength>();\n readonly validMinValue = input<IMessageTranslate>();\n readonly validMaxValue = input<IMessageTranslate>();\n readonly validMaxLength = input<IMessageTranslate>();\n readonly validDuplicate = input<IMessageTranslate>();\n readonly functionValid = input<TYPE_FUNCTION_INPUT_VALID>();\n readonly maxLength = input<number>();\n readonly positionMessageErrorStartInput = input<boolean>(); // khi có template left và right mà muốn mesage error xuất hiện bắt đầu từ ô input thay vì bắt đầu từ template trái\n readonly classInclude = input<string>();\n readonly resize = input<'auto' | 'none'>();\n readonly templateLeftBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly templateRightBottomInput = input<TemplateRef<TYPE_TEMPLATE_REF>>();\n readonly onlyAcceptNegativeValue = input<boolean>();\n readonly autoAddZeroLessThan10InTypeInt = input<boolean>();\n readonly maxLengthNumberCount = input<number>();\n readonly classMessageErrorInclude = input<string>();\n readonly ignoreStopPropagationEvent = input<boolean>();\n readonly ignoreUnitRightClassReadOnly = input<boolean>();\n readonly paddingRightCustomSpecific = input<number>(); // fix paddingRight count ko auto tính #52185\n readonly focusTimeOut = input<number>();\n\n readonly ignoreAddItem = input<boolean>(false);\n readonly ignoreRemove = input<boolean>(false);\n readonly maxItems = input<number>(5); // số lượng input tối đa\n readonly minItems = input<number>(1); // không được phép xóa nếu số lượng items <= minItems.length\n\n // #region OUTPUT\n readonly outFunctionsControl = output<IInputAddFunctionControlEvent>();\n readonly outRemove = output<IInputAdd>();\n readonly outAddItem = output<IInputAdd>();\n readonly outClickButtonLabel = output<IButton>();\n readonly outSwitchEventLabel = output<ISwitchEvent>();\n readonly outLabelRightClick = output<boolean>();\n readonly outLabelLeftClick = output<MouseEvent>();\n readonly outValueChange = output<IEmitValueChange>();\n\n ngOnInit() {\n if (!this.items().length) {\n this.items.set([{ [this.fieldNameBind()]: '' }]);\n }\n\n this.items.update(items => items.map(item => {\n return { ...item, uniqKey: uuid() }\n }));\n\n this.outFunctionsControl.emit({\n checkIsValid: this.checkIsValid.bind(this),\n setMessageError: this.setMessageError.bind(this)\n });\n }\n\n\n /* FUNCTIONS */\n private async setMessageError(message: string) {\n for (const item of this.items()) {\n await item.functionControl?.setMessageError(message)\n }\n }\n\n private async checkIsValid(checkValidRequired = true, currentItem?: IInputAdd): Promise<boolean> {\n let valid = true;\n\n if (this.disable() || this.readonly()) {\n return true;\n }\n\n for (const input of this.items()) {\n if (input.readonly || input.disable) {\n continue;\n }\n\n if (checkValidRequired) {\n if (!(await this.checkValidRequired(input))) {\n valid = false;\n }\n continue;\n }\n\n if (currentItem?.uniqKey === input.uniqKey) {\n valid = await input.functionControl?.checkIsValid() ?? false;\n }\n\n if (!this.validDuplicate()) {\n continue;\n }\n\n if (!input[this.fieldNameBind()]) {\n continue;\n }\n\n if (typeof input[this.fieldNameBind()] === 'string' && !input[this.fieldNameBind()].trim()) {\n continue;\n }\n\n const fieldsDuplicate = this.items().filter(element => element[this.fieldNameBind()] === input[this.fieldNameBind()]);\n if (!fieldsDuplicate || !fieldsDuplicate.length) {\n input.functionControl?.setMessageError('');\n\n continue;\n }\n\n if (fieldsDuplicate.length < 2) {\n input.functionControl?.setMessageError('');\n\n continue;\n }\n valid = false;\n input.functionControl?.setMessageError(this.validDuplicate()?.message || 'i18n_valid_duplicate_msg');\n }\n\n return valid;\n }\n\n private async checkValidRequired(input: IInputAdd) {\n let valid = true;\n const validIfAtLeastOneValue = this.ignoreValidEmptyField() && this.items().find(item => !!item[this.fieldNameBind()]?.trim());\n\n if (validIfAtLeastOneValue) {\n input.functionControl?.setMessageError('');\n return true;\n }\n\n if (!(await input.functionControl?.checkIsValid())) {\n valid = false;\n }\n\n return valid;\n }\n\n protected handlerAddItem(event: Event) {\n event.stopPropagation();\n\n if (!this.configItemAddToItems()) {\n const newItem: IInputAdd = { uniqKey: uuid(), [this.fieldNameBind()]: '' };\n this.items.update(items => [...items, newItem]);\n this.outAddItem.emit(newItem);\n\n return;\n }\n const newItem: IInputAdd = { ...cloneDeep(this.configItemAddToItems), uniqKey: uuid(), [this.fieldNameBind()]: '' };\n this.items.update(items => [...items, newItem]);\n this.outAddItem.emit(newItem);\n }\n\n protected handlerRemove(event: Event, item: IInputAdd, index: number) {\n event.stopPropagation();\n this.items.update(currentItems => currentItems.filter((_, i) => i !== index));\n this.outRemove.emit(item);\n this.timeOutKeyUp.set(setTimeout(() => {\n clearTimeout(this.timeOutKeyUp());\n this.checkIsValid(false);\n }, 250));\n }\n\n protected handlerClickButtonLabel(button: IButton) {\n this.outClickButtonLabel.emit(button);\n }\n\n protected handlerSwitchLabel(event: ISwitchEvent) {\n this.outSwitchEventLabel.emit(event);\n }\n\n protected handlerEventLabelLeftLabel(event: MouseEvent) {\n this.outLabelLeftClick.emit(event);\n }\n\n protected handlerEventLabelRightLabel() {\n this.outLabelRightClick.emit(true);\n }\n\n protected handlerFunctionsControl(event: IInputValidFunctionControlEvent, item: IInputAdd) {\n item.functionControl = event;\n }\n\n protected handlerValueChange(value: string | number, item: IInputAdd) {\n item[this.fieldNameBind()] = value;\n\n this.outValueChange.emit({ value, item });\n\n this.timeOutKeyUp.set(setTimeout(() => {\n clearTimeout(this.timeOutKeyUp());\n this.checkIsValid(false, item);\n }, 250));\n }\n}","@if (fieldNameBind() && items(); as items) {\n @if (labelConfig(); as labelConfig) {\n <libs_ui-components-label [labelLeft]=\"labelConfig.labelLeft\"\n [classInclude]=\"labelConfig.classInclude\"\n [labelLeftClass]=\"labelConfig.labelLeftClass\"\n [iconPopoverClass]=\"labelConfig.iconPopoverClass\"\n [labelLeftBehindToggleButton]=\"labelConfig.labelLeftBehindToggleButton\"\n [popover]=\"labelConfig.popover\"\n [required]=\"labelConfig.required\"\n [buttonsLeft]=\"labelConfig.buttonsLeft\"\n [disableButtonsLeft]=\"labelConfig.disableButtonsLeft\"\n [buttonsRight]=\"labelConfig.buttonsRight\"\n [disableButtonsRight]=\"labelConfig.disableButtonsRight\"\n [labelRight]=\"labelConfig.labelRight\"\n [labelRightClass]=\"labelConfig.labelRightClass\"\n [labelRightRequired]=\"labelConfig.labelRightRequired\"\n [hasToggle]=\"labelConfig.hasToggle\"\n [toggleSize]=\"labelConfig.toggleSize || 'default'\"\n [toggleActive]=\"labelConfig.toggleActive\"\n [toggleDisable]=\"labelConfig.toggleDisable\"\n [description]=\"labelConfig.description\"\n [descriptionClass]=\"labelConfig.descriptionClass\"\n [buttonsDescription]=\"labelConfig.buttonsDescription\"\n [disableButtonsDescription]=\"labelConfig.disableButtonsDescription\"\n [buttonsDescriptionContainerClass]=\"labelConfig.buttonsDescriptionContainerClass\"\n [onlyShowCount]=\"labelConfig.onlyShowCount\"\n [zIndexPopover]=\"labelConfig.zIndexPopover || 10\"\n [timerDestroyPopover]=\"labelConfig.timerDestroyPopover || 0\"\n [count]=\"labelConfig.count\"\n [limitLength]=\"labelConfig.limitLength\"\n (outClickButton)=\"handlerClickButtonLabel($event)\"\n (outSwitchEvent)=\"handlerSwitchLabel($event)\"\n (outLabelLeftClick)=\"handlerEventLabelLeftLabel($event)\"\n (outLabelRightClick)=\"handlerEventLabelRightLabel()\" />\n }\n @for (item of items; track item.uniqKey; let first = $first; let index = $index) {\n <div class=\"flex\"\n [style.marginTop.px]=\"!first ? formInputSpacing() : 0\">\n\n @if (leftTemplateItems(); as leftTemplateItems) {\n <div class=\"flex {{ leftTemplateItems.classInclude }}\">\n @for (rightItem of leftTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('template') {\n @if (item.templateLeftOutlet || templateLeftOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateLeftOutlet || templateLeftOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n <libs_ui-components-inputs-valid [item]=\"item\"\n [fieldNameBind]=\"fieldNameBind()\"\n [placeholder]=\"item.placeholder ?? placeholder()\"\n [emitEmptyInDataTypeNumber]=\"emitEmptyInDataTypeNumber()\"\n [tagInput]=\"tagInput()\"\n [dataType]=\"dataType()\"\n [fixedFloat]=\"fixedFloat()\"\n [readonly]=\"readonly() || item.readonly\"\n [disable]=\"disable() || item.disable\"\n [classContainerInput]=\"classContainerInput()\"\n [classIncludeInput]=\"classIncludeInput()\"\n [acceptNegativeValue]=\"acceptNegativeValue()\"\n [valueUpDownNumber]=\"valueUpDownNumber() || 1\"\n [ignoreWidthInput100]=\"ignoreWidthInput100()\"\n [showCount]=\"showCount()\"\n [resetAutoCompletePassword]=\"resetAutoCompletePassword()\"\n [noBorder]=\"noBorder()\"\n [backgroundNone]=\"backgroundNone()\"\n [useColorModeExist]=\"useColorModeExist()\"\n [keepPlaceholderOnly]=\"keepPlaceholderOnly()\"\n [classContainerBottomInput]=\"classContainerBottomInput()\"\n [autoRemoveEmoji]=\"autoRemoveEmoji()\"\n [defaultHeight]=\"defaultHeight()\"\n [ignoreShowError]=\"ignoreShowError()\"\n [borderError]=\"borderError()\"\n [unitsLeft]=\"item.unitsLeft || unitsLeft()\"\n [configUnitLeft]=\"item.configUnitLeft || configUnitLeft()\"\n [keySelectedUnitLeft]=\"item.keySelectedUnitLeft || keySelectedUnitLeft()\"\n [unitsRight]=\"item.unitsRight || unitsRight()\"\n [configUnitRight]=\"item.configUnitRight || configUnitRight()\"\n [keySelectedUnitRight]=\"item.keySelectedUnitRight || keySelectedUnitRight()\"\n [maxValueNumber]=\"item.maxValueNumber || maxValueNumber()\"\n [minValueNumber]=\"item.minValueNumber || minValueNumber()\"\n [isBaselineStyle]=\"isBaselineStyle()\"\n [valuePatternShowError]=\"valuePatternShowError()\"\n [validPattern]=\"validPattern()\"\n [validRequired]=\"validRequired()\"\n [validMinLength]=\"validMinLength()\"\n [validMinValue]=\"validMinValue()\"\n [validMaxValue]=\"validMaxValue()\"\n [validMaxLength]=\"validMaxLength()\"\n [functionValid]=\"functionValid()\"\n [maxLength]=\"item.maxLength || maxLength()\"\n [positionMessageErrorStartInput]=\"positionMessageErrorStartInput()\"\n [classInclude]=\"classInclude()\"\n [onlyAcceptNegativeValue]=\"onlyAcceptNegativeValue()\"\n [autoAddZeroLessThan10InTypeInt]=\"autoAddZeroLessThan10InTypeInt()\"\n [maxLengthNumberCount]=\"maxLengthNumberCount()\"\n [classMessageErrorInclude]=\"classMessageErrorInclude()\"\n [ignoreStopPropagationEvent]=\"ignoreStopPropagationEvent()\"\n [ignoreUnitRightClassReadOnly]=\"ignoreUnitRightClassReadOnly()\"\n [paddingRightCustomSpecific]=\"paddingRightCustomSpecific()\"\n [focusTimeOut]=\"focusTimeOut()\"\n (outValueChange)=\"handlerValueChange($event, item)\"\n (outFunctionsControl)=\"handlerFunctionsControl($event, item)\" />\n\n @if (rightTemplateItems(); as rightTemplateItems) {\n <div class=\"flex items-center {{ rightTemplateItems.classInclude }}\"\n [style.height.px]=\"defaultHeight() || 32\">\n @for (rightItem of rightTemplateItems.items; track $index) {\n @switch (rightItem.type) {\n @case ('remove') {\n @if (!ignoreRemove() && !item.ignoreRemove && items.length > minItems()) {\n <libs_ui-components-buttons-button [type]=\"'button-link-third'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-remove mr-[0px]'\"\n classInclude=\"libs-ui-icon-hover-danger !p-[2px] ml-[16px] {{ rightItem.classInclude }}\"\n (outClick)=\"handlerRemove($event, item, index)\" />\n }\n }\n\n @case ('template') {\n @if (item.templateRightOutlet || templateRightOutlet()) {\n <ng-container *ngTemplateOutlet=\"(item.templateRightOutlet || templateRightOutlet() || null);context:{item: item, index: index}\" />\n }\n }\n }\n }\n </div>\n }\n </div>\n }\n}\n\n@if (!ignoreAddItem() && (!maxItems() || items().length < maxItems())) {\n <libs_ui-components-buttons-button [type]=\"addItemButtonConfig()?.type || 'button-link-primary'\"\n [label]=\"addItemButtonConfig()?.label || 'i18n_add_new'\"\n [classLabel]=\"addItemButtonConfig()?.classLabel || 'libs-uifont-head-5m'\"\n [classIconLeft]=\"addItemButtonConfig()?.classIconLeft || 'libs-ui-icon-add text-[10px] mr-[8px]'\"\n [classInclude]=\"addItemButtonConfig()?.classInclude || '!pb-0 !pl-0 !py-[2px] mt-[8px]'\"\n [disable]=\"disable() || false\"\n (outClick)=\"handlerAddItem($event)\" />\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-inputs-add",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.249",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^18.2.0",
|
|
6
6
|
"@angular/core": "^18.2.0",
|
|
7
|
-
"@libs-ui/components-buttons-button": "^0.2.
|
|
8
|
-
"@libs-ui/components-inputs-valid": "^0.2.
|
|
9
|
-
"@libs-ui/components-label": "^0.2.
|
|
10
|
-
"@libs-ui/components-switch": "^0.2.
|
|
11
|
-
"@libs-ui/interfaces-types": "^0.2.
|
|
12
|
-
"@libs-ui/utils": "^0.2.
|
|
7
|
+
"@libs-ui/components-buttons-button": "^0.2.249",
|
|
8
|
+
"@libs-ui/components-inputs-valid": "^0.2.249",
|
|
9
|
+
"@libs-ui/components-label": "^0.2.249",
|
|
10
|
+
"@libs-ui/components-switch": "^0.2.249",
|
|
11
|
+
"@libs-ui/interfaces-types": "^0.2.249",
|
|
12
|
+
"@libs-ui/utils": "^0.2.249",
|
|
13
13
|
"@ngx-translate/core": "^15.0.0",
|
|
14
|
-
"@libs-ui/components-inputs-input": "^0.2.
|
|
14
|
+
"@libs-ui/components-inputs-input": "^0.2.249"
|
|
15
15
|
},
|
|
16
16
|
"sideEffects": false,
|
|
17
17
|
"module": "fesm2022/libs-ui-components-inputs-add.mjs",
|