{"version":3,"file":"verben-ng-ui-src-lib-control-options.mjs","sources":["../../../projects/verben-ng-ui/src/lib/control-options/control-options.directive.ts","../../../projects/verben-ng-ui/src/lib/control-options/control-options.module.ts","../../../projects/verben-ng-ui/src/lib/control-options/verben-ng-ui-src-lib-control-options.ts"],"sourcesContent":["import { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from '@angular/core';\n\n@Directive({\n  selector: '[controlOptions]'\n})\nexport class ControlOptionsDirective implements OnChanges {\n  \n  // Inputs for various control options\n  @Input() hidden: boolean = false;\n  @Input() disabled: boolean = false;\n  @Input() height: string | null = null;        \n  @Input() width: string | null = null;    \n  @Input() minHeight: string | null = null;\n  @Input() minWidth: string | null = null; \n  @Input() maxHeight: string | null = null;\n  @Input() maxWidth: string | null = null; \n  @Input() position: 'center' | 'left' | 'right' | 'top' | 'bottom' | null = null;\n  @Input() scrollable: boolean = false;\n  @Input() singleLine: boolean = false;\n  @Input() multiLine: boolean = false;\n  @Input() border: string | null = null; \n  @Input() borderRadius: string | null = null;\n  @Input() textColor: string | null = null; \n  @Input() backgroundColor: string | null = null;\n  @Input() hoverStyles: { [key: string]: string } | null = null;\n  \n  constructor(private el: ElementRef, private renderer: Renderer2) {}\n\n  ngOnChanges(changes: SimpleChanges): void {\n    this.applyStyles();\n  }\n\n  private applyStyles(): void {\n    const nativeElement = this.el.nativeElement;\n\n    // Handle hidden property\n    this.renderer.setStyle(nativeElement, 'display', this.hidden ? 'none' : 'block');\n\n    // Handle disabled property\n    if (this.disabled) {\n      this.renderer.setAttribute(nativeElement, 'disabled', 'true');\n      this.renderer.setStyle(nativeElement, 'pointer-events', 'none');\n      this.renderer.setStyle(nativeElement, 'opacity', '0.6');\n    } else {\n      this.renderer.removeAttribute(nativeElement, 'disabled');\n      this.renderer.setStyle(nativeElement, 'pointer-events', 'auto');\n      this.renderer.setStyle(nativeElement, 'opacity', '1');\n    }\n\n    // Apply height, width, min/max constraints\n    this.applyDimension(nativeElement, 'height', this.height);\n    this.applyDimension(nativeElement, 'width', this.width);\n    this.applyDimension(nativeElement, 'min-height', this.minHeight);\n    this.applyDimension(nativeElement, 'min-width', this.minWidth);\n    this.applyDimension(nativeElement, 'max-height', this.maxHeight);\n    this.applyDimension(nativeElement, 'max-width', this.maxWidth);\n\n    // Handle position\n    this.handlePosition();\n\n    // Scrollable property\n    this.renderer.setStyle(nativeElement, 'overflow', this.scrollable ? 'auto' : 'hidden');\n\n    // Single-line or multi-line\n    if (this.singleLine) {\n      this.renderer.setStyle(nativeElement, 'white-space', 'nowrap');\n    } else if (this.multiLine) {\n      this.renderer.setStyle(nativeElement, 'white-space', 'normal');\n    }\n\n    // Apply border and border-radius\n    this.applyStyle(nativeElement, 'border', this.border);\n    this.applyStyle(nativeElement, 'border-radius', this.borderRadius);\n\n    // Apply text color and background color\n    this.applyStyle(nativeElement, 'color', this.textColor);\n    this.applyStyle(nativeElement, 'background-color', this.backgroundColor);\n  }\n\n  // Helper function to apply height, width, and similar styles\n  private applyDimension(element: any, style: string, value: string | null): void {\n    if (value) {\n      this.renderer.setStyle(element, style, value);\n    } else {\n      this.renderer.removeStyle(element, style);\n    }\n  }\n\n  // Generalized style application\n  private applyStyle(element: any, style: string, value: string | null): void {\n    if (value) {\n      this.renderer.setStyle(element, style, value);\n    } else {\n      this.renderer.removeStyle(element, style);\n    }\n  }\n\n  // Handle position based on the input\n  private handlePosition(): void {\n    const nativeElement = this.el.nativeElement;\n\n    switch (this.position) {\n      case 'center':\n        this.renderer.setStyle(nativeElement, 'position', 'absolute');\n        this.renderer.setStyle(nativeElement, 'top', '50%');\n        this.renderer.setStyle(nativeElement, 'left', '50%');\n        this.renderer.setStyle(nativeElement, 'transform', 'translate(-50%, -50%)');\n        break;\n      case 'left':\n        this.renderer.setStyle(nativeElement, 'position', 'absolute');\n        this.renderer.setStyle(nativeElement, 'left', '0');\n        break;\n      case 'right':\n        this.renderer.setStyle(nativeElement, 'position', 'absolute');\n        this.renderer.setStyle(nativeElement, 'right', '0');\n        break;\n      case 'top':\n        this.renderer.setStyle(nativeElement, 'position', 'absolute');\n        this.renderer.setStyle(nativeElement, 'top', '0');\n        break;\n      case 'bottom':\n        this.renderer.setStyle(nativeElement, 'position', 'absolute');\n        this.renderer.setStyle(nativeElement, 'bottom', '0');\n        break;\n      default:\n        this.renderer.setStyle(nativeElement, 'position', 'static');\n    }\n  }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { ControlOptionsDirective } from './control-options.directive';\n\n@NgModule({\n  declarations: [ControlOptionsDirective],\n  imports: [CommonModule],\n  exports: [ControlOptionsDirective]\n})\nexport class ControlOptionsModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}