{"version":3,"file":"./modules/UvCalculator-AutoComplete.xxxxxxxx.js","mappings":"8IAEe,MAAMA,EAQjB,WAAAC,CAAYC,EAASC,EAAIC,GAHjB,KAAAC,WAAqB,EAIzBC,KAAKJ,QAAUA,EACfI,KAAKF,SAAU,QAAWE,KAAKJ,QAASK,OAAOC,OAAOF,KAAKG,oBAAqBL,IAChFE,KAAKI,oBAAsBR,EAAQS,cAAc,IAAIL,KAAKF,QAAQQ,mBAClEN,KAAKO,WAAaP,KAAKJ,QAAQS,cAAc,IAAIL,KAAKF,QAAQU,cAC9DR,KAAKD,WAAaC,KAAKF,QAAQW,WAC/BT,KAAKU,WAAab,EAClBG,KAAKW,mBACT,CAEQ,iBAAAA,GACJC,SAASC,iBAAiB,QAAUC,GAAMd,KAAKe,uBAAuBD,IACtEd,KAAKO,WAAWM,iBAAiB,QAAUC,GAAMd,KAAKgB,4BACtDhB,KAAKI,oBAAoBS,iBAAiB,QAAUC,GAAMd,KAAKU,WAAWI,GAC9E,CAEO,gBAAAG,CAAiBC,EAAKC,GACzB,KAAIA,EAAKC,OAAS,GAMd,OAHApB,KAAKI,oBAAoBiB,UAAY,QACrCrB,KAAKI,oBAAoBkB,UAAUC,OAAO,GAAGvB,KAAKF,QAAQQ,2BAH1DN,KAAKI,oBAAoBkB,UAAUE,IAAI,GAAGxB,KAAKF,QAAQQ,2BAQ3D,IAEImB,EAAM,qCAFCN,EAGNO,QAAQ,CAACZ,EAAGa,KACbF,GAAO,sDAAsDE,gCAC/Cb,EAAEc,QAAQ,IAAIC,OAAOX,EAAK,KAAM,sDAGlDO,GAAO,QAEPzB,KAAKI,oBAAoBiB,UAAYI,CACzC,CAEQ,wBAAAT,GACgBhB,KAAKO,WAAWuB,MAAMV,OACxBpB,KAAKD,YAAcC,KAAKI,oBAAoBkB,UAAUS,SAAS,GAAG/B,KAAKF,QAAQQ,4BAC7FN,KAAKI,oBAAoBkB,UAAUC,OAAO,GAAGvB,KAAKF,QAAQQ,0BAElE,CAEQ,sBAAAS,CAAuBD,GACQA,EAAEkB,OAClBC,QAAQ,IAAIjC,KAAKF,QAAQQ,oBACxCN,KAAKI,oBAAoBkB,UAAUC,OAAO,GAAGvB,KAAKF,QAAQQ,0BAElE,CAEU,iBAAAH,GACN,MAAO,CACHG,gBAAiB,yBACjBE,WAAY,uBACZC,WAAY,EAEpB,E","sources":["webpack:///./modules/UvCalculator/AutoComplete.ts"],"sourcesContent":["import { getOptions } from '../../helpers/helperFunctions';\r\n\r\nexport default class AutoComplete {\r\n private autocompleteWrapper: HTMLElement;\r\n element: HTMLElement;\r\n private inputField: HTMLInputElement;\r\n protected options: AutoCompleteOptions;\r\n private charLength: number = 3\r\n private callBackFn;\r\n\r\n constructor(element, fn, options?: AutoCompleteOptions) {\r\n this.element = element as HTMLElement\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), options));\r\n this.autocompleteWrapper = element.querySelector(`.${this.options.ContentSelector}`);\r\n this.inputField = this.element.querySelector(`.${this.options.InputField}`);\r\n this.charLength = this.options.CharLength;\r\n this.callBackFn = fn;\r\n this.initEventHandlers();\r\n }\r\n\r\n private initEventHandlers() {\r\n document.addEventListener('click', (e) => this.documentOnClickHandler(e));\r\n this.inputField.addEventListener('keyup', (e) => this.shouldAutoCompleteAppear());\r\n this.autocompleteWrapper.addEventListener('click', (e) => this.callBackFn(e));\r\n }\r\n\r\n public showAutoComplete(val, list) {\r\n if (list.length > 0) {\r\n this.autocompleteWrapper.classList.add(`${this.options.ContentSelector}--active`);\r\n } else {\r\n this.autocompleteWrapper.innerHTML = '';\r\n this.autocompleteWrapper.classList.remove(`${this.options.ContentSelector}--active`);\r\n\r\n return\r\n }\r\n\r\n let data = list;\r\n\r\n let res = '';\r\n\r\n this.autocompleteWrapper.innerHTML = res;\r\n }\r\n\r\n private shouldAutoCompleteAppear() {\r\n const inputLenght = this.inputField.value.length\r\n if (inputLenght < this.charLength && this.autocompleteWrapper.classList.contains(`${this.options.ContentSelector}--active`)) {\r\n this.autocompleteWrapper.classList.remove(`${this.options.ContentSelector}--active`);\r\n }\r\n }\r\n\r\n private documentOnClickHandler(e) {\r\n const currentTarget: HTMLElement = e.target as HTMLElement;\r\n if (!currentTarget.closest(`.${this.options.ContentSelector}`)) {\r\n this.autocompleteWrapper.classList.remove(`${this.options.ContentSelector}--active`);\r\n }\r\n }\r\n\r\n protected getDefaultOptions(): AutoCompleteOptions {\r\n return {\r\n ContentSelector: 'nx-autocomplete-result',\r\n InputField: 'nx-input-text__field',\r\n CharLength: 3\r\n };\r\n }\r\n}"],"names":["AutoComplete","constructor","element","fn","options","charLength","this","Object","assign","getDefaultOptions","autocompleteWrapper","querySelector","ContentSelector","inputField","InputField","CharLength","callBackFn","initEventHandlers","document","addEventListener","e","documentOnClickHandler","shouldAutoCompleteAppear","showAutoComplete","val","list","length","innerHTML","classList","remove","add","res","forEach","index","replace","RegExp","value","contains","target","closest"],"sourceRoot":""}