UNPKG

custom-input-field

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 14.0.0.

1 lines 21 kB
{"version":3,"file":"custom-input-field.mjs","sources":["../../../projects/custom-input-field/src/lib/custom-input-field.component.ts","../../../projects/custom-input-field/src/lib/custom-input-field.module.ts","../../../projects/custom-input-field/src/public-api.ts","../../../projects/custom-input-field/src/custom-input-field.ts"],"sourcesContent":["import { AfterContentInit, Component, ElementRef, EventEmitter, Input, OnChanges, OnInit, Output, Renderer2, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'custom-input-field',\n template: `\n<div class=\"--input-select-group {{readonly? 'disabled' : ''}}\" #SelectField>\n <ng-container *ngIf=\"!readonly\">\n <input type=\"text\" id=\"{{randomNumber}}\" [readonly]=\"!isSearch\" [placeholder]=\"placeholder\"\n (keyup)=\"onKeyUp($event)\" #SelectInput (focus)=\"onFocus()\" (blur)=\"onBlur()\" [(ngModel)]=\"selectedName\"\n class=\"select-part select-input\">\n </ng-container>\n <ng-container *ngIf=\"readonly\">\n <input type=\"text\" onclick=\"return false\" [placeholder]=\"placeholder\" id=\"{{randomNumber}}\" onkeydown=\"return false\"\n onkeypress=\"return false\" onkeyup=\"return false\" readonly [value]=\"selectedName\" class=\"select-part select-input\">\n </ng-container>\n <label for=\"{{randomNumber}}\" #SelectLabel class=\"select-part\">{{inputLabel}}<span *ngIf=\"isRequired\"\n class=\"--required-field\"></span></label>\n <div class=\"input-select select-part\" #SelectOptions>\n <ng-container *ngIf=\"defaultValue || defaultValueName\">\n <div class=\"input-item {{isDefaultDisabled? 'disabled' : ''}}\" (mousedown)=\"onSelectDefault($event)\"\n attr.value=\"{{defaultValue}}\">\n {{defaultValueName}}\n </div>\n </ng-container>\n <div *ngFor=\"let item of masterList;let i=index\" class=\"input-item {{item.disabled ? 'disabled' : ''}}\"\n (mousedown)=\"onSelectOption(item)\" attr.value=\"{{item.id}}\">\n {{item.name}}</div>\n <ng-container *ngIf=\"isItemNotFound\">\n <div class=\"input-item show-option item-not-found\" item-not-found=\"true\">\n {{itemNotFoundMessage}}\n </div>\n </ng-container>\n </div>\n <mat-icon class=\"mat-icon\">expand_more</mat-icon>\n</div>\n `\n})\nexport class CustomInputFieldComponent implements OnInit, OnChanges, AfterContentInit {\n\n\n constructor(private renderer: Renderer2) { }\n\n ngOnInit(): void {\n\n }\n\n ngAfterContentInit(): void {\n this.checkDefaultValue();\n if (!this.selectedValue) return;\n if (!this.masterList?.length) return;\n this.selectedName = this.masterList.find(x => x.id == this.selectedValue)?.name;\n }\n\n ngOnChanges(): void {\n if (!this.selectedValue) return;\n if (!this.masterList?.length) return;\n this.selectedName = this.masterList.find(x => x.id == this.selectedValue)?.name;\n }\n\n @ViewChild(\"SelectField\") SelectField!: ElementRef;\n @ViewChild(\"SelectInput\") SelectInput!: ElementRef;\n @ViewChild(\"SelectLabel\") SelectLabel!: ElementRef;\n @ViewChild(\"SelectOptions\") SelectOptions!: ElementRef;\n\n //Inputs\n @Input() placeholder: string = \" \";\n @Input() inputLabel: string = \"\";\n @Input() readonly: boolean = false;\n @Input() isRequired: boolean = false;\n @Input() isSearch: boolean = true;\n @Input() itemNotFoundMessage: string = 'Item not found';\n @Input() defaultValue: any = null;\n @Input() defaultValueName: string = '';\n @Input() isDefaultDisabled: boolean = true;\n\n @Input() masterList: any[] = [];\n @Input() selectedValue: any;\n @Output() selectedValueChange = new EventEmitter<any>();\n @Output() onSelectionChange = new EventEmitter<any>();\n selectedName: string = \"\";\n randomNumber = Math.floor(Math.random() * 90000) + 10000;\n currentMasterList: string[] = [];\n currentOptionElements: any[] = [];\n isItemNotFound: boolean = false;\n\n\n onSelectOption(item: any) {\n if (item.disabled) return;\n this.selectedValueChange.emit(null);\n const optionsElement = this.SelectOptions.nativeElement as HTMLElement;\n optionsElement.classList.remove(\"active\");\n this.selectedValueChange.emit(item.id);\n this.selectedName = item.name;\n this.onSelectionChange.emit(item);\n }\n\n onSelectDefault(event: Event) {\n if (this.isDefaultDisabled) return;\n this.selectedValueChange.emit(null);\n const optionsElement = this.SelectOptions.nativeElement as HTMLElement;\n optionsElement.classList.remove(\"active\");\n this.selectedValueChange.emit(this.defaultValue);\n this.selectedName = this.defaultValueName;\n this.onSelectionChange.emit(event);\n }\n\n checkDefaultValue() {\n if (this.defaultValue == 0 && this.selectedValue == 0) {\n this.selectedName = this.defaultValueName;\n console.log(this.selectedName);\n }\n }\n\n validateValue() {\n const { value } = this.SelectInput.nativeElement;\n const trimmedValue = value?.toString()?.trim();\n if (trimmedValue) {\n this.renderer.addClass(this.SelectLabel.nativeElement, '--input--selected');\n } else {\n this.renderer.removeClass(this.SelectLabel.nativeElement, '--input--selected');\n }\n }\n\n onFocus() {\n this.iconNameChange();\n this.currentMasterList = [];\n this.currentOptionElements = (this.SelectOptions.nativeElement as any)?.children;\n const { value } = this.SelectInput.nativeElement;\n const currentValue = value?.toString()?.trim();\n if (!this.currentOptionElements?.length) return;\n for (let i = 0; i < this.currentOptionElements.length; i++) {\n const optionElement = this.currentOptionElements[i] as HTMLElement;\n const optionText = optionElement.innerText?.trim();\n this.currentMasterList.push(optionText);\n this.renderer.removeClass(optionElement, 'selected-option');\n if (currentValue) {\n if (currentValue === optionText) this.renderer.addClass(optionElement, 'selected-option');\n }\n this.renderer.removeClass(optionElement, 'hide-option');\n this.renderer.addClass(optionElement, 'show-option');\n this.renderer.addClass(optionElement, 'select-part');\n }\n this.renderer.removeClass(this.SelectLabel.nativeElement, '--input--selected');\n this.renderer.addClass(this.SelectOptions.nativeElement, 'active');\n }\n\n onKeyUp(event: any) {\n const { keyCode } = event;\n if (keyCode === 9) return; //Tab\n if (!this.isSearch) return;\n this.selectedValueChange.emit(null);\n this.isItemNotFound = false;\n const inputValue = event.target.value?.toString()?.trim()?.toLowerCase();\n if (!this.currentOptionElements?.length) return;\n\n //FilterOptions\n for (let i = 0; i < this.currentMasterList.length; i++) {\n const filteredList = this.currentMasterList.filter(x => x?.toString()?.trim()?.toLowerCase().includes(inputValue));\n //Check ItemIsFound\n if (inputValue && !filteredList.length) {\n const currentElement = (<HTMLElement>this.SelectField.nativeElement).querySelectorAll(\".input-item\");\n for (let i = 0; i < currentElement.length; i++) {\n const element = currentElement[i] as any;\n const isNotFoundElement = element.getAttribute('item-not-found') === 'true';\n if (!isNotFoundElement) element.className = `input-item ${element?.getAttribute('value')} hide-option`;\n }\n this.isItemNotFound = true;\n return;\n } else {\n this.isItemNotFound = false;\n }\n //If Item Found\n for (let i = 0; i < this.currentOptionElements.length; i++) {\n const optionElement = this.currentOptionElements[i] as HTMLElement;\n const optionText = optionElement.innerText;\n this.renderer.removeClass(optionElement, 'selected-option');\n if (!inputValue) {\n this.renderer.removeClass(optionElement, 'hide-option');\n this.renderer.addClass(optionElement, 'show-option');\n continue;\n }\n if (filteredList.find(x => x?.trim() === optionText?.trim())) {\n this.renderer.removeClass(optionElement, 'hide-option');\n this.renderer.addClass(optionElement, 'show-option');\n } else {\n this.renderer.addClass(optionElement, 'hide-option');\n this.renderer.removeClass(optionElement, 'show-option');\n }\n\n }\n }\n }\n\n onBlur() {\n this.iconNameChange();\n this.renderer.removeClass(this.SelectOptions.nativeElement, 'active');\n if ((this.defaultValue || this.defaultValue == 0) && this.selectedValue == null) {\n this.selectedValueChange.emit(this.defaultValue);\n this.selectedName = this.defaultValueName;\n this.renderer.addClass(this.SelectField.nativeElement, '--input--selected');\n } else {\n if (!this.selectedValue && this.selectedValue != 0) {\n this.selectedName = \"\";\n const currentElement = (<HTMLElement>this.SelectField.nativeElement).querySelector(\n '.--input--selected'\n );\n if (currentElement) this.renderer.removeClass(currentElement, \"--input--selected\")\n }\n }\n }\n\n placeholderActive(selector: HTMLInputElement) {\n if (selector.getAttribute('placeholder')) {\n return true;\n }\n return false;\n }\n\n iconNameChange() {\n const iconName = this.SelectOptions.nativeElement?.nextElementSibling?.innerText;\n this.SelectOptions.nativeElement.nextElementSibling.innerText = iconName === 'expand_more' ? 'expand_less' : 'expand_more';\n }\n}\n","import { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CustomInputFieldComponent } from './custom-input-field.component';\nimport { MatIconModule } from '@angular/material/icon';\n\n\n@NgModule({\n declarations: [\n CustomInputFieldComponent\n ],\n imports: [\n BrowserModule,\n FormsModule,\n MatIconModule\n ],\n exports: [\n CustomInputFieldComponent\n ]\n})\nexport class CustomInputFieldModule { }\n","/*\n * Public API Surface of custom-input-field\n */\n\nexport * from './lib/custom-input-field.component';\nexport * from './lib/custom-input-field.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}