@libs-ui/components-inputs-calculator 0.2.222 → 0.2.224
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.
|
@@ -182,7 +182,7 @@ export class LibsUiComponentsInputsCalculatorComponent {
|
|
|
182
182
|
return this.listExpressions().length ? true : false;
|
|
183
183
|
}
|
|
184
184
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsCalculatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
185
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsCalculatorComponent, isStandalone: true, selector: "libs_ui-components-inputs-calculator", inputs: { expressions: { classPropertyName: "expressions", publicName: "expressions", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelButtonSave: { classPropertyName: "labelButtonSave", publicName: "labelButtonSave", isSignal: true, isRequired: false, transformFunction: null }, configField: { classPropertyName: "configField", publicName: "configField", isSignal: true, isRequired: false, transformFunction: null }, ignoreButtonSave: { classPropertyName: "ignoreButtonSave", publicName: "ignoreButtonSave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerButton: { classPropertyName: "classContainerButton", publicName: "classContainerButton", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outChangeExpressions: "outChangeExpressions", outFunctionControl: "outFunctionControl" }, viewQueries: [{ propertyName: "inputRef", predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef type=\"text\" class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\" (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i\n class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i\n class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i\n class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i\n class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover\n [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\" [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\" [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\" [label]=\"'C'\" (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\" (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\" (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\" (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\" (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\" (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\" (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\" (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\" (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\" (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\" (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\" (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\" (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\" (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\" [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\" (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\" (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\" [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\" (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\" [config]=\"configField()?.listConfig\" [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\" (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsListComponent, selector: "libs_ui-components-list", inputs: ["hiddenInputSearch", "dropdownTabKeyActive", "keySearch", "paddingLeftItem", "config", "autoSelectedFirstItemCallOutsideBefore", "isSearchOnline", "disable", "disableLabel", "labelConfig", "searchConfig", "searchPadding", "dividerClassInclude", "hasDivider", "buttonsOther", "hasButtonUnSelectOption", "clickExactly", "backgroundListCustom", "maxItemShow", "keySelected", "multiKeySelected", "keysDisableItem", "keysHiddenItem", "focusInputSearch", "skipFocusInputWhenKeySearchStoreUndefined", "functionGetItemsAutoAddList", "validRequired", "showValidateBottom", "zIndex", "loadingIconSize", "templateRefSearchNoData", "resetKeyWhenSelectAllKeyDropdown", "ignoreClassDisableDefaultWhenUseKeysDisableItem"], outputs: ["outSelectKey", "outSelectMultiKey", "outUnSelectMultiKey", "outClickButtonOther", "outFieldKey", "outChangeView", "outKeySearch", "outLoading", "outFunctionsControl", "outChangStageFlagMousePopover", "outLoadItemsComplete"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetFieldSelectedPipe, name: "LibsUiComponentsInputsCalculatorGetFieldSelectedPipe" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetWidthInputPipe, name: "LibsUiComponentsInputsCalculatorGetWidthInputPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
185
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsCalculatorComponent, isStandalone: true, selector: "libs_ui-components-inputs-calculator", inputs: { expressions: { classPropertyName: "expressions", publicName: "expressions", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelButtonSave: { classPropertyName: "labelButtonSave", publicName: "labelButtonSave", isSignal: true, isRequired: false, transformFunction: null }, configField: { classPropertyName: "configField", publicName: "configField", isSignal: true, isRequired: false, transformFunction: null }, ignoreButtonSave: { classPropertyName: "ignoreButtonSave", publicName: "ignoreButtonSave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerButton: { classPropertyName: "classContainerButton", publicName: "classContainerButton", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outChangeExpressions: "outChangeExpressions", outFunctionControl: "outFunctionControl" }, viewQueries: [{ propertyName: "inputRef", predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'C'\"\n (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\"\n (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\"\n (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\"\n (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\"\n (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\"\n (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\"\n (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\"\n (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\"\n (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\"\n (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\"\n (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\"\n (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\"\n (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\"\n [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\"\n (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\"\n [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\"\n (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef\n let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\"\n [config]=\"configField()?.listConfig\"\n [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\"\n (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsListComponent, selector: "libs_ui-components-list", inputs: ["hiddenInputSearch", "dropdownTabKeyActive", "keySearch", "paddingLeftItem", "config", "autoSelectedFirstItemCallOutsideBefore", "isSearchOnline", "disable", "disableLabel", "labelConfig", "searchConfig", "searchPadding", "dividerClassInclude", "hasDivider", "buttonsOther", "hasButtonUnSelectOption", "clickExactly", "backgroundListCustom", "maxItemShow", "keySelected", "multiKeySelected", "keysDisableItem", "keysHiddenItem", "focusInputSearch", "skipFocusInputWhenKeySearchStoreUndefined", "functionGetItemsAutoAddList", "validRequired", "showValidateBottom", "zIndex", "loadingIconSize", "templateRefSearchNoData", "resetKeyWhenSelectAllKeyDropdown", "ignoreClassDisableDefaultWhenUseKeysDisableItem"], outputs: ["outSelectKey", "outSelectMultiKey", "outUnSelectMultiKey", "outClickButtonOther", "outFieldKey", "outChangeView", "outKeySearch", "outLoading", "outFunctionsControl", "outChangStageFlagMousePopover", "outLoadItemsComplete"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetFieldSelectedPipe, name: "LibsUiComponentsInputsCalculatorGetFieldSelectedPipe" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetWidthInputPipe, name: "LibsUiComponentsInputsCalculatorGetWidthInputPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
186
186
|
}
|
|
187
187
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsCalculatorComponent, decorators: [{
|
|
188
188
|
type: Component,
|
|
@@ -193,6 +193,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
193
193
|
LibsUiComponentsInputsCalculatorGetFieldSelectedPipe,
|
|
194
194
|
LibsUiComponentsPopoverComponent,
|
|
195
195
|
LibsUiComponentsInputsCalculatorGetWidthInputPipe
|
|
196
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef type=\"text\" class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\" (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i\n class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i\n class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i\n class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i\n class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover\n [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\" [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\" [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\" [label]=\"'C'\" (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\" (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\" (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\" (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\" (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\" (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\" (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\" (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\" (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\" (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\" (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\" (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\" (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\" (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\" [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\" (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\" (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\" [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\" (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\" [config]=\"configField()?.listConfig\" [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\" (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n" }]
|
|
196
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'C'\"\n (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\"\n (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\"\n (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\"\n (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\"\n (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\"\n (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\"\n (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\"\n (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\"\n (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\"\n (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\"\n (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\"\n (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\"\n (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\"\n [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\"\n (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\"\n [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\"\n (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef\n let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\"\n [config]=\"configField()?.listConfig\"\n [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\"\n (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n" }]
|
|
197
197
|
}] });
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL2NhbGN1bGF0b3Ivc3JjL2NhbGN1bGF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9jYWxjdWxhdG9yL3NyYy9jYWxjdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQXlCLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBZ0MsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsb0RBQW9ELEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBaUJqRyxNQUFNLE9BQU8seUNBQXlDO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsZUFBZSxHQUFHLE1BQU0sQ0FBb0MsRUFBRSxDQUFDLENBQUM7SUFDaEUsa0JBQWtCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzVDLEtBQUssR0FBRyxNQUFN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Q0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7d0dBMU1VLHlDQUF5Qzs0RkFBekMseUNBQXlDLHN1REMxQnRELDBoY0EwTkEsMkNEek1JLGVBQWUsNEZBQ2Ysc0NBQXNDLHNqQkFDdEMsNkJBQTZCLHcvQkFDN0Isb0RBQW9ELDZGQUNwRCxnQ0FBZ0MsZ2VBQ2hDLGlEQUFpRDs7NEZBSXhDLHlDQUF5QztrQkFmckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FFcEMsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2Ysc0NBQXNDO3dCQUN0Qyw2QkFBNkI7d0JBQzdCLG9EQUFvRDt3QkFDcEQsZ0NBQWdDO3dCQUNoQyxpREFBaUQ7cUJBQ2xELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZHJlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IElMaXN0RGF0YUVtaXRNdWx0aUtleSwgTGlic1VpQ29tcG9uZW50c0xpc3RDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUlucHV0Q2FsY3VsYXRvckNvbmZpZ0ZpZWxkLCBJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbiwgSUlucHV0Q2FsY3VsYXRvckZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJSW5wdXRDYWxjdWxhdG9yVmFsaWQgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBVdGlsc0tleUNvZGVDb25zdGFudCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldEZpZWxkU2VsZWN0ZWRQaXBlIH0gZnJvbSBcIi4vcGlwZXMvZ2V0LWZpZWxkLXNlbGVjdGVkLnBpcGVcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yR2V0V2lkdGhJbnB1dFBpcGUgfSBmcm9tIFwiLi9waXBlcy9nZXQtd2lkdGgtaW5wdXQucGlwZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWNhbGN1bGF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsY3VsYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0xpc3RDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c0NhbGN1bGF0b3JHZXRGaWVsZFNlbGVjdGVkUGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldFdpZHRoSW5wdXRQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGluZGV4Rm9jdXMgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgaXNGb2N1cyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByb3RlY3RlZCBsaXN0RXhwcmVzc2lvbnMgPSBzaWduYWw8QXJyYXk8SUlucHV0Q2FsY3VsYXRvckV4cHJlc3Npb24+PihbXSk7XG4gIHByb3RlY3RlZCBpc0NoYW5nZUV4cHJlc3Npb24gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgZXJyb3IgPSBzaWduYWw8SUlucHV0Q2FsY3VsYXRvclZhbGlkIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgaW5wdXRSZWYgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ2lucHV0UmVmJyk7XG4gIHByaXZhdGUgdGltZU91dCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgdG9vbHRpcEZ1bmN0aW9uQ29udHJvbCA9IHNpZ25hbDxNYXA8bnVtYmVyLCBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBleHByZXNzaW9ucyA9IGlucHV0PEFycmF5PElJbnB1dENhbGN1bGF0b3JFeHByZXNzaW9uPj4oW10pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXI+KDEwKTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdpMThuX2VudGVyX3BhcmFtcycpO1xuICByZWFkb25seSBsYWJlbEJ1dHRvblNhdmUgPSBpbnB1dDxzdHJpbmc+KCdpMThuX3NhdmVfY2FsY3VsYXRpb24nKTtcbiAgcmVhZG9ubHkgY29uZmlnRmllbGQgPSBpbnB1dDxJSW5wdXRDYWxjdWxhdG9yQ29uZmlnRmllbGQ+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZUJ1dHRvblNhdmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgJycgfSk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVySW5wdXQgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICcnIH0pO1xuICByZWFkb25seSBjbGFzc0NvbnRhaW5lckJ1dHRvbiA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgJycgfSk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJSW5wdXRDYWxjdWxhdG9yVmFsaWQ+KClcblxuICByZWFkb25seSBvdXRDaGFuZ2VFeHByZXNzaW9ucyA9IG91dHB1dDxBcnJheTxJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbj4+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJSW5wdXRDYWxjdWxhdG9yRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0RXhwcmVzc2lvbnMuc2V0KGNsb25lRGVlcCh0aGlzLmV4cHJlc3Npb25zKCkpKTtcbiAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgZ2V0RGF0YTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKHRoaXMubGlzdEV4cHJlc3Npb25zKCkpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrKGV2ZW50OiBFdmVudCwgYnV0dG9uOiAnKycgfCAnLScgfCAnKicgfCAnLycgfCAnYycgfCAnLicgfCAnKCcgfCAnKScgfCAnMCcgfCAnMScgfCAnMicgfCAnMycgfCAnNCcgfCAnNScgfCAnNicgfCAnNycgfCAnOCcgfCAnOScpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBleHByZXNzaW9uOiBJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbiA9IHsgdHlwZTogJ2ZpZWxkJywgZGF0YTogYnV0dG9uIH07XG5cbiAgICBpZiAoYnV0dG9uID09PSAnYycpIHtcbiAgICAgIGlmICghdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggfHwgdGhpcy5pbmRleEZvY3VzKCkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRXhwcmVzc2lvbnModW5kZWZpbmVkLCB0eXBlb2YgdGhpcy5pbmRleEZvY3VzKCkgIT09ICd1bmRlZmluZWQnID8gKCh0aGlzLmluZGV4Rm9jdXMoKSB8fCAxKSAtIDEpIDogKHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoIC0gMSkpO1xuICAgIH1cbiAgICBzd2l0Y2ggKGJ1dHRvbikge1xuICAgICAgY2FzZSAnKyc6XG4gICAgICBjYXNlICctJzpcbiAgICAgIGNhc2UgJyonOlxuICAgICAgY2FzZSAnLyc6XG4gICAgICAgIGV4cHJlc3Npb24udHlwZSA9ICdvcGVyYXRpb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGV4cHJlc3Npb24udHlwZSA9ICd2YWx1ZSc7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRXhwcmVzc2lvbnMoZXhwcmVzc2lvbiwgdHlwZW9mIHRoaXMuaW5kZXhGb2N1cygpICE9PSAndW5kZWZpbmVkJyA/ICh0aGlzLmluZGV4Rm9jdXMoKSB8fCAwKSA6IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRXhwcmVzc2lvbnMoaXRlbTogSUlucHV0Q2FsY3VsYXRvckV4cHJlc3Npb24gfCB1bmRlZmluZWQsIHBvc2l0aW9uOiBudW1iZXIsIGlzRGVsZXRlPzogYm9vbGVhbikge1xuICAgIHRoaXMuaXNDaGFuZ2VFeHByZXNzaW9uLnNldCh0cnVlKTtcbiAgICB0aGlzLmxpc3RFeHByZXNzaW9ucy51cGRhdGUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB2YWx1ZS5zcGxpY2UocG9zaXRpb24gfHwgMCwgMCwgaXRlbSk7XG4gICAgICB9XG4gICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgdmFsdWUuc3BsaWNlKHBvc2l0aW9uIHx8IDAsIDEpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLnZhbHVlXTtcbiAgICB9KVxuXG4gICAgdGhpcy5pbmRleEZvY3VzLnVwZGF0ZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdmFsdWUgPSBpc0RlbGV0ZSA/IHZhbHVlIDogdmFsdWUgLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiBwb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFsdWUrKztcblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pXG4gICAgY29uc3QgaW5kZXhGb2N1cyA9IHRoaXMuaW5kZXhGb2N1cygpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGluZGV4Rm9jdXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYoKVtpbmRleEZvY3VzXT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwMClcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50S2V5VXBJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBrZXlDb2RlID0gKGV2ZW50IGFzIElFdmVudCkua2V5Q29kZTtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudCBhcyBJRXZlbnQpLnRhcmdldC52YWx1ZTtcbiAgICBjb25zdCBzaGlmdEtleSA9IChldmVudCBhcyBJRXZlbnQpLnNoaWZ0S2V5O1xuXG4gICAgaWYgKCgoW1V0aWxzS2V5Q29kZUNvbnN0YW50LkVRVUFMUywgVXRpbHNLZXlDb2RlQ29uc3RhbnQuRUlHSFRdLmluY2x1ZGVzKGtleUNvZGUpICYmIHNoaWZ0S2V5KSB8fCAoW1V0aWxzS2V5Q29kZUNvbnN0YW50LkRBU0gsIFV0aWxzS2V5Q29kZUNvbnN0YW50LlNMQVNIXS5pbmNsdWRlcyhrZXlDb2RlKSAmJiAhc2hpZnRLZXkpKSAmJiB2YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIChldmVudCBhcyBJRXZlbnQpLnRhcmdldC52YWx1ZSA9ICcnO1xuXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVFeHByZXNzaW9ucyh7IHR5cGU6ICdvcGVyYXRpb24nLCBkYXRhOiB2YWx1ZSB9LCB0aGlzLmluZGV4Rm9jdXMoKSB8fCB0aGlzLmxpc3RFeHByZXNzaW9ucygpLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudEtleUlucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGtleUNvZGUgPSAoZXZlbnQgYXMgSUV2ZW50KS5rZXlDb2RlO1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50IGFzIElFdmVudCkudGFyZ2V0LnZhbHVlO1xuXG4gICAgaWYgKGtleUNvZGUgPT09IFV0aWxzS2V5Q29kZUNvbnN0YW50LkJBQ0tTUEFDRSkge1xuICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmxpc3RFeHByZXNzaW9ucygpLmxlbmd0aCAmJiAodGhpcy5pbmRleEZvY3VzKCkgfHwgMCkgPiAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUV4cHJlc3Npb25zKHVuZGVmaW5lZCwgKHRoaXMuaW5kZXhGb2N1cygpIHx8IDApIC0gMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChrZXlDb2RlID09PSBVdGlsc0tleUNvZGVDb25zdGFudC5ERUxFVEUpIHtcbiAgICAgIGlmICghdmFsdWUgJiYgdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggJiYgKHRoaXMuaW5kZXhGb2N1cygpIHx8IDApIDwgdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRXhwcmVzc2lvbnModW5kZWZpbmVkLCAodGhpcy5pbmRleEZvY3VzKCkgfHwgMCksIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoa2V5Q29kZSA9PT0gVXRpbHNLZXlDb2RlQ29uc3RhbnQuRU5URVIpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAoZXZlbnQgYXMgSUV2ZW50KS50YXJnZXQudmFsdWUgPSAnJztcblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVFeHByZXNzaW9ucyh7IHR5cGU6ICd2YWx1ZScsIGRhdGE6IHZhbHVlIH0sIHRoaXMuaW5kZXhGb2N1cygpIHx8IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZvY3VzQW5kQmx1cklucHV0KGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIGluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5pbmRleEZvY3VzLnNldChpbmRleCk7XG4gICAgICB0aGlzLmlzRm9jdXMuc2V0KHRydWUpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dCgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0ZvY3VzLnNldChmYWxzZSk7XG4gICAgfSwgMjUwKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2xpY2tJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNGb2N1cygpKSB7XG4gICAgICB0aGlzLmlucHV0UmVmKClbdGhpcy5pbnB1dFJlZigpLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclNhdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0NoYW5nZUV4cHJlc3Npb24uc2V0KGZhbHNlKTtcbiAgICB0aGlzLm91dENoYW5nZUV4cHJlc3Npb25zLmVtaXQoY2xvbmVEZWVwKHRoaXMubGlzdEV4cHJlc3Npb25zKCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRGaWVsZChldmVudDogSUxpc3REYXRhRW1pdE11bHRpS2V5IHwgdW5kZWZpbmVkLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCFldmVudD8ua2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMubGlzdEV4cHJlc3Npb25zLnVwZGF0ZSh2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmRhdGEgIT09IGV2ZW50LmtleXNbMF0pIHtcbiAgICAgICAgICAgICAgdGhpcy50b29sdGlwRnVuY3Rpb25Db250cm9sKCkuZ2V0KGluZGV4KT8ucmVtb3ZlUG9wb3Zlck92ZXJsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0uZGF0YSA9IGV2ZW50LmtleXNbMF0gYXMgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBbLi4udmFsdWVdO1xuICAgICAgfSlcbiAgICAgIHRoaXMuaXNDaGFuZ2VFeHByZXNzaW9uLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUV4cHJlc3Npb25zKHsgdHlwZTogJ2ZpZWxkJywgZGF0YTogZXZlbnQua2V5c1swXSBhcyBzdHJpbmcgfSwgdHlwZW9mIHRoaXMuaW5kZXhGb2N1cygpICE9PSAndW5kZWZpbmVkJyA/ICh0aGlzLmluZGV4Rm9jdXMoKSB8fCAwKSA6IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgICB0aGlzLnRvb2x0aXBGdW5jdGlvbkNvbnRyb2woKS5nZXQoaW5kZXgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2xCdXR0b24oZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRvb2x0aXBGdW5jdGlvbkNvbnRyb2wudXBkYXRlKHZhbHVlID0+IHtcbiAgICAgIHZhbHVlLnNldChpbmRleCwgZXZlbnQpO1xuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy5lcnJvci5zZXQodW5kZWZpbmVkKTtcbiAgICBpZiAoIXRoaXMudmFsaWRSZXF1aXJlZCgpIHx8ICF0aGlzLnZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXJyb3Iuc2V0KHsgbWVzc2FnZTogdGhpcy52YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cInctZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJwLVs4cHhdIHJvdW5kZWQtWzEycHhdIGJnLVsjZjhmOWZhXSB7eyBjbGFzc0luY2x1ZGUoKSB9fVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwibWItWzhweF0ge3sgY2xhc3NDb250YWluZXJJbnB1dCgpIH19XCI+XG4gICAgICAgICAgICA8ZGl2ICNjYWxjdWxhdG9ySW5wdXRcbiAgICAgICAgICAgICAgICBjbGFzcz1cInB5LVsxMHB4XSBweC1bMTJweF0gbGlicy11aS1mb250LWg1ciByb3VuZGVkLVs4cHhdIGJnLVsjZmZmZmZmXSBtaW4taC1bMTYwcHhdIGgtZnVsbCBib3JkZXItWzFweF0ge3sgZXJyb3IoKT8ubWVzc2FnZSA/ICdsaWJzLXVpLWJvcmRlci1lcnJvci1nZW5lcmFsJyA6IChpc0ZvY3VzKCkgPyAnYm9yZGVyLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTEpXScgOiAnYm9yZGVyLVsjZmZmZmZmXScpIH19XCJcbiAgICAgICAgICAgICAgICAobW91c2V1cCk9XCJoYW5kbGVyQ2xpY2tJbnB1dCgkZXZlbnQpXCI+XG4gICAgICAgICAgICAgICAgPHVsIGNsYXNzPVwiYmVmb3JlOmNvbnRlbnQtWycnXSBiZWZvcmU6dGFibGUgYWZ0ZXI6Y29udGVudC1bJyddIGFmdGVyOnRhYmxlIGFmdGVyOmNsZWFyLWJvdGhcIj5cbiAgICAgICAgICAgICAgICAgICAgQGZvciAoaXRlbSBvZiBsaXN0RXhwcmVzc2lvbnMoKTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZmxvYXQtbGVmdCBtYi1bOHB4XVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRSZWYgdHlwZT1cInRleHRcIiBjbGFzcz1cImlubGluZS1ibG9jayBoLVsyNHB4XSBvdXRsaW5lLW5vbmUgdGV4dC1jZW50ZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3MubWwtWy04cHhdXT1cImkgPT09IDBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbc3R5bGUud2lkdGgucHhdPVwiaW5wdXRSZWYudmFsdWUgfCBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldFdpZHRoSW5wdXRQaXBlOmNhbGN1bGF0b3JJbnB1dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZXJFdmVudEtleUlucHV0KCRldmVudClcIiAoa2V5dXApPVwiaGFuZGxlckV2ZW50S2V5VXBJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZvY3VzKT1cImhhbmRsZXJGb2N1c0FuZEJsdXJJbnB1dChpKVwiIChibHVyKT1cImhhbmRsZXJGb2N1c0FuZEJsdXJJbnB1dCh1bmRlZmluZWQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgICAgICAgICAgICBAc3dpdGNoIChpdGVtLnR5cGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJ29wZXJhdGlvbicpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0LWxlZnQgbWItWzhweF0gdGV4dC1jZW50ZXIgdy1bMjRweF0gaC1bMjRweF0gcm91bmRlZC1bNHB4XSBwLVs0cHhdIGJnLVt2YXIoLS1saWJzLXVpLWNvbG9yLWxpZ2h0LTIpXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQHN3aXRjaCAoaXRlbS5kYXRhKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCcvJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJsaWJzLXVpLWljb24tZGl2aWRlIHRleHQtWzE2cHhdIGJlZm9yZTohdGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1pY29uLW1pbnVzIHRleHQtWzE2cHhdIGJlZm9yZTohdGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIEBjYXNlICgnKycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwibGlicy11aS1pY29uLWFkZCB0ZXh0LVsxNnB4XSBiZWZvcmU6IXRleHQtW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJyonKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImxpYnMtdWktaWNvbi1jbG9zZSB0ZXh0LVsxNnB4XSBiZWZvcmU6IXRleHQtW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCd2YWx1ZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImZsb2F0LWxlZnQgbWItWzhweF0gdGV4dC1jZW50ZXIgcm91bmRlZC1bNHB4XSBoLVsyNHB4XSBweC1bOHB4XSBiZy1bI0U2RTdFQV0gZmxleCBpdGVtcy1jZW50ZXIgbWF4LXctW2NhbGMoMTAwJS04cHgpXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW3R5cGVdPVwiJ3RleHQnXCI+e3sgaXRlbS5kYXRhIH19PC9saWJzX3VpLWNvbXBvbmVudHMtcG9wb3Zlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCdmaWVsZCcpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgQGlmICgge2ZpZWxkU2VsZWN0ZWQ6IGl0ZW0uZGF0YSB8IExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yR2V0RmllbGRTZWxlY3RlZFBpcGU6Y29uZmlnRmllbGQoKT8uZ2V0RmllbGRTZWxlY3RlZH07IGFzIGRhdGEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBjbGFzcz1cImZsb2F0LWxlZnQgbWItWzhweF1cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIGNsYXNzPVwibWF4LXctWzE3MnB4XSBibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCJkYXRhLmZpZWxkU2VsZWN0ZWQ/Lm5hbWUgfHwgJ2kxOG5fZmllbGRfZXJyb3InXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIWp1c3RpZnktY2VudGVyICFweS1bMnB4XSAhcHgtWzdweF0gIXctZnVsbCdcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJkYXRhLmZpZWxkU2VsZWN0ZWQ/Lmljb24gfHwgJ2xpYnMtdWktaWNvbi10b29sdGlwLW91dGxpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzSWNvblJpZ2h0XT1cIidsaWJzLXVpLWljb24tbW92ZS1yaWdodCByb3RhdGUtOTAnXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2NsYXNzTGFiZWxdPVwiJ2xpYnMtdWktZm9udC1oNXInXCIgW3pJbmRleF09XCIgekluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdHlwZV09XCJkYXRhLmZpZWxkU2VsZWN0ZWQ/ICdidXR0b24tcHJpbWFyeScgOiAnYnV0dG9uLWRhbmdlci1oaWdoJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwb3BvdmVyXT1cIntcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnY2xpY2stdG9nZ2xlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlOiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiB6SW5kZXgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGFuaW1hdGlvbkNvbmZpZzoge30sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aWR0aEJ5UGFyZW50OmZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Qm9yZGVyV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhIZWlnaHQ6MjA0OCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1heFdpZHRoOiAyMDQ4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGRpcmVjdGlvbkRpc3RhbmNlOjIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0ZW1wbGF0ZTogbGlzdFZpZXdSZWYsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ29udGV4dDoge2luZGV4OiBpLCBrZXk6IGl0ZW0uZGF0YX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB3aGl0ZVRoZW1lOnRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZ25vcmVBcnJvdzp0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NJbmNsdWRlOichcm91bmRlZC1bNHB4XSAhdy1bMjcycHhdJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBvc2l0aW9uOnsgbW9kZTonc3RhcnQnLGRpc3RhbmNlOjAgfSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cIiAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sQnV0dG9uKCRldmVudCwgaSlcIiAvPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICA8bGkgY2xhc3M9XCJmbG9hdC1sZWZ0IG1iLVs4cHhdIG1heC13LVsxMDAlXVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0ICNpbnB1dFJlZiB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgaC1bMjRweF0gb3V0bGluZS1ub25lIG1heC13LVsxMDAlXSB7eyBsaXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggPyAndGV4dC1jZW50ZXInIDogJycgfX1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJsaXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggPyAoaW5wdXRSZWYudmFsdWUgfCBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldFdpZHRoSW5wdXRQaXBlOmNhbGN1bGF0b3JJbnB1dCkgOiAxNTBcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIhbGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoID8gKHBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChrZXlkb3duKT1cImhhbmRsZXJFdmVudEtleUlucHV0KCRldmVudClcIiAoa2V5dXApPVwiaGFuZGxlckV2ZW50S2V5VXBJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZm9jdXMpPVwiaGFuZGxlckZvY3VzQW5kQmx1cklucHV0KGxpc3RFeHByZXNzaW9ucygpLmxlbmd0aClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIChibHVyKT1cImhhbmRsZXJGb2N1c0FuZEJsdXJJbnB1dCh1bmRlZmluZWQpXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgICA8L3VsPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICBAaWYgKGVycm9yKCk/Lm1lc3NhZ2UpIHtcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwibGlicy11aS10ZXh0LWVycm9yIG10LVs4cHhdIGxpYnMtdWktZm9udC1oN3JcIj57eyAoZXJyb3IoKT8ubWVzc2FnZSB8fCAnJykgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy00IGdhcC1bOHB4XSB7eyBjbGFzc0NvbnRhaW5lckJ1dHRvbigpIH19XCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLVsxLzRdXCI+XG4gICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbbGFiZWxdPVwiY29uZmlnRmllbGQoKT8ubGFiZWwgfHwgJ2kxOG5fc2VsZWN0X2ZpZWxkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiIFtwb3BvdmVyXT1cIntcbiAgICAgICAgICAgIG1vZGU6ICdjbGljay10b2dnbGUnLFxuICAgICAgICAgICAgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZTogdHJ1ZSxcbiAgICAgICAgICAgIGNvbmZpZzoge1xuICAgICAgICAgICAgICB6SW5kZXg6IHpJbmRleCgpLFxuICAgICAgICAgICAgICBhbmltYXRpb25Db25maWc6IHt9LFxuICAgICAgICAgICAgICB3aWR0aEJ5UGFyZW50OnRydWUsXG4gICAgICAgICAgICAgIHBhcmVudEJvcmRlcldpZHRoOiAwLFxuICAgICAgICAgICAgICBtYXhIZWlnaHQ6MjA0OCxcbiAgICAgICAgICAgICAgbWF4V2lkdGg6IDIwNDgsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbjogJ2JvdHRvbScsXG4gICAgICAgICAgICAgIGRpcmVjdGlvbkRpc3RhbmNlOjIsXG4gICAgICAgICAgICAgIHRlbXBsYXRlOiBsaXN0Vmlld1JlZixcbiAgICAgICAgICAgICAgaXRlbUNvbnRleHQ6IHtpbmRleDogLTF9LFxuICAgICAgICAgICAgICB3aGl0ZVRoZW1lOnRydWUsXG4gICAgICAgICAgICAgIGlnbm9yZUFycm93OnRydWUsXG4gICAgICAgICAgICAgIGNsYXNzSW5jbHVkZTonIXJvdW5kZWQtWzRweF0gIXctWzI3MnB4XScsXG4gICAgICAgICAgICAgIHBvc2l0aW9uOnsgbW9kZTonc3RhcnQnLGRpc3RhbmNlOjAgfSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XCIgKG91dEZ1bmN0aW9uc0NvbnRyb2wpPVwiaGFuZGxlckZ1bmN0aW9uQ29udHJvbEJ1dHRvbigkZXZlbnQsIC0xKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzQvNF1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdmlvbGV0J1wiIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInRngnXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMV1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tZGFuZ2VyLWhpZ2gnXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCIgW2xhYmVsXT1cIidDJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnYycpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMl1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCIgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIicoJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnKCcpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bM11cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCIgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIicpJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnKScpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bNF1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tZGl2aWRlJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnLycpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMV1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCIgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIicxJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnMScpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMl1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCIgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIicyJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnMicpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bM11cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCIgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cIiczJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnMycpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bNF1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0ljb25MZWZ0XT1cIidsaWJzLXVpLWljb24tY2xvc2UnXCIgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICcqJylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLVsxXVwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIiBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJzQnXCIgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICc0JylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLVsyXVwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIiBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJzUnXCIgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICc1JylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLVszXVwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIiBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJzYnXCIgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICc2JylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLVs0XVwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi1zZWNvbmRhcnknXCJcbiAgICAgICAgICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCIgW2NsYXNzSWNvbkxlZnRdPVwiJ2xpYnMtdWktaWNvbi1taW51cydcIlxuICAgICAgICAgICAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIiAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJy0nKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzFdXCI+XG4gICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInNydcIiAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzcnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzJdXCI+XG4gICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInOCdcIiAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzgnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzNdXCI+XG4gICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtsYWJlbF09XCInOSdcIiAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzknKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzRdXCI+XG4gICAgICAgICAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXNlY29uZGFyeSdcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIiBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWFkZCdcIiAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJysnKVwiIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzEvNF1cIj5cbiAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFtsYWJlbF09XCInMCdcIiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnMCcpXCIgLz5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1bNC80XVwiPlxuICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIiBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgICAgICAgICAgICBbbGFiZWxdPVwiJy4nXCIgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICcuJylcIiAvPlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIEBpZiAoIWlnbm9yZUJ1dHRvblNhdmUoKSkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwibXQtWzE2cHhdXCI+XG4gICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFtsYWJlbF09XCJsYWJlbEJ1dHRvblNhdmUoKVwiIFtkaXNhYmxlXT1cIiFpc0NoYW5nZUV4cHJlc3Npb24oKVwiXG4gICAgICAgICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInanVzdGlmeS1jZW50ZXIgdy1mdWxsJ1wiIChvdXRDbGljayk9XCJoYW5kbGVyU2F2ZSgkZXZlbnQpXCIgLz5cbiAgICAgICAgPC9kaXY+XG4gICAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZpZXdSZWYgbGV0LWRhdGE9J2l0ZW1Db250ZXh0Jz5cbiAgICA8bGlic191aS1jb21wb25lbnRzLWxpc3QgW3pJbmRleF09XCJ6SW5kZXgoKVwiIFtjb25maWddPVwiY29uZmlnRmllbGQoKT8ubGlzdENvbmZpZ1wiIFttYXhJdGVtU2hvd109XCI2XCJcbiAgICAgICAgW2NsaWNrRXhhY3RseV09XCJmYWxzZVwiXG4gICAgICAgIFtzZWFyY2hDb25maWddPVwie25vQm9yZGVyOiB0cnVlLCBwbGFjZWhvbGRlcjogY29uZmlnRmllbGQoKT8ucGxhY2Vob2xkZXJJbnB1dExpc3QgfHwgJ2kxOG5fc2VhcmNoJ31cIlxuICAgICAgICBbbXVsdGlLZXlTZWxlY3RlZF09XCJkYXRhLmtleSA/IFtkYXRhLmtleV0gOiBbXVwiIChvdXRTZWxlY3RNdWx0aUtleSk9XCJoYW5kbGVyU2VsZWN0ZWRGaWVsZCgkZXZlbnQsIGRhdGEuaW5kZXgpXCI+XG4gICAgPC9saWJzX3VpLWNvbXBvbmVudHMtbGlzdD5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsY3VsYXRvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL2NhbGN1bGF0b3Ivc3JjL2NhbGN1bGF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy11aS9jb21wb25lbnRzL2lucHV0cy9jYWxjdWxhdG9yL3NyYy9jYWxjdWxhdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQWMsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVILE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsc0NBQXNDLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQztBQUM1RixPQUFPLEVBQXlCLDZCQUE2QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFHaEcsT0FBTyxFQUFFLFNBQVMsRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2pFLE9BQU8sRUFBZ0MsZ0NBQWdDLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RyxPQUFPLEVBQUUsb0RBQW9ELEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN2RyxPQUFPLEVBQUUsaURBQWlELEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBaUJqRyxNQUFNLE9BQU8seUNBQXlDO0lBQzFDLFVBQVUsR0FBRyxNQUFNLENBQXFCLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELE9BQU8sR0FBRyxNQUFNLENBQVUsS0FBSyxDQUFDLENBQUM7SUFDakMsZUFBZSxHQUFHLE1BQU0sQ0FBb0MsRUFBRSxDQUFDLENBQUM7SUFDaEUsa0JBQWtCLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO0lBQzVDLEtBQUssR0FBRyxNQUFN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Q0FBQyxlQUFlLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ3RELENBQUM7d0dBMU1VLHlDQUF5Qzs0RkFBekMseUNBQXlDLHN1REMxQnRELHd3WUEwUUEsMkNEelBJLGVBQWUsNEZBQ2Ysc0NBQXNDLHNqQkFDdEMsNkJBQTZCLHcvQkFDN0Isb0RBQW9ELDZGQUNwRCxnQ0FBZ0MsK2ZBQ2hDLGlEQUFpRDs7NEZBSXhDLHlDQUF5QztrQkFmckQsU0FBUzsrQkFFRSxzQ0FBc0MsY0FFcEMsSUFBSSxXQUNQO3dCQUNQLGVBQWU7d0JBQ2Ysc0NBQXNDO3dCQUN0Qyw2QkFBNkI7d0JBQzdCLG9EQUFvRDt3QkFDcEQsZ0NBQWdDO3dCQUNoQyxpREFBaUQ7cUJBQ2xELG1CQUNnQix1QkFBdUIsQ0FBQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENvbXBvbmVudCwgRWxlbWVudFJlZiwgaW5wdXQsIE9uSW5pdCwgb3V0cHV0LCBzaWduYWwsIHZpZXdDaGlsZHJlbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uJztcbmltcG9ydCB7IElMaXN0RGF0YUVtaXRNdWx0aUtleSwgTGlic1VpQ29tcG9uZW50c0xpc3RDb21wb25lbnQgfSBmcm9tICdAbGlicy11aS9jb21wb25lbnRzLWxpc3QnO1xuaW1wb3J0IHsgSUlucHV0Q2FsY3VsYXRvckNvbmZpZ0ZpZWxkLCBJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbiwgSUlucHV0Q2FsY3VsYXRvckZ1bmN0aW9uQ29udHJvbEV2ZW50LCBJSW5wdXRDYWxjdWxhdG9yVmFsaWQgfSBmcm9tIFwiLi9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBJRXZlbnQgfSBmcm9tIFwiQGxpYnMtdWkvaW50ZXJmYWNlcy10eXBlc1wiO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBVdGlsc0tleUNvZGVDb25zdGFudCB9IGZyb20gXCJAbGlicy11aS91dGlsc1wiO1xuaW1wb3J0IHsgSVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCwgTGlic1VpQ29tcG9uZW50c1BvcG92ZXJDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldEZpZWxkU2VsZWN0ZWRQaXBlIH0gZnJvbSBcIi4vcGlwZXMvZ2V0LWZpZWxkLXNlbGVjdGVkLnBpcGVcIjtcbmltcG9ydCB7IExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yR2V0V2lkdGhJbnB1dFBpcGUgfSBmcm9tIFwiLi9waXBlcy9nZXQtd2lkdGgtaW5wdXQucGlwZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWNhbGN1bGF0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vY2FsY3VsYXRvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBUcmFuc2xhdGVNb2R1bGUsXG4gICAgTGlic1VpQ29tcG9uZW50c0J1dHRvbnNCdXR0b25Db21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0xpc3RDb21wb25lbnQsXG4gICAgTGlic1VpQ29tcG9uZW50c0lucHV0c0NhbGN1bGF0b3JHZXRGaWVsZFNlbGVjdGVkUGlwZSxcbiAgICBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckNvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ2FsY3VsYXRvckdldFdpZHRoSW5wdXRQaXBlXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXG59KVxuZXhwb3J0IGNsYXNzIExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgcHJvdGVjdGVkIGluZGV4Rm9jdXMgPSBzaWduYWw8bnVtYmVyIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcm90ZWN0ZWQgaXNGb2N1cyA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG4gIHByb3RlY3RlZCBsaXN0RXhwcmVzc2lvbnMgPSBzaWduYWw8QXJyYXk8SUlucHV0Q2FsY3VsYXRvckV4cHJlc3Npb24+PihbXSk7XG4gIHByb3RlY3RlZCBpc0NoYW5nZUV4cHJlc3Npb24gPSBzaWduYWw8Ym9vbGVhbj4oZmFsc2UpO1xuICBwcm90ZWN0ZWQgZXJyb3IgPSBzaWduYWw8SUlucHV0Q2FsY3VsYXRvclZhbGlkIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuXG4gIHByaXZhdGUgaW5wdXRSZWYgPSB2aWV3Q2hpbGRyZW48RWxlbWVudFJlZj4oJ2lucHV0UmVmJyk7XG4gIHByaXZhdGUgdGltZU91dCA9IHNpZ25hbDxudW1iZXIgfCB1bmRlZmluZWQ+KHVuZGVmaW5lZCk7XG4gIHByaXZhdGUgdG9vbHRpcEZ1bmN0aW9uQ29udHJvbCA9IHNpZ25hbDxNYXA8bnVtYmVyLCBJUG9wb3ZlckZ1bmN0aW9uQ29udHJvbEV2ZW50Pj4obmV3IE1hcCgpKTtcblxuICByZWFkb25seSBleHByZXNzaW9ucyA9IGlucHV0PEFycmF5PElJbnB1dENhbGN1bGF0b3JFeHByZXNzaW9uPj4oW10pO1xuICByZWFkb25seSB6SW5kZXggPSBpbnB1dDxudW1iZXI+KDEwKTtcbiAgcmVhZG9ubHkgcGxhY2Vob2xkZXIgPSBpbnB1dDxzdHJpbmc+KCdpMThuX2VudGVyX3BhcmFtcycpO1xuICByZWFkb25seSBsYWJlbEJ1dHRvblNhdmUgPSBpbnB1dDxzdHJpbmc+KCdpMThuX3NhdmVfY2FsY3VsYXRpb24nKTtcbiAgcmVhZG9ubHkgY29uZmlnRmllbGQgPSBpbnB1dDxJSW5wdXRDYWxjdWxhdG9yQ29uZmlnRmllbGQ+KCk7XG4gIHJlYWRvbmx5IGlnbm9yZUJ1dHRvblNhdmUgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIHJlYWRvbmx5IGNsYXNzSW5jbHVkZSA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgJycgfSk7XG4gIHJlYWRvbmx5IGNsYXNzQ29udGFpbmVySW5wdXQgPSBpbnB1dDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4oJycsIHsgdHJhbnNmb3JtOiAodmFsdWUpID0+IHZhbHVlIHx8ICcnIH0pO1xuICByZWFkb25seSBjbGFzc0NvbnRhaW5lckJ1dHRvbiA9IGlucHV0PHN0cmluZywgc3RyaW5nIHwgdW5kZWZpbmVkPignJywgeyB0cmFuc2Zvcm06ICh2YWx1ZSkgPT4gdmFsdWUgfHwgJycgfSk7XG4gIHJlYWRvbmx5IHZhbGlkUmVxdWlyZWQgPSBpbnB1dDxJSW5wdXRDYWxjdWxhdG9yVmFsaWQ+KClcblxuICByZWFkb25seSBvdXRDaGFuZ2VFeHByZXNzaW9ucyA9IG91dHB1dDxBcnJheTxJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbj4+KCk7XG4gIHJlYWRvbmx5IG91dEZ1bmN0aW9uQ29udHJvbCA9IG91dHB1dDxJSW5wdXRDYWxjdWxhdG9yRnVuY3Rpb25Db250cm9sRXZlbnQ+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5saXN0RXhwcmVzc2lvbnMuc2V0KGNsb25lRGVlcCh0aGlzLmV4cHJlc3Npb25zKCkpKTtcbiAgICB0aGlzLm91dEZ1bmN0aW9uQ29udHJvbC5lbWl0KHtcbiAgICAgIGNoZWNrSXNWYWxpZDogdGhpcy52YWxpZGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgZ2V0RGF0YTogKCkgPT4ge1xuICAgICAgICByZXR1cm4gY2xvbmVEZWVwKHRoaXMubGlzdEV4cHJlc3Npb25zKCkpO1xuICAgICAgfVxuICAgIH0pXG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNsaWNrKGV2ZW50OiBFdmVudCwgYnV0dG9uOiAnKycgfCAnLScgfCAnKicgfCAnLycgfCAnYycgfCAnLicgfCAnKCcgfCAnKScgfCAnMCcgfCAnMScgfCAnMicgfCAnMycgfCAnNCcgfCAnNScgfCAnNicgfCAnNycgfCAnOCcgfCAnOScpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBjb25zdCBleHByZXNzaW9uOiBJSW5wdXRDYWxjdWxhdG9yRXhwcmVzc2lvbiA9IHsgdHlwZTogJ2ZpZWxkJywgZGF0YTogYnV0dG9uIH07XG5cbiAgICBpZiAoYnV0dG9uID09PSAnYycpIHtcbiAgICAgIGlmICghdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggfHwgdGhpcy5pbmRleEZvY3VzKCkgPT09IDApIHtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRXhwcmVzc2lvbnModW5kZWZpbmVkLCB0eXBlb2YgdGhpcy5pbmRleEZvY3VzKCkgIT09ICd1bmRlZmluZWQnID8gKCh0aGlzLmluZGV4Rm9jdXMoKSB8fCAxKSAtIDEpIDogKHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoIC0gMSkpO1xuICAgIH1cbiAgICBzd2l0Y2ggKGJ1dHRvbikge1xuICAgICAgY2FzZSAnKyc6XG4gICAgICBjYXNlICctJzpcbiAgICAgIGNhc2UgJyonOlxuICAgICAgY2FzZSAnLyc6XG4gICAgICAgIGV4cHJlc3Npb24udHlwZSA9ICdvcGVyYXRpb24nO1xuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGV4cHJlc3Npb24udHlwZSA9ICd2YWx1ZSc7XG4gICAgfVxuICAgIHRoaXMudXBkYXRlRXhwcmVzc2lvbnMoZXhwcmVzc2lvbiwgdHlwZW9mIHRoaXMuaW5kZXhGb2N1cygpICE9PSAndW5kZWZpbmVkJyA/ICh0aGlzLmluZGV4Rm9jdXMoKSB8fCAwKSA6IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgfVxuXG4gIHByaXZhdGUgdXBkYXRlRXhwcmVzc2lvbnMoaXRlbTogSUlucHV0Q2FsY3VsYXRvckV4cHJlc3Npb24gfCB1bmRlZmluZWQsIHBvc2l0aW9uOiBudW1iZXIsIGlzRGVsZXRlPzogYm9vbGVhbikge1xuICAgIHRoaXMuaXNDaGFuZ2VFeHByZXNzaW9uLnNldCh0cnVlKTtcbiAgICB0aGlzLmxpc3RFeHByZXNzaW9ucy51cGRhdGUoKHZhbHVlKSA9PiB7XG4gICAgICBpZiAoaXRlbSkge1xuICAgICAgICB2YWx1ZS5zcGxpY2UocG9zaXRpb24gfHwgMCwgMCwgaXRlbSk7XG4gICAgICB9XG4gICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgdmFsdWUuc3BsaWNlKHBvc2l0aW9uIHx8IDAsIDEpO1xuICAgICAgfVxuXG4gICAgICByZXR1cm4gWy4uLnZhbHVlXTtcbiAgICB9KVxuXG4gICAgdGhpcy5pbmRleEZvY3VzLnVwZGF0ZSh2YWx1ZSA9PiB7XG4gICAgICBpZiAoIWl0ZW0pIHtcbiAgICAgICAgaWYgKHZhbHVlKSB7XG4gICAgICAgICAgdmFsdWUgPSBpc0RlbGV0ZSA/IHZhbHVlIDogdmFsdWUgLSAxO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlID8gdmFsdWUgOiBwb3NpdGlvbjtcbiAgICAgIH1cbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHZhbHVlID0gdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGg7XG5cbiAgICAgICAgcmV0dXJuIHZhbHVlO1xuICAgICAgfVxuICAgICAgdmFsdWUrKztcblxuICAgICAgcmV0dXJuIHZhbHVlO1xuICAgIH0pXG4gICAgY29uc3QgaW5kZXhGb2N1cyA9IHRoaXMuaW5kZXhGb2N1cygpO1xuXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodHlwZW9mIGluZGV4Rm9jdXMgIT09ICd1bmRlZmluZWQnKSB7XG4gICAgICAgIHRoaXMuaW5wdXRSZWYoKVtpbmRleEZvY3VzXT8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgfVxuICAgIH0sIDEwMClcbiAgICB0aGlzLnZhbGlkYXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckV2ZW50S2V5VXBJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBjb25zdCBrZXlDb2RlID0gKGV2ZW50IGFzIElFdmVudCkua2V5Q29kZTtcbiAgICBjb25zdCB2YWx1ZSA9IChldmVudCBhcyBJRXZlbnQpLnRhcmdldC52YWx1ZTtcbiAgICBjb25zdCBzaGlmdEtleSA9IChldmVudCBhcyBJRXZlbnQpLnNoaWZ0S2V5O1xuXG4gICAgaWYgKCgoW1V0aWxzS2V5Q29kZUNvbnN0YW50LkVRVUFMUywgVXRpbHNLZXlDb2RlQ29uc3RhbnQuRUlHSFRdLmluY2x1ZGVzKGtleUNvZGUpICYmIHNoaWZ0S2V5KSB8fCAoW1V0aWxzS2V5Q29kZUNvbnN0YW50LkRBU0gsIFV0aWxzS2V5Q29kZUNvbnN0YW50LlNMQVNIXS5pbmNsdWRlcyhrZXlDb2RlKSAmJiAhc2hpZnRLZXkpKSAmJiB2YWx1ZS5sZW5ndGggPT09IDEpIHtcbiAgICAgIChldmVudCBhcyBJRXZlbnQpLnRhcmdldC52YWx1ZSA9ICcnO1xuXG4gICAgICByZXR1cm4gdGhpcy51cGRhdGVFeHByZXNzaW9ucyh7IHR5cGU6ICdvcGVyYXRpb24nLCBkYXRhOiB2YWx1ZSB9LCB0aGlzLmluZGV4Rm9jdXMoKSB8fCB0aGlzLmxpc3RFeHByZXNzaW9ucygpLmxlbmd0aCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJFdmVudEtleUlucHV0KGV2ZW50OiBFdmVudCkge1xuICAgIGNvbnN0IGtleUNvZGUgPSAoZXZlbnQgYXMgSUV2ZW50KS5rZXlDb2RlO1xuICAgIGNvbnN0IHZhbHVlID0gKGV2ZW50IGFzIElFdmVudCkudGFyZ2V0LnZhbHVlO1xuXG4gICAgaWYgKGtleUNvZGUgPT09IFV0aWxzS2V5Q29kZUNvbnN0YW50LkJBQ0tTUEFDRSkge1xuICAgICAgaWYgKCF2YWx1ZSAmJiB0aGlzLmxpc3RFeHByZXNzaW9ucygpLmxlbmd0aCAmJiAodGhpcy5pbmRleEZvY3VzKCkgfHwgMCkgPiAwKSB7XG4gICAgICAgIHJldHVybiB0aGlzLnVwZGF0ZUV4cHJlc3Npb25zKHVuZGVmaW5lZCwgKHRoaXMuaW5kZXhGb2N1cygpIHx8IDApIC0gMSk7XG4gICAgICB9XG4gICAgfVxuICAgIGlmIChrZXlDb2RlID09PSBVdGlsc0tleUNvZGVDb25zdGFudC5ERUxFVEUpIHtcbiAgICAgIGlmICghdmFsdWUgJiYgdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGggJiYgKHRoaXMuaW5kZXhGb2N1cygpIHx8IDApIDwgdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlRXhwcmVzc2lvbnModW5kZWZpbmVkLCAodGhpcy5pbmRleEZvY3VzKCkgfHwgMCksIHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAoa2V5Q29kZSA9PT0gVXRpbHNLZXlDb2RlQ29uc3RhbnQuRU5URVIpIHtcbiAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAoZXZlbnQgYXMgSUV2ZW50KS50YXJnZXQudmFsdWUgPSAnJztcblxuICAgICAgICByZXR1cm4gdGhpcy51cGRhdGVFeHByZXNzaW9ucyh7IHR5cGU6ICd2YWx1ZScsIGRhdGE6IHZhbHVlIH0sIHRoaXMuaW5kZXhGb2N1cygpIHx8IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckZvY3VzQW5kQmx1cklucHV0KGluZGV4OiBudW1iZXIgfCB1bmRlZmluZWQpIHtcbiAgICBpZiAodHlwZW9mIGluZGV4ICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgdGhpcy5pbmRleEZvY3VzLnNldChpbmRleCk7XG4gICAgICB0aGlzLmlzRm9jdXMuc2V0KHRydWUpO1xuICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZU91dCgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnRpbWVPdXQuc2V0KHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5pc0ZvY3VzLnNldChmYWxzZSk7XG4gICAgfSwgMjUwKSlcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQ2xpY2tJbnB1dChldmVudDogRXZlbnQpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBpZiAoIXRoaXMuaXNGb2N1cygpKSB7XG4gICAgICB0aGlzLmlucHV0UmVmKClbdGhpcy5pbnB1dFJlZigpLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlclNhdmUoZXZlbnQ6IEV2ZW50KSB7XG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgdGhpcy5pc0NoYW5nZUV4cHJlc3Npb24uc2V0KGZhbHNlKTtcbiAgICB0aGlzLm91dENoYW5nZUV4cHJlc3Npb25zLmVtaXQoY2xvbmVEZWVwKHRoaXMubGlzdEV4cHJlc3Npb25zKCkpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyU2VsZWN0ZWRGaWVsZChldmVudDogSUxpc3REYXRhRW1pdE11bHRpS2V5IHwgdW5kZWZpbmVkLCBpbmRleDogbnVtYmVyKSB7XG4gICAgaWYgKCFldmVudD8ua2V5cy5sZW5ndGgpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKGluZGV4ID49IDApIHtcbiAgICAgIHRoaXMubGlzdEV4cHJlc3Npb25zLnVwZGF0ZSh2YWx1ZSA9PiB7XG4gICAgICAgIHZhbHVlLmZvckVhY2goKGl0ZW0sIGkpID0+IHtcbiAgICAgICAgICBpZiAoaSA9PT0gaW5kZXgpIHtcbiAgICAgICAgICAgIGlmIChpdGVtLmRhdGEgIT09IGV2ZW50LmtleXNbMF0pIHtcbiAgICAgICAgICAgICAgdGhpcy50b29sdGlwRnVuY3Rpb25Db250cm9sKCkuZ2V0KGluZGV4KT8ucmVtb3ZlUG9wb3Zlck92ZXJsYXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGl0ZW0uZGF0YSA9IGV2ZW50LmtleXNbMF0gYXMgc3RyaW5nXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuXG4gICAgICAgIHJldHVybiBbLi4udmFsdWVdO1xuICAgICAgfSlcbiAgICAgIHRoaXMuaXNDaGFuZ2VFeHByZXNzaW9uLnNldCh0cnVlKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUV4cHJlc3Npb25zKHsgdHlwZTogJ2ZpZWxkJywgZGF0YTogZXZlbnQua2V5c1swXSBhcyBzdHJpbmcgfSwgdHlwZW9mIHRoaXMuaW5kZXhGb2N1cygpICE9PSAndW5kZWZpbmVkJyA/ICh0aGlzLmluZGV4Rm9jdXMoKSB8fCAwKSA6IHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKTtcbiAgICB0aGlzLnRvb2x0aXBGdW5jdGlvbkNvbnRyb2woKS5nZXQoaW5kZXgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2xCdXR0b24oZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLnRvb2x0aXBGdW5jdGlvbkNvbnRyb2wudXBkYXRlKHZhbHVlID0+IHtcbiAgICAgIHZhbHVlLnNldChpbmRleCwgZXZlbnQpO1xuXG4gICAgICByZXR1cm4gdmFsdWU7XG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdmFsaWRhdGUoKSB7XG4gICAgdGhpcy5lcnJvci5zZXQodW5kZWZpbmVkKTtcbiAgICBpZiAoIXRoaXMudmFsaWRSZXF1aXJlZCgpIHx8ICF0aGlzLnZhbGlkUmVxdWlyZWQoKT8ubWVzc2FnZSkge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5saXN0RXhwcmVzc2lvbnMoKS5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZXJyb3Iuc2V0KHsgbWVzc2FnZTogdGhpcy52YWxpZFJlcXVpcmVkKCk/Lm1lc3NhZ2UgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMubGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoID8gdHJ1ZSA6IGZhbHNlO1xuICB9XG59IiwiPGRpdiBjbGFzcz1cInctZnVsbFwiPlxuICA8ZGl2IGNsYXNzPVwicC1bOHB4XSByb3VuZGVkLVsxMnB4XSBiZy1bI2Y4ZjlmYV0ge3sgY2xhc3NJbmNsdWRlKCkgfX1cIj5cbiAgICA8ZGl2IGNsYXNzPVwibWItWzhweF0ge3sgY2xhc3NDb250YWluZXJJbnB1dCgpIH19XCI+XG4gICAgICA8ZGl2ICNjYWxjdWxhdG9ySW5wdXRcbiAgICAgICAgY2xhc3M9XCJweS1bMTBweF0gcHgtWzEycHhdIGxpYnMtdWktZm9udC1oNXIgcm91bmRlZC1bOHB4XSBiZy1bI2ZmZmZmZl0gbWluLWgtWzE2MHB4XSBoLWZ1bGwgYm9yZGVyLVsxcHhdIHt7IGVycm9yKCk/Lm1lc3NhZ2UgPyAnbGlicy11aS1ib3JkZXItZXJyb3ItZ2VuZXJhbCcgOiAoaXNGb2N1cygpID8gJ2JvcmRlci1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0xKV0nIDogJ2JvcmRlci1bI2ZmZmZmZl0nKSB9fVwiXG4gICAgICAgIChtb3VzZXVwKT1cImhhbmRsZXJDbGlja0lucHV0KCRldmVudClcIj5cbiAgICAgICAgPHVsIGNsYXNzPVwiYmVmb3JlOmNvbnRlbnQtWycnXSBiZWZvcmU6dGFibGUgYWZ0ZXI6Y29udGVudC1bJyddIGFmdGVyOnRhYmxlIGFmdGVyOmNsZWFyLWJvdGhcIj5cbiAgICAgICAgICBAZm9yIChpdGVtIG9mIGxpc3RFeHByZXNzaW9ucygpOyB0cmFjayAkaW5kZXg7IGxldCBpID0gJGluZGV4KSB7XG4gICAgICAgICAgICA8bGkgY2xhc3M9XCJmbG9hdC1sZWZ0IG1iLVs4cHhdXCI+XG4gICAgICAgICAgICAgIDxpbnB1dCAjaW5wdXRSZWZcbiAgICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgICAgY2xhc3M9XCJpbmxpbmUtYmxvY2sgaC1bMjRweF0gb3V0bGluZS1ub25lIHRleHQtY2VudGVyXCJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWwtWy04cHhdXT1cImkgPT09IDBcIlxuICAgICAgICAgICAgICAgIFtzdHlsZS53aWR0aC5weF09XCJpbnB1dFJlZi52YWx1ZSB8IExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yR2V0V2lkdGhJbnB1dFBpcGU6Y2FsY3VsYXRvcklucHV0XCJcbiAgICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVyRXZlbnRLZXlJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoa2V5dXApPVwiaGFuZGxlckV2ZW50S2V5VXBJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAoZm9jdXMpPVwiaGFuZGxlckZvY3VzQW5kQmx1cklucHV0KGkpXCJcbiAgICAgICAgICAgICAgICAoYmx1cik9XCJoYW5kbGVyRm9jdXNBbmRCbHVySW5wdXQodW5kZWZpbmVkKVwiIC8+XG4gICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgQHN3aXRjaCAoaXRlbS50eXBlKSB7XG4gICAgICAgICAgICAgIEBjYXNlICgnb3BlcmF0aW9uJykge1xuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdC1sZWZ0IG1iLVs4cHhdIHRleHQtY2VudGVyIHctWzI0cHhdIGgtWzI0cHhdIHJvdW5kZWQtWzRweF0gcC1bNHB4XSBiZy1bdmFyKC0tbGlicy11aS1jb2xvci1saWdodC0yKV1cIj5cbiAgICAgICAgICAgICAgICAgIEBzd2l0Y2ggKGl0ZW0uZGF0YSkge1xuICAgICAgICAgICAgICAgICAgICBAY2FzZSAoJy8nKSB7XG4gICAgICAgICAgICAgICAgICAgICAgPGkgY2xhc3M9XCJsaWJzLXVpLWljb24tZGl2aWRlIHRleHQtWzE2cHhdIGJlZm9yZTohdGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCctJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLW1pbnVzIHRleHQtWzE2cHhdIGJlZm9yZTohdGV4dC1bdmFyKC0tbGlicy11aS1jb2xvci1kZWZhdWx0KV1cIj48L2k+XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgQGNhc2UgKCcrJykge1xuICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwibGlicy11aS1pY29uLWFkZCB0ZXh0LVsxNnB4XSBiZWZvcmU6IXRleHQtW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIEBjYXNlICgnKicpIHtcbiAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImxpYnMtdWktaWNvbi1jbG9zZSB0ZXh0LVsxNnB4XSBiZWZvcmU6IXRleHQtW3ZhcigtLWxpYnMtdWktY29sb3ItZGVmYXVsdCldXCI+PC9pPlxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgPC9saT5cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBAY2FzZSAoJ3ZhbHVlJykge1xuICAgICAgICAgICAgICAgIDxsaVxuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJmbG9hdC1sZWZ0IG1iLVs4cHhdIHRleHQtY2VudGVyIHJvdW5kZWQtWzRweF0gaC1bMjRweF0gcHgtWzhweF0gYmctWyNFNkU3RUFdIGZsZXggaXRlbXMtY2VudGVyIG1heC13LVtjYWxjKDEwMCUtOHB4KV1cIj5cbiAgICAgICAgICAgICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtcG9wb3ZlciBbdHlwZV09XCIndGV4dCdcIj57eyBpdGVtLmRhdGEgfX08L2xpYnNfdWktY29tcG9uZW50cy1wb3BvdmVyPlxuICAgICAgICAgICAgICAgIDwvbGk+XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgQGNhc2UgKCdmaWVsZCcpIHtcbiAgICAgICAgICAgICAgICBAaWYgKCB7ZmllbGRTZWxlY3RlZDogaXRlbS5kYXRhIHwgTGlic1VpQ29tcG9uZW50c0lucHV0c0NhbGN1bGF0b3JHZXRGaWVsZFNlbGVjdGVkUGlwZTpjb25maWdGaWVsZCgpPy5nZXRGaWVsZFNlbGVjdGVkfTsgYXMgZGF0YSkge1xuICAgICAgICAgICAgICAgICAgPGxpIGNsYXNzPVwiZmxvYXQtbGVmdCBtYi1bOHB4XVwiPlxuICAgICAgICAgICAgICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIGNsYXNzPVwibWF4LXctWzE3MnB4XSBibG9ja1wiXG4gICAgICAgICAgICAgICAgICAgICAgW2xhYmVsXT1cImRhdGEuZmllbGRTZWxlY3RlZD8ubmFtZSB8fCAnaTE4bl9maWVsZF9lcnJvcidcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyFqdXN0aWZ5LWNlbnRlciAhcHktWzJweF0gIXB4LVs3cHhdICF3LWZ1bGwnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCJkYXRhLmZpZWxkU2VsZWN0ZWQ/Lmljb24gfHwgJ2xpYnMtdWktaWNvbi10b29sdGlwLW91dGxpbmUnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbY2xhc3NJY29uUmlnaHRdPVwiJ2xpYnMtdWktaWNvbi1tb3ZlLXJpZ2h0IHJvdGF0ZS05MCdcIlxuICAgICAgICAgICAgICAgICAgICAgIFtjbGFzc0xhYmVsXT1cIidsaWJzLXVpLWZvbnQtaDVyJ1wiXG4gICAgICAgICAgICAgICAgICAgICAgW3pJbmRleF09XCIgekluZGV4KClcIlxuICAgICAgICAgICAgICAgICAgICAgIFt0eXBlXT1cImRhdGEuZmllbGRTZWxlY3RlZD8gJ2J1dHRvbi1wcmltYXJ5JyA6ICdidXR0b24tZGFuZ2VyLWhpZ2gnXCJcbiAgICAgICAgICAgICAgICAgICAgICBbcG9wb3Zlcl09XCJ7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlOiAnY2xpY2stdG9nZ2xlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgIGlnbm9yZUhpZGRlblBvcG92ZXJDb250ZW50V2hlbk1vdXNlTGVhdmU6IHRydWUsXG4gICAgICAgICAgICAgICAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgekluZGV4OiB6SW5kZXgoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYW5pbWF0aW9uQ29uZmlnOiB7fSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgd2lkdGhCeVBhcmVudDpmYWxzZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcGFyZW50Qm9yZGVyV2lkdGg6IDAsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1heEhlaWdodDoyMDQ4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICBtYXhXaWR0aDogMjA0OCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZGlyZWN0aW9uRGlzdGFuY2U6MixcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdGVtcGxhdGU6IGxpc3RWaWV3UmVmLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBpdGVtQ29udGV4dDoge2luZGV4OiBpLCBrZXk6IGl0ZW0uZGF0YX0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHdoaXRlVGhlbWU6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWdub3JlQXJyb3c6dHJ1ZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3NJbmNsdWRlOichcm91bmRlZC1bNHB4XSAhdy1bMjcycHhdJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgcG9zaXRpb246eyBtb2RlOidzdGFydCcsZGlzdGFuY2U6MCB9LFxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2xCdXR0b24oJGV2ZW50LCBpKVwiIC8+XG4gICAgICAgICAgICAgICAgICA8L2xpPlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgICA8bGkgY2xhc3M9XCJmbG9hdC1sZWZ0IG1iLVs4cHhdIG1heC13LVsxMDAlXVwiPlxuICAgICAgICAgICAgPGlucHV0ICNpbnB1dFJlZlxuICAgICAgICAgICAgICB0eXBlPVwidGV4dFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwiaW5saW5lLWJsb2NrIGgtWzI0cHhdIG91dGxpbmUtbm9uZSBtYXgtdy1bMTAwJV0ge3sgbGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoID8gJ3RleHQtY2VudGVyJyA6ICcnIH19XCJcbiAgICAgICAgICAgICAgW3N0eWxlLndpZHRoLnB4XT1cImxpc3RFeHByZXNzaW9ucygpLmxlbmd0aCA/IChpbnB1dFJlZi52YWx1ZSB8IExpYnNVaUNvbXBvbmVudHNJbnB1dHNDYWxjdWxhdG9yR2V0V2lkdGhJbnB1dFBpcGU6Y2FsY3VsYXRvcklucHV0KSA6IDE1MFwiXG4gICAgICAgICAgICAgIFtwbGFjZWhvbGRlcl09XCIhbGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoID8gKHBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGUpIDogJydcIlxuICAgICAgICAgICAgICAoa2V5ZG93bik9XCJoYW5kbGVyRXZlbnRLZXlJbnB1dCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgKGtleXVwKT1cImhhbmRsZXJFdmVudEtleVVwSW5wdXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAgIChmb2N1cyk9XCJoYW5kbGVyRm9jdXNBbmRCbHVySW5wdXQobGlzdEV4cHJlc3Npb25zKCkubGVuZ3RoKVwiXG4gICAgICAgICAgICAgIChibHVyKT1cImhhbmRsZXJGb2N1c0FuZEJsdXJJbnB1dCh1bmRlZmluZWQpXCIgLz5cbiAgICAgICAgICA8L2xpPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9kaXY+XG4gICAgICBAaWYgKGVycm9yKCk/Lm1lc3NhZ2UpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImxpYnMtdWktdGV4dC1lcnJvciBtdC1bOHB4XSBsaWJzLXVpLWZvbnQtaDdyXCI+e3sgKGVycm9yKCk/Lm1lc3NhZ2UgfHwgJycpIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJncmlkIGdyaWQtY29scy00IGdhcC1bOHB4XSB7eyBjbGFzc0NvbnRhaW5lckJ1dHRvbigpIH19XCI+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVsxLzRdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cImNvbmZpZ0ZpZWxkKCk/LmxhYmVsIHx8ICdpMThuX3NlbGVjdF9maWVsZCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW3BvcG92ZXJdPVwie1xuICAgICAgICAgICAgbW9kZTogJ2NsaWNrLXRvZ2dsZScsXG4gICAgICAgICAgICBpZ25vcmVIaWRkZW5Qb3BvdmVyQ29udGVudFdoZW5Nb3VzZUxlYXZlOiB0cnVlLFxuICAgICAgICAgICAgY29uZmlnOiB7XG4gICAgICAgICAgICAgIHpJbmRleDogekluZGV4KCksXG4gICAgICAgICAgICAgIGFuaW1hdGlvbkNvbmZpZzoge30sXG4gICAgICAgICAgICAgIHdpZHRoQnlQYXJlbnQ6dHJ1ZSxcbiAgICAgICAgICAgICAgcGFyZW50Qm9yZGVyV2lkdGg6IDAsXG4gICAgICAgICAgICAgIG1heEhlaWdodDoyMDQ4LFxuICAgICAgICAgICAgICBtYXhXaWR0aDogMjA0OCxcbiAgICAgICAgICAgICAgZGlyZWN0aW9uOiAnYm90dG9tJyxcbiAgICAgICAgICAgICAgZGlyZWN0aW9uRGlzdGFuY2U6MixcbiAgICAgICAgICAgICAgdGVtcGxhdGU6IGxpc3RWaWV3UmVmLFxuICAgICAgICAgICAgICBpdGVtQ29udGV4dDoge2luZGV4OiAtMX0sXG4gICAgICAgICAgICAgIHdoaXRlVGhlbWU6dHJ1ZSxcbiAgICAgICAgICAgICAgaWdub3JlQXJyb3c6dHJ1ZSxcbiAgICAgICAgICAgICAgY2xhc3NJbmNsdWRlOichcm91bmRlZC1bNHB4XSAhdy1bMjcycHhdJyxcbiAgICAgICAgICAgICAgcG9zaXRpb246eyBtb2RlOidzdGFydCcsZGlzdGFuY2U6MCB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cIlxuICAgICAgICAgIChvdXRGdW5jdGlvbnNDb250cm9sKT1cImhhbmRsZXJGdW5jdGlvbkNvbnRyb2xCdXR0b24oJGV2ZW50LCAtMSlcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVs0LzRdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi12aW9sZXQnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtsYWJlbF09XCInRngnXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMV1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLWRhbmdlci1oaWdoJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJ0MnXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJ2MnKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzJdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIicoJ1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICcoJylcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVszXVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtsYWJlbF09XCInKSdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnKScpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bNF1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXNlY29uZGFyeSdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2NsYXNzSWNvbkxlZnRdPVwiJ2xpYnMtdWktaWNvbi1kaXZpZGUnXCJcbiAgICAgICAgICBbaWNvbk9ubHlUeXBlXT1cInRydWVcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnLycpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMV1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJzEnXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzEnKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzJdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIicyJ1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICcyJylcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVszXVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtsYWJlbF09XCInMydcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnMycpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bNF1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXNlY29uZGFyeSdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2ljb25Pbmx5VHlwZV09XCJ0cnVlXCJcbiAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWNsb3NlJ1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICcqJylcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVsxXVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtsYWJlbF09XCInNCdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnNCcpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bMl1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJzUnXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzUnKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzNdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIic2J1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICc2JylcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVs0XVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tc2Vjb25kYXJ5J1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLW1pbnVzJ1wiXG4gICAgICAgICAgW2ljb25Pbmx5VHlwZV09XCJ0cnVlXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJy0nKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzFdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi10aGlyZCdcIlxuICAgICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJyF3LWZ1bGwgIWp1c3RpZnktY2VudGVyJ1wiXG4gICAgICAgICAgW2xhYmVsXT1cIic3J1wiXG4gICAgICAgICAgKG91dENsaWNrKT1cImhhbmRsZXJDbGljaygkZXZlbnQsICc3JylcIiAvPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY29sLVsyXVwiPlxuICAgICAgICA8bGlic191aS1jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uIFt0eXBlXT1cIididXR0b24tdGhpcmQnXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtsYWJlbF09XCInOCdcIlxuICAgICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQ2xpY2soJGV2ZW50LCAnOCcpXCIgLz5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImNvbC1bM11cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJzknXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzknKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzRdXCI+XG4gICAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW3R5cGVdPVwiJ2J1dHRvbi1zZWNvbmRhcnknXCJcbiAgICAgICAgICBbY2xhc3NJbmNsdWRlXT1cIichdy1mdWxsICFqdXN0aWZ5LWNlbnRlcidcIlxuICAgICAgICAgIFtpY29uT25seVR5cGVdPVwidHJ1ZVwiXG4gICAgICAgICAgW2NsYXNzSWNvbkxlZnRdPVwiJ2xpYnMtdWktaWNvbi1hZGQnXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJysnKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzEvNF1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbbGFiZWxdPVwiJzAnXCJcbiAgICAgICAgICBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJzAnKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjb2wtWzQvNF1cIj5cbiAgICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInIXctZnVsbCAhanVzdGlmeS1jZW50ZXInXCJcbiAgICAgICAgICBbbGFiZWxdPVwiJy4nXCJcbiAgICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckNsaWNrKCRldmVudCwgJy4nKVwiIC8+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIEBpZiAoIWlnbm9yZUJ1dHRvblNhdmUoKSkge1xuICAgIDxkaXYgY2xhc3M9XCJtdC1bMTZweF1cIj5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cImxhYmVsQnV0dG9uU2F2ZSgpXCJcbiAgICAgICAgW2Rpc2FibGVdPVwiIWlzQ2hhbmdlRXhwcmVzc2lvbigpXCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCInanVzdGlmeS1jZW50ZXIgdy1mdWxsJ1wiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyU2F2ZSgkZXZlbnQpXCIgLz5cbiAgICA8L2Rpdj5cbiAgfVxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbGlzdFZpZXdSZWZcbiAgbGV0LWRhdGE9J2l0ZW1Db250ZXh0Jz5cbiAgPGxpYnNfdWktY29tcG9uZW50cy1saXN0IFt6SW5kZXhdPVwiekluZGV4KClcIlxuICAgIFtjb25maWddPVwiY29uZmlnRmllbGQoKT8ubGlzdENvbmZpZ1wiXG4gICAgW21heEl0ZW1TaG93XT1cIjZcIlxuICAgIFtjbGlja0V4YWN0bHldPVwiZmFsc2VcIlxuICAgIFtzZWFyY2hDb25maWddPVwie25vQm9yZGVyOiB0cnVlLCBwbGFjZWhvbGRlcjogY29uZmlnRmllbGQoKT8ucGxhY2Vob2xkZXJJbnB1dExpc3QgfHwgJ2kxOG5fc2VhcmNoJ31cIlxuICAgIFttdWx0aUtleVNlbGVjdGVkXT1cImRhdGEua2V5ID8gW2RhdGEua2V5XSA6IFtdXCJcbiAgICAob3V0U2VsZWN0TXVsdGlLZXkpPVwiaGFuZGxlclNlbGVjdGVkRmllbGQoJGV2ZW50LCBkYXRhLmluZGV4KVwiPlxuICA8L2xpYnNfdWktY29tcG9uZW50cy1saXN0PlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
@@ -219,7 +219,7 @@ class LibsUiComponentsInputsCalculatorComponent {
|
|
|
219
219
|
return this.listExpressions().length ? true : false;
|
|
220
220
|
}
|
|
221
221
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsCalculatorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
222
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsCalculatorComponent, isStandalone: true, selector: "libs_ui-components-inputs-calculator", inputs: { expressions: { classPropertyName: "expressions", publicName: "expressions", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelButtonSave: { classPropertyName: "labelButtonSave", publicName: "labelButtonSave", isSignal: true, isRequired: false, transformFunction: null }, configField: { classPropertyName: "configField", publicName: "configField", isSignal: true, isRequired: false, transformFunction: null }, ignoreButtonSave: { classPropertyName: "ignoreButtonSave", publicName: "ignoreButtonSave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerButton: { classPropertyName: "classContainerButton", publicName: "classContainerButton", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outChangeExpressions: "outChangeExpressions", outFunctionControl: "outFunctionControl" }, viewQueries: [{ propertyName: "inputRef", predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef type=\"text\" class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\" (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i\n class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i\n class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i\n class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i\n class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover\n [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\" [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\" [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\" [label]=\"'C'\" (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\" (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\" (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\" (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\" (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\" (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\" (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\" (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\" (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\" (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\" (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\" (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\" (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\" (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\" [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\" (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\" (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\" [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\" (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\" [config]=\"configField()?.listConfig\" [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\" (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsListComponent, selector: "libs_ui-components-list", inputs: ["hiddenInputSearch", "dropdownTabKeyActive", "keySearch", "paddingLeftItem", "config", "autoSelectedFirstItemCallOutsideBefore", "isSearchOnline", "disable", "disableLabel", "labelConfig", "searchConfig", "searchPadding", "dividerClassInclude", "hasDivider", "buttonsOther", "hasButtonUnSelectOption", "clickExactly", "backgroundListCustom", "maxItemShow", "keySelected", "multiKeySelected", "keysDisableItem", "keysHiddenItem", "focusInputSearch", "skipFocusInputWhenKeySearchStoreUndefined", "functionGetItemsAutoAddList", "validRequired", "showValidateBottom", "zIndex", "loadingIconSize", "templateRefSearchNoData", "resetKeyWhenSelectAllKeyDropdown", "ignoreClassDisableDefaultWhenUseKeysDisableItem"], outputs: ["outSelectKey", "outSelectMultiKey", "outUnSelectMultiKey", "outClickButtonOther", "outFieldKey", "outChangeView", "outKeySearch", "outLoading", "outFunctionsControl", "outChangStageFlagMousePopover", "outLoadItemsComplete"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetFieldSelectedPipe, name: "LibsUiComponentsInputsCalculatorGetFieldSelectedPipe" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetWidthInputPipe, name: "LibsUiComponentsInputsCalculatorGetWidthInputPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
222
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsCalculatorComponent, isStandalone: true, selector: "libs_ui-components-inputs-calculator", inputs: { expressions: { classPropertyName: "expressions", publicName: "expressions", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, labelButtonSave: { classPropertyName: "labelButtonSave", publicName: "labelButtonSave", isSignal: true, isRequired: false, transformFunction: null }, configField: { classPropertyName: "configField", publicName: "configField", isSignal: true, isRequired: false, transformFunction: null }, ignoreButtonSave: { classPropertyName: "ignoreButtonSave", publicName: "ignoreButtonSave", isSignal: true, isRequired: false, transformFunction: null }, classInclude: { classPropertyName: "classInclude", publicName: "classInclude", isSignal: true, isRequired: false, transformFunction: null }, classContainerInput: { classPropertyName: "classContainerInput", publicName: "classContainerInput", isSignal: true, isRequired: false, transformFunction: null }, classContainerButton: { classPropertyName: "classContainerButton", publicName: "classContainerButton", isSignal: true, isRequired: false, transformFunction: null }, validRequired: { classPropertyName: "validRequired", publicName: "validRequired", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { outChangeExpressions: "outChangeExpressions", outFunctionControl: "outFunctionControl" }, viewQueries: [{ propertyName: "inputRef", predicate: ["inputRef"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'C'\"\n (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\"\n (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\"\n (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\"\n (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\"\n (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\"\n (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\"\n (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\"\n (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\"\n (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\"\n (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\"\n (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\"\n (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\"\n (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\"\n [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\"\n (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\"\n [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\"\n (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef\n let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\"\n [config]=\"configField()?.listConfig\"\n [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\"\n (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "component", type: LibsUiComponentsButtonsButtonComponent, selector: "libs_ui-components-buttons-button", inputs: ["flagMouse", "type", "buttonCustom", "sizeButton", "label", "disable", "isPending", "imageLeft", "classInclude", "classIconLeft", "classIconRight", "classLabel", "iconOnlyType", "popover", "ignoreStopPropagationEvent", "zIndex", "widthLabelPopover", "styleIconLeft", "styleButton", "ignoreFocusWhenInputTab", "ignoreSetClickWhenShowPopover", "ignorePointerEvent", "isActive", "isHandlerEnterDocumentClickButton"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsListComponent, selector: "libs_ui-components-list", inputs: ["hiddenInputSearch", "dropdownTabKeyActive", "keySearch", "paddingLeftItem", "config", "autoSelectedFirstItemCallOutsideBefore", "isSearchOnline", "disable", "disableLabel", "labelConfig", "searchConfig", "searchPadding", "dividerClassInclude", "hasDivider", "buttonsOther", "hasButtonUnSelectOption", "clickExactly", "backgroundListCustom", "maxItemShow", "keySelected", "multiKeySelected", "keysDisableItem", "keysHiddenItem", "focusInputSearch", "skipFocusInputWhenKeySearchStoreUndefined", "functionGetItemsAutoAddList", "validRequired", "showValidateBottom", "zIndex", "loadingIconSize", "templateRefSearchNoData", "resetKeyWhenSelectAllKeyDropdown", "ignoreClassDisableDefaultWhenUseKeysDisableItem"], outputs: ["outSelectKey", "outSelectMultiKey", "outUnSelectMultiKey", "outClickButtonOther", "outFieldKey", "outChangeView", "outKeySearch", "outLoading", "outFunctionsControl", "outChangStageFlagMousePopover", "outLoadItemsComplete"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetFieldSelectedPipe, name: "LibsUiComponentsInputsCalculatorGetFieldSelectedPipe" }, { kind: "component", type: LibsUiComponentsPopoverComponent, selector: "libs_ui-components-popover,[LibsUiComponentsPopoverDirective]", inputs: ["debugId", "flagMouse", "type", "mode", "config", "ignoreShowPopover", "elementRefCustom", "initEventInElementRefCustom", "classInclude", "ignoreHiddenPopoverContentWhenMouseLeave", "ignoreStopPropagationEvent", "ignoreCursorPointerModeLikeClick", "isAddContentToParentDocument", "ignoreClickOutside"], outputs: ["outEvent", "outChangStageFlagMouse", "outEventPopoverContent", "outFunctionsControl"] }, { kind: "pipe", type: LibsUiComponentsInputsCalculatorGetWidthInputPipe, name: "LibsUiComponentsInputsCalculatorGetWidthInputPipe" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
223
223
|
}
|
|
224
224
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsCalculatorComponent, decorators: [{
|
|
225
225
|
type: Component,
|
|
@@ -230,7 +230,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
230
230
|
LibsUiComponentsInputsCalculatorGetFieldSelectedPipe,
|
|
231
231
|
LibsUiComponentsPopoverComponent,
|
|
232
232
|
LibsUiComponentsInputsCalculatorGetWidthInputPipe
|
|
233
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef type=\"text\" class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\" (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i\n class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i\n class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i\n class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i\n class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover\n [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\" [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\" [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\" [label]=\"'C'\" (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\" (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\" (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\" (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\" (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\" (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\" (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\" (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\" (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\" (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\" (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\" (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\" (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\" (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\" [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\" (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\" (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\" [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\" (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\" [config]=\"configField()?.listConfig\" [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\" (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n" }]
|
|
233
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'C'\"\n (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\"\n (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\"\n (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\"\n (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\"\n (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\"\n (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\"\n (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\"\n (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\"\n (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\"\n (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\"\n (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\"\n (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\"\n (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\"\n [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\"\n (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\"\n [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\"\n (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef\n let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\"\n [config]=\"configField()?.listConfig\"\n [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\"\n (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\n" }]
|
|
234
234
|
}] });
|
|
235
235
|
|
|
236
236
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"libs-ui-components-inputs-calculator.mjs","sources":["../../../../../../libs-ui/components/inputs/calculator/src/pipes/get-field-selected.pipe.ts","../../../../../../libs-ui/components/inputs/calculator/src/pipes/get-width-input.pipe.ts","../../../../../../libs-ui/components/inputs/calculator/src/calculator.component.ts","../../../../../../libs-ui/components/inputs/calculator/src/calculator.component.html","../../../../../../libs-ui/components/inputs/calculator/src/libs-ui-components-inputs-calculator.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { IInputCalculatorField } from '../interfaces';\n\n@Pipe({\n name: 'LibsUiComponentsInputsCalculatorGetFieldSelectedPipe',\n standalone: true\n})\n\nexport class LibsUiComponentsInputsCalculatorGetFieldSelectedPipe implements PipeTransform {\n\n transform(fieldId: string | number, getFieldSelected?: (key: string) => IInputCalculatorField | undefined): IInputCalculatorField | undefined {\n\n\n return getFieldSelected?.(typeof fieldId === 'number' ? fieldId.toString() : fieldId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsInputsCalculatorGetWidthInputPipe',\n standalone: true\n})\n\nexport class LibsUiComponentsInputsCalculatorGetWidthInputPipe implements PipeTransform {\n\n transform(text: string, element: HTMLDivElement): number {\n if (!text) {\n return 8;\n }\n const div = document.createElement('span');\n\n div.textContent = text;\n element.appendChild(div);\n const width = div.offsetWidth + 8;\n\n div.remove();\n\n return width;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, OnInit, output, signal, viewChildren } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IListDataEmitMultiKey, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { IInputCalculatorConfigField, IInputCalculatorExpression, IInputCalculatorFunctionControlEvent, IInputCalculatorValid } from \"./interfaces\";\nimport { IEvent } from \"@libs-ui/interfaces-types\";\nimport { cloneDeep, UtilsKeyCodeConstant } from \"@libs-ui/utils\";\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent } from \"@libs-ui/components-popover\";\nimport { LibsUiComponentsInputsCalculatorGetFieldSelectedPipe } from \"./pipes/get-field-selected.pipe\";\nimport { LibsUiComponentsInputsCalculatorGetWidthInputPipe } from \"./pipes/get-width-input.pipe\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-calculator',\n templateUrl: './calculator.component.html',\n standalone: true,\n imports: [\n TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsListComponent,\n LibsUiComponentsInputsCalculatorGetFieldSelectedPipe,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsInputsCalculatorGetWidthInputPipe\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsCalculatorComponent implements OnInit {\n protected indexFocus = signal<number | undefined>(undefined);\n protected isFocus = signal<boolean>(false);\n protected listExpressions = signal<Array<IInputCalculatorExpression>>([]);\n protected isChangeExpression = signal<boolean>(false);\n protected error = signal<IInputCalculatorValid | undefined>(undefined);\n\n private inputRef = viewChildren<ElementRef>('inputRef');\n private timeOut = signal<number | undefined>(undefined);\n private tooltipFunctionControl = signal<Map<number, IPopoverFunctionControlEvent>>(new Map());\n\n readonly expressions = input<Array<IInputCalculatorExpression>>([]);\n readonly zIndex = input<number>(10);\n readonly placeholder = input<string>('i18n_enter_params');\n readonly labelButtonSave = input<string>('i18n_save_calculation');\n readonly configField = input<IInputCalculatorConfigField>();\n readonly ignoreButtonSave = input<boolean>(false);\n readonly classInclude = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly classContainerInput = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly classContainerButton = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly validRequired = input<IInputCalculatorValid>()\n\n readonly outChangeExpressions = output<Array<IInputCalculatorExpression>>();\n readonly outFunctionControl = output<IInputCalculatorFunctionControlEvent>();\n\n ngOnInit() {\n this.listExpressions.set(cloneDeep(this.expressions()));\n this.outFunctionControl.emit({\n checkIsValid: this.validate.bind(this),\n getData: () => {\n return cloneDeep(this.listExpressions());\n }\n })\n }\n\n protected handlerClick(event: Event, button: '+' | '-' | '*' | '/' | 'c' | '.' | '(' | ')' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') {\n event.stopPropagation();\n const expression: IInputCalculatorExpression = { type: 'field', data: button };\n\n if (button === 'c') {\n if (!this.listExpressions().length || this.indexFocus() === 0) {\n return;\n }\n return this.updateExpressions(undefined, typeof this.indexFocus() !== 'undefined' ? ((this.indexFocus() || 1) - 1) : (this.listExpressions().length - 1));\n }\n switch (button) {\n case '+':\n case '-':\n case '*':\n case '/':\n expression.type = 'operation';\n break;\n default:\n expression.type = 'value';\n }\n this.updateExpressions(expression, typeof this.indexFocus() !== 'undefined' ? (this.indexFocus() || 0) : this.listExpressions().length);\n }\n\n private updateExpressions(item: IInputCalculatorExpression | undefined, position: number, isDelete?: boolean) {\n this.isChangeExpression.set(true);\n this.listExpressions.update((value) => {\n if (item) {\n value.splice(position || 0, 0, item);\n }\n if (!item) {\n value.splice(position || 0, 1);\n }\n\n return [...value];\n })\n\n this.indexFocus.update(value => {\n if (!item) {\n if (value) {\n value = isDelete ? value : value - 1;\n }\n\n return value ? value : position;\n }\n if (typeof value === 'undefined') {\n value = this.listExpressions().length;\n\n return value;\n }\n value++;\n\n return value;\n })\n const indexFocus = this.indexFocus();\n\n setTimeout(() => {\n if (typeof indexFocus !== 'undefined') {\n this.inputRef()[indexFocus]?.nativeElement.focus();\n }\n }, 100)\n this.validate();\n }\n\n protected handlerEventKeyUpInput(event: Event) {\n const keyCode = (event as IEvent).keyCode;\n const value = (event as IEvent).target.value;\n const shiftKey = (event as IEvent).shiftKey;\n\n if ((([UtilsKeyCodeConstant.EQUALS, UtilsKeyCodeConstant.EIGHT].includes(keyCode) && shiftKey) || ([UtilsKeyCodeConstant.DASH, UtilsKeyCodeConstant.SLASH].includes(keyCode) && !shiftKey)) && value.length === 1) {\n (event as IEvent).target.value = '';\n\n return this.updateExpressions({ type: 'operation', data: value }, this.indexFocus() || this.listExpressions().length);\n }\n }\n\n protected handlerEventKeyInput(event: Event) {\n const keyCode = (event as IEvent).keyCode;\n const value = (event as IEvent).target.value;\n\n if (keyCode === UtilsKeyCodeConstant.BACKSPACE) {\n if (!value && this.listExpressions().length && (this.indexFocus() || 0) > 0) {\n return this.updateExpressions(undefined, (this.indexFocus() || 0) - 1);\n }\n }\n if (keyCode === UtilsKeyCodeConstant.DELETE) {\n if (!value && this.listExpressions().length && (this.indexFocus() || 0) < this.listExpressions().length) {\n return this.updateExpressions(undefined, (this.indexFocus() || 0), true);\n }\n }\n if (keyCode === UtilsKeyCodeConstant.ENTER) {\n if (value) {\n (event as IEvent).target.value = '';\n\n return this.updateExpressions({ type: 'value', data: value }, this.indexFocus() || this.listExpressions().length);\n }\n }\n }\n\n protected handlerFocusAndBlurInput(index: number | undefined) {\n if (typeof index !== 'undefined') {\n this.indexFocus.set(index);\n this.isFocus.set(true);\n clearTimeout(this.timeOut());\n\n return;\n }\n this.timeOut.set(setTimeout(() => {\n this.isFocus.set(false);\n }, 250))\n }\n\n protected handlerClickInput(event: Event) {\n event.stopPropagation();\n if (!this.isFocus()) {\n this.inputRef()[this.inputRef().length - 1].nativeElement.focus();\n }\n }\n\n protected handlerSave(event: Event) {\n event.stopPropagation();\n this.isChangeExpression.set(false);\n this.outChangeExpressions.emit(cloneDeep(this.listExpressions()));\n }\n\n protected handlerSelectedField(event: IListDataEmitMultiKey | undefined, index: number) {\n if (!event?.keys.length) {\n return;\n }\n if (index >= 0) {\n this.listExpressions.update(value => {\n value.forEach((item, i) => {\n if (i === index) {\n if (item.data !== event.keys[0]) {\n this.tooltipFunctionControl().get(index)?.removePopoverOverlay();\n }\n item.data = event.keys[0] as string\n }\n })\n\n return [...value];\n })\n this.isChangeExpression.set(true);\n\n return;\n }\n this.updateExpressions({ type: 'field', data: event.keys[0] as string }, typeof this.indexFocus() !== 'undefined' ? (this.indexFocus() || 0) : this.listExpressions().length);\n this.tooltipFunctionControl().get(index)?.removePopoverOverlay();\n }\n\n protected handlerFunctionControlButton(event: IPopoverFunctionControlEvent, index: number) {\n this.tooltipFunctionControl.update(value => {\n value.set(index, event);\n\n return value;\n })\n }\n\n private async validate() {\n this.error.set(undefined);\n if (!this.validRequired() || !this.validRequired()?.message) {\n return true;\n }\n if (!this.listExpressions().length) {\n this.error.set({ message: this.validRequired()?.message });\n }\n\n return this.listExpressions().length ? true : false;\n }\n}","<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef type=\"text\" class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\" (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i\n class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i\n class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i\n class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i\n class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover\n [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\" [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\" (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\" [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\" (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\" [label]=\"'C'\" (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\" (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\" (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\" (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\" (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\" (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\" (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\" (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\" (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\" (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\" (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\" (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\" (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\" (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\" [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\" (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\" [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\" (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\" [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\" (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\" [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\" (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\" [config]=\"configField()?.listConfig\" [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\" (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\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-calculator.mjs","sources":["../../../../../../libs-ui/components/inputs/calculator/src/pipes/get-field-selected.pipe.ts","../../../../../../libs-ui/components/inputs/calculator/src/pipes/get-width-input.pipe.ts","../../../../../../libs-ui/components/inputs/calculator/src/calculator.component.ts","../../../../../../libs-ui/components/inputs/calculator/src/calculator.component.html","../../../../../../libs-ui/components/inputs/calculator/src/libs-ui-components-inputs-calculator.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { IInputCalculatorField } from '../interfaces';\n\n@Pipe({\n name: 'LibsUiComponentsInputsCalculatorGetFieldSelectedPipe',\n standalone: true\n})\n\nexport class LibsUiComponentsInputsCalculatorGetFieldSelectedPipe implements PipeTransform {\n\n transform(fieldId: string | number, getFieldSelected?: (key: string) => IInputCalculatorField | undefined): IInputCalculatorField | undefined {\n\n\n return getFieldSelected?.(typeof fieldId === 'number' ? fieldId.toString() : fieldId);\n }\n\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'LibsUiComponentsInputsCalculatorGetWidthInputPipe',\n standalone: true\n})\n\nexport class LibsUiComponentsInputsCalculatorGetWidthInputPipe implements PipeTransform {\n\n transform(text: string, element: HTMLDivElement): number {\n if (!text) {\n return 8;\n }\n const div = document.createElement('span');\n\n div.textContent = text;\n element.appendChild(div);\n const width = div.offsetWidth + 8;\n\n div.remove();\n\n return width;\n }\n\n}\n","import { ChangeDetectionStrategy, Component, ElementRef, input, OnInit, output, signal, viewChildren } from \"@angular/core\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { LibsUiComponentsButtonsButtonComponent } from '@libs-ui/components-buttons-button';\nimport { IListDataEmitMultiKey, LibsUiComponentsListComponent } from '@libs-ui/components-list';\nimport { IInputCalculatorConfigField, IInputCalculatorExpression, IInputCalculatorFunctionControlEvent, IInputCalculatorValid } from \"./interfaces\";\nimport { IEvent } from \"@libs-ui/interfaces-types\";\nimport { cloneDeep, UtilsKeyCodeConstant } from \"@libs-ui/utils\";\nimport { IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent } from \"@libs-ui/components-popover\";\nimport { LibsUiComponentsInputsCalculatorGetFieldSelectedPipe } from \"./pipes/get-field-selected.pipe\";\nimport { LibsUiComponentsInputsCalculatorGetWidthInputPipe } from \"./pipes/get-width-input.pipe\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-calculator',\n templateUrl: './calculator.component.html',\n standalone: true,\n imports: [\n TranslateModule,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsListComponent,\n LibsUiComponentsInputsCalculatorGetFieldSelectedPipe,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsInputsCalculatorGetWidthInputPipe\n ],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibsUiComponentsInputsCalculatorComponent implements OnInit {\n protected indexFocus = signal<number | undefined>(undefined);\n protected isFocus = signal<boolean>(false);\n protected listExpressions = signal<Array<IInputCalculatorExpression>>([]);\n protected isChangeExpression = signal<boolean>(false);\n protected error = signal<IInputCalculatorValid | undefined>(undefined);\n\n private inputRef = viewChildren<ElementRef>('inputRef');\n private timeOut = signal<number | undefined>(undefined);\n private tooltipFunctionControl = signal<Map<number, IPopoverFunctionControlEvent>>(new Map());\n\n readonly expressions = input<Array<IInputCalculatorExpression>>([]);\n readonly zIndex = input<number>(10);\n readonly placeholder = input<string>('i18n_enter_params');\n readonly labelButtonSave = input<string>('i18n_save_calculation');\n readonly configField = input<IInputCalculatorConfigField>();\n readonly ignoreButtonSave = input<boolean>(false);\n readonly classInclude = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly classContainerInput = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly classContainerButton = input<string, string | undefined>('', { transform: (value) => value || '' });\n readonly validRequired = input<IInputCalculatorValid>()\n\n readonly outChangeExpressions = output<Array<IInputCalculatorExpression>>();\n readonly outFunctionControl = output<IInputCalculatorFunctionControlEvent>();\n\n ngOnInit() {\n this.listExpressions.set(cloneDeep(this.expressions()));\n this.outFunctionControl.emit({\n checkIsValid: this.validate.bind(this),\n getData: () => {\n return cloneDeep(this.listExpressions());\n }\n })\n }\n\n protected handlerClick(event: Event, button: '+' | '-' | '*' | '/' | 'c' | '.' | '(' | ')' | '0' | '1' | '2' | '3' | '4' | '5' | '6' | '7' | '8' | '9') {\n event.stopPropagation();\n const expression: IInputCalculatorExpression = { type: 'field', data: button };\n\n if (button === 'c') {\n if (!this.listExpressions().length || this.indexFocus() === 0) {\n return;\n }\n return this.updateExpressions(undefined, typeof this.indexFocus() !== 'undefined' ? ((this.indexFocus() || 1) - 1) : (this.listExpressions().length - 1));\n }\n switch (button) {\n case '+':\n case '-':\n case '*':\n case '/':\n expression.type = 'operation';\n break;\n default:\n expression.type = 'value';\n }\n this.updateExpressions(expression, typeof this.indexFocus() !== 'undefined' ? (this.indexFocus() || 0) : this.listExpressions().length);\n }\n\n private updateExpressions(item: IInputCalculatorExpression | undefined, position: number, isDelete?: boolean) {\n this.isChangeExpression.set(true);\n this.listExpressions.update((value) => {\n if (item) {\n value.splice(position || 0, 0, item);\n }\n if (!item) {\n value.splice(position || 0, 1);\n }\n\n return [...value];\n })\n\n this.indexFocus.update(value => {\n if (!item) {\n if (value) {\n value = isDelete ? value : value - 1;\n }\n\n return value ? value : position;\n }\n if (typeof value === 'undefined') {\n value = this.listExpressions().length;\n\n return value;\n }\n value++;\n\n return value;\n })\n const indexFocus = this.indexFocus();\n\n setTimeout(() => {\n if (typeof indexFocus !== 'undefined') {\n this.inputRef()[indexFocus]?.nativeElement.focus();\n }\n }, 100)\n this.validate();\n }\n\n protected handlerEventKeyUpInput(event: Event) {\n const keyCode = (event as IEvent).keyCode;\n const value = (event as IEvent).target.value;\n const shiftKey = (event as IEvent).shiftKey;\n\n if ((([UtilsKeyCodeConstant.EQUALS, UtilsKeyCodeConstant.EIGHT].includes(keyCode) && shiftKey) || ([UtilsKeyCodeConstant.DASH, UtilsKeyCodeConstant.SLASH].includes(keyCode) && !shiftKey)) && value.length === 1) {\n (event as IEvent).target.value = '';\n\n return this.updateExpressions({ type: 'operation', data: value }, this.indexFocus() || this.listExpressions().length);\n }\n }\n\n protected handlerEventKeyInput(event: Event) {\n const keyCode = (event as IEvent).keyCode;\n const value = (event as IEvent).target.value;\n\n if (keyCode === UtilsKeyCodeConstant.BACKSPACE) {\n if (!value && this.listExpressions().length && (this.indexFocus() || 0) > 0) {\n return this.updateExpressions(undefined, (this.indexFocus() || 0) - 1);\n }\n }\n if (keyCode === UtilsKeyCodeConstant.DELETE) {\n if (!value && this.listExpressions().length && (this.indexFocus() || 0) < this.listExpressions().length) {\n return this.updateExpressions(undefined, (this.indexFocus() || 0), true);\n }\n }\n if (keyCode === UtilsKeyCodeConstant.ENTER) {\n if (value) {\n (event as IEvent).target.value = '';\n\n return this.updateExpressions({ type: 'value', data: value }, this.indexFocus() || this.listExpressions().length);\n }\n }\n }\n\n protected handlerFocusAndBlurInput(index: number | undefined) {\n if (typeof index !== 'undefined') {\n this.indexFocus.set(index);\n this.isFocus.set(true);\n clearTimeout(this.timeOut());\n\n return;\n }\n this.timeOut.set(setTimeout(() => {\n this.isFocus.set(false);\n }, 250))\n }\n\n protected handlerClickInput(event: Event) {\n event.stopPropagation();\n if (!this.isFocus()) {\n this.inputRef()[this.inputRef().length - 1].nativeElement.focus();\n }\n }\n\n protected handlerSave(event: Event) {\n event.stopPropagation();\n this.isChangeExpression.set(false);\n this.outChangeExpressions.emit(cloneDeep(this.listExpressions()));\n }\n\n protected handlerSelectedField(event: IListDataEmitMultiKey | undefined, index: number) {\n if (!event?.keys.length) {\n return;\n }\n if (index >= 0) {\n this.listExpressions.update(value => {\n value.forEach((item, i) => {\n if (i === index) {\n if (item.data !== event.keys[0]) {\n this.tooltipFunctionControl().get(index)?.removePopoverOverlay();\n }\n item.data = event.keys[0] as string\n }\n })\n\n return [...value];\n })\n this.isChangeExpression.set(true);\n\n return;\n }\n this.updateExpressions({ type: 'field', data: event.keys[0] as string }, typeof this.indexFocus() !== 'undefined' ? (this.indexFocus() || 0) : this.listExpressions().length);\n this.tooltipFunctionControl().get(index)?.removePopoverOverlay();\n }\n\n protected handlerFunctionControlButton(event: IPopoverFunctionControlEvent, index: number) {\n this.tooltipFunctionControl.update(value => {\n value.set(index, event);\n\n return value;\n })\n }\n\n private async validate() {\n this.error.set(undefined);\n if (!this.validRequired() || !this.validRequired()?.message) {\n return true;\n }\n if (!this.listExpressions().length) {\n this.error.set({ message: this.validRequired()?.message });\n }\n\n return this.listExpressions().length ? true : false;\n }\n}","<div class=\"w-full\">\n <div class=\"p-[8px] rounded-[12px] bg-[#f8f9fa] {{ classInclude() }}\">\n <div class=\"mb-[8px] {{ classContainerInput() }}\">\n <div #calculatorInput\n class=\"py-[10px] px-[12px] libs-ui-font-h5r rounded-[8px] bg-[#ffffff] min-h-[160px] h-full border-[1px] {{ error()?.message ? 'libs-ui-border-error-general' : (isFocus() ? 'border-[var(--libs-ui-color-light-1)]' : 'border-[#ffffff]') }}\"\n (mouseup)=\"handlerClickInput($event)\">\n <ul class=\"before:content-[''] before:table after:content-[''] after:table after:clear-both\">\n @for (item of listExpressions(); track $index; let i = $index) {\n <li class=\"float-left mb-[8px]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none text-center\"\n [class.ml-[-8px]]=\"i === 0\"\n [style.width.px]=\"inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(i)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n @switch (item.type) {\n @case ('operation') {\n <li\n class=\"float-left mb-[8px] text-center w-[24px] h-[24px] rounded-[4px] p-[4px] bg-[var(--libs-ui-color-light-2)]\">\n @switch (item.data) {\n @case ('/') {\n <i class=\"libs-ui-icon-divide text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('-') {\n <i class=\"libs-ui-icon-minus text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('+') {\n <i class=\"libs-ui-icon-add text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n @case ('*') {\n <i class=\"libs-ui-icon-close text-[16px] before:!text-[var(--libs-ui-color-default)]\"></i>\n }\n }\n </li>\n }\n @case ('value') {\n <li\n class=\"float-left mb-[8px] text-center rounded-[4px] h-[24px] px-[8px] bg-[#E6E7EA] flex items-center max-w-[calc(100%-8px)]\">\n <libs_ui-components-popover [type]=\"'text'\">{{ item.data }}</libs_ui-components-popover>\n </li>\n }\n @case ('field') {\n @if ( {fieldSelected: item.data | LibsUiComponentsInputsCalculatorGetFieldSelectedPipe:configField()?.getFieldSelected}; as data) {\n <li class=\"float-left mb-[8px]\">\n <libs_ui-components-buttons-button class=\"max-w-[172px] block\"\n [label]=\"data.fieldSelected?.name || 'i18n_field_error'\"\n [classInclude]=\"'!justify-center !py-[2px] !px-[7px] !w-full'\"\n [classIconLeft]=\"data.fieldSelected?.icon || 'libs-ui-icon-tooltip-outline'\"\n [classIconRight]=\"'libs-ui-icon-move-right rotate-90'\"\n [classLabel]=\"'libs-ui-font-h5r'\"\n [zIndex]=\" zIndex()\"\n [type]=\"data.fieldSelected? 'button-primary' : 'button-danger-high'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:false,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: i, key: item.data},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, i)\" />\n </li>\n }\n }\n }\n }\n <li class=\"float-left mb-[8px] max-w-[100%]\">\n <input #inputRef\n type=\"text\"\n class=\"inline-block h-[24px] outline-none max-w-[100%] {{ listExpressions().length ? 'text-center' : '' }}\"\n [style.width.px]=\"listExpressions().length ? (inputRef.value | LibsUiComponentsInputsCalculatorGetWidthInputPipe:calculatorInput) : 150\"\n [placeholder]=\"!listExpressions().length ? (placeholder() | translate) : ''\"\n (keydown)=\"handlerEventKeyInput($event)\"\n (keyup)=\"handlerEventKeyUpInput($event)\"\n (focus)=\"handlerFocusAndBlurInput(listExpressions().length)\"\n (blur)=\"handlerFocusAndBlurInput(undefined)\" />\n </li>\n </ul>\n </div>\n @if (error()?.message) {\n <div class=\"libs-ui-text-error mt-[8px] libs-ui-font-h7r\">{{ (error()?.message || '') | translate }}\n </div>\n }\n </div>\n <div class=\"grid grid-cols-4 gap-[8px] {{ classContainerButton() }}\">\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"configField()?.label || 'i18n_select_field'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n zIndex: zIndex(),\n animationConfig: {},\n widthByParent:true,\n parentBorderWidth: 0,\n maxHeight:2048,\n maxWidth: 2048,\n direction: 'bottom',\n directionDistance:2,\n template: listViewRef,\n itemContext: {index: -1},\n whiteTheme:true,\n ignoreArrow:true,\n classInclude:'!rounded-[4px] !w-[272px]',\n position:{ mode:'start',distance:0 },\n }\n }\"\n (outFunctionsControl)=\"handlerFunctionControlButton($event, -1)\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-violet'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'Fx'\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-danger-high'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'C'\"\n (outClick)=\"handlerClick($event, 'c')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'('\"\n (outClick)=\"handlerClick($event, '(')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"')'\"\n (outClick)=\"handlerClick($event, ')')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-divide'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '/')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'1'\"\n (outClick)=\"handlerClick($event, '1')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'2'\"\n (outClick)=\"handlerClick($event, '2')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'3'\"\n (outClick)=\"handlerClick($event, '3')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-close'\"\n (outClick)=\"handlerClick($event, '*')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'4'\"\n (outClick)=\"handlerClick($event, '4')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'5'\"\n (outClick)=\"handlerClick($event, '5')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'6'\"\n (outClick)=\"handlerClick($event, '6')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [classIconLeft]=\"'libs-ui-icon-minus'\"\n [iconOnlyType]=\"true\"\n (outClick)=\"handlerClick($event, '-')\" />\n </div>\n <div class=\"col-[1]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'7'\"\n (outClick)=\"handlerClick($event, '7')\" />\n </div>\n <div class=\"col-[2]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'8'\"\n (outClick)=\"handlerClick($event, '8')\" />\n </div>\n <div class=\"col-[3]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'9'\"\n (outClick)=\"handlerClick($event, '9')\" />\n </div>\n <div class=\"col-[4]\">\n <libs_ui-components-buttons-button [type]=\"'button-secondary'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [iconOnlyType]=\"true\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n (outClick)=\"handlerClick($event, '+')\" />\n </div>\n <div class=\"col-[1/4]\">\n <libs_ui-components-buttons-button [label]=\"'0'\"\n [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n (outClick)=\"handlerClick($event, '0')\" />\n </div>\n <div class=\"col-[4/4]\">\n <libs_ui-components-buttons-button [type]=\"'button-third'\"\n [classInclude]=\"'!w-full !justify-center'\"\n [label]=\"'.'\"\n (outClick)=\"handlerClick($event, '.')\" />\n </div>\n </div>\n </div>\n @if (!ignoreButtonSave()) {\n <div class=\"mt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"labelButtonSave()\"\n [disable]=\"!isChangeExpression()\"\n [classInclude]=\"'justify-center w-full'\"\n (outClick)=\"handlerSave($event)\" />\n </div>\n }\n</div>\n\n<ng-template #listViewRef\n let-data='itemContext'>\n <libs_ui-components-list [zIndex]=\"zIndex()\"\n [config]=\"configField()?.listConfig\"\n [maxItemShow]=\"6\"\n [clickExactly]=\"false\"\n [searchConfig]=\"{noBorder: true, placeholder: configField()?.placeholderInputList || 'i18n_search'}\"\n [multiKeySelected]=\"data.key ? [data.key] : []\"\n (outSelectMultiKey)=\"handlerSelectedField($event, data.index)\">\n </libs_ui-components-list>\n</ng-template>\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,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libs-ui/components-inputs-calculator",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.224",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/core": "^18.2.0",
|
|
6
6
|
"@ngx-translate/core": "^15.0.0",
|
|
7
|
-
"@libs-ui/components-buttons-button": "^0.2.
|
|
8
|
-
"@libs-ui/components-list": "^0.2.
|
|
9
|
-
"@libs-ui/interfaces-types": "^0.2.
|
|
10
|
-
"@libs-ui/utils": "^0.2.
|
|
11
|
-
"@libs-ui/components-popover": "^0.2.
|
|
7
|
+
"@libs-ui/components-buttons-button": "^0.2.224",
|
|
8
|
+
"@libs-ui/components-list": "^0.2.224",
|
|
9
|
+
"@libs-ui/interfaces-types": "^0.2.224",
|
|
10
|
+
"@libs-ui/utils": "^0.2.224",
|
|
11
|
+
"@libs-ui/components-popover": "^0.2.224"
|
|
12
12
|
},
|
|
13
13
|
"sideEffects": false,
|
|
14
14
|
"module": "fesm2022/libs-ui-components-inputs-calculator.mjs",
|