{"version":3,"file":"@component-customer-instance-select-c009f58ea3d407e4a33b.bundle.js","mappings":"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","sources":["webpack://tiltid-modern/./packages/auth-portal/src/components/customer-instance-select-modal/customer-instance-select-modal.css","webpack://tiltid-modern/./packages/ui-components/src/table/table.module.css","webpack://tiltid-modern/./packages/ui-components/src/table/table.module.css?146f","webpack://tiltid-modern/./packages/ui-components/src/table/table.tsx","webpack://tiltid-modern/./packages/lib/useKeydown.ts","webpack://tiltid-modern/./packages/auth-portal/src/components/customer-instance-select-modal/customer-instance-select-modal.css?9503","webpack://tiltid-modern/./packages/auth-portal/src/components/customer-instance-select-modal/customer-instance-select-modal.tsx"],"sourcesContent":["// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".customer-instance-select-modal__body--cnilJ7P_loxI70vwoHCU{display:flex;flex-flow:column;gap:var(--spacing-05);max-height:100%;overflow:hidden}.customer-instance-select-modal__authTableContainer--KAffc9q63apf288ZwnKi{flex:1;min-height:50vh;overflow-y:auto}.customer-instance-select-modal__cell--KndRboJVOBC4ualPOKrI{max-width:200px;overflow:hidden;text-overflow:ellipsis;vertical-align:top;white-space:nowrap}@media (max-width:567px){.customer-instance-select-modal__cell--KndRboJVOBC4ualPOKrI{border-radius:0;overflow:auto;text-overflow:clip;white-space:inherit}}\", \"\",{\"version\":3,\"sources\":[\"webpack://./packages/auth-portal/src/components/customer-instance-select-modal/customer-instance-select-modal.css\"],\"names\":[],\"mappings\":\"AAAA,4DAEE,YAAa,CACb,gBAAiB,CAEjB,qBAAsB,CAJtB,eAAgB,CAGhB,eAEF,CAEA,0EACE,MAAO,CACP,eAAgB,CAChB,eACF,CAEA,4DACE,eAAgB,CAEhB,eAAgB,CAChB,sBAAuB,CAFvB,kBAAmB,CAGnB,kBACF,CAEA,yBACE,4DAIE,eAAgB,CAHhB,aAAc,CACd,kBAAoB,CACpB,mBAEF,CACF\",\"sourcesContent\":[\".body {\\r\\n max-height: 100%;\\r\\n display: flex;\\r\\n flex-flow: column;\\r\\n overflow: hidden;\\r\\n gap: var(--spacing-05);\\r\\n}\\r\\n\\r\\n.authTableContainer {\\r\\n flex: 1;\\r\\n min-height: 50vh;\\r\\n overflow-y: auto;\\r\\n}\\r\\n\\r\\n.cell {\\r\\n max-width: 200px;\\r\\n vertical-align: top;\\r\\n overflow: hidden;\\r\\n text-overflow: ellipsis;\\r\\n white-space: nowrap;\\r\\n}\\r\\n\\r\\n@media (max-width: 567px) {\\r\\n .cell {\\r\\n overflow: auto;\\r\\n text-overflow: unset;\\r\\n white-space: unset;\\r\\n border-radius: 0;\\r\\n }\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"body\": \"customer-instance-select-modal__body--cnilJ7P_loxI70vwoHCU\",\n\t\"authTableContainer\": \"customer-instance-select-modal__authTableContainer--KAffc9q63apf288ZwnKi\",\n\t\"cell\": \"customer-instance-select-modal__cell--KndRboJVOBC4ualPOKrI\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".table-module__root--vB8c11kH7_sif1I4XL1h{border:1px solid var(--border-primary);border-radius:var(--spacing-03);border-spacing:0;outline:none;width:100%}.table-module__root--vB8c11kH7_sif1I4XL1h tbody,.table-module__root--vB8c11kH7_sif1I4XL1h tfoot{color:var(--text-primary);font-size:var(--font-size-sm)}.table-module__root--vB8c11kH7_sif1I4XL1h tbody{background-color:var(--layer-primary)}.table-module__root--vB8c11kH7_sif1I4XL1h tfoot{background-color:var(--layer-background)}.table-module__root--vB8c11kH7_sif1I4XL1h tfoot.table-module__footerEven--sPJYuYJTWZJK8ZHPHIPo{background-color:var(--layer-secondary)}.table-module__root--vB8c11kH7_sif1I4XL1h th{background-color:var(--background-brand);color:var(--text-on-color);padding:var(--spacing-04);text-align:left}.table-module__root--vB8c11kH7_sif1I4XL1h tbody tr:first-child td:first-child,.table-module__root--vB8c11kH7_sif1I4XL1h th:first-child{border-top-left-radius:var(--spacing-03)}.table-module__root--vB8c11kH7_sif1I4XL1h tbody tr:first-child td:last-child,.table-module__root--vB8c11kH7_sif1I4XL1h th:last-child{border-top-right-radius:var(--spacing-03)}.table-module__root--vB8c11kH7_sif1I4XL1h tbody tr:last-child td:first-child{border-bottom-left-radius:var(--spacing-03)}.table-module__root--vB8c11kH7_sif1I4XL1h tbody tr:last-child td:last-child{border-bottom-right-radius:var(--spacing-03)}.table-module__root--vB8c11kH7_sif1I4XL1h th>svg{display:inline-block;margin-left:var(--spacing-02);vertical-align:middle}.table-module__root--vB8c11kH7_sif1I4XL1h td{padding:var(--spacing-04);text-align:left}.table-module__root--vB8c11kH7_sif1I4XL1h tr{cursor:pointer;height:40px}.table-module__root--vB8c11kH7_sif1I4XL1h tbody tr{background-color:var(--layer-background)}.table-module__root--vB8c11kH7_sif1I4XL1h th{font-size:var(--font-size-sm);font-weight:inherit;letter-spacing:.25px}.table-module__root--vB8c11kH7_sif1I4XL1h tr td{border-bottom:1px solid var(--border-primary)}.table-module__root--vB8c11kH7_sif1I4XL1h tr:nth-child(2n){background-color:var(--layer-primary)}.table-module__root--vB8c11kH7_sif1I4XL1h tr:last-child td{border-bottom:none}.table-module__root--vB8c11kH7_sif1I4XL1h.table-module__withFooter--D53YsZxemgpUWchubT0g tr:last-child td:first-child,.table-module__root--vB8c11kH7_sif1I4XL1h.table-module__withFooter--D53YsZxemgpUWchubT0g tr:last-child td:last-child,.table-module__root--vB8c11kH7_sif1I4XL1h.table-module__withHeader--n5ybi0zu1LI08Sd_RFCr tbody>tr:first-child td:first-child,.table-module__root--vB8c11kH7_sif1I4XL1h.table-module__withHeader--n5ybi0zu1LI08Sd_RFCr tbody>tr:first-child td:last-child{border-radius:0}.table-module__root--vB8c11kH7_sif1I4XL1h tr.table-module__active--gpr7WYt4FbKXChlZ2mC4{background-color:var(--layer-secondary-hover);color:var(--text-primary)}.table-module__notActiveRow--nnS5IgBzP9pG39PWsR9X{color:var(--text-on-color-disabled)}\", \"\",{\"version\":3,\"sources\":[\"webpack://./packages/ui-components/src/table/table.module.css\"],\"names\":[],\"mappings\":\"AAAA,0CAGE,sCAAuC,CADvC,+BAAgC,CADhC,gBAAiB,CAGjB,YAAa,CACb,UACF,CAEA,gGAGE,yBAA0B,CAD1B,6BAEF,CAEA,gDACE,qCACF,CAEA,gDACE,wCACF,CAEA,+FACE,uCACF,CAEA,6CAGE,wCAAyC,CACzC,0BAA2B,CAH3B,yBAA0B,CAC1B,eAGF,CAEA,uIAEE,wCACF,CAEA,qIAEE,yCACF,CAEA,6EACE,2CACF,CAEA,4EACE,4CACF,CAEA,iDAEE,oBAAqB,CADrB,6BAA8B,CAE9B,qBACF,CAEA,6CACE,yBAA0B,CAC1B,eACF,CAEA,6CACE,cAAe,CACf,WACF,CAEA,mDACE,wCACF,CAEA,6CACE,6BAA8B,CAC9B,mBAAoB,CACpB,oBACF,CAEA,gDACE,6CACF,CAEA,2DACE,qCACF,CAEA,2DACE,kBACF,CAEA,oeAIE,eACF,CAEA,wFACE,6CAA8C,CAC9C,yBACF,CAEA,kDACE,mCACF\",\"sourcesContent\":[\".root {\\r\\n border-spacing: 0;\\r\\n border-radius: var(--spacing-03);\\r\\n border: 1px solid var(--border-primary);\\r\\n outline: none;\\r\\n width: 100%;\\r\\n}\\r\\n\\r\\n.root tbody,\\r\\n.root tfoot {\\r\\n font-size: var(--font-size-sm);\\r\\n color: var(--text-primary);\\r\\n}\\r\\n\\r\\n.root tbody {\\r\\n background-color: var(--layer-primary);\\r\\n}\\r\\n\\r\\n.root tfoot {\\r\\n background-color: var(--layer-background);\\r\\n}\\r\\n\\r\\n.root tfoot.footerEven {\\r\\n background-color: var(--layer-secondary);\\r\\n}\\r\\n\\r\\n.root th {\\r\\n padding: var(--spacing-04);\\r\\n text-align: left;\\r\\n background-color: var(--background-brand);\\r\\n color: var(--text-on-color);\\r\\n}\\r\\n\\r\\n.root th:first-child,\\r\\n.root tbody tr:first-child td:first-child {\\r\\n border-top-left-radius: var(--spacing-03);\\r\\n}\\r\\n\\r\\n.root th:last-child,\\r\\n.root tbody tr:first-child td:last-child {\\r\\n border-top-right-radius: var(--spacing-03);\\r\\n}\\r\\n\\r\\n.root tbody tr:last-child td:first-child {\\r\\n border-bottom-left-radius: var(--spacing-03);\\r\\n}\\r\\n\\r\\n.root tbody tr:last-child td:last-child {\\r\\n border-bottom-right-radius: var(--spacing-03);\\r\\n}\\r\\n\\r\\n.root th > svg {\\r\\n margin-left: var(--spacing-02);\\r\\n display: inline-block;\\r\\n vertical-align: middle;\\r\\n}\\r\\n\\r\\n.root td {\\r\\n padding: var(--spacing-04);\\r\\n text-align: left;\\r\\n}\\r\\n\\r\\n.root tr {\\r\\n cursor: pointer;\\r\\n height: 40px;\\r\\n}\\r\\n\\r\\n.root tbody tr {\\r\\n background-color: var(--layer-background);\\r\\n}\\r\\n\\r\\n.root th {\\r\\n font-size: var(--font-size-sm);\\r\\n font-weight: inherit;\\r\\n letter-spacing: 0.25px;\\r\\n}\\r\\n\\r\\n.root tr td {\\r\\n border-bottom: 1px solid var(--border-primary);\\r\\n}\\r\\n\\r\\n.root tr:nth-child(even) {\\r\\n background-color: var(--layer-primary);\\r\\n}\\r\\n\\r\\n.root tr:last-child td {\\r\\n border-bottom: none;\\r\\n}\\r\\n\\r\\n.root.withFooter tr:last-child td:first-child,\\r\\n.root.withFooter tr:last-child td:last-child,\\r\\n.root.withHeader tbody > tr:first-child td:first-child,\\r\\n.root.withHeader tbody > tr:first-child td:last-child {\\r\\n border-radius: 0;\\r\\n}\\r\\n\\r\\n.root tr.active {\\r\\n background-color: var(--layer-secondary-hover);\\r\\n color: var(--text-primary);\\r\\n}\\r\\n\\r\\n.notActiveRow {\\r\\n color: var(--text-on-color-disabled);\\r\\n}\\r\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"root\": \"table-module__root--vB8c11kH7_sif1I4XL1h\",\n\t\"footerEven\": \"table-module__footerEven--sPJYuYJTWZJK8ZHPHIPo\",\n\t\"withFooter\": \"table-module__withFooter--D53YsZxemgpUWchubT0g\",\n\t\"withHeader\": \"table-module__withHeader--n5ybi0zu1LI08Sd_RFCr\",\n\t\"active\": \"table-module__active--gpr7WYt4FbKXChlZ2mC4\",\n\t\"notActiveRow\": \"table-module__notActiveRow--nnS5IgBzP9pG39PWsR9X\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./table.module.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./table.module.css\";\n export default content && content.locals ? content.locals : undefined;\n","import cx from 'classnames';\r\nimport React, {\r\n forwardRef,\r\n useCallback,\r\n useImperativeHandle,\r\n useRef,\r\n useState,\r\n useEffect\r\n} from 'react';\r\nimport { useKeydown } from '@lib/useKeydown';\r\nimport styles from './table.module.css';\r\n\r\nexport interface ITableProps {\r\n items: T[];\r\n tabIndex?: number;\r\n className?: string;\r\n rowClassName?: string | ((data: T) => string);\r\n activeRowClassName?: string;\r\n currentSelectedRow?: number;\r\n brandColors?: object;\r\n cyId?: string;\r\n\r\n calculateKey(item: T): string | number;\r\n onRowSelected?(item: T, event?: any): void;\r\n onRowFocused?(item: T): void;\r\n renderRow(item: T, isActive?: boolean): JSX.Element;\r\n isNotActive?(item: T): void;\r\n renderHeader?(): JSX.Element;\r\n\r\n onFooterSelected?(e: any): void;\r\n onFooterFocused?(item: T): void;\r\n renderFooter?(): JSX.Element;\r\n\r\n onLostFocus?(): void;\r\n}\r\n\r\nfunction TableInner(props: ITableProps, ref: React.Ref) {\r\n const [currentSelectedRow, setCurrentSelectedRow] = useState(-1);\r\n\r\n useImperativeHandle(ref, () => ({\r\n setCurrentSelectedRow: (index: number) => {\r\n setCurrentSelectedRow(index);\r\n },\r\n selectNextRow,\r\n selectPreviousRow\r\n }));\r\n\r\n const tableRef = useRef(null);\r\n\r\n useEffect(() => {\r\n if (currentSelectedRow !== -1 && currentSelectedRow >= props.items.length) {\r\n props.onLostFocus?.();\r\n setCurrentSelectedRow(-1);\r\n }\r\n }, [props.items.length]);\r\n\r\n function selectPreviousRow() {\r\n setCurrentSelectedRow(current => {\r\n let nextIndex = current - 1;\r\n\r\n if (current <= 0) {\r\n return current;\r\n }\r\n\r\n if (nextIndex === props.items.length) {\r\n // hightlight row before footer\r\n nextIndex = props.items.length - 1;\r\n }\r\n\r\n props.onRowFocused?.(props.items[nextIndex]);\r\n\r\n return nextIndex;\r\n });\r\n }\r\n\r\n function selectNextRow() {\r\n setCurrentSelectedRow(current => {\r\n const nextIndex = current + 1;\r\n\r\n if (nextIndex >= 0 && nextIndex < props.items.length) {\r\n props.onRowFocused?.(props.items[nextIndex]);\r\n return nextIndex;\r\n }\r\n\r\n if (nextIndex === props.items.length && props.renderFooter) {\r\n // highlight footer\r\n setCurrentSelectedRow(footerIndex);\r\n props.onFooterFocused?.(props.items[footerIndex]);\r\n\r\n return current;\r\n }\r\n\r\n return current;\r\n });\r\n }\r\n\r\n function handleKeydown(event: KeyboardEvent) {\r\n switch (event.key) {\r\n case 'ArrowUp':\r\n event.stopPropagation();\r\n event.preventDefault();\r\n selectPreviousRow();\r\n break;\r\n case 'ArrowDown':\r\n event.stopPropagation();\r\n event.preventDefault();\r\n selectNextRow();\r\n break;\r\n case 'Enter':\r\n const selectedRow = props.items[currentSelectedRow];\r\n\r\n if (selectedRow) {\r\n event.stopPropagation();\r\n props.onRowSelected?.(selectedRow);\r\n }\r\n break;\r\n default:\r\n break;\r\n }\r\n }\r\n\r\n useKeydown(\r\n tableRef,\r\n useCallback(handleKeydown, [\r\n currentSelectedRow,\r\n props.items,\r\n props.onRowFocused,\r\n props.onRowSelected,\r\n props.onFooterFocused\r\n ])\r\n );\r\n\r\n const footerIndex = props.items.length + 1;\r\n\r\n return (\r\n \r\n {props.renderHeader ? (\r\n \r\n {props.renderHeader()}\r\n \r\n ) : null}\r\n \r\n {props.items.map((item, index) => {\r\n const rowClassName =\r\n typeof props.rowClassName === 'string'\r\n ? props.rowClassName\r\n : props.rowClassName?.(item);\r\n\r\n return (\r\n {\r\n setCurrentSelectedRow(index);\r\n props.onRowSelected?.(item, e);\r\n }}\r\n className={cx([\r\n {\r\n [styles.active]: index === currentSelectedRow,\r\n [styles.notActiveRow]: props.isNotActive && props.isNotActive(item),\r\n [props.activeRowClassName ?? '']:\r\n props.activeRowClassName && index === currentSelectedRow,\r\n [rowClassName ?? '']: !!rowClassName\r\n }\r\n ])}\r\n >\r\n {index === currentSelectedRow}\r\n {props.renderRow(item, index === currentSelectedRow)}\r\n \r\n );\r\n })}\r\n \r\n {props.renderFooter ? (\r\n \r\n {\r\n if (props.onFooterSelected) {\r\n setCurrentSelectedRow(footerIndex);\r\n props.onFooterSelected(e);\r\n }\r\n }}\r\n className={cx([\r\n {\r\n [styles.active]: footerIndex === currentSelectedRow,\r\n [props.activeRowClassName ?? '']:\r\n props.activeRowClassName && footerIndex === currentSelectedRow\r\n }\r\n ])}\r\n >\r\n {props.renderFooter()}\r\n \r\n \r\n ) : null}\r\n \r\n );\r\n}\r\n\r\nexport const Table = forwardRef(TableInner);\r\n","import { RefObject, useEffect } from 'react';\r\n\r\nexport function useKeydown(\r\n ref: RefObject,\r\n listener: (event: KeyboardEvent) => void\r\n) {\r\n useEffect(() => {\r\n if (ref.current) {\r\n ref.current.addEventListener('keydown', listener);\r\n }\r\n\r\n return () => {\r\n if (ref.current) {\r\n ref.current.removeEventListener('keydown', listener);\r\n }\r\n };\r\n }, [listener]);\r\n}\r\n","\n import API from \"!../../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./customer-instance-select-modal.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[0].use[1]!../../../../../node_modules/postcss-loader/dist/cjs.js??ruleSet[1].rules[0].use[2]!./customer-instance-select-modal.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { Modal } from '@ui/modal';\r\nimport { Input } from '@ui/input';\r\nimport { Table } from '@ui/table';\r\nimport { Button } from '@ui/button';\r\nimport React, { useMemo, useState } from 'react';\r\nimport { useTranslation } from 'react-i18next';\r\nimport { ICustomerBase } from '@api/auth/session';\r\nimport textSearch from '@utils/text-search';\r\nimport { useLoginContext } from '../../routes/login/login.context';\r\nimport styles from './customer-instance-select-modal.css';\r\n\r\ninterface ICustomerInstanceSelectProps {\r\n isOpen: boolean;\r\n isBusy: boolean;\r\n customers: ICustomerBase[];\r\n onRequestClose(): void;\r\n onCustomerSelect(customer: ICustomerBase): void | Promise;\r\n}\r\n\r\nexport default function CustomerInstanceSelect(props: ICustomerInstanceSelectProps) {\r\n const { t } = useTranslation();\r\n const { processing } = useLoginContext();\r\n const [selectedCustomer, changeSelectedCustomer] = useState(null);\r\n const [searchString, changeSearch] = useState('');\r\n\r\n const customersToShow = useMemo(\r\n () =>\r\n props.customers.filter(\r\n customer =>\r\n !searchString || textSearch(`${customer.Name}${customer.Description}`, searchString)\r\n ),\r\n [searchString, props.customers]\r\n );\r\n\r\n async function onSubmit(event: React.FormEvent) {\r\n event.preventDefault();\r\n\r\n if (processing) {\r\n return;\r\n }\r\n\r\n if (customersToShow.length === 1) {\r\n try {\r\n await props.onCustomerSelect(customersToShow[0]);\r\n } catch (e) {\r\n // ignore any errors, used just to wait unit request closing\r\n }\r\n\r\n changeSearch('');\r\n return;\r\n }\r\n }\r\n\r\n async function onCustomerSelected(customer: ICustomerBase) {\r\n if (processing) {\r\n return;\r\n }\r\n\r\n try {\r\n await props.onCustomerSelect(customer);\r\n } catch (e) {\r\n // ignore any errors, used just to wait unit request closing\r\n }\r\n\r\n changeSearch('');\r\n }\r\n\r\n return (\r\n {\r\n changeSearch('');\r\n props.onRequestClose();\r\n }}\r\n body={\r\n
\r\n
\r\n {\r\n changeSearch(event.target.value);\r\n changeSelectedCustomer(null);\r\n }}\r\n />\r\n \r\n
\r\n {customersToShow.length > 0 ? (\r\n item.Id}\r\n renderHeader={() => (\r\n <>\r\n {t('common:name')}\r\n {t('common:description')}\r\n \r\n )}\r\n renderRow={(item: ICustomerBase) => (\r\n <>\r\n \r\n \r\n {item.Name}{' '}\r\n {selectedCustomer && selectedCustomer.Id === item.Id && processing\r\n ? '...'\r\n : null}\r\n \r\n \r\n \r\n {item.Description}\r\n \r\n \r\n )}\r\n onRowSelected={(customer: ICustomerBase) => onCustomerSelected(customer)}\r\n onRowFocused={(customer: ICustomerBase) => changeSelectedCustomer(customer)}\r\n />\r\n ) : (\r\n t('common:nothingToShow')\r\n )}\r\n
\r\n
\r\n }\r\n footer={\r\n <>\r\n (selectedCustomer ? onCustomerSelected(selectedCustomer) : null)}\r\n />\r\n {\r\n changeSearch('');\r\n props.onRequestClose();\r\n }}\r\n />\r\n \r\n }\r\n />\r\n );\r\n}\r\n"],"names":["___CSS_LOADER_EXPORT___","push","module","id","locals","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","Table","forwardRef","props","ref","currentSelectedRow","setCurrentSelectedRow","useState","useImperativeHandle","index","selectNextRow","selectPreviousRow","tableRef","useRef","current","nextIndex","items","length","onRowFocused","renderFooter","footerIndex","onFooterFocused","useEffect","onLostFocus","listener","addEventListener","removeEventListener","useKeydown","useCallback","event","key","stopPropagation","preventDefault","selectedRow","onRowSelected","tabIndex","cyId","className","renderHeader","map","item","rowClassName","calculateKey","onClick","e","isNotActive","activeRowClassName","renderRow","onFooterSelected","CustomerInstanceSelect","t","useTranslation","processing","selectedCustomer","changeSelectedCustomer","searchString","changeSearch","customersToShow","useMemo","customers","filter","customer","Name","Description","async","onCustomerSelected","onCustomerSelect","headless","size","fullscreen","show","isOpen","hidesOnBackdropClick","hidesOnEscape","onHide","onRequestClose","body","onSubmit","I","placeholder","name","value","stretch","onChange","target","Id","footer","disabled","isBusy","text"],"sourceRoot":""}