{"version":3,"file":"sdk-textbox.mjs","sources":["../../../projects/sdk-textbox/src/lib/components/calendar/calendar.component.ts","../../../projects/sdk-textbox/src/lib/components/calendar/calendar.component.html","../../../projects/sdk-textbox/src/lib/sdk-textbox.component.ts","../../../projects/sdk-textbox/src/lib/sdk-textbox.component.html","../../../projects/sdk-textbox/src/lib/sdk-textbox.module.ts","../../../projects/sdk-textbox/src/public-api.ts","../../../projects/sdk-textbox/src/sdk-textbox.ts"],"sourcesContent":["import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';\nimport { CommonModule, DatePipe } from '@angular/common';\n\n@Component({\n\tselector: 'calendar',\n\tstandalone: true,\n\timports: [\n\t\tCommonModule,\n\t],\n\ttemplateUrl: './calendar.component.html',\n\tstyleUrls: ['./calendar.component.scss']\n})\n\nexport class CalendarComponent implements OnInit {\n\t@Input() date: string = \"\";\n\t@Input() show: boolean = false;\n\t@Input() height: string = \"180px\";\n\t@Input() width: string = \"180px\";\n\t@Input() fontSize: string = \"1.0em\";\n\t@Output() setDateEvent: EventEmitter<any> = new EventEmitter();\n\n\t/**************************************************************************\n\t* Component Variables\n\t**************************************************************************/\n\t@ViewChild(\"calendar\") calendar!: ElementRef | undefined;\n\t@ViewChild(\"yearText\") yearText: ElementRef | undefined;\n\n\tpublic showCalendar: boolean = true;\n\tpublic showMonths: boolean = false;\n\tpublic showYears: boolean = false;\n\n\tpublic calendarHtml: string = \"\";\n\n\tpublic year: number = 0;\n\tpublic month: string = \"\";\n\tpublic monthNumber: number = 0;\n\tpublic dayNumber: number = 0;\n\tpublic months: string[] = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\tpublic days: string[] = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n\n\tpublic calDays: any;\n\n\tprivate newData: string = \"\";\n\n\tconstructor(private datePipe: DatePipe) {}\n\n\tpublic ngOnInit() {\n\t\tthis.setCalendar();\n\n\t\tsetTimeout(() => {\n\t\t\tthis.setStyle();\n\t\t}, 1);\n\t}\n\n\tpublic ngOnChanges() {\n\t\tthis.newData = this.date;\n\t}\n\n\tpublic setDate(date: string) {\n\t\tthis.setDateEvent.emit(date);\n\t}\n\n\tpublic getToday() {\n\t\tthis.newData = new Date().toString();\n\t\tthis.setCalendar();\n\t}\n\n\tpublic getMonth() {\n\t\tthis.showMonths = true;\n\t\tthis.showCalendar = false;\n\t}\n\n\tpublic setMonth(month: any) {\n\t\tthis.showCalendar = true;\n\t\tthis.showMonths = false;\n\n\t\tthis.newData = new Date(this.year, month, this.dayNumber).toString();\n\t\tthis.setCalendar();\n\t}\n\n\tpublic getYear() {\n\t\tthis.showYears = true;\n\t\tthis.showCalendar = false;\n\t}\n\n\tpublic setYear() {\n\t\tif (this.yearText?.nativeElement.value !== \"\" && this.yearText?.nativeElement.value.length === 4) {\n\t\t\tthis.showCalendar = true;\n\t\t\tthis.showYears = false;\n\n\t\t\tthis.newData = new Date(this.yearText?.nativeElement.value, this.monthNumber - 1, this.dayNumber).toString();\n\t\t\tthis.setCalendar();\n\t\t}\n\t}\n\n\tpublic onKeyDown(event: any) {\n\t\tlet text = event.target.value;\n\n\t\tif (event.key === \"Enter\") {\n\t\t\tthis.setYear();\n\t\t} else if (\n\t\t\tevent.key === \"Backspace\"\n\t\t\t|| event.key === \"Tab\"\n\t\t\t|| event.key === \"ArrowLeft\"\n\t\t\t|| event.key === \"ArrowRight\"\n\t\t\t|| event.key === \"Meta\"\n\t\t\t|| event.key === \"Control\"\n\t\t) {\n\t\t\t// DO NOTHING\n\t\t} else {\n\t\t\tif (!(event.metaKey && event.key === \"v\") && !(event.metaKey && event.key === \"c\")) {\n\t\t\t\tif (!event.key.match(/[0-9]/)\n\t\t\t\t\t|| text.length >= 4\n\t\t\t\t) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\t/**************************************************************************\n\t* Protected Methods\n\t**************************************************************************/\n\tprivate setCalendar() {\n\t\tlet dt = (this.newData && this.newData !== \"\") ? new Date(this.newData) : new Date();\n\n\t\tthis.year = dt.getFullYear();\n\t\tthis.month = this.months[dt.getMonth()];\n\t\tthis.monthNumber = (dt.getMonth() + 1);\n\t\tthis.dayNumber = dt.getDate();\n\n\t\tlet fistDay = new Date(this.year, dt.getMonth(), 1).getDay();\n\t\tlet totalDays = this.getTotalDays(dt.getFullYear(), dt.getMonth() + 1);\n\t\tlet weeks = Math.floor(totalDays / 7);\n\n\t\tlet isToday: boolean = false;\n\t\tlet isSelected: boolean = false;\n\n\t\tif (fistDay > 0) weeks = weeks + 1;\n\t\tif ((totalDays + fistDay) > (weeks * 7)) weeks = weeks + 1;\n\n\t\tlet plotDay: any = 1;\n\n\t\tthis.calDays = [];\n\n\t\tfor (let w = 0; w < weeks; w++) {\n\t\t\tfor (let d = 0; d < 7; d++) {\n\t\t\t\tlet currentDay = ((7 * w) + (d + 1));\n\n\t\t\t\tif (currentDay < (fistDay + 1)) {\n\t\t\t\t\tthis.calDays.push({ date: \"\", day: \"\"});\n\t\t\t\t} else {\n\t\t\t\t\tif (plotDay <= totalDays) {\n\t\t\t\t\t\tif (this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd') === this.datePipe.transform(new Date(), 'yyyy-MM-dd')) {\n\t\t\t\t\t\t\tisToday = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisToday = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd') === this.datePipe.transform(this.date, 'yyyy-MM-dd')) {\n\t\t\t\t\t\t\tisSelected = true;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tisSelected = false;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tthis.calDays.push({ date: this.datePipe.transform(new Date(this.year, this.monthNumber - 1, plotDay), 'yyyy-MM-dd'), day: plotDay.toString(), today: isToday, selected: isSelected });\n\t\t\t\t\t\t\n\t\t\t\t\t\tplotDay++;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.calDays.push({ date: \"\", day: \"\"});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate getTotalDays(year: any, month: any) {\n\t\treturn new Date(year, month, 0).getDate();\n\t}\n\n\tprivate setStyle() {\n\t\tlet element = this.calendar?.nativeElement;\n\n\t\tif (element) {\n\t\t\telement.style.setProperty(\"--height\", this.height);\n\t\t\telement.style.setProperty(\"--width\", this.width);\n\t\t\telement.style.setProperty(\"--font-size\", this.fontSize);\n\t\t}\n\t}\n}","<div #calendar *ngIf=\"show\" class=\"sdk-textbox-calendar\" [style.height]=\"((calDays.length * 30) + 30) + 'px'\">\n    <div class=\"frame\" *ngIf=\"showCalendar\">\n        <div class=\"header\">\n            <div class=\"month\" (click)=\"getMonth()\">{{ month }}</div>\n            <div class=\"today\" (click)=\"getToday()\">Today</div>\n            <div class=\"year\" (click)=\"getYear()\">{{ year }}</div>\n        </div>\n        <div class=\"calendar\">\n            <div class=\"grid\">\n                <div class=\"label\">Sun</div>\n                <div class=\"label\">Mon</div>\n                <div class=\"label\">Tue</div>\n                <div class=\"label\">Wed</div>\n                <div class=\"label\">Thu</div>\n                <div class=\"label\">Fri</div>\n                <div class=\"label\">Sat</div>\n                <div class=\"item\" [ngClass]=\"{ today: day.today, selected: day.selected  }\" *ngFor=\"let day of calDays; let i = index\" (mousedown)=\"setDate(day.date)\">{{ day.day }}</div>\n            </div>\n        </div>\n    </div>\n    \n    <table *ngIf=\"showMonths\" class=\"table\">\n        <tbody>\n            <tr>\n                <td (click)=\"setMonth(0)\">Jan</td>\n                <td (click)=\"setMonth(1)\">Feb</td>\n                <td (click)=\"setMonth(2)\">Mar</td>\n                <td (click)=\"setMonth(3)\">Apr</td>\n            </tr>\n            <tr>\n                <td (click)=\"setMonth(4)\">May</td>\n                <td (click)=\"setMonth(5)\">Jun</td>\n                <td (click)=\"setMonth(6)\">Jul</td>\n                <td (click)=\"setMonth(7)\">Aug</td>\n            </tr>\n            <tr>\n                <td (click)=\"setMonth(8)\">Sep</td>\n                <td (click)=\"setMonth(9)\">Oct</td>\n                <td (click)=\"setMonth(10)\">Nov</td>\n                <td (click)=\"setMonth(11)\">Dec</td>\n            </tr>\n        </tbody>\n    </table>\n\n    <table *ngIf=\"showYears\" class=\"table\">\n        <tbody>\n            <tr>\n                <td>\n                    <div class=\"year-box\">\n                        <input #yearText class=\"year\" type=\"number\" (keydown)=\"onKeyDown($event)\" [value]=\"year\" />\n                        <button class=\"set\" (click)=\"setYear()\">SET</button>\n                    </div>\n                </td>\n            </tr>\n        </tbody>\n    </table>\n</div>\n","import { Component, ElementRef, EventEmitter, Input, Output, ViewChild } from '@angular/core';\nimport { CommonModule, DatePipe, formatCurrency, formatNumber } from '@angular/common';\n\nimport { CalendarComponent } from './components/calendar/calendar.component';\n\n@Component({\n\tselector: 'sdk-textbox',\n\tstandalone: true,\n\timports: [\n\t\tCommonModule,\n\t\tCalendarComponent\n\t],\n\ttemplateUrl: './sdk-textbox.component.html',\n\tstyleUrls: ['./sdk-textbox.component.scss']\n})\n\nexport class SDKTextboxComponent {\n\t/**************************************************************************\n\t* Input/Output Parameters\n\t**************************************************************************/\n\t@Input() validCharacters: string = \"\";\n\t@Input() value: string = \"\";\n\t@Input() hint: string = \"\";\n\t@Input() pattern: string = \"\";\n\t@Input() locale: string = \"en-US\";\n\t@Input() multiLine: boolean = false;\n\t@Input() border: string | undefined;\n\t@Input() padding: string | undefined;\n\t@Input() margin: string | undefined;\n\t@Input() height: string | undefined;\n\t@Input() width: string | undefined;\n\t@Input() style: string | undefined;\n\t@Input() class: string | undefined;\n\t@Input() showCalendarIcon: boolean = true;\n\t@Input() calHeight: string = \"180px\";\n\t@Input() calWidth: string = \"180px\";\n\t@Input() calFontSize: string = \"1.0em\";\n\t@Input() focus: boolean = false;\n\t@Output() blurCallBackEvent: EventEmitter<any> = new EventEmitter();\n\t@Output() changeCallBackEvent: EventEmitter<any> = new EventEmitter();\n\t@Output() enterCallBackEvent: EventEmitter<any> = new EventEmitter();\n\n\t/**************************************************************************\n\t* Component Variables\n\t**************************************************************************/\n\t@ViewChild(\"component\") component: ElementRef | undefined;\n\t@ViewChild(\"text\") text: ElementRef | undefined;\n\t@ViewChild(\"calendar\") calendar: ElementRef | undefined;\n\n\tprotected calendarDate: string = \"\";\n\tprotected showCalendar: boolean = false;\n\tprotected lockCalendar: boolean = false;\n\n\tprivate pArray: any = [];\n\tprivate fArray: any = [];\n\n\t//******************************************************************************\n\t//  Component Life-cycle Methods\n\t//******************************************************************************\n\tprotected ngOnInit() {\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.pattern || this.pattern === \"\") this.pattern = \"YYYY-MM-DD\";\n\n\t\t\t\t\tlet divider = this.pattern.replace(/[ymdYMD]/g, \"\").substring(0, 1);\n\t\t\t\t\tlet dividerArray = this.pattern.split(divider);\n\n\t\t\t\t\tthis.hint = this.pattern;\n\t\t\t\t\tthis.createPattern(dividerArray[0].replace(/[ymdYMD]/g, \"#\") + divider + dividerArray[1].replace(/[ymdYMD]/g, \"#\") + divider + dividerArray[2].replace(/[ymdYMD]/g, \"#\"));\n\n\t\t\t\t\tif (this.value && this.value !== \"\") {\n\t\t\t\t\t\tlet datePipe = new DatePipe(this.locale);\n\t\t\t\t\t\tlet pattern = this.pattern!.replace(/[yY]/g, \"y\").replace(/[mM]/g, \"M\").replace(/[dD]/g, \"d\");\n\t\t\t\t\t\tlet value = this.value.split(\"T\")[0];\n\n\t\t\t\t\t\tthis.value = datePipe.transform(value, pattern) || \"\";\n\t\t\t\t\t}\n\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tif (!this.width) {\n\t\t\t\t\t\t\tthis.text!.nativeElement.style.width = `${this.pattern!.length * 10}px`;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.component!.nativeElement.parentNode.hasAttribute(\"nocomponent\")) {\n\t\t\t\t\t\t\tthis.showCalendarIcon = false;\n\t\t\t\t\t\t}\n\t\t\t\t\t}, 1);\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"email\":\n\t\t\t\t\tthis.hint = \"name@company.com\";\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"custom\":\n\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t&& this.pattern.indexOf(\"#\") > -1\n\t\t\t\t\t\t&& !this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t&& !this.pattern.endsWith(\"]\")\n\t\t\t\t\t) {\n\t\t\t\t\t\tthis.hint = this.pattern;\n\t\t\t\t\t\tthis.createPattern();\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected ngAfterViewInit() {\n\t\tsetTimeout(() => {\n\t\t\tif (this.validCharacters === \"calendar\" && this.component && this.text) {\n\t\t\t\tthis.component.nativeElement.style.width = (this.text.nativeElement.clientWidth + 25) + \"px\";\n\t\t\t}\n\n\t\t\tif (this.focus) {\n\t\t\t\tthis.text!.nativeElement.focus();\n\t\t\t}\n\t\t}, 100);\n\t}\n\n\t//*************************************************************************\n\t//  Protected Methods\n\t//*************************************************************************\n\tprotected onKeyDown(event: any) {\n\t\tthis.showCalendar = false;\n\n\t\tif (event.key === \"Enter\" && !event.shiftKey) {\n\t\t\tthis.text!.nativeElement.blur();\n\n\t\t\tif (this.enterCallBackEvent.observed) {\n\t\t\t\tthis.enterCallBackEvent.emit(event.target.value);\n\t\t\t}\n\t\t} else if (\n\t\t\tevent.key === \"Backspace\"\n\t\t\t|| event.key === \"Tab\"\n\t\t\t|| event.key === \"ArrowLeft\"\n\t\t\t|| event.key === \"ArrowRight\"\n\t\t\t|| event.key === \"Meta\"\n\t\t\t|| event.key === \"Control\"\n\t\t) {\n\t\t\t// DO NOTHING\n\t\t} else {\n\t\t\tlet text = this.removeSelection(event);\n\n\t\t\tif (!(event.metaKey && event.key === \"v\") && !(event.metaKey && event.key === \"c\")) {\n\t\t\t\tswitch (this.validCharacters) {\n\t\t\t\t\tcase \"alpha\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"numeric\":\n\t\t\t\t\t\tif (!event.key.match(/[0-9]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"alphanumeric\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z0-9]/)) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"decimal\":\n\t\t\t\t\tcase \"currency\":\n\t\t\t\t\t\tif (!event.key.match(/[-0-9.]/)\n\t\t\t\t\t\t\t|| (event.key === \".\" && text.match(/[.]/g))\n\t\t\t\t\t\t\t|| (event.key === \"-\" && (event.target.selectionStart !== 0 || text.match(/[-]/g)))\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet periodArray = text.toString().split(\".\");\n\n\t\t\t\t\t\tif (this.validCharacters === \"currency\" && periodArray.length > 1 && periodArray[1].length >= 2) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"calendar\":\n\t\t\t\t\t\tif (!event.key.match(/[0-9]/)\n\t\t\t\t\t\t\t|| text.replace(/[^0-9]/g, \"\").length === this.pattern!.replace(/[^ymdYMD]/g, \"\").length\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"email\":\n\t\t\t\t\t\tif (!event.key.match(/[a-zA-Z0-9._%+-@]/)\n\t\t\t\t\t\t\t|| (event.key === \"@\" && text.match(/[@]/g))\n\t\t\t\t\t\t\t|| (!text.match(/[@]/g) && text.length >= 64)\n\t\t\t\t\t\t\t|| (text.match(/[@]/g) && text.length >= 254)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tlet atArray = text.toString().split(\"@\");\n\n\t\t\t\t\t\tif (atArray.length > 1\n\t\t\t\t\t\t\t&& event.target.selectionStart > atArray[0].length\n\t\t\t\t\t\t\t&& !event.key.match(/[a-zA-Z0-9-.]/)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"latitude\":\n\t\t\t\t\t\tlet latrx = /^([\\-]?|[\\-]?[1-9]|[\\-]?[1-8][0-9]|[\\-]?90)(?:[.]\\d{0,15})?$/;\n\t\t\t\t\t\tlet lattext = text + event.key;\n\n\t\t\t\t\t\tif (!lattext.match(new RegExp(latrx))) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"longitude\":\n\t\t\t\t\t\tlet longrx = /^([\\-]?|[\\-]?[1-9]|[\\-]?[1-9]\\d|[\\-]?[1][0-7]\\d|[\\-]?180)(?:[.]\\d{0,15})?$/;\n\t\t\t\t\t\tlet longtext = text + event.key;\n\n\t\t\t\t\t\tif (!longtext.match(new RegExp(longrx))) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase \"custom\":\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.indexOf(\"#\") > -1\n\t\t\t\t\t\t\t&& !this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t\t&& !this.pattern.endsWith(\"]\")\n\t\t\t\t\t\t\t&& (!event.key.match(/[0-9]/) || text.length === this.pattern.length)\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.startsWith(\"[\")\n\t\t\t\t\t\t\t&& this.pattern.endsWith(\"]\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tif (!event.key.match(new RegExp(this.pattern, \"g\"))) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern\n\t\t\t\t\t\t\t&& this.pattern.startsWith(\"^\")\n\t\t\t\t\t\t\t&& this.pattern.endsWith(\"$\")\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tlet newText = text + event.key;\n\n\t\t\t\t\t\t\tif (!newText.match(new RegExp(this.pattern))) {\n\t\t\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak;\n\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected onBlur(event: any) {\n\t\tlet text = event.target.value;\n\n\t\tif (this.validCharacters && text && text !== \"\") {\n\t\t\ttext = this.cleanText(text);\n\t\t\ttext = this.formatText(text);\n\n\t\t\tevent.target.value = text;\n\t\t}\n\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.lockCalendar) {\n\t\t\t\t\t\tthis.showCalendar = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\tif (this.blurCallBackEvent.observed) {\n\t\t\tthis.blurCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected onInput(event: any) {\n\t\tif (this.validCharacters === \"decimal\"\n\t\t\t|| this.validCharacters === \"currency\"\n\t\t) {\n\t\t\tthis.setNumericText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"calendar\") {\n\t\t\tthis.setCalendarText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"email\") {\n\t\t\tthis.setEmailText(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"latitude\") {\n\t\t\tthis.setLatitude(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"longitude\") {\n\t\t\tthis.setLongitude(event);\n\t\t}\n\n\t\tif (this.validCharacters === \"custom\" && this.pArray.length > 0) {\n\t\t\tthis.setCustomText(event);\n\t\t}\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected onCut(event: any) {\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd);\n\n\t\tlet text = textLeft + textRight;\n\n\t\tlet clipboardData = event.clipboardData || event.originalEvent.clipboardData;\n\t\tclipboardData.items.add(text, 'text/plain');\n\t}\n\n\tprotected onPaste(event: any) {\n\t\tlet clipboardData = event.clipboardData || event.originalEvent.clipboardData;\n\t\tlet text = clipboardData.getData('text');\n\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd);\n\n\t\ttext = textLeft + text + textRight;\n\n\t\tevent.preventDefault();\n\n\t\tif (\n\t\t\t(this.validCharacters === \"custom\" && this.pattern.startsWith(\"^\") && this.pattern.endsWith(\"$\"))\n\t\t\t|| this.validCharacters === \"latitude\"\n\t\t\t|| this.validCharacters === \"longitude\"\n\t\t) {\n\t\t\tevent.target.value = \"\";\n\t\t} else {\n\t\t\ttext = this.cleanText(text);\n\n\t\t\tevent.target.value = text;\n\t\t}\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\t}\n\n\tprotected showComponent(event: any) {\n\t\tif (this.validCharacters) {\n\t\t\tthis.validCharacters = this.validCharacters.toString().toLocaleLowerCase();\n\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (!this.component!.nativeElement.parentNode.hasAttribute(\"nocomponent\")) {\n\t\t\t\t\t\tthis.calendarDate = this.text!.nativeElement.value;\n\t\t\t\t\t\tthis.showCalendar = true;\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\n\tprotected setDate(date: any) {\n\t\tthis.text!.nativeElement.value = this.formatText(date);\n\n\t\tif (this.changeCallBackEvent.observed) {\n\t\t\tthis.changeCallBackEvent.emit(this.text!.nativeElement.value);\n\t\t}\n\n\t\tthis.showCalendar = false;\n\t}\n\n\t//*************************************************************************\n\t//  Private Methods\n\t//*************************************************************************\n\tprivate setNumericText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^-0-9.]/g, \"\");\n\t\tnewText = newText.toString().replace(/\\B(?=([0-9]{3})+(?![0-9]))/g, \",\");\n\n\t\tlet periodArray = newText.toString().split(\".\");\n\n\t\tif (periodArray.length > 1) {\n\t\t\tnewText = periodArray[0] + \".\" + periodArray[1].replace(/[,]/g, \"\");\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setCalendarText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^0-9]/g, \"\");\n\n\t\tfor (let x = 0; x < this.pArray.length; x++) {\n\t\t\tnewText = newText.replace(new RegExp(this.pArray[x]), this.fArray[x]);\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setEmailText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tnewText = text.toString().replace(/[^a-zA-Z0-9._%+-@]/g, \"\");\n\n\t\tlet atArray = newText.toString().split(\"@\");\n\n\t\tif (atArray.length > 1) {\n\t\t\tnewText = atArray[0].substring(0, 63) + \"@\" + atArray.slice(1).toString().replace(/[^a-zA-Z0-9-.]/g, \"\");\n\t\t} else {\n\t\t\tnewText = newText.substring(0, 63);\n\t\t}\n\n\t\tnewText = newText.substring(0, 253);\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate setLatitude(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = text;\n\n\t\tevent.preventDefault();\n\n\t\tif (Number(text) < -90) {\n\t\t\tnewText = -90;\n\t\t}\n\t\tif (Number(text) > 90) {\n\t\t\tnewText = 90;\n\t\t}\n\n\t\tevent.target.value = newText;\n\t}\n\n\tprivate setLongitude(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = text;\n\n\t\tevent.preventDefault();\n\n\t\tif (Number(text) < -180) {\n\t\t\tnewText = -180;\n\t\t}\n\t\tif (Number(text) > 180) {\n\t\t\tnewText = 180;\n\t\t}\n\n\t\tevent.target.value = newText;\n\t}\n\n\tprivate setCustomText(event: any) {\n\t\tlet text = event.target.value;\n\t\tlet newText = \"\";\n\t\tlet beforeLength = text.length;\n\t\tlet afterLength = 0;\n\t\tlet cursorStart = event.target.selectionStart;\n\t\tlet cursor = 0;\n\n\t\tevent.preventDefault();\n\n\t\tif (text === \"+1 \") text = \"\";\n\t\tnewText = text.toString().replace(/[^0-9]/g, \"\");\n\n\t\tfor (let x = 0; x < this.pArray.length; x++) {\n\t\t\tnewText = newText.replace(new RegExp(this.pArray[x]), this.fArray[x]);\n\t\t}\n\n\t\tafterLength = newText.length;\n\n\t\tcursor = cursorStart + (afterLength - beforeLength);\n\n\t\tevent.target.value = newText;\n\t\tevent.target.selectionStart = cursor;\n\t\tevent.target.selectionEnd = cursor;\n\t}\n\n\tprivate removeSelection(event: any): any {\n\t\tlet textLeft = event.target.value.toString().substring(0, event.target.selectionStart);\n\t\tlet textRight = event.target.value.toString().substring(event.target.selectionEnd + 1);\n\n\t\treturn textLeft + textRight;\n\t}\n\n\tprivate cleanText(text: any): any {\n\t\tif (this.validCharacters?.toString().startsWith(\"[\")) {\n\t\t\tlet format = \"[^\" + this.validCharacters?.toString().split(\"[\")[1];\n\n\t\t\ttext = text.toString().replace(new RegExp(format, \"g\"), \"\");\n\t\t} else {\n\t\t\tswitch (this.validCharacters) {\n\t\t\t\tcase \"alpha\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"numeric\":\n\t\t\t\t\ttext = text.toString().replace(/[^0-9]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"alphanumeric\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z0-9]/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"decimal\":\n\t\t\t\tcase \"currency\":\n\t\t\t\t\ttext = text.toString().replace(/[^0-9.-]|(?:\\/[.].*)[.]|(?!^)-/g, \"\");\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"calendar\":\n\t\t\t\t\tif (this.pattern) {\n\t\t\t\t\t\tlet re = \"[^0-9\" + this.encodeText(Array.from(new Set(this.pattern.replace(/[a-zA-Z0-9]/g, \"\").split(\"\"))).join(\"\")) + \"]\";\n\n\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"\");\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"email\":\n\t\t\t\t\ttext = text.toString().replace(/[^a-zA-Z0-9._%+-@]/g, \"\");\n\n\t\t\t\t\tlet atArray = text.toString().split(\"@\");\n\n\t\t\t\t\tif (atArray.length > 1) {\n\t\t\t\t\t\tlet periodArray = atArray[1].toString().split(\".\");\n\n\t\t\t\t\t\tif (periodArray.length > 1) {\n\t\t\t\t\t\t\tlet type = periodArray.slice(periodArray.length - 1);\n\t\t\t\t\t\t\ttype = type.toString().replace(/[^a-zA-Z]/g, \"\");\n\n\t\t\t\t\t\t\tperiodArray.pop();\n\t\t\t\t\t\t\ttext = atArray[0] + \"@\" + periodArray.join(\".\") + \".\" + type;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"latitude\":\n\t\t\t\tcase \"longitude\":\n\t\t\t\t\tlet re = \"(\" + this.pattern + \")\";\n\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"$1\");\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tcase \"custom\":\n\t\t\t\t\tif (this.pattern) {\n\t\t\t\t\t\tif (this.pattern.indexOf(\"#\") > -1 && !this.pattern.startsWith(\"[\") && !this.pattern.endsWith(\"]\")) {\n\t\t\t\t\t\t\tlet re = \"[^0-9\" + this.encodeText(Array.from(new Set(this.pattern.split(\"\"))).join(\"\")) + \"]\";\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re.replace(\"#\", \"\"), \"g\"), \"\");\n\t\t\t\t\t\t\ttext = text.substring(0, this.pattern.length);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern.startsWith(\"[\") && this.pattern.endsWith(\"]\")) {\n\t\t\t\t\t\t\tlet re = this.pattern.replace(\"[\", \"[^\");\n\n\t\t\t\t\t\t\tif (this.pattern.startsWith(\"[^\")) {\n\t\t\t\t\t\t\t\tre = this.pattern.replace(\"[^\", \"[\");\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"\");\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif (this.pattern.startsWith(\"^\") && this.pattern.endsWith(\"$\")) {\n\t\t\t\t\t\t\tlet re = \"(\" + this.pattern + \")\";\n\t\t\t\t\t\t\ttext = text.toString().replace(new RegExp(re, \"g\"), \"$1\");\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tbreak;\n\n\t\t\t\tdefault:\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tprivate formatText(text: any): any {\n\t\tif (this.validCharacters === \"currency\") {\n\t\t\ttext = formatCurrency(parseFloat(text), this.locale, this.pattern ?? '$');\n\t\t} else if (this.validCharacters === \"custom\" || this.validCharacters === \"latitude\" || this.validCharacters === \"longitude\") {\n\t\t\t// DO NOTHING\n\t\t} else if (this.validCharacters === \"calendar\") {\n\t\t\tconst datepipe: DatePipe = new DatePipe(this.locale)\n\n\t\t\tlet pattern = this.pattern!.replace(/[yY]/g, \"y\").replace(/[mM]/g, \"M\").replace(/[dD]/g, \"d\");\n\n\t\t\ttry {\n\t\t\t\ttext = datepipe.transform(text, pattern, undefined, this.locale);\n\t\t\t\tthis.text!.nativeElement.style.backgroundColor = \"\";\n\t\t\t} catch {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.text!.nativeElement.style.backgroundColor = \"rgb(255, 210, 217)\";\n\t\t\t\t\tthis.text!.nativeElement.focus();\n\t\t\t\t}, 1);\n\t\t\t}\n\t\t} else {\n\t\t\tif (this.pattern) {\n\t\t\t\ttext = formatNumber(parseFloat(text), this.locale, this.pattern);\n\t\t\t}\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tprivate createPattern(pattern: string = \"\") {\n\t\tif (pattern === \"\") {\n\t\t\tpattern = this.pattern?.trim() ?? \"\";\n\t\t}\n\t\tlet ws: any = pattern.replace(/([\\#])\\1+/g, \"#\");\n\n\t\tlet wsPattern = \"\";\n\t\tlet breakArray = [];\n\t\tlet cnt = 1;\n\t\tlet wsBreak = \"\";\n\n\t\tfor (let x = 0; x < ws.length; x++) {\n\t\t\tif (ws[x] === \"#\") {\n\t\t\t\twsPattern += `$${cnt}`;\n\t\t\t\tcnt++;\n\t\t\t} else {\n\t\t\t\twsPattern += ws[x];\n\t\t\t}\n\n\t\t\twsBreak = ws[x];\n\n\t\t\tif (ws[x] === \" \" || ws[x] === \"-\" || ws[x] === \".\" || ws[x] === \"/\" || ws[x] === \"_\") {\n\t\t\t\tbreakArray.push(wsBreak);\n\t\t\t\twsBreak = \"\";\n\t\t\t}\n\t\t}\n\n\t\tlet charArray = [];\n\t\tlet chars = \"\";\n\n\t\tfor (let x = 0; x < pattern.length; x++) {\n\t\t\tif (pattern[x] === \"#\") {\n\t\t\t\tchars += \"#\";\n\t\t\t} else {\n\t\t\t\tif (chars !== \"\") {\n\t\t\t\t\tcharArray.push(chars);\n\t\t\t\t}\n\t\t\t\tchars = \"\";\n\t\t\t}\n\t\t}\n\n\t\t// Add any remaining chars.\n\t\tif (chars !== \"\") {\n\t\t\tcharArray.push(chars);\n\t\t}\n\n\t\tlet patternArray = [];\n\n\t\tfor (let x = 0; x < charArray.length; x++) {\n\t\t\tpatternArray.push(`[0-9]{1,${charArray[x].length}}`);\n\t\t}\n\n\t\tthis.pArray = [];\n\t\tthis.fArray = [];\n\t\tlet wsFilter = ws;\n\t\tlet wspFilter = wsPattern;\n\t\tlet f = \"\";\n\t\tlet p = \"\";\n\n\t\tfor (let l = 0; l < patternArray.length; l++) {\n\t\t\tf = wsFilter.split(breakArray[l])[0];\n\t\t\twsFilter = wsFilter.substring(f.length + 1);\n\t\t\tp = wspFilter.split(breakArray[l])[0];\n\t\t\twspFilter = wspFilter.substring(p.length + 1);\n\n\t\t\tfor (let x = l; x < patternArray.length; x++) {\n\t\t\t\tif (this.pArray[x] === undefined) this.pArray.push(\"\");\n\t\t\t\tif (this.fArray[x] === undefined) this.fArray.push(\"\");\n\n\t\t\t\tlet m = (l > 0) ? \"*\" : \"\";\n\n\t\t\t\t// build left-side (pArray)\n\t\t\t\tif (f.startsWith(\"#\") && f.endsWith(\"#\")) { // number only\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += this.encodeText(f).replace(\"#\", m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\") + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && !f.endsWith(\"#\")) { // wrapper\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else if (x === (l + 1)) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += this.encodeText(f).replace(\"#\", m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\") + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && f.endsWith(\"#\")) { // starts with non-digit\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (f.startsWith(\"#\") && !f.endsWith(\"#\")) { // ends with non-digit\n\t\t\t\t\tif (x === l) {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l] + \")\";\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.pArray[x] += m + \"(\" + patternArray[l].replace(\"1,\", \"\") + \")\" + this.encodeText(breakArray[l]);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// build right-side (fArray)\n\t\t\t\tif (f.startsWith(\"#\") && f.endsWith(\"#\")) { // number only\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && !f.endsWith(\"#\")) { // wrapper\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p.replace(/[^$0-9]/g, \"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (!f.startsWith(\"#\") && f.endsWith(\"#\")) { // starts with non-digit\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (f.startsWith(\"#\") && !f.endsWith(\"#\")) { // ends with non-digit\n\t\t\t\t\tif (l === x) {\n\t\t\t\t\t\tthis.fArray[x] += p.replace(/[^$0-9]/g, \"\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.fArray[x] += p + (breakArray[l] ?? \"\");\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tprivate encodeText(text: any): any {\n\t\treturn text.replace(/[|{}\\\\()[\\]^$+*?.+]/g, '\\\\$&').replace(/\\s/, \"\\\\s\");\n\t}\n}\n","<div #component class=\"sdk_textbox\" style=\"position: relative; padding: 0;\">\n    <div *ngIf=\"!multiLine\" [ngStyle]=\"{ 'margin': margin ?? '0', 'border': 'unset', 'height': height ?? 'unset', 'width': width ?? 'unset' }\">\n        <input #text type=\"text\" [ngStyle]=\"{ 'padding': padding ?? '5px', 'margin': '0', 'border': border ?? '1px solid rgb(200, 200, 200)', 'height': '100%', 'width': '100%' }\" [class]=\"class\" [style]=\"style\" [placeholder]=\"hint\" (keydown)=\"onKeyDown($event)\" (focus)=\"text.select()\" (blur)=\"onBlur($event)\" (input)=\"onInput($event)\" (cut)=\"onCut($event)\" (paste)=\"onPaste($event)\" (click)=\"!showCalendarIcon ? showComponent($event) : false\" [value]=\"value\" />\n        <i *ngIf=\"validCharacters === 'calendar' && showCalendarIcon\" class=\"sdk-icon\" (click)=\"showComponent($event); text.focus(); lockCalendar = true\" (mouseout)=\"lockCalendar = false; showCalendar ? text.focus() : false;\">calendar_month</i>\n        <calendar *ngIf=\"showCalendar && validCharacters?.toLocaleLowerCase() === 'calendar'\" #calendar [date]=\"calendarDate\" [show]=\"showCalendar\" [height]=\"calHeight\" [width]=\"calWidth\" [fontSize]=\"calFontSize\" (setDateEvent)=\"setDate($event)\" (mouseover)=\"lockCalendar = true\" (mouseout)=\"lockCalendar = false; text.focus()\"></calendar>\n    </div>\n    <div *ngIf=\"multiLine\" [ngStyle]=\"{ 'margin': margin ?? '0', 'border': 'unset', 'height': height ?? 'unset', 'width': width ?? 'unset' }\">\n        <textarea #text [ngStyle]=\"{ 'padding': padding ?? '5px', 'margin': '0', 'border': border ?? '1px solid rgb(200, 200, 200)', 'height':'100%', 'width': '100%' }\" [class]=\"class\" [style]=\"style\" [placeholder]=\"hint\" (keydown)=\"onKeyDown($event)\" (focus)=\"text.select()\" (blur)=\"onBlur($event)\" (input)=\"onInput($event)\" (cut)=\"onCut($event)\" (paste)=\"onPaste($event)\" (click)=\"!showCalendarIcon ? showComponent($event) : false\" [value]=\"value\"></textarea>\n    </div>\n</div>\n","import { NgModule, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nimport { SDKTextboxComponent } from './sdk-textbox.component';\n\n@NgModule({\n  imports: [\n    SDKTextboxComponent,\n  ],\n  exports: [\n    SDKTextboxComponent\n  ],\n  providers: [\n    DatePipe\n  ],\n  schemas: [\n    NO_ERRORS_SCHEMA\n  ]\n})\nexport class SDKTextboxModule { }\n","/*\n * Public API Surface of sdk-textbox\n */\n\nexport { SDKTextboxModule } from './lib/sdk-textbox.module';\nexport { SDKTextboxComponent } from './lib/sdk-textbox.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}