@reltio/remotes 1.4.1719 → 1.4.1721

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/1088.js +1 -1
  2. package/1148.js +1 -1
  3. package/1215.js +1 -1
  4. package/1334.js +1 -1
  5. package/1425.js +1 -1
  6. package/1550.js +1 -1
  7. package/1664.js +1 -1
  8. package/1707.js +1 -1
  9. package/1840.js +1 -1
  10. package/1840.js.map +1 -1
  11. package/2066.js +1 -1
  12. package/2345.js +1 -1
  13. package/2383.js +1 -1
  14. package/2400.js +1 -1
  15. package/2617.js +1 -1
  16. package/2857.js +1 -1
  17. package/2966.js +1 -1
  18. package/3004.js +1 -1
  19. package/3042.js +1 -1
  20. package/3096.js +1 -1
  21. package/3144.js +1 -1
  22. package/3191.js +1 -1
  23. package/3209.js +1 -1
  24. package/3348.js +1 -1
  25. package/3381.js +1 -1
  26. package/3383.js +1 -1
  27. package/3463.js +1 -1
  28. package/3469.js +1 -1
  29. package/3538.js +1 -1
  30. package/3639.js +1 -1
  31. package/3785.js +1 -1
  32. package/393.js +1 -1
  33. package/4038.js +1 -1
  34. package/4143.js +1 -1
  35. package/415.js +1 -1
  36. package/4212.js +1 -1
  37. package/4444.js +1 -1
  38. package/4481.js +1 -1
  39. package/4787.js +1 -1
  40. package/4838.js +1 -1
  41. package/4969.js +1 -1
  42. package/50.js +1 -1
  43. package/5039.js +1 -1
  44. package/5039.js.map +1 -1
  45. package/5177.js +1 -1
  46. package/5201.js +1 -1
  47. package/5292.js +1 -1
  48. package/5383.js +1 -1
  49. package/5738.js +1 -1
  50. package/5769.js +1 -1
  51. package/6287.js +1 -1
  52. package/6422.js +1 -1
  53. package/6506.js +1 -1
  54. package/6578.js +1 -1
  55. package/658.js +1 -1
  56. package/6799.js +1 -1
  57. package/6844.js +1 -1
  58. package/6903.js +1 -1
  59. package/7074.js +1 -1
  60. package/7119.js +1 -1
  61. package/7237.js +1 -1
  62. package/7340.js +1 -1
  63. package/735.js +1 -1
  64. package/7407.js +1 -1
  65. package/7422.js +1 -1
  66. package/7468.js +1 -1
  67. package/7626.js +1 -1
  68. package/7719.js +1 -1
  69. package/7744.js +1 -1
  70. package/7896.js +1 -1
  71. package/820.js +1 -1
  72. package/8207.js +1 -1
  73. package/8216.js +1 -1
  74. package/829.js +1 -1
  75. package/8741.js +1 -1
  76. package/8786.js +1 -1
  77. package/9016.js +1 -1
  78. package/9032.js +1 -1
  79. package/9050.js +1 -1
  80. package/9109.js +1 -1
  81. package/9283.js +1 -1
  82. package/9328.js +1 -1
  83. package/9387.js +1 -1
  84. package/9719.js +1 -1
  85. package/main.js +1 -1
  86. package/package.json +1 -1
  87. package/remoteEntry.js +1 -1
