@libs-ui/components-inputs-color 0.2.186 → 0.2.188

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.
@@ -120,7 +120,7 @@ export class LibsUiComponentsInputsColorComponent {
120
120
  this.popoverAddColorFunctionControl()?.removePopoverOverlay();
121
121
  }
122
122
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsColorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
123
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsColorComponent, isStandalone: true, selector: "libs_ui-components-inputs-color", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, customOptions: { classPropertyName: "customOptions", publicName: "customOptions", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorDefault: { classPropertyName: "functionGetListColorDefault", publicName: "functionGetListColorDefault", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorCustom: { classPropertyName: "functionGetListColorCustom", publicName: "functionGetListColorCustom", isSignal: true, isRequired: false, transformFunction: null }, functionSetListColorCustom: { classPropertyName: "functionSetListColorCustom", publicName: "functionSetListColorCustom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", zIndex: "zIndexChange", outColorChange: "outColorChange" }, ngImport: i0, template: "<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { 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: "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"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsInputsValidComponent, selector: "libs_ui-components-inputs-valid", inputs: ["item", "labelConfig", "emitEmptyInDataTypeNumber", "ignoreBlockInputMaxValue", "fieldNameBind", "showCount", "typeComponentSelectItem", "valueComponentSelectItem", "disableComponentSelectItem", "tagInput", "dataType", "typeInput", "modeInput", "resetAutoCompletePassword", "textAreaEnterNotNewLine", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "ignoreWidthInput100", "classIncludeInput", "classContainerInput", "readonly", "disable", "noBorder", "backgroundNone", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "classContainerBottomInput", "autoRemoveEmoji", "defaultHeight", "maxHeightTextArea", "minHeightTextArea", "ignoreShowError", "borderError", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "zIndexPopoverContent", "unitsLeft", "configUnitLeft", "keySelectedUnitLeft", "unitsRight", "configUnitRight", "keySelectedUnitRight", "maxValueNumber", "minValueNumber", "ignoreContentLeft", "ignoreContentRight", "isBaselineStyle", "valuePatternShowError", "validPattern", "validRequired", "validMinLength", "validMinValue", "validMaxValue", "validMaxLength", "functionValid", "maxLength", "positionMessageErrorStartInput", "classInclude", "resize", "templateLeftBottomInput", "templateRightBottomInput", "onlyAcceptNegativeValue", "autoAddZeroLessThan10InTypeInt", "maxLengthNumberCount", "classMessageErrorInclude", "ignoreStopPropagationEvent", "ignoreUnitRightClassReadOnly", "paddingRightCustomSpecific", "focusTimeOut"], outputs: ["itemChange", "outValueChange", "outSelect", "outIconLeft", "outIconRight", "outClickButtonLabel", "outSwitchEventLabel", "outLabelRightClick", "outEnterInputEvent", "outHeightAreaChange", "outFunctionsControl", "outFocusAndBlur", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsColorPickerComponent, selector: "libs_ui-components-color_picker", inputs: ["customOptions"], outputs: ["outColorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
123
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsColorComponent, isStandalone: true, selector: "libs_ui-components-inputs-color", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, customOptions: { classPropertyName: "customOptions", publicName: "customOptions", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorDefault: { classPropertyName: "functionGetListColorDefault", publicName: "functionGetListColorDefault", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorCustom: { classPropertyName: "functionGetListColorCustom", publicName: "functionGetListColorCustom", isSignal: true, isRequired: false, transformFunction: null }, functionSetListColorCustom: { classPropertyName: "functionSetListColorCustom", publicName: "functionSetListColorCustom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", zIndex: "zIndexChange", outColorChange: "outColorChange" }, ngImport: i0, template: "<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { 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: "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: LibsUiComponentsInputsValidComponent, selector: "libs_ui-components-inputs-valid", inputs: ["item", "labelConfig", "emitEmptyInDataTypeNumber", "ignoreBlockInputMaxValue", "fieldNameBind", "showCount", "typeComponentSelectItem", "valueComponentSelectItem", "disableComponentSelectItem", "tagInput", "dataType", "typeInput", "modeInput", "resetAutoCompletePassword", "textAreaEnterNotNewLine", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "ignoreWidthInput100", "classIncludeInput", "classContainerInput", "readonly", "disable", "noBorder", "backgroundNone", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "classContainerBottomInput", "autoRemoveEmoji", "defaultHeight", "maxHeightTextArea", "minHeightTextArea", "ignoreShowError", "borderError", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "zIndexPopoverContent", "unitsLeft", "configUnitLeft", "keySelectedUnitLeft", "unitsRight", "configUnitRight", "keySelectedUnitRight", "maxValueNumber", "minValueNumber", "ignoreContentLeft", "ignoreContentRight", "isBaselineStyle", "valuePatternShowError", "validPattern", "validRequired", "validMinLength", "validMinValue", "validMaxValue", "validMaxLength", "functionValid", "maxLength", "positionMessageErrorStartInput", "classInclude", "resize", "templateLeftBottomInput", "templateRightBottomInput", "onlyAcceptNegativeValue", "autoAddZeroLessThan10InTypeInt", "maxLengthNumberCount", "classMessageErrorInclude", "ignoreStopPropagationEvent", "ignoreUnitRightClassReadOnly", "paddingRightCustomSpecific", "focusTimeOut"], outputs: ["itemChange", "outValueChange", "outSelect", "outIconLeft", "outIconRight", "outClickButtonLabel", "outSwitchEventLabel", "outLabelRightClick", "outEnterInputEvent", "outHeightAreaChange", "outFunctionsControl", "outFocusAndBlur", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsColorPickerComponent, selector: "libs_ui-components-color_picker", inputs: ["customOptions"], outputs: ["outColorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
124
  }
125
125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsColorComponent, decorators: [{
126
126
  type: Component,
@@ -132,4 +132,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
132
132
  LibsUiComponentsColorPickerComponent
133
133
  ], template: "<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\n</ng-template>\n" }]
134
134
  }] });
