@d4k-ui/nbx-inputs 21.0.0 → 21.0.11

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.
@@ -1 +1 @@
1
- {"version":3,"file":"d4k-ui-nbx-inputs.mjs","sources":["../../../projects/nbx-inputs/src/lib/@core/helpers.ts","../../../projects/nbx-inputs/src/lib/@core/control-value-base.ts","../../../projects/nbx-inputs/src/lib/directives/custom-tooltip/custom-tooltip.component.ts","../../../projects/nbx-inputs/src/lib/directives/clipboard.directive.ts","../../../projects/nbx-inputs/src/lib/directives/int-or-float.directive.ts","../../../projects/nbx-inputs/src/lib/@core/constants.ts","../../../projects/nbx-inputs/src/lib/input-errors/input-errors.component.ts","../../../projects/nbx-inputs/src/lib/input-errors/input-errors.component.html","../../../projects/nbx-inputs/src/lib/input-label/input-label.component.ts","../../../projects/nbx-inputs/src/lib/input-label/input-label.component.html","../../../projects/nbx-inputs/src/lib/input-wrapper/input-wrapper.component.ts","../../../projects/nbx-inputs/src/lib/input-wrapper/input-wrapper.component.html","../../../projects/nbx-inputs/src/lib/select-options-list/select-options-list.component.ts","../../../projects/nbx-inputs/src/lib/select-options-list/select-options-list.component.html","../../../projects/nbx-inputs/src/lib/input-autocomplete/input-autocomplete.component.ts","../../../projects/nbx-inputs/src/lib/input-autocomplete/input-autocomplete.component.html","../../../projects/nbx-inputs/src/lib/input-color-select/input-color-select.component.ts","../../../projects/nbx-inputs/src/lib/input-color-select/input-color-select.component.html","../../../projects/nbx-inputs/src/lib/input-date-picker/input-date-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-picker/input-date-picker.component.html","../../../projects/nbx-inputs/src/lib/input-date-range-picker/input-date-range-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-range-picker/input-date-range-picker.component.html","../../../projects/nbx-inputs/src/lib/input-date-time-picker/input-date-time-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-time-picker/input-date-time-picker.component.html","../../../projects/nbx-inputs/src/lib/input-multiselect-autocomplete/input-multiselect-autocomplete.component.ts","../../../projects/nbx-inputs/src/lib/input-multiselect-autocomplete/input-multiselect-autocomplete.component.html","../../../projects/nbx-inputs/src/lib/input-number/input-number.component.ts","../../../projects/nbx-inputs/src/lib/input-number/input-number.component.html","../../../projects/nbx-inputs/src/lib/input-select/input-select.component.ts","../../../projects/nbx-inputs/src/lib/input-select/input-select.component.html","../../../projects/nbx-inputs/src/lib/input-text/input-text.component.ts","../../../projects/nbx-inputs/src/lib/input-text/input-text.component.html","../../../projects/nbx-inputs/src/lib/input-textarea/input-textarea.component.ts","../../../projects/nbx-inputs/src/lib/input-textarea/input-textarea.component.html","../../../projects/nbx-inputs/src/lib/@core/validators.ts","../../../projects/nbx-inputs/src/providers.ts","../../../projects/nbx-inputs/src/d4k-ui-nbx-inputs.ts"],"sourcesContent":["import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { finalize, Observable, Subscriber, throttleTime } from 'rxjs';\nimport { NbxSelectOption } from './forms.models';\n\n/**\n *\n * @param formGroup\n * @param onlyActive if true, only not disabled controls will be marked as dirty\n */\nexport function markAllControlsAsDirty(abstractControl: AbstractControl): void {\n if (abstractControl instanceof FormControl) {\n abstractControl.markAsDirty();\n return;\n }\n if (abstractControl instanceof FormArray) {\n abstractControl.controls.forEach((control) => {\n markAllControlsAsDirty(control);\n });\n return;\n }\n if (abstractControl instanceof FormGroup) {\n Object.values(abstractControl.controls).forEach((control) => {\n markAllControlsAsDirty(control);\n });\n }\n}\n\nexport function isQueryIncludesInObject(obj: Record<string, any>, query: string): boolean {\n return Object.keys(obj).some((key) => {\n if (!obj[key]) {\n return false;\n }\n if (Array.isArray(obj[key])) {\n return obj[key].some((item: Record<string, any>) => isQueryIncludesInObject(item, query));\n }\n if (typeof obj[key] === 'object') {\n return isQueryIncludesInObject(obj[key] as Record<string, any>, query);\n }\n if (typeof obj[key] === 'string' || typeof obj[key] === 'number') {\n return obj[key].toString().toLowerCase().includes(query.toLowerCase());\n }\n return false;\n });\n}\n\nexport function getFilteredBySearchArray<T = unknown>(arr: object[], query: string): T[] {\n return arr.filter((item) => isQueryIncludesInObject(item as Record<string, unknown>, query)) as T[];\n}\n\nexport function filterAndSortOptionsBySearch(list: NbxSelectOption[], query: string | number): NbxSelectOption[] {\n const filtered = filterOptionsBySearch(list, query);\n return sortOptionsBySearchIndex<NbxSelectOption>(filtered, query.toString(), 'title');\n}\n\n/** Returned filtered array of options witch includes query */\nexport function filterOptionsBySearch(list: NbxSelectOption[], query: string | number): NbxSelectOption[] | [] {\n if (!query) return [];\n const queryInLowerCase = query.toString().toLowerCase();\n return list.filter((item) => item.title?.toString()?.toLowerCase()?.includes(queryInLowerCase));\n}\n\n/** Returned array of options sorted by query includes index */\nexport function sortOptionsBySearchIndex<T extends Record<string, any>>(\n list: T[],\n query: string,\n keySortBy: keyof T,\n): T[] {\n const queryInLowerCase = query.toLowerCase();\n return list.sort(\n (a, b) =>\n a[keySortBy].toLowerCase().indexOf(queryInLowerCase) - b[keySortBy].toLowerCase().indexOf(queryInLowerCase),\n );\n}\n\n/**\n * @returns Object { [controlKey]: control value if value not undefined } value of any control will be included if control is dirty\n */\nexport function getOnlyDirtyControlsValuesRecursive<T extends object>(form: FormGroup, excludeKeys?: string[]): T {\n const data: Record<string, unknown> = {};\n Object.entries(form.controls).forEach(([key, control]) => {\n if (excludeKeys && excludeKeys.includes(key)) {\n return;\n }\n if (control instanceof FormControl && control.dirty && typeof control.value !== 'undefined') {\n data[key] = control.value;\n return;\n }\n if (control instanceof FormArray && form.dirty) {\n const valuesArray = control.getRawValue();\n if (valuesArray?.length) {\n data[key] = valuesArray;\n }\n return;\n }\n if (control instanceof FormGroup) {\n const valuesObject = getOnlyDirtyControlsValuesRecursive(control);\n if (Object.keys(valuesObject)?.length) {\n data[key] = valuesObject;\n }\n }\n });\n return data as T;\n}\n\nexport function getRandomId(prefix = '', suffix = ''): string {\n return `${prefix ? `${prefix}-` : ''}${Math.random().toString(16).slice(2)}${suffix ? `-${suffix}` : ''}`;\n}\n\nexport function resizeObservable(elem: Element, throttleDelay = 100): Observable<ResizeObserverEntry> {\n let notifier: Subscriber<ResizeObserverEntry>;\n const resizeObserver = new ResizeObserver(([entry]: ResizeObserverEntry[]) => {\n notifier?.next(entry);\n });\n\n resizeObserver.observe(elem);\n\n return new Observable<ResizeObserverEntry>((observer) => {\n notifier = observer;\n }).pipe(\n finalize(() => {\n resizeObserver.unobserve(elem);\n resizeObserver.disconnect();\n }),\n throttleTime(throttleDelay),\n );\n}\n","import {\n AfterContentInit,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormArrayName,\n FormControl,\n FormControlName,\n NgControl,\n PristineChangeEvent,\n StatusChangeEvent,\n ValidationErrors,\n Validators,\n ValueChangeEvent,\n} from '@angular/forms';\nimport { NbComponentSize, NbComponentStatus } from '@d4k-ui/theme';\nimport { nbxClipboardCopyType } from '../directives/clipboard.directive';\nimport {\n INbxControlContext,\n NbxInputLabelPositionType,\n NbxInputValidationMessages,\n NbxLabelInfoType,\n} from './forms.models';\nimport { getRandomId } from './helpers';\n\nfunction isValueExist(value: nbxClipboardCopyType | '' | boolean | undefined): nbxClipboardCopyType | false {\n if (typeof value === 'undefined') {\n return false;\n }\n if (typeof value === 'boolean') {\n return value ? 'string' : false;\n }\n if (!value.length) {\n return 'string';\n }\n return value === 'json' ? 'json' : 'string';\n}\n\n@Directive()\nexport class NbxControlValueAccessorBaseDirective<\n T,\n L extends NbxInputLabelPositionType = NbxInputLabelPositionType,\n C extends AbstractControl = FormControl<T>,\n>\n implements ControlValueAccessor, AfterContentInit\n{\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n readonly destroyRef = inject(DestroyRef);\n\n readonly id = input<string | undefined>();\n\n readonly placeholder = input<string>('');\n readonly labelInfo = input<NbxLabelInfoType | undefined>();\n readonly status = input<NbComponentStatus>('basic');\n readonly withCopyButton = input(false, { transform: isValueExist });\n readonly size = input<NbComponentSize>('medium');\n readonly customErrorsMessages = input<NbxInputValidationMessages>({});\n readonly labelPosition = input<L>();\n\n protected styleVars = {};\n\n public readonly value = signal<T>(null as T);\n public readonly touched = signal(false);\n public readonly disabled = signal(false);\n public readonly dirty = signal(false);\n public readonly invalid = signal(false);\n public readonly errors = signal<ValidationErrors | null>(null);\n\n private readonly initId = getRandomId();\n private withoutControl = false;\n\n public control!: C;\n\n public readonly errorDisplayedState = computed(() => {\n return this.invalid() && this.dirty();\n });\n\n public getContext(): INbxControlContext {\n return {\n value: this.value,\n hasRequiredValidator: this.hasRequiredValidator,\n errorDisplayedState: this.errorDisplayedState,\n errors: this.errors,\n disabled: this.disabled,\n labelInfo: this.labelInfo,\n withCopyButton: this.withCopyButton,\n labelPosition: this.labelPosition,\n customErrorsMessages: this.customErrorsMessages,\n };\n }\n\n constructor() {\n effect(() => {\n this.elementRef.nativeElement.setAttribute('style', this.getStylesString(this.size(), this.status()));\n });\n }\n\n ngAfterContentInit(): void {\n try {\n this.control = this.injector.get(FormControlName).control as unknown as C;\n this.subscribeToStateChange(this.control);\n } catch {\n try {\n this.control = this.injector.get(FormArrayName).control as unknown as C;\n this.subscribeToStateChange(this.control);\n } catch {\n try {\n const ngControl = this.injector.get(NgControl);\n if (ngControl) {\n this.control = ngControl.control as C;\n this.subscribeToStateChange(this.control);\n }\n } catch {\n this.withoutControl = true;\n this.control = new FormControl() as unknown as C;\n this.subscribeToStateChange(this.control);\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public writeValue(value: T) {\n // this.value.set(value);\n }\n\n protected getInputId(prefix: string): string {\n return this.id() || prefix + '-' + this.initId;\n }\n\n valueChanged(value: T) {\n this.onTouched();\n this.onChange(value);\n if (this.withoutControl) {\n this.control?.setValue(value);\n this.control?.markAsDirty();\n }\n }\n\n onChange(value: T) {\n return value;\n }\n\n onTouched() {\n if (!this.touched()) {\n this.touched.set(true);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public get hasRequiredValidator(): boolean {\n return !!this.control?.hasValidator(Validators.required);\n }\n\n private getStylesString(size: NbComponentSize, status: NbComponentStatus): string {\n return `--nbx-input-background-color: var(--input-${status}-background-color); --nbx-input-font-size: var(--input-${size}-text-font-size, 1rem); --nbx-input-font-weight: var(--input-${size}-text-font-weight); --nbx-input-line-height: var(--input-${size}-text-line-height); --nbx-input-text-color: var(--input-${status}-text-color)`;\n }\n\n private subscribeToStateChange(control: AbstractControl) {\n if (!control) {\n return;\n }\n this.value.set(control.value);\n this.invalid.set(control.invalid);\n this.errors.set(control.errors);\n control.events.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n if (event instanceof ValueChangeEvent) {\n this.value.set(event.value);\n this.errors.set(control.errors);\n }\n if (event instanceof StatusChangeEvent) {\n this.invalid.set(event.status === 'INVALID');\n }\n if (event instanceof PristineChangeEvent) {\n this.dirty.set(!event.pristine);\n }\n });\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'nbx-custom-tooltip',\n template: `<div class=\"tooltip-wrap\">\n {{ text() }}\n <div class=\"triangle\"></div>\n </div>`,\n styles: [\n `\n .tooltip-wrap {\n background-color: rgba(0, 0, 0, 0.9);\n color: #fff;\n padding: 5px;\n border-radius: 5px;\n position: relative;\n }\n div.triangle {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid rgba(0, 0, 0, 0.9);\n }\n `,\n ],\n host: {\n '[@tooltip]': 'true',\n },\n animations: [\n trigger('tooltip', [\n transition(':enter', [style({ opacity: 0 }), animate(200, style({ opacity: 1 }))]),\n transition(':leave', [animate(200, style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class NbxCustomTooltipComponent {\n readonly text = input('');\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Directive, ElementRef, HostListener, inject, input, OnDestroy } from '@angular/core';\nimport { NbxCustomTooltipComponent } from './custom-tooltip/custom-tooltip.component';\n\nexport type nbxClipboardCopyType = 'json' | 'string';\n\nfunction getPreparedCopyText(value: unknown, asJson = false): string {\n if (asJson) {\n return JSON.stringify(value);\n }\n if (!value) {\n return '';\n }\n if (Array.isArray(value)) {\n return value.reduce((acc, curr) => {\n if (acc.length) {\n acc += `, ${curr}`;\n } else {\n acc = `${curr}`;\n }\n return acc;\n }, '');\n }\n const newString = value.toString().replace(/\\\\./g, ' ').replace(/\\s\\s+/g, ' ').trim();\n return newString;\n}\n\n@Directive({\n selector: '[nbxClipboard]',\n standalone: true,\n host: {\n '[attr.disabled]': '!this.value() || null',\n },\n})\nexport class NbxClipboardDirective implements OnDestroy {\n private clipboard = inject(Clipboard);\n private overlay = inject(Overlay);\n private elementRef = inject(ElementRef);\n\n readonly value = input<unknown>('', { alias: 'nbxClipboard' });\n readonly nbxClipboardCopyType = input<nbxClipboardCopyType>('string');\n\n @HostListener('click')\n onClick() {\n this.copyToClipboard();\n this.showAnimation();\n this.showPopover();\n return false;\n }\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private showAnimation() {\n this.elementRef.nativeElement\n .animate(\n [\n { transform: 'scale(1.1)' },\n { transform: 'scale(1.2)' },\n { transform: 'scale(1.4)' },\n { transform: 'scale(1)' },\n ],\n {\n duration: 500,\n easing: 'ease',\n trigger: 'enter',\n },\n )\n .play();\n }\n\n private overlayRef!: OverlayRef;\n\n private copyToClipboard() {\n this.clipboard.copy(getPreparedCopyText(this.value(), this.nbxClipboardCopyType() === 'json'));\n }\n\n private showPopover() {\n if (!this.elementRef.nativeElement) return;\n this.show();\n setTimeout(() => {\n this.hide();\n }, 700);\n }\n\n private show() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n const tooltipPortal = new ComponentPortal(NbxCustomTooltipComponent);\n const tooltipRef: ComponentRef<NbxCustomTooltipComponent> = this.overlayRef.attach(tooltipPortal);\n tooltipRef.setInput('text', 'Copied');\n }\n\n private hide() {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n\n protected getOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPush(false)\n .withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -5,\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 5,\n },\n ]);\n\n return new OverlayConfig({\n positionStrategy: positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n}\n","import { Directive, effect, ElementRef, HostListener, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[nbxIntOrFloat]',\n})\nexport class IntOrFloatDirective {\n readonly nbxIntOrFloat = input.required<'int' | 'float'>();\n private readonly elRef = inject(ElementRef);\n\n @HostListener('keypress', ['$event'])\n onKeyPress(event: KeyboardEvent) {\n const type = this.nbxIntOrFloat();\n const key = event.key;\n\n if (type === 'int') {\n // Allow only digits\n if (!/^\\d$/.test(key)) {\n event.preventDefault();\n }\n } else if (type === 'float') {\n // Allow digits and one dot\n const input = event.target as HTMLInputElement;\n if (!/^\\d$/.test(key) && !(key === '.' && !input.value.includes('.'))) {\n event.preventDefault();\n }\n }\n }\n\n constructor() {\n effect(() => {\n if (this.nbxIntOrFloat() === 'int') {\n try {\n const value = this.elRef.nativeElement.value;\n if (value.includes('.')) {\n this.elRef.nativeElement.value = value.split('.')[0];\n }\n } catch {\n //do nothing\n }\n }\n });\n }\n}\n","import { NbxInputValidationMessages } from './forms.models';\n\nexport const NbxValidatorsErrorsMessage: NbxInputValidationMessages = {\n min: {\n dataKey: 'min',\n messageFunction: (length = '0') => `Min value ${length}`,\n },\n max: {\n dataKey: 'max',\n messageFunction: (length = '100') => `Max value ${length}`,\n },\n maxlength: {\n dataKey: 'requiredLength',\n messageFunction: (length = '0') => `Maximum length must be ${length}`,\n },\n url: 'Invalid URL. Valid example: http://example.com',\n required: 'Required field',\n minlength: {\n dataKey: 'requiredLength',\n messageFunction: (length = '0') => `Minimum length must be ${length}`,\n },\n email: 'Invalid email',\n nbDatepickerMax: 'Date is later the possible',\n nbDatepickerMin: 'Date is less then possible',\n unknownError: 'Not acceptable value',\n};\n","import { KeyValuePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { NbxValidatorsErrorsMessage } from '../@core/constants';\nimport { NbxInputValidationMessages } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-input-errors',\n imports: [KeyValuePipe],\n templateUrl: './input-errors.component.html',\n styleUrls: ['./input-errors.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputErrorsComponent {\n /**\n * @description you need to provide key as error key like 'required' and translateKey as value\n */\n readonly customErrorsMessages = input<NbxInputValidationMessages>({});\n readonly errors = input.required<undefined | ValidationErrors | null>();\n private readonly errorMessages = computed<NbxInputValidationMessages>(() => {\n const custom = this.customErrorsMessages();\n return {\n ...NbxValidatorsErrorsMessage,\n ...custom,\n };\n });\n\n getErrorMessage(key: string, errorValue: Record<string, string> | string): string {\n try {\n if (!this.errorMessages()[key]) {\n if (typeof errorValue === 'string') {\n return errorValue;\n }\n }\n const message = this.errorMessages()[key];\n if (typeof message === 'string') {\n return message;\n }\n if (typeof errorValue !== 'string') {\n return message.messageFunction(errorValue[message.dataKey]);\n }\n return 'Not acceptable value';\n } catch {\n return 'Not acceptable value';\n }\n }\n}\n","<div class=\"input-errors\">\n @for(err of errors() | keyvalue; track err.key ){\n <div class=\"error\">{{ getErrorMessage(err.key, err.value) }}</div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NbIconComponent, NbTooltipDirective } from '@d4k-ui/theme';\nimport { NbxLabelInfoType } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-input-label',\n imports: [NbIconComponent, NbTooltipDirective],\n templateUrl: './input-label.component.html',\n styleUrls: ['./input-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputLabelComponent {\n readonly labelInfo = input<NbxLabelInfoType | undefined>();\n readonly isRequired = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly inputId = input<string | undefined>();\n}\n","<div class=\"label-wrap\">\n <label [class]=\"{ required: isRequired(), disabled: disabled() }\" class=\"input-label\" [for]=\"inputId()\">\n <ng-content></ng-content>\n </label>\n @if (labelInfo()?.type === 'icon') {\n <nb-icon\n nbTooltip=\"{{ labelInfo()?.text }}\"\n [nbTooltipStatus]=\"labelInfo()?.status || 'primary'\"\n icon=\"alert-circle-outline\"\n class=\"label-info\"></nb-icon>\n }\n @if (labelInfo()?.type === 'text') {\n <span [title]=\"labelInfo()?.text\" class=\"label-info\">{{ labelInfo()?.text }}</span>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, input, viewChild } from '@angular/core';\nimport { NbIconComponent } from '@d4k-ui/theme';\nimport { INbxControlContext } from '../@core/forms.models';\nimport { NbxClipboardDirective } from '../directives/clipboard.directive';\nimport { NbxInputErrorsComponent } from '../input-errors/input-errors.component';\nimport { NbxInputLabelComponent } from '../input-label/input-label.component';\n\n@Component({\n selector: 'nbx-input-wrapper',\n imports: [NbxInputErrorsComponent, NbxInputLabelComponent, NbxClipboardDirective, NbIconComponent],\n templateUrl: './input-wrapper.component.html',\n styleUrls: ['./input-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputWrapperComponent {\n readonly labelContent = viewChild('labelContent', { read: ElementRef });\n\n readonly context = input.required<INbxControlContext>();\n /**\n * @description set to true if the input has fieldset with button in the end\n * need to move copy button more to the left\n */\n readonly isInputHasButton = input<boolean>(false);\n readonly inputId = input<string | undefined>();\n readonly copyAsJson = input(false);\n\n /**\n * @description It's only needed to correctly display the \"float\" label type.\n * It's used for inputs like chips and similar ones that don't use input to display the value.\n * For correct operation, you also need to set searchHasValue.\n */\n readonly floatLabelOnlyBySearch = input(false);\n /**\n * @description It's only needed to correctly display the \"float\" label type.\n * set this input if you use different controls for search and value\n */\n readonly searchHasValue = input(false);\n\n readonly isLabelHasContent = computed(() => {\n return (this.labelContent() as ElementRef<HTMLDivElement>)?.nativeElement.querySelector('label')?.hasChildNodes();\n });\n\n readonly isControlHasValue = computed(() => {\n if (this.searchHasValue()) return true;\n const value = this.context().value();\n if (this.floatLabelOnlyBySearch() || typeof value === 'undefined' || value === null || value === '') return false;\n if (Array.isArray(value)) {\n return value?.length;\n }\n return true;\n });\n}\n","<div class=\"nbx-input-wrap\" [class.invalid]=\"context().errorDisplayedState()\">\n <div\n class=\"input-fieldset\"\n [class]=\"context().labelPosition()\"\n [class.has-value]=\"isControlHasValue()\"\n [class.no-label]=\"!isLabelHasContent()\">\n @if (context().labelPosition() !== 'none') {\n <nbx-input-label\n [labelInfo]=\"context().labelInfo()\"\n [isRequired]=\"context().hasRequiredValidator\"\n [disabled]=\"context().disabled()\"\n [inputId]=\"inputId()\"\n #labelContent>\n <ng-content #labelContent select=\"[label-content]\"></ng-content>\n </nbx-input-label>\n }\n <div class=\"input-content-wrap\">\n <ng-content></ng-content>\n @if (context().withCopyButton(); as copyType) {\n <button\n type=\"button\"\n [class.move-left]=\"isInputHasButton()\"\n [id]=\"inputId() + '-copy-button'\"\n class=\"copy-button\"\n [nbxClipboard]=\"context().value()\"\n [nbxClipboardCopyType]=\"copyType\">\n <nb-icon icon=\"copy-outline\"></nb-icon>\n </button>\n }\n </div>\n </div>\n <nbx-input-errors\n [customErrorsMessages]=\"context().customErrorsMessages()\"\n [errors]=\"context().errors()\"></nbx-input-errors>\n</div>\n","import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnChanges,\n SimpleChanges,\n computed,\n input,\n output,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { NbCheckboxComponent, NbOptionComponent, NbOptionListComponent } from '@d4k-ui/theme';\nimport { NbxSelectOption } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-select-options-list',\n imports: [NbOptionComponent, NbOptionListComponent, NbCheckboxComponent, ScrollingModule],\n templateUrl: './select-options-list.component.html',\n styleUrls: ['./select-options-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxSelectOptionsListComponent implements OnChanges {\n readonly optionsList = viewChildren('optionItem', { read: ElementRef });\n readonly virtualScrollContainer = viewChild(CdkVirtualScrollViewport);\n readonly options = input<NbxSelectOption[]>([]);\n readonly optionsListClass = input<string>('');\n\n readonly enableVirtualScroll = input(false);\n\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly optionClicked = output<NbxSelectOption>();\n readonly selectAll = output<NbxSelectOption[]>();\n readonly tabClicked = output<void>();\n readonly multi = input(false);\n readonly selectedValues = input<any[]>([]);\n private focusedOptionIndex = 0;\n\n protected readonly isAllSelected = computed(() =>\n this.options()?.every((option) => this.selectedValues().includes(option.value)),\n );\n\n ngOnChanges({ options }: SimpleChanges): void {\n if (options) {\n this.focusedOptionIndex = 0;\n this.virtualScrollContainer()?.scrollTo({ top: 0 });\n }\n }\n\n public selectAllOptions(): void {\n this.selectAll.emit(this.options());\n }\n\n optionClickedHandler(option: NbxSelectOption, index: number): void {\n this.focusedOptionIndex = index;\n this.optionClicked.emit(option);\n }\n\n keydown(event: KeyboardEvent): void {\n if (event.code === 'Tab') {\n event.preventDefault();\n this.tabClicked.emit();\n return;\n }\n if (event.code === 'ArrowDown') {\n event.preventDefault();\n if (this.focusedOptionIndex >= this.options().length - 1) {\n return;\n }\n this.focusedOptionIndex++;\n this.setFocusedOptionByIndex(this.focusedOptionIndex);\n }\n if (event.code === 'ArrowUp') {\n event.preventDefault();\n if (this.focusedOptionIndex <= 0) {\n return;\n }\n this.focusedOptionIndex--;\n this.setFocusedOptionByIndex(this.focusedOptionIndex);\n }\n }\n\n private setFocusedOptionByIndex(index: number): void {\n const optionsList = this.optionsList();\n if (optionsList) {\n optionsList[index]?.nativeElement.focus();\n }\n }\n}\n","<nb-option-list\n #optionsListContainer\n [style.--all-elements-height]=\"options().length * virtualScrollItemSizePX() + 'px'\"\n [style.--element-height]=\"virtualScrollItemSizePX() + 'px'\"\n (keydown)=\"keydown($event)\"\n [class.multi]=\"multi()\"\n [class.with-virtual-scroll]=\"enableVirtualScroll()\"\n [class]=\"optionsListClass()\">\n @if (multi()) {\n <nb-option\n [disabled]=\"isAllSelected()\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); selectAllOptions()\"\n >Select all</nb-option\n >\n }\n @if (enableVirtualScroll()) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSizePX()\"\n maxBufferPx=\"600\"\n minBufferPx=\"600\"\n class=\"virtual-scroll-viewport\">\n <nb-option\n #optionItem\n *cdkVirtualFor=\"let option of options(); let i = index\"\n class=\"virtual-scroll-item\"\n [disabled]=\"option.disabled\"\n [id]=\"'nb-option-' + option.value\"\n [tabindex]=\"i\"\n [value]=\"option.value\"\n (keyup.enter)=\"optionClickedHandler(option, i)\"\n (click)=\"optionClickedHandler(option, i)\">\n @if (multi()) {\n <nb-checkbox\n class=\"multiselect-autocomplete-checkbox\"\n status=\"primary\"\n [disabled]=\"option.disabled\"\n [checked]=\"selectedValues().includes(option.value)\"\n >{{ option.title }}</nb-checkbox\n >\n } @else {\n {{ option.title }}\n }\n </nb-option>\n </cdk-virtual-scroll-viewport>\n } @else {\n @for (option of options(); track $index) {\n @if (option) {\n <nb-option\n #optionItem\n [disabled]=\"option.disabled\"\n [id]=\"'nb-option-' + option.value\"\n [tabindex]=\"$index\"\n [value]=\"option.value\"\n (keyup.enter)=\"optionClickedHandler(option, $index)\"\n (click)=\"optionClickedHandler(option, $index)\">\n @if (multi()) {\n <nb-checkbox\n class=\"multiselect-autocomplete-checkbox\"\n status=\"primary\"\n [disabled]=\"option.disabled\"\n [checked]=\"selectedValues().includes(option.value)\"\n >{{ option.title }}</nb-checkbox\n >\n } @else {\n {{ option.title }}\n }\n </nb-option>\n }\n }\n }\n</nb-option-list>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { map, startWith } from 'rxjs';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { filterAndSortOptionsBySearch, resizeObservable } from '../@core/helpers';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\nimport { NbxSelectOptionsListComponent } from '../select-options-list/select-options-list.component';\n\n@Component({\n selector: 'nbx-input-autocomplete',\n templateUrl: './input-autocomplete.component.html',\n imports: [\n NbxInputWrapperComponent,\n NbxSelectOptionsListComponent,\n OverlayModule,\n NbInputDirective,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputAutocompleteComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputAutocompleteComponent\n extends NbxControlValueAccessorBaseDirective<string>\n implements OnInit, OnChanges, AfterViewInit\n{\n protected readonly clientWidth = signal<string | number>('100%');\n readonly optionsListContainer = viewChild('optionsListContainer', {\n read: ElementRef<HTMLDivElement>,\n });\n readonly inputElement = viewChild('inputElement', { read: ElementRef });\n\n protected readonly searchControl = new FormControl<string | undefined>('');\n\n private readonly searchValueSignal = toSignal<string | undefined | null>(this.searchControl.valueChanges);\n\n readonly optionsListClass = input<string>('');\n readonly options = input.required<NbxSelectOption[]>();\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly enableVirtualScroll = input(false);\n readonly anyStringInput = input<boolean>(false);\n readonly selectChanged = output<string>();\n\n protected readonly overlayVisible = signal<boolean>(false);\n\n readonly filteredOptions = computed(() => {\n const value = this.searchValueSignal();\n if (!value) {\n return this.options();\n }\n return filterAndSortOptionsBySearch(this.options(), value);\n });\n\n ngOnInit(): void {\n this.searchControl.valueChanges\n .pipe(\n startWith(''),\n map((value) => value || ''),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((str) => {\n if (!str) {\n if (this.control?.value) {\n this.control?.reset();\n }\n return;\n }\n const equalValueOption = this.getEqualValue(str, this.options());\n if (equalValueOption) {\n this.setValue(equalValueOption.value as string);\n this.toggleOverlay(false);\n } else if (this.anyStringInput()) {\n this.setValue(str);\n }\n });\n }\n\n ngOnChanges({ options }: SimpleChanges): void {\n if (options) {\n this.updateInputTitle(this.value());\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const element = this.inputElement()?.nativeElement;\n if (element) {\n this.clientWidth.set(element.clientWidth || '100%');\n resizeObservable(element)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.clientWidth.set(this.inputElement()?.nativeElement.clientWidth || '100%');\n });\n }\n }, 200);\n }\n\n moveFocusToNextElement() {\n this.inputElement()?.nativeElement.focus();\n }\n\n switchFocusToOptions(): void {\n const optionsListContainer = this.optionsListContainer() as ElementRef<HTMLDivElement>;\n if (optionsListContainer) {\n const firstOption = optionsListContainer.nativeElement.querySelector<HTMLDivElement>('nb-option');\n firstOption?.focus();\n }\n }\n\n private getEqualValue(str: string, options: NbxSelectOption[]): NbxSelectOption | undefined {\n if (!options || !str) {\n return;\n }\n return options.find((el) => el?.value === str || el?.title === str);\n }\n\n optionSelected(option: NbxSelectOption<string>): void {\n this.selectChanged.emit(option.value);\n this.setValue(option.value);\n this.inputElement()?.nativeElement.focus();\n this.toggleOverlay(false);\n }\n\n protected toggleOverlay(state?: boolean): void {\n if (state !== this.overlayVisible()) {\n this.onTouched();\n this.overlayVisible.set(state ?? !this.overlayVisible);\n }\n }\n\n private updateInputTitle(value?: string): void {\n const options = this.options();\n if (!options) {\n return;\n }\n const option = options.find((option) => option?.value === value);\n if (!option) {\n this.searchControl.setValue(value, { emitEvent: false });\n return;\n }\n this.searchControl.setValue(option?.title, { emitEvent: false });\n }\n\n protected setValue(value: string): void {\n super.valueChanged(value);\n this.updateInputTitle(value);\n }\n\n override writeValue(value: string): void {\n super.writeValue(value);\n this.updateInputTitle(value);\n }\n\n override setDisabledState(isDisabled: boolean): void {\n super.setDisabledState(isDisabled);\n if (isDisabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n }\n}\n","<nbx-input-wrapper\n (keydown.tab)=\"toggleOverlay(false)\"\n [context]=\"getContext()\"\n [inputId]=\"getInputId('input-autocomplete')\"\n [searchHasValue]=\"!!searchControl.value\">\n <ng-content label-content></ng-content>\n <input\n #inputElement\n #trigger=\"cdkOverlayOrigin\"\n type=\"text\"\n [status]=\"status()\"\n [size]=\"size()\"\n (click)=\"toggleOverlay(true)\"\n (focus)=\"toggleOverlay(true)\"\n (input)=\"toggleOverlay(true)\"\n (keydown.arrowdown)=\"$event.preventDefault(); switchFocusToOptions()\"\n autocomplete=\"off\"\n [id]=\"getInputId('input-autocomplete')\"\n [formControl]=\"searchControl\"\n [placeholder]=\"placeholder()\"\n nbInput\n cdkOverlayOrigin\n fullWidth />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n [cdkConnectedOverlayWidth]=\"clientWidth()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\"\n (detach)=\"toggleOverlay(false)\">\n <nbx-select-options-list\n #optionsListContainer\n [optionsListClass]=\"optionsListClass()\"\n [virtualScrollItemSizePX]=\"virtualScrollItemSizePX()\"\n [enableVirtualScroll]=\"enableVirtualScroll()\"\n (optionClicked)=\"optionSelected($any($event))\"\n (tabClicked)=\"moveFocusToNextElement()\"\n [options]=\"filteredOptions()\"></nbx-select-options-list>\n </ng-template>\n</nbx-input-wrapper>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, input, output, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbIconComponent } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputLabelPositionType, NbxSelectOption } from '../@core/forms.models';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-color-select',\n templateUrl: './input-color-select.component.html',\n imports: [NbIconComponent, NbxInputWrapperComponent, ReactiveFormsModule, OverlayModule],\n host: {\n class: 'input-control',\n '[style]': `{\n '--nbx-color-input-disabled-text-color': 'var(--input-' + status() + '-disabled-text-color)',\n '--nbx-color-input-hover-background-color': 'var(--select-outline-' + status() + '-hover-background-color)',\n '--nbx-color-input-border-color': 'var(--select-outline-' + status() + '-border-color)',\n '--nbx-color-input-disabled-border-color': 'var(--select-outline-' + status() + '-disabled-border-color)',\n '--nbx-color-input-padding': 'var(--select-outline-' + size() + '-padding)',\n }`,\n },\n styleUrls: ['./input-color-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputColorSelectComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputColorSelectComponent extends NbxControlValueAccessorBaseDirective<\n string | string[],\n Exclude<NbxInputLabelPositionType, 'float'>\n> {\n protected readonly overlayVisible = signal<boolean>(false);\n readonly colorSelected = output<string | null>();\n /**\n * @description if you want show select options as color you need to provide customData: string in option otherwise will be shown as regular select string\n * @example {value: 'green', title: 'green',customData: '#000000' }\n */\n readonly options = input.required<NbxSelectOption<string, string>[]>();\n /**\n * @description Display title in list\n * @default true\n */\n readonly withTitle = input<boolean>(true);\n\n selectedOption(): NbxSelectOption<string, string> | undefined {\n return this.options().find((option) => option.value === this.value());\n }\n\n toggleOverlay(state?: boolean) {\n this.overlayVisible.update((old) => state ?? !old);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('color-select-input')\">\n <ng-content label-content></ng-content>\n <div class=\"input-color-wrap\">\n <div class=\"nb-form-control-container nb-form-field-control-with-suffix\">\n <button\n type=\"button\"\n [disabled]=\"disabled()\"\n (click)=\"!disabled() ? toggleOverlay() : false\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [id]=\"getInputId('color-select-input')\"\n class=\"select-button\">\n @if (selectedOption(); as selected) {\n @if (!selected.customData || withTitle()) {\n {{ selected.title }}\n }\n @if (selected.customData) {\n <div class=\"color-round\" [style.backgroundColor]=\"selected.customData\"></div>\n }\n } @else {\n @if (withTitle()) {\n <span> none </span>\n }\n <nb-icon icon=\"slash-outline\"></nb-icon>\n }\n\n <nb-icon icon=\"chevron-down-outline\" [class.active]=\"overlayVisible()\"></nb-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\">\n <div class=\"color-options-list\" [class.with-title]=\"withTitle()\">\n <button\n type=\"button\"\n class=\"color-option\"\n id=\"color-option-reset\"\n (click)=\"valueChanged($any(null)); toggleOverlay(false); colorSelected.emit(null)\">\n @if (withTitle()) {\n <div class=\"option-with-title\">\n none\n <nb-icon icon=\"slash-outline\"></nb-icon>\n </div>\n } @else {\n <nb-icon icon=\"slash-outline\"></nb-icon>\n }\n </button>\n @for (option of options(); track $index) {\n <button\n type=\"button\"\n class=\"color-option\"\n id=\"color-option-{{ $index }}\"\n [class.selected]=\"option.value === value()\"\n (click)=\"valueChanged(option.value); toggleOverlay(false); colorSelected.emit(option.value)\">\n @if (option.customData) {\n @if (withTitle()) {\n <div class=\"option-with-title\">\n {{ option.title }}\n <div class=\"color-round\" [style.backgroundColor]=\"option.customData\"></div>\n </div>\n } @else {\n <div class=\"color-round\" [style.backgroundColor]=\"option.customData\"></div>\n }\n } @else {\n {{ option.title }}\n }\n </button>\n }\n </div>\n </ng-template>\n </div>\n </div>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDatepickerComponent,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() in you root providers list\n */\n@Component({\n standalone: true,\n selector: 'nbx-input-date-picker',\n templateUrl: './input-date-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputDatePickerComponent,\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbDatepickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDatePickerComponent extends NbxControlValueAccessorBaseDirective<any> {\n readonly minDate = input<Date | null | string>(null);\n readonly maxDate = input<Date | null | string>(null);\n\n readonly dateChanged = output<Date>();\n\n constructor() {\n super();\n }\n\n public dateSelected(event: any): void {\n this.dateChanged.emit(event);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [id]=\"getInputId('date-picker')\"\n [placeholder]=\"placeholder()\"\n [nbDatepicker]=\"datePicker\"\n [formControl]=\"control\" />\n <button\n type=\"button\"\n [id]=\"getInputId('date-picker') + '-reset-button'\"\n [disabled]=\"disabled()\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-datepicker\n #datePicker\n style=\"display: none\"\n (dateChange)=\"dateSelected($event)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-datepicker>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, inject, input, output } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDateService,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbRangepickerComponent,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() in you root providers list\n */\n@Component({\n standalone: true,\n selector: 'nbx-input-date-range-picker',\n templateUrl: './input-date-range-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputDateRangePickerComponent,\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbRangepickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDateRangePickerComponent extends NbxControlValueAccessorBaseDirective<DateRangeObject> {\n private dateService = inject<NbDateService<Date>>(NbDateService);\n\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n\n readonly dateRangeChanged = output<DateRangeObject | null>();\n protected inputControl = new FormControl();\n\n constructor() {\n super();\n this.dateService.compareDates = (date1: Date, date2: Date | DateRangeObject) => {\n const date1Time = date1.getTime();\n if (date2 instanceof Date) {\n return date1Time - date2.getTime();\n }\n if (date2?.start && date2?.end) {\n const start = new Date(date2?.start).getTime();\n const end = new Date(date2?.end).getTime();\n return date1Time === start ? 0 : date1Time > start && date1Time < end ? 1 : -1;\n }\n if (date2?.start) {\n const start = new Date(date2.start).getTime();\n return date1Time === start ? 0 : date1Time > start ? 1 : -1;\n }\n if (date2?.end) {\n const end = new Date(date2.end).getTime();\n return date1Time === end ? 0 : date1Time < end ? 1 : -1;\n }\n return 0;\n };\n }\n\n public dateChanged(event: any): void {\n this.dateRangeChanged.emit(event);\n return;\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-range-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n [nbDatepicker]=\"dateRangePicker\"\n [formControl]=\"control\"\n [id]=\"getInputId('date-range-picker')\" />\n <button\n type=\"button\"\n [disabled]=\"disabled()\"\n [id]=\"getInputId('date-range-picker') + '-reset-button'\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-rangepicker\n #dateRangePicker\n style=\"display: none\"\n (rangeChange)=\"dateChanged($event)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-rangepicker>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDateTimePickerComponent,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() and NbTimepickerModule.forRoot() in you root providers list\n */\n@Component({\n selector: 'nbx-input-date-time-picker',\n templateUrl: './input-date-time-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputDateTimePickerComponent,\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbDateTimePickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDateTimePickerComponent extends NbxControlValueAccessorBaseDirective<any> {\n readonly minDate = input<Date | null | string>(null);\n readonly maxDate = input<Date | null | string>(null);\n\n readonly dateChanged = output<Date>();\n\n constructor() {\n super();\n }\n\n public dateSelected(event: any): void {\n this.dateChanged.emit(event);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-time-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n [id]=\"getInputId('date-time-picker')\"\n [nbDatepicker]=\"dateTimePicker\"\n [formControl]=\"control\" />\n <button\n type=\"button\"\n [id]=\"getInputId('date-picker') + '-reset-button'\"\n [disabled]=\"disabled()\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-date-timepicker\n #dateTimePicker\n style=\"display: none\"\n (dateTimeChange)=\"dateSelected($event)\"\n singleColumn\n [step]=\"10\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-date-timepicker>\n</nbx-input-wrapper>\n","import { OverlayModule } from '@angular/cdk/overlay';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { map } from 'rxjs';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { filterAndSortOptionsBySearch, resizeObservable } from '../@core/helpers';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\nimport { NbxSelectOptionsListComponent } from '../select-options-list/select-options-list.component';\n\n@Component({\n selector: 'nbx-input-multiselect-autocomplete',\n templateUrl: './input-multiselect-autocomplete.component.html',\n styleUrls: ['./input-multiselect-autocomplete.component.scss'],\n imports: [\n ReactiveFormsModule,\n OverlayModule,\n NbInputDirective,\n NbButtonComponent,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbxInputWrapperComponent,\n NbxSelectOptionsListComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputMultiselectAutocompleteComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputMultiselectAutocompleteComponent\n extends NbxControlValueAccessorBaseDirective<(string | number)[]>\n implements AfterViewInit\n{\n readonly inputElement = viewChild('inputElement', { read: ElementRef });\n readonly optionsListContainer = viewChild('optionsListContainer', {\n read: ElementRef<HTMLDivElement>,\n });\n protected readonly searchControl = new FormControl<string>('');\n protected readonly clientWidth = signal<string | number>('100%');\n\n readonly optionsListClass = input<string>('');\n readonly selectedOnTop = input(false);\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly enableVirtualScroll = input(false);\n readonly options = input.required<NbxSelectOption[]>();\n readonly selectedChange = output<(string | number)[]>();\n\n private readonly searchValue = toSignal<string>(this.searchControl.valueChanges.pipe(map((value) => value || '')));\n\n protected readonly selectedValues = signal<(string | number)[]>([]);\n\n protected readonly selectedTitlesString = computed(() => {\n return this.selectedValues().reduce((prev, current) => {\n const option = this.options().find((option) => option.value === current);\n if (!option) return prev;\n return (prev += `${prev ? ', ' : ''}${option.title}`);\n }, '');\n });\n\n protected readonly overlayVisible = signal<boolean>(false);\n\n protected readonly filteredOptions = computed(() => {\n const list = !this.searchValue()\n ? this.options()\n : filterAndSortOptionsBySearch(this.options(), this.searchValue()!);\n if (!this.selectedOnTop()) {\n return list;\n }\n const options: NbxSelectOption[] = [];\n list.forEach((option) => {\n if (this.selectedValues().includes(option.value)) {\n options.unshift(option);\n } else {\n options.push(option);\n }\n });\n return options;\n });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const element = this.inputElement()?.nativeElement;\n if (element) {\n this.clientWidth.set(element.clientWidth || '100%');\n resizeObservable(element)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.clientWidth.set(this.inputElement()?.nativeElement.clientWidth || '100%');\n });\n }\n }, 200);\n }\n\n public override writeValue(value: (string | number)[] | null): void {\n this.value.set(value || []);\n this.setSelected(value || [], true);\n }\n\n public optionClicked(value: string | number): void {\n let newValue: (string | number)[] = [];\n if (!this.selectedValues().includes(value)) {\n newValue = [...this.selectedValues(), value];\n } else {\n newValue = this.selectedValues().filter((insideValue) => insideValue !== value);\n }\n this.setSelected(newValue);\n }\n\n moveFocusToNextElement() {\n this.inputElement()?.nativeElement.focus();\n }\n\n switchFocusToOptions(): void {\n const optionsListContainer = this.optionsListContainer() as ElementRef<HTMLDivElement>;\n if (optionsListContainer) {\n const firstOption = optionsListContainer.nativeElement.querySelector<HTMLDivElement>('nb-option');\n firstOption?.focus();\n }\n }\n\n public resetSelection(): void {\n this.setSelected([]);\n this.searchControl.reset();\n }\n\n public selectAllOptions(): void {\n const allValues = this.options().map((option) => option.value);\n this.setSelected(allValues);\n }\n\n override setDisabledState(isDisabled: boolean): void {\n super.setDisabledState(isDisabled);\n if (isDisabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n }\n\n private setSelected(valuesArray: (string | number)[], onlySelf = false): void {\n this.selectedValues.set(valuesArray);\n if (!onlySelf) {\n this.valueChanged(valuesArray);\n setTimeout(() => {\n this.selectedChange.emit(this.value());\n }, 50);\n }\n }\n\n protected toggleOverlay(state?: boolean): void {\n if (state !== this.overlayVisible()) {\n this.onTouched();\n this.overlayVisible.set(state ?? !this.overlayVisible);\n if (!this.overlayVisible()) {\n this.searchControl.reset('');\n }\n }\n }\n}\n","<nbx-input-wrapper\n [context]=\"getContext()\"\n [searchHasValue]=\"!!searchControl.value\"\n (keydown.tab)=\"toggleOverlay(false)\"\n [isInputHasButton]=\"true\"\n [inputId]=\"getInputId('multiselect-autocomplete-input')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n nbInput\n cdkOverlayOrigin\n #inputElement\n #trigger=\"cdkOverlayOrigin\"\n [status]=\"status()\"\n [size]=\"size()\"\n (click)=\"toggleOverlay(true)\"\n (focus)=\"toggleOverlay(true)\"\n (input)=\"toggleOverlay(true)\"\n (keydown.arrowdown)=\"$event.preventDefault(); switchFocusToOptions()\"\n [class.has-value]=\"selectedTitlesString()\"\n [formControl]=\"searchControl\"\n [id]=\"getInputId('multiselect-autocomplete-input')\"\n fullWidth\n [placeholder]=\"selectedTitlesString() || placeholder()\"\n type=\"text\" />\n\n <button\n title=\"Clear\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [status]=\"status()\"\n nbSuffix\n nbButton\n [id]=\"getInputId('multi-autocomplete-input') + '-clear-button'\"\n appearance=\"ghost\"\n (click)=\"resetSelection()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n [cdkConnectedOverlayWidth]=\"clientWidth()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\"\n (detach)=\"toggleOverlay(false)\">\n <nbx-select-options-list\n #optionsListContainer\n [multi]=\"true\"\n [optionsListClass]=\"optionsListClass()\"\n [virtualScrollItemSizePX]=\"virtualScrollItemSizePX()\"\n [enableVirtualScroll]=\"enableVirtualScroll()\"\n [selectedValues]=\"selectedValues()\"\n (selectAll)=\"selectAllOptions()\"\n (optionClicked)=\"optionClicked($event.value)\"\n (tabClicked)=\"moveFocusToNextElement()\"\n [options]=\"filteredOptions()\"></nbx-select-options-list>\n </ng-template>\n </nb-form-field>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { IntOrFloatDirective } from '../directives/int-or-float.directive';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-number',\n templateUrl: './input-number.component.html',\n styleUrls: ['./input-number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputNumberComponent,\n multi: true,\n },\n ],\n imports: [NbInputDirective, ReactiveFormsModule, NbxInputWrapperComponent, IntOrFloatDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputNumberComponent extends NbxControlValueAccessorBaseDirective<string | number> {\n readonly min = input<null | number>(null);\n readonly max = input<null | number>(null);\n readonly onlyInt = input<boolean>(false);\n readonly inputKeyup = output<string>();\n\n inputKeyUp(target: HTMLInputElement): void {\n this.inputKeyup.emit(target.value);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-number')\">\n <ng-content label-content></ng-content>\n\n <input\n (keydown.arrowDown)=\"$event.preventDefault()\"\n (keydown.arrowUp)=\"$event.preventDefault()\"\n (wheel)=\"$event.preventDefault()\"\n [formControl]=\"control\"\n (input)=\"inputKeyUp($any($event.target))\"\n fullWidth\n [nbxIntOrFloat]=\"onlyInt() ? 'int' : 'float'\"\n [status]=\"status()\"\n [size]=\"size()\"\n nbInput\n [id]=\"getInputId('input-number')\"\n [min]=\"min()\"\n [max]=\"max()\"\n [placeholder]=\"placeholder()\"\n type=\"number\" />\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, computed, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbButtonComponent, NbIconComponent, NbOptionComponent, NbSelectComponent } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-select',\n templateUrl: './input-select.component.html',\n imports: [\n NbIconComponent,\n NbSelectComponent,\n NbOptionComponent,\n NbxInputWrapperComponent,\n ReactiveFormsModule,\n NbButtonComponent,\n ],\n styleUrl: './input-select.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputSelectComponent,\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputSelectComponent extends NbxControlValueAccessorBaseDirective<string | string[]> {\n readonly multiple = input<boolean>(false);\n readonly optionsListClass = input<string>('');\n readonly options = input.required<NbxSelectOption[]>();\n\n readonly selectedChange = output<string | string[]>();\n readonly isAllSelected = computed(() => this.value()?.length === this.options()?.length);\n\n constructor() {\n super();\n }\n\n selectAll(): void {\n const allValues = this.options().map((item) => item.value);\n this.control.setValue(allValues);\n }\n\n resetForm(): void {\n this.control?.reset();\n if (this.multiple()) {\n this.valueChanged([]);\n this.selectedChangeEvent();\n }\n }\n\n public selectedChangeEvent(): void {\n setTimeout(() => {\n this.selectedChange.emit(this.control.value);\n });\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('select-input')\">\n <ng-content label-content></ng-content>\n <div class=\"select-wrapper\">\n <div class=\"nb-form-control-container nb-form-field-control-with-suffix\">\n <nb-select\n [multiple]=\"multiple()\"\n [optionsListClass]=\"optionsListClass()\"\n [class.multiple]=\"multiple()\"\n [status]=\"status()\"\n [size]=\"size()\"\n [id]=\"getInputId('select-input')\"\n fullWidth\n [formControl]=\"control\"\n [placeholder]=\"placeholder()\"\n (selectedChange)=\"selectedChangeEvent()\">\n @if (multiple()) {\n <nb-option\n [disabled]=\"isAllSelected()\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); selectAll()\"\n [value]=\"null\">\n Select all\n </nb-option>\n }\n @for (option of options(); track $index) {\n <nb-option [value]=\"option.value\" [disabled]=\"option?.disabled\">\n {{ option.title }}\n </nb-option>\n }\n </nb-select>\n </div>\n @if (multiple()) {\n <div\n [class]=\"['nb-form-field-suffix-' + size(), 'nb-form-field-addon-' + status()]\"\n class=\"nb-form-field-addon ng-star-inserted\">\n <button\n type=\"button\"\n title=\"Clear\"\n [id]=\"getInputId('select-input') + '-clear-button'\"\n nbButton\n appearance=\"ghost\"\n (click)=\"resetForm()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </div>\n }\n </div>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n standalone: true,\n selector: 'nbx-input-text',\n templateUrl: './input-text.component.html',\n styleUrls: ['./input-text.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputTextComponent,\n multi: true,\n },\n ],\n imports: [NbInputDirective, ReactiveFormsModule, NbxInputWrapperComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputTextComponent extends NbxControlValueAccessorBaseDirective<string | number> {\n readonly type = input<'text' | 'email' | 'search' | 'tel'>('text');\n readonly min = input<null | number>(null);\n readonly max = input<null | number>(null);\n readonly inputKeyup = output<string>();\n\n inputKeyUp(target: HTMLInputElement): void {\n this.inputKeyup.emit(target.value);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-' + type())\">\n <ng-content label-content></ng-content>\n\n <input\n [formControl]=\"control\"\n (input)=\"inputKeyUp($any($event.target))\"\n fullWidth\n [id]=\"getInputId('input-' + type())\"\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n type=\"string\" />\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, effect, ElementRef, input, output, viewChild } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-textarea',\n templateUrl: './input-textarea.component.html',\n styleUrls: ['./input-textarea.component.scss'],\n host: {\n class: 'input-control',\n '[style]': `{\n '--nbx-input-disabled-text-color': 'var(--input-' + status() + '-disabled-text-color)',\n '--nbx-input-disabled-border-color': 'var(--input-' + status() + '-disabled-border-color)',\n }`,\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: NbxInputTextareaComponent,\n multi: true,\n },\n ],\n imports: [NbxInputWrapperComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputTextareaComponent extends NbxControlValueAccessorBaseDirective<string> {\n readonly textareaInput = viewChild<ElementRef<HTMLDivElement>>('textareaInput');\n readonly inputKeyup = output<string>();\n\n readonly rows = input<null | number>(null);\n\n constructor() {\n super();\n effect(() => {\n const valueData = this.value();\n if (valueData !== this.innerHTMLValue) {\n this.setTextAreaValue(valueData || '');\n }\n });\n }\n\n onPaste(e: ClipboardEvent) {\n e.preventDefault();\n const pasteData = e.clipboardData?.getData('text/plain');\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(pasteData || ''));\n range.collapse(false);\n this.valueChanged(this.innerHTMLValue || '');\n }\n }\n\n protected keyup(): void {\n this.valueChanged(this.innerHTMLValue);\n this.inputKeyup.emit(this.innerHTMLValue);\n }\n\n private get innerHTMLValue(): string {\n return this.textareaInput()?.nativeElement.innerHTML || '';\n }\n\n private setTextAreaValue(value: string) {\n const nativeElement = this.textareaInput()?.nativeElement;\n\n if (nativeElement) {\n nativeElement.innerHTML = value;\n }\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-textarea')\">\n <ng-content label-content></ng-content>\n <div\n #textareaInput\n role=\"none\"\n [id]=\"getInputId('input-textarea')\"\n [attr.placeholder]=\"placeholder()\"\n [class.disabled]=\"disabled()\"\n [class]=\"['size-' + size(), 'status-' + status()]\"\n [style]=\"{ 'min-height': 'calc(1.2rem * ' + (rows() || 0) + ' + 1rem)' }\"\n class=\"textarea-container input-full-width shape-rectangle nb-transition\"\n [attr.contenteditable]=\"!disabled()\"\n nbInput\n fullWidth\n (paste)=\"onPaste($event)\"\n (input)=\"keyup()\"></div>\n</nbx-input-wrapper>\n","/* eslint-disable no-useless-escape */\nimport { AbstractControl } from '@angular/forms';\n\nexport const urlRegExp = new RegExp(\n /^https?:\\/\\/(www\\.)?[a-zA-Z0-9-]{1,63}(\\.[a-zA-Z0-9-]{1,63})*\\.[a-zA-Z]{2,6}(\\/[-a-zA-Z0-9@:%._+~#?&//=]*)?$/,\n);\n\nconst emailPattern =\n /(^$|(^([^<>()\\[\\]\\\\,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$)/;\n\nexport const NbxValidators = {\n url: (control: AbstractControl): { url: string } | null => {\n const pattern = urlRegExp.test(control.value);\n return pattern || !control.value ? null : { url: 'Invalid URL. Valid example: http://example.com' };\n },\n email: (control: AbstractControl): Record<string, any> | null => {\n const pattern = new RegExp(emailPattern).test(control.value);\n return pattern || !control.value ? null : { email: true };\n },\n};\n","import { EnvironmentProviders, importProvidersFrom } from '@angular/core';\n\n/**\n * @deprecated not need to use it! All providers already provided in theme\n * @returns null\n */\nexport function provideNbxInputs(): EnvironmentProviders {\n return importProvidersFrom();\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}
1
+ {"version":3,"file":"d4k-ui-nbx-inputs.mjs","sources":["../../../projects/nbx-inputs/src/lib/@core/helpers.ts","../../../projects/nbx-inputs/src/lib/@core/control-value-base.ts","../../../projects/nbx-inputs/src/lib/directives/custom-tooltip/custom-tooltip.component.ts","../../../projects/nbx-inputs/src/lib/directives/clipboard.directive.ts","../../../projects/nbx-inputs/src/lib/directives/int-or-float.directive.ts","../../../projects/nbx-inputs/src/lib/@core/constants.ts","../../../projects/nbx-inputs/src/lib/input-errors/input-errors.component.ts","../../../projects/nbx-inputs/src/lib/input-errors/input-errors.component.html","../../../projects/nbx-inputs/src/lib/input-label/input-label.component.ts","../../../projects/nbx-inputs/src/lib/input-label/input-label.component.html","../../../projects/nbx-inputs/src/lib/input-wrapper/input-wrapper.component.ts","../../../projects/nbx-inputs/src/lib/input-wrapper/input-wrapper.component.html","../../../projects/nbx-inputs/src/lib/select-options-list/select-options-list.component.ts","../../../projects/nbx-inputs/src/lib/select-options-list/select-options-list.component.html","../../../projects/nbx-inputs/src/lib/input-autocomplete/input-autocomplete.component.ts","../../../projects/nbx-inputs/src/lib/input-autocomplete/input-autocomplete.component.html","../../../projects/nbx-inputs/src/lib/input-color-select/input-color-select.component.ts","../../../projects/nbx-inputs/src/lib/input-color-select/input-color-select.component.html","../../../projects/nbx-inputs/src/lib/input-date-picker/input-date-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-picker/input-date-picker.component.html","../../../projects/nbx-inputs/src/lib/input-date-range-picker/input-date-range-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-range-picker/input-date-range-picker.component.html","../../../projects/nbx-inputs/src/lib/input-date-time-picker/input-date-time-picker.component.ts","../../../projects/nbx-inputs/src/lib/input-date-time-picker/input-date-time-picker.component.html","../../../projects/nbx-inputs/src/lib/input-multiselect-autocomplete/input-multiselect-autocomplete.component.ts","../../../projects/nbx-inputs/src/lib/input-multiselect-autocomplete/input-multiselect-autocomplete.component.html","../../../projects/nbx-inputs/src/lib/input-number/input-number.component.ts","../../../projects/nbx-inputs/src/lib/input-number/input-number.component.html","../../../projects/nbx-inputs/src/lib/input-select/input-select.component.ts","../../../projects/nbx-inputs/src/lib/input-select/input-select.component.html","../../../projects/nbx-inputs/src/lib/input-text/input-text.component.ts","../../../projects/nbx-inputs/src/lib/input-text/input-text.component.html","../../../projects/nbx-inputs/src/lib/input-textarea/input-textarea.component.ts","../../../projects/nbx-inputs/src/lib/input-textarea/input-textarea.component.html","../../../projects/nbx-inputs/src/lib/@core/validators.ts","../../../projects/nbx-inputs/src/d4k-ui-nbx-inputs.ts"],"sourcesContent":["import { AbstractControl, FormArray, FormControl, FormGroup } from '@angular/forms';\nimport { finalize, Observable, Subscriber, throttleTime } from 'rxjs';\nimport { NbxSelectOption } from './forms.models';\n\n/**\n *\n * @param formGroup\n * @param onlyActive if true, only not disabled controls will be marked as dirty\n */\nexport function markAllControlsAsDirty(abstractControl: AbstractControl): void {\n if (abstractControl instanceof FormControl) {\n abstractControl.markAsDirty();\n return;\n }\n if (abstractControl instanceof FormArray) {\n abstractControl.controls.forEach((control) => {\n markAllControlsAsDirty(control);\n });\n return;\n }\n if (abstractControl instanceof FormGroup) {\n Object.values(abstractControl.controls).forEach((control) => {\n markAllControlsAsDirty(control);\n });\n }\n}\n\nexport function isQueryIncludesInObject(obj: Record<string, any>, query: string): boolean {\n return Object.keys(obj).some((key) => {\n if (!obj[key]) {\n return false;\n }\n if (Array.isArray(obj[key])) {\n return obj[key].some((item: Record<string, any>) => isQueryIncludesInObject(item, query));\n }\n if (typeof obj[key] === 'object') {\n return isQueryIncludesInObject(obj[key] as Record<string, any>, query);\n }\n if (typeof obj[key] === 'string' || typeof obj[key] === 'number') {\n return obj[key].toString().toLowerCase().includes(query.toLowerCase());\n }\n return false;\n });\n}\n\nexport function getFilteredBySearchArray<T = unknown>(arr: object[], query: string): T[] {\n return arr.filter((item) => isQueryIncludesInObject(item as Record<string, unknown>, query)) as T[];\n}\n\nexport function filterAndSortOptionsBySearch(list: NbxSelectOption[], query: string | number): NbxSelectOption[] {\n const filtered = filterOptionsBySearch(list, query);\n return sortOptionsBySearchIndex<NbxSelectOption>(filtered, query.toString(), 'title');\n}\n\n/** Returned filtered array of options witch includes query */\nexport function filterOptionsBySearch(list: NbxSelectOption[], query: string | number): NbxSelectOption[] | [] {\n if (!query) return [];\n const queryInLowerCase = query.toString().toLowerCase();\n return list.filter((item) => item.title?.toString()?.toLowerCase()?.includes(queryInLowerCase));\n}\n\n/** Returned array of options sorted by query includes index */\nexport function sortOptionsBySearchIndex<T extends Record<string, any>>(\n list: T[],\n query: string,\n keySortBy: keyof T,\n): T[] {\n const queryInLowerCase = query.toLowerCase();\n return list.sort(\n (a, b) =>\n a[keySortBy].toLowerCase().indexOf(queryInLowerCase) - b[keySortBy].toLowerCase().indexOf(queryInLowerCase),\n );\n}\n\n/**\n * @returns Object { [controlKey]: control value if value not undefined } value of any control will be included if control is dirty\n */\nexport function getOnlyDirtyControlsValuesRecursive<T extends object>(form: FormGroup, excludeKeys?: string[]): T {\n const data: Record<string, unknown> = {};\n Object.entries(form.controls).forEach(([key, control]) => {\n if (excludeKeys && excludeKeys.includes(key)) {\n return;\n }\n if (control instanceof FormControl && control.dirty && typeof control.value !== 'undefined') {\n data[key] = control.value;\n return;\n }\n if (control instanceof FormArray && form.dirty) {\n const valuesArray = control.getRawValue();\n if (valuesArray?.length) {\n data[key] = valuesArray;\n }\n return;\n }\n if (control instanceof FormGroup) {\n const valuesObject = getOnlyDirtyControlsValuesRecursive(control);\n if (Object.keys(valuesObject)?.length) {\n data[key] = valuesObject;\n }\n }\n });\n return data as T;\n}\n\nexport function getRandomId(prefix = '', suffix = ''): string {\n return `${prefix ? `${prefix}-` : ''}${Math.random().toString(16).slice(2)}${suffix ? `-${suffix}` : ''}`;\n}\n\nexport function resizeObservable(elem: Element, throttleDelay = 100): Observable<ResizeObserverEntry> {\n let notifier: Subscriber<ResizeObserverEntry>;\n const resizeObserver = new ResizeObserver(([entry]: ResizeObserverEntry[]) => {\n notifier?.next(entry);\n });\n\n resizeObserver.observe(elem);\n\n return new Observable<ResizeObserverEntry>((observer) => {\n notifier = observer;\n }).pipe(\n finalize(() => {\n resizeObserver.unobserve(elem);\n resizeObserver.disconnect();\n }),\n throttleTime(throttleDelay),\n );\n}\n","import {\n AfterContentInit,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n signal,\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport {\n AbstractControl,\n ControlValueAccessor,\n FormArrayName,\n FormControl,\n FormControlName,\n NgControl,\n PristineChangeEvent,\n StatusChangeEvent,\n ValidationErrors,\n Validators,\n ValueChangeEvent,\n} from '@angular/forms';\nimport { NbComponentSize, NbComponentStatus } from '@d4k-ui/theme';\nimport { nbxClipboardCopyType } from '../directives/clipboard.directive';\nimport {\n INbxControlContext,\n NbxInputLabelPositionType,\n NbxInputValidationMessages,\n NbxLabelInfoType,\n} from './forms.models';\nimport { getRandomId } from './helpers';\n\nfunction isValueExist(value: nbxClipboardCopyType | '' | boolean | undefined): nbxClipboardCopyType | false {\n if (typeof value === 'undefined') {\n return false;\n }\n if (typeof value === 'boolean') {\n return value ? 'string' : false;\n }\n if (!value.length) {\n return 'string';\n }\n return value === 'json' ? 'json' : 'string';\n}\n\n@Directive()\nexport class NbxControlValueAccessorBaseDirective<\n T,\n L extends NbxInputLabelPositionType = NbxInputLabelPositionType,\n C extends AbstractControl = FormControl<T>,\n>\n implements ControlValueAccessor, AfterContentInit\n{\n private readonly elementRef = inject(ElementRef);\n private readonly injector = inject(Injector);\n\n readonly destroyRef = inject(DestroyRef);\n\n readonly id = input<string | undefined>();\n\n readonly placeholder = input<string>('');\n readonly labelInfo = input<NbxLabelInfoType | undefined>();\n readonly status = input<NbComponentStatus>('basic');\n readonly withCopyButton = input(false, { transform: isValueExist });\n readonly size = input<NbComponentSize>('medium');\n readonly customErrorsMessages = input<NbxInputValidationMessages>({});\n readonly labelPosition = input<L>();\n\n protected styleVars = {};\n\n public readonly value = signal<T>(null as T);\n public readonly touched = signal(false);\n public readonly disabled = signal(false);\n public readonly dirty = signal(false);\n public readonly invalid = signal(false);\n public readonly errors = signal<ValidationErrors | null>(null);\n\n private readonly initId = getRandomId();\n private withoutControl = false;\n\n public control!: C;\n\n public readonly errorDisplayedState = computed(() => {\n return this.invalid() && this.dirty();\n });\n\n public getContext(): INbxControlContext {\n return {\n value: this.value,\n hasRequiredValidator: this.hasRequiredValidator,\n errorDisplayedState: this.errorDisplayedState,\n errors: this.errors,\n disabled: this.disabled,\n labelInfo: this.labelInfo,\n withCopyButton: this.withCopyButton,\n labelPosition: this.labelPosition,\n customErrorsMessages: this.customErrorsMessages,\n };\n }\n\n constructor() {\n effect(() => {\n this.elementRef.nativeElement.setAttribute('style', this.getStylesString(this.size(), this.status()));\n });\n }\n\n ngAfterContentInit(): void {\n try {\n this.control = this.injector.get(FormControlName).control as unknown as C;\n this.subscribeToStateChange(this.control);\n } catch {\n try {\n this.control = this.injector.get(FormArrayName).control as unknown as C;\n this.subscribeToStateChange(this.control);\n } catch {\n try {\n const ngControl = this.injector.get(NgControl);\n if (ngControl) {\n this.control = ngControl.control as C;\n this.subscribeToStateChange(this.control);\n }\n } catch {\n this.withoutControl = true;\n this.control = new FormControl() as unknown as C;\n this.subscribeToStateChange(this.control);\n }\n }\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n public writeValue(value: T) {\n // this.value.set(value);\n }\n\n protected getInputId(prefix: string): string {\n return this.id() || prefix + '-' + this.initId;\n }\n\n valueChanged(value: T) {\n this.onTouched();\n this.onChange(value);\n if (this.withoutControl) {\n this.control?.setValue(value);\n this.control?.markAsDirty();\n }\n }\n\n onChange(value: T) {\n return value;\n }\n\n onTouched() {\n if (!this.touched()) {\n this.touched.set(true);\n }\n }\n\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n setDisabledState(isDisabled: boolean): void {\n this.disabled.set(isDisabled);\n }\n\n public get hasRequiredValidator(): boolean {\n return !!this.control?.hasValidator(Validators.required);\n }\n\n private getStylesString(size: NbComponentSize, status: NbComponentStatus): string {\n return `--nbx-input-background-color: var(--input-${status}-background-color); --nbx-input-font-size: var(--input-${size}-text-font-size, 1rem); --nbx-input-font-weight: var(--input-${size}-text-font-weight); --nbx-input-line-height: var(--input-${size}-text-line-height); --nbx-input-text-color: var(--input-${status}-text-color)`;\n }\n\n private subscribeToStateChange(control: AbstractControl) {\n if (!control) {\n return;\n }\n this.value.set(control.value);\n this.invalid.set(control.invalid);\n this.errors.set(control.errors);\n control.events.pipe(takeUntilDestroyed(this.destroyRef)).subscribe((event) => {\n if (event instanceof ValueChangeEvent) {\n this.value.set(event.value);\n this.errors.set(control.errors);\n }\n if (event instanceof StatusChangeEvent) {\n this.invalid.set(event.status === 'INVALID');\n }\n if (event instanceof PristineChangeEvent) {\n this.dirty.set(!event.pristine);\n }\n });\n }\n}\n","import { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, input } from '@angular/core';\n\n@Component({\n standalone: true,\n selector: 'nbx-custom-tooltip',\n template: `<div class=\"tooltip-wrap\">\n {{ text() }}\n <div class=\"triangle\"></div>\n </div>`,\n styles: [\n `\n .tooltip-wrap {\n background-color: rgba(0, 0, 0, 0.9);\n color: #fff;\n padding: 5px;\n border-radius: 5px;\n position: relative;\n }\n div.triangle {\n position: absolute;\n top: 100%;\n left: 50%;\n transform: translateX(-50%);\n width: 0;\n height: 0;\n border-left: 5px solid transparent;\n border-right: 5px solid transparent;\n border-top: 5px solid rgba(0, 0, 0, 0.9);\n }\n `,\n ],\n host: {\n '[@tooltip]': 'true',\n },\n animations: [\n trigger('tooltip', [\n transition(':enter', [style({ opacity: 0 }), animate(200, style({ opacity: 1 }))]),\n transition(':leave', [animate(200, style({ opacity: 0 }))]),\n ]),\n ],\n})\nexport class NbxCustomTooltipComponent {\n readonly text = input('');\n}\n","import { Clipboard } from '@angular/cdk/clipboard';\nimport { Overlay, OverlayConfig, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Directive, ElementRef, HostListener, inject, input, OnDestroy } from '@angular/core';\nimport { NbxCustomTooltipComponent } from './custom-tooltip/custom-tooltip.component';\n\nexport type nbxClipboardCopyType = 'json' | 'string';\n\nfunction getPreparedCopyText(value: unknown, asJson = false): string {\n if (asJson) {\n return JSON.stringify(value);\n }\n if (!value) {\n return '';\n }\n if (Array.isArray(value)) {\n return value.reduce((acc, curr) => {\n if (acc.length) {\n acc += `, ${curr}`;\n } else {\n acc = `${curr}`;\n }\n return acc;\n }, '');\n }\n const newString = value.toString().replace(/\\\\./g, ' ').replace(/\\s\\s+/g, ' ').trim();\n return newString;\n}\n\n@Directive({\n selector: '[nbxClipboard]',\n standalone: true,\n host: {\n '[attr.disabled]': '!this.value() || null',\n },\n})\nexport class NbxClipboardDirective implements OnDestroy {\n private clipboard = inject(Clipboard);\n private overlay = inject(Overlay);\n private elementRef = inject(ElementRef);\n\n readonly value = input<unknown>('', { alias: 'nbxClipboard' });\n readonly nbxClipboardCopyType = input<nbxClipboardCopyType>('string');\n\n @HostListener('click')\n onClick() {\n this.copyToClipboard();\n this.showAnimation();\n this.showPopover();\n return false;\n }\n ngOnDestroy(): void {\n this.overlayRef?.dispose();\n }\n\n private showAnimation() {\n this.elementRef.nativeElement\n .animate(\n [\n { transform: 'scale(1.1)' },\n { transform: 'scale(1.2)' },\n { transform: 'scale(1.4)' },\n { transform: 'scale(1)' },\n ],\n {\n duration: 500,\n easing: 'ease',\n trigger: 'enter',\n },\n )\n .play();\n }\n\n private overlayRef!: OverlayRef;\n\n private copyToClipboard() {\n this.clipboard.copy(getPreparedCopyText(this.value(), this.nbxClipboardCopyType() === 'json'));\n }\n\n private showPopover() {\n if (!this.elementRef.nativeElement) return;\n this.show();\n setTimeout(() => {\n this.hide();\n }, 700);\n }\n\n private show() {\n if (this.overlayRef) {\n this.overlayRef.dispose();\n }\n\n this.overlayRef = this.overlay.create(this.getOverlayConfig());\n const tooltipPortal = new ComponentPortal(NbxCustomTooltipComponent);\n const tooltipRef: ComponentRef<NbxCustomTooltipComponent> = this.overlayRef.attach(tooltipPortal);\n tooltipRef.setInput('text', 'Copied');\n }\n\n private hide() {\n this.overlayRef.detach();\n this.overlayRef.dispose();\n }\n\n protected getOverlayConfig(): OverlayConfig {\n const positionStrategy = this.overlay\n .position()\n .flexibleConnectedTo(this.elementRef)\n .withPush(false)\n .withPositions([\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'bottom',\n offsetY: -5,\n },\n {\n originX: 'center',\n originY: 'bottom',\n overlayX: 'center',\n overlayY: 'top',\n offsetY: 5,\n },\n ]);\n\n return new OverlayConfig({\n positionStrategy: positionStrategy,\n hasBackdrop: true,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n });\n }\n}\n","import { Directive, effect, ElementRef, HostListener, inject, input } from '@angular/core';\n\n@Directive({\n selector: '[nbxIntOrFloat]',\n})\nexport class IntOrFloatDirective {\n readonly nbxIntOrFloat = input.required<'int' | 'float'>();\n private readonly elRef = inject(ElementRef);\n\n @HostListener('keypress', ['$event'])\n onKeyPress(event: KeyboardEvent) {\n const type = this.nbxIntOrFloat();\n const key = event.key;\n\n if (type === 'int') {\n // Allow only digits\n if (!/^\\d$/.test(key)) {\n event.preventDefault();\n }\n } else if (type === 'float') {\n // Allow digits and one dot\n const input = event.target as HTMLInputElement;\n if (!/^\\d$/.test(key) && !(key === '.' && !input.value.includes('.'))) {\n event.preventDefault();\n }\n }\n }\n\n constructor() {\n effect(() => {\n if (this.nbxIntOrFloat() === 'int') {\n try {\n const value = this.elRef.nativeElement.value;\n if (value.includes('.')) {\n this.elRef.nativeElement.value = value.split('.')[0];\n }\n } catch {\n //do nothing\n }\n }\n });\n }\n}\n","import { NbxInputValidationMessages } from './forms.models';\n\nexport const NbxValidatorsErrorsMessage: NbxInputValidationMessages = {\n min: {\n dataKey: 'min',\n messageFunction: (length = '0') => `Min value ${length}`,\n },\n max: {\n dataKey: 'max',\n messageFunction: (length = '100') => `Max value ${length}`,\n },\n maxlength: {\n dataKey: 'requiredLength',\n messageFunction: (length = '0') => `Maximum length must be ${length}`,\n },\n url: 'Invalid URL. Valid example: http://example.com',\n required: 'Required field',\n minlength: {\n dataKey: 'requiredLength',\n messageFunction: (length = '0') => `Minimum length must be ${length}`,\n },\n email: 'Invalid email',\n nbDatepickerMax: 'Date is later the possible',\n nbDatepickerMin: 'Date is less then possible',\n unknownError: 'Not acceptable value',\n};\n","import { KeyValuePipe } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { ValidationErrors } from '@angular/forms';\nimport { NbxValidatorsErrorsMessage } from '../@core/constants';\nimport { NbxInputValidationMessages } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-input-errors',\n imports: [KeyValuePipe],\n templateUrl: './input-errors.component.html',\n styleUrls: ['./input-errors.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputErrorsComponent {\n /**\n * @description you need to provide key as error key like 'required' and translateKey as value\n */\n readonly customErrorsMessages = input<NbxInputValidationMessages>({});\n readonly errors = input.required<undefined | ValidationErrors | null>();\n private readonly errorMessages = computed<NbxInputValidationMessages>(() => {\n const custom = this.customErrorsMessages();\n return {\n ...NbxValidatorsErrorsMessage,\n ...custom,\n };\n });\n\n getErrorMessage(key: string, errorValue: Record<string, string> | string): string {\n try {\n if (!this.errorMessages()[key]) {\n if (typeof errorValue === 'string') {\n return errorValue;\n }\n }\n const message = this.errorMessages()[key];\n if (typeof message === 'string') {\n return message;\n }\n if (typeof errorValue !== 'string') {\n return message.messageFunction(errorValue[message.dataKey]);\n }\n return 'Not acceptable value';\n } catch {\n return 'Not acceptable value';\n }\n }\n}\n","<div class=\"input-errors\">\n @for(err of errors() | keyvalue; track err.key ){\n <div class=\"error\">{{ getErrorMessage(err.key, err.value) }}</div>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { NbIconComponent, NbTooltipDirective } from '@d4k-ui/theme';\nimport { NbxLabelInfoType } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-input-label',\n imports: [NbIconComponent, NbTooltipDirective],\n templateUrl: './input-label.component.html',\n styleUrls: ['./input-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputLabelComponent {\n readonly labelInfo = input<NbxLabelInfoType | undefined>();\n readonly isRequired = input<boolean>(false);\n readonly disabled = input<boolean>(false);\n readonly inputId = input<string | undefined>();\n}\n","<div class=\"label-wrap\">\n <label [class]=\"{ required: isRequired(), disabled: disabled() }\" class=\"input-label\" [for]=\"inputId()\">\n <ng-content></ng-content>\n </label>\n @if (labelInfo()?.type === 'icon') {\n <nb-icon\n nbTooltip=\"{{ labelInfo()?.text }}\"\n [nbTooltipStatus]=\"labelInfo()?.status || 'primary'\"\n icon=\"alert-circle-outline\"\n class=\"label-info\"></nb-icon>\n }\n @if (labelInfo()?.type === 'text') {\n <span [title]=\"labelInfo()?.text\" class=\"label-info\">{{ labelInfo()?.text }}</span>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, computed, ElementRef, input, viewChild } from '@angular/core';\nimport { NbIconComponent } from '@d4k-ui/theme';\nimport { INbxControlContext } from '../@core/forms.models';\nimport { NbxClipboardDirective } from '../directives/clipboard.directive';\nimport { NbxInputErrorsComponent } from '../input-errors/input-errors.component';\nimport { NbxInputLabelComponent } from '../input-label/input-label.component';\n\n@Component({\n selector: 'nbx-input-wrapper',\n imports: [NbxInputErrorsComponent, NbxInputLabelComponent, NbxClipboardDirective, NbIconComponent],\n templateUrl: './input-wrapper.component.html',\n styleUrls: ['./input-wrapper.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputWrapperComponent {\n readonly labelContent = viewChild('labelContent', { read: ElementRef });\n\n readonly context = input.required<INbxControlContext>();\n /**\n * @description set to true if the input has fieldset with button in the end\n * need to move copy button more to the left\n */\n readonly isInputHasButton = input<boolean>(false);\n readonly inputId = input<string | undefined>();\n readonly copyAsJson = input(false);\n\n /**\n * @description It's only needed to correctly display the \"float\" label type.\n * It's used for inputs like chips and similar ones that don't use input to display the value.\n * For correct operation, you also need to set searchHasValue.\n */\n readonly floatLabelOnlyBySearch = input(false);\n /**\n * @description It's only needed to correctly display the \"float\" label type.\n * set this input if you use different controls for search and value\n */\n readonly searchHasValue = input(false);\n\n readonly isLabelHasContent = computed(() => {\n return (this.labelContent() as ElementRef<HTMLDivElement>)?.nativeElement.querySelector('label')?.hasChildNodes();\n });\n\n readonly isControlHasValue = computed(() => {\n if (this.searchHasValue()) return true;\n const value = this.context().value();\n if (this.floatLabelOnlyBySearch() || typeof value === 'undefined' || value === null || value === '') return false;\n if (Array.isArray(value)) {\n return value?.length;\n }\n return true;\n });\n}\n","<div class=\"nbx-input-wrap\" [class.invalid]=\"context().errorDisplayedState()\">\n <div\n class=\"input-fieldset\"\n [class]=\"context().labelPosition()\"\n [class.has-value]=\"isControlHasValue()\"\n [class.no-label]=\"!isLabelHasContent()\">\n @if (context().labelPosition() !== 'none') {\n <nbx-input-label\n [labelInfo]=\"context().labelInfo()\"\n [isRequired]=\"context().hasRequiredValidator\"\n [disabled]=\"context().disabled()\"\n [inputId]=\"inputId()\"\n #labelContent>\n <ng-content #labelContent select=\"[label-content]\"></ng-content>\n </nbx-input-label>\n }\n <div class=\"input-content-wrap\">\n <ng-content></ng-content>\n @if (context().withCopyButton(); as copyType) {\n <button\n type=\"button\"\n [class.move-left]=\"isInputHasButton()\"\n [id]=\"inputId() + '-copy-button'\"\n class=\"copy-button\"\n [nbxClipboard]=\"context().value()\"\n [nbxClipboardCopyType]=\"copyType\">\n <nb-icon icon=\"copy-outline\"></nb-icon>\n </button>\n }\n </div>\n </div>\n <nbx-input-errors\n [customErrorsMessages]=\"context().customErrorsMessages()\"\n [errors]=\"context().errors()\"></nbx-input-errors>\n</div>\n","import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n OnChanges,\n SimpleChanges,\n computed,\n input,\n output,\n viewChild,\n viewChildren,\n} from '@angular/core';\nimport { NbCheckboxComponent, NbOptionComponent, NbOptionListComponent } from '@d4k-ui/theme';\nimport { NbxSelectOption } from '../@core/forms.models';\n\n@Component({\n selector: 'nbx-select-options-list',\n imports: [NbOptionComponent, NbOptionListComponent, NbCheckboxComponent, ScrollingModule],\n templateUrl: './select-options-list.component.html',\n styleUrls: ['./select-options-list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxSelectOptionsListComponent implements OnChanges {\n readonly optionsList = viewChildren('optionItem', { read: ElementRef });\n readonly virtualScrollContainer = viewChild(CdkVirtualScrollViewport);\n readonly options = input<NbxSelectOption[]>([]);\n readonly optionsListClass = input<string>('');\n\n readonly enableVirtualScroll = input(false);\n\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly optionClicked = output<NbxSelectOption>();\n readonly selectAll = output<NbxSelectOption[]>();\n readonly tabClicked = output<void>();\n readonly multi = input(false);\n readonly selectedValues = input<any[]>([]);\n private focusedOptionIndex = 0;\n\n protected readonly isAllSelected = computed(() =>\n this.options()?.every((option) => this.selectedValues().includes(option.value)),\n );\n\n ngOnChanges({ options }: SimpleChanges): void {\n if (options) {\n this.focusedOptionIndex = 0;\n this.virtualScrollContainer()?.scrollTo({ top: 0 });\n }\n }\n\n public selectAllOptions(): void {\n this.selectAll.emit(this.options());\n }\n\n optionClickedHandler(option: NbxSelectOption, index: number): void {\n this.focusedOptionIndex = index;\n this.optionClicked.emit(option);\n }\n\n keydown(event: KeyboardEvent): void {\n if (event.code === 'Tab') {\n event.preventDefault();\n this.tabClicked.emit();\n return;\n }\n if (event.code === 'ArrowDown') {\n event.preventDefault();\n if (this.focusedOptionIndex >= this.options().length - 1) {\n return;\n }\n this.focusedOptionIndex++;\n this.setFocusedOptionByIndex(this.focusedOptionIndex);\n }\n if (event.code === 'ArrowUp') {\n event.preventDefault();\n if (this.focusedOptionIndex <= 0) {\n return;\n }\n this.focusedOptionIndex--;\n this.setFocusedOptionByIndex(this.focusedOptionIndex);\n }\n }\n\n private setFocusedOptionByIndex(index: number): void {\n const optionsList = this.optionsList();\n if (optionsList) {\n optionsList[index]?.nativeElement.focus();\n }\n }\n}\n","<nb-option-list\n #optionsListContainer\n [style.--all-elements-height]=\"options().length * virtualScrollItemSizePX() + 'px'\"\n [style.--element-height]=\"virtualScrollItemSizePX() + 'px'\"\n (keydown)=\"keydown($event)\"\n [class.multi]=\"multi()\"\n [class.with-virtual-scroll]=\"enableVirtualScroll()\"\n [class]=\"optionsListClass()\">\n @if (multi()) {\n <nb-option\n [disabled]=\"isAllSelected()\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); selectAllOptions()\"\n >Select all</nb-option\n >\n }\n @if (enableVirtualScroll()) {\n <cdk-virtual-scroll-viewport\n [itemSize]=\"virtualScrollItemSizePX()\"\n maxBufferPx=\"600\"\n minBufferPx=\"600\"\n class=\"virtual-scroll-viewport\">\n <nb-option\n #optionItem\n *cdkVirtualFor=\"let option of options(); let i = index\"\n class=\"virtual-scroll-item\"\n [disabled]=\"option.disabled\"\n [id]=\"'nb-option-' + option.value\"\n [tabindex]=\"i\"\n [value]=\"option.value\"\n (keyup.enter)=\"optionClickedHandler(option, i)\"\n (click)=\"optionClickedHandler(option, i)\">\n @if (multi()) {\n <nb-checkbox\n class=\"multiselect-autocomplete-checkbox\"\n status=\"primary\"\n [disabled]=\"option.disabled\"\n [checked]=\"selectedValues().includes(option.value)\"\n >{{ option.title }}</nb-checkbox\n >\n } @else {\n {{ option.title }}\n }\n </nb-option>\n </cdk-virtual-scroll-viewport>\n } @else {\n @for (option of options(); track $index) {\n @if (option) {\n <nb-option\n #optionItem\n [disabled]=\"option.disabled\"\n [id]=\"'nb-option-' + option.value\"\n [tabindex]=\"$index\"\n [value]=\"option.value\"\n (keyup.enter)=\"optionClickedHandler(option, $index)\"\n (click)=\"optionClickedHandler(option, $index)\">\n @if (multi()) {\n <nb-checkbox\n class=\"multiselect-autocomplete-checkbox\"\n status=\"primary\"\n [disabled]=\"option.disabled\"\n [checked]=\"selectedValues().includes(option.value)\"\n >{{ option.title }}</nb-checkbox\n >\n } @else {\n {{ option.title }}\n }\n </nb-option>\n }\n }\n }\n</nb-option-list>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { map, startWith } from 'rxjs';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { filterAndSortOptionsBySearch, resizeObservable } from '../@core/helpers';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\nimport { NbxSelectOptionsListComponent } from '../select-options-list/select-options-list.component';\n\n@Component({\n selector: 'nbx-input-autocomplete',\n templateUrl: './input-autocomplete.component.html',\n imports: [\n NbxInputWrapperComponent,\n NbxSelectOptionsListComponent,\n OverlayModule,\n NbInputDirective,\n ReactiveFormsModule,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputAutocompleteComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputAutocompleteComponent\n extends NbxControlValueAccessorBaseDirective<string>\n implements OnInit, OnChanges, AfterViewInit\n{\n protected readonly clientWidth = signal<string | number>('100%');\n readonly optionsListContainer = viewChild('optionsListContainer', {\n read: ElementRef<HTMLDivElement>,\n });\n readonly inputElement = viewChild('inputElement', { read: ElementRef });\n\n protected readonly searchControl = new FormControl<string | undefined>('');\n\n private readonly searchValueSignal = toSignal<string | undefined | null>(this.searchControl.valueChanges);\n\n readonly optionsListClass = input<string>('');\n readonly options = input.required<NbxSelectOption[]>();\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly enableVirtualScroll = input(false);\n readonly anyStringInput = input<boolean>(false);\n readonly selectChanged = output<string>();\n\n protected readonly overlayVisible = signal<boolean>(false);\n\n readonly filteredOptions = computed(() => {\n const value = this.searchValueSignal();\n if (!value) {\n return this.options();\n }\n return filterAndSortOptionsBySearch(this.options(), value);\n });\n\n ngOnInit(): void {\n this.searchControl.valueChanges\n .pipe(\n startWith(''),\n map((value) => value || ''),\n takeUntilDestroyed(this.destroyRef),\n )\n .subscribe((str) => {\n if (!str) {\n if (this.control?.value) {\n this.control?.reset();\n }\n return;\n }\n const equalValueOption = this.getEqualValue(str, this.options());\n if (equalValueOption) {\n this.setValue(equalValueOption.value as string);\n this.toggleOverlay(false);\n } else if (this.anyStringInput()) {\n this.setValue(str);\n }\n });\n }\n\n ngOnChanges({ options }: SimpleChanges): void {\n if (options) {\n this.updateInputTitle(this.value());\n }\n }\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const element = this.inputElement()?.nativeElement;\n if (element) {\n this.clientWidth.set(element.clientWidth || '100%');\n resizeObservable(element)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.clientWidth.set(this.inputElement()?.nativeElement.clientWidth || '100%');\n });\n }\n }, 200);\n }\n\n moveFocusToNextElement() {\n this.inputElement()?.nativeElement.focus();\n }\n\n switchFocusToOptions(): void {\n const optionsListContainer = this.optionsListContainer() as ElementRef<HTMLDivElement>;\n if (optionsListContainer) {\n const firstOption = optionsListContainer.nativeElement.querySelector<HTMLDivElement>('nb-option');\n firstOption?.focus();\n }\n }\n\n private getEqualValue(str: string, options: NbxSelectOption[]): NbxSelectOption | undefined {\n if (!options || !str) {\n return;\n }\n return options.find((el) => el?.value === str || el?.title === str);\n }\n\n optionSelected(option: NbxSelectOption<string>): void {\n this.selectChanged.emit(option.value);\n this.setValue(option.value);\n this.inputElement()?.nativeElement.focus();\n this.toggleOverlay(false);\n }\n\n protected toggleOverlay(state?: boolean): void {\n if (state !== this.overlayVisible()) {\n this.onTouched();\n this.overlayVisible.set(state ?? !this.overlayVisible);\n }\n }\n\n private updateInputTitle(value?: string): void {\n const options = this.options();\n if (!options) {\n return;\n }\n const option = options.find((option) => option?.value === value);\n if (!option) {\n this.searchControl.setValue(value, { emitEvent: false });\n return;\n }\n this.searchControl.setValue(option?.title, { emitEvent: false });\n }\n\n protected setValue(value: string): void {\n super.valueChanged(value);\n this.updateInputTitle(value);\n }\n\n override writeValue(value: string): void {\n super.writeValue(value);\n this.updateInputTitle(value);\n }\n\n override setDisabledState(isDisabled: boolean): void {\n super.setDisabledState(isDisabled);\n if (isDisabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n }\n}\n","<nbx-input-wrapper\n (keydown.tab)=\"toggleOverlay(false)\"\n [context]=\"getContext()\"\n [inputId]=\"getInputId('input-autocomplete')\"\n [searchHasValue]=\"!!searchControl.value\">\n <ng-content label-content></ng-content>\n <input\n #inputElement\n #trigger=\"cdkOverlayOrigin\"\n type=\"text\"\n [status]=\"status()\"\n [size]=\"size()\"\n (click)=\"toggleOverlay(true)\"\n (focus)=\"toggleOverlay(true)\"\n (input)=\"toggleOverlay(true)\"\n (keydown.arrowdown)=\"$event.preventDefault(); switchFocusToOptions()\"\n autocomplete=\"off\"\n [id]=\"getInputId('input-autocomplete')\"\n [formControl]=\"searchControl\"\n [placeholder]=\"placeholder()\"\n nbInput\n cdkOverlayOrigin\n fullWidth />\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n [cdkConnectedOverlayWidth]=\"clientWidth()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\"\n (detach)=\"toggleOverlay(false)\">\n <nbx-select-options-list\n #optionsListContainer\n [optionsListClass]=\"optionsListClass()\"\n [virtualScrollItemSizePX]=\"virtualScrollItemSizePX()\"\n [enableVirtualScroll]=\"enableVirtualScroll()\"\n (optionClicked)=\"optionSelected($any($event))\"\n (tabClicked)=\"moveFocusToNextElement()\"\n [options]=\"filteredOptions()\"></nbx-select-options-list>\n </ng-template>\n</nbx-input-wrapper>\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { ChangeDetectionStrategy, Component, forwardRef, input, output, signal } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbIconComponent } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputLabelPositionType, NbxSelectOption } from '../@core/forms.models';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-color-select',\n templateUrl: './input-color-select.component.html',\n imports: [NbIconComponent, NbxInputWrapperComponent, ReactiveFormsModule, OverlayModule],\n host: {\n class: 'input-control',\n '[style]': `{\n '--nbx-color-input-disabled-text-color': 'var(--input-' + status() + '-disabled-text-color)',\n '--nbx-color-input-hover-background-color': 'var(--select-outline-' + status() + '-hover-background-color)',\n '--nbx-color-input-border-color': 'var(--select-outline-' + status() + '-border-color)',\n '--nbx-color-input-disabled-border-color': 'var(--select-outline-' + status() + '-disabled-border-color)',\n '--nbx-color-input-padding': 'var(--select-outline-' + size() + '-padding)',\n }`,\n },\n styleUrls: ['./input-color-select.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputColorSelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputColorSelectComponent extends NbxControlValueAccessorBaseDirective<\n string | string[],\n Exclude<NbxInputLabelPositionType, 'float'>\n> {\n protected readonly overlayVisible = signal<boolean>(false);\n readonly colorSelected = output<string | null>();\n /**\n * @description if you want show select options as color you need to provide customData: string in option otherwise will be shown as regular select string\n * @example {value: 'green', title: 'green',customData: '#000000' }\n */\n readonly options = input.required<NbxSelectOption<string, string>[]>();\n /**\n * @description Display title in list\n * @default true\n */\n readonly withTitle = input<boolean>(true);\n\n selectedOption(): NbxSelectOption<string, string> | undefined {\n return this.options().find((option) => option.value === this.value());\n }\n\n toggleOverlay(state?: boolean) {\n this.overlayVisible.update((old) => state ?? !old);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('color-select-input')\">\n <ng-content label-content></ng-content>\n <div class=\"input-color-wrap\">\n <div class=\"nb-form-control-container nb-form-field-control-with-suffix\">\n <button\n type=\"button\"\n [disabled]=\"disabled()\"\n (click)=\"!disabled() ? toggleOverlay() : false\"\n cdkOverlayOrigin\n #trigger=\"cdkOverlayOrigin\"\n [id]=\"getInputId('color-select-input')\"\n class=\"select-button\">\n @if (selectedOption(); as selected) {\n @if (!selected.customData || withTitle()) {\n {{ selected.title }}\n }\n @if (selected.customData) {\n <div class=\"color-round\" [style.backgroundColor]=\"selected.customData\"></div>\n }\n } @else {\n @if (withTitle()) {\n <span> none </span>\n }\n <nb-icon icon=\"slash-outline\"></nb-icon>\n }\n\n <nb-icon icon=\"chevron-down-outline\" [class.active]=\"overlayVisible()\"></nb-icon>\n </button>\n\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\">\n <div class=\"color-options-list\" [class.with-title]=\"withTitle()\">\n <button\n type=\"button\"\n class=\"color-option\"\n id=\"color-option-reset\"\n (click)=\"valueChanged($any(null)); toggleOverlay(false); colorSelected.emit(null)\">\n @if (withTitle()) {\n <div class=\"option-with-title\">\n none\n <nb-icon icon=\"slash-outline\"></nb-icon>\n </div>\n } @else {\n <nb-icon icon=\"slash-outline\"></nb-icon>\n }\n </button>\n @for (option of options(); track $index) {\n <button\n type=\"button\"\n class=\"color-option\"\n id=\"color-option-{{ $index }}\"\n [class.selected]=\"option.value === value()\"\n (click)=\"valueChanged(option.value); toggleOverlay(false); colorSelected.emit(option.value)\">\n @if (option.customData) {\n @if (withTitle()) {\n <div class=\"option-with-title\">\n {{ option.title }}\n <div class=\"color-round\" [style.backgroundColor]=\"option.customData\"></div>\n </div>\n } @else {\n <div class=\"color-round\" [style.backgroundColor]=\"option.customData\"></div>\n }\n } @else {\n {{ option.title }}\n }\n </button>\n }\n </div>\n </ng-template>\n </div>\n </div>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDatepickerComponent,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() in you root providers list\n */\n@Component({\n standalone: true,\n selector: 'nbx-input-date-picker',\n templateUrl: './input-date-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputDatePickerComponent),\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbDatepickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDatePickerComponent extends NbxControlValueAccessorBaseDirective<any> {\n readonly minDate = input<Date | null | string>(null);\n readonly maxDate = input<Date | null | string>(null);\n readonly format = input<string>();\n\n readonly dateChanged = output<Date>();\n\n constructor() {\n super();\n }\n\n public dateSelected(event: any): void {\n this.dateChanged.emit(event);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [id]=\"getInputId('date-picker')\"\n [placeholder]=\"placeholder()\"\n [nbDatepicker]=\"datePicker\"\n [formControl]=\"control\" />\n <button\n type=\"button\"\n [id]=\"getInputId('date-picker') + '-reset-button'\"\n [disabled]=\"disabled()\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-datepicker\n #datePicker\n style=\"display: none\"\n [format]=\"format()\"\n (dateChange)=\"dateSelected($event)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-datepicker>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, forwardRef, inject, input, output } from '@angular/core';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDateService,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbRangepickerComponent,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() in you root providers list\n */\n@Component({\n standalone: true,\n selector: 'nbx-input-date-range-picker',\n templateUrl: './input-date-range-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputDateRangePickerComponent),\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbRangepickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDateRangePickerComponent extends NbxControlValueAccessorBaseDirective<DateRangeObject> {\n private dateService = inject<NbDateService<Date>>(NbDateService);\n\n readonly minDate = input<Date | null>(null);\n readonly maxDate = input<Date | null>(null);\n readonly format = input<string>();\n\n readonly dateRangeChanged = output<DateRangeObject | null>();\n protected inputControl = new FormControl();\n\n constructor() {\n super();\n this.dateService.compareDates = (date1: Date, date2: Date | DateRangeObject) => {\n const date1Time = date1.getTime();\n if (date2 instanceof Date) {\n return date1Time - date2.getTime();\n }\n if (date2?.start && date2?.end) {\n const start = new Date(date2?.start).getTime();\n const end = new Date(date2?.end).getTime();\n return date1Time === start ? 0 : date1Time > start && date1Time < end ? 1 : -1;\n }\n if (date2?.start) {\n const start = new Date(date2.start).getTime();\n return date1Time === start ? 0 : date1Time > start ? 1 : -1;\n }\n if (date2?.end) {\n const end = new Date(date2.end).getTime();\n return date1Time === end ? 0 : date1Time < end ? 1 : -1;\n }\n return 0;\n };\n }\n\n public dateChanged(event: any): void {\n this.dateRangeChanged.emit(event);\n return;\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-range-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n [nbDatepicker]=\"dateRangePicker\"\n [formControl]=\"control\"\n [id]=\"getInputId('date-range-picker')\" />\n <button\n type=\"button\"\n [disabled]=\"disabled()\"\n [id]=\"getInputId('date-range-picker') + '-reset-button'\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-rangepicker\n #dateRangePicker\n style=\"display: none\"\n [format]=\"format()\"\n (rangeChange)=\"dateChanged($event)\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-rangepicker>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbDateTimePickerComponent,\n NbDatepickerDirective,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\nexport interface DateRangeObject {\n start?: Date;\n end?: Date;\n}\n\n/**\n * @description for correct work you need to provide NbDatepickerModule.forRoot() and NbTimepickerModule.forRoot() in you root providers list\n */\n@Component({\n selector: 'nbx-input-date-time-picker',\n templateUrl: './input-date-time-picker.component.html',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputDateTimePickerComponent),\n multi: true,\n },\n ],\n imports: [\n NbxInputWrapperComponent,\n NbInputDirective,\n NbButtonComponent,\n ReactiveFormsModule,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbDatepickerDirective,\n NbDateTimePickerComponent,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputDateTimePickerComponent extends NbxControlValueAccessorBaseDirective<any> {\n readonly minDate = input<Date | null | string>(null);\n readonly maxDate = input<Date | null | string>(null);\n readonly format = input<string>();\n readonly step = input<number>(10);\n\n readonly dateChanged = output<Date>();\n\n constructor() {\n super();\n }\n\n public dateSelected(event: any): void {\n this.dateChanged.emit(event);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('date-time-picker')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n fullWidth\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n [id]=\"getInputId('date-time-picker')\"\n [nbDatepicker]=\"dateTimePicker\"\n [formControl]=\"control\" />\n <button\n type=\"button\"\n [id]=\"getInputId('date-picker') + '-reset-button'\"\n [disabled]=\"disabled()\"\n title=\"Clear\"\n nbSuffix\n nbButton\n appearance=\"ghost\"\n (click)=\"control.reset()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </nb-form-field>\n <nb-date-timepicker\n #dateTimePicker\n style=\"display: none\"\n (dateTimeChange)=\"dateSelected($event)\"\n singleColumn\n [step]=\"step()\"\n [format]=\"format()\"\n [min]=\"minDate()\"\n [max]=\"maxDate()\"></nb-date-timepicker>\n</nbx-input-wrapper>\n","import { OverlayModule } from '@angular/cdk/overlay';\n\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n forwardRef,\n input,\n output,\n signal,\n viewChild,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport { FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport {\n NbButtonComponent,\n NbFormFieldComponent,\n NbIconComponent,\n NbInputDirective,\n NbSuffixDirective,\n} from '@d4k-ui/theme';\nimport { map } from 'rxjs';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { filterAndSortOptionsBySearch, resizeObservable } from '../@core/helpers';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\nimport { NbxSelectOptionsListComponent } from '../select-options-list/select-options-list.component';\n\n@Component({\n selector: 'nbx-input-multiselect-autocomplete',\n templateUrl: './input-multiselect-autocomplete.component.html',\n styleUrls: ['./input-multiselect-autocomplete.component.scss'],\n imports: [\n ReactiveFormsModule,\n OverlayModule,\n NbInputDirective,\n NbButtonComponent,\n NbIconComponent,\n NbFormFieldComponent,\n NbSuffixDirective,\n NbxInputWrapperComponent,\n NbxSelectOptionsListComponent,\n ],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputMultiselectAutocompleteComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputMultiselectAutocompleteComponent\n extends NbxControlValueAccessorBaseDirective<(string | number)[]>\n implements AfterViewInit\n{\n readonly inputElement = viewChild('inputElement', { read: ElementRef });\n readonly optionsListContainer = viewChild('optionsListContainer', {\n read: ElementRef<HTMLDivElement>,\n });\n protected readonly searchControl = new FormControl<string>('');\n protected readonly clientWidth = signal<string | number>('100%');\n\n readonly optionsListClass = input<string>('');\n readonly selectedOnTop = input(false);\n /**\n * you can correct height of option if you have change it style for correct work of virtual scroll\n */\n readonly virtualScrollItemSizePX = input<number>(38);\n readonly enableVirtualScroll = input(false);\n readonly options = input.required<NbxSelectOption[]>();\n readonly selectedChange = output<(string | number)[]>();\n\n private readonly searchValue = toSignal<string>(this.searchControl.valueChanges.pipe(map((value) => value || '')));\n\n protected readonly selectedValues = signal<(string | number)[]>([]);\n\n protected readonly selectedTitlesString = computed(() => {\n return this.selectedValues().reduce((prev, current) => {\n const option = this.options().find((option) => option.value === current);\n if (!option) return prev;\n return (prev += `${prev ? ', ' : ''}${option.title}`);\n }, '');\n });\n\n protected readonly overlayVisible = signal<boolean>(false);\n\n protected readonly filteredOptions = computed(() => {\n const list = !this.searchValue()\n ? this.options()\n : filterAndSortOptionsBySearch(this.options(), this.searchValue()!);\n if (!this.selectedOnTop()) {\n return list;\n }\n const options: NbxSelectOption[] = [];\n list.forEach((option) => {\n if (this.selectedValues().includes(option.value)) {\n options.unshift(option);\n } else {\n options.push(option);\n }\n });\n return options;\n });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n const element = this.inputElement()?.nativeElement;\n if (element) {\n this.clientWidth.set(element.clientWidth || '100%');\n resizeObservable(element)\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => {\n this.clientWidth.set(this.inputElement()?.nativeElement.clientWidth || '100%');\n });\n }\n }, 200);\n }\n\n public override writeValue(value: (string | number)[] | null): void {\n this.value.set(value || []);\n this.setSelected(value || [], true);\n }\n\n public optionClicked(value: string | number): void {\n let newValue: (string | number)[] = [];\n if (!this.selectedValues().includes(value)) {\n newValue = [...this.selectedValues(), value];\n } else {\n newValue = this.selectedValues().filter((insideValue) => insideValue !== value);\n }\n this.setSelected(newValue);\n }\n\n moveFocusToNextElement() {\n this.inputElement()?.nativeElement.focus();\n }\n\n switchFocusToOptions(): void {\n const optionsListContainer = this.optionsListContainer() as ElementRef<HTMLDivElement>;\n if (optionsListContainer) {\n const firstOption = optionsListContainer.nativeElement.querySelector<HTMLDivElement>('nb-option');\n firstOption?.focus();\n }\n }\n\n public resetSelection(): void {\n this.setSelected([]);\n this.searchControl.reset();\n }\n\n public selectAllOptions(): void {\n const allValues = this.options().map((option) => option.value);\n this.setSelected(allValues);\n }\n\n override setDisabledState(isDisabled: boolean): void {\n super.setDisabledState(isDisabled);\n if (isDisabled) {\n this.searchControl.disable({ emitEvent: false });\n } else {\n this.searchControl.enable({ emitEvent: false });\n }\n }\n\n private setSelected(valuesArray: (string | number)[], onlySelf = false): void {\n this.selectedValues.set(valuesArray);\n if (!onlySelf) {\n this.valueChanged(valuesArray);\n setTimeout(() => {\n this.selectedChange.emit(this.value());\n }, 50);\n }\n }\n\n protected toggleOverlay(state?: boolean): void {\n if (state !== this.overlayVisible()) {\n this.onTouched();\n this.overlayVisible.set(state ?? !this.overlayVisible);\n if (!this.overlayVisible()) {\n this.searchControl.reset('');\n }\n }\n }\n}\n","<nbx-input-wrapper\n [context]=\"getContext()\"\n [searchHasValue]=\"!!searchControl.value\"\n (keydown.tab)=\"toggleOverlay(false)\"\n [isInputHasButton]=\"true\"\n [inputId]=\"getInputId('multiselect-autocomplete-input')\">\n <ng-content label-content></ng-content>\n <nb-form-field>\n <input\n nbInput\n cdkOverlayOrigin\n #inputElement\n #trigger=\"cdkOverlayOrigin\"\n [status]=\"status()\"\n [size]=\"size()\"\n (click)=\"toggleOverlay(true)\"\n (focus)=\"toggleOverlay(true)\"\n (input)=\"toggleOverlay(true)\"\n (keydown.arrowdown)=\"$event.preventDefault(); switchFocusToOptions()\"\n [class.has-value]=\"selectedTitlesString()\"\n [formControl]=\"searchControl\"\n [id]=\"getInputId('multiselect-autocomplete-input')\"\n fullWidth\n [placeholder]=\"selectedTitlesString() || placeholder()\"\n type=\"text\" />\n\n <button\n title=\"Clear\"\n type=\"button\"\n [disabled]=\"disabled()\"\n [size]=\"size()\"\n [status]=\"status()\"\n nbSuffix\n nbButton\n [id]=\"getInputId('multi-autocomplete-input') + '-clear-button'\"\n appearance=\"ghost\"\n (click)=\"resetSelection()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n <ng-template\n cdkConnectedOverlay\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"overlayVisible()\"\n [cdkConnectedOverlayWidth]=\"clientWidth()\"\n (overlayOutsideClick)=\"toggleOverlay(false)\"\n (detach)=\"toggleOverlay(false)\">\n <nbx-select-options-list\n #optionsListContainer\n [multi]=\"true\"\n [optionsListClass]=\"optionsListClass()\"\n [virtualScrollItemSizePX]=\"virtualScrollItemSizePX()\"\n [enableVirtualScroll]=\"enableVirtualScroll()\"\n [selectedValues]=\"selectedValues()\"\n (selectAll)=\"selectAllOptions()\"\n (optionClicked)=\"optionClicked($event.value)\"\n (tabClicked)=\"moveFocusToNextElement()\"\n [options]=\"filteredOptions()\"></nbx-select-options-list>\n </ng-template>\n </nb-form-field>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { IntOrFloatDirective } from '../directives/int-or-float.directive';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-number',\n templateUrl: './input-number.component.html',\n styleUrls: ['./input-number.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputNumberComponent),\n multi: true,\n },\n ],\n imports: [NbInputDirective, ReactiveFormsModule, NbxInputWrapperComponent, IntOrFloatDirective],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputNumberComponent extends NbxControlValueAccessorBaseDirective<string | number> {\n readonly min = input<null | number>(null);\n readonly max = input<null | number>(null);\n readonly onlyInt = input<boolean>(false);\n readonly inputKeyup = output<string>();\n\n inputKeyUp(target: HTMLInputElement): void {\n this.inputKeyup.emit(target.value);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-number')\">\n <ng-content label-content></ng-content>\n\n <input\n (keydown.arrowDown)=\"$event.preventDefault()\"\n (keydown.arrowUp)=\"$event.preventDefault()\"\n (wheel)=\"$event.preventDefault()\"\n [formControl]=\"control\"\n (input)=\"inputKeyUp($any($event.target))\"\n fullWidth\n [nbxIntOrFloat]=\"onlyInt() ? 'int' : 'float'\"\n [status]=\"status()\"\n [size]=\"size()\"\n nbInput\n [id]=\"getInputId('input-number')\"\n [min]=\"min()\"\n [max]=\"max()\"\n [placeholder]=\"placeholder()\"\n type=\"number\" />\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, computed, forwardRef, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbButtonComponent, NbIconComponent, NbOptionComponent, NbSelectComponent } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxSelectOption } from '../@core/forms.models';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-select',\n templateUrl: './input-select.component.html',\n imports: [\n NbIconComponent,\n NbSelectComponent,\n NbOptionComponent,\n NbxInputWrapperComponent,\n ReactiveFormsModule,\n NbButtonComponent,\n ],\n styleUrl: './input-select.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputSelectComponent),\n multi: true,\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputSelectComponent extends NbxControlValueAccessorBaseDirective<string | string[]> {\n readonly multiple = input<boolean>(false);\n readonly optionsListClass = input<string>('');\n readonly options = input.required<NbxSelectOption[]>();\n\n readonly selectedChange = output<string | string[]>();\n readonly isAllSelected = computed(() => this.value()?.length === this.options()?.length);\n\n constructor() {\n super();\n }\n\n selectAll(): void {\n const allValues = this.options().map((item) => item.value);\n this.control.setValue(allValues);\n }\n\n resetForm(): void {\n this.control?.reset();\n if (this.multiple()) {\n this.valueChanged([]);\n this.selectedChangeEvent();\n }\n }\n\n public selectedChangeEvent(): void {\n setTimeout(() => {\n this.selectedChange.emit(this.control.value);\n });\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [isInputHasButton]=\"true\" [inputId]=\"getInputId('select-input')\">\n <ng-content label-content></ng-content>\n <div class=\"select-wrapper\">\n <div class=\"nb-form-control-container nb-form-field-control-with-suffix\">\n <nb-select\n [multiple]=\"multiple()\"\n [optionsListClass]=\"optionsListClass()\"\n [class.multiple]=\"multiple()\"\n [status]=\"status()\"\n [size]=\"size()\"\n [id]=\"getInputId('select-input')\"\n fullWidth\n [formControl]=\"control\"\n [placeholder]=\"placeholder()\"\n (selectedChange)=\"selectedChangeEvent()\">\n @if (multiple()) {\n <nb-option\n [disabled]=\"isAllSelected()\"\n (click)=\"$event.preventDefault(); $event.stopPropagation(); selectAll()\"\n [value]=\"null\">\n Select all\n </nb-option>\n }\n @for (option of options(); track $index) {\n <nb-option [value]=\"option.value\" [disabled]=\"option?.disabled\">\n {{ option.title }}\n </nb-option>\n }\n </nb-select>\n </div>\n @if (multiple()) {\n <div\n [class]=\"['nb-form-field-suffix-' + size(), 'nb-form-field-addon-' + status()]\"\n class=\"nb-form-field-addon ng-star-inserted\">\n <button\n type=\"button\"\n title=\"Clear\"\n [id]=\"getInputId('select-input') + '-clear-button'\"\n nbButton\n appearance=\"ghost\"\n (click)=\"resetForm()\">\n <nb-icon icon=\"backspace-outline\" pack=\"eva\"> </nb-icon>\n </button>\n </div>\n }\n </div>\n</nbx-input-wrapper>\n","import { ChangeDetectionStrategy, Component, forwardRef, input, output } from '@angular/core';\nimport { NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';\nimport { NbInputDirective } from '@d4k-ui/theme';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n standalone: true,\n selector: 'nbx-input-text',\n templateUrl: './input-text.component.html',\n styleUrls: ['./input-text.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputTextComponent),\n multi: true,\n },\n ],\n imports: [NbInputDirective, ReactiveFormsModule, NbxInputWrapperComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputTextComponent extends NbxControlValueAccessorBaseDirective<string | number> {\n readonly type = input<'text' | 'email' | 'search' | 'tel'>('text');\n readonly min = input<null | number>(null);\n readonly max = input<null | number>(null);\n readonly inputKeyup = output<string>();\n\n inputKeyUp(target: HTMLInputElement): void {\n this.inputKeyup.emit(target.value);\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-' + type())\">\n <ng-content label-content></ng-content>\n\n <input\n [formControl]=\"control\"\n (input)=\"inputKeyUp($any($event.target))\"\n fullWidth\n [id]=\"getInputId('input-' + type())\"\n nbInput\n [status]=\"status()\"\n [size]=\"size()\"\n [placeholder]=\"placeholder()\"\n type=\"string\" />\n</nbx-input-wrapper>\n","import {\n ChangeDetectionStrategy,\n Component,\n effect,\n ElementRef,\n forwardRef,\n input,\n output,\n viewChild,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { NbxControlValueAccessorBaseDirective } from '../@core/control-value-base';\nimport { NbxInputWrapperComponent } from '../input-wrapper/input-wrapper.component';\n\n@Component({\n selector: 'nbx-input-textarea',\n templateUrl: './input-textarea.component.html',\n styleUrls: ['./input-textarea.component.scss'],\n host: {\n class: 'input-control',\n '[style]': `{\n '--nbx-input-disabled-text-color': 'var(--input-' + status() + '-disabled-text-color)',\n '--nbx-input-disabled-border-color': 'var(--input-' + status() + '-disabled-border-color)',\n }`,\n },\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => NbxInputTextareaComponent),\n multi: true,\n },\n ],\n imports: [NbxInputWrapperComponent],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class NbxInputTextareaComponent extends NbxControlValueAccessorBaseDirective<string> {\n readonly textareaInput = viewChild<ElementRef<HTMLDivElement>>('textareaInput');\n readonly inputKeyup = output<string>();\n\n readonly rows = input<null | number>(null);\n\n constructor() {\n super();\n effect(() => {\n const valueData = this.value();\n if (valueData !== this.innerHTMLValue) {\n this.setTextAreaValue(valueData || '');\n }\n });\n }\n\n onPaste(e: ClipboardEvent) {\n e.preventDefault();\n const pasteData = e.clipboardData?.getData('text/plain');\n const selection = window.getSelection();\n if (selection && selection.rangeCount > 0) {\n const range = selection.getRangeAt(0);\n range.deleteContents();\n range.insertNode(document.createTextNode(pasteData || ''));\n range.collapse(false);\n this.valueChanged(this.innerHTMLValue || '');\n }\n }\n\n protected keyup(): void {\n this.valueChanged(this.innerHTMLValue);\n this.inputKeyup.emit(this.innerHTMLValue);\n }\n\n private get innerHTMLValue(): string {\n return this.textareaInput()?.nativeElement.innerHTML || '';\n }\n\n private setTextAreaValue(value: string) {\n const nativeElement = this.textareaInput()?.nativeElement;\n\n if (nativeElement) {\n nativeElement.innerHTML = value;\n }\n }\n}\n","<nbx-input-wrapper [context]=\"getContext()\" [inputId]=\"getInputId('input-textarea')\">\n <ng-content label-content></ng-content>\n <div\n #textareaInput\n role=\"none\"\n [id]=\"getInputId('input-textarea')\"\n [attr.placeholder]=\"placeholder()\"\n [class.disabled]=\"disabled()\"\n [class]=\"['size-' + size(), 'status-' + status()]\"\n [style]=\"{ 'min-height': 'calc(1.2rem * ' + (rows() || 0) + ' + 1rem)' }\"\n class=\"textarea-container input-full-width shape-rectangle nb-transition\"\n [attr.contenteditable]=\"!disabled()\"\n nbInput\n fullWidth\n (paste)=\"onPaste($event)\"\n (input)=\"keyup()\"></div>\n</nbx-input-wrapper>\n","/* eslint-disable no-useless-escape */\nimport { AbstractControl } from '@angular/forms';\n\nexport const urlRegExp = new RegExp(\n /^https?:\\/\\/(www\\.)?[a-zA-Z0-9-]{1,63}(\\.[a-zA-Z0-9-]{1,63})*\\.[a-zA-Z]{2,6}(\\/[-a-zA-Z0-9@:%._+~#?&//=]*)?$/,\n);\n\nconst emailPattern =\n /(^$|(^([^<>()\\[\\]\\\\,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$)/;\n\nexport const NbxValidators = {\n url: (control: AbstractControl): { url: string } | null => {\n const pattern = urlRegExp.test(control.value);\n return pattern || !control.value ? null : { url: 'Invalid URL. Valid example: http://example.com' };\n },\n email: (control: AbstractControl): Record<string, any> | null => {\n const pattern = new RegExp(emailPattern).test(control.value);\n return pattern || !control.value ? null : { email: true };\n },\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2"],"mappings":"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"}