package/1840.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"1840.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/HOCs/withContext/withContext.tsx","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/helpers.ts","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/styles.ts","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/withDateRangeSelector.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/BasicTable.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withFilterAtBottom.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/BlobRenderer.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/DefaultCellValueRenderer.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/contexts/RowCollapseContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/contexts/TableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/FilterChip/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/FilterChip/FilterChip.tsx","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/FilterEditor.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/ColumnFilter.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withFilter.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/nestedHelpers.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/dataHelpers.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/defaultGetRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/defaultRenderRowCell.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useCollapsibleTableRows.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/helpers.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/styles.js","webpack://@reltio/remotes/../components/src/components/DataTypeValue/DataTypeValue.js","webpack://@reltio/remotes/../components/src/components/EmptySearchResult/NoResults.tsx","webpack://@reltio/remotes/../components/src/components/Highlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/Highlighter/Highlighter.tsx","webpack://@reltio/remotes/../components/src/components/MultipleInput/styles.js","webpack://@reltio/remotes/../components/src/components/MultipleInput/MultipleInput.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/styles.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/MultipliableSelect.js","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/SearchHighlighter.tsx","webpack://@reltio/remotes/../components/src/components/ValueChip/styles.ts","webpack://@reltio/remotes/../components/src/components/ValueChip/ValueChip.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/styles.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/LoadMoreButton.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/MenuList.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon.tsx","webpack://@reltio/remotes/../components/src/components/editors/BooleanEditor/BooleanEditor.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/BooleanRadioEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/GroupedDropDownEditor.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/LookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/helpers.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useLookupsResolver.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/DependentLookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useSavingFocus.ts","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useDefaultOptions.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useAutopopulation.ts","webpack://@reltio/remotes/../components/src/components/editors/SelectEditor/SelectEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/DataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/useEditorContext.js","webpack://@reltio/remotes/../components/src/components/editors/EditorsFactory.js","webpack://@reltio/remotes/../components/src/components/editors/DateRangeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/DateRangeEditor/DateRangeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/DropDownEditor/DropDownEditor.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/styles.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/UploadFileButton.js","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/FileTypeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/RangeDataTypeValueEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/FilterValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/NumberEditor/NumberEditor.tsx","webpack://@reltio/remotes/../components/src/components/SimpleInput/styles.ts","webpack://@reltio/remotes/../components/src/components/SimpleInput/SimpleInput.js","webpack://@reltio/remotes/../components/src/components/editors/TextEditor/TextEditor.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/TypeaheadEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/commonComponents/MultiValueChip/MultiValueChip.js","webpack://@reltio/remotes/../components/src/constants/prop-types.js","webpack://@reltio/remotes/../components/src/contexts/DependentLookupAutopopulationContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/SearchValueContext/index.ts"],"sourcesContent":["import React, {memo, Context as ContextType, ComponentType} from 'react';\n\ntype AnyObject = Record<string, unknown>;\n\nexport const withContext = <C extends any, P extends AnyObject, SP extends AnyObject>(\n Context: ContextType<C>,\n contextSelector: (state: C, props?: P) => SP,\n Component: ComponentType<P>\n): ComponentType<P> => {\n if (Context && contextSelector) {\n const PureComponent = memo(Component);\n PureComponent.displayName = Component.name;\n const PureComponentWithContext = (props) => {\n return (\n <Context.Consumer>\n {(contextState) => <PureComponent {...props} {...contextSelector(contextState, props)} />}\n </Context.Consumer>\n );\n };\n return PureComponentWithContext;\n } else {\n return Component;\n }\n};\n","import {always, cond, defaultTo, is, isNil, map, pipe, propEq} from 'ramda';\nimport {DataTypeDefinition, DatePeriod, formatDataTypeValue, getDateRangeByValue, isEmptyValue} from '@reltio/mdm-sdk';\n\nexport type Option = {\n value: string;\n label: string;\n};\n\nconst formatValue = (value: Date, dataTypeDefinition: DataTypeDefinition, dateTimeMask: string) =>\n isNil(value) ? `${dateTimeMask}` : `${formatDataTypeValue({dataTypeDefinition, dateTimeMask}, value)}`;\n\nconst getEditorLabel = (\n placeholder: string,\n dataTypeDefinition: DataTypeDefinition,\n value: DatePeriod | string,\n options: Option[]\n) =>\n cond([\n [isEmptyValue, always('')],\n [\n is(Array),\n (value) => value.map((value) => formatValue(value, dataTypeDefinition, placeholder)).join(' \\u2014 ')\n ],\n [is(String), (value) => options.find(propEq('value', value))?.label]\n ])(value);\n\nconst convertValuesToDate = pipe(\n getDateRangeByValue,\n defaultTo([]),\n map((value) => value && new Date(value))\n);\n\nexport {getEditorLabel, convertValuesToDate};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n paper: {\n minWidth: '112px'\n },\n menuItem: {\n minHeight: '32px'\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0\n }\n}));\n","import React, {ComponentType, useMemo, useRef, useState, useCallback} from 'react';\nimport moment from 'moment';\nimport {identity, prop} from 'ramda';\nimport {\n DataTypeDefinition,\n DataTypes,\n AllDateRangeValues,\n getRangeOptionLabel,\n getLocaleFormat,\n DatePeriod\n} from '@reltio/mdm-sdk';\nimport MenuItem from '@mui/material/MenuItem';\nimport Popover from '@mui/material/Popover';\nimport Typography from '@mui/material/Typography';\nimport Menu, {MenuProps as MuiMaterialProps} from '@mui/material/Menu';\nimport DateRangePicker from '../../components/DateRangePicker/DateRangePicker';\nimport {convertValuesToDate, getEditorLabel, Option} from './helpers';\n\nimport {useStyles} from './styles';\n\ntype DateRangeMenuProps = {\n values?: DatePeriod | string;\n options?: Option[];\n dataTypeDefinition?: DataTypeDefinition;\n getValuesDateRange?: (value: DatePeriod | string) => [Date, Date];\n onChange?: (value: DatePeriod | string) => void;\n DateRangePickerProps?: Partial<React.ComponentProps<typeof DateRangePicker>>;\n MenuProps?: Partial<MuiMaterialProps>;\n};\n\nconst dateFormat = moment.localeData().longDateFormat('L');\n\nconst withDateRangeSelector = <T extends DateRangeMenuProps>(Component: ComponentType<T>) => {\n const WithDateRangeSelector = (props: T & DateRangeMenuProps) => {\n const {\n values,\n options,\n getValuesDateRange = convertValuesToDate,\n onChange,\n dataTypeDefinition = {type: DataTypes.TYPE_DATE},\n DateRangePickerProps,\n MenuProps,\n ...componentProps\n } = props;\n const rangeOptions = useMemo(\n () =>\n options ||\n Object.values(AllDateRangeValues).map((option) => ({\n value: option,\n label: getRangeOptionLabel(option)\n })),\n [options]\n );\n\n const inputRef = useRef(null);\n const [isPickingDate, setIsPickingDate] = useState(false);\n const [open, setOpen] = useState(false);\n const styles = useStyles();\n\n const onItemClick = (value) => {\n if (value === AllDateRangeValues.PICK_DATE) {\n setIsPickingDate(true);\n } else {\n setOpen(false);\n setIsPickingDate(false);\n onChange(value);\n }\n };\n\n const handleToggle = useCallback(() => setOpen((open) => !open), []);\n\n const onCancel = () => {\n setIsPickingDate(false);\n setOpen(false);\n };\n\n const isTimestamp = dataTypeDefinition.type === DataTypes.TYPE_TIMESTAMP;\n const enhancePlaceHolder = isTimestamp ? (timeFormat) => timeFormat.replace(/^[hH]:/, 'HH:') : identity;\n const format = isTimestamp ? getLocaleFormat() : dateFormat;\n const editorPlaceholder = `${enhancePlaceHolder(format)} \\u2014 ${enhancePlaceHolder(format)}`.toUpperCase();\n\n const editorLabel = isPickingDate\n ? getRangeOptionLabel(AllDateRangeValues.PICK_DATE)\n : getEditorLabel(format, dataTypeDefinition, values, rangeOptions);\n\n const {\n anchorOrigin = {vertical: 'bottom', horizontal: 'left'},\n transformOrigin = {vertical: 'top', horizontal: 'left'}\n } = MenuProps || {};\n\n return (\n <>\n <Component\n {...(componentProps as T)}\n ref={inputRef}\n editorLabel={editorLabel}\n editorPlaceholder={editorPlaceholder}\n onMenuToggle={handleToggle}\n isMenuOpen={open}\n isPickingDate={isPickingDate}\n />\n {isPickingDate ? (\n <Popover\n open={open}\n anchorEl={inputRef.current}\n onClose={onCancel}\n transformOrigin={transformOrigin}\n anchorOrigin={anchorOrigin}\n elevation={2}\n {...MenuProps}\n >\n <DateRangePicker\n values={getValuesDateRange(values)}\n onApply={onItemClick}\n type={dataTypeDefinition.type}\n {...DateRangePickerProps}\n />\n </Popover>\n ) : (\n <Menu\n variant=\"menu\"\n open={open}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={inputRef.current}\n onClose={onCancel}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n elevation={2}\n MenuListProps={{\n autoFocusItem: open,\n style: {\n width: prop('clientWidth', inputRef.current)\n }\n }}\n {...MenuProps}\n >\n {rangeOptions.map((option) => (\n <MenuItem\n key={option.value}\n value={option.value}\n onClick={() => onItemClick(option.value)}\n className={styles.menuItem}\n >\n <Typography classes={{root: styles.menuText}}>{option.label}</Typography>\n </MenuItem>\n ))}\n </Menu>\n )}\n </>\n );\n };\n\n WithDateRangeSelector.displayName = 'WithDateRangeSelector';\n return WithDateRangeSelector;\n};\n\nexport default withDateRangeSelector;\n","import React, {useMemo, forwardRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Table from 'react-components/dist/Table/Table';\nimport defaultGetRowCellHeight from './helpers/defaultGetRowCellHeight';\nimport defaultRenderRowCell from './helpers/defaultRenderRowCell';\nimport {COLUMN_FILTER_HEIGHT} from '../ColumnFilter/styles';\nimport {ColumnDataType, ColumnFilterType, SortingType} from '../../../constants/prop-types';\nimport {getTableHeadData} from './helpers/dataHelpers';\nimport {TableContext} from './contexts/TableContext';\nimport {RowCollapseContext} from './contexts/RowCollapseContext';\nimport {prop} from 'ramda';\nimport useCollapsibleTableRows from './hooks/useCollapsibleTableRows';\n\nconst BasicTable = forwardRef(\n (\n {\n columnsData,\n rowsData,\n context,\n sorting,\n onSort,\n renderRowCell = defaultRenderRowCell,\n getRowCellHeight = defaultGetRowCellHeight,\n filters,\n onFilter,\n headRowHeight,\n maxRowValuesCount = Infinity,\n autosizing,\n maxHeight,\n getIdFromRowValue,\n ...otherProps\n },\n ref\n ) => {\n const tableHeadData = useMemo(\n () => getTableHeadData(columnsData, filters, onFilter),\n [columnsData, filters, onFilter]\n );\n\n const {tableRowsData, collapseContextValue} = useCollapsibleTableRows({\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n maxRowValuesCount,\n getIdFromRowValue\n });\n\n const {toggleRowCollapse, getIsRowCollapsed} = collapseContextValue;\n\n const onStartDragRow = useCallback(() => {\n setTimeout(() => {\n tableRowsData.forEach((_, index) => {\n if (!getIsRowCollapsed(index)) {\n toggleRowCollapse(index);\n }\n });\n }, 0);\n }, [getIsRowCollapsed, toggleRowCollapse, tableRowsData]);\n\n if (!tableHeadData.length) {\n return null;\n }\n\n return (\n <RowCollapseContext.Provider value={collapseContextValue}>\n <TableContext.Provider value={context}>\n <Table\n autosizing={autosizing}\n maxHeight={maxHeight}\n defaultRowHeight={48}\n onStartDragRow={onStartDragRow}\n {...otherProps}\n fixHead={tableRowsData.length > 0}\n headData={tableHeadData}\n rowsData={tableRowsData}\n sortField={prop('field', sorting)}\n sortOrder={prop('order', sorting)}\n onSort={onSort}\n headRowHeight={filters ? headRowHeight + COLUMN_FILTER_HEIGHT : headRowHeight}\n ref={ref}\n />\n </TableContext.Provider>\n </RowCollapseContext.Provider>\n );\n }\n);\n\nexport const BasicTableType = {\n columnsData: PropTypes.arrayOf(ColumnDataType).isRequired,\n rowsData: PropTypes.arrayOf(PropTypes.object).isRequired,\n context: PropTypes.object,\n sorting: SortingType,\n onSort: PropTypes.func,\n filters: PropTypes.objectOf(ColumnFilterType),\n onFilter: PropTypes.func,\n renderRowCell: PropTypes.func,\n getRowCellHeight: PropTypes.func,\n headRowHeight: PropTypes.number,\n maxRowValuesCount: PropTypes.number,\n defaultColumnWidth: PropTypes.number,\n defaultColumnMinWidth: PropTypes.number,\n classes: PropTypes.shape({\n highlightRow: PropTypes.string,\n cellBorder: PropTypes.string,\n dragColumnBody: PropTypes.string,\n dragColumnHead: PropTypes.string,\n draggableHeadCell: PropTypes.string,\n cellWrapper: PropTypes.string,\n cellContentWrapper: PropTypes.string,\n hoveredRowRightContentContainer: PropTypes.string,\n hoveredRowRightContentWrapper: PropTypes.string\n })\n};\n\nBasicTable.propTypes = BasicTableType;\n\nBasicTable.displayName = 'BasicTable';\n\nexport default BasicTable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst withFilterAtBottom = (HeadCellRenderer) => {\n const HeadCellRendererWithFilterAtBottom = ({columnFilter, ...otherProps}) => {\n return (\n <div style={{display: 'flex', flexDirection: 'column', height: '100%'}}>\n <div style={{display: 'flex', flex: 1}}>\n <HeadCellRenderer {...otherProps} />\n </div>\n {columnFilter}\n </div>\n );\n };\n HeadCellRendererWithFilterAtBottom.propTypes = {\n columnFilter: PropTypes.node\n };\n\n return HeadCellRendererWithFilterAtBottom;\n};\n\nexport default withFilterAtBottom;\n","import {makeStyles} from '@mui/styles';\n\nexport const BLOB_HEIGHT = 100;\n\nexport const useStyles = makeStyles({\n defaultWrapper: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n padding: '15px 25px 0 25px'\n },\n blobWrapper: {\n position: 'relative',\n overflowY: 'auto',\n overflowX: 'hidden',\n whiteSpace: 'pre',\n maxHeight: `${BLOB_HEIGHT}px`,\n boxSizing: 'border-box',\n padding: '15px 25px 0 25px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport {useStyles} from './styles';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = ({value}) => {\n const styles = useStyles();\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.node\n};\n\nexport default BlobRenderer;\n","import BlobRenderer from './BlobRenderer';\nimport DataTypeValue from '../../../DataTypeValue/DataTypeValue';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nconst DefaultCellValueRenderer = (props) => {\n const styles = useStyles();\n const {\n value,\n columnData: {dataTypeDefinition}\n } = props;\n switch (dataTypeDefinition.type) {\n case DataTypes.TYPE_BLOB:\n return <BlobRenderer {...props} />;\n default: {\n const dataTypeValue = <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />;\n return (\n <ExpandedValueTooltip value={dataTypeValue}>\n <div className={styles.defaultWrapper}>{dataTypeValue}</div>\n </ExpandedValueTooltip>\n );\n }\n }\n};\n\nDefaultCellValueRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.shape({\n dataTypeDefinition: PropTypes.object\n })\n};\n\nexport default DefaultCellValueRenderer;\n","import React from 'react';\n\nexport const RowCollapseContext = React.createContext(null);\n\nRowCollapseContext.displayName = 'RowCollapseContext';\n","import React from 'react';\n\nexport const TableContext = React.createContext(null);\n\nTableContext.displayName = 'TableContext';\n","import {makeStyles} from '@mui/styles';\n\nexport const COLUMN_FILTER_HEIGHT = 40;\n\nexport const useStyles = makeStyles({\n 'filter-chip': {\n flex: 1,\n maxWidth: '100%',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n marginRight: '-8px',\n '&, &:focus': {\n backgroundColor: 'rgba(0,0,0,0)'\n }\n },\n 'filter-chip__label': {\n color: 'rgba(0,0,0,0.87)',\n flex: 1,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n 'filter-chip__option-label': {\n color: 'rgba(0,0,0,0.54)'\n }\n});\n","import Chip from '@mui/material/Chip';\nimport React from 'react';\nimport {\n checkIfOptionHasValues,\n DataTypeDefinition,\n formatDataTypeValue,\n getFilterValueLabel,\n mapFilterValue,\n PrimitiveValue,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useMdmAttributePresentations, useMdmDateMask, useMdmDateTimeMask} from '../../../../contexts';\nimport {useStyles} from './styles';\n\ntype FilterValue = SimpleAttributeValue | PrimitiveValue;\n\ntype Props = {\n filterOption: {\n value: string;\n label: string;\n };\n filterValue: FilterValue | FilterValue[];\n onDelete: () => void;\n dataTypeDefinition: DataTypeDefinition;\n};\n\nconst FilterChip = ({filterOption, filterValue, onDelete, dataTypeDefinition}: Props) => {\n const styles = useStyles();\n\n const attributePresentations = useMdmAttributePresentations();\n const dateMask = useMdmDateMask();\n const dateTimeMask = useMdmDateTimeMask();\n\n const canFilterAcceptValues = checkIfOptionHasValues(filterOption.value);\n const optionLabel = filterOption.label + (canFilterAcceptValues ? ': ' : '');\n const formatValue = formatDataTypeValue({attributePresentations, dataTypeDefinition, dateMask, dateTimeMask});\n const convertedValue = mapFilterValue(formatValue, filterValue);\n const filterLabel = canFilterAcceptValues ? getFilterValueLabel(filterOption.value, convertedValue) : '';\n\n return (\n <Chip\n label={\n <ExpandedValueTooltip value={optionLabel + filterLabel}>\n <div className={styles['filter-chip__label']}>\n <span className={styles['filter-chip__option-label']}>{optionLabel}</span>\n {filterLabel}\n </div>\n </ExpandedValueTooltip>\n }\n classes={{\n root: styles['filter-chip'],\n label: styles['filter-chip__label']\n }}\n onDelete={onDelete}\n />\n );\n};\n\nexport default FilterChip;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n dropDownEditor: {\n marginTop: '8px',\n marginBottom: '4px'\n },\n selectorRoot: {\n paddingTop: '11.5px',\n paddingBottom: '12.5px',\n lineHeight: '16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {__, assoc, pipe} from 'ramda';\nimport {checkIfOptionHasValues, FilterType} from '@reltio/mdm-sdk';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport FilterValueEditor from './FilterValueEditor';\nimport {commonTextFieldProps, useSelectStyles} from '../constants';\nimport {useStyles} from './styles';\n\nconst FilterEditor = ({value, onChange, filterOptions, dataTypeDefinition, classes, valueEditorProps}) => {\n const selectStyles = useSelectStyles();\n const styles = useStyles();\n const [firstOption] = filterOptions;\n const filterOption = value.filter || firstOption.value;\n const filter = {...value, filter: filterOption};\n const canFilterAcceptValues = checkIfOptionHasValues(filterOption);\n return (\n <>\n <DropDownEditor\n TextFieldProps={commonTextFieldProps}\n className={classnames(classes.option, styles.dropDownEditor)}\n value={filterOption}\n entries={filterOptions}\n onChange={pipe(assoc('filter', __, filter), assoc('values', []), onChange)}\n classes={{root: classnames(selectStyles.root, styles.selectorRoot), icon: selectStyles.icon}}\n />\n {canFilterAcceptValues && (\n <FilterValueEditor\n filter={filter}\n onChange={pipe(assoc('values', __, filter), onChange)}\n dataTypeDefinition={dataTypeDefinition}\n {...valueEditorProps}\n />\n )}\n </>\n );\n};\n\nFilterEditor.propTypes = {\n value: FilterType,\n onChange: PropTypes.func,\n filterOptions: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n ),\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object,\n valueEditorProps: PropTypes.object\n};\n\nexport default FilterEditor;\n","import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport FilterChip from './FilterChip/FilterChip';\nimport FilterEditor from '../../editors/FilterEditor/FilterEditor';\nimport IconButton from '@mui/material/IconButton';\nimport Popover from '@mui/material/Popover';\nimport PropTypes from 'prop-types';\nimport React, {useRef, useState} from 'react';\nimport {ColumnFilterType} from '../../../constants';\nimport {defaultTo, pipe, pluck, prop, propEq} from 'ramda';\nimport {useStyles} from './styles';\nimport {\n getDataTypeDefinitionForFilterValue,\n getFilterOptionLabel,\n getFilterOptionsForDataTypeDefinition,\n Maybe,\n validateFilter\n} from '@reltio/mdm-sdk';\nimport {columnFilterToMdmFilter, mdmFilterToColumnFilter} from './helpers';\n\nconst ColumnFilter = ({columnId, dataTypeDefinition, filter, filterOptionsData, onFilter}) => {\n const styles = useStyles();\n\n const [anchorEl, setAnchorEl] = useState(null);\n const openFilterPopup = (event) => setAnchorEl(event.currentTarget);\n const closeFilterPopup = () => setAnchorEl(null);\n\n const [columnFilter, setColumnFilter] = useState(filter);\n const initColumnFilter = () => setColumnFilter(filter);\n\n const containerRef = useRef(null);\n const mdmFilter = columnFilterToMdmFilter({id: columnId, dataTypeDefinition}, columnFilter);\n const applyFilterChange = (newFilter) => {\n if (newFilter !== filter) {\n onFilter({columnId, filter: newFilter});\n }\n };\n const clearFilter = () => applyFilterChange();\n const applyChangesAndClose = () => {\n const isValidFilter = validateFilter(mdmFilter);\n isValidFilter ? applyFilterChange(columnFilter) : clearFilter();\n closeFilterPopup();\n };\n\n const handleValueEditorKeyPress = (event) => {\n if (event.key !== 'Enter') return;\n\n event.stopPropagation();\n event.preventDefault();\n applyChangesAndClose();\n };\n\n const getFilterOptionData = (filterOption) =>\n filterOptionsData && filterOptionsData.find(propEq('value', filterOption));\n\n const getFilterLabel = (filterOption) =>\n pipe(getFilterOptionData, prop('label'), defaultTo(getFilterOptionLabel(filterOption)))(filterOption);\n\n const getFilterDataTypeDefinition = (filterOption) =>\n pipe(\n getFilterOptionData,\n prop('dataTypeDefinition'),\n defaultTo(getDataTypeDefinitionForFilterValue(dataTypeDefinition, filterOption))\n )(filterOption);\n\n const filterOptions = Maybe.fromNull(filterOptionsData)\n .map(pluck('value'))\n .orSome(getFilterOptionsForDataTypeDefinition(dataTypeDefinition))\n .map((value) => ({\n value,\n label: getFilterLabel(value)\n }));\n\n return (\n <div ref={containerRef} className={styles.columnFilter}>\n {filter && (\n <FilterChip\n filterValue={filter.value}\n filterOption={filterOptions.find(propEq('value', filter.filter))}\n onDelete={clearFilter}\n dataTypeDefinition={getFilterDataTypeDefinition(filter.filter)}\n />\n )}\n <IconButton className={styles.dropDownButton} onClick={openFilterPopup} disableFocusRipple size=\"large\">\n <ArrowDropDownIcon />\n </IconButton>\n <Popover\n PaperProps={{\n style: {\n width: `${containerRef.current ? containerRef.current.getBoundingClientRect().width : 0}px`\n }\n }}\n open={!!anchorEl}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n classes={{paper: styles.filterMenu}}\n onClose={applyChangesAndClose}\n TransitionProps={{\n onEnter: initColumnFilter\n }}\n >\n <FilterEditor\n classes={{option: styles['filter-editor__option']}}\n value={mdmFilter}\n onChange={pipe(mdmFilterToColumnFilter, setColumnFilter)}\n filterOptions={filterOptions}\n dataTypeDefinition={getFilterDataTypeDefinition(mdmFilter.filter)}\n valueEditorProps={{\n TextFieldProps: {\n onKeyPress: handleValueEditorKeyPress\n },\n fullWidth: true\n }}\n />\n </Popover>\n </div>\n );\n};\n\nColumnFilter.propTypes = {\n columnId: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n filter: ColumnFilterType,\n onFilter: PropTypes.func,\n filterOptionsData: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n )\n};\n\nexport default ColumnFilter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ColumnFilter from '../../ColumnFilter/ColumnFilter';\nimport {useStyles as useColumnFilterStyles} from '../../ColumnFilter/styles';\n\nconst withFilter = ({filter, onFilter, filterable, filterOptions, dataTypeDefinition}) => (HeadCellRenderer) => {\n const HeadCellRendererWithFilter = (props) => {\n const {\n headCellData: {id: columnId}\n } = props;\n const styles = useColumnFilterStyles();\n const columnFilter = filterable ? (\n <ColumnFilter\n columnId={columnId}\n dataTypeDefinition={dataTypeDefinition}\n filter={filter}\n filterOptionsData={filterOptions}\n onFilter={onFilter}\n />\n ) : (\n <div className={styles.columnFilter} />\n );\n return <HeadCellRenderer {...props} columnFilter={columnFilter} />;\n };\n HeadCellRendererWithFilter.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string\n })\n };\n return HeadCellRendererWithFilter;\n};\n\nexport default withFilter;\n","import {\n __,\n addIndex,\n always,\n assoc,\n chain,\n curry,\n dropLast,\n groupBy,\n join,\n keys,\n length,\n omit,\n pickBy,\n pipe,\n propOr,\n reduce,\n split,\n sortBy,\n identity,\n sum,\n toPairs,\n unless,\n unnest,\n values,\n zip\n} from 'ramda';\n\nconst TOTAL_ROW_SPAN_KEY = 'total';\nconst NESTED_KEY_DELIMITER = '.';\n\nconst getSiblingSubRowsKeyBySubRowKey = pipe(split(NESTED_KEY_DELIMITER), dropLast(1), join(NESTED_KEY_DELIMITER));\n\nconst getParentRowKeyBySiblingsSubRowsKey = pipe(\n split(NESTED_KEY_DELIMITER),\n dropLast(1),\n join(NESTED_KEY_DELIMITER),\n unless(length, always(TOTAL_ROW_SPAN_KEY))\n);\n\nconst getParentRowKeyBySubRowKey = pipe(getSiblingSubRowsKeyBySubRowKey, getParentRowKeyBySiblingsSubRowsKey);\n\nconst countParentSpanByAllSubRows = (rowSpanData, siblingSubRowsKey) =>\n pipe(\n pickBy((_val, key) => getSiblingSubRowsKeyBySubRowKey(key) === siblingSubRowsKey),\n values,\n sum\n )(rowSpanData);\n\nconst calcParentRowSpan = (rowSpanData, subRowKey) => {\n const parentKey = getParentRowKeyBySubRowKey(subRowKey);\n const currentParentSpan = propOr(0, parentKey, rowSpanData);\n const actualParentSpan = countParentSpanByAllSubRows(rowSpanData, getSiblingSubRowsKeyBySubRowKey(subRowKey));\n\n if (actualParentSpan > currentParentSpan) {\n const nextRowSpanData = assoc(parentKey, actualParentSpan, rowSpanData);\n return parentKey === TOTAL_ROW_SPAN_KEY ? nextRowSpanData : calcParentRowSpan(nextRowSpanData, parentKey);\n } else {\n return rowSpanData;\n }\n};\n\nconst addNestedKey = (rowSpanData, nestedKey) => calcParentRowSpan({...rowSpanData, [nestedKey]: 1}, nestedKey);\n\nconst validateParentRowSpan = (rowSpanData, [siblingSubRowsKey, subRowsKeys]) => {\n const parentKey = getParentRowKeyBySiblingsSubRowsKey(siblingSubRowsKey);\n const currentParentSpan = propOr(0, parentKey, rowSpanData);\n const actualParentSpan = countParentSpanByAllSubRows(rowSpanData, siblingSubRowsKey);\n const spanDiff = currentParentSpan - actualParentSpan;\n\n if (spanDiff > 0) {\n const lowestSubRowKey = `${siblingSubRowsKey}${NESTED_KEY_DELIMITER}${subRowsKeys.length - 1}`;\n const lowestSubRowSpan = rowSpanData[lowestSubRowKey];\n return assoc(lowestSubRowKey, lowestSubRowSpan + spanDiff, rowSpanData);\n } else {\n return rowSpanData;\n }\n};\n\nconst validateRowSpanData = (rowSpanData) =>\n pipe(\n omit([TOTAL_ROW_SPAN_KEY]),\n keys,\n sortBy(identity),\n groupBy(getSiblingSubRowsKeyBySubRowKey),\n toPairs,\n reduce(validateParentRowSpan, rowSpanData)\n )(rowSpanData);\n\nconst calcRowSpansForNestedKeys = pipe(reduce(addNestedKey, {}), validateRowSpanData);\n\nconst chainWithIndex = addIndex(chain);\nconst flattenNestedColumnValues = (values, indexPath = []) => {\n const [head] = values;\n return Array.isArray(head)\n ? chainWithIndex((value, index) => flattenNestedColumnValues(value, [...indexPath, index]), values)\n : {indexPath, values};\n};\n\nconst getNestedKeyForNestedColumnCell = curry((columnNestedPath, cell) =>\n pipe(zip(__, cell.indexPath), unnest, join(NESTED_KEY_DELIMITER))(columnNestedPath)\n);\n\nexport {\n calcRowSpansForNestedKeys,\n validateRowSpanData,\n TOTAL_ROW_SPAN_KEY,\n flattenNestedColumnValues,\n getSiblingSubRowsKeyBySubRowKey,\n getParentRowKeyBySiblingsSubRowsKey,\n getNestedKeyForNestedColumnCell\n};\n","import DefaultCellValueRenderer from '../cell-value-renderers/DefaultCellValueRenderer';\nimport withFilter from '../HOCs/withFilter';\nimport {\n calcRowSpansForNestedKeys,\n flattenNestedColumnValues,\n getNestedKeyForNestedColumnCell,\n TOTAL_ROW_SPAN_KEY\n} from './nestedHelpers';\nimport {\n add,\n always,\n assoc,\n chain,\n evolve,\n isEmpty,\n isNil,\n map,\n mapObjIndexed,\n max,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n reduce,\n reject,\n slice,\n uniq,\n unless,\n values\n} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport withFilterAtBottom from '../HOCs/withFilterAtBottom';\n\nconst applyCellRendererToColumnCells = (columnsData, renderRowCell, rowIndex, rowValue) => (cells, columnId) => {\n const columnIndex = columnsData.findIndex(propEq('id', columnId));\n const columnData = columnsData[columnIndex];\n const {rowCellValueRenderer: CellValueRenderer = DefaultCellValueRenderer} = columnsData[columnIndex];\n return cells.map((cell, cellIndex) => ({\n ...cell,\n values: renderRowCell({\n columnIndex,\n columnData,\n rowIndex,\n rowValue,\n cellIndex,\n cell,\n CellValueRenderer\n })\n }));\n};\n\nconst applyCellRenderer = pipe(applyCellRendererToColumnCells, mapObjIndexed);\n\nconst calcHeightForColumnCells = (columnsData, getRowCellHeight, rowIndex, rowValue) => (cells, columnId) => {\n const columnIndex = columnsData.findIndex(propEq('id', columnId));\n const columnData = columnsData[columnIndex];\n return cells.map((cell, cellIndex) => ({\n ...cell,\n height: getRowCellHeight({columnIndex, columnData, rowIndex, rowValue, cellIndex, cell})\n }));\n};\n\nconst calcHeights = (columnsData, getRowCellHeight, rowIndex, rowValue) => (rowData) =>\n getRowCellHeight\n ? mapObjIndexed(calcHeightForColumnCells(columnsData, getRowCellHeight, rowIndex, rowValue), rowData)\n : rowData;\n\nconst addRowSpansToColumnCells = (rowSpansData) =>\n map((cell) => ({...cell, rowSpan: rowSpansData[cell.nestedKey || TOTAL_ROW_SPAN_KEY]}));\n\nconst getNestedKeysFromRowCells = pipe(chain(pluck('nestedKey')), reject(isNil), uniq);\n\nconst calcRowSpansData = pipe(values, getNestedKeysFromRowCells, calcRowSpansForNestedKeys);\n\nconst calcRowSpans = (rowData) => {\n const rowSpansData = calcRowSpansData(rowData);\n return isEmpty(rowSpansData) ? rowData : map(addRowSpansToColumnCells(rowSpansData), rowData);\n};\n\nconst calcNestedKeys = (columnNestedPath) =>\n map((cell) => ({\n ...cell,\n nestedKey: getNestedKeyForNestedColumnCell(columnNestedPath, cell)\n }));\n\nconst parseNestedColumnValues = (columnNestedPath, nestedValues) =>\n pipe(flattenNestedColumnValues, calcNestedKeys(columnNestedPath))(nestedValues);\n\nconst getCellValues = (columnNestedPath, columnValues) =>\n columnNestedPath && !isEmpty(columnValues)\n ? parseNestedColumnValues(columnNestedPath, columnValues)\n : [{values: wrapInArrayIfNeeded(columnValues)}];\n\nconst buildRowValues = (rowValue) =>\n reduce((acc, {id, nestedPath}) => assoc(id, getCellValues(nestedPath, rowValue[id]), acc), {});\n\nconst applyValuesCountConstraint = (maxValuesCount) =>\n unless(\n () => maxValuesCount === Infinity,\n map(\n pipe(\n reject(({indexPath}) => indexPath && indexPath.some((index) => index > maxValuesCount - 1)),\n map(\n evolve({\n values: slice(0, maxValuesCount)\n })\n )\n )\n )\n );\n\nconst defaultGetIdFromRowValue = (_, rowIndex) => rowIndex;\n\nconst getTableRowsData = (\n rowValues,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n getRowMaxValuesCount = always(Infinity),\n getIdFromRowValue = defaultGetIdFromRowValue\n) =>\n rowValues.map((rowValue, rowIndex) =>\n pipe(\n buildRowValues(rowValue),\n applyValuesCountConstraint(getRowMaxValuesCount(rowIndex)),\n calcRowSpans,\n calcHeights(columnsData, getRowCellHeight, rowIndex, rowValue),\n applyCellRenderer(columnsData, renderRowCell, rowIndex, rowValue),\n (val) => ({data: val, id: getIdFromRowValue(rowValue, rowIndex)})\n )(columnsData)\n );\n\nconst getTableHeadData = (columnsData, filters, onFilter) =>\n columnsData.map(\n ({\n id,\n label,\n description,\n sortable,\n filterable = true,\n resizable,\n draggable,\n autoResize = true,\n initialWidth,\n minWidth,\n dataTypeDefinition,\n filterOptions,\n headCellRenderer = withFilterAtBottom(DefaultHeadCellRenderer)\n }) => ({\n id,\n label,\n description,\n sortable,\n resizable,\n draggable,\n initialWidth,\n minWidth,\n autoResize,\n renderer: unless(\n () => isNil(filters),\n withFilter({\n dataTypeDefinition,\n filterable,\n filter: prop(id, filters),\n filterOptions,\n onFilter\n })\n )(headCellRenderer)\n })\n );\n\nconst calcMaxValuesCount = reduce((maxCount, cellValues) => {\n const maxSubNestedValuesCount = pipe(chain(propOr([], 'indexPath')), map(add(1)), reduce(max, 0))(cellValues);\n const maxPlainValuesCount = pipe(pluck('values'), pluck('length'), reduce(max, 0))(cellValues);\n return Math.max(maxCount, maxSubNestedValuesCount, maxPlainValuesCount);\n}, 0);\n\nconst getMaxRowValuesCount = (columnsData, rowValue) => {\n return pipe(buildRowValues(rowValue, Infinity), values, calcMaxValuesCount)(columnsData);\n};\n\nexport {getTableRowsData, getTableHeadData, getMaxRowValuesCount};\n","import {DataTypes} from '@reltio/mdm-sdk';\n\nconst BLOB_HEIGHT = 100;\nconst IMAGE_HEIGHT = 64;\nconst PADDING = 15;\n\nconst defaultGetRowCellHeight = ({columnData, cell}) => {\n const valuesCount = cell.values.length;\n switch (columnData?.dataTypeDefinition?.type) {\n case DataTypes.TYPE_BLOB:\n return BLOB_HEIGHT * valuesCount;\n case DataTypes.TYPE_IMAGE:\n return (PADDING + IMAGE_HEIGHT) * valuesCount + PADDING;\n case DataTypes.TYPE_REFERENCE:\n return 48 * Math.max(valuesCount, 1);\n default:\n return 33 * Math.max(valuesCount, 1) + PADDING;\n }\n};\n\nexport default defaultGetRowCellHeight;\n","import React from 'react';\n\nconst defaultRenderRowCell = ({cell, CellValueRenderer, ...otherProps}) =>\n cell.values.map((value, index) => <CellValueRenderer key={index} value={value} {...otherProps} />);\n\nexport default defaultRenderRowCell;\n","import {useCallback, useMemo, useState} from 'react';\n\nimport {equals, filter, remove} from 'ramda';\nimport {getTableRowsData, getMaxRowValuesCount} from '../helpers/dataHelpers';\nimport {useDidUpdateEffect, usePrevious} from '../../../../hooks';\nimport {\n ColumnData,\n ElementsRowsData,\n GetRowCellHeight,\n RenderRowCell,\n RowValue,\n TableRowsData,\n RowId\n} from '../../types';\n\ntype Props = {\n rowsData: ElementsRowsData;\n columnsData: ColumnData[];\n renderRowCell: RenderRowCell;\n getRowCellHeight: GetRowCellHeight;\n maxRowValuesCount: number;\n getIdFromRowValue?: (rowValue: RowValue, rowIndex: number) => RowId;\n};\n\nconst useCollapsibleTableRows = ({\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n maxRowValuesCount,\n getIdFromRowValue\n}: Props) => {\n const [expandedIndexes, setExpandedIndexes] = useState<Array<number>>([]);\n\n const getRowMaxValuesCount = useCallback(\n (rowIndex) => {\n return expandedIndexes.includes(rowIndex) ? Infinity : maxRowValuesCount;\n },\n [expandedIndexes, maxRowValuesCount]\n );\n\n const tableRowsData: TableRowsData = useMemo(\n () =>\n getTableRowsData(\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n getRowMaxValuesCount,\n getIdFromRowValue\n ),\n [rowsData, columnsData, renderRowCell, getRowCellHeight, getRowMaxValuesCount, getIdFromRowValue]\n );\n\n const toggleRowCollapse = useCallback((rowIndex: number) => {\n setExpandedIndexes((expandedIndexes) => {\n const index = expandedIndexes.findIndex(equals(rowIndex));\n return index === -1 ? expandedIndexes.concat(rowIndex) : remove(index, 1, expandedIndexes);\n });\n }, []);\n\n const getIsRowCollapsible = useCallback(\n (rowValue: Record<string, unknown>) => {\n return getMaxRowValuesCount(columnsData, rowValue) > maxRowValuesCount;\n },\n [maxRowValuesCount, columnsData]\n );\n\n const getIsRowCollapsed = useCallback(\n (rowIndex: number) => {\n return !expandedIndexes.includes(rowIndex);\n },\n [expandedIndexes]\n );\n\n const collapseContextValue = useMemo(\n () => ({\n maxRowValuesCount,\n toggleRowCollapse,\n getIsRowCollapsible,\n getIsRowCollapsed\n }),\n [maxRowValuesCount, toggleRowCollapse, getIsRowCollapsible, getIsRowCollapsed]\n );\n\n const prevRowsData = usePrevious(rowsData);\n useDidUpdateEffect(() => {\n if (expandedIndexes.length > 0) {\n setExpandedIndexes(\n filter((index) => {\n const rowValue = rowsData[index] ?? ({} as RowValue);\n const prevRowValue = prevRowsData[index] ?? ({} as RowValue);\n return rowValue.rawValue === prevRowValue.rawValue && getIsRowCollapsible(rowValue);\n })\n );\n }\n }, [rowsData]);\n\n return {tableRowsData, collapseContextValue};\n};\n\nexport default useCollapsibleTableRows;\n","import {buildFilterQueryString, Maybe} from '@reltio/mdm-sdk';\nimport {propEq} from 'ramda';\nimport {ColumnData, ColumnFilter} from '../types';\n\nconst columnFilterToMdmFilter = (\n columnData: ColumnData,\n columnFilter: ColumnFilter = {} as unknown as ColumnFilter\n) => ({\n fieldName: columnData.id,\n filter: columnFilter.filter,\n values: [columnFilter.value],\n type: columnData.dataTypeDefinition.type\n});\n\nconst mdmFilterToColumnFilter = ({filter, values}) => ({filter, value: values[0]});\n\nconst buildColumnsFilter = (columnsData: ColumnData[], filters?: Record<string, ColumnFilter>): string =>\n Maybe.fromNull(filters)\n .map((filters) =>\n Object.entries(filters).map(([columnId, columnFilter]) => {\n const columnData = columnsData.find(propEq('id', columnId));\n return columnFilterToMdmFilter(columnData, columnFilter);\n })\n )\n .map<string>(buildFilterQueryString())\n .orSome('');\n\nexport {buildColumnsFilter, columnFilterToMdmFilter, mdmFilterToColumnFilter};\n","import {makeStyles} from '@mui/styles';\n\nexport const COLUMN_FILTER_HEIGHT = 40;\n\nexport const useStyles = makeStyles({\n columnFilter: {\n backgroundColor: 'rgba(0,0,0,0.03)',\n display: 'flex',\n height: `${COLUMN_FILTER_HEIGHT}px`,\n alignItems: 'center'\n },\n dropDownButton: {\n marginLeft: 'auto',\n padding: '6px'\n },\n filterMenu: {\n marginTop: '3px',\n borderRadius: '2px',\n padding: '15px 20px',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n minWidth: '454px'\n },\n 'filter-editor__option': {\n fontSize: '13px',\n color: 'rgba(0,0,0,0.54)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport {formatDataTypeValue, isAttributeValueLink, addProtocolToLink} from '@reltio/mdm-sdk';\nimport Link from '@mui/material/Link';\nimport SearchHighlighter from '../SearchHighlighter/SearchHighlighter';\nimport {useMdmAttributePresentations, useMdmDateMask, useMdmDateTimeMask} from '../../contexts';\n\nconst DataTypeValue = ({value = null, dataTypeDefinition, rich = true}) => {\n const localeDateFormat = moment.localeData().longDateFormat('L');\n const localeTimeFormat = moment.localeData().longDateFormat('LTS');\n\n const attributePresentations = useMdmAttributePresentations();\n const dateMask = useMdmDateMask() || localeDateFormat;\n const dateTimeMask = useMdmDateTimeMask() || localeDateFormat + ' ' + localeTimeFormat;\n\n const formattedValue = formatDataTypeValue(\n {attributePresentations, dataTypeDefinition, dateMask, dateTimeMask},\n value\n );\n\n return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n <SearchHighlighter text={formattedValue} />\n </Link>\n ) : (\n <SearchHighlighter text={formattedValue} />\n );\n};\n\nDataTypeValue.propTypes = {\n value: PropTypes.any,\n dataTypeDefinition: PropTypes.object,\n rich: PropTypes.bool\n};\n\nexport default DataTypeValue;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NoMessageComponent from './NoMessageComponent';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<typeof NoMessageComponent>, 'message'>;\n\nexport const NoResults = (props: Props) => {\n return <NoMessageComponent message={i18n.text('No results found')} {...props} />;\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n highlight: {\n fontWeight: 600\n }\n});\n","import React from 'react';\nimport {ascend, map, pipe, reverse, sort, split, toLower, trim} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n highlight?: string;\n className?: string;\n multiTerm?: boolean;\n};\n\nconst Highlighter = ({text, highlight, className, multiTerm = false}: Props) => {\n const styles = useStyles();\n const hasHighlights = text && highlight;\n\n if (!hasHighlights) {\n return <>{text}</>;\n }\n\n const REG_SPACES = new RegExp(/\\s+/);\n const getMultiTerms = pipe(trim, split(REG_SPACES), map(toLower), sort(ascend), reverse);\n const highlightedValues = multiTerm ? getMultiTerms(highlight) : [toLower(highlight)];\n\n const regValues = highlightedValues.map((item) => item.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&'));\n\n const parts = text.split(new RegExp(`(${regValues.join('|')})`, 'gi'));\n\n return (\n <span>\n {parts.map((part, i) => {\n const isHighlightedText = highlightedValues.includes(part.toLocaleLowerCase());\n return isHighlightedText ? (\n <span key={i} className={className || styles.highlight}>\n {part}\n </span>\n ) : (\n part\n );\n })}\n </span>\n );\n};\n\nexport default Highlighter;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n inputRoot: {\n flexWrap: 'wrap',\n paddingLeft: '8px'\n },\n autosizeInput: {\n width: 'auto',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport TextField from '@mui/material/TextField';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, useState} from 'react';\nimport {identity, pipe, propEq, remove, uniq, when, trim, isEmpty} from 'ramda';\nimport {getValue, noop} from '../../core/utils';\nimport {useStyles} from './styles';\nimport ValueChip from '../ValueChip/ValueChip';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\n\nconst AutosizeInputWrapper = forwardRef((props, ref) => {\n const {CustomInputComponent, ...other} = props;\n\n return CustomInputComponent ? (\n <CustomInputComponent {...other} ref={ref} customInput={AutosizeInput} />\n ) : (\n <AutosizeInput {...other} ref={ref} />\n );\n});\n\nAutosizeInputWrapper.propTypes = {\n CustomInputComponent: PropTypes.elementType\n};\n\nAutosizeInputWrapper.displayName = 'AutosizeInputWrapper';\n\nconst BACKSPACE_KEY_CODE = 8;\nconst EMPTY_VALUES_EDIT_HINT = i18n.text('Press Enter to add. You may enter multiple values');\n\nconst isEmptyValue = pipe(trim, isEmpty);\n\nconst MultipleInput = ({\n values = [],\n InputProps = {},\n inputProps = {},\n classes = {},\n isCrossedOut,\n onChange = noop,\n getValueLabel = identity,\n ...otherProps\n}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n\n const [inputValue, setInputValue] = useState('');\n const clearInputValue = () => setInputValue('');\n\n const removeValueAt = (index) => onChange(remove(index, 1, values));\n const appendValue = (value) => onChange(uniq([...values, value]));\n\n const hasValues = values.length > 0;\n\n const appendInputValueIfNotEmpty = () => {\n if (!isEmptyValue(inputValue)) {\n appendValue(inputValue);\n clearInputValue();\n }\n };\n const popLastValueIfInputIsEmpty = () => {\n if (inputValue === '' && hasValues) {\n removeValueAt(-1);\n }\n };\n\n const [isFocused, setIsFocused] = useState(false);\n const setFocused = () => setIsFocused(true);\n const setUnfocused = () => setIsFocused(false);\n\n const hintText = !hasValues && isFocused ? EMPTY_VALUES_EDIT_HINT : '';\n\n return (\n <Tooltip title={hintText}>\n <TextField\n variant=\"standard\"\n {...otherProps}\n classes={{\n root: classes.root\n }}\n value={inputValue}\n onChange={pipe(getValue, setInputValue)}\n InputProps={{\n ...InputProps,\n startAdornment: values.map((value, index) => (\n <ValueChip key={value} label={getValueLabel(value)} onDelete={() => removeValueAt(index)} />\n )),\n inputComponent: AutosizeInputWrapper,\n classes: {\n root: classnames(styles.inputRoot, root, {[styles.isCrossedOut]: isCrossedOut}),\n input: classnames(styles.autosizeInput, InputClasses.input),\n ...InputClasses\n }\n }}\n inputProps={{\n ...inputProps,\n CustomInputComponent: InputProps.inputComponent\n }}\n onKeyPress={when(propEq('key', 'Enter'), appendInputValueIfNotEmpty)}\n onKeyDown={when(propEq('keyCode', BACKSPACE_KEY_CODE), popLastValueIfInputIsEmpty)}\n onFocus={setFocused}\n onBlur={pipe(appendInputValueIfNotEmpty, setUnfocused)}\n />\n </Tooltip>\n );\n};\n\nMultipleInput.propTypes = {\n values: PropTypes.arrayOf(PropTypes.string),\n InputProps: PropTypes.shape({\n classes: PropTypes.shape({root: PropTypes.string}),\n inputComponent: PropTypes.elementType\n }),\n inputProps: PropTypes.object,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n getValueLabel: PropTypes.func,\n isCrossedOut: PropTypes.bool\n};\n\nexport default MultipleInput;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n multiSelect: {\n padding: '3px 48px 3px 8px !important',\n minHeight: '34px !important'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {defaultTo, identity, pipe, prop, remove} from 'ramda';\nimport TextField from '@mui/material/TextField';\nimport {SelectValueType} from '../../constants/prop-types';\nimport {getValue, noop} from '../../core/utils';\nimport ValueChip from '../ValueChip/ValueChip';\n\nimport {useStyles} from './styles';\n\nconst MultipliableSelect = ({\n multiple,\n value,\n children,\n getValueLabel = noop,\n getValuePlaceholder = identity,\n onChange = noop,\n fullWidth,\n TextFieldProps,\n MenuProps,\n classes,\n isCrossedOut,\n ...otherProps\n}) => {\n const styles = useStyles();\n return (\n <TextField\n variant=\"standard\"\n select\n fullWidth={fullWidth}\n {...TextFieldProps}\n value={defaultTo(multiple ? [] : '', value)}\n onChange={pipe(getValue, onChange)}\n SelectProps={{\n ...otherProps,\n MenuProps: {\n anchorOrigin: {vertical: 'bottom', horizontal: 'center'},\n ...MenuProps\n },\n classes: {\n ...classes,\n select: classnames(\n {[styles.multiSelect]: multiple, [styles.isCrossedOut]: isCrossedOut},\n prop('root', classes),\n prop('select', classes)\n )\n },\n multiple,\n // eslint-disable-next-line react/display-name\n renderValue: (selected) =>\n multiple ? (\n <div className={styles.chips}>\n {selected.map((value, index) => (\n <ValueChip\n key={value}\n label={getValueLabel(value) || getValuePlaceholder(value)}\n onMouseDown={(event) => event.stopPropagation()}\n onDelete={() => onChange(remove(index, 1, selected))}\n />\n ))}\n </div>\n ) : (\n getValueLabel(selected) || getValuePlaceholder(selected)\n )\n }}\n >\n {children}\n </TextField>\n );\n};\n\nMultipliableSelect.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n TextFieldProps: PropTypes.object,\n MenuProps: PropTypes.object,\n children: PropTypes.node,\n classes: PropTypes.object,\n onChange: PropTypes.func,\n getValueLabel: PropTypes.func,\n getValuePlaceholder: PropTypes.func,\n isCrossedOut: PropTypes.bool\n};\n\nexport default MultipliableSelect;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n highlightedText: {\n background: 'rgb(255, 235, 203)'\n }\n});\n","import React, {useContext} from 'react';\nimport {SearchValueContext} from '../../contexts';\nimport Highlighter from '../Highlighter/Highlighter';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n};\n\nconst SearchHighlighter = ({text}: Props) => {\n const styles = useStyles();\n const keywordValue = useContext(SearchValueContext);\n\n return <Highlighter text={text} highlight={keywordValue} className={styles.highlightedText} multiTerm />;\n};\n\nexport default SearchHighlighter;\n","import {makeStyles} from '@mui/styles';\n\nconst margin = 2;\nexport const useChipStyles = makeStyles({\n root: {\n height: '28px',\n backgroundColor: 'rgba(43, 152, 240, 0.12)',\n maxWidth: `calc(100% - ${margin * 2}px)`,\n margin: `${margin}px`,\n '& $deleteIcon': {\n height: 18,\n width: 18,\n color: 'rgba(0,0,0,0.38)',\n marginRight: '8px'\n }\n },\n deleteIcon: {},\n label: {\n overflow: 'hidden'\n }\n});\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n count: {\n color: theme.palette.text.secondary,\n fontSize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n marginLeft: 8\n }\n}));\n","import React from 'react';\nimport Chip, {ChipProps} from '@mui/material/Chip';\nimport {mergeClasses} from '../../core/utils';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles, useChipStyles} from './styles';\n\ntype Props = Omit<ChipProps, 'label'> & {\n label: string;\n count?: string;\n};\n\nconst ValueChip = ({classes: classesProp = {}, label, count, ...otherProp}: Props) => {\n const classes = useChipStyles();\n const styles = useStyles();\n return (\n <Chip\n classes={mergeClasses(classesProp, classes)}\n label={\n <div className={styles.container}>\n <ExpandedValueTooltip value={label}>\n <div className={styles.label}>{label}</div>\n </ExpandedValueTooltip>\n {count && <div className={styles.count}>{count}</div>}\n </div>\n }\n {...otherProp}\n />\n );\n};\n\nexport default ValueChip;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n loadMoreContainer: {\n display: 'flex',\n height: '32px'\n },\n moreButton: {\n padding: '9px 38px 9px 38px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n loadingSpinner: {\n alignSelf: 'center',\n marginLeft: '40px'\n }\n});\n","import React from 'react';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n loading: boolean;\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onMouseDown?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst LoadMoreButton = ({loading, onClick, onMouseDown}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.loadMoreContainer}>\n {loading ? (\n <CircularProgress className={styles.loadingSpinner} size={24} />\n ) : (\n <Button color=\"primary\" onClick={onClick} onMouseDown={onMouseDown} className={styles.moreButton}>\n <div className={styles.buttonLabel}>{i18n.text('Load more')}</div>\n </Button>\n )}\n </div>\n );\n};\n\nexport default LoadMoreButton;\n","import React from 'react';\nimport {components} from 'react-select';\n\nconst MenuList = (props) => {\n const {\n selectProps: {menuListFooter},\n children\n } = props;\n\n return (\n <components.MenuList {...props}>\n {children}\n {menuListFooter}\n </components.MenuList>\n );\n};\nexport default MenuList;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-30px',\n position: 'absolute'\n }\n});\n","import React from 'react';\nimport CheckIcon from '@mui/icons-material/Check';\nimport Option from '../../ReactSelect/commonComponents/Option';\nimport {useStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n isSelected: boolean;\n};\n// NEED TO MIGRATE\nconst OptionWithCheckIcon = (props: Props) => {\n const styles = useStyles();\n const {isSelected, children} = props;\n\n return (\n <Option {...props}>\n {isSelected && <CheckIcon className={styles.checkIcon} />}\n <>{children}</>\n </Option>\n );\n};\n\nOptionWithCheckIcon.displayName = 'OptionWithCheckIcon';\n\nexport default OptionWithCheckIcon;\n","import Checkbox from '@mui/material/Checkbox';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {getChecked} from '../../../core/utils';\nimport {pipe} from 'ramda';\n\nconst BooleanEditor = ({value, onChange, ...otherProps}) => (\n <Checkbox {...otherProps} checked={value} onChange={onChange && pipe(getChecked, onChange)} />\n);\n\nBooleanEditor.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.bool\n};\n\nexport default BooleanEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n editors: {\n width: 'fit-content'\n },\n checkboxPrimary: {\n color: theme.palette.divider\n },\n label: {\n color: theme.palette.text.secondary\n },\n isCrossedOut: {\n position: 'relative',\n '&:before': {\n content: \"''\",\n position: 'absolute',\n height: '1px',\n background: theme.palette.text.secondary,\n top: '50%',\n left: '-3px',\n right: '13px'\n }\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {isNil, not, pipe} from 'ramda';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport BooleanEditor from '../BooleanEditor/BooleanEditor';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: boolean;\n onChange?: (checked: boolean) => void;\n className?: string;\n isCrossedOut?: boolean;\n disabled?: boolean;\n};\n\nconst BooleanRadioEditor = ({value, onChange, className, isCrossedOut, disabled}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={className}>\n <div className={classnames(styles.editors, {[styles.isCrossedOut]: isCrossedOut})}>\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles.checkboxPrimary}}\n color=\"primary\"\n value={!isNil(value) && !!value}\n onChange={onChange}\n disabled={disabled}\n />\n }\n label={i18n.text('Yes')}\n />\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles.checkboxPrimary}}\n color=\"primary\"\n value={!isNil(value) && !value}\n onChange={onChange && pipe(not, onChange)}\n disabled={disabled}\n />\n }\n label={i18n.text('No')}\n />\n </div>\n </div>\n );\n};\n\nexport default BooleanRadioEditor;\n","import {chain, curry, has} from 'ramda';\n\nconst isGroupEntry = has('values');\n\nconst flattenEntry = curry((depth, entry) =>\n isGroupEntry(entry)\n ? [{label: entry.label, depth, isGroup: true}, ...chain(flattenEntry(depth + 1), entry.values)]\n : {...entry, depth}\n);\n\nconst flattenGroupedEntries = chain(flattenEntry(0));\n\nconst findEntryByValue = curry((entries, _value) => entries.find(({isGroup, value}) => !isGroup && value === _value));\n\nexport {flattenGroupedEntries, findEntryByValue};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-25px',\n position: 'absolute'\n },\n emptyLabel: {\n padding: '4px 16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {isNil, pipe, prop} from 'ramda';\nimport CheckIcon from '@mui/icons-material/Check';\nimport MenuItem from '@mui/material/MenuItem';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport {DropDownEntryType, DropDownGroupEntryType, SelectValueType} from '../../../constants/prop-types';\nimport {findEntryByValue, flattenGroupedEntries} from './entriesHelpers';\nimport {useStyles} from './styles';\nimport {useSelectStyles} from '../constants';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst MENU_ITEM_OFFSET = 25;\n\nconst GroupedDropDownEditor = ({value, entries, classes, ...otherProps}) => {\n const flattenedEntries = flattenGroupedEntries(entries);\n const selectedValues = isNil(value) ? [] : wrapInArrayIfNeeded(value);\n const styles = useStyles();\n const selectStyles = useSelectStyles();\n\n return (\n <MultipliableSelect\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(selectStyles.root, prop('root', classes)),\n icon: classnames(selectStyles.icon, prop('icon', classes))\n }}\n {...otherProps}\n value={value}\n getValueLabel={pipe(findEntryByValue(flattenedEntries), prop('label'))}\n >\n {flattenedEntries.length > 0 ? (\n flattenedEntries.map(({value, label, depth, isGroup}, index) => (\n <MenuItem\n key={index}\n disabled={isGroup}\n value={value}\n style={{paddingLeft: `${(depth + 1) * MENU_ITEM_OFFSET}px`}}\n >\n {selectedValues.includes(value) && <CheckIcon className={styles.checkIcon} />}\n {label || value.toString()}\n </MenuItem>\n ))\n ) : (\n <MenuItem className={styles.emptyLabel} disabled={true}>\n {i18n.text('No results found')}\n </MenuItem>\n )}\n </MultipliableSelect>\n );\n};\n\nGroupedDropDownEditor.propTypes = {\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n entries: PropTypes.arrayOf(PropTypes.oneOfType([DropDownEntryType, DropDownGroupEntryType])).isRequired,\n classes: PropTypes.object\n};\n\nexport {GroupedDropDownEditor as default, MENU_ITEM_OFFSET};\n","import {ascend, assocPath, path, prop, curry, useWith} from 'ramda';\nimport {getLookupLabel} from '@reltio/mdm-sdk';\n\nconst LOOKUP_URI_SEPARATOR = '.';\n\nconst splitOnce = curry((separator, string) => {\n const [first, ...other] = string.split(separator);\n return [first, other.join(separator)];\n});\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst getLookupByUri = useWith(path, [splitOnce(LOOKUP_URI_SEPARATOR)]);\n\nconst byLabel = ascend(prop('label'));\n\nconst buildLookupEntries = (lookupTypeCode, lookups) => {\n const getLookupPath = (uri) => {\n const {parent} = getLookupByUri(uri, lookups);\n return parent ? getLookupPath(parent).concat(uri) : [uri];\n };\n\n const buildEntry = ([uri, value]) => {\n const lookup = getLookupByUri(uri, lookups);\n const [, code] = splitOnce(LOOKUP_URI_SEPARATOR, uri);\n const label = getLookupLabel(code, lookup.displayName);\n return lookup === value ? {label, value: code} : {label, values: buildEntries(value)};\n };\n\n const buildEntries = (value) => Object.entries(value).map(buildEntry).sort(byLabel);\n\n const hierarchy = Object.entries(lookups[lookupTypeCode] || []).reduce(\n (acc, [code, value]) => assocPath(getLookupPath(`${lookupTypeCode}${LOOKUP_URI_SEPARATOR}${code}`), value, acc),\n {}\n );\n\n return buildEntries(hierarchy);\n};\n\nexport {buildLookupEntries};\n","import GroupedDropDownEditor from '../GroupedDropDownEditor/GroupedDropDownEditor';\nimport PropTypes from 'prop-types';\nimport React, {useEffect} from 'react';\nimport {SimpleLookupType, LookupValueType} from '@reltio/mdm-sdk';\nimport {always, defaultTo, isEmpty, map, path, pipe, pluck, prop, propEq} from 'ramda';\nimport {buildLookupEntries} from './entriesHelpers';\n\nconst LookupEditor = ({multiple, value, lookupCode: lookupTypeCode, lookups, onChange, getLookups, ...otherProps}) => {\n const codeToLookup = (lookupCode) => ({\n lookupCode,\n value: path([lookupTypeCode, lookupCode, 'displayName'], lookups)\n });\n useEffect(() => {\n if (isEmpty(lookups) && getLookups) {\n getLookups()?.catch(() => {});\n }\n }, [lookups, getLookups]);\n const entries = buildLookupEntries(lookupTypeCode, lookups); // TODO: this code could be not valid if lookups are not loaded\n const commonProps = {\n ...otherProps,\n multiple,\n entries\n };\n value = defaultTo(multiple ? [] : {}, value);\n\n return multiple ? (\n <GroupedDropDownEditor\n {...commonProps}\n value={pluck('lookupCode', value)}\n getValuePlaceholder={(lookupCode) => value.find(propEq('lookupCode', lookupCode)).value}\n onChange={pipe(map(codeToLookup), onChange)}\n />\n ) : (\n <GroupedDropDownEditor\n {...commonProps}\n value={prop('lookupCode', value)}\n getValuePlaceholder={always(prop('value', value))}\n onChange={pipe(codeToLookup, onChange)}\n />\n );\n};\n\nLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n lookupCode: PropTypes.string.isRequired,\n lookups: PropTypes.objectOf(PropTypes.objectOf(SimpleLookupType)).isRequired,\n onChange: PropTypes.func,\n getLookups: PropTypes.func\n};\n\nexport default LookupEditor;\n","import {getLookupLabel, utils} from '@reltio/mdm-sdk';\n\nconst getOptionLabel = (obj) => {\n if (!obj) return '';\n const {lookupCode, value} = obj;\n return getLookupLabel(lookupCode, value);\n};\n\nconst buildLookupOptions = (lookups) =>\n Object.entries(lookups)\n .map(([lookupCode, {displayName}]) => ({\n lookupCode,\n value: displayName\n }))\n .sort((lookupA, lookupB) => {\n const labelALower = getOptionLabel(lookupA).toLowerCase();\n const labelBLower = getOptionLabel(lookupB).toLowerCase();\n return utils.strings.sort('asc', labelALower, labelBLower);\n });\n\nexport {getOptionLabel, buildLookupOptions};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n option: {\n paddingLeft: '35px'\n },\n dropdownIndicator: {\n padding: '8px 12px',\n cursor: 'pointer',\n color: theme.palette.text.secondary\n },\n clearIndicator: {\n display: 'none'\n },\n placeholder: {\n position: 'static'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n}));\n","import {useEffect, useState} from 'react';\nimport {curry, filter, hasPath, map, partition, pipe, prop, concat, uniq} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst isUnresolvedLookup = (lookupValue) => lookupValue && lookupValue.lookupCode && !lookupValue.value;\nconst isResolvedLookupCode = curry((resolvedValues, lookupCode) =>\n hasPath([lookupCode, 'displayName'], resolvedValues)\n);\n\nconst useLookupsResolver = ({lookups, resolvedValues, resolveLookups, onLookupsResolve}) => {\n const [requestedCodes, setRequestedCodes] = useState([]);\n useEffect(() => {\n const [resolvedCodes, codesToResolve] = pipe(\n wrapInArrayIfNeeded,\n filter(isUnresolvedLookup),\n map(prop('lookupCode')),\n partition(isResolvedLookupCode(resolvedValues))\n )(lookups);\n if (resolvedCodes.length > 0) {\n const resolvedLookups = resolvedCodes.map((lookupCode) => ({\n lookupCode,\n value: resolvedValues[lookupCode].displayName\n }));\n onLookupsResolve(resolvedLookups);\n }\n const unrequestedCodes = codesToResolve.filter((code) => !requestedCodes.includes(code));\n if (unrequestedCodes.length > 0) {\n setRequestedCodes(pipe(concat(unrequestedCodes), uniq));\n resolveLookups(unrequestedCodes);\n }\n }, [lookups, resolvedValues]); // eslint-disable-line\n};\n\nexport default useLookupsResolver;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport classnames from 'classnames';\nimport {components} from 'react-select';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop, T} from 'ramda';\nimport {buildLookupOptions, getOptionLabel} from './helpers';\nimport i18n from 'ui-i18n';\nimport {EmptyStub} from '../../../core/utils';\nimport DropdownIndicator from '../../commonReactSelectComponents/DropdownIndicator';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\nimport MenuList from '../../commonReactSelectComponents/MenuList';\nimport {useStyles} from './styles';\nimport useLookupsResolver from './useLookupsResolver';\nimport MultiValueChip from '../commonComponents/MultiValueChip/MultiValueChip';\nimport OptionWithCheckIcon from '../../commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon';\nimport useDefaultOptions from './useDefaultOptions';\nimport useAutopopulation from './useAutopopulation';\nimport useSavingFocus from './useSavingFocus';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst Input = (props) => {\n const styles = useStyles();\n const {\n selectProps: {isCrossedOut}\n } = props;\n return (\n <components.Input\n {...props}\n inputClassName={classnames({[styles.isCrossedOut]: isCrossedOut})}\n isHidden={false}\n />\n );\n};\n\nconst SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip,\n Input\n};\n\nexport const DEBOUNCE_INTERVAL = 400;\nconst MAX_DEPENDENT_LOOKUP_VALUES = 50;\n\nconst DependentLookupEditor = ({\n multiple,\n value,\n lookupCode: lookupTypeCode,\n TextFieldProps,\n parents,\n onChange,\n getLookups,\n lookups = {},\n resolveLookups,\n fullWidth,\n disabled,\n placeholder,\n max = MAX_DEPENDENT_LOOKUP_VALUES,\n ...otherProps\n}) => {\n const inputRef = useRef(null);\n const selectRef = useRef(null);\n const styles = useStyles();\n\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [optionsAreLoading, setOptionsAreLoading] = useState(false);\n\n useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n\n useSavingFocus(selectRef, inputRef, disabled);\n\n useEffect(() => {\n if (!multiple) {\n setInputValue(getOptionLabel(value));\n setOptions(defaultOptions);\n setPageNumber(1);\n }\n }, [value]);\n\n const handleChange = (value) => {\n markAsTouched();\n onChange(value);\n };\n\n const handleFocus = () => {\n value && selectRef.current?.select?.inputRef?.select();\n };\n\n const resetOptions = () => {\n setPageNumber(1);\n debouncedLoadOptions('', setOptions);\n };\n\n const restoreSelectedOption = () => {\n if (!multiple && inputValue && inputValue !== getOptionLabel(value)) {\n setInputValue(getOptionLabel(value));\n resetOptions();\n }\n };\n\n const handleInputChange = (newValue, {action}) => {\n switch (action) {\n case 'menu-close': {\n restoreSelectedOption();\n break;\n }\n case 'input-blur': {\n if (multiple && inputValue) {\n setInputValue('');\n resetOptions();\n break;\n }\n restoreSelectedOption();\n break;\n }\n case 'input-change': {\n setInputValue(newValue);\n setPageNumber(1);\n debouncedLoadOptions(newValue, setOptions);\n if (!multiple && newValue === '') {\n handleChange('');\n }\n break;\n }\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return (\n parents === null\n ? Promise.resolve([])\n : getLookups({\n type: lookupTypeCode,\n parents,\n displayNamePrefix: value,\n max: max + 1,\n offset: (pageNumber - 1) * max\n })\n )\n .then((buildOptions) => buildLookupOptions(buildOptions))\n .catch(() => [])\n .finally(() => setOptionsAreLoading(false));\n },\n [max, lookupTypeCode, parents]\n );\n\n const loadMoreOptions = useCallback(() => {\n const filterValue = inputValue !== getOptionLabel(value) ? inputValue : '';\n\n loadOptions(multiple ? inputValue : filterValue, pageNumber + 1).then((buildOptions) => {\n setOptions((options) => concat(options.slice(0, pageNumber * max), buildOptions));\n setPageNumber((page) => page + 1);\n });\n }, [max, loadOptions, inputValue, pageNumber]);\n\n const debouncedLoadOptions = useCallback(\n debounce((value, callback) => {\n loadOptions(value).then((options) => callback(options));\n }, DEBOUNCE_INTERVAL),\n [loadOptions]\n );\n\n const {defaultOptions, initialDefaultOptions, isLoading: isLoadingDefaultOptions} = useDefaultOptions(loadOptions);\n\n useEffect(() => {\n setOptions(defaultOptions);\n }, [defaultOptions]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [lookupTypeCode]);\n\n const displayedOptions = useMemo(() => options.slice(0, pageNumber * max), [max, options, pageNumber]);\n const showMoreButton = options.length > displayedOptions.length;\n\n const isEmptyValue = multiple ? isEmpty(value) : !value?.lookupCode && !value?.value;\n\n const {markAsTouched} = useAutopopulation({\n initialDefaultOptions,\n isEmptyValue,\n multiple,\n onChange\n });\n\n return (\n <Select\n {...otherProps}\n isMulti={multiple}\n classes={styles}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n ref: inputRef,\n disabled: TextFieldProps?.disabled || disabled\n }}\n inputRef={inputRef}\n innerRef={selectRef}\n styles={{\n menuPortal: (base) => ({...base, zIndex: 1300}),\n container: (base) => ({...base, ...(fullWidth ? {width: '100%'} : {})})\n }}\n noOptionsMessage={() =>\n optionsAreLoading && !showMoreButton ? i18n.text('Loading...') : i18n.text('No results found')\n }\n components={SelectComponents}\n isClearable={true}\n isSearchable={true}\n controlShouldRenderValue={multiple}\n inputValue={inputValue}\n filterOption={multiple ? undefined : T}\n onInputChange={handleInputChange}\n loadingMessage={() => i18n.text('Loading...')}\n isLoading={!inputValue && isLoadingDefaultOptions}\n hideSelectedOptions={false}\n placeholder={placeholder || ''}\n isDisabled={disabled}\n options={displayedOptions}\n getOptionValue={either(prop('value'), prop('lookupCode'))}\n getOptionLabel={getOptionLabel}\n onChange={handleChange}\n onFocus={multiple ? undefined : handleFocus}\n value={defaultTo(multiple ? [] : null, value)}\n menuListFooter={showMoreButton && <LoadMoreButton loading={optionsAreLoading} onClick={loadMoreOptions} />}\n />\n );\n};\n\nDependentLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n TextFieldProps: PropTypes.shape({\n variant: PropTypes.string,\n margin: PropTypes.string,\n hiddenLabel: PropTypes.bool\n }),\n lookupCode: PropTypes.string.isRequired,\n parents: PropTypes.array,\n getLookups: PropTypes.func,\n onChange: PropTypes.func,\n lookups: PropTypes.object,\n resolveLookups: PropTypes.func,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n max: PropTypes.number\n};\n\nexport default DependentLookupEditor;\n","import {useEffect, useRef} from 'react';\n\nconst useSavingFocus = (selectRef, inputRef, disabled: boolean) => {\n const needFocusRef = useRef(false);\n\n if (\n !needFocusRef.current &&\n disabled &&\n document.activeElement === inputRef.current?.getElementsByTagName('input')[0]\n ) {\n needFocusRef.current = true;\n }\n useEffect(() => {\n const handler = () => {\n if (needFocusRef.current) {\n needFocusRef.current = false;\n }\n };\n if (!disabled && needFocusRef.current) {\n selectRef.current?.focus();\n needFocusRef.current = false;\n }\n if (disabled && needFocusRef.current) {\n document?.addEventListener('click', handler);\n return () => {\n document?.removeEventListener('click', handler);\n };\n }\n }, [disabled]);\n};\n\nexport default useSavingFocus;\n","import {useState, useEffect} from 'react';\nimport {useSafePromise} from '../../../hooks';\n\nconst useDefaultOptions = (loadOptions) => {\n const [defaultOptions, setDefaultOptions] = useState([]);\n const [initialDefaultOptions, setInitialDefaultOptions] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n setDefaultOptions([]);\n setIsLoading(true);\n safePromise(loadOptions(''))\n .then((options) => {\n setDefaultOptions(options);\n setInitialDefaultOptions((prevValue) => prevValue || options);\n setIsLoading(false);\n })\n .catch(() => {\n setIsLoading(false);\n });\n }, [loadOptions]); // eslint-disable-line\n return {defaultOptions, initialDefaultOptions, isLoading};\n};\n\nexport default useDefaultOptions;\n","import {useCallback, useContext, useEffect} from 'react';\nimport {DependentLookupAutopopulationContext} from '../../../contexts';\n\ntype Option = {lookupCode: string; value: string};\n\ntype Props = {\n initialDefaultOptions: Option[];\n isEmptyValue: boolean;\n multiple: boolean;\n onChange: (value: Option | Option[]) => void;\n};\n\n// Autopopulation for just added editor. Other autopopulation cases should be covered by cascadeUpdate flow.\nconst useAutopopulation = ({initialDefaultOptions, isEmptyValue, multiple, onChange}: Props) => {\n const {id, isTouched, onTouch} = useContext(DependentLookupAutopopulationContext) || {};\n useEffect(() => {\n if (id && initialDefaultOptions && initialDefaultOptions.length === 1 && isEmptyValue && !isTouched) {\n onChange(multiple ? initialDefaultOptions : initialDefaultOptions[0]);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialDefaultOptions]);\n const markAsTouched = useCallback(() => {\n if (id) {\n onTouch?.(id);\n }\n }, [onTouch, id]);\n return {markAsTouched};\n};\n\nexport default useAutopopulation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport {useSelectStyles} from '../constants';\n\nconst SelectEditor = ({classes, ...otherProps}) => {\n const styles = useSelectStyles();\n return (\n <DropDownEditor\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(styles.root, prop('root', classes)),\n icon: classnames(styles.icon, prop('icon', classes))\n }}\n {...otherProps}\n />\n );\n};\n\nSelectEditor.propTypes = {\n classes: PropTypes.object\n};\n\nexport default SelectEditor;\n","import {memo} from 'react';\nimport {has, is, mergeDeepLeft} from 'ramda';\nimport EditorsFactory from '../EditorsFactory';\nimport PropTypes from 'prop-types';\nimport useEditorContext from './useEditorContext';\nimport {commonTextFieldProps, useInputStyles} from '../constants';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\n\nconst DataTypeValueEditor = ({fieldName, value, onChange, dataTypeDefinition, TextFieldProps = {}, ...otherProps}) => {\n const inputStyles = useInputStyles();\n const editorContext = useEditorContext(fieldName, dataTypeDefinition);\n const isEmpty = (value) => {\n return is(Object, value) && has('value', value) ? isEmptyValue(value.value) : isEmptyValue(value);\n };\n\n TextFieldProps = mergeDeepLeft(TextFieldProps, {\n ...commonTextFieldProps,\n className: inputStyles.marginDense,\n InputProps: {\n ...commonTextFieldProps.InputProps,\n disableUnderline: isEmpty(value)\n }\n });\n\n return EditorsFactory.build(dataTypeDefinition.type, {\n onChange,\n value,\n TextFieldProps,\n ...editorContext,\n ...otherProps\n });\n};\n\nDataTypeValueEditor.propTypes = {\n fieldName: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object\n};\n\nDataTypeValueEditor.displayName = 'DataTypeValueEditor';\n\nexport default memo(DataTypeValueEditor);\n","import {useCallback} from 'react';\nimport {propOr, prop, pipe, keys} from 'ramda';\nimport {\n DataTypes,\n intl,\n getDependentLookups,\n getFacetedAttributeData,\n getLookups,\n resolveLookupsList,\n getNumberFormat\n} from '@reltio/mdm-sdk';\nimport {\n useMdmAction,\n useMdmAttributePresentations,\n useMdmGlobalSearchRequestOptions,\n useMdmLookups,\n useMdmTenant\n} from '../../../contexts';\n\nconst useEditorContext = (fieldName, dataTypeDefinition) => {\n const lookupsLoaded = useMdmAction('lookupsLoaded');\n const lookupsForTypeResolved = useMdmAction('lookupsForTypeResolved');\n const tenant = useMdmTenant();\n const lookups = useMdmLookups();\n const attributePresentations = useMdmAttributePresentations();\n const globalSearchRequestOptions = useMdmGlobalSearchRequestOptions();\n\n const typeaheadGetSuggestion = useCallback(\n (searchValue, max, pageNo) =>\n getFacetedAttributeData({\n fieldName,\n searchValue,\n options: {...globalSearchRequestOptions, max, pageNo}\n }).then(pipe(prop(fieldName), keys)),\n [fieldName, globalSearchRequestOptions]\n );\n\n const {type, values, lookupCode, dependentLookupCode, options} = dataTypeDefinition;\n\n switch (type) {\n case DataTypes.TYPE_ENUM:\n return {entries: values.map((value) => ({value}))};\n case DataTypes.TYPE_LOOKUP:\n return {\n lookups,\n lookupCode,\n getLookups: () =>\n getLookups().then((lookups) => {\n lookupsLoaded(lookups);\n })\n };\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return {\n lookups,\n lookupCode: dependentLookupCode,\n getLookups: ({type, parents, displayNamePrefix, max, offset}) => {\n return getDependentLookups({type, parents, displayNamePrefix, max, offset}).then(({codeValues}) =>\n propOr({}, type, codeValues)\n );\n },\n resolveLookups: (type, codeValues) => {\n const lookupsList = codeValues.map((codeValue) => ({type, codeValue}));\n return resolveLookupsList(lookupsList).then((response) => {\n if (Array.isArray(response)) {\n const lookups = response.reduce((acc, lookupData) => ({...acc, ...lookupData[type]}), {});\n lookupsForTypeResolved({type, values: lookups});\n }\n });\n }\n };\n case DataTypes.TYPE_TYPEAHEAD:\n return {\n getSuggestions: typeaheadGetSuggestion\n };\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n return {\n format: getNumberFormat(dataTypeDefinition, attributePresentations, intl.getLocale())\n };\n case DataTypes.TYPE_FILE:\n return {tenant};\n case DataTypes.TYPE_SELECT:\n return {entries: options};\n default:\n return {};\n }\n};\n\nexport default useEditorContext;\n","import BooleanRadioEditor from './BooleanRadioEditor/BooleanRadioEditor';\nimport DateEditor from './DateEditor/DateEditor';\nimport LookupEditor from './LookupEditor/LookupEditor';\nimport NumberEditor from './NumberEditor/NumberEditor';\nimport React from 'react';\nimport TextEditor from './TextEditor/TextEditor';\nimport TimestampEditor from './TimestampEditor/TimestampEditor';\nimport TypeaheadEditor from './TypeaheadEditor/TypeaheadEditor';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport DependentLookupEditor from './DependentLookupEditor/DependentLookupEditor';\nimport FileTypeEditor from './FileTypeEditor/FileTypeEditor';\nimport SelectEditor from './SelectEditor/SelectEditor';\n\nexport default class EditorsFactory {\n static build(type, {fullWidth, TextFieldProps, color, booleanRadioEditorClassName, ...otherProps} = {}) {\n switch (type) {\n case DataTypes.TYPE_STRING:\n case DataTypes.TYPE_CIK_ID:\n case DataTypes.TYPE_ENTITY_ID:\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_EMAIL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type={'email'} />;\n case DataTypes.TYPE_TEXT:\n case DataTypes.TYPE_BLOB:\n return (\n <TextEditor\n fullWidth={fullWidth}\n maxRows={7}\n minRows={2}\n {...TextFieldProps}\n {...otherProps}\n multiline={true}\n />\n );\n case DataTypes.TYPE_PASSWORD:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type=\"password\" />;\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n case DataTypes.TYPE_COUNT:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} integer={true} />;\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_DOLLAR:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_BOOLEAN:\n case DataTypes.TYPE_BOOLEAN_RADIO:\n case DataTypes.TYPE_RDM_LOOKUPS_NOT_RESOLVED:\n return <BooleanRadioEditor color={color} {...otherProps} className={booleanRadioEditorClassName} />;\n case DataTypes.TYPE_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_LOCAL_DATE:\n return <DateEditor slotProps={{textField: TextFieldProps}} {...otherProps} />;\n case DataTypes.TYPE_TIMESTAMP:\n return <TimestampEditor slotProps={{textField: TextFieldProps}} {...otherProps} />;\n case DataTypes.TYPE_ENUM:\n case DataTypes.TYPE_SELECT:\n return <SelectEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_LOOKUP:\n return <LookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TYPEAHEAD:\n return <TypeaheadEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return <DependentLookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_FILE:\n return <FileTypeEditor {...otherProps} />;\n default:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n }\n }\n}\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n dropdownIndicator: {\n transition: 'transform .15s ease',\n cursor: 'pointer',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n underline: {\n '&:after': {\n transform: 'scaleX(1)'\n }\n },\n inputLabel: {\n color: theme.palette.primary.main\n },\n adornedEnd: {\n paddingRight: 4\n },\n uppercase: {\n '& > input': {\n textTransform: 'uppercase'\n }\n },\n inputRoot: {\n fontSize: '14px',\n letterSpacing: 0,\n lineHeight: '16px'\n }\n}));\n","import React, {forwardRef} from 'react';\nimport classnames from 'classnames';\nimport {isNil} from 'ramda';\nimport {DatePeriod} from '@reltio/mdm-sdk';\nimport TextField, {TextFieldProps} from '@mui/material/TextField';\nimport DropdownIndicatorWithIconButton from '../../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport withDateRangeSelector from '../../../HOCs/withDateRangeSelector/withDateRangeSelector';\n\nimport {useStyles} from './styles';\n\nexport type DateRangeEditorProps = {\n label?: string;\n values?: DatePeriod | string;\n editorLabel?: string;\n editorPlaceholder?: string;\n TextFieldProps?: TextFieldProps;\n classes?: {\n dropdownIndicator?: string;\n root?: string;\n };\n className?: string;\n isPickingDate?: boolean;\n isMenuOpen?: boolean;\n onMenuToggle?: () => void;\n};\n\nconst DateRangeEditor = forwardRef(\n (\n {\n label,\n editorLabel,\n editorPlaceholder,\n values,\n TextFieldProps,\n isPickingDate,\n isMenuOpen,\n onMenuToggle,\n ...otherProps\n }: DateRangeEditorProps,\n ref: React.Ref<HTMLDivElement>\n ) => {\n const styles = useStyles();\n const {classes} = otherProps;\n\n return (\n <TextField\n {...TextFieldProps}\n {...otherProps}\n ref={ref}\n label={label}\n value={TextFieldProps?.value || editorLabel}\n onClick={onMenuToggle}\n variant=\"filled\"\n size=\"small\"\n InputProps={{\n endAdornment: (\n <DropdownIndicatorWithIconButton\n selectProps={{\n classes: {\n dropdownIndicator: classnames(styles.dropdownIndicator, classes?.dropdownIndicator)\n },\n menuIsOpen: isMenuOpen\n }}\n innerProps={{}}\n />\n ),\n classes: {\n root: classnames(styles.inputRoot, {\n [styles.uppercase]: !isPickingDate && Array.isArray(values)\n }),\n underline: classnames({[styles.underline]: isMenuOpen}),\n adornedEnd: styles.adornedEnd\n },\n disableUnderline: isNil(values),\n readOnly: true,\n ...TextFieldProps?.InputProps\n }}\n InputLabelProps={{\n classes: {\n root: isMenuOpen ? styles.inputLabel : undefined\n },\n shrink: !isNil(label)\n }}\n placeholder={editorPlaceholder}\n />\n );\n }\n);\n\nDateRangeEditor.displayName = 'DateRangeEditor';\n\nexport default withDateRangeSelector(DateRangeEditor);\n","import React from 'react';\nimport MenuItem from '@mui/material/MenuItem';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport PropTypes from 'prop-types';\nimport {DropDownEntryType} from '../../../constants/prop-types';\nimport {pipe, prop, propEq} from 'ramda';\n\nconst findEntryByValue = (entries) => (value) => entries.find(propEq('value', value));\n\nconst DropDownEditor = ({entries, classes = {}, ...otherProps}) => {\n const {menuItem, ...otherClasses} = classes;\n return (\n <MultipliableSelect\n {...otherProps}\n classes={otherClasses}\n getValueLabel={pipe(findEntryByValue(entries), prop('label'))}\n >\n {entries.map(({value, label}, index) => (\n <MenuItem key={index} value={value} className={menuItem}>\n {label || value.toString()}\n </MenuItem>\n ))}\n </MultipliableSelect>\n );\n};\n\nDropDownEditor.propTypes = {\n classes: PropTypes.object,\n entries: PropTypes.arrayOf(DropDownEntryType).isRequired\n};\n\nexport default DropDownEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n button: {\n '&:hover': {\n backgroundColor: '#d5d5d5'\n }\n },\n fileUploaderInput: {\n display: 'none'\n },\n uploaded: {\n display: 'flex',\n alignItems: 'center'\n },\n label: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n cancelIcon: {\n height: '18px',\n width: '18px',\n color: 'rgba(0,0,0,0.38)',\n marginLeft: '3px',\n cursor: 'pointer'\n }\n});\n","import React, {Fragment, useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport Button from '@mui/material/Button';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport {getLabel, getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../ErrorPopup/ErrorPopup';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles} from './styles.js';\n\nconst MODES = {INIT: 1, UPLOADING: 2, UPLOADED: 3};\nconst PROGRESS_ICON_SIZE = 20;\n\nconst showFileUploadError = (error) => {\n console.warn(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('File upload error'),\n message: getRequestErrorMessage(error)\n });\n};\n\nconst UploadMode = ({supportedFileTypes = [], onUpload, onBeforeUpload}) => {\n const styles = useStyles();\n const fileUploader = useRef();\n const supportedFileTypesString = supportedFileTypes.join(',');\n const onSelectFileClick = () => {\n fileUploader.current.value = null;\n fileUploader.current.click();\n };\n const onUploadListener = (event) => {\n const uploadedFiles = event.target.files || event.dataTransfer.files || [];\n if (uploadedFiles.length > 0) {\n onBeforeUpload();\n onUpload(uploadedFiles[0]);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n return (\n <Fragment>\n <Button variant=\"contained\" onClick={onSelectFileClick} className={styles.button}>\n {i18n.text('Select File')}\n </Button>\n\n <input\n type=\"file\"\n className={styles.fileUploaderInput}\n onChange={onUploadListener}\n ref={fileUploader}\n name=\"uploadfile\"\n accept={supportedFileTypesString}\n />\n </Fragment>\n );\n};\n\nUploadMode.propTypes = {\n onUpload: PropTypes.func,\n onBeforeUpload: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string)\n};\n\nconst UploadFileButton = ({\n link,\n filename,\n onUpload,\n onError = showFileUploadError,\n onCancel,\n supportedFileTypes,\n isValidLink = true\n}) => {\n const [mode, setMode] = useState(MODES.INIT);\n const [name, setName] = useState('');\n\n const styles = useStyles();\n useEffect(() => {\n setName(filename);\n }, [filename]);\n\n useEffect(() => {\n setMode(link ? MODES.UPLOADED : MODES.INIT);\n }, [link]);\n const onErrorHandler = useCallback(\n (error) => {\n setMode(MODES.INIT);\n onError(error);\n },\n [onError]\n );\n\n const onUploadHandler = useCallback(\n (result) => {\n return onUpload(result)\n .then(() => {\n setMode(MODES.UPLOADED);\n setName(result.name);\n })\n .catch(onErrorHandler);\n },\n [onUpload, onErrorHandler]\n );\n\n const onBeforeUpload = useCallback(() => {\n setMode(MODES.UPLOADING);\n }, []);\n const switchToInitMode = useCallback(() => {\n setMode(MODES.INIT);\n onCancel();\n }, [onCancel]);\n switch (mode) {\n case MODES.INIT:\n return (\n <UploadMode\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onBeforeUpload={onBeforeUpload}\n />\n );\n case MODES.UPLOADED: {\n const label = getLabel(name);\n return (\n <div className={styles.uploaded}>\n <ExpandedValueTooltip value={label}>\n {isValidLink ? (\n <Link href={link} className={styles.label} underline=\"hover\">\n {label}\n </Link>\n ) : (\n <Typography variant=\"inherit\" className={styles.label}>\n {label}\n </Typography>\n )}\n </ExpandedValueTooltip>\n <CancelIcon\n onClick={switchToInitMode}\n onMouseDown={switchToInitMode}\n onTouchEnd={switchToInitMode}\n className={styles.cancelIcon}\n />\n </div>\n );\n }\n case MODES.UPLOADING:\n return <CircularProgress size={PROGRESS_ICON_SIZE} />;\n default:\n return null;\n }\n};\n\nUploadFileButton.propTypes = {\n link: PropTypes.string,\n filename: PropTypes.string,\n onUpload: PropTypes.func,\n onError: PropTypes.func,\n onCancel: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string),\n isValidLink: PropTypes.bool\n};\n\nexport default UploadFileButton;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n editor: {\n alignSelf: 'center'\n }\n});\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {uploadFileForSearch, FileValue} from '@reltio/mdm-sdk';\nimport UploadFileButton from '../../UploadFileButton/UploadFileButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: FileValue;\n onChange: (file: FileValue) => void;\n onError?: (error: string) => void;\n className?: string;\n};\n\nconst FileTypeEditor = ({value, onChange, onError, className}: Props) => {\n const {downloadLink, filename, expirationDate} = value || {};\n const isValidLink = expirationDate >= Date.now();\n const supportedFileTypes = ['.txt', '.csv'];\n const onUploadHandler = useCallback(\n (file) =>\n uploadFileForSearch(file).then(({path, downloadLink, expirationDate}) => {\n onChange({\n filename: file.name,\n downloadLink,\n link: path,\n expirationDate: new Date(expirationDate).getTime()\n });\n }),\n [onChange]\n );\n const onCancelHandler = useCallback(() => onChange(null), [onChange]);\n\n const styles = useStyles();\n return (\n <div className={classnames(styles.editor, className)}>\n <UploadFileButton\n isValidLink={isValidLink}\n link={downloadLink}\n filename={filename}\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onError={onError}\n onCancel={onCancelHandler}\n />\n </div>\n );\n};\n\nexport default FileTypeEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n 'range-editor': {\n width: '100%'\n },\n 'range-editor__control': {\n marginTop: '10px',\n paddingTop: '15px',\n '& > label + *': {\n marginTop: 0\n }\n },\n 'range-inline-editor': {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1\n },\n 'range-editor__dash': {\n padding: '0 5px'\n }\n});\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {nanoid} from 'nanoid';\nimport FormControl from '@mui/material/FormControl';\nimport InputLabel from '@mui/material/InputLabel';\nimport DataTypeValueEditor from '../DataTypeValueEditor/DataTypeValueEditor';\nimport {__, pipe, update} from 'ramda';\nimport {useStyles} from './styles';\nimport i18n from 'ui-i18n';\n\nconst RangeDataTypeValueEditor = ({value = new Array(2), onChange, orientation = 'vertical', ...otherProps}) => {\n const styles = useStyles();\n const rangeEditorFromId = useRef(nanoid());\n const rangeEditorToId = useRef(nanoid());\n\n const fromEditor = (\n <DataTypeValueEditor\n id={rangeEditorFromId.current}\n value={value[0]}\n onChange={pipe(update(0, __, value), onChange)}\n {...otherProps}\n />\n );\n\n const toEditor = (\n <DataTypeValueEditor\n id={rangeEditorToId.current}\n value={value[1]}\n onChange={pipe(update(1, __, value), onChange)}\n {...otherProps}\n />\n );\n\n if (orientation === 'horizontal') {\n return (\n <div className={styles['range-inline-editor']}>\n {fromEditor}\n <div className={styles['range-editor__dash']}>{'—'}</div>\n {toEditor}\n </div>\n );\n } else {\n return (\n <div className={styles['range-editor']}>\n <FormControl variant=\"standard\" fullWidth={true} className={styles['range-editor__control']}>\n <InputLabel htmlFor={rangeEditorFromId.current} shrink={true}>\n {i18n.text('From')}\n </InputLabel>\n {fromEditor}\n </FormControl>\n <FormControl variant=\"standard\" fullWidth={true} className={styles['range-editor__control']}>\n <InputLabel htmlFor={rangeEditorToId.current} shrink={true}>\n {i18n.text('To')}\n </InputLabel>\n {toEditor}\n </FormControl>\n </div>\n );\n }\n};\n\nRangeDataTypeValueEditor.propTypes = {\n value: PropTypes.arrayOf(PropTypes.any),\n onChange: PropTypes.func,\n fieldName: PropTypes.string,\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object\n};\n\nexport default RangeDataTypeValueEditor;\n","import DataTypeValueEditor from '../DataTypeValueEditor/DataTypeValueEditor';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from 'ui-i18n';\nimport {\n DataTypes,\n FilterType,\n isDateRangeFilterOption,\n isDateRangeValue,\n isMultiValueOption,\n isRangeFilterOption,\n mapFilterValue,\n utils,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {pipe} from 'ramda';\nimport RangeDataTypeValueEditor from '../RangeDataTypeValueEditor/RangeDataTypeValueEditor';\nimport DateRangeEditor from '../DateRangeEditor/DateRangeEditor';\n\nconst toEditorValue = (dataType) => (value) => {\n switch (dataType) {\n case DataTypes.TYPE_DATE:\n return isDateRangeValue(value) ? value : utils.dates.toLocalDate(value);\n case DataTypes.TYPE_LOCAL_DATE:\n case DataTypes.TYPE_TIMESTAMP:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n return isDateRangeValue(value) ? value : new Date(value);\n default:\n return value;\n }\n};\n\nconst fromEditorValue = (dataType) => (value) => {\n switch (dataType) {\n case DataTypes.TYPE_DATE:\n return isDateRangeValue(value) ? value : Date.UTC(value.getFullYear(), value.getMonth(), value.getDate());\n case DataTypes.TYPE_LOCAL_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_TIMESTAMP:\n return isDateRangeValue(value) ? value : value.valueOf();\n default:\n return value;\n }\n};\n\nconst FilterValueEditor = ({\n filter: {values = [], fieldName, filter},\n onChange,\n dataTypeDefinition,\n orientation,\n TextFieldProps,\n ...otherProps\n}) => {\n const {type: dataType} = dataTypeDefinition;\n\n const value = mapFilterValue(toEditorValue(dataType))(values[0]);\n const handleChange = pipe(mapFilterValue(fromEditorValue(dataType)), wrapInArray, onChange);\n\n if (isDateRangeFilterOption(filter)) {\n return (\n <DateRangeEditor\n {...otherProps}\n values={value}\n onChange={handleChange}\n dataTypeDefinition={dataTypeDefinition}\n label={i18n.text('Date Range')}\n />\n );\n } else if (isRangeFilterOption(filter)) {\n return (\n <RangeDataTypeValueEditor\n {...otherProps}\n value={value}\n onChange={handleChange}\n fieldName={fieldName}\n dataTypeDefinition={dataTypeDefinition}\n orientation={orientation}\n TextFieldProps={TextFieldProps}\n />\n );\n } else {\n const multipleProp = isMultiValueOption(filter) ? {multiple: true} : {};\n return (\n <DataTypeValueEditor\n {...otherProps}\n {...multipleProp}\n fieldName={fieldName}\n value={value}\n onChange={handleChange}\n dataTypeDefinition={dataTypeDefinition}\n TextFieldProps={TextFieldProps}\n />\n );\n }\n};\n\nFilterValueEditor.propTypes = {\n filter: FilterType,\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object,\n TextFieldProps: PropTypes.object\n};\n\nexport default FilterValueEditor;\n","import React from 'react';\nimport NumberFormat from 'react-number-format';\nimport TextEditor from '../TextEditor/TextEditor';\nimport {TextFieldProps} from '@mui/material/TextField';\nimport {\n applyPresentationStrategyToValue,\n formatNumber,\n revertPresentationStrategyForValue,\n NumberFormat as TNumberFormat\n} from '@reltio/mdm-sdk';\n\nconst getThousandsGroupStyle = (groupSize?: number) =>\n ({\n 2: 'lakh' as const,\n 3: 'thousand' as const,\n 4: 'wan' as const\n }[groupSize]);\n\ntype NumberFormatCustomProps = {\n onChange: (e: {target: {value: string}}) => void;\n value?: string | number;\n integer?: boolean;\n customInput?: React.ComponentType;\n format?: TNumberFormat;\n};\nconst NumberFormatCustom = React.forwardRef<HTMLInputElement, NumberFormatCustomProps>(\n ({onChange, integer, customInput, format, value, ...otherProps}: NumberFormatCustomProps, ref) => {\n const {strategy, groupSize, ...restFormat} = format || {};\n return (\n <NumberFormat\n {...otherProps}\n value={applyPresentationStrategyToValue(strategy, value)}\n thousandsGroupStyle={getThousandsGroupStyle(groupSize)}\n {...restFormat}\n getInputRef={ref}\n isNumericString={true}\n onValueChange={(values) => {\n onChange({\n target: {\n value: revertPresentationStrategyForValue(strategy, values.value)\n }\n });\n }}\n decimalScale={integer ? 0 : undefined}\n customInput={customInput}\n />\n );\n }\n);\n\ntype NumberEditorProps = {\n multiple?: boolean;\n integer?: boolean;\n format?: TNumberFormat;\n inputProps?: Record<string, unknown>;\n InputProps?: Record<string, unknown>;\n InputLabelProps?: Record<string, unknown>;\n value: string | number | string[] | number[] | undefined;\n onChange: (value: string | number | string[] | number[]) => void;\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n margin?: TextFieldProps['margin'];\n};\n\nconst NumberEditor = ({integer, format, inputProps, InputProps, ...otherProps}: NumberEditorProps) => (\n <TextEditor\n {...otherProps}\n inputProps={{\n integer,\n format,\n ...inputProps\n }}\n InputProps={{\n ...InputProps,\n inputComponent: NumberFormatCustom\n }}\n getValueLabel={formatNumber(format)}\n />\n);\n\nexport default NumberEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isNil, pipe, propEq, when} from 'ramda';\nimport TextField from '@mui/material/TextField';\nimport {getValue, noop} from '../../core';\nimport {useStyles} from './styles';\n\nconst SimpleInput = ({value, onChange = noop, multiline, InputProps = {}, isCrossedOut, ...otherProps}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n setCurrentValue(isNil(value) ? '' : value);\n }, [value]);\n\n const applyCurrentValueChange = () => {\n if (currentValue !== value) {\n onChange(currentValue);\n }\n };\n\n const onEnterPress = () => {\n if (!multiline) {\n applyCurrentValueChange();\n }\n };\n\n return (\n <TextField\n variant=\"standard\"\n {...otherProps}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(root, {[styles.isCrossedOut]: isCrossedOut}),\n ...InputClasses\n }\n }}\n multiline={multiline}\n value={currentValue}\n onKeyPress={when(propEq('key', 'Enter'), onEnterPress)}\n onBlur={applyCurrentValueChange}\n onChange={pipe(getValue, setCurrentValue)}\n />\n );\n};\n\nSimpleInput.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n multiline: PropTypes.bool,\n InputProps: PropTypes.object,\n className: PropTypes.string,\n isCrossedOut: PropTypes.bool\n};\n\nexport default SimpleInput;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport MultipleInput from '../../MultipleInput/MultipleInput';\nimport SimpleInput from '../../SimpleInput/SimpleInput';\n\nconst TextEditor = ({multiple = false, value, getValueLabel, multiline = false, ...otherProps}) => {\n return multiple ? (\n <MultipleInput {...otherProps} values={value} getValueLabel={getValueLabel} />\n ) : (\n <SimpleInput {...otherProps} value={value} multiline={multiline} />\n );\n};\n\nTextEditor.propTypes = {\n multiple: PropTypes.bool,\n multiline: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n getValueLabel: PropTypes.func\n};\n\nexport default TextEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n suggestionsPlaceholder: {\n padding: '8px 16px',\n textAlign: 'center'\n },\n suggestionsContainer: {\n width: '100%'\n },\n suggestionsContainerOpen: {\n maxHeight: '230px',\n overflowY: 'auto'\n },\n suggestionsList: {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n },\n suggestionsItem: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n suggestionsItemText: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: 'block'\n },\n inputRoot: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n autosizeInput: {\n width: 'auto',\n paddingTop: '10px',\n paddingBottom: '11px',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n rawInput: {\n height: '19px',\n lineHeight: '19px',\n paddingTop: '10px',\n paddingBottom: '11px'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n },\n multipleTextField: {\n flexWrap: 'wrap',\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n multipleTextFieldInput: {\n flex: '1 0 25px',\n flexWrap: 'wrap'\n },\n multipleTextFieldAdornedStart: {\n paddingLeft: '8px'\n },\n underline: {\n '&:before': {\n display: 'none'\n }\n }\n});\n","import React, {useCallback, useRef, useMemo, useState, useEffect} from 'react';\nimport {identity, isEmpty, nthArg, path, pipe, prop, remove, T, uniq} from 'ramda';\nimport classnames from 'classnames';\nimport {debounce, isEmptyValue} from '@reltio/mdm-sdk';\nimport Autosuggest from 'react-autosuggest';\nimport AutosizeInput from 'react-input-autosize';\nimport TextField, {TextFieldProps} from '@mui/material/TextField';\nimport MenuItem from '@mui/material/MenuItem';\nimport Paper from '@mui/material/Paper';\nimport {useDidUpdateEffect} from '../../../hooks';\nimport Popper from '../../Popper/Popper';\nimport {NoResults} from '../../../components/EmptySearchResult';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ValueChip from '../../ValueChip/ValueChip';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useStyles} from './styles';\n\nconst FETCH_DEBOUNCE_INTERVAL = 300;\nconst PAGE_SIZE = 50;\n\nenum ChangeMethod {\n Type = 'type',\n Escape = 'escape',\n Click = 'click',\n Enter = 'enter'\n}\n\ntype CommonProps = Omit<TextFieldProps, 'onChange' | 'value'> & {\n getSuggestions?: (value: string, pageSize: number, pageNumber?: number) => Promise<string[]>;\n max?: number;\n multiple?: boolean;\n fullWidth?: boolean;\n isCrossedOut?: boolean;\n};\n\ntype MultipleProps = CommonProps & {\n value?: string[];\n onChange: (values: string[]) => void;\n multiple: true;\n};\n\ntype SingleProps = CommonProps & {\n value?: string;\n onChange: (value: string) => void;\n multiple?: false;\n};\n\nexport type Props = MultipleProps | SingleProps;\n\nconst TypeaheadEditor = ({\n value,\n max = PAGE_SIZE,\n getSuggestions,\n onChange,\n multiple,\n fullWidth,\n InputProps = {},\n isCrossedOut = false,\n ...inputProps\n}: Props) => {\n const styles = useStyles();\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [suggestions, setSuggestions] = useState<string[]>([]);\n const [isPlaceholderVisible, setPlaceholderVisibility] = useState(false);\n const [pageNumber, setPageNumber] = useState(1);\n const [nextPageIsLoading, setNextPageIsLoading] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [highlightedItem, setHighlightedItem] = useState<string>(null);\n\n const pageSizeForRequest = max + 1;\n const displayedSuggestions = useMemo(() => suggestions.slice(0, pageNumber * max), [suggestions, pageNumber, max]);\n const showMoreButton = suggestions.length > displayedSuggestions.length;\n\n const isFocused = () => inputRef.current?.querySelector('input') === document.activeElement;\n\n const fetchSuggestions = useCallback(\n async ({value}: {value: string}) => {\n const response = await getSuggestions(value.trim(), pageSizeForRequest);\n setSuggestions(response);\n setPlaceholderVisibility(isEmpty(response) && isFocused());\n },\n [getSuggestions, pageSizeForRequest]\n );\n\n const debouncedFetchSuggestions = useCallback(debounce(fetchSuggestions, FETCH_DEBOUNCE_INTERVAL), [\n getSuggestions\n ]);\n\n const handleLoadMoreSuggestions = useCallback(async () => {\n setNextPageIsLoading(true);\n try {\n const response = await getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1);\n setSuggestions((prevSuggestions) => [...prevSuggestions, ...response]);\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } finally {\n setNextPageIsLoading(false);\n }\n }, [getSuggestions, inputValue, pageNumber, pageSizeForRequest]);\n\n const handleSuggestionsFetchRequested = useCallback(\n (value: {reason: string; value: string}) => {\n if (value.reason === 'input-changed') {\n debouncedFetchSuggestions(value);\n } else {\n fetchSuggestions(value);\n }\n },\n [debouncedFetchSuggestions, fetchSuggestions]\n );\n\n const handleSuggestionsClearRequested = useCallback(() => {\n setSuggestions([]);\n setPlaceholderVisibility(false);\n setPageNumber(1);\n }, []);\n\n const handleSuggestionHighlighted = useCallback(({suggestion}: {suggestion: string}) => {\n setHighlightedItem(suggestion);\n }, []);\n\n const handleInputValueChange = useCallback(\n ({newValue, method}: {newValue: string; method: ChangeMethod}) => {\n switch (method) {\n case ChangeMethod.Type:\n case ChangeMethod.Escape:\n setInputValue(newValue);\n break;\n case ChangeMethod.Click:\n case ChangeMethod.Enter: {\n if (multiple === true) {\n if (newValue) onChange(uniq([...(value || []), newValue]));\n setInputValue('');\n } else {\n setInputValue(newValue);\n }\n }\n }\n },\n [multiple, onChange, value]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.code !== 'Enter' || highlightedItem) return;\n if (multiple === true) {\n handleInputValueChange({method: ChangeMethod.Enter, newValue: inputValue});\n } else {\n onChange(inputValue);\n }\n },\n [handleInputValueChange, onChange, highlightedItem, inputValue, multiple]\n );\n\n const handleBlur = useCallback(() => {\n if (multiple !== true) onChange(inputValue);\n }, [inputValue, onChange, multiple]);\n\n useEffect(() => {\n if (multiple !== true) setInputValue(value ?? '');\n }, [value, multiple]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [inputValue]);\n\n return (\n <Autosuggest\n suggestions={displayedSuggestions}\n shouldRenderSuggestions={T}\n getSuggestionValue={identity}\n onSuggestionsFetchRequested={handleSuggestionsFetchRequested}\n onSuggestionsClearRequested={handleSuggestionsClearRequested}\n onSuggestionHighlighted={handleSuggestionHighlighted}\n theme={{\n container: fullWidth ? styles.suggestionsContainer : '',\n suggestionsList: styles.suggestionsList,\n suggestionsContainerOpen: styles.suggestionsContainerOpen\n }}\n inputProps={{\n value: inputValue,\n onChange: pipe(nthArg(1), handleInputValueChange),\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n fullWidth,\n variant: 'standard',\n autoComplete: 'nope',\n ...inputProps\n }}\n renderInputComponent={({ref, ...otherProps}) => {\n const commonClasses = {\n underline: classnames({[styles.underline]: isEmptyValue(value)}),\n input: classnames(styles['rawInput'], path(['classes', 'input'], InputProps))\n };\n\n return multiple === true ? (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n startAdornment: value?.map((item, index) => (\n <ValueChip key={item} label={item} onDelete={() => onChange(remove(index, 1, value))} />\n )),\n inputComponent: AutosizeInput,\n classes: {\n root: classnames(styles.multipleTextFieldInput, path(['classes', 'root'], InputProps)),\n ...commonClasses,\n input: classnames(styles.autosizeInput, commonClasses.input),\n adornedStart: styles.multipleTextFieldAdornedStart\n }\n }}\n classes={{root: styles.multipleTextField}}\n />\n ) : (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(styles.inputRoot, path(['classes', 'root'], InputProps), {\n [styles.isCrossedOut]: isCrossedOut\n }),\n ...commonClasses\n }\n }}\n />\n );\n }}\n renderSuggestionsContainer={({children, containerProps: {ref, ...restContainerProps}}) => (\n <Popper anchorEl={inputRef.current} open={Boolean(children) || isPlaceholderVisible}>\n <Paper\n {...restContainerProps}\n ref={ref}\n square={true}\n style={{width: prop('clientWidth', inputRef.current)}}\n >\n {children || <NoResults className={styles.suggestionsPlaceholder} />}\n {showMoreButton && !isPlaceholderVisible && (\n <LoadMoreButton\n onClick={handleLoadMoreSuggestions}\n onMouseDown={(event) => event.preventDefault()}\n loading={nextPageIsLoading}\n />\n )}\n </Paper>\n </Popper>\n )}\n renderSuggestion={(suggestion, {isHighlighted}) => (\n <MenuItem className={styles.suggestionsItem} selected={isHighlighted} component=\"div\">\n <ExpandedValueTooltip value={suggestion}>\n <div className={styles.suggestionsItemText}>{suggestion}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n )}\n />\n );\n};\n\nexport default TypeaheadEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport ValueChip from '../../../ValueChip/ValueChip';\nimport CancelIcon from '@mui/icons-material/Cancel';\n\nconst MultiValueChip = (props) => {\n const {children, data, removeProps} = props;\n\n return (\n <ValueChip\n tabIndex={-1}\n label={children}\n count={prop('formattedNumber', data)}\n onDelete={removeProps.onClick}\n deleteIcon={<CancelIcon {...props.removeProps} />}\n />\n );\n};\n\nMultiValueChip.propTypes = {\n children: PropTypes.node,\n data: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n number: PropTypes.number\n }).isRequired,\n removeProps: PropTypes.shape({\n onClick: PropTypes.func.isRequired,\n onMouseDown: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired\n }).isRequired\n};\n\nexport default MultiValueChip;\n","import PropTypes from 'prop-types';\nimport {AttributeTypeType, FilterValueType, SortOrderType} from '@reltio/mdm-sdk';\n\nconst SelectValueType = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]);\n\nconst DropDownEntryType = PropTypes.shape({\n value: SelectValueType.isRequired,\n label: PropTypes.string\n});\n\nconst DropDownGroupEntryType = PropTypes.shape({\n label: PropTypes.string.isRequired,\n values: PropTypes.arrayOf(PropTypes.object).isRequired\n});\n\nconst ColumnDataType = PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n filterable: PropTypes.bool,\n headCellRenderer: PropTypes.func,\n rowCellValueRenderer: PropTypes.func,\n nestedPath: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst SortingType = PropTypes.shape({\n field: PropTypes.string,\n order: SortOrderType\n});\n\nconst ColumnFilterType = PropTypes.shape({\n value: PropTypes.oneOfType([FilterValueType, PropTypes.arrayOf(FilterValueType)]),\n filter: PropTypes.string\n});\n\nconst PlainColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n);\n\nconst GroupedColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n columns: PlainColumnsDataType\n })\n);\n\nconst ColumnsDataType = PropTypes.oneOfType([PlainColumnsDataType, GroupedColumnsDataType]);\n\nconst QueryBuilderAttributeDataType = PropTypes.shape({\n title: PropTypes.string,\n pathToTitle: PropTypes.arrayOf(PropTypes.string),\n fieldName: PropTypes.string,\n entityTypeUri: PropTypes.string,\n attrType: AttributeTypeType,\n uri: PropTypes.string,\n groupName: PropTypes.string\n});\n\nconst QueryBuilderAttributeType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n values: PropTypes.array,\n data: QueryBuilderAttributeDataType,\n filter: PropTypes.string,\n operator: PropTypes.string\n});\n\nexport {\n SelectValueType,\n DropDownEntryType,\n DropDownGroupEntryType,\n ColumnDataType,\n SortingType,\n ColumnFilterType,\n ColumnsDataType,\n GroupedColumnsDataType,\n QueryBuilderAttributeDataType,\n QueryBuilderAttributeType\n};\n","import React from 'react';\n\ntype DependentLookupAutopopulationContextValue = {\n id: string;\n isTouched: boolean;\n onTouch: (id: string) => void;\n};\n\nexport const DependentLookupAutopopulationContext =\n React.createContext<DependentLookupAutopopulationContextValue>(null);\n\nDependentLookupAutopopulationContext.displayName = 'DependentLookupAutopopulationContext';\n","import React from 'react';\n\nexport const SearchValueContext = React.createContext<string>('');\n\nSearchValueContext.displayName = 'SearchValueContext';\n"],"names":["withContext","Context","contextSelector","Component","PureComponent","memo","displayName","name","props","Consumer","contextState","convertValuesToDate","pipe","getDateRangeByValue","defaultTo","map","value","Date","useStyles","makeStyles","theme","paper","minWidth","menuItem","minHeight","menuText","color","palette","text","primary","fontSize","lineHeight","letterSpacing","dateFormat","moment","longDateFormat","WithDateRangeSelector","values","options","getValuesDateRange","onChange","dataTypeDefinition","type","DataTypes","DateRangePickerProps","MenuProps","componentProps","rangeOptions","useMemo","Object","AllDateRangeValues","option","label","getRangeOptionLabel","inputRef","useRef","isPickingDate","setIsPickingDate","useState","open","setOpen","styles","onItemClick","handleToggle","useCallback","onCancel","isTimestamp","enhancePlaceHolder","timeFormat","replace","identity","format","getLocaleFormat","editorPlaceholder","toUpperCase","editorLabel","placeholder","cond","isEmptyValue","always","is","Array","dateTimeMask","isNil","formatDataTypeValue","formatValue","join","String","find","propEq","getEditorLabel","anchorOrigin","vertical","horizontal","transformOrigin","ref","onMenuToggle","isMenuOpen","Popover","anchorEl","current","onClose","elevation","DateRangePicker","onApply","Menu","variant","autoFocus","classes","MenuListProps","autoFocusItem","style","width","prop","MenuItem","key","onClick","className","Typography","root","BasicTable","forwardRef","columnsData","rowsData","context","sorting","onSort","renderRowCell","defaultRenderRowCell","getRowCellHeight","defaultGetRowCellHeight","filters","onFilter","headRowHeight","maxRowValuesCount","Infinity","autosizing","maxHeight","getIdFromRowValue","otherProps","tableHeadData","getTableHeadData","tableRowsData","collapseContextValue","useCollapsibleTableRows","toggleRowCollapse","getIsRowCollapsed","onStartDragRow","setTimeout","forEach","_","index","length","defaultRowHeight","fixHead","headData","sortField","sortOrder","COLUMN_FILTER_HEIGHT","BasicTableType","PropTypes","ColumnDataType","isRequired","SortingType","ColumnFilterType","defaultColumnWidth","defaultColumnMinWidth","highlightRow","cellBorder","dragColumnBody","dragColumnHead","draggableHeadCell","cellWrapper","cellContentWrapper","hoveredRowRightContentContainer","hoveredRowRightContentWrapper","propTypes","HeadCellRenderer","HeadCellRendererWithFilterAtBottom","columnFilter","display","flexDirection","height","flex","defaultWrapper","whiteSpace","overflow","textOverflow","padding","blobWrapper","position","overflowY","overflowX","boxSizing","stopPropagation","event","BlobRenderer","onScroll","DefaultCellValueRenderer","columnData","dataTypeValue","DataTypeValue","ExpandedValueTooltip","RowCollapseContext","React","TableContext","maxWidth","justifyContent","marginRight","backgroundColor","filterOption","filterValue","onDelete","attributePresentations","useMdmAttributePresentations","dateMask","useMdmDateMask","useMdmDateTimeMask","canFilterAcceptValues","checkIfOptionHasValues","optionLabel","convertedValue","mapFilterValue","filterLabel","getFilterValueLabel","Chip","dropDownEditor","marginTop","marginBottom","selectorRoot","paddingTop","paddingBottom","FilterEditor","filterOptions","valueEditorProps","selectStyles","useSelectStyles","firstOption","filter","DropDownEditor","TextFieldProps","commonTextFieldProps","classnames","entries","assoc","__","icon","FilterValueEditor","FilterType","ColumnFilter","columnId","filterOptionsData","setAnchorEl","setColumnFilter","containerRef","mdmFilter","columnFilterToMdmFilter","id","applyFilterChange","newFilter","clearFilter","applyChangesAndClose","validateFilter","getFilterOptionData","getFilterDataTypeDefinition","getDataTypeDefinitionForFilterValue","Maybe","pluck","orSome","getFilterOptionsForDataTypeDefinition","getFilterOptionLabel","IconButton","dropDownButton","currentTarget","disableFocusRipple","size","ArrowDropDown","PaperProps","getBoundingClientRect","filterMenu","TransitionProps","onEnter","mdmFilterToColumnFilter","onKeyPress","preventDefault","fullWidth","filterable","HeadCellRendererWithFilter","headCellData","useColumnFilterStyles","TOTAL_ROW_SPAN_KEY","NESTED_KEY_DELIMITER","getSiblingSubRowsKeyBySubRowKey","split","dropLast","getParentRowKeyBySiblingsSubRowsKey","unless","getParentRowKeyBySubRowKey","countParentSpanByAllSubRows","rowSpanData","siblingSubRowsKey","pickBy","_val","sum","calcParentRowSpan","subRowKey","parentKey","currentParentSpan","propOr","actualParentSpan","nextRowSpanData","validateParentRowSpan","subRowsKeys","spanDiff","lowestSubRowKey","lowestSubRowSpan","calcRowSpansForNestedKeys","reduce","nestedKey","omit","keys","sortBy","groupBy","toPairs","chainWithIndex","addIndex","chain","flattenNestedColumnValues","indexPath","head","isArray","getNestedKeyForNestedColumnCell","curry","columnNestedPath","cell","zip","unnest","applyCellRenderer","rowIndex","rowValue","cells","columnIndex","findIndex","rowCellValueRenderer","CellValueRenderer","cellIndex","mapObjIndexed","calcHeights","rowData","calcHeightForColumnCells","getNestedKeysFromRowCells","reject","uniq","calcRowSpansData","calcRowSpans","rowSpansData","isEmpty","rowSpan","addRowSpansToColumnCells","buildRowValues","acc","nestedPath","columnValues","nestedValues","calcNestedKeys","parseNestedColumnValues","wrapInArrayIfNeeded","applyValuesCountConstraint","maxValuesCount","some","evolve","slice","defaultGetIdFromRowValue","getTableRowsData","rowValues","getRowMaxValuesCount","val","data","description","sortable","resizable","draggable","autoResize","initialWidth","headCellRenderer","withFilterAtBottom","DefaultHeadCellRenderer","renderer","withFilter","calcMaxValuesCount","maxCount","cellValues","maxSubNestedValuesCount","add","max","maxPlainValuesCount","Math","getMaxRowValuesCount","valuesCount","expandedIndexes","setExpandedIndexes","includes","equals","concat","remove","getIsRowCollapsible","prevRowsData","usePrevious","useDidUpdateEffect","prevRowValue","rawValue","fieldName","buildColumnsFilter","buildFilterQueryString","alignItems","marginLeft","borderRadius","rich","localeDateFormat","localeTimeFormat","formattedValue","isAttributeValueLink","target","href","addProtocolToLink","underline","NoResults","message","i18n","highlight","fontWeight","multiTerm","REG_SPACES","RegExp","getMultiTerms","trim","toLower","sort","ascend","reverse","highlightedValues","regValues","item","parts","part","i","toLocaleLowerCase","inputRoot","flexWrap","paddingLeft","autosizeInput","background","border","outline","isCrossedOut","textDecoration","AutosizeInputWrapper","CustomInputComponent","other","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","MultipleInput","InputProps","inputProps","noop","getValueLabel","InputClasses","inputValue","setInputValue","removeValueAt","hasValues","appendInputValueIfNotEmpty","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","ValueChip","inputComponent","input","when","onKeyDown","onFocus","onBlur","multiSelect","chips","MultipliableSelect","multiple","children","getValuePlaceholder","select","SelectProps","renderValue","selected","onMouseDown","SelectValueType","highlightedText","keywordValue","useContext","SearchValueContext","Highlighter","useChipStyles","margin","deleteIcon","container","count","secondary","classesProp","otherProp","mergeClasses","loadMoreContainer","moreButton","buttonLabel","loadingSpinner","alignSelf","loading","CircularProgress","Button","selectProps","menuListFooter","checkIcon","transform","OptionWithCheckIcon","isSelected","Option","Check","BooleanEditor","Checkbox","checked","getChecked","editors","checkboxPrimary","divider","content","top","left","right","disabled","FormControlLabel","control","not","isGroupEntry","has","flattenEntry","depth","entry","isGroup","flattenGroupedEntries","findEntryByValue","_value","emptyLabel","GroupedDropDownEditor","flattenedEntries","selectedValues","disableAutoFocusItem","toString","DropDownEntryType","DropDownGroupEntryType","splitOnce","separator","string","first","getLookupByUri","useWith","path","byLabel","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","catch","getLookupPath","uri","parent","buildEntry","lookup","code","getLookupLabel","buildEntries","hierarchy","assocPath","buildLookupEntries","commonProps","LookupValueType","SimpleLookupType","getOptionLabel","obj","buildLookupOptions","lookupA","lookupB","labelALower","toLowerCase","labelBLower","utils","dropdownIndicator","cursor","clearIndicator","isUnresolvedLookup","lookupValue","isResolvedLookupCode","resolvedValues","hasPath","SelectComponents","IndicatorSeparator","EmptyStub","LoadingIndicator","DropdownIndicator","MenuWithPopper","MenuList","MultiValue","MultiValueChip","Input","inputClassName","isHidden","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","selectRef","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","defaultOptions","handleChange","markAsTouched","resetOptions","debouncedLoadOptions","restoreSelectedOption","loadOptions","Promise","resolve","displayNamePrefix","offset","then","buildOptions","finally","loadMoreOptions","page","debounce","callback","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","displayedOptions","showMoreButton","isTouched","onTouch","DependentLookupAutopopulationContext","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","controlShouldRenderValue","undefined","T","onInputChange","newValue","action","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","hiddenLabel","SelectEditor","DataTypeValueEditor","inputStyles","useInputStyles","editorContext","lookupsLoaded","useMdmAction","lookupsForTypeResolved","tenant","useMdmTenant","useMdmLookups","globalSearchRequestOptions","useMdmGlobalSearchRequestOptions","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","dependentLookupCode","getDependentLookups","lookupsList","codeValue","resolveLookupsList","response","lookupData","getSuggestions","getNumberFormat","intl","useEditorContext","mergeDeepLeft","marginDense","disableUnderline","booleanRadioEditorClassName","TextEditor","maxRows","minRows","multiline","NumberEditor","integer","DateEditor","slotProps","textField","TimestampEditor","TypeaheadEditor","FileTypeEditor","build","transition","inputLabel","main","adornedEnd","paddingRight","uppercase","textTransform","DateRangeEditor","endAdornment","DropdownIndicatorWithIconButton","menuIsOpen","innerProps","readOnly","InputLabelProps","shrink","withDateRangeSelector","otherClasses","button","fileUploaderInput","uploaded","cancelIcon","showFileUploadError","error","console","warn","ErrorPopup","getRequestErrorMessage","UploadMode","supportedFileTypes","onUpload","onBeforeUpload","fileUploader","supportedFileTypesString","Fragment","click","uploadedFiles","files","dataTransfer","accept","UploadFileButton","link","filename","onError","isValidLink","mode","setMode","setName","onErrorHandler","onUploadHandler","result","switchToInitMode","getLabel","Link","Cancel","onTouchEnd","editor","downloadLink","expirationDate","now","file","uploadFileForSearch","getTime","onCancelHandler","flexGrow","RangeDataTypeValueEditor","orientation","rangeEditorFromId","nanoid","rangeEditorToId","fromEditor","update","toEditor","FormControl","InputLabel","htmlFor","dataType","isDateRangeValue","toEditorValue","UTC","getFullYear","getMonth","getDate","valueOf","fromEditorValue","wrapInArray","isDateRangeFilterOption","isRangeFilterOption","multipleProp","isMultiValueOption","getThousandsGroupStyle","groupSize","NumberFormatCustom","strategy","restFormat","applyPresentationStrategyToValue","thousandsGroupStyle","getInputRef","isNumericString","onValueChange","revertPresentationStrategyForValue","decimalScale","formatNumber","SimpleInput","currentValue","setCurrentValue","applyCurrentValueChange","suggestionsPlaceholder","textAlign","suggestionsContainer","suggestionsContainerOpen","suggestionsList","listStyleType","suggestionsItem","suggestionsItemText","rawInput","multipleTextField","multipleTextFieldInput","multipleTextFieldAdornedStart","PAGE_SIZE","ChangeMethod","suggestions","setSuggestions","isPlaceholderVisible","setPlaceholderVisibility","nextPageIsLoading","setNextPageIsLoading","highlightedItem","setHighlightedItem","pageSizeForRequest","displayedSuggestions","fetchSuggestions","async","querySelector","debouncedFetchSuggestions","handleLoadMoreSuggestions","prevSuggestions","prevPageNumber","handleSuggestionsFetchRequested","reason","handleSuggestionsClearRequested","handleSuggestionHighlighted","suggestion","handleInputValueChange","method","Type","Escape","Click","Enter","handleKeyDown","handleBlur","shouldRenderSuggestions","getSuggestionValue","onSuggestionsFetchRequested","onSuggestionsClearRequested","onSuggestionHighlighted","nthArg","autoComplete","renderInputComponent","commonClasses","adornedStart","renderSuggestionsContainer","containerProps","restContainerProps","Popper","Boolean","Paper","square","renderSuggestion","isHighlighted","component","removeProps","tabIndex","number","field","order","SortOrderType","FilterValueType","PlainColumnsDataType","GroupedColumnsDataType","columns","ColumnsDataType","QueryBuilderAttributeDataType","pathToTitle","entityTypeUri","attrType","AttributeTypeType","groupName","QueryBuilderAttributeType","operator"],"sourceRoot":""}
1
+ {"version":3,"file":"1840.js","mappings":"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","sources":["webpack://@reltio/remotes/../components/src/HOCs/withContext/withContext.tsx","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/helpers.ts","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/styles.ts","webpack://@reltio/remotes/../components/src/HOCs/withDateRangeSelector/withDateRangeSelector.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/BasicTable.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withFilterAtBottom.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/BlobRenderer.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/cell-value-renderers/DefaultCellValueRenderer.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/contexts/RowCollapseContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/contexts/TableContext.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/FilterChip/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/FilterChip/FilterChip.tsx","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/FilterEditor.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/ColumnFilter.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/HOCs/withFilter.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/nestedHelpers.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/dataHelpers.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/defaultGetRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/helpers/defaultRenderRowCell.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useCollapsibleTableRows.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/helpers.ts","webpack://@reltio/remotes/../components/src/components/BasicTableView/ColumnFilter/styles.js","webpack://@reltio/remotes/../components/src/components/DataTypeValue/DataTypeValue.js","webpack://@reltio/remotes/../components/src/components/EmptySearchResult/NoResults.tsx","webpack://@reltio/remotes/../components/src/components/Highlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/Highlighter/Highlighter.tsx","webpack://@reltio/remotes/../components/src/components/MultipleInput/styles.js","webpack://@reltio/remotes/../components/src/components/MultipleInput/MultipleInput.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/styles.js","webpack://@reltio/remotes/../components/src/components/MultipliableSelect/MultipliableSelect.js","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/styles.ts","webpack://@reltio/remotes/../components/src/components/SearchHighlighter/SearchHighlighter.tsx","webpack://@reltio/remotes/../components/src/components/ValueChip/styles.ts","webpack://@reltio/remotes/../components/src/components/ValueChip/ValueChip.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/styles.js","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/LoadMoreButton.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/MenuList.tsx","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/styles.ts","webpack://@reltio/remotes/../components/src/components/commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon.tsx","webpack://@reltio/remotes/../components/src/components/editors/BooleanEditor/BooleanEditor.js","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/BooleanRadioEditor/BooleanRadioEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/GroupedDropDownEditor/GroupedDropDownEditor.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/entriesHelpers.js","webpack://@reltio/remotes/../components/src/components/editors/LookupEditor/LookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/helpers.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useLookupsResolver.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/DependentLookupEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useSavingFocus.ts","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useDefaultOptions.js","webpack://@reltio/remotes/../components/src/components/editors/DependentLookupEditor/useAutopopulation.ts","webpack://@reltio/remotes/../components/src/components/editors/SelectEditor/SelectEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/DataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/DataTypeValueEditor/useEditorContext.js","webpack://@reltio/remotes/../components/src/components/editors/EditorsFactory.js","webpack://@reltio/remotes/../components/src/components/editors/DateRangeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/DateRangeEditor/DateRangeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/DropDownEditor/DropDownEditor.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/styles.js","webpack://@reltio/remotes/../components/src/components/UploadFileButton/UploadFileButton.js","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/FileTypeEditor/FileTypeEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/RangeDataTypeValueEditor/styles.js","webpack://@reltio/remotes/../components/src/components/editors/RangeDataTypeValueEditor/RangeDataTypeValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/FilterEditor/FilterValueEditor.js","webpack://@reltio/remotes/../components/src/components/editors/NumberEditor/NumberEditor.tsx","webpack://@reltio/remotes/../components/src/components/SimpleInput/styles.ts","webpack://@reltio/remotes/../components/src/components/SimpleInput/SimpleInput.js","webpack://@reltio/remotes/../components/src/components/editors/TextEditor/TextEditor.js","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/styles.ts","webpack://@reltio/remotes/../components/src/components/editors/TypeaheadEditor/TypeaheadEditor.tsx","webpack://@reltio/remotes/../components/src/components/editors/commonComponents/MultiValueChip/MultiValueChip.js","webpack://@reltio/remotes/../components/src/constants/prop-types.js","webpack://@reltio/remotes/../components/src/contexts/DependentLookupAutopopulationContext/index.ts","webpack://@reltio/remotes/../components/src/contexts/SearchValueContext/index.ts"],"sourcesContent":["import React, {memo, Context as ContextType, ComponentType} from 'react';\n\ntype AnyObject = Record<string, unknown>;\n\nexport const withContext = <C extends any, P extends AnyObject, SP extends AnyObject>(\n Context: ContextType<C>,\n contextSelector: (state: C, props?: P) => SP,\n Component: ComponentType<P>\n): ComponentType<P> => {\n if (Context && contextSelector) {\n const PureComponent = memo(Component);\n PureComponent.displayName = Component.name;\n const PureComponentWithContext = (props) => {\n return (\n <Context.Consumer>\n {(contextState) => <PureComponent {...props} {...contextSelector(contextState, props)} />}\n </Context.Consumer>\n );\n };\n return PureComponentWithContext;\n } else {\n return Component;\n }\n};\n","import {always, cond, defaultTo, is, isNil, map, pipe, propEq} from 'ramda';\nimport {DataTypeDefinition, DatePeriod, formatDataTypeValue, getDateRangeByValue, isEmptyValue} from '@reltio/mdm-sdk';\n\nexport type Option = {\n value: string;\n label: string;\n};\n\nconst formatValue = (value: Date, dataTypeDefinition: DataTypeDefinition, dateTimeMask: string) =>\n isNil(value) ? `${dateTimeMask}` : `${formatDataTypeValue({dataTypeDefinition, dateTimeMask}, value)}`;\n\nconst getEditorLabel = (\n placeholder: string,\n dataTypeDefinition: DataTypeDefinition,\n value: DatePeriod | string,\n options: Option[]\n) =>\n cond([\n [isEmptyValue, always('')],\n [\n is(Array),\n (value) => value.map((value) => formatValue(value, dataTypeDefinition, placeholder)).join(' \\u2014 ')\n ],\n [is(String), (value) => options.find(propEq('value', value))?.label]\n ])(value);\n\nconst convertValuesToDate = pipe(\n getDateRangeByValue,\n defaultTo([]),\n map((value) => value && new Date(value))\n);\n\nexport {getEditorLabel, convertValuesToDate};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n paper: {\n minWidth: '112px'\n },\n menuItem: {\n minHeight: '32px'\n },\n menuText: {\n color: theme.palette.text.primary,\n fontSize: '13px',\n lineHeight: '15px',\n letterSpacing: 0\n }\n}));\n","import React, {ComponentType, useMemo, useRef, useState, useCallback} from 'react';\nimport moment from 'moment';\nimport {identity, prop} from 'ramda';\nimport {\n DataTypeDefinition,\n DataTypes,\n AllDateRangeValues,\n getRangeOptionLabel,\n getLocaleFormat,\n DatePeriod\n} from '@reltio/mdm-sdk';\nimport MenuItem from '@mui/material/MenuItem';\nimport Popover from '@mui/material/Popover';\nimport Typography from '@mui/material/Typography';\nimport Menu, {MenuProps as MuiMaterialProps} from '@mui/material/Menu';\nimport DateRangePicker from '../../components/DateRangePicker/DateRangePicker';\nimport {convertValuesToDate, getEditorLabel, Option} from './helpers';\n\nimport {useStyles} from './styles';\n\ntype DateRangeMenuProps = {\n values?: DatePeriod | string;\n options?: Option[];\n dataTypeDefinition?: DataTypeDefinition;\n getValuesDateRange?: (value: DatePeriod | string) => [Date, Date];\n onChange?: (value: DatePeriod | string) => void;\n DateRangePickerProps?: Partial<React.ComponentProps<typeof DateRangePicker>>;\n MenuProps?: Partial<MuiMaterialProps>;\n};\n\nconst dateFormat = moment.localeData().longDateFormat('L');\n\nconst withDateRangeSelector = <T extends DateRangeMenuProps>(Component: ComponentType<T>) => {\n const WithDateRangeSelector = (props: T & DateRangeMenuProps) => {\n const {\n values,\n options,\n getValuesDateRange = convertValuesToDate,\n onChange,\n dataTypeDefinition = {type: DataTypes.TYPE_DATE},\n DateRangePickerProps,\n MenuProps,\n ...componentProps\n } = props;\n const rangeOptions = useMemo(\n () =>\n options ||\n Object.values(AllDateRangeValues).map((option) => ({\n value: option,\n label: getRangeOptionLabel(option)\n })),\n [options]\n );\n\n const inputRef = useRef(null);\n const [isPickingDate, setIsPickingDate] = useState(false);\n const [open, setOpen] = useState(false);\n const styles = useStyles();\n\n const onItemClick = (value) => {\n if (value === AllDateRangeValues.PICK_DATE) {\n setIsPickingDate(true);\n } else {\n setOpen(false);\n setIsPickingDate(false);\n onChange(value);\n }\n };\n\n const handleToggle = useCallback(() => setOpen((open) => !open), []);\n\n const onCancel = () => {\n setIsPickingDate(false);\n setOpen(false);\n };\n\n const isTimestamp = dataTypeDefinition.type === DataTypes.TYPE_TIMESTAMP;\n const enhancePlaceHolder = isTimestamp ? (timeFormat) => timeFormat.replace(/^[hH]:/, 'HH:') : identity;\n const format = isTimestamp ? getLocaleFormat() : dateFormat;\n const editorPlaceholder = `${enhancePlaceHolder(format)} \\u2014 ${enhancePlaceHolder(format)}`.toUpperCase();\n\n const editorLabel = isPickingDate\n ? getRangeOptionLabel(AllDateRangeValues.PICK_DATE)\n : getEditorLabel(format, dataTypeDefinition, values, rangeOptions);\n\n const {\n anchorOrigin = {vertical: 'bottom', horizontal: 'left'},\n transformOrigin = {vertical: 'top', horizontal: 'left'}\n } = MenuProps || {};\n\n return (\n <>\n <Component\n {...(componentProps as T)}\n ref={inputRef}\n editorLabel={editorLabel}\n editorPlaceholder={editorPlaceholder}\n onMenuToggle={handleToggle}\n isMenuOpen={open}\n isPickingDate={isPickingDate}\n />\n {isPickingDate ? (\n <Popover\n open={open}\n anchorEl={inputRef.current}\n onClose={onCancel}\n transformOrigin={transformOrigin}\n anchorOrigin={anchorOrigin}\n elevation={2}\n {...MenuProps}\n >\n <DateRangePicker\n values={getValuesDateRange(values)}\n onApply={onItemClick}\n type={dataTypeDefinition.type}\n {...DateRangePickerProps}\n />\n </Popover>\n ) : (\n <Menu\n variant=\"menu\"\n open={open}\n autoFocus={false}\n classes={{paper: styles.paper}}\n anchorEl={inputRef.current}\n onClose={onCancel}\n anchorOrigin={anchorOrigin}\n transformOrigin={transformOrigin}\n elevation={2}\n MenuListProps={{\n autoFocusItem: open,\n style: {\n width: prop('clientWidth', inputRef.current)\n }\n }}\n {...MenuProps}\n >\n {rangeOptions.map((option) => (\n <MenuItem\n key={option.value}\n value={option.value}\n onClick={() => onItemClick(option.value)}\n className={styles.menuItem}\n >\n <Typography classes={{root: styles.menuText}}>{option.label}</Typography>\n </MenuItem>\n ))}\n </Menu>\n )}\n </>\n );\n };\n\n WithDateRangeSelector.displayName = 'WithDateRangeSelector';\n return WithDateRangeSelector;\n};\n\nexport default withDateRangeSelector;\n","import React, {useMemo, forwardRef, useCallback} from 'react';\nimport PropTypes from 'prop-types';\n\nimport Table from 'react-components/dist/Table/Table';\nimport defaultGetRowCellHeight from './helpers/defaultGetRowCellHeight';\nimport defaultRenderRowCell from './helpers/defaultRenderRowCell';\nimport {COLUMN_FILTER_HEIGHT} from '../ColumnFilter/styles';\nimport {ColumnDataType, ColumnFilterType, SortingType} from '../../../constants/prop-types';\nimport {getTableHeadData} from './helpers/dataHelpers';\nimport {TableContext} from './contexts/TableContext';\nimport {RowCollapseContext} from './contexts/RowCollapseContext';\nimport {prop} from 'ramda';\nimport useCollapsibleTableRows from './hooks/useCollapsibleTableRows';\n\nconst BasicTable = forwardRef(\n (\n {\n columnsData,\n rowsData,\n context,\n sorting,\n onSort,\n renderRowCell = defaultRenderRowCell,\n getRowCellHeight = defaultGetRowCellHeight,\n filters,\n onFilter,\n headRowHeight,\n maxRowValuesCount = Infinity,\n autosizing,\n maxHeight,\n getIdFromRowValue,\n ...otherProps\n },\n ref\n ) => {\n const tableHeadData = useMemo(\n () => getTableHeadData(columnsData, filters, onFilter),\n [columnsData, filters, onFilter]\n );\n\n const {tableRowsData, collapseContextValue} = useCollapsibleTableRows({\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n maxRowValuesCount,\n getIdFromRowValue\n });\n\n const {toggleRowCollapse, getIsRowCollapsed} = collapseContextValue;\n\n const onStartDragRow = useCallback(() => {\n setTimeout(() => {\n tableRowsData.forEach((_, index) => {\n if (!getIsRowCollapsed(index)) {\n toggleRowCollapse(index);\n }\n });\n }, 0);\n }, [getIsRowCollapsed, toggleRowCollapse, tableRowsData]);\n\n if (!tableHeadData.length) {\n return null;\n }\n\n return (\n <RowCollapseContext.Provider value={collapseContextValue}>\n <TableContext.Provider value={context}>\n <Table\n autosizing={autosizing}\n maxHeight={maxHeight}\n defaultRowHeight={48}\n onStartDragRow={onStartDragRow}\n {...otherProps}\n fixHead={tableRowsData.length > 0}\n headData={tableHeadData}\n rowsData={tableRowsData}\n sortField={prop('field', sorting)}\n sortOrder={prop('order', sorting)}\n onSort={onSort}\n headRowHeight={filters ? headRowHeight + COLUMN_FILTER_HEIGHT : headRowHeight}\n ref={ref}\n />\n </TableContext.Provider>\n </RowCollapseContext.Provider>\n );\n }\n);\n\nexport const BasicTableType = {\n columnsData: PropTypes.arrayOf(ColumnDataType).isRequired,\n rowsData: PropTypes.arrayOf(PropTypes.object).isRequired,\n context: PropTypes.object,\n sorting: SortingType,\n onSort: PropTypes.func,\n filters: PropTypes.objectOf(ColumnFilterType),\n onFilter: PropTypes.func,\n renderRowCell: PropTypes.func,\n getRowCellHeight: PropTypes.func,\n headRowHeight: PropTypes.number,\n maxRowValuesCount: PropTypes.number,\n defaultColumnWidth: PropTypes.number,\n defaultColumnMinWidth: PropTypes.number,\n classes: PropTypes.shape({\n highlightRow: PropTypes.string,\n cellBorder: PropTypes.string,\n dragColumnBody: PropTypes.string,\n dragColumnHead: PropTypes.string,\n draggableHeadCell: PropTypes.string,\n cellWrapper: PropTypes.string,\n cellContentWrapper: PropTypes.string,\n hoveredRowRightContentContainer: PropTypes.string,\n hoveredRowRightContentWrapper: PropTypes.string\n })\n};\n\nBasicTable.propTypes = BasicTableType;\n\nBasicTable.displayName = 'BasicTable';\n\nexport default BasicTable;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst withFilterAtBottom = (HeadCellRenderer) => {\n const HeadCellRendererWithFilterAtBottom = ({columnFilter, ...otherProps}) => {\n return (\n <div style={{display: 'flex', flexDirection: 'column', height: '100%'}}>\n <div style={{display: 'flex', flex: 1}}>\n <HeadCellRenderer {...otherProps} />\n </div>\n {columnFilter}\n </div>\n );\n };\n HeadCellRendererWithFilterAtBottom.propTypes = {\n columnFilter: PropTypes.node\n };\n\n return HeadCellRendererWithFilterAtBottom;\n};\n\nexport default withFilterAtBottom;\n","import {makeStyles} from '@mui/styles';\n\nexport const BLOB_HEIGHT = 100;\n\nexport const useStyles = makeStyles({\n defaultWrapper: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n padding: '15px 25px 0 25px'\n },\n blobWrapper: {\n position: 'relative',\n overflowY: 'auto',\n overflowX: 'hidden',\n whiteSpace: 'pre',\n maxHeight: `${BLOB_HEIGHT}px`,\n boxSizing: 'border-box',\n padding: '15px 25px 0 25px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport {useStyles} from './styles';\n\nconst stopPropagation = (event) => {\n event.stopPropagation();\n};\n\nconst BlobRenderer = ({value}) => {\n const styles = useStyles();\n return (\n <div className={styles.blobWrapper} onScroll={stopPropagation}>\n {value}\n </div>\n );\n};\n\nBlobRenderer.propTypes = {\n value: PropTypes.node\n};\n\nexport default BlobRenderer;\n","import BlobRenderer from './BlobRenderer';\nimport DataTypeValue from '../../../DataTypeValue/DataTypeValue';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport {useStyles} from './styles';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\n\nconst DefaultCellValueRenderer = (props) => {\n const styles = useStyles();\n const {\n value,\n columnData: {dataTypeDefinition}\n } = props;\n switch (dataTypeDefinition.type) {\n case DataTypes.TYPE_BLOB:\n return <BlobRenderer {...props} />;\n default: {\n const dataTypeValue = <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />;\n return (\n <ExpandedValueTooltip value={dataTypeValue}>\n <div className={styles.defaultWrapper}>{dataTypeValue}</div>\n </ExpandedValueTooltip>\n );\n }\n }\n};\n\nDefaultCellValueRenderer.propTypes = {\n value: PropTypes.any,\n columnData: PropTypes.shape({\n dataTypeDefinition: PropTypes.object\n })\n};\n\nexport default DefaultCellValueRenderer;\n","import React from 'react';\n\nexport const RowCollapseContext = React.createContext(null);\n\nRowCollapseContext.displayName = 'RowCollapseContext';\n","import React from 'react';\n\nexport const TableContext = React.createContext(null);\n\nTableContext.displayName = 'TableContext';\n","import {makeStyles} from '@mui/styles';\n\nexport const COLUMN_FILTER_HEIGHT = 40;\n\nexport const useStyles = makeStyles({\n 'filter-chip': {\n flex: 1,\n maxWidth: '100%',\n overflow: 'hidden',\n justifyContent: 'flex-start',\n marginRight: '-8px',\n '&, &:focus': {\n backgroundColor: 'rgba(0,0,0,0)'\n }\n },\n 'filter-chip__label': {\n color: 'rgba(0,0,0,0.87)',\n flex: 1,\n overflow: 'hidden',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis'\n },\n 'filter-chip__option-label': {\n color: 'rgba(0,0,0,0.54)'\n }\n});\n","import Chip from '@mui/material/Chip';\nimport React from 'react';\nimport {\n checkIfOptionHasValues,\n DataTypeDefinition,\n formatDataTypeValue,\n getFilterValueLabel,\n mapFilterValue,\n PrimitiveValue,\n SimpleAttributeValue\n} from '@reltio/mdm-sdk';\nimport ExpandedValueTooltip from '../../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useMdmAttributePresentations, useMdmDateMask, useMdmDateTimeMask} from '../../../../contexts';\nimport {useStyles} from './styles';\n\ntype FilterValue = SimpleAttributeValue | PrimitiveValue;\n\ntype Props = {\n filterOption: {\n value: string;\n label: string;\n };\n filterValue: FilterValue | FilterValue[];\n onDelete: () => void;\n dataTypeDefinition: DataTypeDefinition;\n};\n\nconst FilterChip = ({filterOption, filterValue, onDelete, dataTypeDefinition}: Props) => {\n const styles = useStyles();\n\n const attributePresentations = useMdmAttributePresentations();\n const dateMask = useMdmDateMask();\n const dateTimeMask = useMdmDateTimeMask();\n\n const canFilterAcceptValues = checkIfOptionHasValues(filterOption.value);\n const optionLabel = filterOption.label + (canFilterAcceptValues ? ': ' : '');\n const formatValue = formatDataTypeValue({attributePresentations, dataTypeDefinition, dateMask, dateTimeMask});\n const convertedValue = mapFilterValue(formatValue, filterValue);\n const filterLabel = canFilterAcceptValues ? getFilterValueLabel(filterOption.value, convertedValue) : '';\n\n return (\n <Chip\n label={\n <ExpandedValueTooltip value={optionLabel + filterLabel}>\n <div className={styles['filter-chip__label']}>\n <span className={styles['filter-chip__option-label']}>{optionLabel}</span>\n {filterLabel}\n </div>\n </ExpandedValueTooltip>\n }\n classes={{\n root: styles['filter-chip'],\n label: styles['filter-chip__label']\n }}\n onDelete={onDelete}\n />\n );\n};\n\nexport default FilterChip;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n dropDownEditor: {\n marginTop: '8px',\n marginBottom: '4px'\n },\n selectorRoot: {\n paddingTop: '11.5px',\n paddingBottom: '12.5px',\n lineHeight: '16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {__, assoc, pipe} from 'ramda';\nimport {checkIfOptionHasValues, FilterType} from '@reltio/mdm-sdk';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport FilterValueEditor from './FilterValueEditor';\nimport {commonTextFieldProps, useSelectStyles} from '../constants';\nimport {useStyles} from './styles';\n\nconst FilterEditor = ({value, onChange, filterOptions, dataTypeDefinition, classes, valueEditorProps}) => {\n const selectStyles = useSelectStyles();\n const styles = useStyles();\n const [firstOption] = filterOptions;\n const filterOption = value.filter || firstOption.value;\n const filter = {...value, filter: filterOption};\n const canFilterAcceptValues = checkIfOptionHasValues(filterOption);\n return (\n <>\n <DropDownEditor\n TextFieldProps={commonTextFieldProps}\n className={classnames(classes.option, styles.dropDownEditor)}\n value={filterOption}\n entries={filterOptions}\n onChange={pipe(assoc('filter', __, filter), assoc('values', []), onChange)}\n classes={{root: classnames(selectStyles.root, styles.selectorRoot), icon: selectStyles.icon}}\n />\n {canFilterAcceptValues && (\n <FilterValueEditor\n filter={filter}\n onChange={pipe(assoc('values', __, filter), onChange)}\n dataTypeDefinition={dataTypeDefinition}\n {...valueEditorProps}\n />\n )}\n </>\n );\n};\n\nFilterEditor.propTypes = {\n value: FilterType,\n onChange: PropTypes.func,\n filterOptions: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n ),\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object,\n valueEditorProps: PropTypes.object\n};\n\nexport default FilterEditor;\n","import ArrowDropDownIcon from '@mui/icons-material/ArrowDropDown';\nimport FilterChip from './FilterChip/FilterChip';\nimport FilterEditor from '../../editors/FilterEditor/FilterEditor';\nimport IconButton from '@mui/material/IconButton';\nimport Popover from '@mui/material/Popover';\nimport PropTypes from 'prop-types';\nimport React, {useRef, useState} from 'react';\nimport {ColumnFilterType} from '../../../constants';\nimport {defaultTo, pipe, pluck, prop, propEq} from 'ramda';\nimport {useStyles} from './styles';\nimport {\n getDataTypeDefinitionForFilterValue,\n getFilterOptionLabel,\n getFilterOptionsForDataTypeDefinition,\n Maybe,\n validateFilter\n} from '@reltio/mdm-sdk';\nimport {columnFilterToMdmFilter, mdmFilterToColumnFilter} from './helpers';\n\nconst ColumnFilter = ({columnId, dataTypeDefinition, filter, filterOptionsData, onFilter}) => {\n const styles = useStyles();\n\n const [anchorEl, setAnchorEl] = useState(null);\n const openFilterPopup = (event) => setAnchorEl(event.currentTarget);\n const closeFilterPopup = () => setAnchorEl(null);\n\n const [columnFilter, setColumnFilter] = useState(filter);\n const initColumnFilter = () => setColumnFilter(filter);\n\n const containerRef = useRef(null);\n const mdmFilter = columnFilterToMdmFilter({id: columnId, dataTypeDefinition}, columnFilter);\n const applyFilterChange = (newFilter) => {\n if (newFilter !== filter) {\n onFilter({columnId, filter: newFilter});\n }\n };\n const clearFilter = () => applyFilterChange();\n const applyChangesAndClose = () => {\n const isValidFilter = validateFilter(mdmFilter);\n isValidFilter ? applyFilterChange(columnFilter) : clearFilter();\n closeFilterPopup();\n };\n\n const handleValueEditorKeyPress = (event) => {\n if (event.key !== 'Enter') return;\n\n event.stopPropagation();\n event.preventDefault();\n applyChangesAndClose();\n };\n\n const getFilterOptionData = (filterOption) =>\n filterOptionsData && filterOptionsData.find(propEq('value', filterOption));\n\n const getFilterLabel = (filterOption) =>\n pipe(getFilterOptionData, prop('label'), defaultTo(getFilterOptionLabel(filterOption)))(filterOption);\n\n const getFilterDataTypeDefinition = (filterOption) =>\n pipe(\n getFilterOptionData,\n prop('dataTypeDefinition'),\n defaultTo(getDataTypeDefinitionForFilterValue(dataTypeDefinition, filterOption))\n )(filterOption);\n\n const filterOptions = Maybe.fromNull(filterOptionsData)\n .map(pluck('value'))\n .orSome(getFilterOptionsForDataTypeDefinition(dataTypeDefinition))\n .map((value) => ({\n value,\n label: getFilterLabel(value)\n }));\n\n return (\n <div ref={containerRef} className={styles.columnFilter}>\n {filter && (\n <FilterChip\n filterValue={filter.value}\n filterOption={filterOptions.find(propEq('value', filter.filter))}\n onDelete={clearFilter}\n dataTypeDefinition={getFilterDataTypeDefinition(filter.filter)}\n />\n )}\n <IconButton className={styles.dropDownButton} onClick={openFilterPopup} disableFocusRipple size=\"large\">\n <ArrowDropDownIcon />\n </IconButton>\n <Popover\n PaperProps={{\n style: {\n width: `${containerRef.current ? containerRef.current.getBoundingClientRect().width : 0}px`\n }\n }}\n open={!!anchorEl}\n anchorEl={anchorEl}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'right'\n }}\n transformOrigin={{\n vertical: 'top',\n horizontal: 'right'\n }}\n classes={{paper: styles.filterMenu}}\n onClose={applyChangesAndClose}\n TransitionProps={{\n onEnter: initColumnFilter\n }}\n >\n <FilterEditor\n classes={{option: styles['filter-editor__option']}}\n value={mdmFilter}\n onChange={pipe(mdmFilterToColumnFilter, setColumnFilter)}\n filterOptions={filterOptions}\n dataTypeDefinition={getFilterDataTypeDefinition(mdmFilter.filter)}\n valueEditorProps={{\n TextFieldProps: {\n onKeyPress: handleValueEditorKeyPress\n },\n fullWidth: true\n }}\n />\n </Popover>\n </div>\n );\n};\n\nColumnFilter.propTypes = {\n columnId: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n filter: ColumnFilterType,\n onFilter: PropTypes.func,\n filterOptionsData: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n )\n};\n\nexport default ColumnFilter;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport ColumnFilter from '../../ColumnFilter/ColumnFilter';\nimport {useStyles as useColumnFilterStyles} from '../../ColumnFilter/styles';\n\nconst withFilter = ({filter, onFilter, filterable, filterOptions, dataTypeDefinition}) => (HeadCellRenderer) => {\n const HeadCellRendererWithFilter = (props) => {\n const {\n headCellData: {id: columnId}\n } = props;\n const styles = useColumnFilterStyles();\n const columnFilter = filterable ? (\n <ColumnFilter\n columnId={columnId}\n dataTypeDefinition={dataTypeDefinition}\n filter={filter}\n filterOptionsData={filterOptions}\n onFilter={onFilter}\n />\n ) : (\n <div className={styles.columnFilter} />\n );\n return <HeadCellRenderer {...props} columnFilter={columnFilter} />;\n };\n HeadCellRendererWithFilter.propTypes = {\n headCellData: PropTypes.shape({\n id: PropTypes.string\n })\n };\n return HeadCellRendererWithFilter;\n};\n\nexport default withFilter;\n","import {\n __,\n addIndex,\n always,\n assoc,\n chain,\n curry,\n dropLast,\n groupBy,\n join,\n keys,\n length,\n omit,\n pickBy,\n pipe,\n propOr,\n reduce,\n split,\n sortBy,\n identity,\n sum,\n toPairs,\n unless,\n unnest,\n values,\n zip\n} from 'ramda';\n\nconst TOTAL_ROW_SPAN_KEY = 'total';\nconst NESTED_KEY_DELIMITER = '.';\n\nconst getSiblingSubRowsKeyBySubRowKey = pipe(split(NESTED_KEY_DELIMITER), dropLast(1), join(NESTED_KEY_DELIMITER));\n\nconst getParentRowKeyBySiblingsSubRowsKey = pipe(\n split(NESTED_KEY_DELIMITER),\n dropLast(1),\n join(NESTED_KEY_DELIMITER),\n unless(length, always(TOTAL_ROW_SPAN_KEY))\n);\n\nconst getParentRowKeyBySubRowKey = pipe(getSiblingSubRowsKeyBySubRowKey, getParentRowKeyBySiblingsSubRowsKey);\n\nconst countParentSpanByAllSubRows = (rowSpanData, siblingSubRowsKey) =>\n pipe(\n pickBy((_val, key) => getSiblingSubRowsKeyBySubRowKey(key) === siblingSubRowsKey),\n values,\n sum\n )(rowSpanData);\n\nconst calcParentRowSpan = (rowSpanData, subRowKey) => {\n const parentKey = getParentRowKeyBySubRowKey(subRowKey);\n const currentParentSpan = propOr(0, parentKey, rowSpanData);\n const actualParentSpan = countParentSpanByAllSubRows(rowSpanData, getSiblingSubRowsKeyBySubRowKey(subRowKey));\n\n if (actualParentSpan > currentParentSpan) {\n const nextRowSpanData = assoc(parentKey, actualParentSpan, rowSpanData);\n return parentKey === TOTAL_ROW_SPAN_KEY ? nextRowSpanData : calcParentRowSpan(nextRowSpanData, parentKey);\n } else {\n return rowSpanData;\n }\n};\n\nconst addNestedKey = (rowSpanData, nestedKey) => calcParentRowSpan({...rowSpanData, [nestedKey]: 1}, nestedKey);\n\nconst validateParentRowSpan = (rowSpanData, [siblingSubRowsKey, subRowsKeys]) => {\n const parentKey = getParentRowKeyBySiblingsSubRowsKey(siblingSubRowsKey);\n const currentParentSpan = propOr(0, parentKey, rowSpanData);\n const actualParentSpan = countParentSpanByAllSubRows(rowSpanData, siblingSubRowsKey);\n const spanDiff = currentParentSpan - actualParentSpan;\n\n if (spanDiff > 0) {\n const lowestSubRowKey = `${siblingSubRowsKey}${NESTED_KEY_DELIMITER}${subRowsKeys.length - 1}`;\n const lowestSubRowSpan = rowSpanData[lowestSubRowKey];\n return assoc(lowestSubRowKey, lowestSubRowSpan + spanDiff, rowSpanData);\n } else {\n return rowSpanData;\n }\n};\n\nconst validateRowSpanData = (rowSpanData) =>\n pipe(\n omit([TOTAL_ROW_SPAN_KEY]),\n keys,\n sortBy(identity),\n groupBy(getSiblingSubRowsKeyBySubRowKey),\n toPairs,\n reduce(validateParentRowSpan, rowSpanData)\n )(rowSpanData);\n\nconst calcRowSpansForNestedKeys = pipe(reduce(addNestedKey, {}), validateRowSpanData);\n\nconst chainWithIndex = addIndex(chain);\nconst flattenNestedColumnValues = (values, indexPath = []) => {\n const [head] = values;\n return Array.isArray(head)\n ? chainWithIndex((value, index) => flattenNestedColumnValues(value, [...indexPath, index]), values)\n : {indexPath, values};\n};\n\nconst getNestedKeyForNestedColumnCell = curry((columnNestedPath, cell) =>\n pipe(zip(__, cell.indexPath), unnest, join(NESTED_KEY_DELIMITER))(columnNestedPath)\n);\n\nexport {\n calcRowSpansForNestedKeys,\n validateRowSpanData,\n TOTAL_ROW_SPAN_KEY,\n flattenNestedColumnValues,\n getSiblingSubRowsKeyBySubRowKey,\n getParentRowKeyBySiblingsSubRowsKey,\n getNestedKeyForNestedColumnCell\n};\n","import DefaultCellValueRenderer from '../cell-value-renderers/DefaultCellValueRenderer';\nimport withFilter from '../HOCs/withFilter';\nimport {\n calcRowSpansForNestedKeys,\n flattenNestedColumnValues,\n getNestedKeyForNestedColumnCell,\n TOTAL_ROW_SPAN_KEY\n} from './nestedHelpers';\nimport {\n add,\n always,\n assoc,\n chain,\n evolve,\n isEmpty,\n isNil,\n map,\n mapObjIndexed,\n max,\n pipe,\n pluck,\n prop,\n propEq,\n propOr,\n reduce,\n reject,\n slice,\n uniq,\n unless,\n values\n} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport withFilterAtBottom from '../HOCs/withFilterAtBottom';\n\nconst applyCellRendererToColumnCells = (columnsData, renderRowCell, rowIndex, rowValue) => (cells, columnId) => {\n const columnIndex = columnsData.findIndex(propEq('id', columnId));\n const columnData = columnsData[columnIndex];\n const {rowCellValueRenderer: CellValueRenderer = DefaultCellValueRenderer} = columnsData[columnIndex];\n return cells.map((cell, cellIndex) => ({\n ...cell,\n values: renderRowCell({\n columnIndex,\n columnData,\n rowIndex,\n rowValue,\n cellIndex,\n cell,\n CellValueRenderer\n })\n }));\n};\n\nconst applyCellRenderer = pipe(applyCellRendererToColumnCells, mapObjIndexed);\n\nconst calcHeightForColumnCells = (columnsData, getRowCellHeight, rowIndex, rowValue) => (cells, columnId) => {\n const columnIndex = columnsData.findIndex(propEq('id', columnId));\n const columnData = columnsData[columnIndex];\n return cells.map((cell, cellIndex) => ({\n ...cell,\n height: getRowCellHeight({columnIndex, columnData, rowIndex, rowValue, cellIndex, cell})\n }));\n};\n\nconst calcHeights = (columnsData, getRowCellHeight, rowIndex, rowValue) => (rowData) =>\n getRowCellHeight\n ? mapObjIndexed(calcHeightForColumnCells(columnsData, getRowCellHeight, rowIndex, rowValue), rowData)\n : rowData;\n\nconst addRowSpansToColumnCells = (rowSpansData) =>\n map((cell) => ({...cell, rowSpan: rowSpansData[cell.nestedKey || TOTAL_ROW_SPAN_KEY]}));\n\nconst getNestedKeysFromRowCells = pipe(chain(pluck('nestedKey')), reject(isNil), uniq);\n\nconst calcRowSpansData = pipe(values, getNestedKeysFromRowCells, calcRowSpansForNestedKeys);\n\nconst calcRowSpans = (rowData) => {\n const rowSpansData = calcRowSpansData(rowData);\n return isEmpty(rowSpansData) ? rowData : map(addRowSpansToColumnCells(rowSpansData), rowData);\n};\n\nconst calcNestedKeys = (columnNestedPath) =>\n map((cell) => ({\n ...cell,\n nestedKey: getNestedKeyForNestedColumnCell(columnNestedPath, cell)\n }));\n\nconst parseNestedColumnValues = (columnNestedPath, nestedValues) =>\n pipe(flattenNestedColumnValues, calcNestedKeys(columnNestedPath))(nestedValues);\n\nconst getCellValues = (columnNestedPath, columnValues) =>\n columnNestedPath && !isEmpty(columnValues)\n ? parseNestedColumnValues(columnNestedPath, columnValues)\n : [{values: wrapInArrayIfNeeded(columnValues)}];\n\nconst buildRowValues = (rowValue) =>\n reduce((acc, {id, nestedPath}) => assoc(id, getCellValues(nestedPath, rowValue[id]), acc), {});\n\nconst applyValuesCountConstraint = (maxValuesCount) =>\n unless(\n () => maxValuesCount === Infinity,\n map(\n pipe(\n reject(({indexPath}) => indexPath && indexPath.some((index) => index > maxValuesCount - 1)),\n map(\n evolve({\n values: slice(0, maxValuesCount)\n })\n )\n )\n )\n );\n\nconst defaultGetIdFromRowValue = (_, rowIndex) => rowIndex;\n\nconst getTableRowsData = (\n rowValues,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n getRowMaxValuesCount = always(Infinity),\n getIdFromRowValue = defaultGetIdFromRowValue\n) =>\n rowValues.map((rowValue, rowIndex) =>\n pipe(\n buildRowValues(rowValue),\n applyValuesCountConstraint(getRowMaxValuesCount(rowIndex)),\n calcRowSpans,\n calcHeights(columnsData, getRowCellHeight, rowIndex, rowValue),\n applyCellRenderer(columnsData, renderRowCell, rowIndex, rowValue),\n (val) => ({data: val, id: getIdFromRowValue(rowValue, rowIndex)})\n )(columnsData)\n );\n\nconst getTableHeadData = (columnsData, filters, onFilter) =>\n columnsData.map(\n ({\n id,\n label,\n description,\n sortable,\n filterable = true,\n resizable,\n draggable,\n autoResize = true,\n initialWidth,\n minWidth,\n dataTypeDefinition,\n filterOptions,\n headCellRenderer = withFilterAtBottom(DefaultHeadCellRenderer)\n }) => ({\n id,\n label,\n description,\n sortable,\n resizable,\n draggable,\n initialWidth,\n minWidth,\n autoResize,\n renderer: unless(\n () => isNil(filters),\n withFilter({\n dataTypeDefinition,\n filterable,\n filter: prop(id, filters),\n filterOptions,\n onFilter\n })\n )(headCellRenderer)\n })\n );\n\nconst calcMaxValuesCount = reduce((maxCount, cellValues) => {\n const maxSubNestedValuesCount = pipe(chain(propOr([], 'indexPath')), map(add(1)), reduce(max, 0))(cellValues);\n const maxPlainValuesCount = pipe(pluck('values'), pluck('length'), reduce(max, 0))(cellValues);\n return Math.max(maxCount, maxSubNestedValuesCount, maxPlainValuesCount);\n}, 0);\n\nconst getMaxRowValuesCount = (columnsData, rowValue) => {\n return pipe(buildRowValues(rowValue, Infinity), values, calcMaxValuesCount)(columnsData);\n};\n\nexport {getTableRowsData, getTableHeadData, getMaxRowValuesCount};\n","import {DataTypes} from '@reltio/mdm-sdk';\n\nconst BLOB_HEIGHT = 100;\nconst IMAGE_HEIGHT = 64;\nconst PADDING = 15;\n\nconst defaultGetRowCellHeight = ({columnData, cell}) => {\n const valuesCount = cell.values.length;\n switch (columnData?.dataTypeDefinition?.type) {\n case DataTypes.TYPE_BLOB:\n return BLOB_HEIGHT * valuesCount;\n case DataTypes.TYPE_IMAGE:\n return (PADDING + IMAGE_HEIGHT) * valuesCount + PADDING;\n case DataTypes.TYPE_REFERENCE:\n return 48 * Math.max(valuesCount, 1);\n default:\n return 33 * Math.max(valuesCount, 1) + PADDING;\n }\n};\n\nexport default defaultGetRowCellHeight;\n","import React from 'react';\n\nconst defaultRenderRowCell = ({cell, CellValueRenderer, ...otherProps}) =>\n cell.values.map((value, index) => <CellValueRenderer key={index} value={value} {...otherProps} />);\n\nexport default defaultRenderRowCell;\n","import {useCallback, useMemo, useState} from 'react';\n\nimport {equals, filter, remove} from 'ramda';\nimport {getTableRowsData, getMaxRowValuesCount} from '../helpers/dataHelpers';\nimport {useDidUpdateEffect, usePrevious} from '../../../../hooks';\nimport {\n ColumnData,\n ElementsRowsData,\n GetRowCellHeight,\n RenderRowCell,\n RowValue,\n TableRowsData,\n RowId\n} from '../../types';\n\ntype Props = {\n rowsData: ElementsRowsData;\n columnsData: ColumnData[];\n renderRowCell: RenderRowCell;\n getRowCellHeight: GetRowCellHeight;\n maxRowValuesCount: number;\n getIdFromRowValue?: (rowValue: RowValue, rowIndex: number) => RowId;\n};\n\nconst useCollapsibleTableRows = ({\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n maxRowValuesCount,\n getIdFromRowValue\n}: Props) => {\n const [expandedIndexes, setExpandedIndexes] = useState<Array<number>>([]);\n\n const getRowMaxValuesCount = useCallback(\n (rowIndex) => {\n return expandedIndexes.includes(rowIndex) ? Infinity : maxRowValuesCount;\n },\n [expandedIndexes, maxRowValuesCount]\n );\n\n const tableRowsData: TableRowsData = useMemo(\n () =>\n getTableRowsData(\n rowsData,\n columnsData,\n renderRowCell,\n getRowCellHeight,\n getRowMaxValuesCount,\n getIdFromRowValue\n ),\n [rowsData, columnsData, renderRowCell, getRowCellHeight, getRowMaxValuesCount, getIdFromRowValue]\n );\n\n const toggleRowCollapse = useCallback((rowIndex: number) => {\n setExpandedIndexes((expandedIndexes) => {\n const index = expandedIndexes.findIndex(equals(rowIndex));\n return index === -1 ? expandedIndexes.concat(rowIndex) : remove(index, 1, expandedIndexes);\n });\n }, []);\n\n const getIsRowCollapsible = useCallback(\n (rowValue: Record<string, unknown>) => {\n return getMaxRowValuesCount(columnsData, rowValue) > maxRowValuesCount;\n },\n [maxRowValuesCount, columnsData]\n );\n\n const getIsRowCollapsed = useCallback(\n (rowIndex: number) => {\n return !expandedIndexes.includes(rowIndex);\n },\n [expandedIndexes]\n );\n\n const collapseContextValue = useMemo(\n () => ({\n maxRowValuesCount,\n toggleRowCollapse,\n getIsRowCollapsible,\n getIsRowCollapsed\n }),\n [maxRowValuesCount, toggleRowCollapse, getIsRowCollapsible, getIsRowCollapsed]\n );\n\n const prevRowsData = usePrevious(rowsData);\n useDidUpdateEffect(() => {\n if (expandedIndexes.length > 0) {\n setExpandedIndexes(\n filter((index) => {\n const rowValue = rowsData[index] ?? ({} as RowValue);\n const prevRowValue = prevRowsData[index] ?? ({} as RowValue);\n return rowValue.rawValue === prevRowValue.rawValue && getIsRowCollapsible(rowValue);\n })\n );\n }\n }, [rowsData]);\n\n return {tableRowsData, collapseContextValue};\n};\n\nexport default useCollapsibleTableRows;\n","import {buildFilterQueryString, Maybe} from '@reltio/mdm-sdk';\nimport {propEq} from 'ramda';\nimport {ColumnData, ColumnFilter} from '../types';\n\nconst columnFilterToMdmFilter = (\n columnData: ColumnData,\n columnFilter: ColumnFilter = {} as unknown as ColumnFilter\n) => ({\n fieldName: columnData.id,\n filter: columnFilter.filter,\n values: [columnFilter.value],\n type: columnData.dataTypeDefinition.type\n});\n\nconst mdmFilterToColumnFilter = ({filter, values}) => ({filter, value: values[0]});\n\nconst buildColumnsFilter = (columnsData: ColumnData[], filters?: Record<string, ColumnFilter>): string =>\n Maybe.fromNull(filters)\n .map((filters) =>\n Object.entries(filters).map(([columnId, columnFilter]) => {\n const columnData = columnsData.find(propEq('id', columnId));\n return columnFilterToMdmFilter(columnData, columnFilter);\n })\n )\n .map<string>(buildFilterQueryString())\n .orSome('');\n\nexport {buildColumnsFilter, columnFilterToMdmFilter, mdmFilterToColumnFilter};\n","import {makeStyles} from '@mui/styles';\n\nexport const COLUMN_FILTER_HEIGHT = 40;\n\nexport const useStyles = makeStyles({\n columnFilter: {\n backgroundColor: 'rgba(0,0,0,0.03)',\n display: 'flex',\n height: `${COLUMN_FILTER_HEIGHT}px`,\n alignItems: 'center'\n },\n dropDownButton: {\n marginLeft: 'auto',\n padding: '6px'\n },\n filterMenu: {\n marginTop: '3px',\n borderRadius: '2px',\n padding: '15px 20px',\n boxSizing: 'border-box',\n display: 'flex',\n flexDirection: 'column',\n minWidth: '454px'\n },\n 'filter-editor__option': {\n fontSize: '13px',\n color: 'rgba(0,0,0,0.54)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport {formatDataTypeValue, isAttributeValueLink, addProtocolToLink} from '@reltio/mdm-sdk';\nimport Link from '@mui/material/Link';\nimport SearchHighlighter from '../SearchHighlighter/SearchHighlighter';\nimport {useMdmAttributePresentations, useMdmDateMask, useMdmDateTimeMask} from '../../contexts';\n\nconst DataTypeValue = ({value = null, dataTypeDefinition, rich = true}) => {\n const localeDateFormat = moment.localeData().longDateFormat('L');\n const localeTimeFormat = moment.localeData().longDateFormat('LTS');\n\n const attributePresentations = useMdmAttributePresentations();\n const dateMask = useMdmDateMask() || localeDateFormat;\n const dateTimeMask = useMdmDateTimeMask() || localeDateFormat + ' ' + localeTimeFormat;\n\n const formattedValue = formatDataTypeValue(\n {attributePresentations, dataTypeDefinition, dateMask, dateTimeMask},\n value\n );\n\n return rich && isAttributeValueLink(dataTypeDefinition, value) ? (\n <Link target=\"_blank\" href={addProtocolToLink(formattedValue)} underline=\"none\">\n <SearchHighlighter text={formattedValue} />\n </Link>\n ) : (\n <SearchHighlighter text={formattedValue} />\n );\n};\n\nDataTypeValue.propTypes = {\n value: PropTypes.any,\n dataTypeDefinition: PropTypes.object,\n rich: PropTypes.bool\n};\n\nexport default DataTypeValue;\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport NoMessageComponent from './NoMessageComponent';\n\ntype Props = Omit<React.ComponentPropsWithoutRef<typeof NoMessageComponent>, 'message'>;\n\nexport const NoResults = (props: Props) => {\n return <NoMessageComponent message={i18n.text('No results found')} {...props} />;\n};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n highlight: {\n fontWeight: 600\n }\n});\n","import React from 'react';\nimport {ascend, map, pipe, reverse, sort, split, toLower, trim} from 'ramda';\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n highlight?: string;\n className?: string;\n multiTerm?: boolean;\n};\n\nconst Highlighter = ({text, highlight, className, multiTerm = false}: Props) => {\n const styles = useStyles();\n const hasHighlights = text && highlight;\n\n if (!hasHighlights) {\n return <>{text}</>;\n }\n\n const REG_SPACES = new RegExp(/\\s+/);\n const getMultiTerms = pipe(trim, split(REG_SPACES), map(toLower), sort(ascend), reverse);\n const highlightedValues = multiTerm ? getMultiTerms(highlight) : [toLower(highlight)];\n\n const regValues = highlightedValues.map((item) => item.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&'));\n\n const parts = text.split(new RegExp(`(${regValues.join('|')})`, 'gi'));\n\n return (\n <span>\n {parts.map((part, i) => {\n const isHighlightedText = highlightedValues.includes(part.toLocaleLowerCase());\n return isHighlightedText ? (\n <span key={i} className={className || styles.highlight}>\n {part}\n </span>\n ) : (\n part\n );\n })}\n </span>\n );\n};\n\nexport default Highlighter;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n inputRoot: {\n flexWrap: 'wrap',\n paddingLeft: '8px'\n },\n autosizeInput: {\n width: 'auto',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import AutosizeInput from 'react-input-autosize';\nimport classnames from 'classnames';\nimport TextField from '@mui/material/TextField';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, useState} from 'react';\nimport {identity, pipe, propEq, remove, uniq, when, trim, isEmpty} from 'ramda';\nimport {getValue, noop} from '../../core/utils';\nimport {useStyles} from './styles';\nimport ValueChip from '../ValueChip/ValueChip';\nimport Tooltip from '@mui/material/Tooltip';\nimport i18n from 'ui-i18n';\n\nconst AutosizeInputWrapper = forwardRef((props, ref) => {\n const {CustomInputComponent, ...other} = props;\n\n return CustomInputComponent ? (\n <CustomInputComponent {...other} ref={ref} customInput={AutosizeInput} />\n ) : (\n <AutosizeInput {...other} ref={ref} />\n );\n});\n\nAutosizeInputWrapper.propTypes = {\n CustomInputComponent: PropTypes.elementType\n};\n\nAutosizeInputWrapper.displayName = 'AutosizeInputWrapper';\n\nconst BACKSPACE_KEY_CODE = 8;\nconst EMPTY_VALUES_EDIT_HINT = i18n.text('Press Enter to add. You may enter multiple values');\n\nconst isEmptyValue = pipe(trim, isEmpty);\n\nconst MultipleInput = ({\n values = [],\n InputProps = {},\n inputProps = {},\n classes = {},\n isCrossedOut,\n onChange = noop,\n getValueLabel = identity,\n ...otherProps\n}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n\n const [inputValue, setInputValue] = useState('');\n const clearInputValue = () => setInputValue('');\n\n const removeValueAt = (index) => onChange(remove(index, 1, values));\n const appendValue = (value) => onChange(uniq([...values, value]));\n\n const hasValues = values.length > 0;\n\n const appendInputValueIfNotEmpty = () => {\n if (!isEmptyValue(inputValue)) {\n appendValue(inputValue);\n clearInputValue();\n }\n };\n const popLastValueIfInputIsEmpty = () => {\n if (inputValue === '' && hasValues) {\n removeValueAt(-1);\n }\n };\n\n const [isFocused, setIsFocused] = useState(false);\n const setFocused = () => setIsFocused(true);\n const setUnfocused = () => setIsFocused(false);\n\n const hintText = !hasValues && isFocused ? EMPTY_VALUES_EDIT_HINT : '';\n\n return (\n <Tooltip title={hintText}>\n <TextField\n variant=\"standard\"\n {...otherProps}\n classes={{\n root: classes.root\n }}\n value={inputValue}\n onChange={pipe(getValue, setInputValue)}\n InputProps={{\n ...InputProps,\n startAdornment: values.map((value, index) => (\n <ValueChip key={value} label={getValueLabel(value)} onDelete={() => removeValueAt(index)} />\n )),\n inputComponent: AutosizeInputWrapper,\n classes: {\n root: classnames(styles.inputRoot, root, {[styles.isCrossedOut]: isCrossedOut}),\n input: classnames(styles.autosizeInput, InputClasses.input),\n ...InputClasses\n }\n }}\n inputProps={{\n ...inputProps,\n CustomInputComponent: InputProps.inputComponent\n }}\n onKeyPress={when(propEq('key', 'Enter'), appendInputValueIfNotEmpty)}\n onKeyDown={when(propEq('keyCode', BACKSPACE_KEY_CODE), popLastValueIfInputIsEmpty)}\n onFocus={setFocused}\n onBlur={pipe(appendInputValueIfNotEmpty, setUnfocused)}\n />\n </Tooltip>\n );\n};\n\nMultipleInput.propTypes = {\n values: PropTypes.arrayOf(PropTypes.string),\n InputProps: PropTypes.shape({\n classes: PropTypes.shape({root: PropTypes.string}),\n inputComponent: PropTypes.elementType\n }),\n inputProps: PropTypes.object,\n onChange: PropTypes.func,\n classes: PropTypes.object,\n getValueLabel: PropTypes.func,\n isCrossedOut: PropTypes.bool\n};\n\nexport default MultipleInput;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n multiSelect: {\n padding: '3px 48px 3px 8px !important',\n minHeight: '34px !important'\n },\n chips: {\n display: 'flex',\n flexWrap: 'wrap'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {defaultTo, identity, pipe, prop, remove} from 'ramda';\nimport TextField from '@mui/material/TextField';\nimport {SelectValueType} from '../../constants/prop-types';\nimport {getValue, noop} from '../../core/utils';\nimport ValueChip from '../ValueChip/ValueChip';\n\nimport {useStyles} from './styles';\n\nconst MultipliableSelect = ({\n multiple,\n value,\n children,\n getValueLabel = noop,\n getValuePlaceholder = identity,\n onChange = noop,\n fullWidth,\n TextFieldProps,\n MenuProps,\n classes,\n isCrossedOut,\n ...otherProps\n}) => {\n const styles = useStyles();\n return (\n <TextField\n variant=\"standard\"\n select\n fullWidth={fullWidth}\n {...TextFieldProps}\n value={defaultTo(multiple ? [] : '', value)}\n onChange={pipe(getValue, onChange)}\n SelectProps={{\n ...otherProps,\n MenuProps: {\n anchorOrigin: {vertical: 'bottom', horizontal: 'center'},\n ...MenuProps\n },\n classes: {\n ...classes,\n select: classnames(\n {[styles.multiSelect]: multiple, [styles.isCrossedOut]: isCrossedOut},\n prop('root', classes),\n prop('select', classes)\n )\n },\n multiple,\n // eslint-disable-next-line react/display-name\n renderValue: (selected) =>\n multiple ? (\n <div className={styles.chips}>\n {selected.map((value, index) => (\n <ValueChip\n key={value}\n label={getValueLabel(value) || getValuePlaceholder(value)}\n onMouseDown={(event) => event.stopPropagation()}\n onDelete={() => onChange(remove(index, 1, selected))}\n />\n ))}\n </div>\n ) : (\n getValueLabel(selected) || getValuePlaceholder(selected)\n )\n }}\n >\n {children}\n </TextField>\n );\n};\n\nMultipliableSelect.propTypes = {\n multiple: PropTypes.bool,\n fullWidth: PropTypes.bool,\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n TextFieldProps: PropTypes.object,\n MenuProps: PropTypes.object,\n children: PropTypes.node,\n classes: PropTypes.object,\n onChange: PropTypes.func,\n getValueLabel: PropTypes.func,\n getValuePlaceholder: PropTypes.func,\n isCrossedOut: PropTypes.bool\n};\n\nexport default MultipliableSelect;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n highlightedText: {\n background: 'rgb(255, 235, 203)'\n }\n});\n","import React, {useContext} from 'react';\nimport {SearchValueContext} from '../../contexts';\nimport Highlighter from '../Highlighter/Highlighter';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n text?: string;\n};\n\nconst SearchHighlighter = ({text}: Props) => {\n const styles = useStyles();\n const keywordValue = useContext(SearchValueContext);\n\n return <Highlighter text={text} highlight={keywordValue} className={styles.highlightedText} multiTerm />;\n};\n\nexport default SearchHighlighter;\n","import {makeStyles} from '@mui/styles';\n\nconst margin = 2;\nexport const useChipStyles = makeStyles({\n root: {\n height: '28px',\n backgroundColor: 'rgba(43, 152, 240, 0.12)',\n maxWidth: `calc(100% - ${margin * 2}px)`,\n margin: `${margin}px`,\n '& $deleteIcon': {\n height: 18,\n width: 18,\n color: 'rgba(0,0,0,0.38)',\n marginRight: '8px'\n }\n },\n deleteIcon: {},\n label: {\n overflow: 'hidden'\n }\n});\n\nexport const useStyles = makeStyles((theme) => ({\n container: {\n display: 'flex',\n alignItems: 'center',\n width: '100%'\n },\n label: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n },\n count: {\n color: theme.palette.text.secondary,\n fontSize: '13px',\n letterSpacing: 0,\n lineHeight: '15px',\n marginLeft: 8\n }\n}));\n","import React from 'react';\nimport Chip, {ChipProps} from '@mui/material/Chip';\nimport {mergeClasses} from '../../core/utils';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles, useChipStyles} from './styles';\n\ntype Props = Omit<ChipProps, 'label'> & {\n label: string;\n count?: string;\n};\n\nconst ValueChip = ({classes: classesProp = {}, label, count, ...otherProp}: Props) => {\n const classes = useChipStyles();\n const styles = useStyles();\n return (\n <Chip\n classes={mergeClasses(classesProp, classes)}\n label={\n <div className={styles.container}>\n <ExpandedValueTooltip value={label}>\n <div className={styles.label}>{label}</div>\n </ExpandedValueTooltip>\n {count && <div className={styles.count}>{count}</div>}\n </div>\n }\n {...otherProp}\n />\n );\n};\n\nexport default ValueChip;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n loadMoreContainer: {\n display: 'flex',\n height: '32px'\n },\n moreButton: {\n padding: '9px 38px 9px 38px'\n },\n buttonLabel: {\n fontSize: '14px',\n fontWeight: 500,\n lineHeight: '16px',\n whiteSpace: 'nowrap',\n overflow: 'hidden'\n },\n loadingSpinner: {\n alignSelf: 'center',\n marginLeft: '40px'\n }\n});\n","import React from 'react';\nimport Button from '@mui/material/Button';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport i18n from 'ui-i18n';\nimport {useStyles} from './styles';\n\ntype Props = {\n loading: boolean;\n onClick: (event: React.MouseEvent<HTMLButtonElement>) => void;\n onMouseDown?: (event: React.MouseEvent<HTMLButtonElement>) => void;\n};\n\nconst LoadMoreButton = ({loading, onClick, onMouseDown}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={styles.loadMoreContainer}>\n {loading ? (\n <CircularProgress className={styles.loadingSpinner} size={24} />\n ) : (\n <Button color=\"primary\" onClick={onClick} onMouseDown={onMouseDown} className={styles.moreButton}>\n <div className={styles.buttonLabel}>{i18n.text('Load more')}</div>\n </Button>\n )}\n </div>\n );\n};\n\nexport default LoadMoreButton;\n","import React from 'react';\nimport {components} from 'react-select';\n\nconst MenuList = (props) => {\n const {\n selectProps: {menuListFooter},\n children\n } = props;\n\n return (\n <components.MenuList {...props}>\n {children}\n {menuListFooter}\n </components.MenuList>\n );\n};\nexport default MenuList;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-30px',\n position: 'absolute'\n }\n});\n","import React from 'react';\nimport CheckIcon from '@mui/icons-material/Check';\nimport Option from '../../ReactSelect/commonComponents/Option';\nimport {useStyles} from './styles';\n\ntype Props = {\n children: React.ReactNode;\n isSelected: boolean;\n};\n// NEED TO MIGRATE\nconst OptionWithCheckIcon = (props: Props) => {\n const styles = useStyles();\n const {isSelected, children} = props;\n\n return (\n <Option {...props}>\n {isSelected && <CheckIcon className={styles.checkIcon} />}\n <>{children}</>\n </Option>\n );\n};\n\nOptionWithCheckIcon.displayName = 'OptionWithCheckIcon';\n\nexport default OptionWithCheckIcon;\n","import Checkbox from '@mui/material/Checkbox';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport {getChecked} from '../../../core/utils';\nimport {pipe} from 'ramda';\n\nconst BooleanEditor = ({value, onChange, ...otherProps}) => (\n <Checkbox {...otherProps} checked={value} onChange={onChange && pipe(getChecked, onChange)} />\n);\n\nBooleanEditor.propTypes = {\n onChange: PropTypes.func,\n value: PropTypes.bool\n};\n\nexport default BooleanEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n editors: {\n width: 'fit-content'\n },\n checkboxPrimary: {\n color: theme.palette.divider\n },\n label: {\n color: theme.palette.text.secondary\n },\n isCrossedOut: {\n position: 'relative',\n '&:before': {\n content: \"''\",\n position: 'absolute',\n height: '1px',\n background: theme.palette.text.secondary,\n top: '50%',\n left: '-3px',\n right: '13px'\n }\n }\n}));\n","import React from 'react';\nimport i18n from 'ui-i18n';\nimport classnames from 'classnames';\nimport {isNil, not, pipe} from 'ramda';\nimport FormControlLabel from '@mui/material/FormControlLabel';\nimport BooleanEditor from '../BooleanEditor/BooleanEditor';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: boolean;\n onChange?: (checked: boolean) => void;\n className?: string;\n isCrossedOut?: boolean;\n disabled?: boolean;\n};\n\nconst BooleanRadioEditor = ({value, onChange, className, isCrossedOut, disabled}: Props) => {\n const styles = useStyles();\n\n return (\n <div className={className}>\n <div className={classnames(styles.editors, {[styles.isCrossedOut]: isCrossedOut})}>\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles.checkboxPrimary}}\n color=\"primary\"\n value={!isNil(value) && !!value}\n onChange={onChange}\n disabled={disabled}\n />\n }\n label={i18n.text('Yes')}\n />\n <FormControlLabel\n classes={{label: styles.label}}\n control={\n <BooleanEditor\n classes={{root: styles.checkboxPrimary}}\n color=\"primary\"\n value={!isNil(value) && !value}\n onChange={onChange && pipe(not, onChange)}\n disabled={disabled}\n />\n }\n label={i18n.text('No')}\n />\n </div>\n </div>\n );\n};\n\nexport default BooleanRadioEditor;\n","import {chain, curry, has} from 'ramda';\n\nconst isGroupEntry = has('values');\n\nconst flattenEntry = curry((depth, entry) =>\n isGroupEntry(entry)\n ? [{label: entry.label, depth, isGroup: true}, ...chain(flattenEntry(depth + 1), entry.values)]\n : {...entry, depth}\n);\n\nconst flattenGroupedEntries = chain(flattenEntry(0));\n\nconst findEntryByValue = curry((entries, _value) => entries.find(({isGroup, value}) => !isGroup && value === _value));\n\nexport {flattenGroupedEntries, findEntryByValue};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n checkIcon: {\n transform: 'scale(.7)',\n marginLeft: '-25px',\n position: 'absolute'\n },\n emptyLabel: {\n padding: '4px 16px'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\nimport {isNil, pipe, prop} from 'ramda';\nimport CheckIcon from '@mui/icons-material/Check';\nimport MenuItem from '@mui/material/MenuItem';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport {DropDownEntryType, DropDownGroupEntryType, SelectValueType} from '../../../constants/prop-types';\nimport {findEntryByValue, flattenGroupedEntries} from './entriesHelpers';\nimport {useStyles} from './styles';\nimport {useSelectStyles} from '../constants';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst MENU_ITEM_OFFSET = 25;\n\nconst GroupedDropDownEditor = ({value, entries, classes, ...otherProps}) => {\n const flattenedEntries = flattenGroupedEntries(entries);\n const selectedValues = isNil(value) ? [] : wrapInArrayIfNeeded(value);\n const styles = useStyles();\n const selectStyles = useSelectStyles();\n\n return (\n <MultipliableSelect\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(selectStyles.root, prop('root', classes)),\n icon: classnames(selectStyles.icon, prop('icon', classes))\n }}\n {...otherProps}\n value={value}\n getValueLabel={pipe(findEntryByValue(flattenedEntries), prop('label'))}\n >\n {flattenedEntries.length > 0 ? (\n flattenedEntries.map(({value, label, depth, isGroup}, index) => (\n <MenuItem\n key={index}\n disabled={isGroup}\n value={value}\n style={{paddingLeft: `${(depth + 1) * MENU_ITEM_OFFSET}px`}}\n >\n {selectedValues.includes(value) && <CheckIcon className={styles.checkIcon} />}\n {label || value.toString()}\n </MenuItem>\n ))\n ) : (\n <MenuItem className={styles.emptyLabel} disabled={true}>\n {i18n.text('No results found')}\n </MenuItem>\n )}\n </MultipliableSelect>\n );\n};\n\nGroupedDropDownEditor.propTypes = {\n value: PropTypes.oneOfType([SelectValueType, PropTypes.arrayOf(SelectValueType)]),\n entries: PropTypes.arrayOf(PropTypes.oneOfType([DropDownEntryType, DropDownGroupEntryType])).isRequired,\n classes: PropTypes.object\n};\n\nexport {GroupedDropDownEditor as default, MENU_ITEM_OFFSET};\n","import {ascend, assocPath, path, prop, curry, useWith} from 'ramda';\nimport {getLookupLabel} from '@reltio/mdm-sdk';\n\nconst LOOKUP_URI_SEPARATOR = '.';\n\nconst splitOnce = curry((separator, string) => {\n const [first, ...other] = string.split(separator);\n return [first, other.join(separator)];\n});\n\n// eslint-disable-next-line react-hooks/rules-of-hooks\nconst getLookupByUri = useWith(path, [splitOnce(LOOKUP_URI_SEPARATOR)]);\n\nconst byLabel = ascend(prop('label'));\n\nconst buildLookupEntries = (lookupTypeCode, lookups) => {\n const getLookupPath = (uri) => {\n const {parent} = getLookupByUri(uri, lookups);\n return parent ? getLookupPath(parent).concat(uri) : [uri];\n };\n\n const buildEntry = ([uri, value]) => {\n const lookup = getLookupByUri(uri, lookups);\n const [, code] = splitOnce(LOOKUP_URI_SEPARATOR, uri);\n const label = getLookupLabel(code, lookup.displayName);\n return lookup === value ? {label, value: code} : {label, values: buildEntries(value)};\n };\n\n const buildEntries = (value) => Object.entries(value).map(buildEntry).sort(byLabel);\n\n const hierarchy = Object.entries(lookups[lookupTypeCode] || []).reduce(\n (acc, [code, value]) => assocPath(getLookupPath(`${lookupTypeCode}${LOOKUP_URI_SEPARATOR}${code}`), value, acc),\n {}\n );\n\n return buildEntries(hierarchy);\n};\n\nexport {buildLookupEntries};\n","import GroupedDropDownEditor from '../GroupedDropDownEditor/GroupedDropDownEditor';\nimport PropTypes from 'prop-types';\nimport React, {useEffect} from 'react';\nimport {SimpleLookupType, LookupValueType} from '@reltio/mdm-sdk';\nimport {always, defaultTo, isEmpty, map, path, pipe, pluck, prop, propEq} from 'ramda';\nimport {buildLookupEntries} from './entriesHelpers';\n\nconst LookupEditor = ({multiple, value, lookupCode: lookupTypeCode, lookups, onChange, getLookups, ...otherProps}) => {\n const codeToLookup = (lookupCode) => ({\n lookupCode,\n value: path([lookupTypeCode, lookupCode, 'displayName'], lookups)\n });\n useEffect(() => {\n if (isEmpty(lookups) && getLookups) {\n getLookups()?.catch(() => {});\n }\n }, [lookups, getLookups]);\n const entries = buildLookupEntries(lookupTypeCode, lookups); // TODO: this code could be not valid if lookups are not loaded\n const commonProps = {\n ...otherProps,\n multiple,\n entries\n };\n value = defaultTo(multiple ? [] : {}, value);\n\n return multiple ? (\n <GroupedDropDownEditor\n {...commonProps}\n value={pluck('lookupCode', value)}\n getValuePlaceholder={(lookupCode) => value.find(propEq('lookupCode', lookupCode)).value}\n onChange={pipe(map(codeToLookup), onChange)}\n />\n ) : (\n <GroupedDropDownEditor\n {...commonProps}\n value={prop('lookupCode', value)}\n getValuePlaceholder={always(prop('value', value))}\n onChange={pipe(codeToLookup, onChange)}\n />\n );\n};\n\nLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n lookupCode: PropTypes.string.isRequired,\n lookups: PropTypes.objectOf(PropTypes.objectOf(SimpleLookupType)).isRequired,\n onChange: PropTypes.func,\n getLookups: PropTypes.func\n};\n\nexport default LookupEditor;\n","import {getLookupLabel, utils} from '@reltio/mdm-sdk';\n\nconst getOptionLabel = (obj) => {\n if (!obj) return '';\n const {lookupCode, value} = obj;\n return getLookupLabel(lookupCode, value);\n};\n\nconst buildLookupOptions = (lookups) =>\n Object.entries(lookups)\n .map(([lookupCode, {displayName}]) => ({\n lookupCode,\n value: displayName\n }))\n .sort((lookupA, lookupB) => {\n const labelALower = getOptionLabel(lookupA).toLowerCase();\n const labelBLower = getOptionLabel(lookupB).toLowerCase();\n return utils.strings.sort('asc', labelALower, labelBLower);\n });\n\nexport {getOptionLabel, buildLookupOptions};\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n option: {\n paddingLeft: '35px'\n },\n dropdownIndicator: {\n padding: '8px 12px',\n cursor: 'pointer',\n color: theme.palette.text.secondary\n },\n clearIndicator: {\n display: 'none'\n },\n placeholder: {\n position: 'static'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n}));\n","import {useEffect, useState} from 'react';\nimport {curry, filter, hasPath, map, partition, pipe, prop, concat, uniq} from 'ramda';\nimport {wrapInArrayIfNeeded} from '@reltio/mdm-sdk';\n\nconst isUnresolvedLookup = (lookupValue) => lookupValue && lookupValue.lookupCode && !lookupValue.value;\nconst isResolvedLookupCode = curry((resolvedValues, lookupCode) =>\n hasPath([lookupCode, 'displayName'], resolvedValues)\n);\n\nconst useLookupsResolver = ({lookups, resolvedValues, resolveLookups, onLookupsResolve}) => {\n const [requestedCodes, setRequestedCodes] = useState([]);\n useEffect(() => {\n const [resolvedCodes, codesToResolve] = pipe(\n wrapInArrayIfNeeded,\n filter(isUnresolvedLookup),\n map(prop('lookupCode')),\n partition(isResolvedLookupCode(resolvedValues))\n )(lookups);\n if (resolvedCodes.length > 0) {\n const resolvedLookups = resolvedCodes.map((lookupCode) => ({\n lookupCode,\n value: resolvedValues[lookupCode].displayName\n }));\n onLookupsResolve(resolvedLookups);\n }\n const unrequestedCodes = codesToResolve.filter((code) => !requestedCodes.includes(code));\n if (unrequestedCodes.length > 0) {\n setRequestedCodes(pipe(concat(unrequestedCodes), uniq));\n resolveLookups(unrequestedCodes);\n }\n }, [lookups, resolvedValues]); // eslint-disable-line\n};\n\nexport default useLookupsResolver;\n","import React, {useCallback, useEffect, useMemo, useRef, useState} from 'react';\nimport classnames from 'classnames';\nimport {components} from 'react-select';\nimport PropTypes from 'prop-types';\nimport {debounce, LookupValueType} from '@reltio/mdm-sdk';\nimport Select from '../../ReactSelect/Select';\nimport {concat, defaultTo, either, isEmpty, prop, T} from 'ramda';\nimport {buildLookupOptions, getOptionLabel} from './helpers';\nimport i18n from 'ui-i18n';\nimport {EmptyStub} from '../../../core/utils';\nimport DropdownIndicator from '../../commonReactSelectComponents/DropdownIndicator';\nimport MenuWithPopper from '../../commonReactSelectComponents/MenuWithPopper';\nimport MenuList from '../../commonReactSelectComponents/MenuList';\nimport {useStyles} from './styles';\nimport useLookupsResolver from './useLookupsResolver';\nimport MultiValueChip from '../commonComponents/MultiValueChip/MultiValueChip';\nimport OptionWithCheckIcon from '../../commonReactSelectComponents/OptionWithCheckIcon/OptionWithCheckIcon';\nimport useDefaultOptions from './useDefaultOptions';\nimport useAutopopulation from './useAutopopulation';\nimport useSavingFocus from './useSavingFocus';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst Input = (props) => {\n const styles = useStyles();\n const {\n selectProps: {isCrossedOut}\n } = props;\n return (\n <components.Input\n {...props}\n inputClassName={classnames({[styles.isCrossedOut]: isCrossedOut})}\n isHidden={false}\n />\n );\n};\n\nconst SelectComponents = {\n IndicatorSeparator: EmptyStub,\n LoadingIndicator: EmptyStub,\n Option: OptionWithCheckIcon,\n DropdownIndicator,\n Menu: MenuWithPopper,\n MenuList: MenuList,\n MultiValue: MultiValueChip,\n Input\n};\n\nexport const DEBOUNCE_INTERVAL = 400;\nconst MAX_DEPENDENT_LOOKUP_VALUES = 50;\n\nconst DependentLookupEditor = ({\n multiple,\n value,\n lookupCode: lookupTypeCode,\n TextFieldProps,\n parents,\n onChange,\n getLookups,\n lookups = {},\n resolveLookups,\n fullWidth,\n disabled,\n placeholder,\n max = MAX_DEPENDENT_LOOKUP_VALUES,\n ...otherProps\n}) => {\n const inputRef = useRef(null);\n const selectRef = useRef(null);\n const styles = useStyles();\n\n const [inputValue, setInputValue] = useState('');\n const [options, setOptions] = useState([]);\n const [pageNumber, setPageNumber] = useState(1);\n const [optionsAreLoading, setOptionsAreLoading] = useState(false);\n\n useLookupsResolver({\n lookups: value,\n resolvedValues: lookups[lookupTypeCode],\n resolveLookups: (codeValues) => resolveLookups(lookupTypeCode, codeValues),\n onLookupsResolve: (lookups) => onChange(multiple ? lookups : lookups[0])\n });\n\n useSavingFocus(selectRef, inputRef, disabled);\n\n useEffect(() => {\n if (!multiple) {\n setInputValue(getOptionLabel(value));\n setOptions(defaultOptions);\n setPageNumber(1);\n }\n }, [value]);\n\n const handleChange = (value) => {\n markAsTouched();\n onChange(value);\n };\n\n const handleFocus = () => {\n value && selectRef.current?.select?.inputRef?.select();\n };\n\n const resetOptions = () => {\n setPageNumber(1);\n debouncedLoadOptions('', setOptions);\n };\n\n const restoreSelectedOption = () => {\n if (!multiple && inputValue && inputValue !== getOptionLabel(value)) {\n setInputValue(getOptionLabel(value));\n resetOptions();\n }\n };\n\n const handleInputChange = (newValue, {action}) => {\n switch (action) {\n case 'menu-close': {\n restoreSelectedOption();\n break;\n }\n case 'input-blur': {\n if (multiple && inputValue) {\n setInputValue('');\n resetOptions();\n break;\n }\n restoreSelectedOption();\n break;\n }\n case 'input-change': {\n setInputValue(newValue);\n setPageNumber(1);\n debouncedLoadOptions(newValue, setOptions);\n if (!multiple && newValue === '') {\n handleChange('');\n }\n break;\n }\n }\n };\n\n const loadOptions = useCallback(\n (value, pageNumber = 1) => {\n setOptionsAreLoading(true);\n return (\n parents === null\n ? Promise.resolve([])\n : getLookups({\n type: lookupTypeCode,\n parents,\n displayNamePrefix: value,\n max: max + 1,\n offset: (pageNumber - 1) * max\n })\n )\n .then((buildOptions) => buildLookupOptions(buildOptions))\n .catch(() => [])\n .finally(() => setOptionsAreLoading(false));\n },\n [max, lookupTypeCode, parents]\n );\n\n const loadMoreOptions = useCallback(() => {\n const filterValue = inputValue !== getOptionLabel(value) ? inputValue : '';\n\n loadOptions(multiple ? inputValue : filterValue, pageNumber + 1).then((buildOptions) => {\n setOptions((options) => concat(options.slice(0, pageNumber * max), buildOptions));\n setPageNumber((page) => page + 1);\n });\n }, [max, loadOptions, inputValue, pageNumber]);\n\n const debouncedLoadOptions = useCallback(\n debounce((value, callback) => {\n loadOptions(value).then((options) => callback(options));\n }, DEBOUNCE_INTERVAL),\n [loadOptions]\n );\n\n const {defaultOptions, initialDefaultOptions, isLoading: isLoadingDefaultOptions} = useDefaultOptions(loadOptions);\n\n useEffect(() => {\n setOptions(defaultOptions);\n }, [defaultOptions]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [lookupTypeCode]);\n\n const displayedOptions = useMemo(() => options.slice(0, pageNumber * max), [max, options, pageNumber]);\n const showMoreButton = options.length > displayedOptions.length;\n\n const isEmptyValue = multiple ? isEmpty(value) : !value?.lookupCode && !value?.value;\n\n const {markAsTouched} = useAutopopulation({\n initialDefaultOptions,\n isEmptyValue,\n multiple,\n onChange\n });\n\n return (\n <Select\n {...otherProps}\n isMulti={multiple}\n classes={styles}\n menuPortalTarget={document.body}\n menuPlacement=\"auto\"\n TextFieldProps={{\n ...TextFieldProps,\n ref: inputRef,\n disabled: TextFieldProps?.disabled || disabled\n }}\n inputRef={inputRef}\n innerRef={selectRef}\n styles={{\n menuPortal: (base) => ({...base, zIndex: 1300}),\n container: (base) => ({...base, ...(fullWidth ? {width: '100%'} : {})})\n }}\n noOptionsMessage={() =>\n optionsAreLoading && !showMoreButton ? i18n.text('Loading...') : i18n.text('No results found')\n }\n components={SelectComponents}\n isClearable={true}\n isSearchable={true}\n controlShouldRenderValue={multiple}\n inputValue={inputValue}\n filterOption={multiple ? undefined : T}\n onInputChange={handleInputChange}\n loadingMessage={() => i18n.text('Loading...')}\n isLoading={!inputValue && isLoadingDefaultOptions}\n hideSelectedOptions={false}\n placeholder={placeholder || ''}\n isDisabled={disabled}\n options={displayedOptions}\n getOptionValue={either(prop('value'), prop('lookupCode'))}\n getOptionLabel={getOptionLabel}\n onChange={handleChange}\n onFocus={multiple ? undefined : handleFocus}\n value={defaultTo(multiple ? [] : null, value)}\n menuListFooter={showMoreButton && <LoadMoreButton loading={optionsAreLoading} onClick={loadMoreOptions} />}\n />\n );\n};\n\nDependentLookupEditor.propTypes = {\n multiple: PropTypes.bool,\n value: PropTypes.oneOfType([LookupValueType, PropTypes.arrayOf(LookupValueType)]),\n TextFieldProps: PropTypes.shape({\n variant: PropTypes.string,\n margin: PropTypes.string,\n hiddenLabel: PropTypes.bool\n }),\n lookupCode: PropTypes.string.isRequired,\n parents: PropTypes.array,\n getLookups: PropTypes.func,\n onChange: PropTypes.func,\n lookups: PropTypes.object,\n resolveLookups: PropTypes.func,\n fullWidth: PropTypes.bool,\n placeholder: PropTypes.string,\n disabled: PropTypes.bool,\n max: PropTypes.number\n};\n\nexport default DependentLookupEditor;\n","import {useEffect, useRef} from 'react';\n\nconst useSavingFocus = (selectRef, inputRef, disabled: boolean) => {\n const needFocusRef = useRef(false);\n\n if (\n !needFocusRef.current &&\n disabled &&\n document.activeElement === inputRef.current?.getElementsByTagName('input')[0]\n ) {\n needFocusRef.current = true;\n }\n useEffect(() => {\n const handler = () => {\n if (needFocusRef.current) {\n needFocusRef.current = false;\n }\n };\n if (!disabled && needFocusRef.current) {\n selectRef.current?.focus();\n needFocusRef.current = false;\n }\n if (disabled && needFocusRef.current) {\n document?.addEventListener('click', handler);\n return () => {\n document?.removeEventListener('click', handler);\n };\n }\n }, [disabled]);\n};\n\nexport default useSavingFocus;\n","import {useState, useEffect} from 'react';\nimport {useSafePromise} from '../../../hooks';\n\nconst useDefaultOptions = (loadOptions) => {\n const [defaultOptions, setDefaultOptions] = useState([]);\n const [initialDefaultOptions, setInitialDefaultOptions] = useState(null);\n const [isLoading, setIsLoading] = useState(false);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n setDefaultOptions([]);\n setIsLoading(true);\n safePromise(loadOptions(''))\n .then((options) => {\n setDefaultOptions(options);\n setInitialDefaultOptions((prevValue) => prevValue || options);\n setIsLoading(false);\n })\n .catch(() => {\n setIsLoading(false);\n });\n }, [loadOptions]); // eslint-disable-line\n return {defaultOptions, initialDefaultOptions, isLoading};\n};\n\nexport default useDefaultOptions;\n","import {useCallback, useContext, useEffect} from 'react';\nimport {DependentLookupAutopopulationContext} from '../../../contexts';\n\ntype Option = {lookupCode: string; value: string};\n\ntype Props = {\n initialDefaultOptions: Option[];\n isEmptyValue: boolean;\n multiple: boolean;\n onChange: (value: Option | Option[]) => void;\n};\n\n// Autopopulation for just added editor. Other autopopulation cases should be covered by cascadeUpdate flow.\nconst useAutopopulation = ({initialDefaultOptions, isEmptyValue, multiple, onChange}: Props) => {\n const {id, isTouched, onTouch} = useContext(DependentLookupAutopopulationContext) || {};\n useEffect(() => {\n if (id && initialDefaultOptions && initialDefaultOptions.length === 1 && isEmptyValue && !isTouched) {\n onChange(multiple ? initialDefaultOptions : initialDefaultOptions[0]);\n }\n //eslint-disable-next-line react-hooks/exhaustive-deps\n }, [initialDefaultOptions]);\n const markAsTouched = useCallback(() => {\n if (id) {\n onTouch?.(id);\n }\n }, [onTouch, id]);\n return {markAsTouched};\n};\n\nexport default useAutopopulation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {prop} from 'ramda';\nimport DropDownEditor from '../DropDownEditor/DropDownEditor';\nimport {useSelectStyles} from '../constants';\n\nconst SelectEditor = ({classes, ...otherProps}) => {\n const styles = useSelectStyles();\n return (\n <DropDownEditor\n MenuProps={{\n disableAutoFocusItem: true\n }}\n classes={{\n ...classes,\n root: classnames(styles.root, prop('root', classes)),\n icon: classnames(styles.icon, prop('icon', classes))\n }}\n {...otherProps}\n />\n );\n};\n\nSelectEditor.propTypes = {\n classes: PropTypes.object\n};\n\nexport default SelectEditor;\n","import {memo} from 'react';\nimport {has, is, mergeDeepLeft} from 'ramda';\nimport EditorsFactory from '../EditorsFactory';\nimport PropTypes from 'prop-types';\nimport useEditorContext from './useEditorContext';\nimport {commonTextFieldProps, useInputStyles} from '../constants';\nimport {isEmptyValue} from '@reltio/mdm-sdk';\n\nconst DataTypeValueEditor = ({fieldName, value, onChange, dataTypeDefinition, TextFieldProps = {}, ...otherProps}) => {\n const inputStyles = useInputStyles();\n const editorContext = useEditorContext(fieldName, dataTypeDefinition);\n const isEmpty = (value) => {\n return is(Object, value) && has('value', value) ? isEmptyValue(value.value) : isEmptyValue(value);\n };\n\n TextFieldProps = mergeDeepLeft(TextFieldProps, {\n ...commonTextFieldProps,\n className: inputStyles.marginDense,\n InputProps: {\n ...commonTextFieldProps.InputProps,\n disableUnderline: isEmpty(value)\n }\n });\n\n return EditorsFactory.build(dataTypeDefinition.type, {\n onChange,\n value,\n TextFieldProps,\n ...editorContext,\n ...otherProps\n });\n};\n\nDataTypeValueEditor.propTypes = {\n fieldName: PropTypes.string,\n value: PropTypes.any,\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object\n};\n\nDataTypeValueEditor.displayName = 'DataTypeValueEditor';\n\nexport default memo(DataTypeValueEditor);\n","import {useCallback} from 'react';\nimport {propOr, prop, pipe, keys} from 'ramda';\nimport {\n DataTypes,\n intl,\n getDependentLookups,\n getFacetedAttributeData,\n getLookups,\n resolveLookupsList,\n getNumberFormat\n} from '@reltio/mdm-sdk';\nimport {\n useMdmAction,\n useMdmAttributePresentations,\n useMdmGlobalSearchRequestOptions,\n useMdmLookups,\n useMdmTenant\n} from '../../../contexts';\n\nconst useEditorContext = (fieldName, dataTypeDefinition) => {\n const lookupsLoaded = useMdmAction('lookupsLoaded');\n const lookupsForTypeResolved = useMdmAction('lookupsForTypeResolved');\n const tenant = useMdmTenant();\n const lookups = useMdmLookups();\n const attributePresentations = useMdmAttributePresentations();\n const globalSearchRequestOptions = useMdmGlobalSearchRequestOptions();\n\n const typeaheadGetSuggestion = useCallback(\n (searchValue, max, pageNo) =>\n getFacetedAttributeData({\n fieldName,\n searchValue,\n options: {...globalSearchRequestOptions, max, pageNo}\n }).then(pipe(prop(fieldName), keys)),\n [fieldName, globalSearchRequestOptions]\n );\n\n const {type, values, lookupCode, dependentLookupCode, options} = dataTypeDefinition;\n\n switch (type) {\n case DataTypes.TYPE_ENUM:\n return {entries: values.map((value) => ({value}))};\n case DataTypes.TYPE_LOOKUP:\n return {\n lookups,\n lookupCode,\n getLookups: () =>\n getLookups().then((lookups) => {\n lookupsLoaded(lookups);\n })\n };\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return {\n lookups,\n lookupCode: dependentLookupCode,\n getLookups: ({type, parents, displayNamePrefix, max, offset}) => {\n return getDependentLookups({type, parents, displayNamePrefix, max, offset}).then(({codeValues}) =>\n propOr({}, type, codeValues)\n );\n },\n resolveLookups: (type, codeValues) => {\n const lookupsList = codeValues.map((codeValue) => ({type, codeValue}));\n return resolveLookupsList(lookupsList).then((response) => {\n if (Array.isArray(response)) {\n const lookups = response.reduce((acc, lookupData) => ({...acc, ...lookupData[type]}), {});\n lookupsForTypeResolved({type, values: lookups});\n }\n });\n }\n };\n case DataTypes.TYPE_TYPEAHEAD:\n return {\n getSuggestions: typeaheadGetSuggestion\n };\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n return {\n format: getNumberFormat(dataTypeDefinition, attributePresentations, intl.getLocale())\n };\n case DataTypes.TYPE_FILE:\n return {tenant};\n case DataTypes.TYPE_SELECT:\n return {entries: options};\n default:\n return {};\n }\n};\n\nexport default useEditorContext;\n","import BooleanRadioEditor from './BooleanRadioEditor/BooleanRadioEditor';\nimport DateEditor from './DateEditor/DateEditor';\nimport LookupEditor from './LookupEditor/LookupEditor';\nimport NumberEditor from './NumberEditor/NumberEditor';\nimport React from 'react';\nimport TextEditor from './TextEditor/TextEditor';\nimport TimestampEditor from './TimestampEditor/TimestampEditor';\nimport TypeaheadEditor from './TypeaheadEditor/TypeaheadEditor';\nimport {DataTypes} from '@reltio/mdm-sdk';\nimport DependentLookupEditor from './DependentLookupEditor/DependentLookupEditor';\nimport FileTypeEditor from './FileTypeEditor/FileTypeEditor';\nimport SelectEditor from './SelectEditor/SelectEditor';\n\nexport default class EditorsFactory {\n static build(type, {fullWidth, TextFieldProps, color, booleanRadioEditorClassName, ...otherProps} = {}) {\n switch (type) {\n case DataTypes.TYPE_STRING:\n case DataTypes.TYPE_CIK_ID:\n case DataTypes.TYPE_ENTITY_ID:\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_EMAIL:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type={'email'} />;\n case DataTypes.TYPE_TEXT:\n case DataTypes.TYPE_BLOB:\n return (\n <TextEditor\n fullWidth={fullWidth}\n maxRows={7}\n minRows={2}\n {...TextFieldProps}\n {...otherProps}\n multiline={true}\n />\n );\n case DataTypes.TYPE_PASSWORD:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} type=\"password\" />;\n case DataTypes.TYPE_LONG:\n case DataTypes.TYPE_INT:\n case DataTypes.TYPE_COUNT:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} integer={true} />;\n case DataTypes.TYPE_FLOAT:\n case DataTypes.TYPE_DOUBLE:\n case DataTypes.TYPE_NUMBER:\n case DataTypes.TYPE_DOLLAR:\n return <NumberEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_BOOLEAN:\n case DataTypes.TYPE_BOOLEAN_RADIO:\n case DataTypes.TYPE_RDM_LOOKUPS_NOT_RESOLVED:\n return <BooleanRadioEditor color={color} {...otherProps} className={booleanRadioEditorClassName} />;\n case DataTypes.TYPE_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_LOCAL_DATE:\n return <DateEditor slotProps={{textField: TextFieldProps}} {...otherProps} />;\n case DataTypes.TYPE_TIMESTAMP:\n return <TimestampEditor slotProps={{textField: TextFieldProps}} {...otherProps} />;\n case DataTypes.TYPE_ENUM:\n case DataTypes.TYPE_SELECT:\n return <SelectEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_LOOKUP:\n return <LookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_TYPEAHEAD:\n return <TypeaheadEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_DEPENDENT_LOOKUP:\n return <DependentLookupEditor fullWidth={fullWidth} TextFieldProps={TextFieldProps} {...otherProps} />;\n case DataTypes.TYPE_FILE:\n return <FileTypeEditor {...otherProps} />;\n default:\n return <TextEditor fullWidth={fullWidth} {...TextFieldProps} {...otherProps} />;\n }\n }\n}\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n dropdownIndicator: {\n transition: 'transform .15s ease',\n cursor: 'pointer',\n color: 'rgba(0, 0, 0, 0.54)'\n },\n underline: {\n '&:after': {\n transform: 'scaleX(1)'\n }\n },\n inputLabel: {\n color: theme.palette.primary.main\n },\n adornedEnd: {\n paddingRight: 4\n },\n uppercase: {\n '& > input': {\n textTransform: 'uppercase'\n }\n },\n inputRoot: {\n fontSize: '14px',\n letterSpacing: 0,\n lineHeight: '16px'\n }\n}));\n","import React, {forwardRef} from 'react';\nimport classnames from 'classnames';\nimport {isNil} from 'ramda';\nimport {DatePeriod} from '@reltio/mdm-sdk';\nimport TextField, {TextFieldProps} from '@mui/material/TextField';\nimport DropdownIndicatorWithIconButton from '../../commonReactSelectComponents/DropdownIndicatorWithIconButton';\nimport withDateRangeSelector from '../../../HOCs/withDateRangeSelector/withDateRangeSelector';\n\nimport {useStyles} from './styles';\n\nexport type DateRangeEditorProps = {\n label?: string;\n values?: DatePeriod | string;\n editorLabel?: string;\n editorPlaceholder?: string;\n TextFieldProps?: TextFieldProps;\n classes?: {\n dropdownIndicator?: string;\n root?: string;\n };\n className?: string;\n isPickingDate?: boolean;\n isMenuOpen?: boolean;\n onMenuToggle?: () => void;\n};\n\nconst DateRangeEditor = forwardRef(\n (\n {\n label,\n editorLabel,\n editorPlaceholder,\n values,\n TextFieldProps,\n isPickingDate,\n isMenuOpen,\n onMenuToggle,\n ...otherProps\n }: DateRangeEditorProps,\n ref: React.Ref<HTMLDivElement>\n ) => {\n const styles = useStyles();\n const {classes} = otherProps;\n\n return (\n <TextField\n {...TextFieldProps}\n {...otherProps}\n ref={ref}\n label={label}\n value={TextFieldProps?.value || editorLabel}\n onClick={onMenuToggle}\n variant=\"filled\"\n size=\"small\"\n InputProps={{\n endAdornment: (\n <DropdownIndicatorWithIconButton\n selectProps={{\n classes: {\n dropdownIndicator: classnames(styles.dropdownIndicator, classes?.dropdownIndicator)\n },\n menuIsOpen: isMenuOpen\n }}\n innerProps={{}}\n />\n ),\n classes: {\n root: classnames(styles.inputRoot, {\n [styles.uppercase]: !isPickingDate && Array.isArray(values)\n }),\n underline: classnames({[styles.underline]: isMenuOpen}),\n adornedEnd: styles.adornedEnd\n },\n disableUnderline: isNil(values),\n readOnly: true,\n ...TextFieldProps?.InputProps\n }}\n InputLabelProps={{\n classes: {\n root: isMenuOpen ? styles.inputLabel : undefined\n },\n shrink: !isNil(label)\n }}\n placeholder={editorPlaceholder}\n />\n );\n }\n);\n\nDateRangeEditor.displayName = 'DateRangeEditor';\n\nexport default withDateRangeSelector(DateRangeEditor);\n","import React from 'react';\nimport MenuItem from '@mui/material/MenuItem';\nimport MultipliableSelect from '../../MultipliableSelect/MultipliableSelect';\nimport PropTypes from 'prop-types';\nimport {DropDownEntryType} from '../../../constants/prop-types';\nimport {pipe, prop, propEq} from 'ramda';\n\nconst findEntryByValue = (entries) => (value) => entries.find(propEq('value', value));\n\nconst DropDownEditor = ({entries, classes = {}, ...otherProps}) => {\n const {menuItem, ...otherClasses} = classes;\n return (\n <MultipliableSelect\n {...otherProps}\n classes={otherClasses}\n getValueLabel={pipe(findEntryByValue(entries), prop('label'))}\n >\n {entries.map(({value, label}, index) => (\n <MenuItem key={index} value={value} className={menuItem}>\n {label || value.toString()}\n </MenuItem>\n ))}\n </MultipliableSelect>\n );\n};\n\nDropDownEditor.propTypes = {\n classes: PropTypes.object,\n entries: PropTypes.arrayOf(DropDownEntryType).isRequired\n};\n\nexport default DropDownEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n button: {\n '&:hover': {\n backgroundColor: '#d5d5d5'\n }\n },\n fileUploaderInput: {\n display: 'none'\n },\n uploaded: {\n display: 'flex',\n alignItems: 'center'\n },\n label: {\n textOverflow: 'ellipsis',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n },\n cancelIcon: {\n height: '18px',\n width: '18px',\n color: 'rgba(0,0,0,0.38)',\n marginLeft: '3px',\n cursor: 'pointer'\n }\n});\n","import React, {Fragment, useCallback, useEffect, useRef, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport Link from '@mui/material/Link';\nimport Typography from '@mui/material/Typography';\nimport Button from '@mui/material/Button';\nimport CancelIcon from '@mui/icons-material/Cancel';\nimport {getLabel, getRequestErrorMessage} from '@reltio/mdm-sdk';\nimport ErrorPopup from '../ErrorPopup/ErrorPopup';\nimport ExpandedValueTooltip from '../ExpandedValueTooltip/ExpandedValueTooltip';\nimport {useStyles} from './styles.js';\n\nconst MODES = {INIT: 1, UPLOADING: 2, UPLOADED: 3};\nconst PROGRESS_ICON_SIZE = 20;\n\nconst showFileUploadError = (error) => {\n console.warn(error); // eslint-disable-line\n ErrorPopup.addError({\n title: i18n.text('File upload error'),\n message: getRequestErrorMessage(error)\n });\n};\n\nconst UploadMode = ({supportedFileTypes = [], onUpload, onBeforeUpload}) => {\n const styles = useStyles();\n const fileUploader = useRef();\n const supportedFileTypesString = supportedFileTypes.join(',');\n const onSelectFileClick = () => {\n fileUploader.current.value = null;\n fileUploader.current.click();\n };\n const onUploadListener = (event) => {\n const uploadedFiles = event.target.files || event.dataTransfer.files || [];\n if (uploadedFiles.length > 0) {\n onBeforeUpload();\n onUpload(uploadedFiles[0]);\n }\n event.stopPropagation();\n event.preventDefault();\n };\n return (\n <Fragment>\n <Button variant=\"contained\" onClick={onSelectFileClick} className={styles.button}>\n {i18n.text('Select File')}\n </Button>\n\n <input\n type=\"file\"\n className={styles.fileUploaderInput}\n onChange={onUploadListener}\n ref={fileUploader}\n name=\"uploadfile\"\n accept={supportedFileTypesString}\n />\n </Fragment>\n );\n};\n\nUploadMode.propTypes = {\n onUpload: PropTypes.func,\n onBeforeUpload: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string)\n};\n\nconst UploadFileButton = ({\n link,\n filename,\n onUpload,\n onError = showFileUploadError,\n onCancel,\n supportedFileTypes,\n isValidLink = true\n}) => {\n const [mode, setMode] = useState(MODES.INIT);\n const [name, setName] = useState('');\n\n const styles = useStyles();\n useEffect(() => {\n setName(filename);\n }, [filename]);\n\n useEffect(() => {\n setMode(link ? MODES.UPLOADED : MODES.INIT);\n }, [link]);\n const onErrorHandler = useCallback(\n (error) => {\n setMode(MODES.INIT);\n onError(error);\n },\n [onError]\n );\n\n const onUploadHandler = useCallback(\n (result) => {\n return onUpload(result)\n .then(() => {\n setMode(MODES.UPLOADED);\n setName(result.name);\n })\n .catch(onErrorHandler);\n },\n [onUpload, onErrorHandler]\n );\n\n const onBeforeUpload = useCallback(() => {\n setMode(MODES.UPLOADING);\n }, []);\n const switchToInitMode = useCallback(() => {\n setMode(MODES.INIT);\n onCancel();\n }, [onCancel]);\n switch (mode) {\n case MODES.INIT:\n return (\n <UploadMode\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onBeforeUpload={onBeforeUpload}\n />\n );\n case MODES.UPLOADED: {\n const label = getLabel(name);\n return (\n <div className={styles.uploaded}>\n <ExpandedValueTooltip value={label}>\n {isValidLink ? (\n <Link href={link} className={styles.label} underline=\"hover\">\n {label}\n </Link>\n ) : (\n <Typography variant=\"inherit\" className={styles.label}>\n {label}\n </Typography>\n )}\n </ExpandedValueTooltip>\n <CancelIcon\n onClick={switchToInitMode}\n onMouseDown={switchToInitMode}\n onTouchEnd={switchToInitMode}\n className={styles.cancelIcon}\n />\n </div>\n );\n }\n case MODES.UPLOADING:\n return <CircularProgress size={PROGRESS_ICON_SIZE} />;\n default:\n return null;\n }\n};\n\nUploadFileButton.propTypes = {\n link: PropTypes.string,\n filename: PropTypes.string,\n onUpload: PropTypes.func,\n onError: PropTypes.func,\n onCancel: PropTypes.func,\n supportedFileTypes: PropTypes.arrayOf(PropTypes.string),\n isValidLink: PropTypes.bool\n};\n\nexport default UploadFileButton;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n editor: {\n alignSelf: 'center'\n }\n});\n","import React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {uploadFileForSearch, FileValue} from '@reltio/mdm-sdk';\nimport UploadFileButton from '../../UploadFileButton/UploadFileButton';\nimport {useStyles} from './styles';\n\ntype Props = {\n value?: FileValue;\n onChange: (file: FileValue) => void;\n onError?: (error: string) => void;\n className?: string;\n};\n\nconst FileTypeEditor = ({value, onChange, onError, className}: Props) => {\n const {downloadLink, filename, expirationDate} = value || {};\n const isValidLink = expirationDate >= Date.now();\n const supportedFileTypes = ['.txt', '.csv'];\n const onUploadHandler = useCallback(\n (file) =>\n uploadFileForSearch(file).then(({path, downloadLink, expirationDate}) => {\n onChange({\n filename: file.name,\n downloadLink,\n link: path,\n expirationDate: new Date(expirationDate).getTime()\n });\n }),\n [onChange]\n );\n const onCancelHandler = useCallback(() => onChange(null), [onChange]);\n\n const styles = useStyles();\n return (\n <div className={classnames(styles.editor, className)}>\n <UploadFileButton\n isValidLink={isValidLink}\n link={downloadLink}\n filename={filename}\n supportedFileTypes={supportedFileTypes}\n onUpload={onUploadHandler}\n onError={onError}\n onCancel={onCancelHandler}\n />\n </div>\n );\n};\n\nexport default FileTypeEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n 'range-editor': {\n width: '100%'\n },\n 'range-editor__control': {\n marginTop: '10px',\n paddingTop: '15px',\n '& > label + *': {\n marginTop: 0\n }\n },\n 'range-inline-editor': {\n display: 'flex',\n alignItems: 'center',\n flexGrow: 1\n },\n 'range-editor__dash': {\n padding: '0 5px'\n }\n});\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\nimport {nanoid} from 'nanoid';\nimport FormControl from '@mui/material/FormControl';\nimport InputLabel from '@mui/material/InputLabel';\nimport DataTypeValueEditor from '../DataTypeValueEditor/DataTypeValueEditor';\nimport {__, pipe, update} from 'ramda';\nimport {useStyles} from './styles';\nimport i18n from 'ui-i18n';\n\nconst RangeDataTypeValueEditor = ({value = new Array(2), onChange, orientation = 'vertical', ...otherProps}) => {\n const styles = useStyles();\n const rangeEditorFromId = useRef(nanoid());\n const rangeEditorToId = useRef(nanoid());\n\n const fromEditor = (\n <DataTypeValueEditor\n id={rangeEditorFromId.current}\n value={value[0]}\n onChange={pipe(update(0, __, value), onChange)}\n {...otherProps}\n />\n );\n\n const toEditor = (\n <DataTypeValueEditor\n id={rangeEditorToId.current}\n value={value[1]}\n onChange={pipe(update(1, __, value), onChange)}\n {...otherProps}\n />\n );\n\n if (orientation === 'horizontal') {\n return (\n <div className={styles['range-inline-editor']}>\n {fromEditor}\n <div className={styles['range-editor__dash']}>{'—'}</div>\n {toEditor}\n </div>\n );\n } else {\n return (\n <div className={styles['range-editor']}>\n <FormControl variant=\"standard\" fullWidth={true} className={styles['range-editor__control']}>\n <InputLabel htmlFor={rangeEditorFromId.current} shrink={true}>\n {i18n.text('From')}\n </InputLabel>\n {fromEditor}\n </FormControl>\n <FormControl variant=\"standard\" fullWidth={true} className={styles['range-editor__control']}>\n <InputLabel htmlFor={rangeEditorToId.current} shrink={true}>\n {i18n.text('To')}\n </InputLabel>\n {toEditor}\n </FormControl>\n </div>\n );\n }\n};\n\nRangeDataTypeValueEditor.propTypes = {\n value: PropTypes.arrayOf(PropTypes.any),\n onChange: PropTypes.func,\n fieldName: PropTypes.string,\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object\n};\n\nexport default RangeDataTypeValueEditor;\n","import DataTypeValueEditor from '../DataTypeValueEditor/DataTypeValueEditor';\nimport PropTypes from 'prop-types';\nimport React from 'react';\nimport i18n from 'ui-i18n';\nimport {\n DataTypes,\n FilterType,\n isDateRangeFilterOption,\n isDateRangeValue,\n isMultiValueOption,\n isRangeFilterOption,\n mapFilterValue,\n utils,\n wrapInArray\n} from '@reltio/mdm-sdk';\nimport {pipe} from 'ramda';\nimport RangeDataTypeValueEditor from '../RangeDataTypeValueEditor/RangeDataTypeValueEditor';\nimport DateRangeEditor from '../DateRangeEditor/DateRangeEditor';\n\nconst toEditorValue = (dataType) => (value) => {\n switch (dataType) {\n case DataTypes.TYPE_DATE:\n return isDateRangeValue(value) ? value : utils.dates.toLocalDate(value);\n case DataTypes.TYPE_LOCAL_DATE:\n case DataTypes.TYPE_TIMESTAMP:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n return isDateRangeValue(value) ? value : new Date(value);\n default:\n return value;\n }\n};\n\nconst fromEditorValue = (dataType) => (value) => {\n switch (dataType) {\n case DataTypes.TYPE_DATE:\n return isDateRangeValue(value) ? value : Date.UTC(value.getFullYear(), value.getMonth(), value.getDate());\n case DataTypes.TYPE_LOCAL_DATE:\n case DataTypes.TYPE_ACTIVENESS_DATE:\n case DataTypes.TYPE_TIMESTAMP:\n return isDateRangeValue(value) ? value : value.valueOf();\n default:\n return value;\n }\n};\n\nconst FilterValueEditor = ({\n filter: {values = [], fieldName, filter},\n onChange,\n dataTypeDefinition,\n orientation,\n TextFieldProps,\n ...otherProps\n}) => {\n const {type: dataType} = dataTypeDefinition;\n\n const value = mapFilterValue(toEditorValue(dataType))(values[0]);\n const handleChange = pipe(mapFilterValue(fromEditorValue(dataType)), wrapInArray, onChange);\n\n if (isDateRangeFilterOption(filter)) {\n return (\n <DateRangeEditor\n {...otherProps}\n values={value}\n onChange={handleChange}\n dataTypeDefinition={dataTypeDefinition}\n label={i18n.text('Date Range')}\n />\n );\n } else if (isRangeFilterOption(filter)) {\n return (\n <RangeDataTypeValueEditor\n {...otherProps}\n value={value}\n onChange={handleChange}\n fieldName={fieldName}\n dataTypeDefinition={dataTypeDefinition}\n orientation={orientation}\n TextFieldProps={TextFieldProps}\n />\n );\n } else {\n const multipleProp = isMultiValueOption(filter) ? {multiple: true} : {};\n return (\n <DataTypeValueEditor\n {...otherProps}\n {...multipleProp}\n fieldName={fieldName}\n value={value}\n onChange={handleChange}\n dataTypeDefinition={dataTypeDefinition}\n TextFieldProps={TextFieldProps}\n />\n );\n }\n};\n\nFilterValueEditor.propTypes = {\n filter: FilterType,\n orientation: PropTypes.oneOf(['horizontal', 'vertical']),\n onChange: PropTypes.func,\n dataTypeDefinition: PropTypes.object,\n classes: PropTypes.object,\n TextFieldProps: PropTypes.object\n};\n\nexport default FilterValueEditor;\n","import React from 'react';\nimport NumberFormat from 'react-number-format';\nimport TextEditor from '../TextEditor/TextEditor';\nimport {TextFieldProps} from '@mui/material/TextField';\nimport {\n applyPresentationStrategyToValue,\n formatNumber,\n revertPresentationStrategyForValue,\n NumberFormat as TNumberFormat\n} from '@reltio/mdm-sdk';\n\nconst getThousandsGroupStyle = (groupSize?: number) =>\n ({\n 2: 'lakh' as const,\n 3: 'thousand' as const,\n 4: 'wan' as const\n }[groupSize]);\n\ntype NumberFormatCustomProps = {\n onChange: (e: {target: {value: string}}) => void;\n value?: string | number;\n integer?: boolean;\n customInput?: React.ComponentType;\n format?: TNumberFormat;\n};\nconst NumberFormatCustom = React.forwardRef<HTMLInputElement, NumberFormatCustomProps>(\n ({onChange, integer, customInput, format, value, ...otherProps}: NumberFormatCustomProps, ref) => {\n const {strategy, groupSize, ...restFormat} = format || {};\n return (\n <NumberFormat\n {...otherProps}\n value={applyPresentationStrategyToValue(strategy, value)}\n thousandsGroupStyle={getThousandsGroupStyle(groupSize)}\n {...restFormat}\n getInputRef={ref}\n isNumericString={true}\n onValueChange={(values) => {\n onChange({\n target: {\n value: revertPresentationStrategyForValue(strategy, values.value)\n }\n });\n }}\n decimalScale={integer ? 0 : undefined}\n customInput={customInput}\n />\n );\n }\n);\n\ntype NumberEditorProps = {\n multiple?: boolean;\n integer?: boolean;\n format?: TNumberFormat;\n inputProps?: Record<string, unknown>;\n InputProps?: Record<string, unknown>;\n InputLabelProps?: Record<string, unknown>;\n value: string | number | string[] | number[] | undefined;\n onChange: (value: string | number | string[] | number[]) => void;\n className?: string;\n label?: string;\n variant?: TextFieldProps['variant'];\n margin?: TextFieldProps['margin'];\n};\n\nconst NumberEditor = ({integer, format, inputProps, InputProps, ...otherProps}: NumberEditorProps) => (\n <TextEditor\n {...otherProps}\n inputProps={{\n integer,\n format,\n ...inputProps\n }}\n InputProps={{\n ...InputProps,\n inputComponent: NumberFormatCustom\n }}\n getValueLabel={formatNumber(format)}\n />\n);\n\nexport default NumberEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n isCrossedOut: {\n textDecoration: 'line-through'\n }\n});\n","import React, {useEffect, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport classnames from 'classnames';\nimport {isNil, pipe, propEq, when} from 'ramda';\nimport TextField from '@mui/material/TextField';\nimport {getValue, noop} from '../../core';\nimport {useStyles} from './styles';\n\nconst SimpleInput = ({value, onChange = noop, multiline, InputProps = {}, isCrossedOut, ...otherProps}) => {\n const styles = useStyles();\n const {root, ...InputClasses} = InputProps.classes || {};\n const [currentValue, setCurrentValue] = useState('');\n\n useEffect(() => {\n setCurrentValue(isNil(value) ? '' : value);\n }, [value]);\n\n const applyCurrentValueChange = () => {\n if (currentValue !== value) {\n onChange(currentValue);\n }\n };\n\n const onEnterPress = () => {\n if (!multiline) {\n applyCurrentValueChange();\n }\n };\n\n return (\n <TextField\n variant=\"standard\"\n {...otherProps}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(root, {[styles.isCrossedOut]: isCrossedOut}),\n ...InputClasses\n }\n }}\n multiline={multiline}\n value={currentValue}\n onKeyPress={when(propEq('key', 'Enter'), onEnterPress)}\n onBlur={applyCurrentValueChange}\n onChange={pipe(getValue, setCurrentValue)}\n />\n );\n};\n\nSimpleInput.propTypes = {\n value: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n onChange: PropTypes.func,\n multiline: PropTypes.bool,\n InputProps: PropTypes.object,\n className: PropTypes.string,\n isCrossedOut: PropTypes.bool\n};\n\nexport default SimpleInput;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport MultipleInput from '../../MultipleInput/MultipleInput';\nimport SimpleInput from '../../SimpleInput/SimpleInput';\n\nconst TextEditor = ({multiple = false, value, getValueLabel, multiline = false, ...otherProps}) => {\n return multiple ? (\n <MultipleInput {...otherProps} values={value} getValueLabel={getValueLabel} />\n ) : (\n <SimpleInput {...otherProps} value={value} multiline={multiline} />\n );\n};\n\nTextEditor.propTypes = {\n multiple: PropTypes.bool,\n multiline: PropTypes.bool,\n value: PropTypes.oneOfType([\n PropTypes.string,\n PropTypes.arrayOf(PropTypes.string),\n PropTypes.number,\n PropTypes.arrayOf(PropTypes.number)\n ]),\n getValueLabel: PropTypes.func\n};\n\nexport default TextEditor;\n","import {makeStyles} from '@mui/styles';\n\nexport const useStyles = makeStyles({\n suggestionsPlaceholder: {\n padding: '8px 16px',\n textAlign: 'center'\n },\n suggestionsContainer: {\n width: '100%'\n },\n suggestionsContainerOpen: {\n maxHeight: '230px',\n overflowY: 'auto'\n },\n suggestionsList: {\n margin: 0,\n padding: 0,\n listStyleType: 'none'\n },\n suggestionsItem: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n suggestionsItemText: {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n display: 'block'\n },\n inputRoot: {\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n autosizeInput: {\n width: 'auto',\n paddingTop: '10px',\n paddingBottom: '11px',\n marginLeft: '5px',\n overflow: 'hidden',\n '& input': {\n background: '0px center',\n border: 0,\n fontSize: 'inherit',\n outline: 0,\n padding: 0,\n color: 'inherit'\n }\n },\n rawInput: {\n height: '19px',\n lineHeight: '19px',\n paddingTop: '10px',\n paddingBottom: '11px'\n },\n isCrossedOut: {\n textDecoration: 'line-through'\n },\n multipleTextField: {\n flexWrap: 'wrap',\n color: 'rgba(0,0,0,0.87)',\n fontSize: '14px'\n },\n multipleTextFieldInput: {\n flex: '1 0 25px',\n flexWrap: 'wrap'\n },\n multipleTextFieldAdornedStart: {\n paddingLeft: '8px'\n },\n underline: {\n '&:before': {\n display: 'none'\n }\n }\n});\n","import React, {useCallback, useRef, useMemo, useState, useEffect} from 'react';\nimport {identity, isEmpty, nthArg, path, pipe, prop, remove, T, uniq} from 'ramda';\nimport classnames from 'classnames';\nimport {debounce, isEmptyValue} from '@reltio/mdm-sdk';\nimport Autosuggest from 'react-autosuggest';\nimport AutosizeInput from 'react-input-autosize';\nimport TextField, {TextFieldProps} from '@mui/material/TextField';\nimport MenuItem from '@mui/material/MenuItem';\nimport Paper from '@mui/material/Paper';\nimport {useDidUpdateEffect} from '../../../hooks';\nimport Popper from '../../Popper/Popper';\nimport {NoResults} from '../../../components/EmptySearchResult';\nimport ExpandedValueTooltip from '../../ExpandedValueTooltip/ExpandedValueTooltip';\nimport ValueChip from '../../ValueChip/ValueChip';\nimport LoadMoreButton from '../../commonReactSelectComponents/LoadMoreButton';\nimport {useStyles} from './styles';\n\nconst FETCH_DEBOUNCE_INTERVAL = 300;\nconst PAGE_SIZE = 50;\n\nenum ChangeMethod {\n Type = 'type',\n Escape = 'escape',\n Click = 'click',\n Enter = 'enter'\n}\n\ntype CommonProps = Omit<TextFieldProps, 'onChange' | 'value'> & {\n getSuggestions?: (value: string, pageSize: number, pageNumber?: number) => Promise<string[]>;\n max?: number;\n multiple?: boolean;\n fullWidth?: boolean;\n isCrossedOut?: boolean;\n};\n\ntype MultipleProps = CommonProps & {\n value?: string[];\n onChange: (values: string[]) => void;\n multiple: true;\n};\n\ntype SingleProps = CommonProps & {\n value?: string;\n onChange: (value: string) => void;\n multiple?: false;\n};\n\nexport type Props = MultipleProps | SingleProps;\n\nconst TypeaheadEditor = ({\n value,\n max = PAGE_SIZE,\n getSuggestions,\n onChange,\n multiple,\n fullWidth,\n InputProps = {},\n isCrossedOut = false,\n ...inputProps\n}: Props) => {\n const styles = useStyles();\n const inputRef = useRef<HTMLInputElement>(null);\n\n const [suggestions, setSuggestions] = useState<string[]>([]);\n const [isPlaceholderVisible, setPlaceholderVisibility] = useState(false);\n const [pageNumber, setPageNumber] = useState(1);\n const [nextPageIsLoading, setNextPageIsLoading] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [highlightedItem, setHighlightedItem] = useState<string>(null);\n\n const pageSizeForRequest = max + 1;\n const displayedSuggestions = useMemo(() => suggestions.slice(0, pageNumber * max), [suggestions, pageNumber, max]);\n const showMoreButton = suggestions.length > displayedSuggestions.length;\n\n const isFocused = () => inputRef.current?.querySelector('input') === document.activeElement;\n\n const fetchSuggestions = useCallback(\n async ({value}: {value: string}) => {\n const response = await getSuggestions(value.trim(), pageSizeForRequest);\n setSuggestions(response);\n setPlaceholderVisibility(isEmpty(response) && isFocused());\n },\n [getSuggestions, pageSizeForRequest]\n );\n\n const debouncedFetchSuggestions = useCallback(debounce(fetchSuggestions, FETCH_DEBOUNCE_INTERVAL), [\n getSuggestions\n ]);\n\n const handleLoadMoreSuggestions = useCallback(async () => {\n setNextPageIsLoading(true);\n try {\n const response = await getSuggestions(inputValue, pageSizeForRequest, pageNumber + 1);\n setSuggestions((prevSuggestions) => [...prevSuggestions, ...response]);\n setPageNumber((prevPageNumber) => prevPageNumber + 1);\n } finally {\n setNextPageIsLoading(false);\n }\n }, [getSuggestions, inputValue, pageNumber, pageSizeForRequest]);\n\n const handleSuggestionsFetchRequested = useCallback(\n (value: {reason: string; value: string}) => {\n if (value.reason === 'input-changed') {\n debouncedFetchSuggestions(value);\n } else {\n fetchSuggestions(value);\n }\n },\n [debouncedFetchSuggestions, fetchSuggestions]\n );\n\n const handleSuggestionsClearRequested = useCallback(() => {\n setSuggestions([]);\n setPlaceholderVisibility(false);\n setPageNumber(1);\n }, []);\n\n const handleSuggestionHighlighted = useCallback(({suggestion}: {suggestion: string}) => {\n setHighlightedItem(suggestion);\n }, []);\n\n const handleInputValueChange = useCallback(\n ({newValue, method}: {newValue: string; method: ChangeMethod}) => {\n switch (method) {\n case ChangeMethod.Type:\n case ChangeMethod.Escape:\n setInputValue(newValue);\n break;\n case ChangeMethod.Click:\n case ChangeMethod.Enter: {\n if (multiple === true) {\n if (newValue) onChange(uniq([...(value || []), newValue]));\n setInputValue('');\n } else {\n setInputValue(newValue);\n }\n }\n }\n },\n [multiple, onChange, value]\n );\n\n const handleKeyDown = useCallback(\n (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.code !== 'Enter' || highlightedItem) return;\n if (multiple === true) {\n handleInputValueChange({method: ChangeMethod.Enter, newValue: inputValue});\n } else {\n onChange(inputValue);\n }\n },\n [handleInputValueChange, onChange, highlightedItem, inputValue, multiple]\n );\n\n const handleBlur = useCallback(() => {\n if (multiple !== true) onChange(inputValue);\n }, [inputValue, onChange, multiple]);\n\n useEffect(() => {\n if (multiple !== true) setInputValue(value ?? '');\n }, [value, multiple]);\n\n useDidUpdateEffect(() => {\n setPageNumber(1);\n }, [inputValue]);\n\n return (\n <Autosuggest\n key={multiple}\n suggestions={displayedSuggestions}\n shouldRenderSuggestions={T}\n getSuggestionValue={identity}\n onSuggestionsFetchRequested={handleSuggestionsFetchRequested}\n onSuggestionsClearRequested={handleSuggestionsClearRequested}\n onSuggestionHighlighted={handleSuggestionHighlighted}\n theme={{\n container: fullWidth ? styles.suggestionsContainer : '',\n suggestionsList: styles.suggestionsList,\n suggestionsContainerOpen: styles.suggestionsContainerOpen\n }}\n inputProps={{\n value: inputValue,\n onChange: pipe(nthArg(1), handleInputValueChange),\n onKeyDown: handleKeyDown,\n onBlur: handleBlur,\n fullWidth,\n variant: 'standard',\n autoComplete: 'nope',\n ...inputProps\n }}\n renderInputComponent={({ref, ...otherProps}) => {\n const commonClasses = {\n underline: classnames({[styles.underline]: isEmptyValue(value)}),\n input: classnames(styles['rawInput'], path(['classes', 'input'], InputProps))\n };\n\n return multiple === true ? (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n startAdornment: value?.map((item, index) => (\n <ValueChip key={item} label={item} onDelete={() => onChange(remove(index, 1, value))} />\n )),\n inputComponent: AutosizeInput,\n classes: {\n root: classnames(styles.multipleTextFieldInput, path(['classes', 'root'], InputProps)),\n ...commonClasses,\n input: classnames(styles.autosizeInput, commonClasses.input),\n adornedStart: styles.multipleTextFieldAdornedStart\n }\n }}\n classes={{root: styles.multipleTextField}}\n />\n ) : (\n <TextField\n {...otherProps}\n ref={inputRef}\n inputRef={ref}\n InputProps={{\n ...InputProps,\n classes: {\n root: classnames(styles.inputRoot, path(['classes', 'root'], InputProps), {\n [styles.isCrossedOut]: isCrossedOut\n }),\n ...commonClasses\n }\n }}\n />\n );\n }}\n renderSuggestionsContainer={({children, containerProps: {ref, ...restContainerProps}}) => (\n <Popper anchorEl={inputRef.current} open={Boolean(children) || isPlaceholderVisible}>\n <Paper\n {...restContainerProps}\n ref={ref}\n square={true}\n style={{width: prop('clientWidth', inputRef.current)}}\n >\n {children || <NoResults className={styles.suggestionsPlaceholder} />}\n {showMoreButton && !isPlaceholderVisible && (\n <LoadMoreButton\n onClick={handleLoadMoreSuggestions}\n onMouseDown={(event) => event.preventDefault()}\n loading={nextPageIsLoading}\n />\n )}\n </Paper>\n </Popper>\n )}\n renderSuggestion={(suggestion, {isHighlighted}) => (\n <MenuItem className={styles.suggestionsItem} selected={isHighlighted} component=\"div\">\n <ExpandedValueTooltip value={suggestion}>\n <div className={styles.suggestionsItemText}>{suggestion}</div>\n </ExpandedValueTooltip>\n </MenuItem>\n )}\n />\n );\n};\n\nexport default TypeaheadEditor;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {prop} from 'ramda';\nimport ValueChip from '../../../ValueChip/ValueChip';\nimport CancelIcon from '@mui/icons-material/Cancel';\n\nconst MultiValueChip = (props) => {\n const {children, data, removeProps} = props;\n\n return (\n <ValueChip\n tabIndex={-1}\n label={children}\n count={prop('formattedNumber', data)}\n onDelete={removeProps.onClick}\n deleteIcon={<CancelIcon {...props.removeProps} />}\n />\n );\n};\n\nMultiValueChip.propTypes = {\n children: PropTypes.node,\n data: PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string,\n number: PropTypes.number\n }).isRequired,\n removeProps: PropTypes.shape({\n onClick: PropTypes.func.isRequired,\n onMouseDown: PropTypes.func.isRequired,\n onTouchEnd: PropTypes.func.isRequired\n }).isRequired\n};\n\nexport default MultiValueChip;\n","import PropTypes from 'prop-types';\nimport {AttributeTypeType, FilterValueType, SortOrderType} from '@reltio/mdm-sdk';\n\nconst SelectValueType = PropTypes.oneOfType([PropTypes.string, PropTypes.number, PropTypes.object]);\n\nconst DropDownEntryType = PropTypes.shape({\n value: SelectValueType.isRequired,\n label: PropTypes.string\n});\n\nconst DropDownGroupEntryType = PropTypes.shape({\n label: PropTypes.string.isRequired,\n values: PropTypes.arrayOf(PropTypes.object).isRequired\n});\n\nconst ColumnDataType = PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object,\n resizable: PropTypes.bool,\n sortable: PropTypes.bool,\n filterable: PropTypes.bool,\n headCellRenderer: PropTypes.func,\n rowCellValueRenderer: PropTypes.func,\n nestedPath: PropTypes.arrayOf(PropTypes.string)\n});\n\nconst SortingType = PropTypes.shape({\n field: PropTypes.string,\n order: SortOrderType\n});\n\nconst ColumnFilterType = PropTypes.shape({\n value: PropTypes.oneOfType([FilterValueType, PropTypes.arrayOf(FilterValueType)]),\n filter: PropTypes.string\n});\n\nconst PlainColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n dataTypeDefinition: PropTypes.object\n })\n);\n\nconst GroupedColumnsDataType = PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string,\n label: PropTypes.string,\n columns: PlainColumnsDataType\n })\n);\n\nconst ColumnsDataType = PropTypes.oneOfType([PlainColumnsDataType, GroupedColumnsDataType]);\n\nconst QueryBuilderAttributeDataType = PropTypes.shape({\n title: PropTypes.string,\n pathToTitle: PropTypes.arrayOf(PropTypes.string),\n fieldName: PropTypes.string,\n entityTypeUri: PropTypes.string,\n attrType: AttributeTypeType,\n uri: PropTypes.string,\n groupName: PropTypes.string\n});\n\nconst QueryBuilderAttributeType = PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n values: PropTypes.array,\n data: QueryBuilderAttributeDataType,\n filter: PropTypes.string,\n operator: PropTypes.string\n});\n\nexport {\n SelectValueType,\n DropDownEntryType,\n DropDownGroupEntryType,\n ColumnDataType,\n SortingType,\n ColumnFilterType,\n ColumnsDataType,\n GroupedColumnsDataType,\n QueryBuilderAttributeDataType,\n QueryBuilderAttributeType\n};\n","import React from 'react';\n\ntype DependentLookupAutopopulationContextValue = {\n id: string;\n isTouched: boolean;\n onTouch: (id: string) => void;\n};\n\nexport const DependentLookupAutopopulationContext =\n React.createContext<DependentLookupAutopopulationContextValue>(null);\n\nDependentLookupAutopopulationContext.displayName = 'DependentLookupAutopopulationContext';\n","import React from 'react';\n\nexport const SearchValueContext = React.createContext<string>('');\n\nSearchValueContext.displayName = 'SearchValueContext';\n"],"names":["withContext","Context","contextSelector","Component","PureComponent","memo","displayName","name","props","Consumer","contextState","convertValuesToDate","pipe","getDateRangeByValue","defaultTo","map","value","Date","useStyles","makeStyles","theme","paper","minWidth","menuItem","minHeight","menuText","color","palette","text","primary","fontSize","lineHeight","letterSpacing","dateFormat","moment","longDateFormat","WithDateRangeSelector","values","options","getValuesDateRange","onChange","dataTypeDefinition","type","DataTypes","DateRangePickerProps","MenuProps","componentProps","rangeOptions","useMemo","Object","AllDateRangeValues","option","label","getRangeOptionLabel","inputRef","useRef","isPickingDate","setIsPickingDate","useState","open","setOpen","styles","onItemClick","handleToggle","useCallback","onCancel","isTimestamp","enhancePlaceHolder","timeFormat","replace","identity","format","getLocaleFormat","editorPlaceholder","toUpperCase","editorLabel","placeholder","cond","isEmptyValue","always","is","Array","dateTimeMask","isNil","formatDataTypeValue","formatValue","join","String","find","propEq","getEditorLabel","anchorOrigin","vertical","horizontal","transformOrigin","ref","onMenuToggle","isMenuOpen","Popover","anchorEl","current","onClose","elevation","DateRangePicker","onApply","Menu","variant","autoFocus","classes","MenuListProps","autoFocusItem","style","width","prop","MenuItem","key","onClick","className","Typography","root","BasicTable","forwardRef","columnsData","rowsData","context","sorting","onSort","renderRowCell","defaultRenderRowCell","getRowCellHeight","defaultGetRowCellHeight","filters","onFilter","headRowHeight","maxRowValuesCount","Infinity","autosizing","maxHeight","getIdFromRowValue","otherProps","tableHeadData","getTableHeadData","tableRowsData","collapseContextValue","useCollapsibleTableRows","toggleRowCollapse","getIsRowCollapsed","onStartDragRow","setTimeout","forEach","_","index","length","defaultRowHeight","fixHead","headData","sortField","sortOrder","COLUMN_FILTER_HEIGHT","BasicTableType","PropTypes","ColumnDataType","isRequired","SortingType","ColumnFilterType","defaultColumnWidth","defaultColumnMinWidth","highlightRow","cellBorder","dragColumnBody","dragColumnHead","draggableHeadCell","cellWrapper","cellContentWrapper","hoveredRowRightContentContainer","hoveredRowRightContentWrapper","propTypes","HeadCellRenderer","HeadCellRendererWithFilterAtBottom","columnFilter","display","flexDirection","height","flex","defaultWrapper","whiteSpace","overflow","textOverflow","padding","blobWrapper","position","overflowY","overflowX","boxSizing","stopPropagation","event","BlobRenderer","onScroll","DefaultCellValueRenderer","columnData","dataTypeValue","DataTypeValue","ExpandedValueTooltip","RowCollapseContext","React","TableContext","maxWidth","justifyContent","marginRight","backgroundColor","filterOption","filterValue","onDelete","attributePresentations","useMdmAttributePresentations","dateMask","useMdmDateMask","useMdmDateTimeMask","canFilterAcceptValues","checkIfOptionHasValues","optionLabel","convertedValue","mapFilterValue","filterLabel","getFilterValueLabel","Chip","dropDownEditor","marginTop","marginBottom","selectorRoot","paddingTop","paddingBottom","FilterEditor","filterOptions","valueEditorProps","selectStyles","useSelectStyles","firstOption","filter","DropDownEditor","TextFieldProps","commonTextFieldProps","classnames","entries","assoc","__","icon","FilterValueEditor","FilterType","ColumnFilter","columnId","filterOptionsData","setAnchorEl","setColumnFilter","containerRef","mdmFilter","columnFilterToMdmFilter","id","applyFilterChange","newFilter","clearFilter","applyChangesAndClose","validateFilter","getFilterOptionData","getFilterDataTypeDefinition","getDataTypeDefinitionForFilterValue","Maybe","pluck","orSome","getFilterOptionsForDataTypeDefinition","getFilterOptionLabel","IconButton","dropDownButton","currentTarget","disableFocusRipple","size","ArrowDropDown","PaperProps","getBoundingClientRect","filterMenu","TransitionProps","onEnter","mdmFilterToColumnFilter","onKeyPress","preventDefault","fullWidth","filterable","HeadCellRendererWithFilter","headCellData","useColumnFilterStyles","TOTAL_ROW_SPAN_KEY","NESTED_KEY_DELIMITER","getSiblingSubRowsKeyBySubRowKey","split","dropLast","getParentRowKeyBySiblingsSubRowsKey","unless","getParentRowKeyBySubRowKey","countParentSpanByAllSubRows","rowSpanData","siblingSubRowsKey","pickBy","_val","sum","calcParentRowSpan","subRowKey","parentKey","currentParentSpan","propOr","actualParentSpan","nextRowSpanData","validateParentRowSpan","subRowsKeys","spanDiff","lowestSubRowKey","lowestSubRowSpan","calcRowSpansForNestedKeys","reduce","nestedKey","omit","keys","sortBy","groupBy","toPairs","chainWithIndex","addIndex","chain","flattenNestedColumnValues","indexPath","head","isArray","getNestedKeyForNestedColumnCell","curry","columnNestedPath","cell","zip","unnest","applyCellRenderer","rowIndex","rowValue","cells","columnIndex","findIndex","rowCellValueRenderer","CellValueRenderer","cellIndex","mapObjIndexed","calcHeights","rowData","calcHeightForColumnCells","getNestedKeysFromRowCells","reject","uniq","calcRowSpansData","calcRowSpans","rowSpansData","isEmpty","rowSpan","addRowSpansToColumnCells","buildRowValues","acc","nestedPath","columnValues","nestedValues","calcNestedKeys","parseNestedColumnValues","wrapInArrayIfNeeded","applyValuesCountConstraint","maxValuesCount","some","evolve","slice","defaultGetIdFromRowValue","getTableRowsData","rowValues","getRowMaxValuesCount","val","data","description","sortable","resizable","draggable","autoResize","initialWidth","headCellRenderer","withFilterAtBottom","DefaultHeadCellRenderer","renderer","withFilter","calcMaxValuesCount","maxCount","cellValues","maxSubNestedValuesCount","add","max","maxPlainValuesCount","Math","getMaxRowValuesCount","valuesCount","expandedIndexes","setExpandedIndexes","includes","equals","concat","remove","getIsRowCollapsible","prevRowsData","usePrevious","useDidUpdateEffect","prevRowValue","rawValue","fieldName","buildColumnsFilter","buildFilterQueryString","alignItems","marginLeft","borderRadius","rich","localeDateFormat","localeTimeFormat","formattedValue","isAttributeValueLink","target","href","addProtocolToLink","underline","NoResults","message","i18n","highlight","fontWeight","multiTerm","REG_SPACES","RegExp","getMultiTerms","trim","toLower","sort","ascend","reverse","highlightedValues","regValues","item","parts","part","i","toLocaleLowerCase","inputRoot","flexWrap","paddingLeft","autosizeInput","background","border","outline","isCrossedOut","textDecoration","AutosizeInputWrapper","CustomInputComponent","other","customInput","AutosizeInput","EMPTY_VALUES_EDIT_HINT","MultipleInput","InputProps","inputProps","noop","getValueLabel","InputClasses","inputValue","setInputValue","removeValueAt","hasValues","appendInputValueIfNotEmpty","isFocused","setIsFocused","hintText","Tooltip","title","TextField","getValue","startAdornment","ValueChip","inputComponent","input","when","onKeyDown","onFocus","onBlur","multiSelect","chips","MultipliableSelect","multiple","children","getValuePlaceholder","select","SelectProps","renderValue","selected","onMouseDown","SelectValueType","highlightedText","keywordValue","useContext","SearchValueContext","Highlighter","useChipStyles","margin","deleteIcon","container","count","secondary","classesProp","otherProp","mergeClasses","loadMoreContainer","moreButton","buttonLabel","loadingSpinner","alignSelf","loading","CircularProgress","Button","selectProps","menuListFooter","checkIcon","transform","OptionWithCheckIcon","isSelected","Option","Check","BooleanEditor","Checkbox","checked","getChecked","editors","checkboxPrimary","divider","content","top","left","right","disabled","FormControlLabel","control","not","isGroupEntry","has","flattenEntry","depth","entry","isGroup","flattenGroupedEntries","findEntryByValue","_value","emptyLabel","GroupedDropDownEditor","flattenedEntries","selectedValues","disableAutoFocusItem","toString","DropDownEntryType","DropDownGroupEntryType","splitOnce","separator","string","first","getLookupByUri","useWith","path","byLabel","LookupEditor","lookupCode","lookupTypeCode","lookups","getLookups","codeToLookup","useEffect","catch","getLookupPath","uri","parent","buildEntry","lookup","code","getLookupLabel","buildEntries","hierarchy","assocPath","buildLookupEntries","commonProps","LookupValueType","SimpleLookupType","getOptionLabel","obj","buildLookupOptions","lookupA","lookupB","labelALower","toLowerCase","labelBLower","utils","dropdownIndicator","cursor","clearIndicator","isUnresolvedLookup","lookupValue","isResolvedLookupCode","resolvedValues","hasPath","SelectComponents","IndicatorSeparator","EmptyStub","LoadingIndicator","DropdownIndicator","MenuWithPopper","MenuList","MultiValue","MultiValueChip","Input","inputClassName","isHidden","MAX_DEPENDENT_LOOKUP_VALUES","DependentLookupEditor","parents","resolveLookups","selectRef","setOptions","pageNumber","setPageNumber","optionsAreLoading","setOptionsAreLoading","onLookupsResolve","requestedCodes","setRequestedCodes","resolvedCodes","codesToResolve","partition","resolvedLookups","unrequestedCodes","useLookupsResolver","codeValues","needFocusRef","document","activeElement","getElementsByTagName","handler","focus","addEventListener","removeEventListener","useSavingFocus","defaultOptions","handleChange","markAsTouched","resetOptions","debouncedLoadOptions","restoreSelectedOption","loadOptions","Promise","resolve","displayNamePrefix","offset","then","buildOptions","finally","loadMoreOptions","page","debounce","callback","initialDefaultOptions","isLoading","isLoadingDefaultOptions","setDefaultOptions","setInitialDefaultOptions","setIsLoading","safePromise","useSafePromise","prevValue","useDefaultOptions","displayedOptions","showMoreButton","isTouched","onTouch","DependentLookupAutopopulationContext","useAutopopulation","Select","isMulti","menuPortalTarget","body","menuPlacement","innerRef","menuPortal","base","zIndex","noOptionsMessage","components","isClearable","isSearchable","controlShouldRenderValue","undefined","T","onInputChange","newValue","action","loadingMessage","hideSelectedOptions","isDisabled","getOptionValue","either","LoadMoreButton","hiddenLabel","SelectEditor","DataTypeValueEditor","inputStyles","useInputStyles","editorContext","lookupsLoaded","useMdmAction","lookupsForTypeResolved","tenant","useMdmTenant","useMdmLookups","globalSearchRequestOptions","useMdmGlobalSearchRequestOptions","typeaheadGetSuggestion","searchValue","pageNo","getFacetedAttributeData","dependentLookupCode","getDependentLookups","lookupsList","codeValue","resolveLookupsList","response","lookupData","getSuggestions","getNumberFormat","intl","useEditorContext","mergeDeepLeft","marginDense","disableUnderline","booleanRadioEditorClassName","TextEditor","maxRows","minRows","multiline","NumberEditor","integer","DateEditor","slotProps","textField","TimestampEditor","TypeaheadEditor","FileTypeEditor","build","transition","inputLabel","main","adornedEnd","paddingRight","uppercase","textTransform","DateRangeEditor","endAdornment","DropdownIndicatorWithIconButton","menuIsOpen","innerProps","readOnly","InputLabelProps","shrink","withDateRangeSelector","otherClasses","button","fileUploaderInput","uploaded","cancelIcon","showFileUploadError","error","console","warn","ErrorPopup","getRequestErrorMessage","UploadMode","supportedFileTypes","onUpload","onBeforeUpload","fileUploader","supportedFileTypesString","Fragment","click","uploadedFiles","files","dataTransfer","accept","UploadFileButton","link","filename","onError","isValidLink","mode","setMode","setName","onErrorHandler","onUploadHandler","result","switchToInitMode","getLabel","Link","Cancel","onTouchEnd","editor","downloadLink","expirationDate","now","file","uploadFileForSearch","getTime","onCancelHandler","flexGrow","RangeDataTypeValueEditor","orientation","rangeEditorFromId","nanoid","rangeEditorToId","fromEditor","update","toEditor","FormControl","InputLabel","htmlFor","dataType","isDateRangeValue","toEditorValue","UTC","getFullYear","getMonth","getDate","valueOf","fromEditorValue","wrapInArray","isDateRangeFilterOption","isRangeFilterOption","multipleProp","isMultiValueOption","getThousandsGroupStyle","groupSize","NumberFormatCustom","strategy","restFormat","applyPresentationStrategyToValue","thousandsGroupStyle","getInputRef","isNumericString","onValueChange","revertPresentationStrategyForValue","decimalScale","formatNumber","SimpleInput","currentValue","setCurrentValue","applyCurrentValueChange","suggestionsPlaceholder","textAlign","suggestionsContainer","suggestionsContainerOpen","suggestionsList","listStyleType","suggestionsItem","suggestionsItemText","rawInput","multipleTextField","multipleTextFieldInput","multipleTextFieldAdornedStart","PAGE_SIZE","ChangeMethod","suggestions","setSuggestions","isPlaceholderVisible","setPlaceholderVisibility","nextPageIsLoading","setNextPageIsLoading","highlightedItem","setHighlightedItem","pageSizeForRequest","displayedSuggestions","fetchSuggestions","async","querySelector","debouncedFetchSuggestions","handleLoadMoreSuggestions","prevSuggestions","prevPageNumber","handleSuggestionsFetchRequested","reason","handleSuggestionsClearRequested","handleSuggestionHighlighted","suggestion","handleInputValueChange","method","Type","Escape","Click","Enter","handleKeyDown","handleBlur","shouldRenderSuggestions","getSuggestionValue","onSuggestionsFetchRequested","onSuggestionsClearRequested","onSuggestionHighlighted","nthArg","autoComplete","renderInputComponent","commonClasses","adornedStart","renderSuggestionsContainer","containerProps","restContainerProps","Popper","Boolean","Paper","square","renderSuggestion","isHighlighted","component","removeProps","tabIndex","number","field","order","SortOrderType","FilterValueType","PlainColumnsDataType","GroupedColumnsDataType","columns","ColumnsDataType","QueryBuilderAttributeDataType","pathToTitle","entityTypeUri","attrType","AttributeTypeType","groupName","QueryBuilderAttributeType","operator"],"sourceRoot":""}