135
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLWNvbG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvY29sb3Ivc3JjL2lucHV0cy1jb2xvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL2NvbG9yL3NyYy9pbnB1dHMtY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBNEMsZ0NBQWdDLEVBQXNCLE1BQU0sNkJBQTZCLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQXdCLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFnQmhELE1BQU0sT0FBTyxvQ0FBb0M7SUFFL0MsbUJBQW1CO0lBQ1QsWUFBWSxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFDekMsU0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQTtJQUNsQyxXQUFXLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4QyxTQUFTLEdBQUcsTUFBTSxDQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxLQUFL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cEMsb0NBQW9DOzs0RkFHM0Isb0NBQW9DO2tCQWRoRCxTQUFTOytCQUVFLGlDQUFpQyxjQUUvQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZSxFQUFFLGFBQWE7d0JBQzlCLGdDQUFnQzt3QkFDaEMsc0NBQXNDO3dCQUN0QyxvQ0FBb0M7d0JBQ3BDLG9DQUFvQztxQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwsIE9uRGVzdHJveSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWRcIjtcbmltcG9ydCB7IElGbGFnTW91c2UsIElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQsIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LCBUWVBFX1BPUE9WRVJfRVZFTlQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSUNvbG9yUGlja2VyRGF0YSB9IGZyb20gXCIuL2ludGVyZmFjZXMvY29sb3IuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJUGlja2VyQ3VzdG9tT3B0aW9ucywgTGlic1VpQ29tcG9uZW50c0NvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtY29sb3ItcGlja2VyXCI7XG5pbXBvcnQgeyBMb3dlckNhc2VQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWNvbG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0cy1jb2xvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBMb3dlckNhc2VQaXBlLFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNJbnB1dHNWYWxpZENvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQ29sb3JQaWNrZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ29sb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgY29sb3JEZWZhdWx0ID0gc2lnbmFsPEFycmF5PHN0cmluZz4+KFtdKTtcbiAgcHJvdGVjdGVkIHNob3dQb3B1cCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSlcbiAgcHJvdGVjdGVkIGNvbG9yQ3VzdG9tID0gc2lnbmFsPEFycmF5PHN0cmluZz4+KFtdKTtcbiAgcHJvdGVjdGVkIGZsYWdNb3VzZSA9IHNpZ25hbDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgY29sb3JBZGQgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHBvcG92ZXJGdW5jdGlvbkNvbnRyb2wgPSBzaWduYWw8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBwb3BvdmVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2wgPSBzaWduYWw8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGRhdGEgPSBtb2RlbDxJQ29sb3JQaWNrZXJEYXRhPih7IGNvbG9yOiAnJywgb3BhY2l0eTogMTAwIH0pO1xuICByZWFkb25seSB6SW5kZXggPSBtb2RlbDxudW1iZXI+KDEyMDApO1xuICByZWFkb25seSBjdXN0b21PcHRpb25zID0gaW5wdXQ8SVBpY2tlckN1c3RvbU9wdGlvbnM+KCk7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uR2V0TGlzdENvbG9yRGVmYXVsdCA9IGlucHV0PCgpID0+IFByb21pc2U8QXJyYXk8c3RyaW5nPj4+KCk7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tID0gaW5wdXQ8KCkgPT4gUHJvbWlzZTxBcnJheTxzdHJpbmc+Pj4oKTtcbiAgcmVhZG9ubHkgZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20gPSBpbnB1dDwoY29sb3JzOiBBcnJheTxzdHJpbmc+KSA9PiBQcm9taXNlPHZvaWQ+PigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dENvbG9yQ2hhbmdlID0gb3V0cHV0PElDb2xvclBpY2tlckRhdGE+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRMaXN0Q29sb3JEZWZhdWx0KCk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRMaXN0Q29sb3JEZWZhdWx0KCkge1xuICAgIGNvbnN0IGZ1bmN0aW9uR2V0TGlzdENvbG9yRGVmYXVsdCA9IHRoaXMuZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KCk7XG5cbiAgICBpZiAoZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KSB7XG4gICAgICB0aGlzLmNvbG9yRGVmYXVsdC5zZXQoYXdhaXQgZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KCkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29sb3JEZWZhdWx0LnNldChhd2FpdCBVdGlsc0NhY2hlLkdldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1d2VzZnNkZnNkZicpIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TGlzdENvbG9yQ3VzdG9tKCkge1xuICAgIGNvbnN0IGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tID0gdGhpcy5mdW5jdGlvbkdldExpc3RDb2xvckN1c3RvbSgpO1xuXG4gICAgaWYgKGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tKSB7XG4gICAgICB0aGlzLmNvbG9yQ3VzdG9tLnNldChhd2FpdCBmdW5jdGlvbkdldExpc3RDb2xvckN1c3RvbSgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yQ3VzdG9tLnNldChhd2FpdCBVdGlsc0NhY2hlLkdldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1ZHZzamFoZHZqYXNqZGh3ZXNmc2Rmc2RmJykgfHwgW10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQb3BvdmVyRXZlbnQodHlwZTogVFlQRV9QT1BPVkVSX0VWRU5UKSB7XG4gICAgaWYgKHR5cGUgPT09ICdzaG93Jykge1xuICAgICAgdGhpcy5zaG93UG9wdXAuc2V0KHRydWUpO1xuICAgICAgdGhpcy5nZXRMaXN0Q29sb3JDdXN0b20oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgIHRoaXMuc2hvd1BvcHVwLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTZWxlY3RDb2xvcihldmVudDogRXZlbnQsIGNvbG9yOiBzdHJpbmcpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRhdGEudXBkYXRlKHZhbHVlID0+ICh7IC4uLnZhbHVlLCBjb2xvciB9KSlcbiAgICB0aGlzLm91dENvbG9yQ2hhbmdlLmVtaXQodGhpcy5kYXRhKCkgYXMgSUNvbG9yUGlja2VyRGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZU9wYWNpdHkoKSB7XG4gICAgdGhpcy5vdXRDb2xvckNoYW5nZS5lbWl0KHRoaXMuZGF0YSgpIGFzIElDb2xvclBpY2tlckRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDb2xvckNoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2xvckFkZC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQb3BvdmVyQWRkQ29sb3JFdmVudCh0eXBlOiBUWVBFX1BPUE9WRVJfRVZFTlQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ3Nob3cnKSB7XG4gICAgICB0aGlzLmZsYWdNb3VzZS5zZXQoeyBpc01vdXNlRW50ZXI6IHRydWUsIGlzTW91c2VFbnRlckNvbnRlbnQ6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mbGFnTW91c2Uuc2V0KHsgaXNNb3VzZUVudGVyOiBmYWxzZSwgaXNNb3VzZUVudGVyQ29udGVudDogZmFsc2UgfSlcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2wuc2V0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLnBvcG92ZXJBZGRDb2xvckZ1bmN0aW9uQ29udHJvbC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJBY3Rpb24oZXZlbnQ6IEV2ZW50LCBhY3Rpb246ICdjYW5jZWwnIHwgJ2FwcGx5Jykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucG9wb3ZlckFkZENvbG9yRnVuY3Rpb25Db250cm9sKCk/LnJlbW92ZVBvcG92ZXJPdmVybGF5KCk7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29sb3JBZGQgPSB0aGlzLmNvbG9yQWRkKCk7XG5cbiAgICBpZiAoIWNvbG9yQWRkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlclNlbGVjdENvbG9yKGV2ZW50LCBjb2xvckFkZCk7XG4gICAgaWYgKHRoaXMuY29sb3JDdXN0b20oKS5maW5kKGNvbG9yID0+IGNvbG9yID09PSBjb2xvckFkZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2xvckN1c3RvbS51cGRhdGUodmFsdWUgPT4ge1xuICAgICAgdmFsdWUudW5zaGlmdChjb2xvckFkZCk7XG4gICAgICBpZiAodmFsdWUubGVuZ3RoID4gOCkge1xuICAgICAgICB2YWx1ZS5zcGxpY2UoOCwgdmFsdWUubGVuZ3RoIC0gOCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4udmFsdWVdO1xuICAgIH0pXG4gICAgdGhpcy5zZXRDb2xvckN1c3RvbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRDb2xvckN1c3RvbSgpIHtcbiAgICBjb25zdCBmdW5jdGlvblNldExpc3RDb2xvckN1c3RvbSA9IHRoaXMuZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20oKTtcblxuICAgIGlmIChmdW5jdGlvblNldExpc3RDb2xvckN1c3RvbSkge1xuICAgICAgYXdhaXQgZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20odGhpcy5jb2xvckN1c3RvbSgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBVdGlsc0NhY2hlLlNldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1ZHZzamFoZHZqYXNqZGh3ZXNmc2Rmc2RmJywgdGhpcy5jb2xvckN1c3RvbSgpLCBVdGlsc0NhY2hlLkNBQ0hFX0VYUElSRV9OT05FKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucG9wb3ZlckZ1bmN0aW9uQ29udHJvbCgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICAgIHRoaXMucG9wb3ZlckFkZENvbG9yRnVuY3Rpb25Db250cm9sKCk/LnJlbW92ZVBvcG92ZXJPdmVybGF5KCk7XG4gIH1cblxufSIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1bNHB4XVwiXG4gIFtjbGFzcy5saWJzLXVpLWJvcmRlci1nZW5lcmFsXT1cIiFzaG93UG9wdXAoKVwiXG4gIFtjbGFzcy5saWJzLXVpLWJvcmRlci1wcmltYXJ5LWZvY3VzLWdlbmVyYWxdPVwic2hvd1BvcHVwKClcIj5cbiAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICBbbW9kZV09XCInY2xpY2stdG9nZ2xlJ1wiXG4gICAgW2lnbm9yZUhpZGRlblBvcG92ZXJDb250ZW50V2hlbk1vdXNlTGVhdmVdPVwidHJ1ZVwiXG4gICAgW2NvbmZpZ109XCJ7XG4gICAgdGVtcGxhdGU6IGVsZW1lbnQsXG4gICAgd2hpdGVUaGVtZTogdHJ1ZSxcbiAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICB3aWR0aEJ5UGFyZW50OiBmYWxzZSxcbiAgICBtYXhXaWR0aDogNTAwLFxuICAgIG1heEhlaWdodDogNTAwLFxuICAgIHpJbmRleDogekluZGV4KCksXG4gICAgY2xhc3NJbmNsdWRlOiAndy1bMzM0cHhdJyxcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyxcbiAgICBkaXJlY3Rpb25EaXN0YW5jZTogNCxcbiAgICBwb3NpdGlvbjoge1xuICAgICAgbW9kZTogJ3N0YXJ0JyxcbiAgICAgIGRpc3RhbmNlOiAwXG4gICAgfVxuICB9XCJcbiAgICBbZmxhZ01vdXNlXT1cImZsYWdNb3VzZSgpXCJcbiAgICAob3V0RXZlbnQpPVwiaGFuZGxlclBvcG92ZXJFdmVudCgkZXZlbnQpXCJcbiAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHktWzhweF0gcHgtWzE2cHhdIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInctWzE2cHhdIGgtWzE2cHhdIHJvdW5kZWQtWzRweF0gbGlicy11aS1ib3JkZXItZ2VuZXJhbFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImRhdGEoKS5jb2xvclwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg1ciBtbC1bOHB4XVwiPnt7IGRhdGEoKS5jb2xvciB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ3LVs4MHB4XSBzaHJpbmstMCBsaWJzLXVpLWJvcmRlci1sZWZ0LWdlbmVyYWxcIj5cbiAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZCBbbm9Cb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbZGF0YVR5cGVdPVwiJ2ludCdcIlxuICAgICAgW21pblZhbHVlTnVtYmVyXT1cIjBcIlxuICAgICAgW21heFZhbHVlTnVtYmVyXT1cIjEwMFwiXG4gICAgICBbKGl0ZW0pXT1cImRhdGFcIlxuICAgICAgW2ZpZWxkTmFtZUJpbmRdPVwiJ29wYWNpdHknXCJcbiAgICAgIFt1bml0c1JpZ2h0XT1cIlt7aWQ6ICclJywgbGFiZWw6ICclJ31dXCJcbiAgICAgIFtrZXlTZWxlY3RlZFVuaXRSaWdodF09XCInJSdcIlxuICAgICAgW2NsYXNzSW5jbHVkZUlucHV0XT1cIid0ZXh0LWNlbnRlciAhcC0wJ1wiXG4gICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlckNoYW5nZU9wYWNpdHkoKVwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZWxlbWVudD5cbiAgPGRpdiBjbGFzcz1cInAtWzE2cHhdIHctZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi1bMTZweF0gZ3JpZCBnYXAteS1bNHB4XSBnYXAteC1bMnB4XSBncmlkLWNvbHMtOFwiPlxuICAgICAgQGZvciAoY29sb3Igb2YgY29sb3JEZWZhdWx0KCk7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LVs1cHhdIHB4LVs4cHhdIHJlbGF0aXZlXCI+XG4gICAgICAgICAgQGlmICgoY29sb3IgfCBsb3dlcmNhc2UpICA9PT0gKGRhdGEoKS5jb2xvciB8IGxvd2VyY2FzZSkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVszMHB4XSBoLVszMHB4XSByb3VuZGVkLVszMHB4XSB0b3AtMCBsZWZ0LVszcHhdIGFic29sdXRlIGxpYnMtdWktYm9yZGVyLXByaW1hcnktZ2VuZXJhbCAhYm9yZGVyLTJcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctWzIwcHhdIGgtWzIwcHhdIHJvdW5kZWQtWzIwcHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1nZW5lcmFsXT1cIihjb2xvciB8IGxvd2VyY2FzZSkgPT09ICcjZmZmZmZmJ1wiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdENvbG9yKCRldmVudCwgY29sb3IpXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg1bSBjb2xvci1bIzZhNzM4M11cIj57eyAnaTE4bl9jb2xvcl9jdXN0b20nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWFkZCdcIlxuICAgICAgICBbbGFiZWxdPVwiJ2kxOG5fYWRkX25ldydcIlxuICAgICAgICBbcG9wb3Zlcl09XCJ7XG4gICAgICAgICAgbW9kZTogJ2NsaWNrLXRvZ2dsZScsXG4gICAgICAgICAgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlOiBjb2xvclBpY2tlcixcbiAgICAgICAgICAgIHdoaXRlVGhlbWU6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgIHdpZHRoQnlQYXJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgbWF4V2lkdGg6IDUwMCxcbiAgICAgICAgICAgIG1heEhlaWdodDogNTAwLFxuICAgICAgICAgICAgekluZGV4OiB6SW5kZXgoKSArIDEsXG4gICAgICAgICAgICBjbGFzc0luY2x1ZGU6ICd3LVszNTBweF0nLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICBkaXJlY3Rpb25EaXN0YW5jZTogLTEwMCxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgIG1vZGU6ICdzdGFydCcsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiAtMTY1XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIncHktWzJweF0gcHgtWzBdJ1wiXG4gICAgICAgIChvdXRQb3BvdmVyRXZlbnQpPVwiaGFuZGxlclBvcG92ZXJBZGRDb2xvckV2ZW50KCRldmVudClcIlxuICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2woJGV2ZW50KVwiIC8+XG4gICAgPC9kaXY+XG4gICAgQGlmIChjb2xvckN1c3RvbSgpLmxlbmd0aCkge1xuICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktWzRweF0gZ2FwLXgtWzJweF0gZ3JpZC1jb2xzLThcIj5cbiAgICAgICAgQGZvciAoY29sb3Igb2YgY29sb3JDdXN0b20oKTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS1bNXB4XSBweC1bOHB4XSByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgQGlmICgoY29sb3IgfCBsb3dlcmNhc2UpICA9PT0gKGRhdGEoKS5jb2xvciB8IGxvd2VyY2FzZSkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzMwcHhdIGgtWzMwcHhdIHJvdW5kZWQtWzMwcHhdIHRvcC0wIGxlZnQtWzNweF0gYWJzb2x1dGUgbGlicy11aS1ib3JkZXItcHJpbWFyeS1nZW5lcmFsICFib3JkZXItMlwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzIwcHhdIGgtWzIwcHhdIHJvdW5kZWQtWzIwcHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWdlbmVyYWxdPVwiKGNvbG9yIHwgbG93ZXJjYXNlKSA9PT0gJyNmZmZmZmYnXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdENvbG9yKCRldmVudCwgY29sb3IpXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yUGlja2VyPlxuICA8ZGl2IGNsYXNzPVwicC1bMTZweF0gdy1hdXRvIGgtYXV0b1wiPlxuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtY29sb3JfcGlja2VyIFtjdXN0b21PcHRpb25zXT1cImN1c3RvbU9wdGlvbnMoKVwiXG4gICAgICAob3V0Q29sb3JDaGFuZ2UpPVwiaGFuZGxlckNvbG9yQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCBwdC1bMTZweF1cIj5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cIidpMThuX2NhbmNlbCdcIlxuICAgICAgICBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQWN0aW9uKCRldmVudCwgJ2NhbmNlbCcpXCIgLz5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cIidpMThuX2FwcGx5J1wiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ21sLVsxNnB4XSdcIlxuICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFjdGlvbigkZXZlbnQsICdhcHBseScpXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
135
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXRzLWNvbG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMtdWkvY29tcG9uZW50cy9pbnB1dHMvY29sb3Ivc3JjL2lucHV0cy1jb2xvci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9saWJzLXVpL2NvbXBvbmVudHMvaW5wdXRzL2NvbG9yL3NyYy9pbnB1dHMtY29sb3IuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BILE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzVGLE9BQU8sRUFBRSxvQ0FBb0MsRUFBRSxNQUFNLGtDQUFrQyxDQUFDO0FBQ3hGLE9BQU8sRUFBNEMsZ0NBQWdDLEVBQXNCLE1BQU0sNkJBQTZCLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV0RCxPQUFPLEVBQXdCLG9DQUFvQyxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDOUcsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7QUFnQmhELE1BQU0sT0FBTyxvQ0FBb0M7SUFFL0MsbUJBQW1CO0lBQ1QsWUFBWSxHQUFHLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDLENBQUM7SUFDekMsU0FBUyxHQUFHLE1BQU0sQ0FBVSxLQUFLLENBQUMsQ0FBQTtJQUNsQyxXQUFXLEdBQUcsTUFBTSxDQUFnQixFQUFFLENBQUMsQ0FBQztJQUN4QyxTQUFTLEdBQUcsTUFBTSxDQUFhLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxLQUFL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cEMsb0NBQW9DOzs0RkFHM0Isb0NBQW9DO2tCQWRoRCxTQUFTOytCQUVFLGlDQUFpQyxjQUUvQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0sV0FDdEM7d0JBQ1AsZUFBZSxFQUFFLGFBQWE7d0JBQzlCLGdDQUFnQzt3QkFDaEMsc0NBQXNDO3dCQUN0QyxvQ0FBb0M7d0JBQ3BDLG9DQUFvQztxQkFDckMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBpbnB1dCwgbW9kZWwsIE9uRGVzdHJveSwgT25Jbml0LCBvdXRwdXQsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzQnV0dG9uc0J1dHRvbkNvbXBvbmVudCB9IGZyb20gXCJAbGlicy11aS9jb21wb25lbnRzLWJ1dHRvbnMtYnV0dG9uXCI7XG5pbXBvcnQgeyBMaWJzVWlDb21wb25lbnRzSW5wdXRzVmFsaWRDb21wb25lbnQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1pbnB1dHMtdmFsaWRcIjtcbmltcG9ydCB7IElGbGFnTW91c2UsIElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQsIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LCBUWVBFX1BPUE9WRVJfRVZFTlQgfSBmcm9tIFwiQGxpYnMtdWkvY29tcG9uZW50cy1wb3BvdmVyXCI7XG5pbXBvcnQgeyBVdGlsc0NhY2hlIH0gZnJvbSBcIkBsaWJzLXVpL3V0aWxzXCI7XG5pbXBvcnQgeyBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tIFwiQG5neC10cmFuc2xhdGUvY29yZVwiO1xuaW1wb3J0IHsgSUNvbG9yUGlja2VyRGF0YSB9IGZyb20gXCIuL2ludGVyZmFjZXMvY29sb3IuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBJUGlja2VyQ3VzdG9tT3B0aW9ucywgTGlic1VpQ29tcG9uZW50c0NvbG9yUGlja2VyQ29tcG9uZW50IH0gZnJvbSBcIkBsaWJzLXVpL2NvbXBvbmVudHMtY29sb3ItcGlja2VyXCI7XG5pbXBvcnQgeyBMb3dlckNhc2VQaXBlIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vblwiO1xuXG5AQ29tcG9uZW50KHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcbiAgc2VsZWN0b3I6ICdsaWJzX3VpLWNvbXBvbmVudHMtaW5wdXRzLWNvbG9yJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2lucHV0cy1jb2xvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBpbXBvcnRzOiBbXG4gICAgVHJhbnNsYXRlTW9kdWxlLCBMb3dlckNhc2VQaXBlLFxuICAgIExpYnNVaUNvbXBvbmVudHNQb3BvdmVyQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNCdXR0b25zQnV0dG9uQ29tcG9uZW50LFxuICAgIExpYnNVaUNvbXBvbmVudHNJbnB1dHNWYWxpZENvbXBvbmVudCxcbiAgICBMaWJzVWlDb21wb25lbnRzQ29sb3JQaWNrZXJDb21wb25lbnRcbiAgXVxufSlcbmV4cG9ydCBjbGFzcyBMaWJzVWlDb21wb25lbnRzSW5wdXRzQ29sb3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG5cbiAgLy8gI3JlZ2lvbiBQUk9QRVJUWVxuICBwcm90ZWN0ZWQgY29sb3JEZWZhdWx0ID0gc2lnbmFsPEFycmF5PHN0cmluZz4+KFtdKTtcbiAgcHJvdGVjdGVkIHNob3dQb3B1cCA9IHNpZ25hbDxib29sZWFuPihmYWxzZSlcbiAgcHJvdGVjdGVkIGNvbG9yQ3VzdG9tID0gc2lnbmFsPEFycmF5PHN0cmluZz4+KFtdKTtcbiAgcHJvdGVjdGVkIGZsYWdNb3VzZSA9IHNpZ25hbDxJRmxhZ01vdXNlPih7IGlzTW91c2VFbnRlcjogZmFsc2UsIGlzTW91c2VFbnRlckNvbnRlbnQ6IGZhbHNlIH0pO1xuXG4gIHByaXZhdGUgY29sb3JBZGQgPSBzaWduYWw8c3RyaW5nIHwgdW5kZWZpbmVkPih1bmRlZmluZWQpO1xuICBwcml2YXRlIHBvcG92ZXJGdW5jdGlvbkNvbnRyb2wgPSBzaWduYWw8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcbiAgcHJpdmF0ZSBwb3BvdmVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2wgPSBzaWduYWw8SVBvcG92ZXJGdW5jdGlvbkNvbnRyb2xFdmVudCB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICAvLyAjcmVnaW9uIElOUFVUXG4gIHJlYWRvbmx5IGRhdGEgPSBtb2RlbDxJQ29sb3JQaWNrZXJEYXRhPih7IGNvbG9yOiAnJywgb3BhY2l0eTogMTAwIH0pO1xuICByZWFkb25seSB6SW5kZXggPSBtb2RlbDxudW1iZXI+KDEyMDApO1xuICByZWFkb25seSBjdXN0b21PcHRpb25zID0gaW5wdXQ8SVBpY2tlckN1c3RvbU9wdGlvbnM+KCk7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uR2V0TGlzdENvbG9yRGVmYXVsdCA9IGlucHV0PCgpID0+IFByb21pc2U8QXJyYXk8c3RyaW5nPj4+KCk7XG4gIHJlYWRvbmx5IGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tID0gaW5wdXQ8KCkgPT4gUHJvbWlzZTxBcnJheTxzdHJpbmc+Pj4oKTtcbiAgcmVhZG9ubHkgZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20gPSBpbnB1dDwoY29sb3JzOiBBcnJheTxzdHJpbmc+KSA9PiBQcm9taXNlPHZvaWQ+PigpO1xuXG4gIC8vICNyZWdpb24gT1VUUFVUXG4gIHJlYWRvbmx5IG91dENvbG9yQ2hhbmdlID0gb3V0cHV0PElDb2xvclBpY2tlckRhdGE+KCk7XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5nZXRMaXN0Q29sb3JEZWZhdWx0KCk7XG4gIH1cblxuICAvKiBGVU5DVElPTlMgKi9cbiAgcHJpdmF0ZSBhc3luYyBnZXRMaXN0Q29sb3JEZWZhdWx0KCkge1xuICAgIGNvbnN0IGZ1bmN0aW9uR2V0TGlzdENvbG9yRGVmYXVsdCA9IHRoaXMuZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KCk7XG5cbiAgICBpZiAoZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KSB7XG4gICAgICB0aGlzLmNvbG9yRGVmYXVsdC5zZXQoYXdhaXQgZnVuY3Rpb25HZXRMaXN0Q29sb3JEZWZhdWx0KCkpO1xuXG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY29sb3JEZWZhdWx0LnNldChhd2FpdCBVdGlsc0NhY2hlLkdldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1d2VzZnNkZnNkZicpIHx8IFtdKTtcbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgZ2V0TGlzdENvbG9yQ3VzdG9tKCkge1xuICAgIGNvbnN0IGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tID0gdGhpcy5mdW5jdGlvbkdldExpc3RDb2xvckN1c3RvbSgpO1xuXG4gICAgaWYgKGZ1bmN0aW9uR2V0TGlzdENvbG9yQ3VzdG9tKSB7XG4gICAgICB0aGlzLmNvbG9yQ3VzdG9tLnNldChhd2FpdCBmdW5jdGlvbkdldExpc3RDb2xvckN1c3RvbSgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmNvbG9yQ3VzdG9tLnNldChhd2FpdCBVdGlsc0NhY2hlLkdldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1ZHZzamFoZHZqYXNqZGh3ZXNmc2Rmc2RmJykgfHwgW10pO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQb3BvdmVyRXZlbnQodHlwZTogVFlQRV9QT1BPVkVSX0VWRU5UKSB7XG4gICAgaWYgKHR5cGUgPT09ICdzaG93Jykge1xuICAgICAgdGhpcy5zaG93UG9wdXAuc2V0KHRydWUpO1xuICAgICAgdGhpcy5nZXRMaXN0Q29sb3JDdXN0b20oKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBpZiAodHlwZSA9PT0gJ3JlbW92ZScpIHtcbiAgICAgIHRoaXMuc2hvd1BvcHVwLnNldChmYWxzZSk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJTZWxlY3RDb2xvcihldmVudDogRXZlbnQsIGNvbG9yOiBzdHJpbmcpIHtcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICB0aGlzLmRhdGEudXBkYXRlKHZhbHVlID0+ICh7IC4uLnZhbHVlLCBjb2xvciB9KSlcbiAgICB0aGlzLm91dENvbG9yQ2hhbmdlLmVtaXQodGhpcy5kYXRhKCkgYXMgSUNvbG9yUGlja2VyRGF0YSk7XG4gIH1cblxuICBwcm90ZWN0ZWQgaGFuZGxlckNoYW5nZU9wYWNpdHkoKSB7XG4gICAgdGhpcy5vdXRDb2xvckNoYW5nZS5lbWl0KHRoaXMuZGF0YSgpIGFzIElDb2xvclBpY2tlckRhdGEpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJDb2xvckNoYW5nZShldmVudDogc3RyaW5nKSB7XG4gICAgdGhpcy5jb2xvckFkZC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJQb3BvdmVyQWRkQ29sb3JFdmVudCh0eXBlOiBUWVBFX1BPUE9WRVJfRVZFTlQpIHtcbiAgICBpZiAodHlwZSA9PT0gJ3Nob3cnKSB7XG4gICAgICB0aGlzLmZsYWdNb3VzZS5zZXQoeyBpc01vdXNlRW50ZXI6IHRydWUsIGlzTW91c2VFbnRlckNvbnRlbnQ6IHRydWUgfSk7XG5cbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKHR5cGUgPT09ICdyZW1vdmUnKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgdGhpcy5mbGFnTW91c2Uuc2V0KHsgaXNNb3VzZUVudGVyOiBmYWxzZSwgaXNNb3VzZUVudGVyQ29udGVudDogZmFsc2UgfSlcbiAgICAgIH0sIDUwMCk7XG4gICAgfVxuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLnBvcG92ZXJGdW5jdGlvbkNvbnRyb2wuc2V0KGV2ZW50KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBoYW5kbGVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2woZXZlbnQ6IElQb3BvdmVyRnVuY3Rpb25Db250cm9sRXZlbnQpIHtcbiAgICB0aGlzLnBvcG92ZXJBZGRDb2xvckZ1bmN0aW9uQ29udHJvbC5zZXQoZXZlbnQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGhhbmRsZXJBY3Rpb24oZXZlbnQ6IEV2ZW50LCBhY3Rpb246ICdjYW5jZWwnIHwgJ2FwcGx5Jykge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMucG9wb3ZlckFkZENvbG9yRnVuY3Rpb25Db250cm9sKCk/LnJlbW92ZVBvcG92ZXJPdmVybGF5KCk7XG4gICAgaWYgKGFjdGlvbiA9PT0gJ2NhbmNlbCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgY29sb3JBZGQgPSB0aGlzLmNvbG9yQWRkKCk7XG5cbiAgICBpZiAoIWNvbG9yQWRkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuaGFuZGxlclNlbGVjdENvbG9yKGV2ZW50LCBjb2xvckFkZCk7XG4gICAgaWYgKHRoaXMuY29sb3JDdXN0b20oKS5maW5kKGNvbG9yID0+IGNvbG9yID09PSBjb2xvckFkZCkpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5jb2xvckN1c3RvbS51cGRhdGUodmFsdWUgPT4ge1xuICAgICAgdmFsdWUudW5zaGlmdChjb2xvckFkZCk7XG4gICAgICBpZiAodmFsdWUubGVuZ3RoID4gOCkge1xuICAgICAgICB2YWx1ZS5zcGxpY2UoOCwgdmFsdWUubGVuZ3RoIC0gOCk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiBbLi4udmFsdWVdO1xuICAgIH0pXG4gICAgdGhpcy5zZXRDb2xvckN1c3RvbSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBzZXRDb2xvckN1c3RvbSgpIHtcbiAgICBjb25zdCBmdW5jdGlvblNldExpc3RDb2xvckN1c3RvbSA9IHRoaXMuZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20oKTtcblxuICAgIGlmIChmdW5jdGlvblNldExpc3RDb2xvckN1c3RvbSkge1xuICAgICAgYXdhaXQgZnVuY3Rpb25TZXRMaXN0Q29sb3JDdXN0b20odGhpcy5jb2xvckN1c3RvbSgpKTtcblxuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBVdGlsc0NhY2hlLlNldEFzeW5jKCdrbmZqc2Rmd2VuY2xzZG5ja2pzZGZzZGZzZGZzaGltZHNqZGZqa3N1ZHZzamFoZHZqYXNqZGh3ZXNmc2Rmc2RmJywgdGhpcy5jb2xvckN1c3RvbSgpLCBVdGlsc0NhY2hlLkNBQ0hFX0VYUElSRV9OT05FKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMucG9wb3ZlckZ1bmN0aW9uQ29udHJvbCgpPy5yZW1vdmVQb3BvdmVyT3ZlcmxheSgpO1xuICAgIHRoaXMucG9wb3ZlckFkZENvbG9yRnVuY3Rpb25Db250cm9sKCk/LnJlbW92ZVBvcG92ZXJPdmVybGF5KCk7XG4gIH1cblxufSIsIjxkaXYgY2xhc3M9XCJ3LWZ1bGwgZmxleCBqdXN0aWZ5LWJldHdlZW4gcm91bmRlZC1bNHB4XVwiXG4gIFtjbGFzcy5saWJzLXVpLWJvcmRlci1nZW5lcmFsXT1cIiFzaG93UG9wdXAoKVwiXG4gIFtjbGFzcy5saWJzLXVpLWJvcmRlci1wcmltYXJ5LWZvY3VzLWdlbmVyYWxdPVwic2hvd1BvcHVwKClcIj5cbiAgPGRpdiBMaWJzVWlDb21wb25lbnRzUG9wb3ZlckRpcmVjdGl2ZVxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICBbbW9kZV09XCInY2xpY2stdG9nZ2xlJ1wiXG4gICAgW2lnbm9yZUhpZGRlblBvcG92ZXJDb250ZW50V2hlbk1vdXNlTGVhdmVdPVwidHJ1ZVwiXG4gICAgW2NvbmZpZ109XCJ7XG4gICAgdGVtcGxhdGU6IGVsZW1lbnQsXG4gICAgd2hpdGVUaGVtZTogdHJ1ZSxcbiAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICB3aWR0aEJ5UGFyZW50OiBmYWxzZSxcbiAgICBtYXhXaWR0aDogNTAwLFxuICAgIG1heEhlaWdodDogNTAwLFxuICAgIHpJbmRleDogekluZGV4KCksXG4gICAgY2xhc3NJbmNsdWRlOiAndy1bMzM0cHhdJyxcbiAgICBkaXJlY3Rpb246ICdsZWZ0JyxcbiAgICBkaXJlY3Rpb25EaXN0YW5jZTogNCxcbiAgICBwb3NpdGlvbjoge1xuICAgICAgbW9kZTogJ3N0YXJ0JyxcbiAgICAgIGRpc3RhbmNlOiAwXG4gICAgfVxuICB9XCJcbiAgICBbZmxhZ01vdXNlXT1cImZsYWdNb3VzZSgpXCJcbiAgICAob3V0RXZlbnQpPVwiaGFuZGxlclBvcG92ZXJFdmVudCgkZXZlbnQpXCJcbiAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyRnVuY3Rpb25Db250cm9sKCRldmVudClcIj5cbiAgICA8ZGl2IGNsYXNzPVwicHktWzhweF0gcHgtWzE2cHhdIGZsZXggaXRlbXMtY2VudGVyXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cInctWzE2cHhdIGgtWzE2cHhdIHJvdW5kZWQtWzRweF0gbGlicy11aS1ib3JkZXItZ2VuZXJhbFwiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImRhdGEoKS5jb2xvclwiPjwvc3Bhbj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg1ciBtbC1bOHB4XVwiPnt7IGRhdGEoKS5jb2xvciB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJ3LVs4MHB4XSBzaHJpbmstMCBsaWJzLXVpLWJvcmRlci1sZWZ0LWdlbmVyYWxcIj5cbiAgICA8bGlic191aS1jb21wb25lbnRzLWlucHV0cy12YWxpZCBbbm9Cb3JkZXJdPVwidHJ1ZVwiXG4gICAgICBbZGF0YVR5cGVdPVwiJ2ludCdcIlxuICAgICAgW21pblZhbHVlTnVtYmVyXT1cIjBcIlxuICAgICAgW21heFZhbHVlTnVtYmVyXT1cIjEwMFwiXG4gICAgICBbKGl0ZW0pXT1cImRhdGFcIlxuICAgICAgW2ZpZWxkTmFtZUJpbmRdPVwiJ29wYWNpdHknXCJcbiAgICAgIFt1bml0c1JpZ2h0XT1cIlt7aWQ6ICclJywgbGFiZWw6ICclJ31dXCJcbiAgICAgIFtrZXlTZWxlY3RlZFVuaXRSaWdodF09XCInJSdcIlxuICAgICAgW2NsYXNzSW5jbHVkZUlucHV0XT1cIid0ZXh0LWNlbnRlciAhcC0wJ1wiXG4gICAgICAob3V0VmFsdWVDaGFuZ2UpPVwiaGFuZGxlckNoYW5nZU9wYWNpdHkoKVwiIC8+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZWxlbWVudD5cbiAgPGRpdiBjbGFzcz1cInAtWzE2cHhdIHctZnVsbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYi1bMTZweF0gZ3JpZCBnYXAteS1bNHB4XSBnYXAteC1bMnB4XSBncmlkLWNvbHMtOFwiPlxuICAgICAgQGZvciAoY29sb3Igb2YgY29sb3JEZWZhdWx0KCk7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cInB5LVs1cHhdIHB4LVs4cHhdIHJlbGF0aXZlXCI+XG4gICAgICAgICAgQGlmICgoY29sb3IgfCBsb3dlcmNhc2UpICA9PT0gKGRhdGEoKS5jb2xvciB8IGxvd2VyY2FzZSkpIHtcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3LVszMHB4XSBoLVszMHB4XSByb3VuZGVkLVszMHB4XSB0b3AtMCBsZWZ0LVszcHhdIGFic29sdXRlIGxpYnMtdWktYm9yZGVyLXByaW1hcnktZ2VuZXJhbCAhYm9yZGVyLTJcIj48L2Rpdj5cbiAgICAgICAgICB9XG4gICAgICAgICAgPGRpdiBjbGFzcz1cInctWzIwcHhdIGgtWzIwcHhdIHJvdW5kZWQtWzIwcHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgIFtjbGFzcy5saWJzLXVpLWJvcmRlci1nZW5lcmFsXT1cIihjb2xvciB8IGxvd2VyY2FzZSkgPT09ICcjZmZmZmZmJ1wiXG4gICAgICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjb2xvclwiXG4gICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdENvbG9yKCRldmVudCwgY29sb3IpXCI+PC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWJldHdlZW5cIj5cbiAgICAgIDxzcGFuIGNsYXNzPVwibGlicy11aS1mb250LWg1bSBjb2xvci1bIzZhNzM4M11cIj57eyAnaTE4bl9jb2xvcl9jdXN0b20nIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxuICAgICAgPGxpYnNfdWktY29tcG9uZW50cy1idXR0b25zLWJ1dHRvbiBbdHlwZV09XCInYnV0dG9uLWxpbmstcHJpbWFyeSdcIlxuICAgICAgICBbY2xhc3NJY29uTGVmdF09XCInbGlicy11aS1pY29uLWFkZCdcIlxuICAgICAgICBbbGFiZWxdPVwiJ2kxOG5fYWRkX25ldydcIlxuICAgICAgICBbcG9wb3Zlcl09XCJ7XG4gICAgICAgICAgbW9kZTogJ2NsaWNrLXRvZ2dsZScsXG4gICAgICAgICAgaWdub3JlSGlkZGVuUG9wb3ZlckNvbnRlbnRXaGVuTW91c2VMZWF2ZTogdHJ1ZSxcbiAgICAgICAgICBjb25maWc6IHtcbiAgICAgICAgICAgIHRlbXBsYXRlOiBjb2xvclBpY2tlcixcbiAgICAgICAgICAgIHdoaXRlVGhlbWU6IHRydWUsXG4gICAgICAgICAgICBpZ25vcmVBcnJvdzogdHJ1ZSxcbiAgICAgICAgICAgIHdpZHRoQnlQYXJlbnQ6IGZhbHNlLFxuICAgICAgICAgICAgbWF4V2lkdGg6IDUwMCxcbiAgICAgICAgICAgIG1heEhlaWdodDogNTAwLFxuICAgICAgICAgICAgekluZGV4OiB6SW5kZXgoKSArIDEsXG4gICAgICAgICAgICBjbGFzc0luY2x1ZGU6ICd3LVszNTBweF0nLFxuICAgICAgICAgICAgZGlyZWN0aW9uOiAnbGVmdCcsXG4gICAgICAgICAgICBkaXJlY3Rpb25EaXN0YW5jZTogLTEwMCxcbiAgICAgICAgICAgIHBvc2l0aW9uOiB7XG4gICAgICAgICAgICAgIG1vZGU6ICdzdGFydCcsXG4gICAgICAgICAgICAgIGRpc3RhbmNlOiAtMTY1XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9XCJcbiAgICAgICAgW2NsYXNzSW5jbHVkZV09XCIncHktWzJweF0gcHgtWzBdJ1wiXG4gICAgICAgIChvdXRQb3BvdmVyRXZlbnQpPVwiaGFuZGxlclBvcG92ZXJBZGRDb2xvckV2ZW50KCRldmVudClcIlxuICAgICAgICAob3V0RnVuY3Rpb25zQ29udHJvbCk9XCJoYW5kbGVyQWRkQ29sb3JGdW5jdGlvbkNvbnRyb2woJGV2ZW50KVwiIC8+XG4gICAgPC9kaXY+XG4gICAgQGlmIChjb2xvckN1c3RvbSgpLmxlbmd0aCkge1xuICAgICAgPGRpdiBjbGFzcz1cImdyaWQgZ2FwLXktWzRweF0gZ2FwLXgtWzJweF0gZ3JpZC1jb2xzLThcIj5cbiAgICAgICAgQGZvciAoY29sb3Igb2YgY29sb3JDdXN0b20oKTsgdHJhY2sgJGluZGV4OyBsZXQgaSA9ICRpbmRleCkge1xuICAgICAgICAgIDxkaXYgY2xhc3M9XCJweS1bNXB4XSBweC1bOHB4XSByZWxhdGl2ZVwiPlxuICAgICAgICAgICAgQGlmICgoY29sb3IgfCBsb3dlcmNhc2UpICA9PT0gKGRhdGEoKS5jb2xvciB8IGxvd2VyY2FzZSkpIHtcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzMwcHhdIGgtWzMwcHhdIHJvdW5kZWQtWzMwcHhdIHRvcC0wIGxlZnQtWzNweF0gYWJzb2x1dGUgbGlicy11aS1ib3JkZXItcHJpbWFyeS1nZW5lcmFsICFib3JkZXItMlwiPjwvZGl2PlxuICAgICAgICAgICAgfVxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInctWzIwcHhdIGgtWzIwcHhdIHJvdW5kZWQtWzIwcHhdIGN1cnNvci1wb2ludGVyXCJcbiAgICAgICAgICAgICAgW2NsYXNzLmxpYnMtdWktYm9yZGVyLWdlbmVyYWxdPVwiKGNvbG9yIHwgbG93ZXJjYXNlKSA9PT0gJyNmZmZmZmYnXCJcbiAgICAgICAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY29sb3JcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwiaGFuZGxlclNlbGVjdENvbG9yKCRldmVudCwgY29sb3IpXCI+PC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIH1cbiAgICAgIDwvZGl2PlxuICAgIH1cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bmctdGVtcGxhdGUgI2NvbG9yUGlja2VyPlxuICA8ZGl2IGNsYXNzPVwicC1bMTZweF0gdy1hdXRvIGgtYXV0b1wiPlxuICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtY29sb3JfcGlja2VyIFtjdXN0b21PcHRpb25zXT1cImN1c3RvbU9wdGlvbnMoKVwiXG4gICAgICAob3V0Q29sb3JDaGFuZ2UpPVwiaGFuZGxlckNvbG9yQ2hhbmdlKCRldmVudClcIiAvPlxuICAgIDxkaXYgY2xhc3M9XCJmbGV4IGl0ZW1zLWNlbnRlciBqdXN0aWZ5LWVuZCBwdC1bMTZweF1cIj5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cIidpMThuX2NhbmNlbCdcIlxuICAgICAgICBbdHlwZV09XCInYnV0dG9uLXRoaXJkJ1wiXG4gICAgICAgIChvdXRDbGljayk9XCJoYW5kbGVyQWN0aW9uKCRldmVudCwgJ2NhbmNlbCcpXCIgLz5cbiAgICAgIDxsaWJzX3VpLWNvbXBvbmVudHMtYnV0dG9ucy1idXR0b24gW2xhYmVsXT1cIidpMThuX2FwcGx5J1wiXG4gICAgICAgIFtjbGFzc0luY2x1ZGVdPVwiJ21sLVsxNnB4XSdcIlxuICAgICAgICAob3V0Q2xpY2spPVwiaGFuZGxlckFjdGlvbigkZXZlbnQsICdhcHBseScpXCIgLz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -121,7 +121,7 @@ class LibsUiComponentsInputsColorComponent {
121
121
  this.popoverAddColorFunctionControl()?.removePopoverOverlay();
122
122
  }
