{"version":3,"file":"Autocomplete-DHGzWX72.js","sources":["../../Client/legacy/Components/FormGroups/Autocomplete.tsx"],"sourcesContent":["import * as HOApi from '@api/HOApi';\r\nimport { Autocomplete } from '@legacy/Components/AutoComplete';\r\nimport { TooltipPlacement } from '@legacy/Components/Tooltip';\r\nimport { InlineError } from '@legacy/FormFields';\r\nimport * as Models from '@shared/Models';\r\nimport Portal from '@webkit/components/portal';\r\nimport { Value } from '@webkit/index';\r\nimport * as React from 'react';\r\nimport { ReactNode } from 'react';\r\n\r\nexport interface IAutocompleteFormGroupProps extends Models.IAutocompleteProps {\r\n /** The value containing input properties and validation state. */\r\n value: Value<string>;\r\n\r\n /** Indicates whether the autocomplete selector should be scrollable. Defaults to true. */\r\n scrollable?: boolean;\r\n}\r\n\r\nexport class AutocompleteFormGroup<TModel> extends React.Component<\r\n IAutocompleteFormGroupProps & Models.IAutocompleteMethodProps<TModel>\r\n> {\r\n autocomplete: Autocomplete<TModel>;\r\n\r\n render() {\r\n const p = this.props;\r\n return (\r\n <div>\r\n <Autocomplete<TModel>\r\n {...p}\r\n inputClassName={`${p.inputClassName} ${p.value.error ? 'form-group-input-error-cp' : ''}`}\r\n ref={c => {\r\n this.autocomplete = c as Autocomplete<TModel>;\r\n }}\r\n defaultValue={p.value.content}\r\n onChange={value => p.onChange && p.onChange(value)}\r\n customSelector={(\r\n visible: boolean,\r\n models: TModel[],\r\n left: number,\r\n top: number,\r\n width: number,\r\n onSelect: (selected: TModel) => void,\r\n onMouseEnter: (index: number) => void,\r\n selectedIndex: number\r\n ) => {\r\n return (\r\n <Portal className='autocomplete-form-group-selector-cp'>\r\n <div\r\n className={`form-group-selector-cp ${\r\n visible ? 'form-group-selector-shown-cp' : ''\r\n } ${p.scrollable === false ? '' : 'form-group-selector-scrollable-cp'}`}\r\n style={{ width: `${width}px`, left: `${left}px`, top: `${top}px` }}\r\n >\r\n {models.map((model, i) => (\r\n <div\r\n key={i}\r\n className={`form-group-selector-item-cp 1${\r\n selectedIndex === i ? 'form-group-selector-item-selected-cp' : ''\r\n }`}\r\n onClick={onSelect.bind(this, model)}\r\n onMouseEnter={() => onMouseEnter(i)}\r\n >\r\n {p.display ? p.display(model) : (model as ReactNode)}\r\n </div>\r\n ))}\r\n </div>\r\n </Portal>\r\n );\r\n }}\r\n />\r\n\r\n <InlineError error={p.value.error} placement={TooltipPlacement.BottomLeft} />\r\n </div>\r\n );\r\n }\r\n\r\n focus() {\r\n this.autocomplete.focus();\r\n }\r\n\r\n clear() {\r\n this.autocomplete.clear();\r\n }\r\n}\r\n\r\nexport class AddressAutocompleteFormGroup extends React.Component<IAutocompleteFormGroupProps, {}> {\r\n render() {\r\n const p = this.props;\r\n return (\r\n <AutocompleteFormGroup\r\n {...p}\r\n className={`form-group-cp ${p.className || ''} ${p.value.valid ? '' : 'form-group-error-cp'}`}\r\n inputClassName={`form-group-input-cp ${p.inputClassName || ''}`}\r\n labelClassName={`form-group-label-cp ${p.labelClassName || ''}`}\r\n selectorClassName={`form-group-selector-cp ${p.selectorClassName || ''}`}\r\n get={(value: string, max: number) => HOApi.getProperties(value, max)}\r\n display={(record: Models.PropertyData) => record.FullAddress}\r\n map={(record: Models.PropertyData) => record.FullAddress}\r\n />\r\n );\r\n }\r\n}\r\n"],"names":["AutocompleteFormGroup","React.Component","__publicField","p","jsx","Autocomplete","c","value","visible","models","left","top","width","onSelect","onMouseEnter","selectedIndex","Portal","model","i","InlineError","TooltipPlacement","AddressAutocompleteFormGroup","max","HOApi.getProperties","record"],"mappings":"waAkBa,MAAAA,UAAsCC,EAAAA,SAEjD,CAFW,kCAGTC,EAAA,qBAEA,QAAS,CACL,MAAMC,EAAI,KAAK,MACf,cACK,MACG,CAAA,SAAA,CAAAC,EAAA,IAACC,EAAA,CACI,GAAGF,EACJ,eAAgB,GAAGA,EAAE,cAAc,IAAIA,EAAE,MAAM,MAAQ,4BAA8B,EAAE,GACvF,IAAUG,GAAA,CACN,KAAK,aAAeA,CACxB,EACA,aAAcH,EAAE,MAAM,QACtB,SAAmBI,GAAAJ,EAAE,UAAYA,EAAE,SAASI,CAAK,EACjD,eAAgB,CACZC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,IAGIX,EAAAA,IAACY,EAAO,CAAA,UAAU,sCACd,SAAAZ,EAAA,IAAC,MAAA,CACG,UAAW,0BACPI,EAAU,+BAAiC,EAC/C,IAAIL,EAAE,aAAe,GAAQ,GAAK,mCAAmC,GACrE,MAAO,CAAE,MAAO,GAAGS,CAAK,KAAM,KAAM,GAAGF,CAAI,KAAM,IAAK,GAAGC,CAAG,IAAK,EAEhE,SAAOF,EAAA,IAAI,CAACQ,EAAOC,IAChBd,EAAA,IAAC,MAAA,CAEG,UAAW,gCACPW,IAAkBG,EAAI,uCAAyC,EACnE,GACA,QAASL,EAAS,KAAK,KAAMI,CAAK,EAClC,aAAc,IAAMH,EAAaI,CAAC,EAEjC,SAAEf,EAAA,QAAUA,EAAE,QAAQc,CAAK,EAAKA,CAAA,EAP5BC,CASZ,CAAA,CAAA,CAAA,EAET,CAER,CACJ,EAEAd,MAACe,GAAY,MAAOhB,EAAE,MAAM,MAAO,UAAWiB,EAAiB,UAAY,CAAA,CAAA,EAC/E,CAAA,CAIR,OAAQ,CACJ,KAAK,aAAa,MAAM,CAAA,CAG5B,OAAQ,CACJ,KAAK,aAAa,MAAM,CAAA,CAEhC,CAEa,MAAAC,UAAqCpB,EAAAA,SAAiD,CAC/F,QAAS,CACL,MAAME,EAAI,KAAK,MAEX,OAAAC,EAAA,IAACJ,EAAA,CACI,GAAGG,EACJ,UAAW,iBAAiBA,EAAE,WAAa,EAAE,IAAIA,EAAE,MAAM,MAAQ,GAAK,qBAAqB,GAC3F,eAAgB,uBAAuBA,EAAE,gBAAkB,EAAE,GAC7D,eAAgB,uBAAuBA,EAAE,gBAAkB,EAAE,GAC7D,kBAAmB,0BAA0BA,EAAE,mBAAqB,EAAE,GACtE,IAAK,CAACI,EAAee,IAAgBC,EAAoBhB,EAAOe,CAAG,EACnE,QAAUE,GAAgCA,EAAO,YACjD,IAAMA,GAAgCA,EAAO,WAAA,CACjD,CAAA,CAGZ"}