{"version":3,"file":"viitorcloud-ng-utility-library.mjs","sources":["../../../projects/viitorcloud-ng-utility-library/src/lib/services/vc-logger.service.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-loader/vc-loader.component.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-loader/vc-loader.component.html","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-button/vc-button.component.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-button/vc-button.component.html","../../../projects/viitorcloud-ng-utility-library/src/lib/constants/app.constant.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/directives/vc-allow-number-only.directive.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-input/vc-input.component.ts","../../../projects/viitorcloud-ng-utility-library/src/lib/components/vc-input/vc-input.component.html","../../../projects/viitorcloud-ng-utility-library/src/public-api.ts","../../../projects/viitorcloud-ng-utility-library/src/viitorcloud-ng-utility-library.ts"],"sourcesContent":["import { Injectable, isDevMode } from '@angular/core';\r\n\r\n@Injectable({\r\n  providedIn: 'root',\r\n})\r\nexport class VcLoggerService {\r\n  /**\r\n   * The log function logs the value and any additional arguments to the console if the application is\r\n   * in development mode.\r\n   * @param {any} value - The `value` parameter is the main value that you want to log. It can be of\r\n   * any type, as indicated by the `any` type annotation.\r\n   * @param {any[]} rest - The rest parameter allows you to pass an arbitrary number of arguments to\r\n   * the function. In this case, the rest parameter is denoted by the ellipsis (...) and is used to\r\n   * capture any additional arguments passed to the function after the initial \"value\" parameter. These\r\n   * additional arguments are then stored in an array\r\n   */\r\n  static log(value: any, ...rest: any[]): void {\r\n    if (isDevMode()) {\r\n      console.log(value, ...rest);\r\n    }\r\n  }\r\n\r\n  /**\r\n   * The function logs an error to the console.\r\n   * @param {any} error - The \"error\" parameter is of type \"any\", which means it can accept any type of\r\n   * value.\r\n   */\r\n  static error(error: any): void {\r\n    console.error(error);\r\n  }\r\n\r\n  /**\r\n   * The \"warn\" function logs a warning message to the console if the application is in development\r\n   * mode.\r\n   * @param {any} value - The value parameter is the value that you want to log as a warning message.\r\n   * @param {any[]} rest - The rest parameter allows you to pass an arbitrary number of arguments to\r\n   * the function. In this case, the rest parameter `...rest` is used to capture any additional\r\n   * arguments that are passed to the `warn` function after the `value` parameter. These additional\r\n   * arguments can be accessed as an array within\r\n   */\r\n  static warn(value: any, ...rest: any[]): void {\r\n    console.warn(value, ...rest);\r\n  }\r\n\r\n  /**\r\n   * The function clears the console.\r\n   */\r\n  static clear(): void {\r\n    console.clear();\r\n  }\r\n}\r\n","import { NgClass } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n  selector: 'vc-loader',\r\n  standalone: true,\r\n  imports: [NgClass],\r\n  templateUrl: './vc-loader.component.html',\r\n  styleUrls: ['./vc-loader.component.scss']\r\n})\r\nexport class VcLoaderComponent {\r\n  /* The `@Input() class!: { [key: string]: boolean };` is a decorator in Angular that marks the\r\n`class` property as an input property. */\r\n  @Input() class!: { [key: string]: boolean };\r\n}\r\n","<div class=\"flex justify-center items-center\">\r\n    <div class=\"spinner animate-spin inline-block border-4 border-solid rounded-full\" [ngClass]=\"class\" role=\"status\">\r\n    </div>\r\n</div>","import { CommonModule } from '@angular/common';\r\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\r\nimport { Params } from '@angular/router';\r\nimport { VcLoaderComponent } from '../vc-loader/vc-loader.component';\r\n\r\n@Component({\r\n  selector: 'vc-button',\r\n  standalone: true,\r\n  imports: [CommonModule, VcLoaderComponent],\r\n  templateUrl: './vc-button.component.html',\r\n  styleUrls: ['./vc-button.component.scss']\r\n})\r\nexport class VcButtonComponent {\r\n\r\n  @Input() type: 'button' | 'submit' = 'button';\r\n  @Input() class!: Params;\r\n  @Input() isDisabled = false;\r\n  @Input() spin = false;\r\n\r\n  @Output() buttonTap = new EventEmitter<void>();\r\n  /**\r\n   * The click function emits the buttonTap event.\r\n   */\r\n  click(): void {\r\n    this.buttonTap.emit();\r\n  }\r\n}","<button [type]=\"type\" [disabled]=\"isDisabled\" [ngClass]=\"class\" (click)=\"click()\">\r\n    <ng-container *ngIf=\"!spin; else spinner;\">\r\n        <ng-content></ng-content>\r\n    </ng-container>\r\n</button>\r\n\r\n<ng-template #spinner>\r\n    <vc-loader [class]=\"{ 'w-6 h-6 border-x-secondary border-y-transparent': true }\"></vc-loader>\r\n</ng-template>","export enum IconPosition {\r\n    left = 'left',\r\n    right = 'right',\r\n}\r\n\r\nexport enum RegexType {\r\n    decimal = 'decimal',\r\n    integer = 'integer'\r\n}\r\n\r\nexport const REGEX_CONSTANTS = {\r\n    EMAIL_REGEX: /^[\\w-.]+@([\\w-]+.)+[\\w-]{2,4}$/,\r\n    PASSWORD_REGEX: /^(?=.*?[A-Z])(?=.*?[a-z])(?=.*?\\d)(?=.*?[#?!@$%^&*-]).{8,}$/,\r\n    WEB_URL_REGEX: /^((https?|ftp|smtp):\\/\\/)?(www.)?[a-z0-9]+\\.[a-z]+(\\/[a-zA-Z0-9#]+\\/?)*$/,\r\n    INTEGER_REGEX: /^\\d*$/,\r\n    DECIMAL_REGEX: /^\\d*\\.?\\d*$/,\r\n    ZIP_REGEX: /^[0-9]{4,6}$/\r\n};\r\n","import { Directive, ElementRef, HostListener, Input } from \"@angular/core\";\r\nimport { REGEX_CONSTANTS, RegexType } from \"../constants/app.constant\";\r\n\r\n@Directive({\r\n    selector: '[vcAllowNumberOnly]',\r\n    standalone: true\r\n})\r\nexport class VcAllowNumberOnlyDirective {\r\n\r\n    /* The `@Input() vcAllowNumberOnly = false;` is a decorator that allows the `vcAllowNumberOnly`\r\n    property to be set from the outside. It is initialized with a default value of `false`. */\r\n    @Input() vcAllowNumberOnly = false;\r\n    regex!: RegExp;\r\n\r\n    /* The `@Input() set regexType(type: string)` is a setter method for the `regexType` input property.\r\n    It allows the value of `regexType` to be set from the outside. */\r\n    @Input() set regexType(type: string) {\r\n        switch (type) {\r\n            case RegexType.decimal:\r\n                this.regex = REGEX_CONSTANTS.DECIMAL_REGEX;\r\n                break;\r\n            case RegexType.integer:\r\n                this.regex = REGEX_CONSTANTS.INTEGER_REGEX;\r\n                break;\r\n            default:\r\n                this.regex = REGEX_CONSTANTS.DECIMAL_REGEX;\r\n                break;\r\n        }\r\n    }\r\n\r\n    /**\r\n     * The constructor function takes an ElementRef parameter and assigns it to the private el property.\r\n     * @param {ElementRef} el - The `el` parameter is of type `ElementRef`, which is a wrapper around a\r\n     * native element inside a View. It can be used to access properties and methods of the native\r\n     * element.\r\n     */\r\n    constructor(\r\n        private el: ElementRef\r\n    ) { }\r\n\r\n    /* The `@HostListener('keypress', ['']) keyPress(event: KeyboardEvent): void` is a decorator that\r\n    listens for the 'keypress' event on the host element and triggers the `keyPress` method when the\r\n    event occurs. */\r\n    @HostListener('keypress', ['$event']) keyPress(event: KeyboardEvent): void {\r\n        const val = this.el.nativeElement.value + event.key;\r\n        if (this.vcAllowNumberOnly) {\r\n            if (!this.regex.test(val)) {\r\n                event.preventDefault();\r\n                event.stopPropagation();\r\n            }\r\n        }\r\n    }\r\n\r\n}\r\n","import { NgClass, NgIf } from \"@angular/common\";\r\nimport { Component, ContentChild, Input, Renderer2, ViewChild, ViewContainerRef, forwardRef } from \"@angular/core\";\r\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from \"@angular/forms\";\r\nimport { Params } from \"@angular/router\";\r\nimport { IconPosition, RegexType } from \"../../constants/app.constant\";\r\nimport { VcAllowNumberOnlyDirective } from \"../../directives/vc-allow-number-only.directive\";\r\n\r\nconst modules = [\r\n  NgClass,\r\n  FormsModule,\r\n  NgIf,\r\n  VcAllowNumberOnlyDirective,\r\n  FormsModule\r\n];\r\n\r\n@Component({\r\n  selector: 'vc-input',\r\n  standalone: true,\r\n  providers: [{\r\n    provide: NG_VALUE_ACCESSOR,\r\n    useExisting: forwardRef(() => VcInputComponent),\r\n    multi: true\r\n  }],\r\n  templateUrl: './vc-input.component.html',\r\n  styleUrls: ['./vc-input.component.scss'],\r\n  imports: [...modules]\r\n\r\n})\r\nexport class VcInputComponent implements ControlValueAccessor {\r\n\r\n  /* These are the input properties and class members of the `VcInputComponent` class. */\r\n\r\n  //#region required\r\n  @Input({ required: true }) name!: string;\r\n  //#endregion \r\n\r\n  //#region optional \r\n  @Input() type: 'text' | 'email' | 'password' = 'text';\r\n  @Input() position: 'left' | 'right' = 'left';\r\n  @Input() placeholder = '';\r\n  @Input() maxLength = undefined;\r\n  @Input() required = false;\r\n  @Input() isDisabled = false;\r\n  @Input() readOnly = false;\r\n  @Input() applyAllowNumberOnly = false;\r\n  @Input() customClass!: Params;\r\n  @Input() label!: string;\r\n  @Input() pattern!: RegExp;\r\n  @Input() regexType!: RegexType;\r\n  @ContentChild('projectedElement', { static: false })\r\n  projectedSvgElement!: any;\r\n  @ViewChild('input', { read: ViewContainerRef }) inputElement!: ViewContainerRef;\r\n  #controlValue = '';\r\n  #propagateChange: (_param: unknown) => void = () => { }; // Initialize the property\r\n  #propagateTouched: (_param: unknown) => void = () => { }; // Initialize the property\r\n  //#endregion \r\n\r\n  constructor(private renderer: Renderer2) { }\r\n\r\n  /**\r\n   * The function returns the value of the private control property.\r\n   * @returns The value of the private property `#controlValue` is being returned.\r\n   */\r\n  get control(): string {\r\n    return this.#controlValue;\r\n  }\r\n  /**\r\n   * The function sets the value of a control and propagates the change to other components.\r\n   * @param {string} value - The value parameter is a string that represents the new value for the\r\n   * control.\r\n   */\r\n  set control(value: string) {\r\n    this.#controlValue = value;\r\n    this.#propagateChange !== undefined && this.#propagateChange(this.#controlValue);\r\n  }\r\n\r\n  /**\r\n   * The writeValue function assigns a value to the control property if the value is not empty.\r\n   * @param {string} value - The value parameter is a string that represents the value to be assigned to\r\n   * the control property.\r\n   */\r\n  writeValue(value: string): void {\r\n    value && (this.control = value);\r\n  }\r\n\r\n  /**\r\n   * The function \"registerOnChange\" sets a callback function to be called when a change event occurs.\r\n   * @param fn - A function that will be called when a change event occurs.\r\n   */\r\n  registerOnChange(fn: () => void): void {\r\n    this.#propagateChange = fn;\r\n  }\r\n\r\n  /**\r\n   * The function \"registerOnTouched\" assigns a callback function to the \"propagateTouched\" property.\r\n   * @param fn - A function that takes no arguments and returns nothing.\r\n   */\r\n  registerOnTouched(fn: () => void): void {\r\n    this.#propagateTouched = fn;\r\n  }\r\n\r\n  /**\r\n   * The function \"touched\" calls the \"propagateTouched\" function with the provided event parameter.\r\n   * @param {any}  - The  parameter is typically an object that represents the event that was\r\n   * triggered. It contains information about the event, such as the target element, event type, and any\r\n   * additional data associated with the event. In this case, it is of type \"any\", which means it can be\r\n   * any type of\r\n   */\r\n  touched($event: any): void {\r\n    this.#propagateTouched($event);\r\n  }\r\n\r\n  /**\r\n   * The ngAfterViewInit function adds dynamic styles to an SVG element and an input element based on the\r\n   * position value.\r\n   */\r\n  ngAfterViewInit() {\r\n    if (this.projectedSvgElement) {\r\n      const element = this.projectedSvgElement?._elementRef.nativeElement;\r\n      // Add styles dynamically using Renderer2\r\n      if (this.position === IconPosition.left) {\r\n        this.renderer.addClass(element, 'left-[10px]');\r\n        this.renderer.addClass(this.inputElement.element.nativeElement, 'pl-[44px]');\r\n      }\r\n      else {\r\n        this.renderer.addClass(element, 'right-[10px]');\r\n        this.renderer.addClass(this.inputElement.element.nativeElement, 'pl-[10px]');\r\n      }\r\n    }\r\n  }\r\n}","<ng-content select=\"[matIcon]\"></ng-content>\r\n<input #input [(ngModel)]='control' [vcAllowNumberOnly]=\"applyAllowNumberOnly\" [attr.max]=\"maxLength\"\r\n    [pattern]=\"pattern\" [required]=\"required\" [attr.name]=\"name\" [regexType]=\"regexType\" [attr.type]=\"type\"\r\n    [ngClass]=\"customClass\" [placeholder]=\"placeholder\" (blur)=\"touched($event)\" />","/*\r\n * Public API Surface of viitorcloud-ng-utility-library\r\n */\r\n\r\n// #region Services\r\n\r\nexport * from './lib/services/vc-logger.service';\r\n\r\n//#endregion\r\n\r\n//#region UI Elements\r\n\r\nexport * from './lib/components/vc-button/vc-button.component';\r\nexport * from './lib/components/vc-input/vc-input.component';\r\nexport * from './lib/components/vc-loader/vc-loader.component';\r\n\r\n//#endregion\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}