123
123
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsColorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
124
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsColorComponent, isStandalone: true, selector: "libs_ui-components-inputs-color", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, customOptions: { classPropertyName: "customOptions", publicName: "customOptions", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorDefault: { classPropertyName: "functionGetListColorDefault", publicName: "functionGetListColorDefault", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorCustom: { classPropertyName: "functionGetListColorCustom", publicName: "functionGetListColorCustom", isSignal: true, isRequired: false, transformFunction: null }, functionSetListColorCustom: { classPropertyName: "functionSetListColorCustom", publicName: "functionSetListColorCustom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", zIndex: "zIndexChange", outColorChange: "outColorChange" }, ngImport: i0, template: "<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { 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: "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"], outputs: ["outClick", "outPopoverEvent", "outFunctionsControl"] }, { kind: "component", type: LibsUiComponentsInputsValidComponent, selector: "libs_ui-components-inputs-valid", inputs: ["item", "labelConfig", "emitEmptyInDataTypeNumber", "ignoreBlockInputMaxValue", "fieldNameBind", "showCount", "typeComponentSelectItem", "valueComponentSelectItem", "disableComponentSelectItem", "tagInput", "dataType", "typeInput", "modeInput", "resetAutoCompletePassword", "textAreaEnterNotNewLine", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "ignoreWidthInput100", "classIncludeInput", "classContainerInput", "readonly", "disable", "noBorder", "backgroundNone", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "classContainerBottomInput", "autoRemoveEmoji", "defaultHeight", "maxHeightTextArea", "minHeightTextArea", "ignoreShowError", "borderError", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "zIndexPopoverContent", "unitsLeft", "configUnitLeft", "keySelectedUnitLeft", "unitsRight", "configUnitRight", "keySelectedUnitRight", "maxValueNumber", "minValueNumber", "ignoreContentLeft", "ignoreContentRight", "isBaselineStyle", "valuePatternShowError", "validPattern", "validRequired", "validMinLength", "validMinValue", "validMaxValue", "validMaxLength", "functionValid", "maxLength", "positionMessageErrorStartInput", "classInclude", "resize", "templateLeftBottomInput", "templateRightBottomInput", "onlyAcceptNegativeValue", "autoAddZeroLessThan10InTypeInt", "maxLengthNumberCount", "classMessageErrorInclude", "ignoreStopPropagationEvent", "ignoreUnitRightClassReadOnly", "paddingRightCustomSpecific", "focusTimeOut"], outputs: ["itemChange", "outValueChange", "outSelect", "outIconLeft", "outIconRight", "outClickButtonLabel", "outSwitchEventLabel", "outLabelRightClick", "outEnterInputEvent", "outHeightAreaChange", "outFunctionsControl", "outFocusAndBlur", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsColorPickerComponent, selector: "libs_ui-components-color_picker", inputs: ["customOptions"], outputs: ["outColorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
124
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: LibsUiComponentsInputsColorComponent, isStandalone: true, selector: "libs_ui-components-inputs-color", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null }, zIndex: { classPropertyName: "zIndex", publicName: "zIndex", isSignal: true, isRequired: false, transformFunction: null }, customOptions: { classPropertyName: "customOptions", publicName: "customOptions", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorDefault: { classPropertyName: "functionGetListColorDefault", publicName: "functionGetListColorDefault", isSignal: true, isRequired: false, transformFunction: null }, functionGetListColorCustom: { classPropertyName: "functionGetListColorCustom", publicName: "functionGetListColorCustom", isSignal: true, isRequired: false, transformFunction: null }, functionSetListColorCustom: { classPropertyName: "functionSetListColorCustom", publicName: "functionSetListColorCustom", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { data: "dataChange", zIndex: "zIndexChange", outColorChange: "outColorChange" }, ngImport: i0, template: "<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1.TranslatePipe, name: "translate" }, { kind: "pipe", type: LowerCasePipe, name: "lowercase" }, { 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: "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: LibsUiComponentsInputsValidComponent, selector: "libs_ui-components-inputs-valid", inputs: ["item", "labelConfig", "emitEmptyInDataTypeNumber", "ignoreBlockInputMaxValue", "fieldNameBind", "showCount", "typeComponentSelectItem", "valueComponentSelectItem", "disableComponentSelectItem", "tagInput", "dataType", "typeInput", "modeInput", "resetAutoCompletePassword", "textAreaEnterNotNewLine", "fixedFloat", "acceptNegativeValue", "valueUpDownNumber", "ignoreWidthInput100", "classIncludeInput", "classContainerInput", "readonly", "disable", "noBorder", "backgroundNone", "useColorModeExist", "placeholder", "keepPlaceholderOnly", "classContainerBottomInput", "autoRemoveEmoji", "defaultHeight", "maxHeightTextArea", "minHeightTextArea", "ignoreShowError", "borderError", "iconLeftClass", "popoverContentIconLeft", "iconRightClass", "popoverContentIconRight", "zIndexPopoverContent", "unitsLeft", "configUnitLeft", "keySelectedUnitLeft", "unitsRight", "configUnitRight", "keySelectedUnitRight", "maxValueNumber", "minValueNumber", "ignoreContentLeft", "ignoreContentRight", "isBaselineStyle", "valuePatternShowError", "validPattern", "validRequired", "validMinLength", "validMinValue", "validMaxValue", "validMaxLength", "functionValid", "maxLength", "positionMessageErrorStartInput", "classInclude", "resize", "templateLeftBottomInput", "templateRightBottomInput", "onlyAcceptNegativeValue", "autoAddZeroLessThan10InTypeInt", "maxLengthNumberCount", "classMessageErrorInclude", "ignoreStopPropagationEvent", "ignoreUnitRightClassReadOnly", "paddingRightCustomSpecific", "focusTimeOut"], outputs: ["itemChange", "outValueChange", "outSelect", "outIconLeft", "outIconRight", "outClickButtonLabel", "outSwitchEventLabel", "outLabelRightClick", "outEnterInputEvent", "outHeightAreaChange", "outFunctionsControl", "outFocusAndBlur", "outChangeValueByButtonUpDown"] }, { kind: "component", type: LibsUiComponentsColorPickerComponent, selector: "libs_ui-components-color_picker", inputs: ["customOptions"], outputs: ["outColorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
125
  }
126
126
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LibsUiComponentsInputsColorComponent, decorators: [{
127
127
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"libs-ui-components-inputs-color.mjs","sources":["../../../../../../libs-ui/components/inputs/color/src/inputs-color.component.ts","../../../../../../libs-ui/components/inputs/color/src/inputs-color.component.html","../../../../../../libs-ui/components/inputs/color/src/libs-ui-components-inputs-color.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, OnDestroy, OnInit, output, signal } from \"@angular/core\";\nimport { LibsUiComponentsButtonsButtonComponent } from \"@libs-ui/components-buttons-button\";\nimport { LibsUiComponentsInputsValidComponent } from \"@libs-ui/components-inputs-valid\";\nimport { IFlagMouse, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from \"@libs-ui/components-popover\";\nimport { UtilsCache } from \"@libs-ui/utils\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IColorPickerData } from \"./interfaces/color.interface\";\nimport { IPickerCustomOptions, LibsUiComponentsColorPickerComponent } from \"@libs-ui/components-color-picker\";\nimport { LowerCasePipe } from \"@angular/common\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-color',\n templateUrl: './inputs-color.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule, LowerCasePipe,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsColorPickerComponent\n ]\n})\nexport class LibsUiComponentsInputsColorComponent implements OnInit, OnDestroy {\n\n // #region PROPERTY\n protected colorDefault = signal<Array<string>>([]);\n protected showPopup = signal<boolean>(false)\n protected colorCustom = signal<Array<string>>([]);\n protected flagMouse = signal<IFlagMouse>({ isMouseEnter: false, isMouseEnterContent: false });\n\n private colorAdd = signal<string | undefined>(undefined);\n private popoverFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private popoverAddColorFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly data = model<IColorPickerData>({ color: '', opacity: 100 });\n readonly zIndex = model<number>(1200);\n readonly customOptions = input<IPickerCustomOptions>();\n readonly functionGetListColorDefault = input<() => Promise<Array<string>>>();\n readonly functionGetListColorCustom = input<() => Promise<Array<string>>>();\n readonly functionSetListColorCustom = input<(colors: Array<string>) => Promise<void>>();\n\n // #region OUTPUT\n readonly outColorChange = output<IColorPickerData>();\n\n ngOnInit() {\n this.getListColorDefault();\n }\n\n /* FUNCTIONS */\n private async getListColorDefault() {\n const functionGetListColorDefault = this.functionGetListColorDefault();\n\n if (functionGetListColorDefault) {\n this.colorDefault.set(await functionGetListColorDefault());\n\n return;\n }\n this.colorDefault.set(await UtilsCache.GetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksuwesfsdfsdf') || []);\n }\n\n private async getListColorCustom() {\n const functionGetListColorCustom = this.functionGetListColorCustom();\n\n if (functionGetListColorCustom) {\n this.colorCustom.set(await functionGetListColorCustom());\n\n return;\n }\n this.colorCustom.set(await UtilsCache.GetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksudvsjahdvjasjdhwesfsdfsdf') || []);\n }\n\n protected handlerPopoverEvent(type: TYPE_POPOVER_EVENT) {\n if (type === 'show') {\n this.showPopup.set(true);\n this.getListColorCustom();\n\n return;\n }\n if (type === 'remove') {\n this.showPopup.set(false);\n }\n }\n\n protected handlerSelectColor(event: Event, color: string) {\n event.stopPropagation();\n this.data.update(value => ({ ...value, color }))\n this.outColorChange.emit(this.data() as IColorPickerData);\n }\n\n protected handlerChangeOpacity() {\n this.outColorChange.emit(this.data() as IColorPickerData);\n }\n\n protected handlerColorChange(event: string) {\n this.colorAdd.set(event);\n }\n\n protected handlerPopoverAddColorEvent(type: TYPE_POPOVER_EVENT) {\n if (type === 'show') {\n this.flagMouse.set({ isMouseEnter: true, isMouseEnterContent: true });\n\n return;\n }\n if (type === 'remove') {\n setTimeout(() => {\n this.flagMouse.set({ isMouseEnter: false, isMouseEnterContent: false })\n }, 500);\n }\n }\n\n protected handlerFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControl.set(event);\n }\n\n protected handlerAddColorFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverAddColorFunctionControl.set(event);\n }\n\n protected handlerAction(event: Event, action: 'cancel' | 'apply') {\n event.stopPropagation();\n this.popoverAddColorFunctionControl()?.removePopoverOverlay();\n if (action === 'cancel') {\n return;\n }\n const colorAdd = this.colorAdd();\n\n if (!colorAdd) {\n return;\n }\n this.handlerSelectColor(event, colorAdd);\n if (this.colorCustom().find(color => color === colorAdd)) {\n return;\n }\n this.colorCustom.update(value => {\n value.unshift(colorAdd);\n if (value.length > 8) {\n value.splice(8, value.length - 8);\n }\n\n return [...value];\n })\n this.setColorCustom();\n }\n\n private async setColorCustom() {\n const functionSetListColorCustom = this.functionSetListColorCustom();\n\n if (functionSetListColorCustom) {\n await functionSetListColorCustom(this.colorCustom());\n\n return;\n }\n UtilsCache.SetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksudvsjahdvjasjdhwesfsdfsdf', this.colorCustom(), UtilsCache.CACHE_EXPIRE_NONE);\n }\n\n ngOnDestroy() {\n this.popoverFunctionControl()?.removePopoverOverlay();\n this.popoverAddColorFunctionControl()?.removePopoverOverlay();\n }\n\n}","<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\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-color.mjs","sources":["../../../../../../libs-ui/components/inputs/color/src/inputs-color.component.ts","../../../../../../libs-ui/components/inputs/color/src/inputs-color.component.html","../../../../../../libs-ui/components/inputs/color/src/libs-ui-components-inputs-color.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, input, model, OnDestroy, OnInit, output, signal } from \"@angular/core\";\nimport { LibsUiComponentsButtonsButtonComponent } from \"@libs-ui/components-buttons-button\";\nimport { LibsUiComponentsInputsValidComponent } from \"@libs-ui/components-inputs-valid\";\nimport { IFlagMouse, IPopoverFunctionControlEvent, LibsUiComponentsPopoverComponent, TYPE_POPOVER_EVENT } from \"@libs-ui/components-popover\";\nimport { UtilsCache } from \"@libs-ui/utils\";\nimport { TranslateModule } from \"@ngx-translate/core\";\nimport { IColorPickerData } from \"./interfaces/color.interface\";\nimport { IPickerCustomOptions, LibsUiComponentsColorPickerComponent } from \"@libs-ui/components-color-picker\";\nimport { LowerCasePipe } from \"@angular/common\";\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'libs_ui-components-inputs-color',\n templateUrl: './inputs-color.component.html',\n standalone: true,\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n TranslateModule, LowerCasePipe,\n LibsUiComponentsPopoverComponent,\n LibsUiComponentsButtonsButtonComponent,\n LibsUiComponentsInputsValidComponent,\n LibsUiComponentsColorPickerComponent\n ]\n})\nexport class LibsUiComponentsInputsColorComponent implements OnInit, OnDestroy {\n\n // #region PROPERTY\n protected colorDefault = signal<Array<string>>([]);\n protected showPopup = signal<boolean>(false)\n protected colorCustom = signal<Array<string>>([]);\n protected flagMouse = signal<IFlagMouse>({ isMouseEnter: false, isMouseEnterContent: false });\n\n private colorAdd = signal<string | undefined>(undefined);\n private popoverFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n private popoverAddColorFunctionControl = signal<IPopoverFunctionControlEvent | undefined>(undefined);\n\n // #region INPUT\n readonly data = model<IColorPickerData>({ color: '', opacity: 100 });\n readonly zIndex = model<number>(1200);\n readonly customOptions = input<IPickerCustomOptions>();\n readonly functionGetListColorDefault = input<() => Promise<Array<string>>>();\n readonly functionGetListColorCustom = input<() => Promise<Array<string>>>();\n readonly functionSetListColorCustom = input<(colors: Array<string>) => Promise<void>>();\n\n // #region OUTPUT\n readonly outColorChange = output<IColorPickerData>();\n\n ngOnInit() {\n this.getListColorDefault();\n }\n\n /* FUNCTIONS */\n private async getListColorDefault() {\n const functionGetListColorDefault = this.functionGetListColorDefault();\n\n if (functionGetListColorDefault) {\n this.colorDefault.set(await functionGetListColorDefault());\n\n return;\n }\n this.colorDefault.set(await UtilsCache.GetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksuwesfsdfsdf') || []);\n }\n\n private async getListColorCustom() {\n const functionGetListColorCustom = this.functionGetListColorCustom();\n\n if (functionGetListColorCustom) {\n this.colorCustom.set(await functionGetListColorCustom());\n\n return;\n }\n this.colorCustom.set(await UtilsCache.GetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksudvsjahdvjasjdhwesfsdfsdf') || []);\n }\n\n protected handlerPopoverEvent(type: TYPE_POPOVER_EVENT) {\n if (type === 'show') {\n this.showPopup.set(true);\n this.getListColorCustom();\n\n return;\n }\n if (type === 'remove') {\n this.showPopup.set(false);\n }\n }\n\n protected handlerSelectColor(event: Event, color: string) {\n event.stopPropagation();\n this.data.update(value => ({ ...value, color }))\n this.outColorChange.emit(this.data() as IColorPickerData);\n }\n\n protected handlerChangeOpacity() {\n this.outColorChange.emit(this.data() as IColorPickerData);\n }\n\n protected handlerColorChange(event: string) {\n this.colorAdd.set(event);\n }\n\n protected handlerPopoverAddColorEvent(type: TYPE_POPOVER_EVENT) {\n if (type === 'show') {\n this.flagMouse.set({ isMouseEnter: true, isMouseEnterContent: true });\n\n return;\n }\n if (type === 'remove') {\n setTimeout(() => {\n this.flagMouse.set({ isMouseEnter: false, isMouseEnterContent: false })\n }, 500);\n }\n }\n\n protected handlerFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverFunctionControl.set(event);\n }\n\n protected handlerAddColorFunctionControl(event: IPopoverFunctionControlEvent) {\n this.popoverAddColorFunctionControl.set(event);\n }\n\n protected handlerAction(event: Event, action: 'cancel' | 'apply') {\n event.stopPropagation();\n this.popoverAddColorFunctionControl()?.removePopoverOverlay();\n if (action === 'cancel') {\n return;\n }\n const colorAdd = this.colorAdd();\n\n if (!colorAdd) {\n return;\n }\n this.handlerSelectColor(event, colorAdd);\n if (this.colorCustom().find(color => color === colorAdd)) {\n return;\n }\n this.colorCustom.update(value => {\n value.unshift(colorAdd);\n if (value.length > 8) {\n value.splice(8, value.length - 8);\n }\n\n return [...value];\n })\n this.setColorCustom();\n }\n\n private async setColorCustom() {\n const functionSetListColorCustom = this.functionSetListColorCustom();\n\n if (functionSetListColorCustom) {\n await functionSetListColorCustom(this.colorCustom());\n\n return;\n }\n UtilsCache.SetAsync('knfjsdfwenclsdnckjsdfsdfsdfshimdsjdfjksudvsjahdvjasjdhwesfsdfsdf', this.colorCustom(), UtilsCache.CACHE_EXPIRE_NONE);\n }\n\n ngOnDestroy() {\n this.popoverFunctionControl()?.removePopoverOverlay();\n this.popoverAddColorFunctionControl()?.removePopoverOverlay();\n }\n\n}","<div class=\"w-full flex justify-between rounded-[4px]\"\n [class.libs-ui-border-general]=\"!showPopup()\"\n [class.libs-ui-border-primary-focus-general]=\"showPopup()\">\n <div LibsUiComponentsPopoverDirective\n class=\"w-full\"\n [mode]=\"'click-toggle'\"\n [ignoreHiddenPopoverContentWhenMouseLeave]=\"true\"\n [config]=\"{\n template: element,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex(),\n classInclude: 'w-[334px]',\n direction: 'left',\n directionDistance: 4,\n position: {\n mode: 'start',\n distance: 0\n }\n }\"\n [flagMouse]=\"flagMouse()\"\n (outEvent)=\"handlerPopoverEvent($event)\"\n (outFunctionsControl)=\"handlerFunctionControl($event)\">\n <div class=\"py-[8px] px-[16px] flex items-center\">\n <span class=\"w-[16px] h-[16px] rounded-[4px] libs-ui-border-general\"\n [style.background-color]=\"data().color\"></span>\n <span class=\"libs-ui-font-h5r ml-[8px]\">{{ data().color }}</span>\n </div>\n </div>\n <div class=\"w-[80px] shrink-0 libs-ui-border-left-general\">\n <libs_ui-components-inputs-valid [noBorder]=\"true\"\n [dataType]=\"'int'\"\n [minValueNumber]=\"0\"\n [maxValueNumber]=\"100\"\n [(item)]=\"data\"\n [fieldNameBind]=\"'opacity'\"\n [unitsRight]=\"[{id: '%', label: '%'}]\"\n [keySelectedUnitRight]=\"'%'\"\n [classIncludeInput]=\"'text-center !p-0'\"\n (outValueChange)=\"handlerChangeOpacity()\" />\n </div>\n</div>\n\n<ng-template #element>\n <div class=\"p-[16px] w-full\">\n <div class=\"mb-[16px] grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorDefault(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n <div class=\"flex items-center justify-between\">\n <span class=\"libs-ui-font-h5m color-[#6a7383]\">{{ 'i18n_color_custom' | translate }}</span>\n <libs_ui-components-buttons-button [type]=\"'button-link-primary'\"\n [classIconLeft]=\"'libs-ui-icon-add'\"\n [label]=\"'i18n_add_new'\"\n [popover]=\"{\n mode: 'click-toggle',\n ignoreHiddenPopoverContentWhenMouseLeave: true,\n config: {\n template: colorPicker,\n whiteTheme: true,\n ignoreArrow: true,\n widthByParent: false,\n maxWidth: 500,\n maxHeight: 500,\n zIndex: zIndex() + 1,\n classInclude: 'w-[350px]',\n direction: 'left',\n directionDistance: -100,\n position: {\n mode: 'start',\n distance: -165\n }\n }\n }\"\n [classInclude]=\"'py-[2px] px-[0]'\"\n (outPopoverEvent)=\"handlerPopoverAddColorEvent($event)\"\n (outFunctionsControl)=\"handlerAddColorFunctionControl($event)\" />\n </div>\n @if (colorCustom().length) {\n <div class=\"grid gap-y-[4px] gap-x-[2px] grid-cols-8\">\n @for (color of colorCustom(); track $index; let i = $index) {\n <div class=\"py-[5px] px-[8px] relative\">\n @if ((color | lowercase) === (data().color | lowercase)) {\n <div class=\"w-[30px] h-[30px] rounded-[30px] top-0 left-[3px] absolute libs-ui-border-primary-general !border-2\"></div>\n }\n <div class=\"w-[20px] h-[20px] rounded-[20px] cursor-pointer\"\n [class.libs-ui-border-general]=\"(color | lowercase) === '#ffffff'\"\n [style.background-color]=\"color\"\n (click)=\"handlerSelectColor($event, color)\"></div>\n </div>\n }\n </div>\n }\n </div>\n</ng-template>\n\n<ng-template #colorPicker>\n <div class=\"p-[16px] w-auto h-auto\">\n <libs_ui-components-color_picker [customOptions]=\"customOptions()\"\n (outColorChange)=\"handlerColorChange($event)\" />\n <div class=\"flex items-center justify-end pt-[16px]\">\n <libs_ui-components-buttons-button [label]=\"'i18n_cancel'\"\n [type]=\"'button-third'\"\n (outClick)=\"handlerAction($event, 'cancel')\" />\n <libs_ui-components-buttons-button [label]=\"'i18n_apply'\"\n [classInclude]=\"'ml-[16px]'\"\n (outClick)=\"handlerAction($event, 'apply')\" />\n </div>\n </div>\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,15 +1,15 @@
1
1
  {
2
2
  "name": "@libs-ui/components-inputs-color",
3
- "version": "0.2.186",
3
+ "version": "0.2.188",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "^18.2.0",
6
6
  "@angular/core": "^18.2.0",
7
- "@libs-ui/components-buttons-button": "^0.2.186",
8
- "@libs-ui/components-inputs-valid": "^0.2.186",
9
- "@libs-ui/components-popover": "^0.2.186",
10
- "@libs-ui/utils": "^0.2.186",
7
+ "@libs-ui/components-buttons-button": "^0.2.188",
8
+ "@libs-ui/components-inputs-valid": "^0.2.188",
9
+ "@libs-ui/components-popover": "^0.2.188",
10
+ "@libs-ui/utils": "^0.2.188",
11
11
  "@ngx-translate/core": "^15.0.0",
12
- "@libs-ui/components-color-picker": "^0.2.186"
12
+ "@libs-ui/components-color-picker": "^0.2.188"
13
13
  },
14
14
  "sideEffects": false,
15
15
  "module": "fesm2022/libs-ui-components-inputs-color.mjs",