{"version":3,"file":"verben-ng-ui-src-lib-validate.mjs","sources":["../../../projects/verben-ng-ui/src/lib/validate/error-message.service.ts","../../../projects/verben-ng-ui/src/lib/validate/validate.directive.ts","../../../projects/verben-ng-ui/src/lib/validate/validate.module.ts","../../../projects/verben-ng-ui/src/lib/validate/verben-ng-ui-src-lib-validate.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ErrorMessageService {\n  public createErrorMessage(\n    inputElement: HTMLInputElement,\n    message: string,\n    position: 'above' | 'below',\n    color: string,\n    showErrorIcon: boolean,\n    tooltipPosition: 'top' | 'bottom' | 'left' | 'right'\n  ) {\n    this.removeErrorMessage(inputElement);\n\n    // Error message element\n    if (message) {\n      const errorElement = document.createElement('span');\n      errorElement.textContent = message;\n      errorElement.style.color = color;\n      errorElement.style.fontSize = '12px';\n      errorElement.classList.add('error-message');\n\n      if (position === 'above') {\n        inputElement.parentNode?.insertBefore(errorElement, inputElement);\n      } else {\n        inputElement.parentNode?.insertBefore(errorElement, inputElement.nextSibling);\n      }\n    }\n\n    // Tooltip behavior for the error icon\n    if (showErrorIcon) {\n      const errorDot = document.createElement('div');\n      errorDot.style.width = '8px';\n      errorDot.style.height = '8px';\n      errorDot.style.backgroundColor = 'red';\n      errorDot.style.borderRadius = '50%';\n      errorDot.style.position = 'absolute';\n      errorDot.style.top = '50%';\n      errorDot.style.right = '10px';\n      errorDot.style.transform = 'translateY(-50%)';\n      errorDot.style.cursor = 'pointer';\n      errorDot.classList.add('error-dot');\n\n      // Tooltip element\n      const tooltip = document.createElement('span');\n      tooltip.textContent = message;\n      tooltip.style.position = 'absolute';\n      tooltip.style.padding = '5px';\n      tooltip.style.backgroundColor = 'red';\n      tooltip.style.color = 'white';\n      tooltip.style.borderRadius = '4px';\n      tooltip.style.fontSize = '10px';\n      tooltip.style.whiteSpace = 'nowrap';\n      tooltip.style.visibility = 'hidden'; // Hidden until hover/click\n      tooltip.classList.add('error-tooltip');\n\n      this.setTooltipPosition(tooltip, errorDot, tooltipPosition);\n\n      // Show tooltip on hover/click\n      errorDot.addEventListener('mouseenter', () => (tooltip.style.visibility = 'visible'));\n      errorDot.addEventListener('mouseleave', () => (tooltip.style.visibility = 'hidden'));\n      errorDot.addEventListener('click', () => (tooltip.style.visibility = 'visible'));\n\n      inputElement.parentNode?.appendChild(errorDot);\n      inputElement.parentNode?.appendChild(tooltip);\n    }\n  }\n\n  private setTooltipPosition(tooltip: HTMLElement, errorDot: HTMLElement, position: 'top' | 'bottom' | 'left' | 'right') {\n    switch (position) {\n      case 'top':\n        tooltip.style.bottom = '20px';\n        tooltip.style.left = '50%';\n        tooltip.style.transform = 'translateX(-50%)';\n        break;\n      case 'bottom':\n        tooltip.style.top = '20px';\n        tooltip.style.left = '50%';\n        tooltip.style.transform = 'translateX(-50%)';\n        break;\n      case 'left':\n        tooltip.style.right = '20px';\n        tooltip.style.top = '50%';\n        tooltip.style.transform = 'translateY(-50%)';\n        break;\n      case 'right':\n        tooltip.style.left = '20px';\n        tooltip.style.top = '50%';\n        tooltip.style.transform = 'translateY(-50%)';\n        break;\n    }\n  }\n\n  public removeErrorMessage(inputElement: HTMLInputElement) {\n    const errorElements = inputElement.parentNode?.querySelectorAll('.error-message, .error-dot, .error-tooltip');\n    if (errorElements) {\n      errorElements.forEach((errorElement) => {\n        errorElement.remove();\n      });\n    }\n  }\n}\n","import { Directive, ElementRef, Input, HostListener, Renderer2 } from '@angular/core';\nimport { ErrorMessageService } from './error-message.service';\n\n@Directive({\n  selector: '[appValidate]'\n})\nexport class ValidateDirective {\n  @Input('appValidate') validationType: 'text' | 'number' | 'decimal' | 'integer' | 'email' = 'text';\n  @Input() required: boolean = false;\n  @Input() showBorder: boolean = true;  // The controlling factor for the error icon\n  @Input() showErrorMessage: boolean = true;\n\n  @Input() errorBorderColor: string = 'red';  // Border color for errors\n  @Input() errorMessageColor: string = 'red';  // Color for error message\n  @Input() errorIconTooltipPosition: 'top' | 'bottom' | 'left' | 'right' = 'top'; // Tooltip position for error dot\n  @Input() showErrorIcon: boolean = true;\n\n  constructor(\n    private el: ElementRef,\n    private errorMessageService: ErrorMessageService,\n    private renderer: Renderer2\n  ) {}\n\n  @HostListener('input', ['$event.target']) onInput(inputElement: any) {\n    const value = inputElement.value.trim();\n\n    switch (this.validationType) {\n      case 'text':\n        this.validateText(inputElement, value);\n        break;\n      case 'number':\n        this.validateNumber(inputElement, value);\n        break;\n      case 'decimal':\n        this.validateDecimal(inputElement, value);\n        break;\n      case 'integer':\n        this.validateInteger(inputElement, value);\n        break;\n      case 'email':\n        this.validateEmail(inputElement, value);\n        break;\n    }\n  }\n\n  private validateText(input: any, value: string) {\n    if (this.required && value === '') {\n      this.showError(input, 'Text is required');\n    } else {\n      this.clearError(input);\n    }\n  }\n\n  private validateNumber(input: any, value: string) {\n    if (isNaN(+value)) {\n      this.blockInvalidInput(input, 'Please enter a valid number');\n    } else {\n      this.clearError(input);\n    }\n  }\n\n  private validateDecimal(input: any, value: string) {\n    const regex = /^\\d*\\.?\\d*$/;\n    if (!regex.test(value)) {\n      this.showError(input, 'Please enter a valid decimal number');\n    } else {\n      this.clearError(input);\n    }\n  }\n\n  private validateInteger(input: any, value: string) {\n    const regex = /^\\d+$/;\n    if (!regex.test(value)) {\n      this.blockInvalidInput(input, 'Please enter a valid integer');\n    } else {\n      this.clearError(input);\n    }\n  }\n\n  private validateEmail(input: any, value: string) {\n    const regex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n    if (!regex.test(value)) {\n      this.blockInvalidInput(input, 'Please enter a valid email address');\n    } else {\n      this.clearError(input);\n    }\n  }\n\n  private blockInvalidInput(input: any, message: string) {\n    input.value = '';\n    this.showError(input, message);\n  }\n\n  private showError(input: any, message: string) {\n    if (this.showBorder) {\n      this.renderer.setStyle(input, 'borderColor', this.errorBorderColor);\n      this.renderer.addClass(input, 'error-with-dot'); // Add error class\n\n\n    }\n  }\n\n  private clearError(input: any) {\n    if (this.showBorder) {\n      this.renderer.removeStyle(input, 'borderColor');\n      this.renderer.removeClass(input, 'error-with-dot'); // Remove error class\n    }\n    this.errorMessageService.removeErrorMessage(input);\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { ValidateDirective } from './validate.directive';\nimport { ErrorMessageService } from './error-message.service';\n\n\n@NgModule({\n  declarations: [\n    ValidateDirective\n  ],\n  providers: [\n    ErrorMessageService\n  ],\n  exports: [\n    ValidateDirective\n  ]\n})\nexport class ValidationModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.ErrorMessageService"],"mappings":"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"}