drux-ui-angular
Version:
[](https://www.npmjs.com/package/drux-ui-angular) [](https://www.npmjs.com/package/drux-ui-angular) [
{"version":3,"file":"drux-ui-angular.mjs","sources":["../../../projects/drux-ui/src/lib/essentials/dr-button/dr-button.component.ts","../../../projects/drux-ui/src/lib/essentials/dr-button/dr-button.component.html","../../../projects/drux-ui/src/lib/directives/required.directive.ts","../../../projects/drux-ui/src/lib/essentials/dr-input/dr-input.component.ts","../../../projects/drux-ui/src/lib/essentials/dr-input/dr-input.component.html","../../../projects/drux-ui/src/lib/dr-accordion/dr-accordion.component.ts","../../../projects/drux-ui/src/lib/dr-accordion/dr-accordion.component.html","../../../projects/drux-ui/src/lib/essentials/dr-icon/dr-icon.component.ts","../../../projects/drux-ui/src/lib/essentials/dr-icon/dr-icon.component.html","../../../projects/drux-ui/src/lib/directives/show-char-count.directive.ts","../../../projects/drux-ui/src/lib/essentials/dr-text-area/dr-text-area.component.ts","../../../projects/drux-ui/src/lib/essentials/dr-text-area/dr-text-area.component.html","../../../projects/drux-ui/src/lib/essentials/dr-checkbox/dr-checkbox.component.ts","../../../projects/drux-ui/src/lib/essentials/dr-checkbox/dr-checkbox.component.html","../../../projects/drux-ui/src/drux-ui-angular.ts"],"sourcesContent":["import { CommonModule } from '@angular/common';\r\nimport { Component, Input, signal } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dr-button',\r\n standalone: true,\r\n imports: [CommonModule],\r\n styleUrls: ['./dr-button.component.scss'],\r\n templateUrl: './dr-button.component.html',\r\n})\r\nexport class DrButtonComponent {\r\n @Input() label = 'Click Me';\r\n @Input() type:\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'danger'\r\n | 'warning'\r\n | 'info'\r\n | 'light'\r\n | 'dark' = 'primary';\r\n @Input() size: 'sm' | 'md' | 'lg' = 'md';\r\n @Input() block = false;\r\n @Input() loading = false;\r\n @Input() disabled = false;\r\n @Input() outlined = false;\r\n @Input() text = false;\r\n @Input() raised = false;\r\n @Input() link = false;\r\n @Input() nativeType: 'button' | 'submit' | 'reset' = 'button';\r\n @Input() ariaLabel: string = '';\r\n\r\n clicked = signal(false);\r\n\r\n onClick() {\r\n if (this.disabled || this.loading) return;\r\n this.clicked.set(true);\r\n }\r\n\r\n get classes() {\r\n return [\r\n 'btn',\r\n this.getStyleClass(),\r\n this.sizeClass(),\r\n this.block ? 'w-100' : '',\r\n this.raised ? 'shadow-sm' : '',\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n getStyleClass() {\r\n if (this.text) return `btn btn-link text-${this.type}`;\r\n if (this.outlined) return `btn btn-outline-${this.type}`;\r\n return `btn btn-${this.type}`;\r\n }\r\n\r\n sizeClass() {\r\n switch (this.size) {\r\n case 'sm':\r\n return 'btn-sm';\r\n case 'lg':\r\n return 'btn-lg';\r\n default:\r\n return '';\r\n }\r\n }\r\n}\r\n","<button\r\n [attr.type]=\"nativeType\"\r\n [class]=\"classes + ' position-relative'\"\r\n [disabled]=\"disabled || loading\"\r\n (click)=\"onClick()\"\r\n [attr.aria-label]=\"ariaLabel\"\r\n>\r\n @if (loading) {\r\n <span class=\"spinner-border spinner-border-sm me-2\" role=\"status\"></span>\r\n }\r\n\r\n @if (label) {\r\n {{ label }}\r\n }\r\n</button>\r\n","import { Directive, ElementRef, OnInit } from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[drRequired]',\r\n standalone: true,\r\n})\r\nexport class DrRequiredDirective implements OnInit {\r\n constructor(private el: ElementRef<HTMLInputElement>) {}\r\n\r\n ngOnInit(): void {\r\n this.el.nativeElement.setAttribute('required', '');\r\n this.el.nativeElement.classList.add('is-required');\r\n }\r\n}\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, Output, EventEmitter, signal } from '@angular/core';\r\nimport { DrRequiredDirective } from '../../directives/required.directive';\r\n\r\ntype InputType = 'text' | 'number' | 'password';\r\n\r\n@Component({\r\n selector: 'dr-input',\r\n standalone: true,\r\n imports: [CommonModule, DrRequiredDirective],\r\n templateUrl: './dr-input.component.html',\r\n styleUrls: ['./dr-input.component.scss'],\r\n})\r\nexport class DrInputComponent {\r\n @Input() type: InputType = 'text';\r\n @Input() placeholder: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() value: string = '';\r\n @Output() valueChange = new EventEmitter<string>();\r\n\r\n inputValue = signal(this.value);\r\n\r\n onInput(event: Event) {\r\n const target = event.target as HTMLInputElement;\r\n const val =\r\n this.type === 'number'\r\n ? target.value.replace(/[^0-9.]/g, '')\r\n : target.value;\r\n this.inputValue.set(val);\r\n this.valueChange.emit(val);\r\n }\r\n}\r\n","<!-- Simple Input Only -->\r\n<input\r\n class=\"form-control\"\r\n [type]=\"type\"\r\n [placeholder]=\"placeholder\"\r\n [disabled]=\"disabled\"\r\n [value]=\"inputValue()\"\r\n (input)=\"onInput($event)\"\r\n drRequired\r\n/>\r\n","import { CommonModule } from '@angular/common';\r\nimport { Component, Input, signal } from '@angular/core';\r\nimport { DrButtonComponent } from '../essentials/dr-button/dr-button.component';\r\n\r\n@Component({\r\n selector: 'dr-accordion',\r\n standalone: true,\r\n imports: [CommonModule, DrButtonComponent],\r\n styleUrls: ['./dr-accordion.component.scss'],\r\n templateUrl: './dr-accordion.component.html',\r\n})\r\nexport class DrAccordionComponent {\r\n @Input() title: string = 'Accordion Title';\r\n @Input() variant:\r\n | 'primary'\r\n | 'secondary'\r\n | 'success'\r\n | 'danger'\r\n | 'warning'\r\n | 'info'\r\n | 'light'\r\n | 'dark' = 'primary';\r\n @Input() expanded = false;\r\n @Input() disabled = false;\r\n @Input() flush = false;\r\n\r\n isOpen = signal(this.expanded);\r\n\r\n toggle() {\r\n if (this.disabled) return;\r\n this.isOpen.update((val) => !val);\r\n }\r\n\r\n get headerClass() {\r\n return [\r\n 'accordion-header',\r\n this.disabled ? 'opacity-50 pointer-events-none' : '',\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n\r\n get bodyClass() {\r\n return [\r\n 'accordion-body',\r\n !this.flush ? `border border-top border-${this.variant}` : '',\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n }\r\n}\r\n","<div class=\"accordion my-2\">\r\n <div class=\"accordion-item\">\r\n <h2 class=\"{{ headerClass }}\">\r\n <dr-button\r\n [label]=\"title\"\r\n (click)=\"toggle()\"\r\n [ariaLabel]=\"title\"\r\n [type]=\"variant\"\r\n [block]=\"true\"\r\n [outlined]=\"true\"\r\n class=\"accordion-toggle-btn\"\r\n >\r\n <span class=\"d-flex justify-content-between align-items-center w-100\">\r\n <span>{{ title }}</span>\r\n </span>\r\n </dr-button>\r\n </h2>\r\n <div *ngIf=\"isOpen()\">\r\n <div [class]=\"bodyClass\">\r\n <ng-content></ng-content>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n","import { CommonModule } from '@angular/common';\r\nimport { ChangeDetectionStrategy, Component, Input } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'dr-icon',\r\n standalone: true,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n imports: [CommonModule],\r\n styleUrls: ['./dr-icon.component.scss'],\r\n templateUrl: './dr-icon.component.html',\r\n})\r\nexport class DrIconComponent {\r\n @Input() name = '';\r\n @Input() size: 'sm' | 'md' | 'lg' | 'xl' = 'md';\r\n @Input() color?: string;\r\n @Input() ariaHidden: 'true' | 'false' = 'true';\r\n\r\n get computedClasses(): string[] {\r\n const sizeMap: Record<string, string> = {\r\n sm: 'fs-6',\r\n md: 'fs-5',\r\n lg: 'fs-4',\r\n xl: 'fs-3',\r\n };\r\n\r\n const base = this.name.trim(); \r\n const sizeClass = sizeMap[this.size] ?? 'fs-5';\r\n return [base, sizeClass];\r\n }\r\n}\r\n","<i\r\nclass=\"drux-icon\"\r\n[ngClass]=\"computedClasses\"\r\n[attr.aria-hidden]=\"ariaHidden\"\r\n></i>","import {\r\n Directive,\r\n Input,\r\n OnChanges,\r\n ElementRef,\r\n Renderer2,\r\n} from '@angular/core';\r\n\r\n@Directive({\r\n selector: '[showCharCount]',\r\n standalone: true,\r\n})\r\nexport class ShowCharCountDirective implements OnChanges {\r\n @Input() model: string = '';\r\n @Input() maxLength: number | null = null;\r\n\r\n constructor(private el: ElementRef, private renderer: Renderer2) {}\r\n\r\n ngOnChanges() {\r\n const currentLength = this.model?.length ?? 0;\r\n const maxLength = this.maxLength ?? 0;\r\n const percentage = Math.min((currentLength / maxLength) * 100, 100);\r\n\r\n if (percentage >= 90) {\r\n this.renderer.setStyle(this.el.nativeElement, 'color', '#dc3545'); // red\r\n } else if (percentage >= 70) {\r\n this.renderer.setStyle(this.el.nativeElement, 'color', '#ffc107'); // yellow\r\n } else {\r\n this.renderer.setStyle(this.el.nativeElement, 'color', '#6c757d'); // muted\r\n }\r\n }\r\n}\r\n","import {\r\n Component,\r\n Input,\r\n signal,\r\n computed,\r\n ContentChild,\r\n AfterContentInit,\r\n ElementRef,\r\n ViewChild,\r\n Renderer2,\r\n Output,\r\n EventEmitter,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { ShowCharCountDirective } from '../../directives/show-char-count.directive';\r\n\r\n@Component({\r\n selector: 'dr-textarea',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule, ShowCharCountDirective],\r\n templateUrl: './dr-text-area.component.html',\r\n styleUrls: ['./dr-text-area.component.scss'],\r\n})\r\nexport class DrTextareaComponent implements AfterContentInit {\r\n private _model: string = '';\r\n @Input() label: string = '';\r\n @Input() placeholder: string = '';\r\n @Input() rows: number = 3;\r\n @Input() disabled: boolean = false;\r\n @Input() readonly: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() error: string = '';\r\n @Input() maxLength: number | null = null;\r\n\r\n @Input()\r\n set model(val: string) {\r\n this._model = val;\r\n this.modelSignal.set(val);\r\n }\r\n get model(): string {\r\n return this._model;\r\n }\r\n\r\n @Output() modelChange = new EventEmitter<string>();\r\n\r\n @Input()\r\n set showCharCount(val: any) {\r\n this._showCharCount = this.coerceBoolean(val);\r\n }\r\n get showCharCount(): boolean {\r\n return this._showCharCount;\r\n }\r\n private _showCharCount = false;\r\n\r\n @Input()\r\n set autoResize(val: any) {\r\n this._autoResize = this.coerceBoolean(val);\r\n }\r\n get autoResize(): boolean {\r\n return this._autoResize;\r\n }\r\n private _autoResize = false;\r\n\r\n @ViewChild('textareaRef') textareaRef!: ElementRef;\r\n\r\n focused = signal(false);\r\n modelSignal = signal<string>('');\r\n charCount = computed(() => this.modelSignal().length);\r\n\r\n constructor(private renderer: Renderer2) {}\r\n\r\n ngAfterContentInit() {\r\n if (this.autoResize && this.textareaRef) {\r\n this.adjustHeight();\r\n }\r\n }\r\n\r\n onInput() {\r\n if (this.autoResize) {\r\n this.adjustHeight();\r\n }\r\n }\r\n\r\n onModelChange(val: string) {\r\n this.model = val;\r\n this.modelChange.emit(val);\r\n }\r\n\r\n private adjustHeight() {\r\n const textarea = this.textareaRef.nativeElement as HTMLTextAreaElement;\r\n this.renderer.setStyle(textarea, 'height', 'auto');\r\n this.renderer.setStyle(textarea, 'height', `${textarea.scrollHeight}px`);\r\n }\r\n\r\n private coerceBoolean(value: any): boolean {\r\n return value !== null && value !== false && `${value}` !== 'false';\r\n }\r\n}\r\n","<div class=\"form-group mb-3 position-relative\">\r\n @if (label) {\r\n <label class=\"form-label\">{{ label }}</label>\r\n }\r\n\r\n <div class=\"textarea-wrapper d-flex align-items-start\">\r\n <ng-content select=\"[textareaPrefix]\"></ng-content>\r\n\r\n <textarea\r\n #textareaRef\r\n class=\"form-control\"\r\n [ngClass]=\"{ 'auto-resize': autoResize }\"\r\n [attr.placeholder]=\"placeholder\"\r\n [rows]=\"rows\"\r\n [disabled]=\"disabled\"\r\n [readonly]=\"readonly\"\r\n [(ngModel)]=\"model\"\r\n (ngModelChange)=\"onModelChange($event)\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n (input)=\"onInput()\"\r\n [attr.maxLength]=\"maxLength ?? null\"\r\n [attr.aria-invalid]=\"!!error\"\r\n [required]=\"required\"\r\n ></textarea>\r\n\r\n <ng-content select=\"[textareaSuffix]\"></ng-content>\r\n </div>\r\n\r\n @if (error) {\r\n <div class=\"invalid-feedback d-block\">{{ error }}</div>\r\n }\r\n\r\n @if (showCharCount && maxLength) {\r\n <div class=\"text-end small text-muted mt-1\">\r\n <div class=\"char-count\" showCharCount [model]=\"model\" [maxLength]=\"maxLength\">\r\n {{ charCount() }} / {{ maxLength }}\r\n </div>\r\n </div>\r\n }\r\n</div>\r\n","import {\r\n Component,\r\n Input,\r\n Output,\r\n EventEmitter,\r\n signal,\r\n effect,\r\n ViewChild,\r\n ElementRef,\r\n} from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { FormsModule } from '@angular/forms';\r\n\r\n@Component({\r\n selector: 'dr-checkbox',\r\n standalone: true,\r\n imports: [CommonModule, FormsModule],\r\n templateUrl: './dr-checkbox.component.html',\r\n styleUrls: ['./dr-checkbox.component.scss'],\r\n})\r\nexport class DrCheckboxComponent {\r\n private _model = false;\r\n @Input() label: string = '';\r\n @Input() disabled: boolean = false;\r\n @Input() required: boolean = false;\r\n @Input() error: string = '';\r\n\r\n @Input()\r\n set model(value: boolean) {\r\n this._model = value;\r\n this.modelSignal.set(value);\r\n }\r\n\r\n get model(): boolean {\r\n return this._model;\r\n }\r\n\r\n @Output() modelChange = new EventEmitter<boolean>();\r\n\r\n @ViewChild('checkboxRef') checkboxRef!: ElementRef;\r\n\r\n focused = signal(false);\r\n modelSignal = signal<boolean>(false);\r\n\r\n constructor() {\r\n effect(() => {\r\n this._model = this.modelSignal();\r\n });\r\n }\r\n\r\n onChange(event: Event) {\r\n const checked = (event.target as HTMLInputElement).checked;\r\n this.modelSignal.set(checked);\r\n this.modelChange.emit(checked);\r\n }\r\n}\r\n","<div class=\"form-group mb-3 position-relative\">\r\n <div class=\"form-check\">\r\n <input\r\n #checkboxRef\r\n type=\"checkbox\"\r\n class=\"form-check-input\"\r\n [checked]=\"model\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n (change)=\"onChange($event)\"\r\n (focus)=\"focused.set(true)\"\r\n (blur)=\"focused.set(false)\"\r\n [attr.aria-invalid]=\"!!error\"\r\n />\r\n <label class=\"form-check-label\" *ngIf=\"label\">{{ label }}</label>\r\n </div>\r\n \r\n <div *ngIf=\"error\" class=\"invalid-feedback d-block mt-1\">\r\n {{ error }}\r\n </div>\r\n </div>\r\n ","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}