@reltio/remotes 1.4.1545 → 1.4.1547
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.
- package/122.js +2 -0
- package/122.js.map +1 -0
- package/1268.js +1 -1
- package/1852.js +2 -0
- package/1852.js.map +1 -0
- package/2125.js +1 -1
- package/2125.js.map +1 -1
- package/2890.js +1 -1
- package/2890.js.map +1 -1
- package/3346.js +2 -0
- package/3346.js.map +1 -0
- package/3396.js +1 -1
- package/3396.js.map +1 -1
- package/3468.js +2 -0
- package/3468.js.map +1 -0
- package/{574.css → 3515.css} +1 -1
- package/3515.css.map +1 -0
- package/{574.js → 3515.js} +2 -2
- package/3515.js.map +1 -0
- package/3540.js +1 -1
- package/3540.js.map +1 -1
- package/3726.js +2 -0
- package/3726.js.map +1 -0
- package/4120.js +1 -1
- package/4120.js.map +1 -1
- package/4183.js +1 -1
- package/4183.js.map +1 -1
- package/4469.js +1 -1
- package/4469.js.map +1 -1
- package/4571.js +1 -1
- package/4701.js +2 -0
- package/4701.js.map +1 -0
- package/4806.js +3 -0
- package/4806.js.map +1 -0
- package/6396.js +2 -0
- package/6396.js.map +1 -0
- package/705.js +2 -0
- package/705.js.map +1 -0
- package/7416.js +1 -1
- package/7416.js.map +1 -1
- package/7594.js +2 -0
- package/7594.js.map +1 -0
- package/769.js +1 -1
- package/769.js.map +1 -1
- package/8061.js +2 -0
- package/8061.js.map +1 -0
- package/8340.js +1 -1
- package/8340.js.map +1 -1
- package/8684.js +1 -1
- package/package.json +1 -1
- package/remoteEntry.js +1 -1
- package/remoteEntry.js.map +1 -1
- package/1308.js +0 -2
- package/1308.js.map +0 -1
- package/2663.js +0 -2
- package/2663.js.map +0 -1
- package/2899.js +0 -3
- package/2899.js.map +0 -1
- package/316.js +0 -2
- package/316.js.map +0 -1
- package/385.js +0 -2
- package/385.js.map +0 -1
- package/566.js +0 -2
- package/566.js.map +0 -1
- package/574.css.map +0 -1
- package/574.js.map +0 -1
- package/6233.js +0 -2
- package/6233.js.map +0 -1
- package/6299.js +0 -2
- package/6299.js.map +0 -1
- package/6578.js +0 -2
- package/6578.js.map +0 -1
- package/7198.js +0 -2
- package/7198.js.map +0 -1
- package/8051.js +0 -2
- package/8051.js.map +0 -1
- package/8594.js +0 -2
- package/8594.js.map +0 -1
- /package/{2899.js.LICENSE.txt → 4806.js.LICENSE.txt} +0 -0
package/4469.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"4469.js","mappings":"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","sources":["webpack://@reltio/remotes/../../node_modules/@date-io/moment/build/index.esm.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/HideOnShrink/HideOnShrink.js","webpack://@reltio/remotes/../components/src/components/SelectorWithOnlyOptionAutoSelect/styles.js","webpack://@reltio/remotes/../components/src/components/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.js","webpack://@reltio/remotes/../components/src/components/ViewMoreToggle/styles.js","webpack://@reltio/remotes/../components/src/components/ViewMoreToggle/ViewMoreToggle.js","webpack://@reltio/remotes/../components/src/hooks/useSavedStateForEntityType.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/helpers/filtersHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/helpers/tableHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/styles.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/RowCellRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/HeadCellRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/ActorsRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/DefaultCellValueRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/BlobRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/LinkRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/AttributesRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/helpers/dataHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/styles.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/InteractionsTable.tsx","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/styles.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/InteractionTypeSelector/InteractionTypeSelector.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/InteractionsTableHeader.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/stateReducer.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/styles.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/index.tsx","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/hooks/useInteractions.ts","webpack://@reltio/remotes/../interactions/src/index.tsx","webpack://@reltio/remotes/./src/interactions.ts"],"sourcesContent":["import defaultMoment from 'moment';\n\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, moment = _b.moment;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.moment = instance || moment || defaultMoment;\n this.locale = locale;\n }\n MomentUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.moment(value, format, true);\n };\n MomentUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = this.moment(value);\n moment.locale(this.locale);\n return moment;\n };\n MomentUtils.prototype.isValid = function (value) {\n return this.moment(value).isValid();\n };\n MomentUtils.prototype.isNull = function (date) {\n return date === null;\n };\n MomentUtils.prototype.getDiff = function (date, comparing) {\n return date.diff(comparing);\n };\n MomentUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n MomentUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n MomentUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n MomentUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n MomentUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n MomentUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n MomentUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n MomentUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n MomentUtils.prototype.format = function (date, formatString) {\n date.locale(this.locale);\n return date.format(formatString);\n };\n MomentUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n MomentUtils.prototype.getHours = function (date) {\n return date.get(\"hours\");\n };\n MomentUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n MomentUtils.prototype.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n MomentUtils.prototype.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n MomentUtils.prototype.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n MomentUtils.prototype.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n MomentUtils.prototype.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n MomentUtils.prototype.getMonth = function (date) {\n return date.get(\"month\");\n };\n MomentUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n MomentUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n MomentUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n MomentUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n MomentUtils.prototype.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n MomentUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n MomentUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n MomentUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n MomentUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n MomentUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n MomentUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n MomentUtils.prototype.getYear = function (date) {\n return date.get(\"year\");\n };\n MomentUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n MomentUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n MomentUtils.prototype.getWeekdays = function () {\n return this.moment.weekdaysShort(true);\n };\n MomentUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.moment(value).isSame(comparing);\n };\n MomentUtils.prototype.getWeekArray = function (date) {\n var start = date\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = date\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n MomentUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.moment(start).startOf(\"year\");\n var endDate = this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n MomentUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, this.yearMonthFormat);\n };\n MomentUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n MomentUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n MomentUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n MomentUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n MomentUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n MomentUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n MomentUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n MomentUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return MomentUtils;\n}());\n\nexport default MomentUtils;\n","import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\n\nconst EmptyStub = () => <div style={{display: 'none'}} />;\n\nconst HideOnShrink = ({widthToHide, children}) => (\n <ReactResizeDetector\n handleWidth={true}\n render={({width}) => (width > widthToHide ? <>{children}</> : <EmptyStub />)}\n />\n);\n\nHideOnShrink.propTypes = {\n children: PropTypes.node,\n widthToHide: PropTypes.number.isRequired\n};\n\nexport default HideOnShrink;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n onlyValue: {\n color: 'rgba(0,0,0,.6)',\n fontSize: '13px',\n fontWeight: 'normal',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n select: {\n fontSize: '13px',\n color: 'rgba(0,0,0,.6)',\n paddingLeft: '15px',\n '&&': {\n paddingRight: '35px'\n }\n },\n selectMenu: {\n '& li': {\n fontSize: '13px',\n height: '32px'\n }\n },\n textField: {\n maxWidth: '100%'\n }\n});\n","import React, {useEffect} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport {useStyles} from './styles';\nimport DropDownEditor from '../editors/DropDownEditor/DropDownEditor';\n\nconst SelectorWithOnlyOptionAutoSelect = ({value, onChange, options, classes = {}, emptyLabel}) => {\n const styles = useStyles();\n\n const [firstOption, ...moreOptions] = options;\n const hasOnlyOneOptionToSelect = moreOptions.length === 0;\n\n useEffect(() => {\n if (hasOnlyOneOptionToSelect && value !== firstOption.value) {\n onChange(firstOption.value);\n }\n }, [firstOption.value]); // eslint-disable-line\n\n const displayEmpty = !!emptyLabel;\n\n return (\n <div className={classes.root}>\n {hasOnlyOneOptionToSelect ? (\n <Typography className={classes.onlyValue || styles.onlyValue} variant={'h6'}>\n {firstOption.label}\n </Typography>\n ) : (\n <DropDownEditor\n displayEmpty={displayEmpty}\n disableUnderline={true}\n classes={{\n select: classes.select || styles.select\n }}\n TextFieldProps={{\n classes: {\n root: classes.textField || styles.textField\n }\n }}\n MenuProps={{\n classes: {\n list: classes.selectMenu || styles.selectMenu\n }\n }}\n value={value || ''}\n entries={displayEmpty ? [{value: '', label: emptyLabel}, ...options] : options}\n onChange={(value) => onChange(value || null)}\n />\n )}\n </div>\n );\n};\n\nSelectorWithOnlyOptionAutoSelect.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n ),\n classes: PropTypes.shape({\n root: PropTypes.string,\n onlyValue: PropTypes.string,\n select: PropTypes.string,\n selectMenu: PropTypes.string,\n textField: PropTypes.string\n }),\n emptyLabel: PropTypes.string\n};\n\nexport default SelectorWithOnlyOptionAutoSelect;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewMoreLessLink: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n\n arrow: {\n marginRight: '8px',\n marginLeft: '-2px',\n transform: 'rotate(0deg)',\n transition: 'transform 0.35s ease'\n },\n\n rotated: {\n transform: 'rotate(-180deg)'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Link as Link} from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport {useStyles} from './styles';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\n\nconst ViewMoreToggle = ({active, onClick, className}) => {\n const styles = useStyles();\n return (\n <Link className={classnames(styles.viewMoreLessLink, className)} onClick={onClick} underline=\"none\">\n <ArrowDropDownIcon className={classnames(styles.arrow, {[styles.rotated]: active})} />\n {active ? i18n.text('View less') : i18n.text('View more')}\n </Link>\n );\n};\n\nViewMoreToggle.propTypes = {\n active: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string\n};\n\nexport default ViewMoreToggle;\n","import {useCallback, useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from './useDidUpdateEffect';\n\ntype SavedState<T> = {\n [entityType: string]: T;\n};\n\ntype Props<T> = {\n getSavedState: () => Promise<SavedState<T>>;\n saveState: (state: SavedState<T>) => void;\n entityTypeUri?: string;\n};\n\nexport const useSavedStateForEntityType = <T>({getSavedState, saveState, entityTypeUri}: Props<T>) => {\n const [savedState, setSavedState] = useState<SavedState<T>>({});\n const [changedState, setChangedState] = useState<SavedState<T>>(null);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedState) {\n setSavedState({...savedState, ...changedState});\n setChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateSavedState = useCallback(\n (stateToSave: T) => {\n if (!entityTypeUri) return;\n const changedState = {\n [entityTypeUri]: stateToSave\n };\n setChangedState(changedState);\n saveState({...savedState, ...changedState});\n },\n [entityTypeUri, saveState, savedState]\n );\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || {});\n })\n .then((_) => setIsLoaded(true))\n .catch((_) => setIsLoaded(true));\n }, []); // eslint-disable-line\n\n return {isLoaded: isLoaded && !!entityTypeUri, savedState: savedState[entityTypeUri], updateSavedState};\n};\n","import {FilterBuilder, Maybe} from '@reltio/mdm-sdk';\nimport {buildColumnsFilter, ColumnData, ColumnFilter} from '@reltio/components';\n\nconst createInteractionTypeFilter = (value) => `equals(type,'${value}')`;\n\nconst buildInteractionsFilter = (\n currentInteractionType: string,\n filters: Record<string, ColumnFilter>,\n columnsData: ColumnData[]\n) => {\n const currentTypeClause = Maybe.fromNull(currentInteractionType).map(createInteractionTypeFilter).orSome('');\n\n const filtersClause = buildColumnsFilter(columnsData, filters);\n\n return new FilterBuilder().addClause(currentTypeClause).addClause(filtersClause).build();\n};\n\nexport {buildInteractionsFilter};\n","import {\n attributeUriToSearchUri,\n DataTypes,\n FilterOptions,\n getAttrDataTypeDefinition,\n getInteractionAttributesFromMetadata,\n getInteractionType,\n InteractionType,\n makeCompositeFilterOption\n} from '@reltio/mdm-sdk';\nimport {adjust, assoc, chain, concat, map, pipe, pluck, prop, propEq, reject, subtract, uniqBy} from 'ramda';\nimport i18n from 'ui-i18n';\n\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100];\nconst getRowsPerPageOptions = (defaultRowsPerPage: number) =>\n ROWS_PER_PAGE_OPTIONS.filter((option) => option !== defaultRowsPerPage)\n .concat(defaultRowsPerPage)\n .sort(subtract);\n\nconst INTERACTION_TYPE_COLUMN_ID = 'type';\nconst ACTORS_COLUMN_ID = 'members';\nconst ATTRIBUTES_COLUMN_ID = 'attributes';\n\nconst MAX_ATTRIBUTES_TO_SHOW = 7;\n\nconst DEFAULT_COLUMNS_DATA = [\n {\n id: 'timestamp',\n label: 'Date',\n dataTypeDefinition: {\n type: DataTypes.TYPE_TIMESTAMP\n },\n hideable: false\n },\n {\n id: INTERACTION_TYPE_COLUMN_ID,\n label: 'Interaction type',\n sortable: false,\n filterOptions: [{value: FilterOptions.EQUALS}, {value: FilterOptions.NOT_EQUALS}]\n },\n {\n id: ACTORS_COLUMN_ID,\n label: 'Actors',\n sortable: false,\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n }\n },\n {\n id: ATTRIBUTES_COLUMN_ID,\n label: 'Attributes',\n sortable: false,\n filterable: false,\n maxAttrsToShow: MAX_ATTRIBUTES_TO_SHOW\n }\n];\n\nconst DEFAULT_COLUMNS = pluck('id', DEFAULT_COLUMNS_DATA);\nconst ALL_TYPES_COLUMNS = [INTERACTION_TYPE_COLUMN_ID, ATTRIBUTES_COLUMN_ID];\n\nconst getColumnsDataFromInteractionAttributes = pipe(\n map((attr) => ({\n id: attributeUriToSearchUri(attr.uri),\n label: attr.label,\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n })),\n uniqBy(prop('id'))\n);\n\nconst getInteractionColumnDataType = (interactionTypes) => ({\n type: DataTypes.TYPE_SELECT,\n options: interactionTypes.map(({uri, label}) => ({value: uri, label}))\n});\n\nconst getActorTypesOptions = pipe(\n chain(({memberTypes}) => memberTypes.map(({name, label}) => ({label, value: name}))),\n uniqBy(prop('value'))\n);\n\nconst getActorsColumnFilterOptions = (interactionTypes: Array<InteractionType>) => {\n const typeFilterDataType = {\n type: DataTypes.TYPE_SELECT,\n options: getActorTypesOptions(interactionTypes)\n };\n const makeTypeOption = makeCompositeFilterOption('types');\n return [\n {value: FilterOptions.EQUALS},\n {value: FilterOptions.NOT_EQUALS},\n {value: FilterOptions.HAS_ALL},\n {value: FilterOptions.IN_FILE},\n {value: FilterOptions.NOT_IN_FILE},\n {\n value: makeTypeOption(FilterOptions.EQUALS),\n label: i18n.text('type equals'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.NOT_EQUALS),\n label: i18n.text('type not'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.HAS_ALL),\n label: i18n.text('type has all'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.IN_FILE),\n label: i18n.text('type in file')\n },\n {\n value: makeTypeOption(FilterOptions.NOT_IN_FILE),\n label: i18n.text('type not in file')\n }\n ];\n};\n\nconst updateColumnData = (columnId, updateFn) => (columnsData) =>\n adjust(columnsData.findIndex(propEq('id', columnId)), updateFn, columnsData);\n\nconst updateInteractionTypeColumn = (interactionTypes) =>\n updateColumnData(\n INTERACTION_TYPE_COLUMN_ID,\n assoc('dataTypeDefinition', getInteractionColumnDataType(interactionTypes))\n );\n\nconst updateActorsColumn = (interactionTypes) =>\n updateColumnData(ACTORS_COLUMN_ID, assoc('filterOptions', getActorsColumnFilterOptions(interactionTypes)));\n\nconst updateAttributesColumn = (attributes) => updateColumnData(ATTRIBUTES_COLUMN_ID, assoc('attrsToShow', attributes));\n\nconst getColumnsData = (metadata, config, interactionTypes, currentInteractionType) => {\n return currentInteractionType\n ? pipe(\n getInteractionAttributesFromMetadata,\n getColumnsDataFromInteractionAttributes,\n concat(DEFAULT_COLUMNS_DATA),\n reject(({id}) => ALL_TYPES_COLUMNS.includes(id)),\n updateActorsColumn([getInteractionType(metadata, currentInteractionType)])\n )(metadata, currentInteractionType)\n : pipe(\n updateAttributesColumn(config.attributes),\n updateInteractionTypeColumn(interactionTypes),\n updateActorsColumn(metadata.interactionTypes || [])\n )(DEFAULT_COLUMNS_DATA);\n};\n\nexport {\n getRowsPerPageOptions,\n DEFAULT_COLUMNS,\n getColumnsData,\n INTERACTION_TYPE_COLUMN_ID,\n ACTORS_COLUMN_ID,\n ATTRIBUTES_COLUMN_ID,\n ALL_TYPES_COLUMNS,\n MAX_ATTRIBUTES_TO_SHOW\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst defaultWrapperStyles = {\n padding: '15px 25px 0 25px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n};\n\nexport const useStyles = makeStyles((theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n fontSize: '12px'\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n 'row-cell--sorted': {\n color: 'rgba(0,0,0,0.87)'\n },\n actorsWrapper: {\n paddingRight: '25px',\n paddingLeft: '15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n memberWrapper: {\n display: 'flex',\n paddingTop: '15px',\n boxSizing: 'border-box',\n position: 'relative'\n },\n entityLabel: {\n fontSize: '15px',\n display: 'inline-block',\n overflowX: 'hidden',\n margin: '-2px 0 -1px 45px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n position: 'absolute',\n left: 0,\n top: '2px'\n },\n defaultWrapper: defaultWrapperStyles,\n blobWrapper: {\n ...defaultWrapperStyles,\n whiteSpace: 'pre-wrap'\n },\n link: {\n cursor: 'pointer',\n color: theme.palette.primary.main\n },\n attributesWrapper: {\n padding: '15px 25px 10px 25px',\n color: 'rgba(0,0,0,0.87)'\n },\n viewMore: {\n marginLeft: '-5px'\n }\n}));\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst RowCellRenderer = ({cell, CellValueRenderer, isSorted, ...otherProps}) => {\n const styles = useStyles();\n return (\n <div\n className={classnames(\n {\n [styles['row-cell--sorted']]: isSorted\n },\n styles.rowCell\n )}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nRowCellRenderer.propTypes = {\n rowValue: PropTypes.object,\n cell: PropTypes.object,\n CellValueRenderer: PropTypes.elementType,\n isSorted: PropTypes.bool\n};\n\nexport default RowCellRenderer;\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import PropTypes from 'prop-types';\nimport React, {useContext} from 'react';\nimport mdm, {ui} from '@reltio/mdm-module';\nimport {chain, pipe, prop, uniqBy, values} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {useStyles} from './styles';\nimport {EntityTypeType, getEntityType, getLabel} from '@reltio/mdm-sdk';\nimport {EntityTypeIcon, ViewIdContext} from '@reltio/components';\nimport classnames from 'classnames';\n\nconst MemberItem = ({entityType, label, onClick}) => {\n const styles = useStyles();\n const labelCaption = getLabel(label);\n return (\n <div className={styles.memberWrapper}>\n <EntityTypeIcon className={styles.entityAvatar} entityType={entityType} />\n <span className={classnames(styles.entityLabel, styles.link)} onClick={onClick}>\n {labelCaption}\n </span>\n </div>\n );\n};\nMemberItem.propTypes = {\n entityType: EntityTypeType,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst getActorsMembers = pipe(values, chain(prop('members')), uniqBy(prop('objectURI')));\n\nconst ActorsRenderer = ({value}) => {\n const styles = useStyles();\n const members = getActorsMembers(value);\n const dispatch = useDispatch();\n const viewId = useContext(ViewIdContext);\n const metadata = useSelector(mdm.selectors.getMetadata);\n const openEntityWithUri = (uri) => dispatch(ui.actions.openEntity({uri, viewId}));\n\n return (\n <div className={styles.actorsWrapper}>\n {members.map(({objectURI, type, label}) => (\n <MemberItem\n key={objectURI}\n entityType={getEntityType(metadata, type)}\n label={label}\n onClick={() => openEntityWithUri(objectURI)}\n />\n ))}\n </div>\n );\n};\n\nActorsRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ActorsRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\nimport {DataTypeValue} from '@reltio/components';\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />\n </div>\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';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nconst BlobRender = ({value}) => {\n const styles = useStyles();\n return <div className={styles.blobWrapper}>{value}</div>;\n};\n\nBlobRender.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRender;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {useStyles} from './styles';\nimport {Link as Link} from '@material-ui/core';\n\nconst LinkRenderer = ({value}) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <Link className={styles.link} href={value} target=\"_blank\" underline=\"none\">\n {value}\n </Link>\n </div>\n );\n};\n\nLinkRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default LinkRenderer;\n","import React, {useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport {ReadOnlyAttributesList, ViewMoreToggle} from '@reltio/components';\nimport {useStyles} from './styles';\nimport mdmModule from '@reltio/mdm-module';\nimport {getInteractionType} from '@reltio/mdm-sdk';\nimport {pick, propEq} from 'ramda';\n\nconst AttributesRenderer = ({value, rowValue, columnData}) => {\n const styles = useStyles();\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const interaction = rowValue.rawValue;\n const attrTypes = useMemo(() => {\n const interactionType = getInteractionType(metadata, interaction.type);\n return interactionType.attributes;\n }, [interaction, metadata]);\n\n const [expanded, setExpanded] = useState(false);\n const toggleExpanded = () => setExpanded((expanded) => !expanded);\n\n const attributes = value;\n const attrNames = Object.keys(attributes);\n\n const visibleCountLimit = columnData.maxAttrsToShow;\n const hasExtraValuesToShow = attrNames.length > visibleCountLimit;\n const attrNamesToShow = expanded ? attrNames : attrNames.slice(0, visibleCountLimit);\n\n const attrsToShow = pick(attrNamesToShow, attributes);\n const attrTypesToShow = attrNamesToShow.map((name) => attrTypes.find(propEq('name', name)));\n\n return (\n <div className={styles.attributesWrapper}>\n <ReadOnlyAttributesList entity={{attributes: attrsToShow}} attrTypes={attrTypesToShow} drawLines={false} />\n {hasExtraValuesToShow && (\n <ViewMoreToggle active={expanded} onClick={toggleExpanded} className={styles.viewMore} />\n )}\n </div>\n );\n};\n\nAttributesRenderer.propTypes = {\n value: PropTypes.object,\n rowValue: PropTypes.object,\n columnData: PropTypes.object\n};\n\nexport default AttributesRenderer;\n","import HeadCellRenderer from '../cell-renderers/HeadCellRenderer';\nimport ActorsRenderer from '../cell-renderers/ActorsRenderer';\nimport DefaultCellValueRenderer from '../cell-renderers/DefaultCellValueRenderer';\nimport {ColumnData, defaultGetRowCellHeight} from '@reltio/components';\nimport {assoc, cond, length, map, path, pathEq, pickBy, pipe, prop, reduce, slice, split, T, values} from 'ramda';\nimport {\n DataTypes,\n getActorsForInteraction,\n getAttributeValuesByPath,\n Interaction,\n makeAttrTypeUri,\n Metadata\n} from '@reltio/mdm-sdk';\nimport {ACTORS_COLUMN_ID, ATTRIBUTES_COLUMN_ID, INTERACTION_TYPE_COLUMN_ID} from '../../helpers/tableHelpers';\nimport BlobRender from '../cell-renderers/BlobRenderer';\nimport LinkRenderer from '../cell-renderers/LinkRenderer';\nimport AttributesRenderer from '../cell-renderers/AttributesRenderer';\n\nconst getInteractionAttributeValues = (attrPath, interaction) =>\n pipe(path(['attributes']), getAttributeValuesByPath(attrPath))(interaction);\n\nconst getAttrPathFromColumnId = pipe(split('.'), slice(1, Infinity));\n\nconst getRowValueByColumn = (columnData: ColumnData, interaction: Interaction, metadata: Metadata) => {\n switch (columnData.id) {\n case ACTORS_COLUMN_ID:\n return getActorsForInteraction(metadata, interaction);\n case 'timestamp':\n return interaction.timestamp;\n case INTERACTION_TYPE_COLUMN_ID:\n return interaction.type;\n case ATTRIBUTES_COLUMN_ID: {\n const urisToShow = path(['attrsToShow', interaction.type], columnData);\n const isAttrToShow = (values, name) => urisToShow.includes(makeAttrTypeUri(interaction.type, name));\n return urisToShow ? pickBy(isAttrToShow, interaction.attributes) : interaction.attributes;\n }\n default: {\n const attrPath = getAttrPathFromColumnId(columnData.id);\n return getInteractionAttributeValues(attrPath, interaction);\n }\n }\n};\n\nconst getBasicTableRowsData = (interactions: Interaction[], columnsData: ColumnData, metadata: Metadata) =>\n interactions.map((interaction) =>\n pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueByColumn(columnData, interaction, metadata), acc),\n {}\n ),\n assoc('rawValue', interaction)\n )(columnsData)\n );\n\nconst getNestedPathByColumnId = (columnId) => {\n if (columnId.startsWith('attributes.')) {\n const attrPath = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRenderer = (columnData) => {\n if (columnData.id === ACTORS_COLUMN_ID) {\n return ActorsRenderer;\n }\n if (columnData.id === ATTRIBUTES_COLUMN_ID) {\n return AttributesRenderer;\n }\n switch (columnData.dataTypeDefinition.type) {\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n case DataTypes.TYPE_EMAIL:\n return LinkRenderer;\n case DataTypes.TYPE_BLOB:\n return BlobRender;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getColumnDataByColumnId = (columnData) => ({\n sortable: true,\n ...columnData,\n resizable: true,\n nestedPath: getNestedPathByColumnId(columnData.id),\n headCellRenderer: HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(columnData)\n});\n\nconst getBasicTableColumnsData = map(getColumnDataByColumnId);\n\nconst getMembersCount = pipe(prop('members'), length);\nconst getMemberCellHeight = pipe(\n map(getMembersCount),\n values,\n reduce((acc, count) => acc + count * 33, 15)\n);\n\nconst calculateMembersCellHeight = pipe(\n path(['cell', 'values']),\n reduce((acc, actors) => acc + getMemberCellHeight(actors), 0)\n);\n\nconst calculateAttributesCellHeight = ({columnData, cell}) => {\n const attributesCount = pipe(path(['values', 0]), values, length)(cell);\n return attributesCount > columnData.maxAttrsToShow\n ? columnData.maxAttrsToShow * 26 + 49\n : attributesCount * 26 + 25;\n};\n\nconst getStaticRowCellHeight = cond([\n [pathEq(['columnData', 'id'], ACTORS_COLUMN_ID), calculateMembersCellHeight],\n [pathEq(['columnData', 'id'], ATTRIBUTES_COLUMN_ID), calculateAttributesCellHeight],\n [T, defaultGetRowCellHeight]\n]);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData, getStaticRowCellHeight};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n flex: 1,\n display: 'flex',\n fontFamily: 'Roboto',\n color: 'rgba(0,0,0,0.54)'\n },\n\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n 'row-cell__buttons-container': {\n position: 'absolute'\n },\n 'row-cell__buttons-wrapper': {\n display: 'flex',\n paddingLeft: '10px',\n '& > button': {\n marginLeft: '-10px',\n transform: 'scale(0.9)'\n }\n }\n});\n","import React, {ForwardedRef, useCallback, useLayoutEffect, useMemo} from 'react';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {BasicTable, ColumnData, ColumnFilter, RowCellAutoSizer} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData, getStaticRowCellHeight} from './helpers/dataHelpers';\nimport {Interaction, Metadata, SortingField} from '@reltio/mdm-sdk';\nimport {useDynamicRowCellHeight} from '@reltio/components';\nimport {either} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n columnsData: ColumnData;\n interactions: Interaction[];\n metadata: Metadata;\n sorting: SortingField;\n onSort: (field: string) => void;\n filters?: Record<string, ColumnFilter>;\n onFilter: (event: {columnId: string; filter: ColumnFilter}) => void;\n basicTableRef: ForwardedRef<unknown>;\n};\nconst InteractionsTable = ({\n columnsData,\n interactions,\n metadata,\n sorting,\n onSort,\n filters,\n onFilter,\n basicTableRef\n}: Props) => {\n const tableRowsData = useMemo(\n () => getBasicTableRowsData(interactions, columnsData, metadata),\n [interactions, columnsData, metadata]\n );\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(columnsData), [columnsData]);\n\n const styles = useStyles();\n\n const {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache} = useDynamicRowCellHeight();\n\n useLayoutEffect(clearHeightsCache, [interactions]);\n\n const renderRowCell = useCallback(\n (props) => (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer\n {...props}\n isSorted={\n !!sorting && sorting.field === props.columnData.id /* eslint-disable-line react/prop-types */\n }\n />\n </RowCellAutoSizer>\n ),\n [sorting, changeRowCellHeight]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, getStaticRowCellHeight), [\n getDynamicRowCellHeight,\n getStaticRowCellHeight\n ]);\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n columnsData={tableColumnsData}\n rowsData={tableRowsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n hoverStateEnabled={true}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n getRowCellHeight={getRowCellHeight}\n headRowHeight={56}\n renderRowCell={renderRowCell}\n classes={{\n hoveredRowRightContentWrapper: styles['row-cell__buttons-wrapper'],\n hoveredRowRightContentContainer: styles['row-cell__buttons-container']\n }}\n ref={basicTableRef}\n />\n </div>\n );\n};\n\nexport default InteractionsTable;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n header: {\n '& > button': {\n margin: '0 -2px'\n },\n paddingRight: '15px'\n },\n totalCaption: {\n lineHeight: 'inherit',\n fontSize: '14px',\n color: 'rgba(0,0,0,0.6)',\n flexShrink: 0,\n marginRight: '5px'\n },\n interactionTypeSelector: {\n margin: '3px 10px 0 30px',\n overflow: 'hidden'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {InteractionTypeType} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {SelectorWithOnlyOptionAutoSelect} from '@reltio/components';\n\nconst InteractionTypeSelector = ({value, onChange, interactionTypes, className}) => {\n return (\n <SelectorWithOnlyOptionAutoSelect\n classes={{\n root: className\n }}\n value={value}\n onChange={onChange}\n options={interactionTypes.map(({label, uri}) => ({label, value: uri}))}\n emptyLabel={i18n.text('All interaction types')}\n />\n );\n};\n\nInteractionTypeSelector.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n interactionTypes: PropTypes.arrayOf(InteractionTypeType),\n className: PropTypes.string\n};\n\nexport default InteractionTypeSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {\n BasicViewHeader,\n ColumnsDataType,\n ColumnsSettings,\n FilterButton,\n HideOnShrink,\n Spacer,\n VerticalDivider\n} from '@reltio/components';\nimport {useStyles} from './styles';\nimport InteractionTypeSelector from './InteractionTypeSelector/InteractionTypeSelector';\nimport {InteractionTypeType} from '@reltio/mdm-sdk';\n\nconst InteractionsTableHeader = ({\n title,\n total,\n filtersEnabled,\n onToggleFilters,\n columnsData,\n selectedColumns,\n onChangeColumns,\n interactionTypes,\n currentInteractionType,\n onInteractionTypeChange\n}) => {\n const styles = useStyles();\n\n return (\n <BasicViewHeader title={title} classes={{root: styles.header, title: styles.title}}>\n {interactionTypes.length > 0 && (\n <InteractionTypeSelector\n className={styles.interactionTypeSelector}\n value={currentInteractionType}\n onChange={onInteractionTypeChange}\n interactionTypes={interactionTypes}\n />\n )}\n <HideOnShrink widthToHide={500}>\n <VerticalDivider height={28} margin={20} />\n <Typography className={styles.totalCaption} variant=\"caption\">\n {total > 1\n ? i18n.text('${count} interactions', {count: total})\n : i18n.text('${count} interaction', {count: total})}\n </Typography>\n </HideOnShrink>\n <Spacer />\n <FilterButton enabled={filtersEnabled} onClick={onToggleFilters} />\n <VerticalDivider height={28} margin={4} />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n </BasicViewHeader>\n );\n};\n\nInteractionsTableHeader.propTypes = {\n title: PropTypes.string,\n total: PropTypes.number,\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n filtersEnabled: PropTypes.bool,\n onToggleFilters: PropTypes.func,\n interactionTypes: PropTypes.arrayOf(InteractionTypeType),\n currentInteractionType: PropTypes.string,\n onInteractionTypeChange: PropTypes.func\n};\n\nexport default InteractionsTableHeader;\n","import {\n always,\n assoc,\n concat,\n dissoc,\n either,\n evolve,\n ifElse,\n intersection,\n path,\n pick,\n pipe,\n prop,\n propOr,\n when,\n without,\n unless,\n isNil,\n filter\n} from 'ramda';\nimport {ACTORS_COLUMN_ID, ALL_TYPES_COLUMNS, DEFAULT_COLUMNS} from './helpers/tableHelpers';\nimport {basicTableViewState, createStandardAction, Sorting} from '@reltio/components';\nimport {SearchFilter, validateFilterValue} from '@reltio/mdm-sdk';\nimport {InteractionsSavedState} from './types';\n\nconst CHANGE_INTERACTION_TYPE = 'CHANGE_INTERACTION_TYPE';\nconst APPLY_SAVED_STATE = 'APPLY_SAVED_STATE';\nconst SAVE_CURRENT_STATE = 'SAVE_CURRENT_STATE';\n\nconst actions = {\n ...basicTableViewState.actions,\n changeInteractionType: createStandardAction(CHANGE_INTERACTION_TYPE),\n applySavedState: createStandardAction(APPLY_SAVED_STATE),\n saveCurrentState: createStandardAction(SAVE_CURRENT_STATE)\n};\n\nconst resetActorsColumnFilters = evolve({\n filters: when(prop(ACTORS_COLUMN_ID), dissoc(ACTORS_COLUMN_ID))\n});\n\nconst resetPageNumber = assoc('page', 0);\n\nconst getDefaultVisibleColumnsForCurrentInteractionType = (state) =>\n pipe(\n prop('visibleColumns'),\n ifElse(always(state.currentInteractionType), without(ALL_TYPES_COLUMNS), concat(ALL_TYPES_COLUMNS)),\n intersection(DEFAULT_COLUMNS)\n )(state);\n\nconst getSavedVisibleColumnsForCurrentInteractionType = (state) =>\n path(['visibleColumnsForInteractionTypes', `${state.currentInteractionType}`], state);\n\nconst changeVisibleColumnsForCurrentInteractionType = (state) => {\n const nextVisibleColumns = either(\n getSavedVisibleColumnsForCurrentInteractionType,\n getDefaultVisibleColumnsForCurrentInteractionType\n )(state);\n return basicTableViewState.changeVisibleColumns(state, nextVisibleColumns);\n};\n\nconst getVisibleColumnsFromSavedState = either(getSavedVisibleColumnsForCurrentInteractionType, prop('visibleColumns'));\nconst getFiltersFromSavedState = pipe(\n propOr(null, 'filters'),\n unless(\n isNil,\n filter(({filter, value}) => validateFilterValue(filter, value))\n )\n);\n\nconst saveVisibleColumnsForCurrentInteractionType = (state) => {\n const {currentInteractionType, visibleColumns} = state;\n return evolve(\n {\n visibleColumnsForInteractionTypes: assoc(`${currentInteractionType}`, visibleColumns)\n },\n state\n );\n};\n\nconst getStateToSave = pipe(\n saveVisibleColumnsForCurrentInteractionType,\n pick(['currentInteractionType', 'visibleColumnsForInteractionTypes', 'filters', 'sorting'])\n);\n\ntype InitialState = {\n currentInteractionType?: string;\n filters: SearchFilter[];\n visibleColumns: string[];\n sorting: Sorting;\n page: number;\n rowsPerPage: number;\n saveToState?: InteractionsSavedState;\n entityTypeOfAppliedSavedState?: string;\n visibleColumnsForInteractionTypes: Record<string, string[]>;\n};\n\nconst reducer = (state: InitialState, action) => {\n switch (action.type) {\n case CHANGE_INTERACTION_TYPE: {\n const nextInteractionType = action.payload;\n return pipe(\n saveVisibleColumnsForCurrentInteractionType,\n assoc('currentInteractionType', nextInteractionType),\n changeVisibleColumnsForCurrentInteractionType,\n resetActorsColumnFilters,\n resetPageNumber\n )(state);\n }\n case APPLY_SAVED_STATE: {\n const {savedState, entityType} = action.payload;\n const visibleColumns = savedState ? getVisibleColumnsFromSavedState(savedState) : state.visibleColumns;\n const filters = savedState ? getFiltersFromSavedState(savedState) : state.filters;\n return {\n ...state,\n ...savedState,\n filters,\n visibleColumns,\n entityTypeOfAppliedSavedState: entityType\n };\n }\n case SAVE_CURRENT_STATE: {\n return {\n ...state,\n stateToSave: getStateToSave(state)\n };\n }\n default:\n return basicTableViewState.reducer(state, action);\n }\n};\n\nexport {reducer as default, actions};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((_) => ({\n basicView: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n boxShadow: 'none'\n },\n tableView: {\n position: 'relative',\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n }\n}));\n","import React, {useCallback, useEffect, useMemo, useReducer, useRef} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {\n BasicTablePagination,\n BasicView,\n LinearLoadIndicator,\n useActions,\n useDidUpdateEffect,\n useSavedStateForEntityType\n} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n Entity,\n getInteractionType,\n getInteractionTypesForEntityType,\n InteractionsPerspectiveConfig,\n Metadata\n} from '@reltio/mdm-sdk';\nimport {pipe, propEq} from 'ramda';\nimport {buildInteractionsFilter} from './helpers/filtersHelpers';\nimport {DEFAULT_COLUMNS, getColumnsData, getRowsPerPageOptions} from './helpers/tableHelpers';\nimport useInteractions from './hooks/useInteractions';\nimport InteractionsTable from './InteractionsTable/InteractionsTable';\nimport InteractionsTableHeader from './InteractionsTableHeader/InteractionsTableHeader';\nimport reducer, {actions} from './stateReducer';\nimport {InteractionsSavedState} from './types';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_ROWS_PER_PAGE = 15;\nconst DEFAULT_SORT_ORDER = 'desc';\nconst [DEFAULT_SORT_FIELD] = DEFAULT_COLUMNS;\n\ntype Props = {\n config: InteractionsPerspectiveConfig;\n saveState: (state: Record<string, InteractionsSavedState>) => void;\n getSavedState: () => Promise<Record<string, InteractionsSavedState>>;\n};\nconst InteractionsTableView = ({config, getSavedState, saveState}: Props) => {\n const entity: Entity = useSelector(mdmModule.selectors.getEntity);\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const styles = useStyles();\n\n const initialState = {\n currentInteractionType: null,\n filters: null,\n visibleColumns: DEFAULT_COLUMNS,\n sorting: {\n order: config.sortOrder || DEFAULT_SORT_ORDER,\n field: config.sortColumn || DEFAULT_SORT_FIELD\n },\n page: 0,\n rowsPerPage: config.max || DEFAULT_ROWS_PER_PAGE,\n stateToSave: null,\n entityTypeOfAppliedSavedState: null,\n visibleColumnsForInteractionTypes: {}\n };\n\n const [state, dispatch] = useReducer(reducer, initialState);\n const {\n visibleColumns,\n filters,\n sorting,\n page,\n rowsPerPage,\n currentInteractionType,\n stateToSave,\n entityTypeOfAppliedSavedState\n } = state;\n const {\n applySavedState,\n saveCurrentState,\n toggleFilters,\n toggleSort,\n changeFilter,\n changeColumns,\n changeInteractionType,\n changePage,\n changeRowsPerPage\n } = useActions({actions, dispatch});\n\n const {uri: entityUri, type: entityType} = entity || {};\n\n const isSavedStateApplied = entityTypeOfAppliedSavedState === entityType;\n\n const {\n isLoaded: isSavedStateLoaded,\n savedState,\n updateSavedState\n } = useSavedStateForEntityType<InteractionsSavedState>({\n entityTypeUri: entityType,\n getSavedState,\n saveState\n });\n\n useEffect(() => {\n if (isSavedStateLoaded) {\n const interactionTypes = getInteractionTypesForEntityType(metadata, entityType);\n const currentInteractionType = savedState?.currentInteractionType;\n const isInteractionTypeExist =\n !currentInteractionType || getInteractionType({interactionTypes}, currentInteractionType);\n const savedStateToApply = isInteractionTypeExist ? savedState : null;\n applySavedState({savedState: savedStateToApply, entityType});\n }\n }, [isSavedStateLoaded, entityType, metadata]); // eslint-disable-line\n\n useDidUpdateEffect(() => {\n if (isSavedStateApplied) {\n updateSavedState(stateToSave);\n }\n }, [stateToSave]); // eslint-disable-line\n\n const resetPage = () => {\n changePage(0);\n };\n useDidUpdateEffect(resetPage, [entityUri]);\n\n const interactionTypes = useMemo(\n () => getInteractionTypesForEntityType(metadata, entityType),\n [entityType, metadata]\n );\n\n const allColumnsData = useMemo(\n () => getColumnsData(metadata, config, interactionTypes, currentInteractionType),\n [metadata, config, interactionTypes, currentInteractionType]\n );\n\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => allColumnsData.find(propEq('id', id))),\n [visibleColumns, allColumnsData]\n );\n\n const filter = useMemo(\n () => buildInteractionsFilter(currentInteractionType, filters, visibleColumnsData),\n [currentInteractionType, filters] //eslint-disable-line\n );\n\n const {\n isLoading: isInteractionsLoading,\n interactions,\n total\n } = useInteractions({\n enabled: !!entityUri && isSavedStateApplied,\n entityUri,\n filter,\n sorting,\n rowsPerPage,\n page\n });\n\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(initialState.rowsPerPage), []); // eslint-disable-line\n\n const isLoading = !isSavedStateApplied || isInteractionsLoading;\n\n const handleFilterChange = useCallback(pipe(changeFilter, saveCurrentState), [changeFilter, saveCurrentState]);\n\n const basicTableRef = useRef(null);\n\n return (\n <BasicView className={styles.basicView}>\n <InteractionsTableHeader\n title={config.caption}\n total={total}\n columnsData={allColumnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={pipe(changeColumns, saveCurrentState)}\n filtersEnabled={!!filters}\n onToggleFilters={pipe(toggleFilters, saveCurrentState)}\n interactionTypes={interactionTypes}\n currentInteractionType={currentInteractionType}\n onInteractionTypeChange={pipe(changeInteractionType, saveCurrentState)}\n />\n <div className={styles.tableView}>\n <InteractionsTable\n columnsData={visibleColumnsData}\n interactions={interactions}\n metadata={metadata}\n filters={filters}\n onFilter={handleFilterChange}\n sorting={sorting}\n onSort={pipe(toggleSort, saveCurrentState)}\n basicTableRef={basicTableRef}\n />\n <BasicTablePagination\n count={total}\n rowsPerPageOptions={rowsPerPageOptions}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n page={page}\n onChangePage={changePage}\n basicTableRef={basicTableRef}\n />\n {isLoading && <LinearLoadIndicator />}\n </div>\n </BasicView>\n );\n};\n\nexport default InteractionsTableView;\n","import {useState, useEffect} from 'react';\nimport {getInteractions} from '@reltio/mdm-sdk';\nimport {Sorting, useSafePromise} from '@reltio/components';\n\ntype Props = {\n entityUri: string;\n sorting: Sorting;\n page: number;\n rowsPerPage: number;\n filter: string;\n enabled: boolean;\n};\n\nconst useInteractions = ({entityUri, filter, sorting, page, rowsPerPage, enabled}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const [total, setTotal] = useState(0);\n const [interactions, setInteractions] = useState([]);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n if (enabled) {\n setIsLoading(true);\n safePromise(\n getInteractions({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter,\n sort: sorting.field,\n order: sorting.order\n })\n )\n .then(({totalFetched, interactions = []}) => {\n setTotal(totalFetched);\n setInteractions(interactions);\n })\n .then((_) => setIsLoading(false))\n .catch((_) => setIsLoading(false));\n }\n }, [entityUri, filter, sorting.field, sorting.order, page, rowsPerPage, enabled]); // eslint-disable-line\n\n return {isLoading, interactions, total};\n};\n\nexport default useInteractions;\n","import React, {useCallback} from 'react';\nimport MomentUtils from '@date-io/moment';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {Store} from 'redux';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {InteractionsPerspectiveConfig, promisifyCallback} from '@reltio/mdm-sdk';\nimport {identity} from 'ramda';\nimport {Provider} from 'react-redux';\nimport InteractionsTableView from './InteractionsTableView';\nimport {InteractionsSavedState} from './InteractionsTableView/types';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'interactionTable',\n disableGlobal: true\n});\n\ntype Props = {\n config: InteractionsPerspectiveConfig;\n store: Store<unknown>;\n onResize?: (width: number, height: number) => void;\n saveState: (state: Record<string, InteractionsSavedState>) => void;\n getSavedState: () => Record<string, InteractionsSavedState>;\n};\n\nconst InteractionsView = ({config, store, onResize = identity, saveState, getSavedState}: Props) => {\n const getSavedStatePromisified: () => Promise<Record<string, InteractionsSavedState>> = useCallback(\n promisifyCallback(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <InteractionsTableView\n config={config}\n saveState={saveState}\n getSavedState={getSavedStatePromisified}\n />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nexport default InteractionsView;\n","import {InteractionsView} from '@reltio/interactions';\n\nexport default InteractionsView;\n"],"names":["MomentUtils","_a","_b","locale","instance","moment","this","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","prototype","parse","value","format","date","isValid","isNull","getDiff","comparing","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","get","addDays","count","subtract","Math","abs","add","setHours","hours","getMinutes","setMinutes","minutes","getSeconds","setSeconds","seconds","getMonth","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","setMonth","month","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","length","prevMonth","push","getYear","setYear","year","set","mergeDateAndTime","time","getWeekdays","weekdaysShort","isEqual","getWeekArray","start","end","current","nestedWeeks","weekNumber","floor","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getMonthText","getDayText","getHourText","getMinuteText","getSecondText","getRowCellKey","rowIndex","columnData","id","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","useState","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","clearHeightsCache","getDynamicRowCellHeight","pipe","prop","__","changeRowCellHeight","curry","useWith","key","identity","useStyles","makeStyles","pagination","display","alignItems","justifyContent","height","borderTop","boxShadow","caption","color","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","classes","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","styles","resetScrollbarPosition","pathOr","handleChangePage","handleChangeRowsPerPage","TablePagination","root","classnames","component","i18n","labelDisplayedRows","from","to","fromRow","toRow","countRows","nthArg","getValue","propTypes","PropTypes","React","RowCellAutoSizer","onChangeHeight","children","cell","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","EmptyStub","style","HideOnShrink","widthToHide","handleWidth","render","width","onlyValue","fontWeight","whiteSpace","textOverflow","overflow","paddingLeft","paddingRight","selectMenu","textField","maxWidth","SelectorWithOnlyOptionAutoSelect","onChange","options","emptyLabel","firstOption","moreOptions","hasOnlyOneOptionToSelect","useEffect","displayEmpty","className","Typography","variant","label","DropDownEditor","disableUnderline","TextFieldProps","MenuProps","list","entries","viewMoreLessLink","cursor","arrow","transform","transition","rotated","ViewMoreToggle","active","onClick","Link","underline","ArrowDropDown","useSavedStateForEntityType","getSavedState","saveState","entityTypeUri","savedState","setSavedState","changedState","setChangedState","isLoaded","setIsLoaded","updateSavedState","stateToSave","then","_","catch","createInteractionTypeFilter","ROWS_PER_PAGE_OPTIONS","INTERACTION_TYPE_COLUMN_ID","ACTORS_COLUMN_ID","ATTRIBUTES_COLUMN_ID","DEFAULT_COLUMNS_DATA","dataTypeDefinition","type","DataTypes","hideable","sortable","filterOptions","FilterOptions","filterable","maxAttrsToShow","DEFAULT_COLUMNS","pluck","ALL_TYPES_COLUMNS","getColumnsDataFromInteractionAttributes","map","attr","attributeUriToSearchUri","uri","getAttrDataTypeDefinition","uniqBy","getActorTypesOptions","chain","memberTypes","name","updateColumnData","columnId","updateFn","columnsData","adjust","findIndex","propEq","updateActorsColumn","interactionTypes","assoc","typeFilterDataType","makeTypeOption","makeCompositeFilterOption","getActorsColumnFilterOptions","getColumnsData","metadata","config","currentInteractionType","getInteractionAttributesFromMetadata","concat","reject","includes","getInteractionType","attributes","getInteractionColumnDataType","updateInteractionTypeColumn","defaultWrapperStyles","padding","paddingBottom","theme","headCell","rowCell","overflowWrap","wordWrap","actorsWrapper","memberWrapper","paddingTop","boxSizing","position","entityLabel","overflowX","margin","entityAvatar","left","top","defaultWrapper","blobWrapper","link","palette","primary","main","attributesWrapper","viewMore","RowCellRenderer","CellValueRenderer","isSorted","otherProps","values","index","withFilterAtBottom","props","DefaultHeadCellRenderer","MemberItem","entityType","labelCaption","getLabel","EntityTypeIcon","EntityTypeType","getActorsMembers","ActorsRenderer","members","dispatch","useDispatch","viewId","useContext","ViewIdContext","useSelector","mdm","objectURI","getEntityType","openEntityWithUri","ui","DefaultCellValueRenderer","DataTypeValue","BlobRender","LinkRenderer","href","target","AttributesRenderer","mdmModule","interaction","attrTypes","useMemo","expanded","setExpanded","attrNames","Object","keys","visibleCountLimit","hasExtraValuesToShow","attrNamesToShow","slice","attrsToShow","pick","attrTypesToShow","find","entity","drawLines","getAttrPathFromColumnId","split","Infinity","getNestedPathByColumnId","startsWith","attrPath","getCellValueRenderer","getBasicTableColumnsData","resizable","nestedPath","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","getMembersCount","getMemberCellHeight","reduce","acc","calculateMembersCellHeight","path","actors","getStaticRowCellHeight","cond","pathEq","attributesCount","T","defaultGetRowCellHeight","tableContainer","flex","fontFamily","interactions","sorting","onSort","filters","onFilter","tableRowsData","getActorsForInteraction","timestamp","urisToShow","isAttrToShow","makeAttrTypeUri","pickBy","getAttributeValuesByPath","getInteractionAttributeValues","getRowValueByColumn","getBasicTableRowsData","tableColumnsData","useDynamicRowCellHeight","useLayoutEffect","renderRowCell","field","getRowCellHeight","either","BasicTable","rowsData","hoverStateEnabled","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoveredRowRightContentWrapper","hoveredRowRightContentContainer","ref","header","totalCaption","flexShrink","interactionTypeSelector","InteractionTypeSelector","InteractionTypeType","InteractionsTableHeader","title","total","filtersEnabled","onToggleFilters","selectedColumns","onChangeColumns","onInteractionTypeChange","BasicViewHeader","VerticalDivider","Spacer","FilterButton","enabled","ColumnsSettings","ColumnsDataType","CHANGE_INTERACTION_TYPE","APPLY_SAVED_STATE","SAVE_CURRENT_STATE","basicTableViewState","changeInteractionType","createStandardAction","applySavedState","saveCurrentState","resetActorsColumnFilters","evolve","when","dissoc","resetPageNumber","getDefaultVisibleColumnsForCurrentInteractionType","state","ifElse","always","without","intersection","getSavedVisibleColumnsForCurrentInteractionType","changeVisibleColumnsForCurrentInteractionType","nextVisibleColumns","getVisibleColumnsFromSavedState","getFiltersFromSavedState","propOr","unless","isNil","filter","validateFilterValue","saveVisibleColumnsForCurrentInteractionType","visibleColumns","visibleColumnsForInteractionTypes","getStateToSave","reducer","action","nextInteractionType","payload","entityTypeOfAppliedSavedState","basicView","bottom","right","tableView","flexDirection","DEFAULT_SORT_FIELD","initialState","order","sortOrder","sortColumn","max","useReducer","toggleFilters","toggleSort","changeFilter","changeColumns","changePage","changeRowsPerPage","useActions","entityUri","isSavedStateApplied","isSavedStateLoaded","getInteractionTypesForEntityType","isInteractionTypeExist","allColumnsData","visibleColumnsData","currentTypeClause","Maybe","orSome","filtersClause","buildColumnsFilter","FilterBuilder","addClause","build","buildInteractionsFilter","isLoading","isInteractionsLoading","setIsLoading","setTotal","setInteractions","safePromise","useSafePromise","getInteractions","offset","sort","totalFetched","useInteractions","getRowsPerPageOptions","defaultRowsPerPage","option","handleFilterChange","BasicView","LinearLoadIndicator","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","getSavedStatePromisified","promisifyCallback","Provider","StylesProvider","MuiPickersUtilsProvider","utils","ErrorPopup"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"4469.js","mappings":"2JAuNA,QArNiC,WAC7B,SAASA,EAAYC,GACjB,IAAIC,OAAY,IAAPD,EAAgB,GAAKA,EAAIE,EAASD,EAAGC,OAAQC,EAAWF,EAAGE,SAAUC,EAASH,EAAGG,OAC1FC,KAAKC,WAAa,OAClBD,KAAKE,gBAAkB,YACvBF,KAAKG,kBAAoB,kBACzBH,KAAKI,kBAAoB,gBACzBJ,KAAKK,cAAgB,UACrBL,KAAKM,cAAgB,QACrBN,KAAKO,WAAa,UAClBP,KAAKD,OAASD,GAAYC,GAAU,IACpCC,KAAKH,OAASA,EAuMlB,OArMAH,EAAYc,UAAUC,MAAQ,SAAUC,EAAOC,GAC3C,MAAc,KAAVD,EACO,KAEJV,KAAKD,OAAOW,EAAOC,GAAQ,IAEtCjB,EAAYc,UAAUI,KAAO,SAAUF,GACnC,GAAc,OAAVA,EACA,OAAO,KAEX,IAAIX,EAASC,KAAKD,OAAOW,GAEzB,OADAX,EAAOF,OAAOG,KAAKH,QACZE,GAEXL,EAAYc,UAAUK,QAAU,SAAUH,GACtC,OAAOV,KAAKD,OAAOW,GAAOG,WAE9BnB,EAAYc,UAAUM,OAAS,SAAUF,GACrC,OAAgB,OAATA,GAEXlB,EAAYc,UAAUO,QAAU,SAAUH,EAAMI,GAC5C,OAAOJ,EAAKK,KAAKD,IAErBtB,EAAYc,UAAUU,QAAU,SAAUN,EAAMF,GAC5C,OAAOE,EAAKM,QAAQR,IAExBhB,EAAYc,UAAUW,SAAW,SAAUP,EAAMF,GAC7C,OAAOE,EAAKO,SAAST,IAEzBhB,EAAYc,UAAUY,WAAa,SAAUR,EAAMF,GAC/C,OAAOE,EAAKM,QAAQR,EAAO,QAE/BhB,EAAYc,UAAUa,YAAc,SAAUT,EAAMF,GAChD,OAAOE,EAAKO,SAAST,EAAO,QAEhChB,EAAYc,UAAUc,aAAe,SAAUV,EAAMF,GACjD,OAAOE,EAAKO,SAAST,EAAO,SAEhChB,EAAYc,UAAUe,YAAc,SAAUX,EAAMF,GAChD,OAAOE,EAAKM,QAAQR,EAAO,SAE/BhB,EAAYc,UAAUgB,WAAa,SAAUZ,GACzC,OAAOA,EAAKa,QAAQC,QAAQ,QAEhChC,EAAYc,UAAUmB,SAAW,SAAUf,GACvC,OAAOA,EAAKa,QAAQG,MAAM,QAE9BlC,EAAYc,UAAUG,OAAS,SAAUC,EAAMiB,GAE3C,OADAjB,EAAKf,OAAOG,KAAKH,QACVe,EAAKD,OAAOkB,IAEvBnC,EAAYc,UAAUsB,aAAe,SAAUC,GAC3C,OAAOA,GAEXrC,EAAYc,UAAUwB,SAAW,SAAUpB,GACvC,OAAOA,EAAKqB,IAAI,UAEpBvC,EAAYc,UAAU0B,QAAU,SAAUtB,EAAMuB,GAC5C,OAAOA,EAAQ,EACTvB,EAAKa,QAAQW,SAASC,KAAKC,IAAIH,GAAQ,QACvCvB,EAAKa,QAAQc,IAAIJ,EAAO,SAElCzC,EAAYc,UAAUgC,SAAW,SAAU5B,EAAMuB,GAC7C,OAAOvB,EAAKa,QAAQgB,MAAMN,IAE9BzC,EAAYc,UAAUkC,WAAa,SAAU9B,GACzC,OAAOA,EAAKqB,IAAI,YAEpBvC,EAAYc,UAAUmC,WAAa,SAAU/B,EAAMuB,GAC/C,OAAOvB,EAAKa,QAAQmB,QAAQT,IAEhCzC,EAAYc,UAAUqC,WAAa,SAAUjC,GACzC,OAAOA,EAAKqB,IAAI,YAEpBvC,EAAYc,UAAUsC,WAAa,SAAUlC,EAAMuB,GAC/C,OAAOvB,EAAKa,QAAQsB,QAAQZ,IAEhCzC,EAAYc,UAAUwC,SAAW,SAAUpC,GACvC,OAAOA,EAAKqB,IAAI,UAEpBvC,EAAYc,UAAUyC,UAAY,SAAUrC,EAAMI,GAC9C,OAAOJ,EAAKsC,OAAOlC,EAAW,QAElCtB,EAAYc,UAAU2C,YAAc,SAAUvC,EAAMI,GAChD,OAAOJ,EAAKsC,OAAOlC,EAAW,UAElCtB,EAAYc,UAAU4C,WAAa,SAAUxC,EAAMI,GAC/C,OAAOJ,EAAKsC,OAAOlC,EAAW,SAElCtB,EAAYc,UAAU6C,WAAa,SAAUzC,EAAMI,GAC/C,OAAOJ,EAAKsC,OAAOlC,EAAW,SAElCtB,EAAYc,UAAU8C,SAAW,SAAU1C,EAAMuB,GAC7C,OAAOvB,EAAKa,QAAQ8B,MAAMpB,IAE9BzC,EAAYc,UAAUgD,gBAAkB,SAAUC,GAC9C,MAAgB,OAATA,EAAgB,KAAO,MAElC/D,EAAYc,UAAUkD,aAAe,SAAU9C,GAC3C,OAAOA,EAAKa,QAAQC,QAAQ,UAEhChC,EAAYc,UAAUmD,WAAa,SAAU/C,GACzC,OAAOA,EAAKa,QAAQG,MAAM,UAE9BlC,EAAYc,UAAUoD,aAAe,SAAUhD,GAC3C,OAAOA,EAAKa,QAAQc,IAAI,EAAG,UAE/B7C,EAAYc,UAAUqD,iBAAmB,SAAUjD,GAC/C,OAAOA,EAAKa,QAAQW,SAAS,EAAG,UAEpC1C,EAAYc,UAAUsD,cAAgB,SAAUlD,GAG5C,IAFA,IACImD,EAAa,CADAnD,EAAKa,QAAQC,QAAQ,SAE/BqC,EAAWC,OAAS,IAAI,CAC3B,IAAIC,EAAYF,EAAWA,EAAWC,OAAS,GAC/CD,EAAWG,KAAKlE,KAAK4D,aAAaK,IAEtC,OAAOF,GAEXrE,EAAYc,UAAU2D,QAAU,SAAUvD,GACtC,OAAOA,EAAKqB,IAAI,SAEpBvC,EAAYc,UAAU4D,QAAU,SAAUxD,EAAMyD,GAC5C,OAAOzD,EAAKa,QAAQ6C,IAAI,OAAQD,IAEpC3E,EAAYc,UAAU+D,iBAAmB,SAAU3D,EAAM4D,GACrD,OAAOxE,KAAK2C,WAAW3C,KAAKwC,SAAS5B,EAAMZ,KAAKgC,SAASwC,IAAQxE,KAAK0C,WAAW8B,KAErF9E,EAAYc,UAAUiE,YAAc,WAChC,OAAOzE,KAAKD,OAAO2E,eAAc,IAErChF,EAAYc,UAAUmE,QAAU,SAAUjE,EAAOM,GAC7C,OAAc,OAAVN,GAAgC,OAAdM,GAGfhB,KAAKD,OAAOW,GAAOwC,OAAOlC,IAErCtB,EAAYc,UAAUoE,aAAe,SAAUhE,GAY3C,IAXA,IAAIiE,EAAQjE,EACPa,QACAC,QAAQ,SACRA,QAAQ,QACToD,EAAMlE,EACLa,QACAG,MAAM,SACNA,MAAM,QACPO,EAAQ,EACR4C,EAAUF,EACVG,EAAc,GACXD,EAAQ5D,SAAS2D,IAAM,CAC1B,IAAIG,EAAa5C,KAAK6C,MAAM/C,EAAQ,GACpC6C,EAAYC,GAAcD,EAAYC,IAAe,GACrDD,EAAYC,GAAYf,KAAKa,GAC7BA,EAAUA,EAAQtD,QAAQc,IAAI,EAAG,OACjCJ,GAAS,EAEb,OAAO6C,GAEXtF,EAAYc,UAAU2E,aAAe,SAAUN,EAAOC,GAKlD,IAJA,IAAIM,EAAYpF,KAAKD,OAAO8E,GAAOnD,QAAQ,QACvC2D,EAAUrF,KAAKD,OAAO+E,GAAKlD,MAAM,QACjC0D,EAAQ,GACRP,EAAUK,EACPL,EAAQ5D,SAASkE,IACpBC,EAAMpB,KAAKa,GACXA,EAAUA,EAAQtD,QAAQc,IAAI,EAAG,QAErC,OAAO+C,GAGX5F,EAAYc,UAAU+E,sBAAwB,SAAU3E,GACpD,OAAOZ,KAAKW,OAAOC,EAAMZ,KAAKE,kBAElCR,EAAYc,UAAUgF,YAAc,SAAU5E,GAC1C,OAAOZ,KAAKW,OAAOC,EAAM,SAE7BlB,EAAYc,UAAUiF,wBAA0B,SAAU7E,GACtD,OAAOZ,KAAKW,OAAOC,EAAM,eAE7BlB,EAAYc,UAAUkF,4BAA8B,SAAU9E,GAC1D,OAAOZ,KAAKW,OAAOC,EAAM,UAE7BlB,EAAYc,UAAUmF,aAAe,SAAU/E,GAC3C,OAAOZ,KAAKW,OAAOC,EAAM,SAE7BlB,EAAYc,UAAUoF,WAAa,SAAUhF,GACzC,OAAOZ,KAAKW,OAAOC,EAAM,MAE7BlB,EAAYc,UAAUqF,YAAc,SAAUjF,EAAM6C,GAChD,OAAOzD,KAAKW,OAAOC,EAAM6C,EAAO,KAAO,OAE3C/D,EAAYc,UAAUsF,cAAgB,SAAUlF,GAC5C,OAAOZ,KAAKW,OAAOC,EAAM,OAE7BlB,EAAYc,UAAUuF,cAAgB,SAAUnF,GAC5C,OAAOZ,KAAKW,OAAOC,EAAM,OAEtBlB,EAlNqB,I,8LCEhC,MAAMsG,EAAgB,QAAC,SAACC,EAAUC,YAAY,GAACC,GAAxB,UAA6BC,GAA9B,QAA8C,GAAED,KAAMF,MAAaG,MA4BzF,EA1BgC,KAC5B,MAAOC,EAAmBC,IAAwBC,EAAAA,EAAAA,UAAS,IACrDC,GAAyBC,EAAAA,EAAAA,QAAO,IAIhCC,GAAqBC,EAAAA,EAAAA,cACvBC,EAAAA,EAAAA,MAAS,KACLN,E,8UAAqB,CAAD,GAAKE,EAAuBzB,aAEpD,IAEE8B,GAAoBF,EAAAA,EAAAA,cAAY,KAClCH,EAAuBzB,QAAU,KAClC,IASH,MAAO,CAAC+B,yBAPwBH,EAAAA,EAAAA,cAAYI,EAAAA,EAAAA,MAAKf,GAAegB,EAAAA,EAAAA,MAAKC,EAAAA,GAAIZ,IAAqB,CAACA,IAO9Da,qBALLP,EAAAA,EAAAA,cACxBQ,EAAAA,EAAAA,QAAMC,EAAAA,EAAAA,UAAQL,EAAAA,EAAAA,OAhBQ,CAACM,EAAK3G,KAC5B8F,EAAuBzB,QAAQsC,GAAO3G,IAeAgG,GAAqB,CAACV,EAAesB,EAAAA,YAC3E,IAGkDT,kBAAAA,K,wSC3B1D,MAeA,EAf2DU,GAEnD,2BAAKC,MAAO,GAAIC,OAAQ,GAAIC,QAAQ,YAAYC,MAAM,8BAAiCJ,GACnF,0BACIK,EAAE,sgBACFC,KAAK,OACLC,SAAS,UACTC,OAAO,OACPC,YAAa,EACbC,QAAS,O,mECCzB,MAAMC,EAAkB,IAA0E,IAAzE,YAACC,EAAD,gBAAcC,EAAd,gBAA+BC,EAA/B,MAAgDC,EAAhD,aAAuDC,GAAkB,EAC9F,MAAOC,EAAUC,IAAelC,EAAAA,EAAAA,UAAS,MAGnCmC,GAAoB/B,EAAAA,EAAAA,cACrBgC,IACG,MAAMC,GAAiB7B,EAAAA,EAAAA,MAAK8B,EAAAA,IAAiBC,EAAAA,EAAAA,OAAM,MAA5B/B,CAAmC4B,GACpDI,GAAcC,EAAAA,EAAAA,GAAiBZ,EAAiBO,GACtDN,EACIU,GACME,EAAAA,EAAAA,YAAWb,EAAiBQ,IAC5BM,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,QAAOf,EAAiBQ,OAG3C,CAACR,EAAiBC,IAEtB,OACI,oCACI,kBAACe,EAAA,EAAD,CACIb,aAAcA,GAAgBc,IAAAA,KAAU,qBACxCC,KAAK,IACLC,KAAMC,EACNC,QApBOC,GAAUjB,EAAYiB,EAAMC,iBAsBvC,kBAACC,EAAA,EAAD,CACIC,cAAenB,EACfF,SAAUA,EACVL,YAAaA,EACb2B,QAzBO,IAAMrB,EAAY,MA0BzBH,MAAOA,EACPF,gBAAiBA,MAMjCF,EAAgB6B,UAAY,CACxB5B,YAAa6B,EAAAA,GACb5B,gBAAiB6B,IAAAA,QAAkBA,IAAAA,QACnC5B,gBAAiB4B,IAAAA,KACjB3B,MAAO2B,IAAAA,OACP1B,aAAc0B,IAAAA,QAGlB,W,uNCtDO,MAAMC,GAAYC,E,SAAAA,GAAW,CAChCC,MAAO,CACHC,SAAU,SAEdC,UAAW,CACPC,gBAAiB,sBCEnBC,EAAiB,IAAkF,IAAjF,KAACC,EAAD,QAAOhB,EAAP,QAAgBiB,EAAhB,MAAyBC,EAAzB,MAAgCC,EAAhC,UAAuCC,EAAvC,YAAkDC,EAAlD,aAA+DC,GAAkB,EACrG,MAAMC,EAASd,IACf,OACI,kBAACe,EAAA,EAAD,CACIF,aAAcA,EACd1D,IAAKoD,EAAKtE,GACVsD,QAASA,EACTiB,QAASA,EACTC,MAAOA,EACPO,KAAMT,EACNU,MAAO,kBAACC,EAAA,EAAD,CAAaC,KAAMZ,EAAKU,MAAOG,UAAWb,EAAKc,aACtDC,YAAaf,EAAKU,MAClBP,MAAOA,EACPC,UAAWA,EACXY,SAAUX,EACVY,UAAWC,GAAAA,CAAW,CAAC,CAACX,EAAOV,WAAYQ,OAKvDN,EAAeT,UAAY,CACvBU,KAAMR,IAAAA,MAAgB,CAClBkB,MAAOlB,IAAAA,OACPsB,WAAYtB,IAAAA,SAEhBU,MAAOV,IAAAA,OACPR,QAASQ,IAAAA,KACTS,QAAST,IAAAA,KACTW,MAAOX,IAAAA,OACPa,YAAab,IAAAA,KACbY,UAAWZ,IAAAA,KACXc,aAAcd,IAAAA,MAGlB,UCSaL,EAAuB,IAQvB,IARwB,SACjCpB,EADiC,QAEjCsB,EAFiC,MAGjCxB,EAHiC,YAIjCH,EAJiC,cAKjC0B,EALiC,gBAMjCzB,EANiC,aAOjC2C,GACS,EACT,MAAMC,EAASd,KACRqB,EAAYK,IAAiBrF,EAAAA,EAAAA,UAAS,IAEvCsF,GAAeC,EAAAA,EAAAA,UAAQ,KAAMC,EAAAA,EAAAA,IAAiB5D,EAAaoD,IAAa,CAACpD,EAAaoD,IAEtFS,GAAQF,EAAAA,EAAAA,UAAQ,KAAMG,EAAAA,EAAAA,IAAwBJ,IAAe,CAACA,IAC9DK,GAAyBC,EAAAA,EAAAA,KAAgB,QAAhBA,CAAyBN,IAnBxB,IAqB1BO,GAAsBzF,EAAAA,EAAAA,cACxB,QAAC,KAAC8D,GAAF,SAAmEZ,EAAcY,KACjF,CAACZ,KAGC,WAACwC,EAAD,cAAaC,IAAiBC,EAAAA,EAAAA,GAAsB,CACtDP,MAAAA,EACAQ,MAAM,EACNC,oBAAqBL,EACrBM,cAAetE,EACf0B,QAAAA,IAEE6C,GAAchG,EAAAA,EAAAA,cAAYI,EAAAA,EAAAA,MAAK+C,GAlBjB,IAAM8B,EAAc,MAkBoB,CAAC9B,IAqBvD8C,EAAavK,KAAKwK,IAvDM,IADd,GAwDqDb,EAAMhI,QACrE8I,EAAkBzK,KAAK0K,IArDJ,IAqD8BH,EAtD3B,KAwD5B,OACI,kBAACI,EAAA,EAAD,CACItB,UAAWV,EAAOZ,MAClBoC,OAAQhE,EACRA,SAAUA,EACVsB,QAAS6C,EACTM,SAAUrB,EACVtD,MAAOA,GAASe,IAAAA,KAAU,qBAC1B6C,eAAgBA,EAChBY,gBAAiBA,EACjBI,qBAAsBZ,GAEtB,kBAACa,EAAA,EAAD,CACIC,YAAY,EACZ3F,OAAQmF,EACRS,WArCa,CACrBzC,EADqB,EAGrB0C,KACC,IAFD,KAAC7C,EAAD,MAAOE,EAAQ,GAEd,EACD,OACI,kBAAC,EAAD,CACII,aAAcA,EACdH,MAAOA,EACPH,KAAMA,EACNE,MAAOA,EACPE,UAAWwB,IAAeiB,EAC1B5C,SAAS1B,EAAAA,EAAAA,GAAiBZ,EAAiBqC,GAC3CK,aAAayC,EAAAA,EAAAA,IAAc9C,GAC3BhB,QAASsB,GAAehE,EAAAA,EAAAA,MAAK8C,EAAe8C,GAAe9C,KAwB3DmC,MAAOA,EACPwB,YAAa,IA5ET,GA6EJnB,WAAYA,O,8hBCxH5B,MAAMkB,EAAiB5E,GAAWA,EAAOxC,KAAOwC,EAAO8E,QACjDC,GAAmBvG,EAAAA,EAAAA,QACrB,CAAC,EAAewG,KAAhB,IAAC,GAACxH,EAAD,QAAKsH,GAAN,SAA2BE,EAAOF,UAAYA,IAAYtH,IAAOwH,EAAOxH,IAAMA,EAAGyH,WAAY,GAAED,EAAOxH,WAEpG0H,GAAkB1G,EAAAA,EAAAA,QAAM,CAAC,EAAW2G,KAAZ,IAAC,QAACL,GAAF,SAAsBA,IAAYK,EAAM3H,MAChE4H,GAAmBC,EAAAA,EAAAA,SAAO,EAAM,YAIhCC,EAAY,CAACC,EAASvF,KACxB,MAAMwF,EAHY,EAACD,EAASvF,IAAWuF,EAAQE,MAAKC,EAAAA,EAAAA,QAAOR,EAAgBlF,GAAS+E,EAAiB/E,KAGxF2F,CAAcJ,EAASvF,GACpC,OAAIwF,GACAA,EAAKI,SAAWN,EAAUE,EAAKI,UAAY,GAAI5F,GACxCuF,GAEAA,EAAQ/E,OAAOR,IAIxB6F,GAAuBrH,EAAAA,EAAAA,QACzB,CAACoE,EAAY5C,IACT8F,EAAAA,IAAAA,QAAAA,OAAqB9F,EAAOwC,MAAOI,KAAgB5C,EAAO4F,UAAY,IAAIG,KAAKF,EAAqBjD,MAGtGoD,GAAoBC,EAAAA,EAAAA,SACtB,CAACC,EAAK3I,IACF+H,EAAUY,EAAK,CACX1I,GAAID,EAAWC,GACfsH,QAASvH,EAAWuH,QACpBtC,MAAOjF,EAAWiF,MAClB2D,SAAU5I,EAAW6I,sBAE7B,IAGEC,GAA2B7H,EAAAA,EAAAA,QAAM,SAACoE,EAAY2C,GAAb,IAAsBvD,EAAtB,uDAA8B,EAA9B,OACnC5D,EAAAA,EAAAA,OACIkI,EAAAA,EAAAA,QAAOT,EAAqBjD,KAC5B2D,EAAAA,EAAAA,QAAOvG,GAQI,CAPM,CACT8B,KAAM,EAAF,GAAM9B,EAAN,CAAc4C,WAAAA,IAClBZ,MAAAA,MAEkBhC,EAAO4F,SACvBS,EAAyBzD,EAAY5C,EAAO4F,SAAU5D,EAAQ,GAC9D,MATd5D,CAYEmH,MAGAiB,GAAuBC,EAAAA,EAAAA,KAAI,WAC3BC,EAA4B,QAAC,GAAClJ,EAAD,MAAKgF,EAAL,QAAY+C,GAAb,QAA0B,CACxD,CAAC/H,GAAAA,EAAIsH,QAAStH,EAAIgF,MAAAA,MACf+C,EAAQoB,KAAIC,EAAAA,EAAAA,OAAM,UAAWpJ,MAG9B4F,EAAmB,CAAC5D,EAAaoD,KAC5BxE,EAAAA,EAAAA,OACHmI,EAAAA,EAAAA,QAAMM,EAAAA,EAAAA,MAAKL,EAAsBE,KACjCJ,EAAAA,EAAAA,SAAOZ,EAAAA,EAAAA,QAAOd,EAAeQ,IAC7BY,EACAK,EAAyBzD,GAJtBxE,CAKLoB,GAGAU,EAAmBF,GAAYA,EAAO4F,UAAWW,EAAAA,EAAAA,OAAMrG,EAAiBF,EAAO4F,UAAY,CAAC5F,GAE5FK,EAAmB,CAACZ,EAAiBO,KACvC,MAAM8G,EAAe5G,EAAgBF,GAC/BK,EAAoBL,GAAWP,EAAgBsH,SAAS/G,EAAOxC,IACrE,OAAOoH,EAAc5E,GAAU8G,EAAaE,MAAM3G,GAAoByG,EAAaf,KAAK1F,K,sUCxE5F,MAQA,EAR4DzB,GAEpD,2BAAKC,MAAO,GAAIC,OAAQ,GAAIC,QAAQ,YAAYC,MAAM,8BAAiCJ,GACnF,0BAAMK,EAAE,4BAA4BC,KAAK,eAAeC,SAAS,UAAUC,OAAO,OAAOC,YAAa,KCHrGkC,GAAYC,E,SAAAA,IAAYyF,IAAD,CAChC,sBAAuB,CACnBC,MAAOD,EAAME,QAAQC,QAAQC,MAEjCC,UAAW,CACPC,SAAU,WACVC,MAAO,MACPC,OAAQ,MACRC,UAAW,cAEfC,OAAQ,CACJC,QAAS,YCJXC,EAAe,IAAwB,IAAvB,QAACC,EAAD,QAAUhH,GAAa,EACzC,MAAMuB,EAASd,IAEf,OACI,kBAAC,EAAAwG,QAAD,CAASpI,MAAOmI,EAAUpH,IAAAA,KAAU,qBAAuBA,IAAAA,KAAU,WACjE,kBAAC,EAAAsH,WAAD,CAAYlH,QAASA,EAASmH,QAAS,CAACzC,KAAMnD,EAAOsF,SAChDG,EACG,oCACI,kBAACI,EAAD,CAAYnF,UAAWV,EAAO,yBAC9B,kBAAC8F,EAAA,QAAD,CAAWjB,MAAM,UAAUnE,UAAWV,EAAOiF,aAGjD,kBAACY,EAAD,SAOpBL,EAAazG,UAAY,CACrB0G,QAASxG,IAAAA,KACTR,QAASQ,IAAAA,MAGb,W,sJC/BO,MAAMC,GAAYC,E,SAAAA,GAAW,CAChC4G,WAAY,CACRC,QAAS,OACTC,WAAY,SACZC,eAAgB,WAChBzJ,OAAQ,OACR0J,UAAW,6BACXC,UAAW,QAEfC,QAAS,CACLxB,MAAO,kBACPyB,SAAU,OACVC,WAAY,QAEhBC,WAAY,CACRC,WAAY,MACZC,YAAa,QAEjBC,OAAQ,CACJ9B,MAAO,kBACPyB,SAAU,OACVC,WAAY,OACZK,UAAW,SAEfC,QAAS,CACLJ,WAAY,U,wcClBpB,MAAMK,EAAuB,IAUvB,IAVwB,QAC1BlB,EAAU,GADgB,MAE1BzO,EAF0B,mBAG1B4P,EAH0B,KAI1BC,EAJ0B,aAK1BC,EAL0B,YAM1BC,EAN0B,oBAO1BC,EAP0B,cAQ1BC,EAR0B,iBAS1BC,GACE,EACF,MAMMrH,EAASd,IACToI,GAAyB3L,EAAAA,EAAAA,cAAY,MACvC4L,EAAAA,EAAAA,QAAOjL,EAAAA,SAAU,CAAC,UAAW,0BAA2B8K,EAAxDG,KACD,CAACH,IACEI,GAAmB7L,EAAAA,EAAAA,cACpBjG,IACGuR,EAAavR,GACb4R,MAEJ,CAACL,EAAcK,IAEbG,GAA0B9L,EAAAA,EAAAA,cAC3BjG,IACGuR,EAAa,GACbE,EAAoBzR,GACpB4R,MAEJ,CAACL,EAAcE,EAAqBG,IAExC,OACI,kBAAC,EAAAI,gBAAD,CACI9B,QAAO,KACAA,EADA,CAEHzC,KAAMxC,GAAAA,CAAWX,EAAO+F,WAAYH,EAAQzC,MAC5CwD,OAAQhG,GAAAA,CAAWX,EAAO2G,OAAQf,EAAQe,QAC1CN,QAASrG,EAAOqG,QAChBG,WAAYxG,EAAOwG,WACnBK,QAAS7G,EAAO6G,UAEpBc,UAAU,MACVN,iBAAkBA,GAAoBhJ,IAAAA,KAAU,kBAChDuJ,mBArCmB,QAAC,KAACC,EAAD,GAAOC,EAAP,MAAW3Q,GAAZ,SACvBkH,IAAAA,KAAU,sCAAuC,CAC7C0J,QAAS1J,IAAAA,OAAYwJ,EAAM,OAC3BG,MAAO3J,IAAAA,OAAYyJ,EAAI,OACvBG,UAAW5J,IAAAA,OAAYlH,EAAO,UAkC9BA,MAAOA,EACP4P,mBAAoBA,EACpBC,KAAMA,EACNC,cAAclL,EAAAA,EAAAA,OAAKmM,EAAAA,EAAAA,QAAO,GAAIV,GAC9BN,YAAaA,EACbC,qBAAqBpL,EAAAA,EAAAA,MAAKoM,EAAAA,GAAUV,MAKhDX,EAAqB/H,UAAY,CAC7B6G,QAAS3G,IAAAA,OACT8H,mBAAoB9H,IAAAA,QAAkBA,IAAAA,QACtC9H,MAAO8H,IAAAA,OACP+H,KAAM/H,IAAAA,OACNgI,aAAchI,IAAAA,KACdiI,YAAajI,IAAAA,OACbkI,oBAAqBlI,IAAAA,KACrBmI,cAAenI,IAAAA,MAAgB,CAAClF,QAASkF,IAAAA,SACzCoI,iBAAkBpI,IAAAA,QAGtB,QAAemJ,IAAAA,KAAWtB,I,8GCzE1B,MAAMuB,EAAmB,IAAoD,IAAnD,eAACC,EAAgB/E,SAAUgF,GAAwB,EAAfC,E,kXAAe,kCACzE,MAAMC,GAAUhN,EAAAA,EAAAA,QAAO,OAEjB,SAACiN,EAAD,SAAWzN,EAAX,WAAqBC,EAArB,UAAiCE,GAAaoN,EAC9CG,EAAmBL,EAAe,CAACrN,SAAAA,EAAUG,UAAAA,EAAWF,WAAAA,IAExD0N,EAAmB,IAAMH,EAAQ1O,SAAW4O,EAAiBF,EAAQ1O,QAAQ8O,cAInF,OAFAC,EAAAA,EAAAA,GAAmBF,EAAkB,CAACF,EAASK,WAG3C,6BACI,kBAAC,IAAD,CAAqBC,cAAc,EAAMC,SAAUL,IACnD,kBAAC,EAAAM,QAAD,CAASC,QAASV,GAAUF,KAKxCF,EAAiBtJ,UAAY,CACzBuJ,eAAgBrJ,IAAAA,KAChBsE,SAAUtE,IAAAA,MAGd,W,ogBC3BA,MAAMmK,EAAiB,iBACjBC,EAAiB,iBACjBC,EAAgB,gBAChBC,EAAc,cACdC,EAAc,cACdC,EAAuB,uBAEhB5C,EAAU,CACnB6C,eAAeC,EAAAA,EAAAA,IAAqBP,GACpCQ,eAAeD,EAAAA,EAAAA,IAAqBN,GACpCQ,cAAcF,EAAAA,EAAAA,IAAqBL,GACnCQ,YAAYH,EAAAA,EAAAA,IAAqBJ,GACjCQ,YAAYJ,EAAAA,EAAAA,IAAqBH,GACjCQ,mBAAmBL,EAAAA,EAAAA,IAAqBF,IAG/BQ,EAAuB,CAACC,EAAOC,KACxC,MAAMC,GAAiBnM,EAAAA,EAAAA,YAAWiM,EAAMG,eAAgBF,GAClDG,EAAmBC,GAAaH,EAAe1F,SAAS6F,GAC9D,OAAOC,EAAAA,EAAAA,QACH,CACIH,gBAAgBI,EAAAA,EAAAA,QAAON,GACvBO,SAASlG,EAAAA,EAAAA,OACL,eAACkG,EAAD,uDAAW,GAAX,OAAkBJ,EAAgBI,EAAQC,UAC1C,KACI,MAAOC,GAAiBT,EACxB,MAAO,CAACQ,MAAOC,EAAeC,MAAO,UAG7CC,QAAUA,IACNC,EAAAA,EAAAA,MAAKD,GAASlH,QACV,CAACC,EAAK0G,IAAcD,EAAgBC,IAAYS,EAAAA,EAAAA,QAAOT,EAAU1G,GAAOA,GACxEiH,IAGZZ,IA4CR,GACIe,QAzCmB,CAACf,EAAOgB,KAC3B,OAAQA,EAAOC,MACX,KAAK/B,EAAgB,CACjB,MAAMgC,EAAYF,EAAOG,QACzB,OAAOpB,EAAqBC,EAAOkB,GAEvC,KAAK/B,EAAgB,CACjB,MAAMiC,GAAiBpB,EAAMY,QAC7B,YACOZ,EADP,CAEIY,QAASQ,EAAgB,GAAK,KAC9BtE,KAAMsE,EAAgBpB,EAAMlD,KAAO,IAG3C,KAAKsC,EAAe,CAChB,MAAM,SAACiB,EAAD,OAAWtG,GAAUiH,EAAOG,QAClC,OAAOb,EAAAA,EAAAA,QAAO,CAACM,QAAS7G,GAASM,EAAAA,EAAAA,OAAMgG,EAAUtG,IAAU+G,EAAAA,EAAAA,QAAOT,GAAWvD,MAAMyD,EAAAA,EAAAA,QAAO,IAAKP,GAEnG,KAAKX,EAAa,CACd,MAAMqB,EAAgBM,EAAOG,QACvBE,GAAgBC,EAAAA,EAAAA,MAAK,CAAC,UAAW,SAAUtB,GAC3CuB,GAAgBD,EAAAA,EAAAA,MAAK,CAAC,UAAW,SAAUtB,GACjD,YACOA,EADP,CAEIQ,QAAS,CACLC,MAAOC,EACPC,OAAOa,EAAAA,EAAAA,IAAgBd,IAAkBW,EAAgBE,EAAgB,OAE7EzE,KAAM,IAGd,KAAKwC,EACD,YAAWU,EAAX,CAAkBlD,KAAMkE,EAAOG,UACnC,KAAK5B,EACD,YAAWS,EAAX,CAAkBhD,YAAagE,EAAOG,UAC1C,QACI,OAAOnB,IAMfrD,QAAAA,EACAoD,qBAAAA,I,giBCnFG,MAAM/K,GAAYC,E,SAAAA,IAAYyF,IAAD,CAChC,uBACIoB,QAAS,OACT2F,cAAe,UACZ/G,EAAMgH,e,gNCDjB,MAAMC,GAAYC,EAAAA,EAAAA,aAA0C,CAAC,EAAsCC,KAAQ,IAA9C,SAACxI,EAAD,UAAW7C,GAAmC,EAArBsL,E,kXAAqB,6BACvG,MAAMhM,EAASd,IACf,OACI,kBAAC+M,EAAA,EAAD,GAAOF,IAAKA,EAAKrL,UAAWA,EAAWkF,QAAS,CAACzC,KAAMnD,EAAO,uBAA2BgM,GACpFzI,MAKbsI,EAAUK,YAAc,YAExBL,EAAU9M,UAAY,CAClBwE,SAAUtE,IAAAA,KACVyB,UAAWzB,IAAAA,QAGf,W,wFCjBA,MAAMkN,EAAY,IAAM,yBAAKvM,MAAO,CAACoG,QAAS,UAExCoG,EAAe,QAAC,YAACC,EAAD,SAAc9I,GAAf,SACjB,kBAAC,IAAD,CACI+I,aAAa,EACbC,OAAQ,QAAC,MAAC/P,GAAF,SAAcA,EAAQ6P,EAAc,oCAAG9I,GAAe,kBAAC4I,EAAD,UAItEC,EAAarN,UAAY,CACrBwE,SAAUtE,IAAAA,KACVoN,YAAapN,IAAAA,OAAAA,YAGjB,W,wFChBO,MAAMC,GAAYC,E,SAAAA,GAAW,CAChCqN,UAAW,CACP3H,MAAO,iBACPyB,SAAU,OACVmG,WAAY,SACZC,WAAY,SACZC,aAAc,WACdC,SAAU,UAEdjG,OAAQ,CACJL,SAAU,OACVzB,MAAO,iBACPgI,YAAa,OACb,KAAM,CACFC,aAAc,SAGtBC,WAAY,CACR,OAAQ,CACJzG,SAAU,OACV7J,OAAQ,SAGhBuQ,UAAW,CACPC,SAAU,U,eCnBlB,MAAMC,EAAmC,IAA0D,IAAzD,MAACxX,EAAD,SAAQyX,EAAR,QAAkBC,EAAlB,QAA2BxH,EAAU,GAArC,WAAyCyH,GAAgB,EAC/F,MAAMrN,EAASd,KAERoO,KAAgBC,GAAeH,EAChCI,EAAkD,IAAvBD,EAAYvU,QAE7CyU,EAAAA,EAAAA,YAAU,KACFD,GAA4B9X,IAAU4X,EAAY5X,OAClDyX,EAASG,EAAY5X,SAE1B,CAAC4X,EAAY5X,QAEhB,MAAMgY,IAAiBL,EAEvB,OACI,yBAAK3M,UAAWkF,EAAQzC,MACnBqK,EACG,kBAAC,EAAAG,WAAD,CAAYjN,UAAWkF,EAAQ4G,WAAaxM,EAAOwM,UAAWoB,QAAS,MAClEN,EAAYnN,OAGjB,kBAAC0N,EAAA,EAAD,CACIH,aAAcA,EACdI,kBAAkB,EAClBlI,QAAS,CACLe,OAAQf,EAAQe,QAAU3G,EAAO2G,QAErCoH,eAAgB,CACZnI,QAAS,CACLzC,KAAMyC,EAAQoH,WAAahN,EAAOgN,YAG1CgB,UAAW,CACPpI,QAAS,CACLqI,KAAMrI,EAAQmH,YAAc/M,EAAO+M,aAG3CrX,MAAOA,GAAS,GAChBwY,QAASR,EAAe,CAAC,CAAChY,MAAO,GAAIyK,MAAOkN,MAAgBD,GAAWA,EACvED,SAAWzX,GAAUyX,EAASzX,GAAS,UAO3DwX,EAAiCnO,UAAY,CACzCrJ,MAAOuJ,IAAAA,OACPkO,SAAUlO,IAAAA,KACVmO,QAASnO,IAAAA,QACLA,IAAAA,MAAgB,CACZvJ,MAAOuJ,IAAAA,OACPkB,MAAOlB,IAAAA,UAGf2G,QAAS3G,IAAAA,MAAgB,CACrBkE,KAAMlE,IAAAA,OACNuN,UAAWvN,IAAAA,OACX0H,OAAQ1H,IAAAA,OACR8N,WAAY9N,IAAAA,OACZ+N,UAAW/N,IAAAA,SAEfoO,WAAYpO,IAAAA,QAGhB,W,yDCtEA,MAEA,EAFe,IAAM,yBAAKW,MAAO,CAACuO,KAAM,M,6ECCxC,MAAMC,EAAkB,QAAC,OAAC3R,EAAD,OAAS4R,GAAV,SACpB,yBACIzO,MAAO,CACHpD,MAAO,MACPC,OAAS,GAAEA,MACX6R,WAAY,6BACZD,OAAS,KAAIA,MACbE,WAAY,QAKxBH,EAAgBrP,UAAY,CACxBtC,OAAQwC,IAAAA,OACRoP,OAAQpP,IAAAA,QAGZ,W,mGClBO,MAAMC,GAAYC,E,SAAAA,IAAW,KAAM,CACtCqP,iBAAkB,CACdxI,QAAS,OACTC,WAAY,SACZwI,OAAQ,WAGZC,MAAO,CACHhI,YAAa,MACbD,WAAY,OACZpB,UAAW,eACXsJ,WAAY,wBAGhBC,QAAS,CACLvJ,UAAW,uB,4CCRnB,MAAMwJ,EAAiB,IAAkC,IAAjC,OAACC,EAAD,QAASrQ,EAAT,UAAkBiC,GAAe,EACrD,MAAMV,EAASd,IACf,OACI,kBAAC,EAAA6P,KAAD,CAAMrO,UAAWC,GAAAA,CAAWX,EAAOwO,iBAAkB9N,GAAYjC,QAASA,EAASuQ,UAAU,QACzF,kBAACC,EAAA,EAAD,CAAmBvO,UAAWC,GAAAA,CAAWX,EAAO0O,MAAO,CAAC,CAAC1O,EAAO4O,SAAUE,MACzEA,EAASzQ,IAAAA,KAAU,aAAeA,IAAAA,KAAU,eAKzDwQ,EAAe9P,UAAY,CACvB+P,OAAQ7P,IAAAA,KACRR,QAASQ,IAAAA,KACTyB,UAAWzB,IAAAA,QAGf,W,mLCVO,MAAMiQ,EAAyB,QAAC,QAACrI,EAAD,SAAUsI,GAAX,SAClCrO,EAAAA,EAAAA,UACI,IACIsO,OAAOlB,QAAQrH,GAASjD,QAAO,CAACC,EAAD,KAAsC,IAA/BwL,EAAYC,GAAmB,EACjE,O,8UAAA,IAAWzL,EAAX,CAAgB,CAACwL,IAAatT,EAAAA,EAAAA,MAAKuT,EAAeH,OACnD,KACP,CAACA,EAAUtI,M,mgBCRZ,MAAM0I,EAA6B,IAA4D,IAAxD,cAACC,EAAD,UAAgBC,EAAhB,cAA2BC,GAA6B,EAClG,MAAOC,EAAYC,IAAiBrU,EAAAA,EAAAA,UAAwB,KACrDsU,EAAcC,IAAmBvU,EAAAA,EAAAA,UAAwB,OACzDwU,EAAUC,IAAezU,EAAAA,EAAAA,WAAS,IAQzCuN,EAAAA,EAAAA,IAN4C,KACpC+G,IACAD,EAAc,EAAD,GAAKD,EAAeE,IACjCC,EAAgB,SAGgC,CAACJ,IAEzD,MAAMO,GAAmBtU,EAAAA,EAAAA,cACpBuU,IACG,IAAKR,EAAe,OACpB,MAAMG,EAAe,CACjB,CAACH,GAAgBQ,GAErBJ,EAAgBD,GAChBJ,EAAU,EAAD,GAAKE,EAAeE,MAEjC,CAACH,EAAeD,EAAWE,IAY/B,OATAlC,EAAAA,EAAAA,YAAU,KACN+B,IACKW,MAAMR,IACHC,EAAcD,GAAc,OAE/BQ,MAAMC,GAAMJ,GAAY,KACxBK,OAAOD,GAAMJ,GAAY,OAC/B,IAEI,CAACD,SAAUA,KAAcL,EAAeC,WAAYA,EAAWD,GAAgBO,iBAAAA,K,+PC5C1F,MAAMK,EAA+B5a,GAAW,gBAAeA,M,wBCU/D,MAAM6a,EAAwB,CAAC,GAAI,GAAI,GAAI,KAMrCC,EAA6B,OAC7BC,EAAmB,UACnBC,EAAuB,aAIvBC,EAAuB,CACzB,CACIxV,GAAI,YACJgF,MAAO,OACP4D,mBAAoB,CAChBoH,KAAMyF,EAAAA,IAAAA,gBAEVC,UAAU,GAEd,CACI1V,GAAIqV,EACJrQ,MAAO,mBACP2Q,UAAU,EACVC,cAAe,CAAC,CAACrb,MAAOsb,EAAAA,IAAAA,QAAuB,CAACtb,MAAOsb,EAAAA,IAAAA,cAE3D,CACI7V,GAAIsV,EACJtQ,MAAO,SACP2Q,UAAU,EACV/M,mBAAoB,CAChBoH,KAAMyF,EAAAA,IAAAA,cAGd,CACIzV,GAAIuV,EACJvQ,MAAO,aACP2Q,UAAU,EACVG,YAAY,EACZC,eA9BuB,IAkCzBC,GAAkBrT,EAAAA,EAAAA,OAAM,KAAM6S,GAC9BS,EAAoB,CAACZ,EAA4BE,GAEjDW,GAA0CtV,EAAAA,EAAAA,OAC5CuI,EAAAA,EAAAA,MAAKgN,IAAD,CACAnW,IAAIoW,EAAAA,EAAAA,KAAwBD,EAAKE,KACjCrR,MAAOmR,EAAKnR,MACZ4D,oBAAoB0N,EAAAA,EAAAA,KAA0BH,QAElDI,EAAAA,EAAAA,SAAO1V,EAAAA,EAAAA,MAAK,QAQV2V,GAAuB5V,EAAAA,EAAAA,OACzBmI,EAAAA,EAAAA,QAAM,QAAC,YAAC0N,GAAF,SAAmBA,EAAYtN,KAAI,QAAC,KAACuN,EAAD,MAAO1R,GAAR,QAAoB,CAACA,MAAAA,EAAOzK,MAAOmc,UAC5EH,EAAAA,EAAAA,SAAO1V,EAAAA,EAAAA,MAAK,WAyCV8V,EAAmB,CAACvH,EAAUwH,IAAc5U,IAC9C6U,EAAAA,EAAAA,QAAO7U,EAAY8U,WAAUC,EAAAA,EAAAA,QAAO,KAAM3H,IAAYwH,EAAU5U,GAQ9DgV,EAAsBC,GACxBN,EAAiBrB,GAAkBlM,EAAAA,EAAAA,OAAM,gBAhDP6N,CAAAA,IAClC,MAAMC,EAAqB,CACvBlH,KAAMyF,EAAAA,IAAAA,YACNxD,QAASuE,EAAqBS,IAE5BE,GAAiBC,EAAAA,EAAAA,KAA0B,SACjD,MAAO,CACH,CAAC7c,MAAOsb,EAAAA,IAAAA,QACR,CAACtb,MAAOsb,EAAAA,IAAAA,YACR,CAACtb,MAAOsb,EAAAA,IAAAA,SACR,CAACtb,MAAOsb,EAAAA,IAAAA,SACR,CAACtb,MAAOsb,EAAAA,IAAAA,aACR,CACItb,MAAO4c,EAAetB,EAAAA,IAAAA,QACtB7Q,MAAO9B,IAAAA,KAAU,eACjB0F,mBAAoBsO,GAExB,CACI3c,MAAO4c,EAAetB,EAAAA,IAAAA,YACtB7Q,MAAO9B,IAAAA,KAAU,YACjB0F,mBAAoBsO,GAExB,CACI3c,MAAO4c,EAAetB,EAAAA,IAAAA,SACtB7Q,MAAO9B,IAAAA,KAAU,gBACjB0F,mBAAoBsO,GAExB,CACI3c,MAAO4c,EAAetB,EAAAA,IAAAA,SACtB7Q,MAAO9B,IAAAA,KAAU,iBAErB,CACI3I,MAAO4c,EAAetB,EAAAA,IAAAA,aACtB7Q,MAAO9B,IAAAA,KAAU,uBAeiCmU,CAA6BJ,KAIrFK,EAAiB,CAACC,EAAUC,EAAQP,EAAkBQ,KACxD,OAAOA,GACD7W,EAAAA,EAAAA,MACE8W,EAAAA,IACAxB,GACAlT,EAAAA,EAAAA,QAAOwS,IACPmC,EAAAA,EAAAA,SAAO,QAAC,GAAC3X,GAAF,SAAUiW,EAAkB1M,SAASvJ,MAC5CgX,EAAmB,EAACY,EAAAA,EAAAA,KAAmBL,EAAUE,KALnD7W,CAMA2W,EAAUE,IACV7W,EAAAA,EAAAA,OAXsBiX,EAYGL,EAAOK,WAZKlB,EAAiBpB,GAAsBnM,EAAAA,EAAAA,OAAM,cAAeyO,KATtEZ,CAAAA,GACjCN,EACItB,GACAjM,EAAAA,EAAAA,OAAM,qBAtDwB6N,CAAAA,IAAD,CACjCjH,KAAMyF,EAAAA,IAAAA,YACNxD,QAASgF,EAAiB9N,KAAI,QAAC,IAACkN,EAAD,MAAMrR,GAAP,QAAmB,CAACzK,MAAO8b,EAAKrR,MAAAA,QAoD9B8S,CAA6Bb,KAmBrDc,CAA4Bd,GAC5BD,EAAmBO,EAASN,kBAAoB,IAHlDrW,CAIA4U,GAfsBqC,IAAAA,G,8gBC/HhC,MAAMG,EAAuB,CACzB5N,QAAS,mBACT,eAAgB,CACZ6N,cAAe,SAIVlU,GAAYC,EAAAA,EAAAA,IAAYyF,IAAD,CAChCyO,SAAU,CACNrN,QAAS,OACTC,WAAY,SACZxJ,OAAQ,OACR6J,SAAU,QAEdgN,QAAS,CACLhN,SAAU,OACVsG,SAAU,SACV2G,aAAc,aACdC,SAAU,cAEd,mBAAoB,CAChB3O,MAAO,oBAEX4O,cAAe,CACX3G,aAAc,OACdD,YAAa,OACb,eAAgB,CACZuG,cAAe,SAGvBM,cAAe,CACX1N,QAAS,OACT2N,WAAY,OACZC,UAAW,aACX1O,SAAU,YAEd2O,YAAa,CACTvN,SAAU,OACVN,QAAS,eACT8N,UAAW,SACXzF,OAAQ,oBAEZ0F,aAAc,CACV1O,UAAW,aACXH,SAAU,WACV8O,KAAM,EACNC,IAAK,OAETC,eAAgBf,EAChBgB,YAAa,EAAF,GACJhB,EADI,CAEPzG,WAAY,aAEhB0H,KAAM,CACF3F,OAAQ,UACR5J,MAAOD,EAAME,QAAQC,QAAQC,MAEjCqP,kBAAmB,CACf9O,QAAS,sBACTV,MAAO,oBAEXyP,SAAU,CACN7N,WAAY,Y,gNC3DpB,MAAM8N,EAAkB,IAAwD,IAAvD,KAAChM,EAAD,kBAAOiM,EAAP,SAA0BC,GAA6B,EAAhBzI,E,kXAAgB,4CAC5E,MAAMhM,EAASd,IACf,OACI,yBACIwB,UAAWC,GAAAA,CACP,CACI,CAACX,EAAO,qBAAsByU,GAElCzU,EAAOsT,UAGV/K,EAAKmM,OAAOpQ,KAAI,CAAC5O,EAAO4M,IACrB,kBAACkS,EAAD,GAAmBnY,IAAKiG,EAAO5M,MAAOA,GAAWsW,QAMjEuI,EAAgBxV,UAAY,CACxB2J,SAAUzJ,IAAAA,OACVsJ,KAAMtJ,IAAAA,OACNuV,kBAAmBvV,IAAAA,YACnBwV,SAAUxV,IAAAA,MAGd,U,qCCxBA,MASA,GAAe0V,E,SAAAA,IATWpY,IACtB,MAAMyD,EAASd,IACf,OACI,yBAAKwB,UAAWV,EAAOqT,UACnB,kBAACuB,EAAA,QAA4BrY,O,eCAzC,MAAMsY,GAAa,IAAkC,IAAjC,WAACC,EAAD,MAAa3U,EAAb,QAAoB1B,GAAa,EACjD,MAAMuB,EAASd,IACT6V,GAAeC,EAAAA,EAAAA,KAAS7U,GAC9B,OACI,yBAAKO,UAAWV,EAAO0T,eACnB,kBAACuB,GAAA,EAAD,CAAgBvU,UAAWV,EAAO+T,aAAce,WAAYA,IAC5D,0BAAMpU,UAAWC,GAAAA,CAAWX,EAAO6T,YAAa7T,EAAOoU,MAAO3V,QAASA,GAClEsW,KAKjBF,GAAW9V,UAAY,CACnB+V,WAAYI,EAAAA,IACZ/U,MAAOlB,IAAAA,OACPR,QAASQ,IAAAA,MAGb,MAAMkW,IAAmBpZ,EAAAA,EAAAA,MAAK2Y,EAAAA,QAAQxQ,EAAAA,EAAAA,QAAMlI,EAAAA,EAAAA,MAAK,aAAa0V,EAAAA,EAAAA,SAAO1V,EAAAA,EAAAA,MAAK,eAEpEoZ,GAAiB,IAAa,IAAZ,MAAC1f,GAAW,EAChC,MAAMsK,EAASd,IACTmW,EAAUF,GAAiBzf,GAC3ByZ,GAAWmG,EAAAA,EAAAA,eACXC,GAASC,EAAAA,EAAAA,YAAWC,EAAAA,GACpB/C,GAAWgD,EAAAA,EAAAA,aAAYC,EAAAA,GAAAA,UAAAA,aAG7B,OACI,yBAAKjV,UAAWV,EAAOyT,eAClB4B,EAAQ/Q,KAAI,QAAC,UAACsR,EAAD,KAAYzK,EAAZ,MAAkBhL,GAAnB,SACT,kBAAC0U,GAAD,CACIxY,IAAKuZ,EACLd,YAAYe,EAAAA,EAAAA,KAAcnD,EAAUvH,GACpChL,MAAOA,EACP1B,QAAS,KAAMqX,OATJtE,EASsBoE,EATdzG,EAAS4G,EAAAA,GAAAA,QAAAA,WAAsB,CAACvE,IAAAA,EAAK+D,OAAAA,KAA7C/D,IAAAA,UAgB/B4D,GAAerW,UAAY,CACvBrJ,MAAOuJ,IAAAA,QAGX,Y,gBCnDA,MAAM+W,GAA2B,IAA+C,IAA9C,MAACtgB,EAAOwF,YAAY,mBAAC6I,IAAyB,EAC5E,MAAM/D,EAASd,IACf,OACI,yBAAKwB,UAAWV,EAAOkU,gBACnB,kBAAC+B,GAAA,EAAD,CAAevgB,MAAOA,EAAOqO,mBAAoBA,MAK7DiS,GAAyBjX,UAAY,CACjCrJ,MAAOuJ,IAAAA,IACP/D,WAAY+D,IAAAA,MAAgB,CACxB8E,mBAAoB9E,IAAAA,UAI5B,Y,gBCjBA,MAAMiX,GAAa,IAAa,IAAZ,MAACxgB,GAAW,EAC5B,MAAMsK,EAASd,IACf,OAAO,yBAAKwB,UAAWV,EAAOmU,aAAcze,IAGhDwgB,GAAWnX,UAAY,CACnBrJ,MAAOuJ,IAAAA,KAGX,Y,gBCPA,MAAMkX,GAAe,IAAa,IAAZ,MAACzgB,GAAW,EAC9B,MAAMsK,EAASd,IACf,OACI,yBAAKwB,UAAWV,EAAOkU,gBACnB,kBAAC,GAAAnF,KAAD,CAAMrO,UAAWV,EAAOoU,KAAMgC,KAAM1gB,EAAO2gB,OAAO,SAASrH,UAAU,QAChEtZ,KAMjBygB,GAAapX,UAAY,CACrBrJ,MAAOuJ,IAAAA,KAGX,Y,4BCXA,MAAMqX,GAAqB,IAAmC,IAAlC,MAAC5gB,EAAD,SAAQgT,EAAR,WAAkBxN,GAAgB,EAC1D,MAAM8E,EAASd,IAETwT,GAAWgD,EAAAA,EAAAA,aAAYa,EAAAA,GAAAA,UAAAA,aACvBC,EAAc9N,EAASK,SACvB0N,GAAY3V,EAAAA,EAAAA,UAAQ,KACEiS,EAAAA,EAAAA,KAAmBL,EAAU8D,EAAYrL,MAC1C6H,YACxB,CAACwD,EAAa9D,KAEVgE,EAAUC,IAAepb,EAAAA,EAAAA,WAAS,GAGnCyX,EAAatd,EACbkhB,EAAYxH,OAAOrE,KAAKiI,GAExB6D,EAAoB3b,EAAWgW,eAC/B4F,EAAuBF,EAAU5d,OAAS6d,EAC1CE,EAAkBL,EAAWE,EAAYA,EAAUI,MAAM,EAAGH,GAE5DI,GAAcC,EAAAA,EAAAA,MAAKH,EAAiB/D,GACpCmE,EAAkBJ,EAAgBzS,KAAKuN,GAAS4E,EAAUrT,MAAK8O,EAAAA,EAAAA,QAAO,OAAQL,MAEpF,OACI,yBAAKnR,UAAWV,EAAOqU,mBACnB,kBAAC,KAAD,CAAwB+C,OAAQ,CAACpE,WAAYiE,GAAcR,UAAWU,EAAiBE,WAAW,IACjGP,GACG,kBAACjI,GAAA,EAAD,CAAgBC,OAAQ4H,EAAUjY,QAhBvB,IAAMkY,GAAaD,IAAcA,IAgBehW,UAAWV,EAAOsU,aAM7FgC,GAAmBvX,UAAY,CAC3BrJ,MAAOuJ,IAAAA,OACPyJ,SAAUzJ,IAAAA,OACV/D,WAAY+D,IAAAA,QAGhB,Y,yHC/BA,MAGMqY,IAA0Bvb,EAAAA,EAAAA,OAAKwb,EAAAA,EAAAA,OAAM,MAAMP,EAAAA,EAAAA,OAAM,EAAGQ,EAAAA,IAiCpDC,GAA2BlN,IAC7B,GAAIA,EAAS3H,WAAW,eAAgB,CACpC,MAAM8U,EAAWJ,GAAwB/M,GACzC,OAAOmN,EAAS1e,OAAS,EAAI0e,EAASV,MAAM,GAAI,GAAK,KAErD,OAAO,MAITW,GAAwBzc,IAC1B,GAAIA,EAAWC,KAAOsV,EAClB,OAAO2E,GAEX,GAAIla,EAAWC,KAAOuV,EAClB,OAAO4F,GAEX,OAAQpb,EAAW6I,mBAAmBoH,MAClC,KAAKyF,EAAAA,IAAAA,SACL,KAAKA,EAAAA,IAAAA,cACL,KAAKA,EAAAA,IAAAA,eACL,KAAKA,EAAAA,IAAAA,WACD,OAAOuF,GACX,KAAKvF,EAAAA,IAAAA,UACD,OAAOsF,GACX,QACI,OAAOF,KAab4B,IAA2BtT,EAAAA,EAAAA,MATApJ,G,+UAAD,EAC5B4V,UAAU,GACP5V,EAFyB,CAG5B2c,WAAW,EACXC,WAAYL,GAAwBvc,EAAWC,IAC/C4c,iBAAkBC,EAClBC,qBAAsBN,GAAqBzc,OAKzCgd,IAAkBnc,EAAAA,EAAAA,OAAKC,EAAAA,EAAAA,MAAK,WAAYhD,EAAAA,QACxCmf,IAAsBpc,EAAAA,EAAAA,OACxBuI,EAAAA,EAAAA,KAAI4T,IACJxD,EAAAA,QACA9Q,EAAAA,EAAAA,SAAO,CAACC,EAAK1M,IAAU0M,EAAc,GAAR1M,GAAY,KAGvCihB,IAA6Brc,EAAAA,EAAAA,OAC/ByP,EAAAA,EAAAA,MAAK,CAAC,OAAQ,YACd5H,EAAAA,EAAAA,SAAO,CAACC,EAAKwU,IAAWxU,EAAMsU,GAAoBE,IAAS,IAUzDC,IAAyBC,EAAAA,EAAAA,MAAK,CAChC,EAACC,EAAAA,EAAAA,QAAO,CAAC,aAAc,MAAO/H,GAAmB2H,IACjD,EAACI,EAAAA,EAAAA,QAAO,CAAC,aAAc,MAAO9H,GATI,IAAwB,IAAvB,WAACxV,EAAD,KAAaqN,GAAU,EAC1D,MAAMkQ,GAAkB1c,EAAAA,EAAAA,OAAKyP,EAAAA,EAAAA,MAAK,CAAC,SAAU,IAAKkJ,EAAAA,OAAQ1b,EAAAA,OAAlC+C,CAA0CwM,GAClE,OAAOkQ,EAAkBvd,EAAWgW,eACF,GAA5BhW,EAAWgW,eAAsB,GACf,GAAlBuH,EAAuB,KAM7B,CAACC,EAAAA,EAAGC,GAAAA,K,gBClHD,MAAMzZ,IAAYC,EAAAA,EAAAA,GAAW,CAChCyZ,eAAgB,CACZzK,KAAM,EACNnI,QAAS,OACT6S,WAAY,SACZhU,MAAO,oBAGX,4BAA6B,CACzBgU,WAAY,wCAGhB,iCAAkC,CAC9BA,WAAY,wCAEhB,8BAA+B,CAC3B3T,SAAU,YAEd,4BAA6B,CACzBc,QAAS,OACT6G,YAAa,OACb,aAAc,CACVpG,WAAY,QACZpB,UAAW,iB,mNCLvB,MAkEA,GAlE0B,IASb,IATc,YACvBlI,EADuB,aAEvB2b,EAFuB,SAGvBpG,EAHuB,QAIvBhI,EAJuB,OAKvBqO,EALuB,QAMvBjO,EANuB,SAOvBkO,EAPuB,cAQvB5R,GACS,EACT,MAAM6R,GAAgBnY,EAAAA,EAAAA,UAClB,IFYsB,EAACgY,EAA6B3b,EAAyBuV,IACjFoG,EAAaxU,KAAKkS,IACdza,EAAAA,EAAAA,OACI6H,EAAAA,EAAAA,SACI,CAACC,EAAK3I,KAAeqJ,EAAAA,EAAAA,OAAMrJ,EAAWC,GAxB1B,EAACD,EAAwBsb,EAA0B9D,KAC3E,OAAQxX,EAAWC,IACf,KAAKsV,EACD,OAAOyI,EAAAA,EAAAA,KAAwBxG,EAAU8D,GAC7C,IAAK,YACD,OAAOA,EAAY2C,UACvB,KAAK3I,EACD,OAAOgG,EAAYrL,KACvB,KAAKuF,EAAsB,CACvB,MAAM0I,GAAa5N,EAAAA,EAAAA,MAAK,CAAC,cAAegL,EAAYrL,MAAOjQ,GACrDme,EAAe,CAAC3E,EAAQ7C,IAASuH,EAAW1U,UAAS4U,EAAAA,EAAAA,KAAgB9C,EAAYrL,KAAM0G,IAC7F,OAAOuH,GAAaG,EAAAA,EAAAA,QAAOF,EAAc7C,EAAYxD,YAAcwD,EAAYxD,WAEnF,QAEI,MApB0B,EAAC0E,EAAUlB,KAC7Cza,EAAAA,EAAAA,OAAKyP,EAAAA,EAAAA,MAAK,CAAC,gBAAgBgO,EAAAA,EAAAA,KAAyB9B,GAApD3b,CAA+Dya,GAmBhDiD,CADUnC,GAAwBpc,EAAWC,IACLqb,KASDkD,CAAoBxe,EAAYsb,EAAa9D,GAAW7O,IAClG,KAEJU,EAAAA,EAAAA,OAAM,WAAYiS,GALtBza,CAMEoB,KEpBIwc,CAAsBb,EAAc3b,EAAauV,IACvD,CAACoG,EAAc3b,EAAauV,IAE1BkH,GAAmB9Y,EAAAA,EAAAA,UAAQ,IAAM8W,GAAyBza,IAAc,CAACA,IAEzE6C,EAASd,MAET,wBAACpD,EAAD,oBAA0BI,EAA1B,kBAA+CL,IAAqBge,EAAAA,GAAAA,MAE1EC,EAAAA,EAAAA,iBAAgBje,EAAmB,CAACid,IAEpC,MAAMiB,GAAgBpe,EAAAA,EAAAA,cACjBY,GACG,kBAAC8L,EAAA,EAAD,IAAkBC,eAAgBpM,GAAyBK,GACvD,kBAAC,EAAD,MACQA,EADR,CAEIkY,WACM/J,GAAWA,EAAQC,QAAUpO,EAAMrB,WAAWC,QAKhE,CAACuP,EAASxO,IAGR8d,GAAmBre,EAAAA,EAAAA,cAAY0H,EAAAA,EAAAA,QAAOvH,EAAyBwc,IAAyB,CAC1Fxc,EACAwc,KAGJ,OACI,yBAAK5X,UAAWV,EAAO4Y,gBACnB,kBAACqB,EAAA,EAAD,CACI9c,YAAayc,EACbM,SAAUjB,EACVvO,QAASA,EACTqO,OAAQA,EACRjO,QAASA,EACTkO,SAAUA,EACVmB,mBAAmB,EACnBC,mBAAoB,IACpBC,sBAAuB,IACvBL,iBAAkBA,EAClBM,cAAe,GACfP,cAAeA,EACfnU,QAAS,CACL2U,8BAA+Bva,EAAO,6BACtCwa,gCAAiCxa,EAAO,gCAE5C+L,IAAK3E,M,uFC9Ed,MAAMlI,IAAYC,EAAAA,EAAAA,GAAW,CAChCsb,OAAQ,CACJ,aAAc,CACVpM,OAAQ,UAEZvB,aAAc,QAElB4N,aAAc,CACVnU,WAAY,UACZD,SAAU,OACVzB,MAAO,kBACP0J,WAAY,EACZ7H,YAAa,OAEjBiU,wBAAyB,CACrBtM,OAAQ,kBACRzB,SAAU,Y,gBCZlB,MAAMgO,GAA0B,IAAoD,IAAnD,MAACllB,EAAD,SAAQyX,EAAR,iBAAkBiF,EAAlB,UAAoC1R,GAAe,EAChF,OACI,kBAACwM,GAAA,EAAD,CACItH,QAAS,CACLzC,KAAMzC,GAEVhL,MAAOA,EACPyX,SAAUA,EACVC,QAASgF,EAAiB9N,KAAI,QAAC,MAACnE,EAAD,IAAQqR,GAAT,QAAmB,CAACrR,MAAAA,EAAOzK,MAAO8b,MAChEnE,WAAYhP,IAAAA,KAAU,4BAKlCuc,GAAwB7b,UAAY,CAChCrJ,MAAOuJ,IAAAA,OACPkO,SAAUlO,IAAAA,KACVmT,iBAAkBnT,IAAAA,QAAkB4b,EAAAA,KACpCna,UAAWzB,IAAAA,QAGf,YCTM6b,GAA0B,IAW1B,IAX2B,MAC7Bxd,EAD6B,MAE7Byd,EAF6B,eAG7BC,EAH6B,gBAI7BC,EAJ6B,YAK7B9d,EAL6B,gBAM7BC,EAN6B,gBAO7BC,EAP6B,iBAQ7B+U,EAR6B,uBAS7BQ,EAT6B,wBAU7BsI,GACE,EACF,MAAMlb,EAASd,KAEf,OACI,kBAACic,GAAA,EAAD,CAAiB7d,MAAOA,EAAOsI,QAAS,CAACzC,KAAMnD,EAAOya,OAAQnd,MAAO0C,EAAO1C,QACvE8U,EAAiBpZ,OAAS,GACvB,kBAAC,GAAD,CACI0H,UAAWV,EAAO2a,wBAClBjlB,MAAOkd,EACPzF,SAAU+N,EACV9I,iBAAkBA,IAG1B,kBAAChG,GAAA,EAAD,CAAcC,YAAa,KACvB,kBAAC+B,GAAA,EAAD,CAAiB3R,OAAQ,GAAI4R,OAAQ,KACrC,kBAAC,GAAAV,WAAD,CAAYjN,UAAWV,EAAO0a,aAAc9M,QAAQ,WAC/CmN,EAAQ,EACH1c,IAAAA,KAAU,wBAAyB,CAAClH,MAAO4jB,IAC3C1c,IAAAA,KAAU,uBAAwB,CAAClH,MAAO4jB,MAGxD,kBAACK,GAAA,EAAD,MACA,kBAAC5V,GAAA,EAAD,CAAcC,QAASuV,EAAgBvc,QAASwc,IAChD,kBAAC7M,GAAA,EAAD,CAAiB3R,OAAQ,GAAI4R,OAAQ,IACrC,kBAACnR,GAAA,EAAD,CACIC,YAAaA,EACbC,gBAAiBA,EACjBC,gBAAiBA,MAMjCyd,GAAwB/b,UAAY,CAChCzB,MAAO2B,IAAAA,OACP8b,MAAO9b,IAAAA,OACP9B,YAAa6B,GAAAA,GACb5B,gBAAiB6B,IAAAA,QAAkBA,IAAAA,QACnC5B,gBAAiB4B,IAAAA,KACjB+b,eAAgB/b,IAAAA,KAChBgc,gBAAiBhc,IAAAA,KACjBmT,iBAAkBnT,IAAAA,QAAkB4b,EAAAA,KACpCjI,uBAAwB3T,IAAAA,OACxBic,wBAAyBjc,IAAAA,MAG7B,Y,ueClDA,MAAMoc,GAA0B,0BAC1BC,GAAoB,oBACpBC,GAAqB,qBAErB1U,GAAU,MACT2U,GAAAA,GAAAA,QADM,CAETC,uBAAuB9R,EAAAA,GAAAA,IAAqB0R,IAC5CK,iBAAiB/R,EAAAA,GAAAA,IAAqB2R,IACtCK,kBAAkBhS,EAAAA,GAAAA,IAAqB4R,MAGrCK,IAA2BpR,EAAAA,EAAAA,QAAO,CACpCM,SAAStG,EAAAA,EAAAA,OAAKxI,EAAAA,EAAAA,MAAKyU,IAAmBzF,EAAAA,EAAAA,QAAOyF,MAG3CoL,IAAkBtX,EAAAA,EAAAA,OAAM,OAAQ,GAEhCuX,GAAqD5R,IACvDnO,EAAAA,EAAAA,OACIC,EAAAA,EAAAA,MAAK,mBACL+f,EAAAA,EAAAA,SAAOtR,EAAAA,EAAAA,QAAOP,EAAM0I,yBAAyBoJ,EAAAA,EAAAA,SAAQ5K,IAAoBjT,EAAAA,EAAAA,QAAOiT,KAChF6K,EAAAA,EAAAA,cAAa9K,GAHjBpV,CAIEmO,GAEAgS,GAAmDhS,IACrDsB,EAAAA,EAAAA,MAAK,CAAC,oCAAsC,GAAEtB,EAAM0I,0BAA2B1I,GAE7EiS,GAAiDjS,IACnD,MAAMC,GAAqB9G,EAAAA,EAAAA,QACvB6Y,GACAJ,GAFuBzY,CAGzB6G,GACF,OAAOsR,GAAAA,GAAAA,qBAAyCtR,EAAOC,IAGrDiS,IAAkC/Y,EAAAA,EAAAA,QAAO6Y,IAAiDlgB,EAAAA,EAAAA,MAAK,mBAC/FqgB,IAA2BtgB,EAAAA,EAAAA,OAC7BiH,EAAAA,EAAAA,QAAO,KAAM,YACbsZ,EAAAA,EAAAA,QACIC,EAAAA,OACAtY,EAAAA,EAAAA,SAAO,QAAC,OAACA,EAAD,MAASvO,GAAV,SAAqB8mB,EAAAA,EAAAA,KAAoBvY,EAAQvO,QAI1D+mB,GAA+CvS,IACjD,MAAM,uBAAC0I,EAAD,eAAyBvI,GAAkBH,EACjD,OAAOM,EAAAA,EAAAA,QACH,CACIkS,mCAAmCnY,EAAAA,EAAAA,OAAO,GAAEqO,IAA0BvI,IAE1EH,IAIFyS,IAAiB5gB,EAAAA,EAAAA,MACnB0gB,IACAvF,EAAAA,EAAAA,MAAK,CAAC,yBAA0B,oCAAqC,UAAW,aAe9EjM,GAAU,CAACf,EAAqBgB,KAClC,OAAQA,EAAOC,MACX,KAAKkQ,GAAyB,CAC1B,MAAMuB,EAAsB1R,EAAOG,QACnC,OAAOtP,EAAAA,EAAAA,MACH0gB,IACAlY,EAAAA,EAAAA,OAAM,yBAA0BqY,GAChCT,GACAP,GACAC,GALG9f,CAMLmO,GAEN,KAAKoR,GAAmB,CACpB,MAAM,WAAC3L,EAAD,WAAamF,GAAc5J,EAAOG,QAClChB,EAAiBsF,EAAayM,GAAgCzM,GAAczF,EAAMG,eAExF,aACOH,EACAyF,EAFP,CAGI7E,QAJY6E,EAAa0M,GAAyB1M,GAAczF,EAAMY,QAKtET,eAAAA,EACAwS,8BAA+B/H,IAGvC,KAAKyG,GACD,aACOrR,EADP,CAEIgG,YAAayM,GAAezS,KAGpC,QACI,OAAOsR,GAAAA,GAAAA,QAA4BtR,EAAOgB,KC7HzChM,IAAYC,EAAAA,EAAAA,IAAYiR,IAAD,CAChCxE,UAAW,CACP1G,SAAU,WACV+O,IAAK,EACL7O,OAAQ,EACR4O,KAAM,EACN7O,MAAO,EACPiB,UAAW,QAEf0W,UAAW,CACP5X,SAAU,WACViJ,KAAM,EACNnI,QAAS,OACT2F,cAAe,eCiBhBoR,IAAsB5L,EAuK7B,GAhK8B,IAA+C,IAA9C,OAACwB,EAAD,cAASnD,EAAT,UAAwBC,GAAsB,EACzE,MAAM2H,GAAiB1B,EAAAA,EAAAA,aAAYa,EAAAA,GAAAA,UAAAA,WAC7B7D,GAAqBgD,EAAAA,EAAAA,aAAYa,EAAAA,GAAAA,UAAAA,aACjCvW,EAASd,KAET8d,EAAe,CACjBpK,uBAAwB,KACxB9H,QAAS,KACTT,eAAgB8G,EAChBzG,QAAS,CACLG,MAAO8H,EAAOsK,WAlBC,OAmBftS,MAAOgI,EAAOuK,YAAcH,IAEhC/V,KAAM,EACNE,YAAayL,EAAO5Q,KAvBE,GAwBtBmO,YAAa,KACb2M,8BAA+B,KAC/BH,kCAAmC,KAGhCxS,EAAOiF,IAAYgO,EAAAA,EAAAA,YAAWlS,GAAS+R,IACxC,eACF3S,EADE,QAEFS,EAFE,QAGFJ,EAHE,KAIF1D,EAJE,YAKFE,EALE,uBAMF0L,EANE,YAOF1C,EAPE,8BAQF2M,GACA3S,GACE,gBACFwR,EADE,iBAEFC,EAFE,cAGF/R,EAHE,WAIFE,EAJE,aAKFD,EALE,cAMFH,EANE,sBAOF+R,EAPE,WAQF1R,EARE,kBASFC,IACAkF,EAAAA,EAAAA,GAAW,CAACrI,QAAD,GAAUsI,SAAAA,KAElBqC,IAAK4L,EAAWjS,KAAM2J,GAAcsC,GAAU,GAE/CiG,EAAsBR,IAAkC/H,GAG1D/E,SAAUuN,EADR,WAEF3N,EAFE,iBAGFM,IACAV,EAAAA,EAAAA,GAAmD,CACnDG,cAAeoF,EACftF,cAAAA,EACAC,UAAAA,KAGJhC,EAAAA,EAAAA,YAAU,KACN,GAAI6P,EAAoB,CACpB,MAAMlL,GAAmBmL,EAAAA,EAAAA,KAAiC7K,EAAUoC,GAC9DlC,EAAyBjD,MAAAA,OAAH,EAAGA,EAAYiD,uBACrC4K,GACD5K,IAA0BG,EAAAA,EAAAA,KAAmB,CAACX,iBAAAA,GAAmBQ,GAEtE8I,EAAgB,CAAC/L,WADS6N,EAAyB7N,EAAa,KAChBmF,WAAAA,OAErD,CAACwI,EAAoBxI,EAAYpC,KAEpC5J,EAAAA,EAAAA,IAAmB,KACXuU,GACApN,EAAiBC,KAEtB,CAACA,KAKJpH,EAAAA,EAAAA,IAHkB,KACdiB,EAAW,KAEe,CAACqT,IAE/B,MAAMhL,GAAmBtR,EAAAA,EAAAA,UACrB,KAAMyc,EAAAA,EAAAA,KAAiC7K,EAAUoC,IACjD,CAACA,EAAYpC,IAGX+K,GAAiB3c,EAAAA,EAAAA,UACnB,IAAM2R,EAAeC,EAAUC,EAAQP,EAAkBQ,IACzD,CAACF,EAAUC,EAAQP,EAAkBQ,IAGnC8K,GAAqB5c,EAAAA,EAAAA,UACvB,IAAMuJ,EAAe/F,KAAKnJ,GAAOsiB,EAAera,MAAK8O,EAAAA,EAAAA,QAAO,KAAM/W,OAClE,CAACkP,EAAgBoT,IAGfxZ,IAASnD,EAAAA,EAAAA,UACX,IlBjIwB,EAC5B8R,EACA9H,EACA3N,KAEA,MAAMwgB,EAAoBC,EAAAA,IAAAA,SAAehL,GAAwBtO,IAAIgM,GAA6BuN,OAAO,IAEnGC,GAAgBC,EAAAA,EAAAA,IAAmB5gB,EAAa2N,GAEtD,OAAO,IAAIkT,EAAAA,KAAgBC,UAAUN,GAAmBM,UAAUH,GAAeI,SkBwHvEC,CAAwBvL,EAAwB9H,EAAS4S,IAC/D,CAAC9K,EAAwB9H,KAIzBsT,UAAWC,GADT,aAEFvF,GAFE,MAGFiC,IChIgB,KAAqE,IAApE,UAACqC,EAAD,OAAYnZ,EAAZ,QAAoByG,EAApB,KAA6B1D,EAA7B,YAAmCE,EAAnC,QAAgDzB,GAAoB,EACzF,MAAO2Y,EAAWE,IAAgB/iB,EAAAA,EAAAA,WAAS,IACpCwf,EAAOwD,IAAYhjB,EAAAA,EAAAA,UAAS,IAC5Bud,EAAc0F,IAAmBjjB,EAAAA,EAAAA,UAAS,IAC3CkjB,GAAcC,EAAAA,EAAAA,KAwBpB,OAtBAjR,EAAAA,EAAAA,YAAU,KACFhI,IACA6Y,GAAa,GACbG,GACIE,EAAAA,EAAAA,KAAgB,CACZvB,UAAWA,EACXwB,OAAQ5X,EAAOE,EACfnF,IAAKmF,EACLjD,OAAAA,EACA4a,KAAMnU,EAAQC,MACdE,MAAOH,EAAQG,SAGlBsF,MAAK,IAAuC,IAAtC,aAAC2O,EAAD,aAAehG,EAAe,IAAQ,EACzCyF,EAASO,GACTN,EAAgB1F,MAEnB3I,MAAMC,GAAMkO,GAAa,KACzBjO,OAAOD,GAAMkO,GAAa,QAEpC,CAAClB,EAAWnZ,EAAQyG,EAAQC,MAAOD,EAAQG,MAAO7D,EAAME,EAAazB,IAEjE,CAAC2Y,UAAAA,EAAWtF,aAAAA,EAAciC,MAAAA,IDqG7BgE,CAAgB,CAChBtZ,UAAW2X,GAAaC,EACxBD,UAAAA,EACAnZ,OAAAA,GACAyG,QAAAA,EACAxD,YAAAA,EACAF,KAAAA,IAGED,IAAqBjG,EAAAA,EAAAA,UAAQ,KAAMke,OjBzIdC,EiByIoCjC,EAAa9V,YjBxI5EqJ,EAAsBtM,QAAQib,GAAWA,IAAWD,IAC/C9gB,OAAO8gB,GACPJ,KAAKznB,EAAAA,UAHiB6nB,IAAAA,IiByI+D,IAEpFb,IAAaf,GAAuBgB,GAEpCc,IAAqBxjB,EAAAA,EAAAA,cAAYI,EAAAA,EAAAA,MAAK8N,EAAc8R,GAAmB,CAAC9R,EAAc8R,IAEtFvU,IAAgB3L,EAAAA,EAAAA,QAAO,MAE7B,OACI,kBAACoQ,EAAA,EAAD,CAAWnL,UAAWV,EAAO4L,WACzB,kBAAC,GAAD,CACItO,MAAOqV,EAAOtM,QACd0U,MAAOA,GACP5d,YAAasgB,EACbrgB,gBAAiBiN,EACjBhN,iBAAiBtB,EAAAA,EAAAA,MAAK2N,EAAeiS,GACrCX,iBAAkBlQ,EAClBmQ,iBAAiBlf,EAAAA,EAAAA,MAAK6N,EAAe+R,GACrCvJ,iBAAkBA,EAClBQ,uBAAwBA,EACxBsI,yBAAyBnf,EAAAA,EAAAA,MAAK0f,EAAuBE,KAEzD,yBAAKjb,UAAWV,EAAO8c,WACnB,kBAAC,GAAD,CACI3f,YAAaugB,EACb5E,aAAcA,GACdpG,SAAUA,EACV5H,QAASA,EACTkO,SAAUmG,GACVzU,QAASA,EACTqO,QAAQhd,EAAAA,EAAAA,MAAK+N,EAAY6R,GACzBvU,cAAeA,KAEnB,kBAACN,EAAA,EAAD,CACI3P,MAAO4jB,GACPhU,mBAAoBA,GACpBG,YAAaA,EACbC,oBAAqB6C,EACrBhD,KAAMA,EACNC,aAAc8C,EACd3C,cAAeA,KAElBgX,IAAa,kBAACgB,EAAA,EAAD,SEpLxBC,IAAoBC,EAAAA,EAAAA,yBAAwB,CAC9CC,iBAAkB,mBAClBC,eAAe,ICbnB,GDwByB,IAA2E,IAA1E,OAAC7M,EAAD,MAAS8M,EAAT,SAAgBxW,EAAW3M,EAAAA,SAA3B,UAAqCmT,EAArC,cAAgDD,GAA0B,EAChG,MAAMkQ,GAAkF/jB,EAAAA,EAAAA,cACpFgkB,EAAAA,EAAAA,KAAkBnQ,GAClB,CAACA,IAGL,OACI,kBAAC,EAAAoQ,SAAD,CAAUH,MAAOA,GACb,kBAAChK,EAAA,WAAD,CAAwB/f,MAAOid,EAAOxX,IAClC,kBAAC,EAAA0kB,eAAD,CAAgBR,kBAAmBA,IAC/B,kBAAC,EAAAS,wBAAD,CAAyBrc,MAAO/O,EAAAA,GAC5B,kBAAC,IAAD,CACIsU,cAAY,EACZC,SAAU,CAACzM,EAAOC,IAAWwM,EAAS5R,KAAK6C,MAAMsC,GAAQnF,KAAK6C,MAAMuC,MAEvEkW,GACG,kBAAC,GAAD,CACIA,OAAQA,EACRlD,UAAWA,EACXD,cAAekQ,IAGvB,kBAACK,EAAA,EAAD","sources":["webpack://@reltio/remotes/../../node_modules/@date-io/moment/build/index.esm.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTable/hooks/useDynamicRowCellHeight.js","webpack://@reltio/remotes/../components/src/icons/Table.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettings.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnListItem.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/ColumnsSettingsPopup.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/ColumnsSettings/columnHelpers.js","webpack://@reltio/remotes/../components/src/icons/Filter.tsx","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTableHeader/FilterButton/FilterButton.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/styles.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/BasicTablePagination/BasicTablePagination.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/RowCellAutoSizer/RowCellAutoSizer.js","webpack://@reltio/remotes/../components/src/components/BasicTableView/viewState/basicTableViewState.js","webpack://@reltio/remotes/../components/src/components/BasicView/styles.js","webpack://@reltio/remotes/../components/src/components/BasicView/BasicView.tsx","webpack://@reltio/remotes/../components/src/components/HideOnShrink/HideOnShrink.js","webpack://@reltio/remotes/../components/src/components/SelectorWithOnlyOptionAutoSelect/styles.js","webpack://@reltio/remotes/../components/src/components/SelectorWithOnlyOptionAutoSelect/SelectorWithOnlyOptionAutoSelect.js","webpack://@reltio/remotes/../components/src/components/Spacer/Spacer.js","webpack://@reltio/remotes/../components/src/components/VerticalDivider/VerticalDivider.js","webpack://@reltio/remotes/../components/src/components/ViewMoreToggle/styles.js","webpack://@reltio/remotes/../components/src/components/ViewMoreToggle/ViewMoreToggle.js","webpack://@reltio/remotes/../components/src/hooks/useActions.ts","webpack://@reltio/remotes/../components/src/hooks/useSavedStateForEntityType.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/helpers/filtersHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/helpers/tableHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/styles.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/RowCellRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/HeadCellRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/ActorsRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/DefaultCellValueRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/BlobRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/LinkRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/cell-renderers/AttributesRenderer.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/helpers/dataHelpers.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/styles.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTable/InteractionsTable.tsx","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/styles.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/InteractionTypeSelector/InteractionTypeSelector.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/InteractionsTableHeader/InteractionsTableHeader.js","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/stateReducer.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/styles.ts","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/index.tsx","webpack://@reltio/remotes/../interactions/src/InteractionsTableView/hooks/useInteractions.ts","webpack://@reltio/remotes/../interactions/src/index.tsx","webpack://@reltio/remotes/./src/interactions.ts"],"sourcesContent":["import defaultMoment from 'moment';\n\nvar MomentUtils = /** @class */ (function () {\n function MomentUtils(_a) {\n var _b = _a === void 0 ? {} : _a, locale = _b.locale, instance = _b.instance, moment = _b.moment;\n this.yearFormat = \"YYYY\";\n this.yearMonthFormat = \"MMMM YYYY\";\n this.dateTime12hFormat = \"MMMM Do hh:mm a\";\n this.dateTime24hFormat = \"MMMM Do HH:mm\";\n this.time12hFormat = \"hh:mm A\";\n this.time24hFormat = \"HH:mm\";\n this.dateFormat = \"MMMM Do\";\n this.moment = instance || moment || defaultMoment;\n this.locale = locale;\n }\n MomentUtils.prototype.parse = function (value, format) {\n if (value === \"\") {\n return null;\n }\n return this.moment(value, format, true);\n };\n MomentUtils.prototype.date = function (value) {\n if (value === null) {\n return null;\n }\n var moment = this.moment(value);\n moment.locale(this.locale);\n return moment;\n };\n MomentUtils.prototype.isValid = function (value) {\n return this.moment(value).isValid();\n };\n MomentUtils.prototype.isNull = function (date) {\n return date === null;\n };\n MomentUtils.prototype.getDiff = function (date, comparing) {\n return date.diff(comparing);\n };\n MomentUtils.prototype.isAfter = function (date, value) {\n return date.isAfter(value);\n };\n MomentUtils.prototype.isBefore = function (date, value) {\n return date.isBefore(value);\n };\n MomentUtils.prototype.isAfterDay = function (date, value) {\n return date.isAfter(value, \"day\");\n };\n MomentUtils.prototype.isBeforeDay = function (date, value) {\n return date.isBefore(value, \"day\");\n };\n MomentUtils.prototype.isBeforeYear = function (date, value) {\n return date.isBefore(value, \"year\");\n };\n MomentUtils.prototype.isAfterYear = function (date, value) {\n return date.isAfter(value, \"year\");\n };\n MomentUtils.prototype.startOfDay = function (date) {\n return date.clone().startOf(\"day\");\n };\n MomentUtils.prototype.endOfDay = function (date) {\n return date.clone().endOf(\"day\");\n };\n MomentUtils.prototype.format = function (date, formatString) {\n date.locale(this.locale);\n return date.format(formatString);\n };\n MomentUtils.prototype.formatNumber = function (numberToFormat) {\n return numberToFormat;\n };\n MomentUtils.prototype.getHours = function (date) {\n return date.get(\"hours\");\n };\n MomentUtils.prototype.addDays = function (date, count) {\n return count < 0\n ? date.clone().subtract(Math.abs(count), \"days\")\n : date.clone().add(count, \"days\");\n };\n MomentUtils.prototype.setHours = function (date, count) {\n return date.clone().hours(count);\n };\n MomentUtils.prototype.getMinutes = function (date) {\n return date.get(\"minutes\");\n };\n MomentUtils.prototype.setMinutes = function (date, count) {\n return date.clone().minutes(count);\n };\n MomentUtils.prototype.getSeconds = function (date) {\n return date.get(\"seconds\");\n };\n MomentUtils.prototype.setSeconds = function (date, count) {\n return date.clone().seconds(count);\n };\n MomentUtils.prototype.getMonth = function (date) {\n return date.get(\"month\");\n };\n MomentUtils.prototype.isSameDay = function (date, comparing) {\n return date.isSame(comparing, \"day\");\n };\n MomentUtils.prototype.isSameMonth = function (date, comparing) {\n return date.isSame(comparing, \"month\");\n };\n MomentUtils.prototype.isSameYear = function (date, comparing) {\n return date.isSame(comparing, \"year\");\n };\n MomentUtils.prototype.isSameHour = function (date, comparing) {\n return date.isSame(comparing, \"hour\");\n };\n MomentUtils.prototype.setMonth = function (date, count) {\n return date.clone().month(count);\n };\n MomentUtils.prototype.getMeridiemText = function (ampm) {\n return ampm === \"am\" ? \"AM\" : \"PM\";\n };\n MomentUtils.prototype.startOfMonth = function (date) {\n return date.clone().startOf(\"month\");\n };\n MomentUtils.prototype.endOfMonth = function (date) {\n return date.clone().endOf(\"month\");\n };\n MomentUtils.prototype.getNextMonth = function (date) {\n return date.clone().add(1, \"month\");\n };\n MomentUtils.prototype.getPreviousMonth = function (date) {\n return date.clone().subtract(1, \"month\");\n };\n MomentUtils.prototype.getMonthArray = function (date) {\n var firstMonth = date.clone().startOf(\"year\");\n var monthArray = [firstMonth];\n while (monthArray.length < 12) {\n var prevMonth = monthArray[monthArray.length - 1];\n monthArray.push(this.getNextMonth(prevMonth));\n }\n return monthArray;\n };\n MomentUtils.prototype.getYear = function (date) {\n return date.get(\"year\");\n };\n MomentUtils.prototype.setYear = function (date, year) {\n return date.clone().set(\"year\", year);\n };\n MomentUtils.prototype.mergeDateAndTime = function (date, time) {\n return this.setMinutes(this.setHours(date, this.getHours(time)), this.getMinutes(time));\n };\n MomentUtils.prototype.getWeekdays = function () {\n return this.moment.weekdaysShort(true);\n };\n MomentUtils.prototype.isEqual = function (value, comparing) {\n if (value === null && comparing === null) {\n return true;\n }\n return this.moment(value).isSame(comparing);\n };\n MomentUtils.prototype.getWeekArray = function (date) {\n var start = date\n .clone()\n .startOf(\"month\")\n .startOf(\"week\");\n var end = date\n .clone()\n .endOf(\"month\")\n .endOf(\"week\");\n var count = 0;\n var current = start;\n var nestedWeeks = [];\n while (current.isBefore(end)) {\n var weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = current.clone().add(1, \"day\");\n count += 1;\n }\n return nestedWeeks;\n };\n MomentUtils.prototype.getYearRange = function (start, end) {\n var startDate = this.moment(start).startOf(\"year\");\n var endDate = this.moment(end).endOf(\"year\");\n var years = [];\n var current = startDate;\n while (current.isBefore(endDate)) {\n years.push(current);\n current = current.clone().add(1, \"year\");\n }\n return years;\n };\n // displaying methods\n MomentUtils.prototype.getCalendarHeaderText = function (date) {\n return this.format(date, this.yearMonthFormat);\n };\n MomentUtils.prototype.getYearText = function (date) {\n return this.format(date, \"YYYY\");\n };\n MomentUtils.prototype.getDatePickerHeaderText = function (date) {\n return this.format(date, \"ddd, MMM D\");\n };\n MomentUtils.prototype.getDateTimePickerHeaderText = function (date) {\n return this.format(date, \"MMM D\");\n };\n MomentUtils.prototype.getMonthText = function (date) {\n return this.format(date, \"MMMM\");\n };\n MomentUtils.prototype.getDayText = function (date) {\n return this.format(date, \"D\");\n };\n MomentUtils.prototype.getHourText = function (date, ampm) {\n return this.format(date, ampm ? \"hh\" : \"HH\");\n };\n MomentUtils.prototype.getMinuteText = function (date) {\n return this.format(date, \"mm\");\n };\n MomentUtils.prototype.getSecondText = function (date) {\n return this.format(date, \"ss\");\n };\n return MomentUtils;\n}());\n\nexport default MomentUtils;\n","import {useCallback, useRef, useState} from 'react';\nimport {__, curry, identity, pipe, prop, useWith} from 'ramda';\nimport {debounce} from '@reltio/mdm-sdk';\n\nconst getRowCellKey = ({rowIndex, columnData: {id}, cellIndex}) => `${id}[${rowIndex}][${cellIndex}]`;\n\nconst useDynamicRowCellHeight = () => {\n const [rowCellHeightsMap, setRowCellHeightsMap] = useState({});\n const rowCellHeightsMapCache = useRef({});\n const batchHeightUpdate = (key, value) => {\n rowCellHeightsMapCache.current[key] = value;\n };\n const flushHeightUpdates = useCallback(\n debounce(() => {\n setRowCellHeightsMap({...rowCellHeightsMapCache.current});\n }),\n []\n );\n const clearHeightsCache = useCallback(() => {\n rowCellHeightsMapCache.current = {};\n }, []);\n\n const getDynamicRowCellHeight = useCallback(pipe(getRowCellKey, prop(__, rowCellHeightsMap)), [rowCellHeightsMap]);\n\n const changeRowCellHeight = useCallback(\n curry(useWith(pipe(batchHeightUpdate, flushHeightUpdates), [getRowCellKey, identity])),\n []\n );\n\n return {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache};\n};\n\nexport default useDynamicRowCellHeight;\n","import React from 'react';\n\nconst SvgTable: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={20} height={18} viewBox=\"0 0 20 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path\n d=\"M16 7.24V6h-4v1.24a8.417 8.417 0 00-2 .768V6H6v6h.29a8.497 8.497 0 00-.15.358l-.29.733.29.733.07.176H2c-1.1 0-2-.9-2-2V2C0 .9.9 0 2 0h14c1.1 0 2 .9 2 2v6.008a8.417 8.417 0 00-2-.768zM4 12V6H2v6h2zm0-8V2H2v2h2zm6 0V2H6v2h4zm6 0V2h-4v2h4zm-2 5a6.451 6.451 0 00-6 4.09 6.451 6.451 0 006 4.092 6.451 6.451 0 006-4.091A6.451 6.451 0 0014 9zm0 6.818a2.728 2.728 0 010-5.454 2.728 2.728 0 010 5.454zm0-4.363c-.905 0-1.636.73-1.636 1.636 0 .905.73 1.636 1.636 1.636.905 0 1.636-.73 1.636-1.636 0-.906-.73-1.636-1.636-1.636z\"\n fill=\"#000\"\n fillRule=\"nonzero\"\n stroke=\"none\"\n strokeWidth={1}\n opacity={0.54}\n />\n </svg>\n );\n};\n\nexport default SvgTable;\n","import React, {useCallback, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {ColumnsDataType} from '../../../../constants';\nimport TableIcon from '../../../../icons/Table';\nimport {SmallIconButtonWithTooltip} from '../../../SmallIconButton';\nimport {pipe, uniq, pluck, difference, concat} from 'ramda';\n\nimport {ColumnsSettingsPopup} from './ColumnsSettingsPopup';\n\nimport i18n from 'ui-i18n';\nimport {getChildColumns, isColumnSelected} from './columnHelpers';\n\nconst ColumnsSettings = ({columnsData, selectedColumns, onChangeColumns, title, tooltipTitle}) => {\n const [anchorEl, setAnchorEl] = useState(null);\n const openPopup = (event) => setAnchorEl(event.currentTarget);\n const closePopup = () => setAnchorEl(null);\n const handleColumnClick = useCallback(\n (column) => {\n const changedColumns = pipe(getChildColumns, pluck('id'))(column);\n const wasSelected = isColumnSelected(selectedColumns, column);\n onChangeColumns(\n wasSelected\n ? difference(selectedColumns, changedColumns)\n : uniq(concat(selectedColumns, changedColumns))\n );\n },\n [selectedColumns, onChangeColumns]\n );\n return (\n <>\n <SmallIconButtonWithTooltip\n tooltipTitle={tooltipTitle || i18n.text('Show/hide columns')}\n size=\"L\"\n icon={TableIcon}\n onClick={openPopup}\n />\n <ColumnsSettingsPopup\n onColumnClick={handleColumnClick}\n anchorEl={anchorEl}\n columnsData={columnsData}\n onClose={closePopup}\n title={title}\n selectedColumns={selectedColumns}\n />\n </>\n );\n};\n\nColumnsSettings.propTypes = {\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n title: PropTypes.string,\n tooltipTitle: PropTypes.string\n};\n\nexport default ColumnsSettings;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n popup: {\n minWidth: '200px'\n },\n groupItem: {\n backgroundColor: 'rgba(0,0,0,0.04)'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AttributeListItem from '../../../AttributeListItem/AttributeListItem';\nimport Highlighter from '../../../Highlighter/Highlighter';\n\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst ColumnListItem = ({item, onClick, checked, level, style, isFocused, isGroupItem, hideCheckBox}) => {\n const styles = useStyles();\n return (\n <AttributeListItem\n hideCheckBox={hideCheckBox}\n key={item.id}\n onClick={onClick}\n checked={checked}\n level={level}\n data={item}\n label={<Highlighter text={item.label} highlight={item.filterText} />}\n labelInText={item.label}\n style={style}\n isFocused={isFocused}\n hideIcon={isGroupItem}\n className={classnames({[styles.groupItem]: isGroupItem})}\n />\n );\n};\n\nColumnListItem.propTypes = {\n item: PropTypes.shape({\n label: PropTypes.string,\n filterText: PropTypes.string\n }),\n level: PropTypes.number,\n onClick: PropTypes.func,\n checked: PropTypes.bool,\n style: PropTypes.object,\n isGroupItem: PropTypes.bool,\n isFocused: PropTypes.bool,\n hideCheckBox: PropTypes.bool\n};\n\nexport default ColumnListItem;\n","import React, {useState, useMemo, useCallback} from 'react';\nimport i18n from 'ui-i18n';\nimport {pipe} from 'ramda';\n\nimport {getMaxItemWidth, DataTypeDefinition} from '@reltio/mdm-sdk';\n\nimport VirtualGroupedList from '../../../VirtualGroupedList/VirtualGroupedList';\nimport SelectionPopup from '../../../SelectionPopup/SelectionPopup';\nimport {buildColumnItems, isColumnSelected, isGroupColumn} from './columnHelpers';\nimport {flattenGroupedItemsData} from '../../../VirtualGroupedList/helpers';\nimport {useKeyboardNavigation} from '../../../SelectionPopup/helpers';\nimport ColumnListItem from './ColumnListItem';\n\nimport {useStyles} from './styles';\nimport {ListItemProps} from '@material-ui/core/ListItem';\n\ntype Column = {\n id: string;\n label: string;\n};\n\ntype GroupedColumnData =\n | {\n id: string;\n label: string;\n columns: Column[];\n }\n | Column;\n\ntype GroupedColumnList = {\n id: string;\n groupId: string;\n label: string;\n attrType: DataTypeDefinition;\n};\n\ntype Props = {\n anchorEl: HTMLElement;\n onClose: () => void;\n title?: string;\n columnsData: GroupedColumnData[];\n onColumnClick: (column: {id: string}) => void;\n selectedColumns: string[];\n hideCheckBox?: boolean;\n};\n\nconst ITEM_HEIGHT = 32;\nconst MAX_LIST_CONTAINER_HEIGHT = 300;\nconst DEFAULT_MIN_CONTAINER_WIDTH = 308;\nconst CONTAINER_HEADER_HEIGHT = 108;\nconst MIN_CONTAINER_HEIGHT = 140;\n\nexport const ColumnsSettingsPopup = ({\n anchorEl,\n onClose,\n title,\n columnsData,\n onColumnClick,\n selectedColumns,\n hideCheckBox\n}: Props) => {\n const styles = useStyles();\n const [filterText, setFilterText] = useState('');\n const clearFilter = () => setFilterText('');\n const groupedItems = useMemo(() => buildColumnItems(columnsData, filterText), [columnsData, filterText]);\n\n const items = useMemo(() => flattenGroupedItemsData(groupedItems), [groupedItems]);\n const containerWidth: number = getMaxItemWidth('label')(groupedItems) || DEFAULT_MIN_CONTAINER_WIDTH;\n\n const handleSearchOnEnter = useCallback(\n ({item}: {item: {id: string}; groupData: {item: {id: string}}}) => onColumnClick(item),\n [onColumnClick]\n );\n\n const {focusIndex, handleKeyDown} = useKeyboardNavigation({\n items,\n open: true,\n onSelectFocusedItem: handleSearchOnEnter,\n selectedItems: selectedColumns,\n onClose\n });\n const handleClose = useCallback(pipe(onClose, clearFilter), [onClose]);\n\n const renderColumnItem = (\n style: ListItemProps['style'],\n {item, level = 0}: {item: GroupedColumnList; level?: number},\n index: number\n ) => {\n return (\n <ColumnListItem\n hideCheckBox={hideCheckBox}\n style={style}\n item={item}\n level={level}\n isFocused={focusIndex === index}\n checked={isColumnSelected(selectedColumns, item)}\n isGroupItem={isGroupColumn(item)}\n onClick={hideCheckBox ? pipe(onColumnClick, handleClose) : onColumnClick}\n />\n );\n };\n\n const listHeight = Math.min(MAX_LIST_CONTAINER_HEIGHT, ITEM_HEIGHT * items.length);\n const containerHeight = Math.max(MIN_CONTAINER_HEIGHT, listHeight + CONTAINER_HEADER_HEIGHT);\n\n return (\n <SelectionPopup\n className={styles.popup}\n open={!!anchorEl}\n anchorEl={anchorEl}\n onClose={handleClose}\n onSearch={setFilterText}\n title={title || i18n.text('Show/hide columns')}\n containerWidth={containerWidth}\n containerHeight={containerHeight}\n searchInputOnKeyDown={handleKeyDown}\n >\n <VirtualGroupedList\n fixedTitle={false}\n height={listHeight}\n renderItem={renderColumnItem}\n items={items}\n getItemSize={() => ITEM_HEIGHT}\n focusIndex={focusIndex}\n />\n </SelectionPopup>\n );\n};\n","import {assoc, chain, curry, either, filter, has, pipe, propOr, reduce, when} from 'ramda';\nimport {utils} from '@reltio/mdm-sdk';\n\nconst isGroupColumn = (column) => column.id === column.groupId;\nconst isParentToColumn = curry(\n ({id, groupId}, parent) => parent.groupId === groupId && (id === parent.id || id.startsWith(`${parent.id}.`))\n);\nconst isGroupToColumn = curry(({groupId}, group) => groupId === group.id);\nconst isHideableColumn = propOr(true, 'hideable');\n\nconst getColumnRoot = (columns, column) => columns.find(either(isGroupToColumn(column), isParentToColumn(column)));\n\nconst addColumn = (columns, column) => {\n const root = getColumnRoot(columns, column);\n if (root) {\n root.children = addColumn(root.children || [], column);\n return columns;\n } else {\n return columns.concat(column);\n }\n};\n\nconst filterColumnsByLabel = curry(\n (filterText, column) =>\n utils.strings.search(column.label, filterText) || (column.children || []).some(filterColumnsByLabel(filterText))\n);\n\nconst buildColumnsTrees = reduce(\n (acc, columnData) =>\n addColumn(acc, {\n id: columnData.id,\n groupId: columnData.groupId,\n label: columnData.label,\n attrType: columnData.dataTypeDefinition\n }),\n []\n);\n\nconst buildFilteredColumnItems = curry((filterText, columns, level = 0) =>\n pipe(\n filter(filterColumnsByLabel(filterText)),\n chain((column) => {\n const item = {\n item: {...column, filterText},\n level\n };\n const childrenItems = column.children\n ? buildFilteredColumnItems(filterText, column.children, level + 1)\n : [];\n return [item, ...childrenItems];\n })\n )(columns)\n);\n\nconst isGroupedColumnsData = has('columns');\nconst flattenGroupedColumnsData = ({id, label, columns}) => [\n {id, groupId: id, label},\n ...columns.map(assoc('groupId', id))\n];\n\nconst buildColumnItems = (columnsData, filterText) => {\n return pipe(\n chain(when(isGroupedColumnsData, flattenGroupedColumnsData)),\n filter(either(isGroupColumn, isHideableColumn)),\n buildColumnsTrees,\n buildFilteredColumnItems(filterText)\n )(columnsData);\n};\n\nconst getChildColumns = (column) => (column.children ? chain(getChildColumns, column.children) : [column]);\n\nconst isColumnSelected = (selectedColumns, column) => {\n const childColumns = getChildColumns(column);\n const isColumnSelected = (column) => selectedColumns.includes(column.id);\n return isGroupColumn(column) ? childColumns.every(isColumnSelected) : childColumns.some(isColumnSelected);\n};\n\nexport {buildColumnItems, getChildColumns, isGroupColumn, isColumnSelected};\n","import React from 'react';\n\nconst SvgFilter: React.FC<React.SVGProps<SVGSVGElement>> = (props) => {\n return (\n <svg width={18} height={18} viewBox=\"0 0 18 18\" xmlns=\"http://www.w3.org/2000/svg\" {...props}>\n <path d=\"M18 2V0H0v2l7 8v8l4-2v-6z\" fill=\"currentColor\" fillRule=\"nonzero\" stroke=\"none\" strokeWidth={1} />\n </svg>\n );\n};\n\nexport default SvgFilter;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'filterIcon--enabled': {\n color: theme.palette.primary.main\n },\n closeIcon: {\n position: 'absolute',\n right: '3px',\n bottom: '3px',\n transform: 'scale(0.5)'\n },\n button: {\n padding: '11px'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport i18n from 'ui-i18n';\nimport {IconButton as IconButton} from '@material-ui/core';\nimport CloseIcon from '@material-ui/icons/Close';\nimport {Tooltip as Tooltip} from '@material-ui/core';\nimport FilterIcon from '../../../../icons/Filter';\nimport {useStyles} from './styles';\n\nconst FilterButton = ({enabled, onClick}) => {\n const styles = useStyles();\n\n return (\n <Tooltip title={enabled ? i18n.text('Clear all filters') : i18n.text('Filter')}>\n <IconButton onClick={onClick} classes={{root: styles.button}}>\n {enabled ? (\n <>\n <FilterIcon className={styles['filterIcon--enabled']} />\n <CloseIcon color=\"primary\" className={styles.closeIcon} />\n </>\n ) : (\n <FilterIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n\nFilterButton.propTypes = {\n enabled: PropTypes.bool,\n onClick: PropTypes.func\n};\n\nexport default FilterButton;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n pagination: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-end',\n height: '56px',\n borderTop: '1px solid rgba(0,0,0,0.12)',\n boxShadow: 'none'\n },\n caption: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px'\n },\n selectRoot: {\n marginLeft: '5px',\n marginRight: '36px'\n },\n select: {\n color: 'rgba(0,0,0,0.6)',\n fontSize: '12px',\n lineHeight: '16px',\n textAlign: 'right'\n },\n actions: {\n marginLeft: '32px'\n }\n});\n","import PropTypes from 'prop-types';\nimport React, {useCallback} from 'react';\nimport classnames from 'classnames';\nimport {TablePagination as TablePagination} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {getValue} from '../../../core/utils';\nimport {nthArg, pipe, pathOr, identity} from 'ramda';\nimport {useStyles} from './styles';\n\nconst BasicTablePagination = ({\n classes = {},\n count,\n rowsPerPageOptions,\n page,\n onChangePage,\n rowsPerPage,\n onChangeRowsPerPage,\n basicTableRef,\n labelRowsPerPage\n}) => {\n const labelDisplayedRows = ({from, to, count}) =>\n i18n.text('${fromRow}-${toRow} of ${countRows}', {\n fromRow: i18n.number(from, '0,0'),\n toRow: i18n.number(to, '0,0'),\n countRows: i18n.number(count, '0,0')\n });\n const styles = useStyles();\n const resetScrollbarPosition = useCallback(() => {\n pathOr(identity, ['current', 'resetScrollbarPosition'], basicTableRef)();\n }, [basicTableRef]);\n const handleChangePage = useCallback(\n (value) => {\n onChangePage(value);\n resetScrollbarPosition();\n },\n [onChangePage, resetScrollbarPosition]\n );\n const handleChangeRowsPerPage = useCallback(\n (value) => {\n onChangePage(0);\n onChangeRowsPerPage(value);\n resetScrollbarPosition();\n },\n [onChangePage, onChangeRowsPerPage, resetScrollbarPosition]\n );\n return (\n <TablePagination\n classes={{\n ...classes,\n root: classnames(styles.pagination, classes.root),\n select: classnames(styles.select, classes.select),\n caption: styles.caption,\n selectRoot: styles.selectRoot,\n actions: styles.actions\n }}\n component=\"div\"\n labelRowsPerPage={labelRowsPerPage || i18n.text('Rows per page:')}\n labelDisplayedRows={labelDisplayedRows}\n count={count}\n rowsPerPageOptions={rowsPerPageOptions}\n page={page}\n onChangePage={pipe(nthArg(1), handleChangePage)}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={pipe(getValue, handleChangeRowsPerPage)}\n />\n );\n};\n\nBasicTablePagination.propTypes = {\n classes: PropTypes.object,\n rowsPerPageOptions: PropTypes.arrayOf(PropTypes.number),\n count: PropTypes.number,\n page: PropTypes.number,\n onChangePage: PropTypes.func,\n rowsPerPage: PropTypes.number,\n onChangeRowsPerPage: PropTypes.func,\n basicTableRef: PropTypes.shape({current: PropTypes.object}),\n labelRowsPerPage: PropTypes.string\n};\n\nexport default React.memo(BasicTablePagination);\n","import React, {useRef} from 'react';\nimport PropTypes from 'prop-types';\n\nimport ReactResizeDetector from 'react-resize-detector';\nimport {RootRef as RootRef} from '@material-ui/core';\nimport {useDidUpdateEffect} from '../../../hooks';\n\nconst RowCellAutoSizer = ({onChangeHeight, children: cell, ...cellProps}) => {\n const cellRef = useRef(null);\n\n const {rowValue, rowIndex, columnData, cellIndex} = cellProps;\n const changeCellHeight = onChangeHeight({rowIndex, cellIndex, columnData});\n\n const adjustCellHeight = () => cellRef.current && changeCellHeight(cellRef.current.clientHeight);\n\n useDidUpdateEffect(adjustCellHeight, [rowValue.rawValue]);\n\n return (\n <div>\n <ReactResizeDetector handleHeight={true} onResize={adjustCellHeight} />\n <RootRef rootRef={cellRef}>{cell}</RootRef>\n </div>\n );\n};\n\nRowCellAutoSizer.propTypes = {\n onChangeHeight: PropTypes.func,\n children: PropTypes.node\n};\n\nexport default RowCellAutoSizer;\n","import {always, assoc, difference, dissoc, evolve, keys, path, when} from 'ramda';\nimport {createStandardAction, toggleSortOrder} from '../../../core';\n\nconst CHANGE_COLUMNS = 'CHANGE_COLUMNS';\nconst TOGGLE_FILTERS = 'TOGGLE_FILTERS';\nconst CHANGE_FILTER = 'CHANGE_FILTER';\nconst TOGGLE_SORT = 'TOGGLE_SORT';\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS_PER_PAGE = 'CHANGE_ROWS_PER_PAGE';\n\nexport const actions = {\n changeColumns: createStandardAction(CHANGE_COLUMNS),\n toggleFilters: createStandardAction(TOGGLE_FILTERS),\n changeFilter: createStandardAction(CHANGE_FILTER),\n toggleSort: createStandardAction(TOGGLE_SORT),\n changePage: createStandardAction(CHANGE_PAGE),\n changeRowsPerPage: createStandardAction(CHANGE_ROWS_PER_PAGE)\n};\n\nexport const changeVisibleColumns = (state, nextVisibleColumns) => {\n const removedColumns = difference(state.visibleColumns, nextVisibleColumns);\n const isRemovedColumn = (columnId) => removedColumns.includes(columnId);\n return evolve(\n {\n visibleColumns: always(nextVisibleColumns),\n sorting: when(\n (sorting = {}) => isRemovedColumn(sorting.field),\n () => {\n const [nextSortField] = nextVisibleColumns;\n return {field: nextSortField, order: 'asc'};\n }\n ),\n filters: (filters) =>\n keys(filters).reduce(\n (acc, columnId) => (isRemovedColumn(columnId) ? dissoc(columnId, acc) : acc),\n filters\n )\n },\n state\n );\n};\n\nexport const reducer = (state, action) => {\n switch (action.type) {\n case CHANGE_COLUMNS: {\n const columnIds = action.payload;\n return changeVisibleColumns(state, columnIds);\n }\n case TOGGLE_FILTERS: {\n const enableFilters = !state.filters;\n return {\n ...state,\n filters: enableFilters ? {} : null,\n page: enableFilters ? state.page : 0\n };\n }\n case CHANGE_FILTER: {\n const {columnId, filter} = action.payload;\n return evolve({filters: filter ? assoc(columnId, filter) : dissoc(columnId), page: always(0)}, state);\n }\n case TOGGLE_SORT: {\n const nextSortField = action.payload;\n const prevSortField = path(['sorting', 'field'], state);\n const prevSortOrder = path(['sorting', 'order'], state);\n return {\n ...state,\n sorting: {\n field: nextSortField,\n order: toggleSortOrder(nextSortField === prevSortField ? prevSortOrder : null)\n },\n page: 0\n };\n }\n case CHANGE_PAGE:\n return {...state, page: action.payload};\n case CHANGE_ROWS_PER_PAGE:\n return {...state, rowsPerPage: action.payload};\n default:\n return state;\n }\n};\n\nexport default {\n reducer,\n actions,\n changeVisibleColumns\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((theme) => ({\n 'basic-view__paper': {\n display: 'flex',\n flexDirection: 'column',\n ...theme.basicView\n }\n}));\n","import Paper, {PaperProps} from '@material-ui/core/Paper';\nimport PropTypes from 'prop-types';\nimport React, {forwardRef, Ref} from 'react';\nimport {useStyles} from './styles';\n\nconst BasicView = forwardRef<Ref<typeof Paper>, PaperProps>(({children, className, ...otherProps}, ref) => {\n const styles = useStyles();\n return (\n <Paper ref={ref} className={className} classes={{root: styles['basic-view__paper']}} {...otherProps}>\n {children}\n </Paper>\n );\n});\n\nBasicView.displayName = 'BasicView';\n\nBasicView.propTypes = {\n children: PropTypes.node,\n className: PropTypes.string\n};\n\nexport default BasicView;\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport ReactResizeDetector from 'react-resize-detector';\n\nconst EmptyStub = () => <div style={{display: 'none'}} />;\n\nconst HideOnShrink = ({widthToHide, children}) => (\n <ReactResizeDetector\n handleWidth={true}\n render={({width}) => (width > widthToHide ? <>{children}</> : <EmptyStub />)}\n />\n);\n\nHideOnShrink.propTypes = {\n children: PropTypes.node,\n widthToHide: PropTypes.number.isRequired\n};\n\nexport default HideOnShrink;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n onlyValue: {\n color: 'rgba(0,0,0,.6)',\n fontSize: '13px',\n fontWeight: 'normal',\n whiteSpace: 'nowrap',\n textOverflow: 'ellipsis',\n overflow: 'hidden'\n },\n select: {\n fontSize: '13px',\n color: 'rgba(0,0,0,.6)',\n paddingLeft: '15px',\n '&&': {\n paddingRight: '35px'\n }\n },\n selectMenu: {\n '& li': {\n fontSize: '13px',\n height: '32px'\n }\n },\n textField: {\n maxWidth: '100%'\n }\n});\n","import React, {useEffect} from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport {useStyles} from './styles';\nimport DropDownEditor from '../editors/DropDownEditor/DropDownEditor';\n\nconst SelectorWithOnlyOptionAutoSelect = ({value, onChange, options, classes = {}, emptyLabel}) => {\n const styles = useStyles();\n\n const [firstOption, ...moreOptions] = options;\n const hasOnlyOneOptionToSelect = moreOptions.length === 0;\n\n useEffect(() => {\n if (hasOnlyOneOptionToSelect && value !== firstOption.value) {\n onChange(firstOption.value);\n }\n }, [firstOption.value]); // eslint-disable-line\n\n const displayEmpty = !!emptyLabel;\n\n return (\n <div className={classes.root}>\n {hasOnlyOneOptionToSelect ? (\n <Typography className={classes.onlyValue || styles.onlyValue} variant={'h6'}>\n {firstOption.label}\n </Typography>\n ) : (\n <DropDownEditor\n displayEmpty={displayEmpty}\n disableUnderline={true}\n classes={{\n select: classes.select || styles.select\n }}\n TextFieldProps={{\n classes: {\n root: classes.textField || styles.textField\n }\n }}\n MenuProps={{\n classes: {\n list: classes.selectMenu || styles.selectMenu\n }\n }}\n value={value || ''}\n entries={displayEmpty ? [{value: '', label: emptyLabel}, ...options] : options}\n onChange={(value) => onChange(value || null)}\n />\n )}\n </div>\n );\n};\n\nSelectorWithOnlyOptionAutoSelect.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n options: PropTypes.arrayOf(\n PropTypes.shape({\n value: PropTypes.string,\n label: PropTypes.string\n })\n ),\n classes: PropTypes.shape({\n root: PropTypes.string,\n onlyValue: PropTypes.string,\n select: PropTypes.string,\n selectMenu: PropTypes.string,\n textField: PropTypes.string\n }),\n emptyLabel: PropTypes.string\n};\n\nexport default SelectorWithOnlyOptionAutoSelect;\n","import React from 'react';\n\nconst Spacer = () => <div style={{flex: 1}} />;\n\nexport default Spacer;\n","import PropTypes from 'prop-types';\nimport React from 'react';\n\nconst VerticalDivider = ({height, margin}) => (\n <div\n style={{\n width: '1px',\n height: `${height}px`,\n borderLeft: '1px solid rgba(0,0,0,0.38)',\n margin: `0 ${margin}px`,\n flexShrink: '0'\n }}\n />\n);\n\nVerticalDivider.propTypes = {\n height: PropTypes.number,\n margin: PropTypes.number\n};\n\nexport default VerticalDivider;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles(() => ({\n viewMoreLessLink: {\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer'\n },\n\n arrow: {\n marginRight: '8px',\n marginLeft: '-2px',\n transform: 'rotate(0deg)',\n transition: 'transform 0.35s ease'\n },\n\n rotated: {\n transform: 'rotate(-180deg)'\n }\n}));\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Link as Link} from '@material-ui/core';\nimport ArrowDropDownIcon from '@material-ui/icons/ArrowDropDown';\nimport {useStyles} from './styles';\nimport classnames from 'classnames';\nimport i18n from 'ui-i18n';\n\nconst ViewMoreToggle = ({active, onClick, className}) => {\n const styles = useStyles();\n return (\n <Link className={classnames(styles.viewMoreLessLink, className)} onClick={onClick} underline=\"none\">\n <ArrowDropDownIcon className={classnames(styles.arrow, {[styles.rotated]: active})} />\n {active ? i18n.text('View less') : i18n.text('View more')}\n </Link>\n );\n};\n\nViewMoreToggle.propTypes = {\n active: PropTypes.bool,\n onClick: PropTypes.func,\n className: PropTypes.string\n};\n\nexport default ViewMoreToggle;\n","import {useMemo} from 'react';\nimport {pipe} from 'ramda';\n\ntype UseActions = ({\n actions,\n dispatch\n}: {\n actions: {\n [key: string]: <T>(payload: T) => {type: string; payload: T};\n };\n dispatch: <T>({type, payload}: {type: string; payload: T}) => void;\n}) => {\n [key in keyof typeof actions]: <T>(payload: T) => void;\n};\n\nexport const useActions: UseActions = ({actions, dispatch}) =>\n useMemo(\n () =>\n Object.entries(actions).reduce((acc, [actionName, actionCreator]) => {\n return {...acc, [actionName]: pipe(actionCreator, dispatch)};\n }, {}),\n [dispatch, actions]\n );\n","import {useCallback, useEffect, useState} from 'react';\nimport {useDidUpdateEffect} from './useDidUpdateEffect';\n\ntype SavedState<T> = {\n [entityType: string]: T;\n};\n\ntype Props<T> = {\n getSavedState: () => Promise<SavedState<T>>;\n saveState: (state: SavedState<T>) => void;\n entityTypeUri?: string;\n};\n\nexport const useSavedStateForEntityType = <T>({getSavedState, saveState, entityTypeUri}: Props<T>) => {\n const [savedState, setSavedState] = useState<SavedState<T>>({});\n const [changedState, setChangedState] = useState<SavedState<T>>(null);\n const [isLoaded, setIsLoaded] = useState(false);\n\n const saveChangesLocallyForPrevEntityType = () => {\n if (changedState) {\n setSavedState({...savedState, ...changedState});\n setChangedState(null);\n }\n };\n useDidUpdateEffect(saveChangesLocallyForPrevEntityType, [entityTypeUri]);\n\n const updateSavedState = useCallback(\n (stateToSave: T) => {\n if (!entityTypeUri) return;\n const changedState = {\n [entityTypeUri]: stateToSave\n };\n setChangedState(changedState);\n saveState({...savedState, ...changedState});\n },\n [entityTypeUri, saveState, savedState]\n );\n\n useEffect(() => {\n getSavedState()\n .then((savedState) => {\n setSavedState(savedState || {});\n })\n .then((_) => setIsLoaded(true))\n .catch((_) => setIsLoaded(true));\n }, []); // eslint-disable-line\n\n return {isLoaded: isLoaded && !!entityTypeUri, savedState: savedState[entityTypeUri], updateSavedState};\n};\n","import {FilterBuilder, Maybe} from '@reltio/mdm-sdk';\nimport {buildColumnsFilter, ColumnData, ColumnFilter} from '@reltio/components';\n\nconst createInteractionTypeFilter = (value) => `equals(type,'${value}')`;\n\nconst buildInteractionsFilter = (\n currentInteractionType: string,\n filters: Record<string, ColumnFilter>,\n columnsData: ColumnData[]\n) => {\n const currentTypeClause = Maybe.fromNull(currentInteractionType).map(createInteractionTypeFilter).orSome('');\n\n const filtersClause = buildColumnsFilter(columnsData, filters);\n\n return new FilterBuilder().addClause(currentTypeClause).addClause(filtersClause).build();\n};\n\nexport {buildInteractionsFilter};\n","import {\n attributeUriToSearchUri,\n DataTypes,\n FilterOptions,\n getAttrDataTypeDefinition,\n getInteractionAttributesFromMetadata,\n getInteractionType,\n InteractionType,\n makeCompositeFilterOption\n} from '@reltio/mdm-sdk';\nimport {adjust, assoc, chain, concat, map, pipe, pluck, prop, propEq, reject, subtract, uniqBy} from 'ramda';\nimport i18n from 'ui-i18n';\n\nconst ROWS_PER_PAGE_OPTIONS = [10, 25, 50, 100];\nconst getRowsPerPageOptions = (defaultRowsPerPage: number) =>\n ROWS_PER_PAGE_OPTIONS.filter((option) => option !== defaultRowsPerPage)\n .concat(defaultRowsPerPage)\n .sort(subtract);\n\nconst INTERACTION_TYPE_COLUMN_ID = 'type';\nconst ACTORS_COLUMN_ID = 'members';\nconst ATTRIBUTES_COLUMN_ID = 'attributes';\n\nconst MAX_ATTRIBUTES_TO_SHOW = 7;\n\nconst DEFAULT_COLUMNS_DATA = [\n {\n id: 'timestamp',\n label: 'Date',\n dataTypeDefinition: {\n type: DataTypes.TYPE_TIMESTAMP\n },\n hideable: false\n },\n {\n id: INTERACTION_TYPE_COLUMN_ID,\n label: 'Interaction type',\n sortable: false,\n filterOptions: [{value: FilterOptions.EQUALS}, {value: FilterOptions.NOT_EQUALS}]\n },\n {\n id: ACTORS_COLUMN_ID,\n label: 'Actors',\n sortable: false,\n dataTypeDefinition: {\n type: DataTypes.TYPE_STRING\n }\n },\n {\n id: ATTRIBUTES_COLUMN_ID,\n label: 'Attributes',\n sortable: false,\n filterable: false,\n maxAttrsToShow: MAX_ATTRIBUTES_TO_SHOW\n }\n];\n\nconst DEFAULT_COLUMNS = pluck('id', DEFAULT_COLUMNS_DATA);\nconst ALL_TYPES_COLUMNS = [INTERACTION_TYPE_COLUMN_ID, ATTRIBUTES_COLUMN_ID];\n\nconst getColumnsDataFromInteractionAttributes = pipe(\n map((attr) => ({\n id: attributeUriToSearchUri(attr.uri),\n label: attr.label,\n dataTypeDefinition: getAttrDataTypeDefinition(attr)\n })),\n uniqBy(prop('id'))\n);\n\nconst getInteractionColumnDataType = (interactionTypes) => ({\n type: DataTypes.TYPE_SELECT,\n options: interactionTypes.map(({uri, label}) => ({value: uri, label}))\n});\n\nconst getActorTypesOptions = pipe(\n chain(({memberTypes}) => memberTypes.map(({name, label}) => ({label, value: name}))),\n uniqBy(prop('value'))\n);\n\nconst getActorsColumnFilterOptions = (interactionTypes: Array<InteractionType>) => {\n const typeFilterDataType = {\n type: DataTypes.TYPE_SELECT,\n options: getActorTypesOptions(interactionTypes)\n };\n const makeTypeOption = makeCompositeFilterOption('types');\n return [\n {value: FilterOptions.EQUALS},\n {value: FilterOptions.NOT_EQUALS},\n {value: FilterOptions.HAS_ALL},\n {value: FilterOptions.IN_FILE},\n {value: FilterOptions.NOT_IN_FILE},\n {\n value: makeTypeOption(FilterOptions.EQUALS),\n label: i18n.text('type equals'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.NOT_EQUALS),\n label: i18n.text('type not'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.HAS_ALL),\n label: i18n.text('type has all'),\n dataTypeDefinition: typeFilterDataType\n },\n {\n value: makeTypeOption(FilterOptions.IN_FILE),\n label: i18n.text('type in file')\n },\n {\n value: makeTypeOption(FilterOptions.NOT_IN_FILE),\n label: i18n.text('type not in file')\n }\n ];\n};\n\nconst updateColumnData = (columnId, updateFn) => (columnsData) =>\n adjust(columnsData.findIndex(propEq('id', columnId)), updateFn, columnsData);\n\nconst updateInteractionTypeColumn = (interactionTypes) =>\n updateColumnData(\n INTERACTION_TYPE_COLUMN_ID,\n assoc('dataTypeDefinition', getInteractionColumnDataType(interactionTypes))\n );\n\nconst updateActorsColumn = (interactionTypes) =>\n updateColumnData(ACTORS_COLUMN_ID, assoc('filterOptions', getActorsColumnFilterOptions(interactionTypes)));\n\nconst updateAttributesColumn = (attributes) => updateColumnData(ATTRIBUTES_COLUMN_ID, assoc('attrsToShow', attributes));\n\nconst getColumnsData = (metadata, config, interactionTypes, currentInteractionType) => {\n return currentInteractionType\n ? pipe(\n getInteractionAttributesFromMetadata,\n getColumnsDataFromInteractionAttributes,\n concat(DEFAULT_COLUMNS_DATA),\n reject(({id}) => ALL_TYPES_COLUMNS.includes(id)),\n updateActorsColumn([getInteractionType(metadata, currentInteractionType)])\n )(metadata, currentInteractionType)\n : pipe(\n updateAttributesColumn(config.attributes),\n updateInteractionTypeColumn(interactionTypes),\n updateActorsColumn(metadata.interactionTypes || [])\n )(DEFAULT_COLUMNS_DATA);\n};\n\nexport {\n getRowsPerPageOptions,\n DEFAULT_COLUMNS,\n getColumnsData,\n INTERACTION_TYPE_COLUMN_ID,\n ACTORS_COLUMN_ID,\n ATTRIBUTES_COLUMN_ID,\n ALL_TYPES_COLUMNS,\n MAX_ATTRIBUTES_TO_SHOW\n};\n","import {makeStyles} from '@material-ui/core/styles';\n\nconst defaultWrapperStyles = {\n padding: '15px 25px 0 25px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n};\n\nexport const useStyles = makeStyles((theme) => ({\n headCell: {\n display: 'flex',\n alignItems: 'center',\n height: '100%',\n fontSize: '12px'\n },\n rowCell: {\n fontSize: '13px',\n overflow: 'hidden',\n overflowWrap: 'break-word',\n wordWrap: 'break-word' // for IE\n },\n 'row-cell--sorted': {\n color: 'rgba(0,0,0,0.87)'\n },\n actorsWrapper: {\n paddingRight: '25px',\n paddingLeft: '15px',\n '&:last-child': {\n paddingBottom: '15px'\n }\n },\n memberWrapper: {\n display: 'flex',\n paddingTop: '15px',\n boxSizing: 'border-box',\n position: 'relative'\n },\n entityLabel: {\n fontSize: '15px',\n display: 'inline-block',\n overflowX: 'hidden',\n margin: '-2px 0 -1px 45px'\n },\n entityAvatar: {\n transform: 'scale(0.5)',\n position: 'absolute',\n left: 0,\n top: '2px'\n },\n defaultWrapper: defaultWrapperStyles,\n blobWrapper: {\n ...defaultWrapperStyles,\n whiteSpace: 'pre-wrap'\n },\n link: {\n cursor: 'pointer',\n color: theme.palette.primary.main\n },\n attributesWrapper: {\n padding: '15px 25px 10px 25px',\n color: 'rgba(0,0,0,0.87)'\n },\n viewMore: {\n marginLeft: '-5px'\n }\n}));\n","import PropTypes from 'prop-types';\nimport React from 'react';\nimport classnames from 'classnames';\nimport {useStyles} from './styles';\n\nconst RowCellRenderer = ({cell, CellValueRenderer, isSorted, ...otherProps}) => {\n const styles = useStyles();\n return (\n <div\n className={classnames(\n {\n [styles['row-cell--sorted']]: isSorted\n },\n styles.rowCell\n )}\n >\n {cell.values.map((value, index) => (\n <CellValueRenderer key={index} value={value} {...otherProps} />\n ))}\n </div>\n );\n};\n\nRowCellRenderer.propTypes = {\n rowValue: PropTypes.object,\n cell: PropTypes.object,\n CellValueRenderer: PropTypes.elementType,\n isSorted: PropTypes.bool\n};\n\nexport default RowCellRenderer;\n","import React from 'react';\n\nimport DefaultHeadCellRenderer from 'react-components/dist/Table/DefaultHeadCellRenderer/DefaultHeadCellRenderer';\nimport {withFilterAtBottom} from '@reltio/components';\nimport {useStyles} from './styles';\n\nconst HeadCellRenderer = (props) => {\n const styles = useStyles();\n return (\n <div className={styles.headCell}>\n <DefaultHeadCellRenderer {...props} />\n </div>\n );\n};\n\nexport default withFilterAtBottom(HeadCellRenderer);\n","import PropTypes from 'prop-types';\nimport React, {useContext} from 'react';\nimport mdm, {ui} from '@reltio/mdm-module';\nimport {chain, pipe, prop, uniqBy, values} from 'ramda';\nimport {useDispatch, useSelector} from 'react-redux';\nimport {useStyles} from './styles';\nimport {EntityTypeType, getEntityType, getLabel} from '@reltio/mdm-sdk';\nimport {EntityTypeIcon, ViewIdContext} from '@reltio/components';\nimport classnames from 'classnames';\n\nconst MemberItem = ({entityType, label, onClick}) => {\n const styles = useStyles();\n const labelCaption = getLabel(label);\n return (\n <div className={styles.memberWrapper}>\n <EntityTypeIcon className={styles.entityAvatar} entityType={entityType} />\n <span className={classnames(styles.entityLabel, styles.link)} onClick={onClick}>\n {labelCaption}\n </span>\n </div>\n );\n};\nMemberItem.propTypes = {\n entityType: EntityTypeType,\n label: PropTypes.string,\n onClick: PropTypes.func\n};\n\nconst getActorsMembers = pipe(values, chain(prop('members')), uniqBy(prop('objectURI')));\n\nconst ActorsRenderer = ({value}) => {\n const styles = useStyles();\n const members = getActorsMembers(value);\n const dispatch = useDispatch();\n const viewId = useContext(ViewIdContext);\n const metadata = useSelector(mdm.selectors.getMetadata);\n const openEntityWithUri = (uri) => dispatch(ui.actions.openEntity({uri, viewId}));\n\n return (\n <div className={styles.actorsWrapper}>\n {members.map(({objectURI, type, label}) => (\n <MemberItem\n key={objectURI}\n entityType={getEntityType(metadata, type)}\n label={label}\n onClick={() => openEntityWithUri(objectURI)}\n />\n ))}\n </div>\n );\n};\n\nActorsRenderer.propTypes = {\n value: PropTypes.object\n};\n\nexport default ActorsRenderer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\nimport {DataTypeValue} from '@reltio/components';\n\nconst DefaultCellValueRenderer = ({value, columnData: {dataTypeDefinition}}) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <DataTypeValue value={value} dataTypeDefinition={dataTypeDefinition} />\n </div>\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';\nimport PropTypes from 'prop-types';\nimport {useStyles} from './styles';\n\nconst BlobRender = ({value}) => {\n const styles = useStyles();\n return <div className={styles.blobWrapper}>{value}</div>;\n};\n\nBlobRender.propTypes = {\n value: PropTypes.any\n};\n\nexport default BlobRender;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {useStyles} from './styles';\nimport {Link as Link} from '@material-ui/core';\n\nconst LinkRenderer = ({value}) => {\n const styles = useStyles();\n return (\n <div className={styles.defaultWrapper}>\n <Link className={styles.link} href={value} target=\"_blank\" underline=\"none\">\n {value}\n </Link>\n </div>\n );\n};\n\nLinkRenderer.propTypes = {\n value: PropTypes.any\n};\n\nexport default LinkRenderer;\n","import React, {useMemo, useState} from 'react';\nimport PropTypes from 'prop-types';\nimport {useSelector} from 'react-redux';\n\nimport {ReadOnlyAttributesList, ViewMoreToggle} from '@reltio/components';\nimport {useStyles} from './styles';\nimport mdmModule from '@reltio/mdm-module';\nimport {getInteractionType} from '@reltio/mdm-sdk';\nimport {pick, propEq} from 'ramda';\n\nconst AttributesRenderer = ({value, rowValue, columnData}) => {\n const styles = useStyles();\n\n const metadata = useSelector(mdmModule.selectors.getMetadata);\n const interaction = rowValue.rawValue;\n const attrTypes = useMemo(() => {\n const interactionType = getInteractionType(metadata, interaction.type);\n return interactionType.attributes;\n }, [interaction, metadata]);\n\n const [expanded, setExpanded] = useState(false);\n const toggleExpanded = () => setExpanded((expanded) => !expanded);\n\n const attributes = value;\n const attrNames = Object.keys(attributes);\n\n const visibleCountLimit = columnData.maxAttrsToShow;\n const hasExtraValuesToShow = attrNames.length > visibleCountLimit;\n const attrNamesToShow = expanded ? attrNames : attrNames.slice(0, visibleCountLimit);\n\n const attrsToShow = pick(attrNamesToShow, attributes);\n const attrTypesToShow = attrNamesToShow.map((name) => attrTypes.find(propEq('name', name)));\n\n return (\n <div className={styles.attributesWrapper}>\n <ReadOnlyAttributesList entity={{attributes: attrsToShow}} attrTypes={attrTypesToShow} drawLines={false} />\n {hasExtraValuesToShow && (\n <ViewMoreToggle active={expanded} onClick={toggleExpanded} className={styles.viewMore} />\n )}\n </div>\n );\n};\n\nAttributesRenderer.propTypes = {\n value: PropTypes.object,\n rowValue: PropTypes.object,\n columnData: PropTypes.object\n};\n\nexport default AttributesRenderer;\n","import HeadCellRenderer from '../cell-renderers/HeadCellRenderer';\nimport ActorsRenderer from '../cell-renderers/ActorsRenderer';\nimport DefaultCellValueRenderer from '../cell-renderers/DefaultCellValueRenderer';\nimport {ColumnData, defaultGetRowCellHeight} from '@reltio/components';\nimport {assoc, cond, length, map, path, pathEq, pickBy, pipe, prop, reduce, slice, split, T, values} from 'ramda';\nimport {\n DataTypes,\n getActorsForInteraction,\n getAttributeValuesByPath,\n Interaction,\n makeAttrTypeUri,\n Metadata\n} from '@reltio/mdm-sdk';\nimport {ACTORS_COLUMN_ID, ATTRIBUTES_COLUMN_ID, INTERACTION_TYPE_COLUMN_ID} from '../../helpers/tableHelpers';\nimport BlobRender from '../cell-renderers/BlobRenderer';\nimport LinkRenderer from '../cell-renderers/LinkRenderer';\nimport AttributesRenderer from '../cell-renderers/AttributesRenderer';\n\nconst getInteractionAttributeValues = (attrPath, interaction) =>\n pipe(path(['attributes']), getAttributeValuesByPath(attrPath))(interaction);\n\nconst getAttrPathFromColumnId = pipe(split('.'), slice(1, Infinity));\n\nconst getRowValueByColumn = (columnData: ColumnData, interaction: Interaction, metadata: Metadata) => {\n switch (columnData.id) {\n case ACTORS_COLUMN_ID:\n return getActorsForInteraction(metadata, interaction);\n case 'timestamp':\n return interaction.timestamp;\n case INTERACTION_TYPE_COLUMN_ID:\n return interaction.type;\n case ATTRIBUTES_COLUMN_ID: {\n const urisToShow = path(['attrsToShow', interaction.type], columnData);\n const isAttrToShow = (values, name) => urisToShow.includes(makeAttrTypeUri(interaction.type, name));\n return urisToShow ? pickBy(isAttrToShow, interaction.attributes) : interaction.attributes;\n }\n default: {\n const attrPath = getAttrPathFromColumnId(columnData.id);\n return getInteractionAttributeValues(attrPath, interaction);\n }\n }\n};\n\nconst getBasicTableRowsData = (interactions: Interaction[], columnsData: ColumnData, metadata: Metadata) =>\n interactions.map((interaction) =>\n pipe(\n reduce(\n (acc, columnData) => assoc(columnData.id, getRowValueByColumn(columnData, interaction, metadata), acc),\n {}\n ),\n assoc('rawValue', interaction)\n )(columnsData)\n );\n\nconst getNestedPathByColumnId = (columnId) => {\n if (columnId.startsWith('attributes.')) {\n const attrPath = getAttrPathFromColumnId(columnId);\n return attrPath.length > 1 ? attrPath.slice(0, -1) : null;\n } else {\n return null;\n }\n};\n\nconst getCellValueRenderer = (columnData) => {\n if (columnData.id === ACTORS_COLUMN_ID) {\n return ActorsRenderer;\n }\n if (columnData.id === ATTRIBUTES_COLUMN_ID) {\n return AttributesRenderer;\n }\n switch (columnData.dataTypeDefinition.type) {\n case DataTypes.TYPE_URL:\n case DataTypes.TYPE_BLOG_URL:\n case DataTypes.TYPE_IMAGE_URL:\n case DataTypes.TYPE_EMAIL:\n return LinkRenderer;\n case DataTypes.TYPE_BLOB:\n return BlobRender;\n default:\n return DefaultCellValueRenderer;\n }\n};\n\nconst getColumnDataByColumnId = (columnData) => ({\n sortable: true,\n ...columnData,\n resizable: true,\n nestedPath: getNestedPathByColumnId(columnData.id),\n headCellRenderer: HeadCellRenderer,\n rowCellValueRenderer: getCellValueRenderer(columnData)\n});\n\nconst getBasicTableColumnsData = map(getColumnDataByColumnId);\n\nconst getMembersCount = pipe(prop('members'), length);\nconst getMemberCellHeight = pipe(\n map(getMembersCount),\n values,\n reduce((acc, count) => acc + count * 33, 15)\n);\n\nconst calculateMembersCellHeight = pipe(\n path(['cell', 'values']),\n reduce((acc, actors) => acc + getMemberCellHeight(actors), 0)\n);\n\nconst calculateAttributesCellHeight = ({columnData, cell}) => {\n const attributesCount = pipe(path(['values', 0]), values, length)(cell);\n return attributesCount > columnData.maxAttrsToShow\n ? columnData.maxAttrsToShow * 26 + 49\n : attributesCount * 26 + 25;\n};\n\nconst getStaticRowCellHeight = cond([\n [pathEq(['columnData', 'id'], ACTORS_COLUMN_ID), calculateMembersCellHeight],\n [pathEq(['columnData', 'id'], ATTRIBUTES_COLUMN_ID), calculateAttributesCellHeight],\n [T, defaultGetRowCellHeight]\n]);\n\nexport {getBasicTableRowsData, getBasicTableColumnsData, getStaticRowCellHeight};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n tableContainer: {\n flex: 1,\n display: 'flex',\n fontFamily: 'Roboto',\n color: 'rgba(0,0,0,0.54)'\n },\n\n '@global div[role=tooltip]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n\n '@global div[role=presentation]': {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif'\n },\n 'row-cell__buttons-container': {\n position: 'absolute'\n },\n 'row-cell__buttons-wrapper': {\n display: 'flex',\n paddingLeft: '10px',\n '& > button': {\n marginLeft: '-10px',\n transform: 'scale(0.9)'\n }\n }\n});\n","import React, {ForwardedRef, useCallback, useLayoutEffect, useMemo} from 'react';\nimport RowCellRenderer from './cell-renderers/RowCellRenderer';\nimport {BasicTable, ColumnData, ColumnFilter, RowCellAutoSizer} from '@reltio/components';\nimport {getBasicTableColumnsData, getBasicTableRowsData, getStaticRowCellHeight} from './helpers/dataHelpers';\nimport {Interaction, Metadata, SortingField} from '@reltio/mdm-sdk';\nimport {useDynamicRowCellHeight} from '@reltio/components';\nimport {either} from 'ramda';\n\nimport {useStyles} from './styles';\n\ntype Props = {\n columnsData: ColumnData;\n interactions: Interaction[];\n metadata: Metadata;\n sorting: SortingField;\n onSort: (field: string) => void;\n filters?: Record<string, ColumnFilter>;\n onFilter: (event: {columnId: string; filter: ColumnFilter}) => void;\n basicTableRef: ForwardedRef<unknown>;\n};\nconst InteractionsTable = ({\n columnsData,\n interactions,\n metadata,\n sorting,\n onSort,\n filters,\n onFilter,\n basicTableRef\n}: Props) => {\n const tableRowsData = useMemo(\n () => getBasicTableRowsData(interactions, columnsData, metadata),\n [interactions, columnsData, metadata]\n );\n const tableColumnsData = useMemo(() => getBasicTableColumnsData(columnsData), [columnsData]);\n\n const styles = useStyles();\n\n const {getDynamicRowCellHeight, changeRowCellHeight, clearHeightsCache} = useDynamicRowCellHeight();\n\n useLayoutEffect(clearHeightsCache, [interactions]);\n\n const renderRowCell = useCallback(\n (props) => (\n <RowCellAutoSizer onChangeHeight={changeRowCellHeight} {...props}>\n <RowCellRenderer\n {...props}\n isSorted={\n !!sorting && sorting.field === props.columnData.id /* eslint-disable-line react/prop-types */\n }\n />\n </RowCellAutoSizer>\n ),\n [sorting, changeRowCellHeight]\n );\n\n const getRowCellHeight = useCallback(either(getDynamicRowCellHeight, getStaticRowCellHeight), [\n getDynamicRowCellHeight,\n getStaticRowCellHeight\n ]);\n\n return (\n <div className={styles.tableContainer}>\n <BasicTable\n columnsData={tableColumnsData}\n rowsData={tableRowsData}\n sorting={sorting}\n onSort={onSort}\n filters={filters}\n onFilter={onFilter}\n hoverStateEnabled={true}\n defaultColumnWidth={250}\n defaultColumnMinWidth={200}\n getRowCellHeight={getRowCellHeight}\n headRowHeight={56}\n renderRowCell={renderRowCell}\n classes={{\n hoveredRowRightContentWrapper: styles['row-cell__buttons-wrapper'],\n hoveredRowRightContentContainer: styles['row-cell__buttons-container']\n }}\n ref={basicTableRef}\n />\n </div>\n );\n};\n\nexport default InteractionsTable;\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles({\n header: {\n '& > button': {\n margin: '0 -2px'\n },\n paddingRight: '15px'\n },\n totalCaption: {\n lineHeight: 'inherit',\n fontSize: '14px',\n color: 'rgba(0,0,0,0.6)',\n flexShrink: 0,\n marginRight: '5px'\n },\n interactionTypeSelector: {\n margin: '3px 10px 0 30px',\n overflow: 'hidden'\n }\n});\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport {InteractionTypeType} from '@reltio/mdm-sdk';\nimport i18n from 'ui-i18n';\nimport {SelectorWithOnlyOptionAutoSelect} from '@reltio/components';\n\nconst InteractionTypeSelector = ({value, onChange, interactionTypes, className}) => {\n return (\n <SelectorWithOnlyOptionAutoSelect\n classes={{\n root: className\n }}\n value={value}\n onChange={onChange}\n options={interactionTypes.map(({label, uri}) => ({label, value: uri}))}\n emptyLabel={i18n.text('All interaction types')}\n />\n );\n};\n\nInteractionTypeSelector.propTypes = {\n value: PropTypes.string,\n onChange: PropTypes.func,\n interactionTypes: PropTypes.arrayOf(InteractionTypeType),\n className: PropTypes.string\n};\n\nexport default InteractionTypeSelector;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport {Typography as Typography} from '@material-ui/core';\nimport i18n from 'ui-i18n';\nimport {\n BasicViewHeader,\n ColumnsDataType,\n ColumnsSettings,\n FilterButton,\n HideOnShrink,\n Spacer,\n VerticalDivider\n} from '@reltio/components';\nimport {useStyles} from './styles';\nimport InteractionTypeSelector from './InteractionTypeSelector/InteractionTypeSelector';\nimport {InteractionTypeType} from '@reltio/mdm-sdk';\n\nconst InteractionsTableHeader = ({\n title,\n total,\n filtersEnabled,\n onToggleFilters,\n columnsData,\n selectedColumns,\n onChangeColumns,\n interactionTypes,\n currentInteractionType,\n onInteractionTypeChange\n}) => {\n const styles = useStyles();\n\n return (\n <BasicViewHeader title={title} classes={{root: styles.header, title: styles.title}}>\n {interactionTypes.length > 0 && (\n <InteractionTypeSelector\n className={styles.interactionTypeSelector}\n value={currentInteractionType}\n onChange={onInteractionTypeChange}\n interactionTypes={interactionTypes}\n />\n )}\n <HideOnShrink widthToHide={500}>\n <VerticalDivider height={28} margin={20} />\n <Typography className={styles.totalCaption} variant=\"caption\">\n {total > 1\n ? i18n.text('${count} interactions', {count: total})\n : i18n.text('${count} interaction', {count: total})}\n </Typography>\n </HideOnShrink>\n <Spacer />\n <FilterButton enabled={filtersEnabled} onClick={onToggleFilters} />\n <VerticalDivider height={28} margin={4} />\n <ColumnsSettings\n columnsData={columnsData}\n selectedColumns={selectedColumns}\n onChangeColumns={onChangeColumns}\n />\n </BasicViewHeader>\n );\n};\n\nInteractionsTableHeader.propTypes = {\n title: PropTypes.string,\n total: PropTypes.number,\n columnsData: ColumnsDataType,\n selectedColumns: PropTypes.arrayOf(PropTypes.string),\n onChangeColumns: PropTypes.func,\n filtersEnabled: PropTypes.bool,\n onToggleFilters: PropTypes.func,\n interactionTypes: PropTypes.arrayOf(InteractionTypeType),\n currentInteractionType: PropTypes.string,\n onInteractionTypeChange: PropTypes.func\n};\n\nexport default InteractionsTableHeader;\n","import {\n always,\n assoc,\n concat,\n dissoc,\n either,\n evolve,\n ifElse,\n intersection,\n path,\n pick,\n pipe,\n prop,\n propOr,\n when,\n without,\n unless,\n isNil,\n filter\n} from 'ramda';\nimport {ACTORS_COLUMN_ID, ALL_TYPES_COLUMNS, DEFAULT_COLUMNS} from './helpers/tableHelpers';\nimport {basicTableViewState, createStandardAction, Sorting} from '@reltio/components';\nimport {SearchFilter, validateFilterValue} from '@reltio/mdm-sdk';\nimport {InteractionsSavedState} from './types';\n\nconst CHANGE_INTERACTION_TYPE = 'CHANGE_INTERACTION_TYPE';\nconst APPLY_SAVED_STATE = 'APPLY_SAVED_STATE';\nconst SAVE_CURRENT_STATE = 'SAVE_CURRENT_STATE';\n\nconst actions = {\n ...basicTableViewState.actions,\n changeInteractionType: createStandardAction(CHANGE_INTERACTION_TYPE),\n applySavedState: createStandardAction(APPLY_SAVED_STATE),\n saveCurrentState: createStandardAction(SAVE_CURRENT_STATE)\n};\n\nconst resetActorsColumnFilters = evolve({\n filters: when(prop(ACTORS_COLUMN_ID), dissoc(ACTORS_COLUMN_ID))\n});\n\nconst resetPageNumber = assoc('page', 0);\n\nconst getDefaultVisibleColumnsForCurrentInteractionType = (state) =>\n pipe(\n prop('visibleColumns'),\n ifElse(always(state.currentInteractionType), without(ALL_TYPES_COLUMNS), concat(ALL_TYPES_COLUMNS)),\n intersection(DEFAULT_COLUMNS)\n )(state);\n\nconst getSavedVisibleColumnsForCurrentInteractionType = (state) =>\n path(['visibleColumnsForInteractionTypes', `${state.currentInteractionType}`], state);\n\nconst changeVisibleColumnsForCurrentInteractionType = (state) => {\n const nextVisibleColumns = either(\n getSavedVisibleColumnsForCurrentInteractionType,\n getDefaultVisibleColumnsForCurrentInteractionType\n )(state);\n return basicTableViewState.changeVisibleColumns(state, nextVisibleColumns);\n};\n\nconst getVisibleColumnsFromSavedState = either(getSavedVisibleColumnsForCurrentInteractionType, prop('visibleColumns'));\nconst getFiltersFromSavedState = pipe(\n propOr(null, 'filters'),\n unless(\n isNil,\n filter(({filter, value}) => validateFilterValue(filter, value))\n )\n);\n\nconst saveVisibleColumnsForCurrentInteractionType = (state) => {\n const {currentInteractionType, visibleColumns} = state;\n return evolve(\n {\n visibleColumnsForInteractionTypes: assoc(`${currentInteractionType}`, visibleColumns)\n },\n state\n );\n};\n\nconst getStateToSave = pipe(\n saveVisibleColumnsForCurrentInteractionType,\n pick(['currentInteractionType', 'visibleColumnsForInteractionTypes', 'filters', 'sorting'])\n);\n\ntype InitialState = {\n currentInteractionType?: string;\n filters: SearchFilter[];\n visibleColumns: string[];\n sorting: Sorting;\n page: number;\n rowsPerPage: number;\n saveToState?: InteractionsSavedState;\n entityTypeOfAppliedSavedState?: string;\n visibleColumnsForInteractionTypes: Record<string, string[]>;\n};\n\nconst reducer = (state: InitialState, action) => {\n switch (action.type) {\n case CHANGE_INTERACTION_TYPE: {\n const nextInteractionType = action.payload;\n return pipe(\n saveVisibleColumnsForCurrentInteractionType,\n assoc('currentInteractionType', nextInteractionType),\n changeVisibleColumnsForCurrentInteractionType,\n resetActorsColumnFilters,\n resetPageNumber\n )(state);\n }\n case APPLY_SAVED_STATE: {\n const {savedState, entityType} = action.payload;\n const visibleColumns = savedState ? getVisibleColumnsFromSavedState(savedState) : state.visibleColumns;\n const filters = savedState ? getFiltersFromSavedState(savedState) : state.filters;\n return {\n ...state,\n ...savedState,\n filters,\n visibleColumns,\n entityTypeOfAppliedSavedState: entityType\n };\n }\n case SAVE_CURRENT_STATE: {\n return {\n ...state,\n stateToSave: getStateToSave(state)\n };\n }\n default:\n return basicTableViewState.reducer(state, action);\n }\n};\n\nexport {reducer as default, actions};\n","import {makeStyles} from '@material-ui/core/styles';\n\nexport const useStyles = makeStyles((_) => ({\n basicView: {\n position: 'absolute',\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n boxShadow: 'none'\n },\n tableView: {\n position: 'relative',\n flex: 1,\n display: 'flex',\n flexDirection: 'column'\n }\n}));\n","import React, {useCallback, useEffect, useMemo, useReducer, useRef} from 'react';\nimport {useSelector} from 'react-redux';\n\nimport {\n BasicTablePagination,\n BasicView,\n LinearLoadIndicator,\n useActions,\n useDidUpdateEffect,\n useSavedStateForEntityType\n} from '@reltio/components';\nimport mdmModule from '@reltio/mdm-module';\nimport {\n Entity,\n getInteractionType,\n getInteractionTypesForEntityType,\n InteractionsPerspectiveConfig,\n Metadata\n} from '@reltio/mdm-sdk';\nimport {pipe, propEq} from 'ramda';\nimport {buildInteractionsFilter} from './helpers/filtersHelpers';\nimport {DEFAULT_COLUMNS, getColumnsData, getRowsPerPageOptions} from './helpers/tableHelpers';\nimport useInteractions from './hooks/useInteractions';\nimport InteractionsTable from './InteractionsTable/InteractionsTable';\nimport InteractionsTableHeader from './InteractionsTableHeader/InteractionsTableHeader';\nimport reducer, {actions} from './stateReducer';\nimport {InteractionsSavedState} from './types';\n\nimport {useStyles} from './styles';\n\nconst DEFAULT_ROWS_PER_PAGE = 15;\nconst DEFAULT_SORT_ORDER = 'desc';\nconst [DEFAULT_SORT_FIELD] = DEFAULT_COLUMNS;\n\ntype Props = {\n config: InteractionsPerspectiveConfig;\n saveState: (state: Record<string, InteractionsSavedState>) => void;\n getSavedState: () => Promise<Record<string, InteractionsSavedState>>;\n};\nconst InteractionsTableView = ({config, getSavedState, saveState}: Props) => {\n const entity: Entity = useSelector(mdmModule.selectors.getEntity);\n const metadata: Metadata = useSelector(mdmModule.selectors.getMetadata);\n const styles = useStyles();\n\n const initialState = {\n currentInteractionType: null,\n filters: null,\n visibleColumns: DEFAULT_COLUMNS,\n sorting: {\n order: config.sortOrder || DEFAULT_SORT_ORDER,\n field: config.sortColumn || DEFAULT_SORT_FIELD\n },\n page: 0,\n rowsPerPage: config.max || DEFAULT_ROWS_PER_PAGE,\n stateToSave: null,\n entityTypeOfAppliedSavedState: null,\n visibleColumnsForInteractionTypes: {}\n };\n\n const [state, dispatch] = useReducer(reducer, initialState);\n const {\n visibleColumns,\n filters,\n sorting,\n page,\n rowsPerPage,\n currentInteractionType,\n stateToSave,\n entityTypeOfAppliedSavedState\n } = state;\n const {\n applySavedState,\n saveCurrentState,\n toggleFilters,\n toggleSort,\n changeFilter,\n changeColumns,\n changeInteractionType,\n changePage,\n changeRowsPerPage\n } = useActions({actions, dispatch});\n\n const {uri: entityUri, type: entityType} = entity || {};\n\n const isSavedStateApplied = entityTypeOfAppliedSavedState === entityType;\n\n const {\n isLoaded: isSavedStateLoaded,\n savedState,\n updateSavedState\n } = useSavedStateForEntityType<InteractionsSavedState>({\n entityTypeUri: entityType,\n getSavedState,\n saveState\n });\n\n useEffect(() => {\n if (isSavedStateLoaded) {\n const interactionTypes = getInteractionTypesForEntityType(metadata, entityType);\n const currentInteractionType = savedState?.currentInteractionType;\n const isInteractionTypeExist =\n !currentInteractionType || getInteractionType({interactionTypes}, currentInteractionType);\n const savedStateToApply = isInteractionTypeExist ? savedState : null;\n applySavedState({savedState: savedStateToApply, entityType});\n }\n }, [isSavedStateLoaded, entityType, metadata]); // eslint-disable-line\n\n useDidUpdateEffect(() => {\n if (isSavedStateApplied) {\n updateSavedState(stateToSave);\n }\n }, [stateToSave]); // eslint-disable-line\n\n const resetPage = () => {\n changePage(0);\n };\n useDidUpdateEffect(resetPage, [entityUri]);\n\n const interactionTypes = useMemo(\n () => getInteractionTypesForEntityType(metadata, entityType),\n [entityType, metadata]\n );\n\n const allColumnsData = useMemo(\n () => getColumnsData(metadata, config, interactionTypes, currentInteractionType),\n [metadata, config, interactionTypes, currentInteractionType]\n );\n\n const visibleColumnsData = useMemo(\n () => visibleColumns.map((id) => allColumnsData.find(propEq('id', id))),\n [visibleColumns, allColumnsData]\n );\n\n const filter = useMemo(\n () => buildInteractionsFilter(currentInteractionType, filters, visibleColumnsData),\n [currentInteractionType, filters] //eslint-disable-line\n );\n\n const {\n isLoading: isInteractionsLoading,\n interactions,\n total\n } = useInteractions({\n enabled: !!entityUri && isSavedStateApplied,\n entityUri,\n filter,\n sorting,\n rowsPerPage,\n page\n });\n\n const rowsPerPageOptions = useMemo(() => getRowsPerPageOptions(initialState.rowsPerPage), []); // eslint-disable-line\n\n const isLoading = !isSavedStateApplied || isInteractionsLoading;\n\n const handleFilterChange = useCallback(pipe(changeFilter, saveCurrentState), [changeFilter, saveCurrentState]);\n\n const basicTableRef = useRef(null);\n\n return (\n <BasicView className={styles.basicView}>\n <InteractionsTableHeader\n title={config.caption}\n total={total}\n columnsData={allColumnsData}\n selectedColumns={visibleColumns}\n onChangeColumns={pipe(changeColumns, saveCurrentState)}\n filtersEnabled={!!filters}\n onToggleFilters={pipe(toggleFilters, saveCurrentState)}\n interactionTypes={interactionTypes}\n currentInteractionType={currentInteractionType}\n onInteractionTypeChange={pipe(changeInteractionType, saveCurrentState)}\n />\n <div className={styles.tableView}>\n <InteractionsTable\n columnsData={visibleColumnsData}\n interactions={interactions}\n metadata={metadata}\n filters={filters}\n onFilter={handleFilterChange}\n sorting={sorting}\n onSort={pipe(toggleSort, saveCurrentState)}\n basicTableRef={basicTableRef}\n />\n <BasicTablePagination\n count={total}\n rowsPerPageOptions={rowsPerPageOptions}\n rowsPerPage={rowsPerPage}\n onChangeRowsPerPage={changeRowsPerPage}\n page={page}\n onChangePage={changePage}\n basicTableRef={basicTableRef}\n />\n {isLoading && <LinearLoadIndicator />}\n </div>\n </BasicView>\n );\n};\n\nexport default InteractionsTableView;\n","import {useState, useEffect} from 'react';\nimport {getInteractions} from '@reltio/mdm-sdk';\nimport {Sorting, useSafePromise} from '@reltio/components';\n\ntype Props = {\n entityUri: string;\n sorting: Sorting;\n page: number;\n rowsPerPage: number;\n filter: string;\n enabled: boolean;\n};\n\nconst useInteractions = ({entityUri, filter, sorting, page, rowsPerPage, enabled}: Props) => {\n const [isLoading, setIsLoading] = useState(false);\n const [total, setTotal] = useState(0);\n const [interactions, setInteractions] = useState([]);\n const safePromise = useSafePromise();\n\n useEffect(() => {\n if (enabled) {\n setIsLoading(true);\n safePromise(\n getInteractions({\n entityUri: entityUri,\n offset: page * rowsPerPage,\n max: rowsPerPage,\n filter,\n sort: sorting.field,\n order: sorting.order\n })\n )\n .then(({totalFetched, interactions = []}) => {\n setTotal(totalFetched);\n setInteractions(interactions);\n })\n .then((_) => setIsLoading(false))\n .catch((_) => setIsLoading(false));\n }\n }, [entityUri, filter, sorting.field, sorting.order, page, rowsPerPage, enabled]); // eslint-disable-line\n\n return {isLoading, interactions, total};\n};\n\nexport default useInteractions;\n","import React, {useCallback} from 'react';\nimport MomentUtils from '@date-io/moment';\nimport {createGenerateClassName, StylesProvider} from '@material-ui/core/styles';\nimport ReactResizeDetector from 'react-resize-detector';\nimport {Store} from 'redux';\nimport {MuiPickersUtilsProvider} from '@material-ui/pickers';\nimport {ErrorPopup, ViewIdContext} from '@reltio/components';\nimport {InteractionsPerspectiveConfig, promisifyCallback} from '@reltio/mdm-sdk';\nimport {identity} from 'ramda';\nimport {Provider} from 'react-redux';\nimport InteractionsTableView from './InteractionsTableView';\nimport {InteractionsSavedState} from './InteractionsTableView/types';\n\nconst generateClassName = createGenerateClassName({\n productionPrefix: 'interactionTable',\n disableGlobal: true\n});\n\ntype Props = {\n config: InteractionsPerspectiveConfig;\n store: Store<unknown>;\n onResize?: (width: number, height: number) => void;\n saveState: (state: Record<string, InteractionsSavedState>) => void;\n getSavedState: () => Record<string, InteractionsSavedState>;\n};\n\nconst InteractionsView = ({config, store, onResize = identity, saveState, getSavedState}: Props) => {\n const getSavedStatePromisified: () => Promise<Record<string, InteractionsSavedState>> = useCallback(\n promisifyCallback(getSavedState),\n [getSavedState]\n );\n\n return (\n <Provider store={store}>\n <ViewIdContext.Provider value={config.id}>\n <StylesProvider generateClassName={generateClassName}>\n <MuiPickersUtilsProvider utils={MomentUtils}>\n <ReactResizeDetector\n handleHeight\n onResize={(width, height) => onResize(Math.floor(width), Math.floor(height))}\n />\n {config && (\n <InteractionsTableView\n config={config}\n saveState={saveState}\n getSavedState={getSavedStatePromisified}\n />\n )}\n <ErrorPopup />\n </MuiPickersUtilsProvider>\n </StylesProvider>\n </ViewIdContext.Provider>\n </Provider>\n );\n};\n\nexport default InteractionsView;\n","import {InteractionsView} from '@reltio/interactions';\n\nexport default InteractionsView;\n"],"names":["MomentUtils","_a","_b","locale","instance","moment","this","yearFormat","yearMonthFormat","dateTime12hFormat","dateTime24hFormat","time12hFormat","time24hFormat","dateFormat","prototype","parse","value","format","date","isValid","isNull","getDiff","comparing","diff","isAfter","isBefore","isAfterDay","isBeforeDay","isBeforeYear","isAfterYear","startOfDay","clone","startOf","endOfDay","endOf","formatString","formatNumber","numberToFormat","getHours","get","addDays","count","subtract","Math","abs","add","setHours","hours","getMinutes","setMinutes","minutes","getSeconds","setSeconds","seconds","getMonth","isSameDay","isSame","isSameMonth","isSameYear","isSameHour","setMonth","month","getMeridiemText","ampm","startOfMonth","endOfMonth","getNextMonth","getPreviousMonth","getMonthArray","monthArray","length","prevMonth","push","getYear","setYear","year","set","mergeDateAndTime","time","getWeekdays","weekdaysShort","isEqual","getWeekArray","start","end","current","nestedWeeks","weekNumber","floor","getYearRange","startDate","endDate","years","getCalendarHeaderText","getYearText","getDatePickerHeaderText","getDateTimePickerHeaderText","getMonthText","getDayText","getHourText","getMinuteText","getSecondText","getRowCellKey","rowIndex","columnData","id","cellIndex","rowCellHeightsMap","setRowCellHeightsMap","useState","rowCellHeightsMapCache","useRef","flushHeightUpdates","useCallback","debounce","clearHeightsCache","getDynamicRowCellHeight","pipe","prop","__","changeRowCellHeight","curry","useWith","key","identity","props","width","height","viewBox","xmlns","d","fill","fillRule","stroke","strokeWidth","opacity","ColumnsSettings","columnsData","selectedColumns","onChangeColumns","title","tooltipTitle","anchorEl","setAnchorEl","handleColumnClick","column","changedColumns","getChildColumns","pluck","wasSelected","isColumnSelected","difference","uniq","concat","SmallIconButton","i18n","size","icon","TableIcon","onClick","event","currentTarget","ColumnsSettingsPopup","onColumnClick","onClose","propTypes","ColumnsDataType","PropTypes","useStyles","makeStyles","popup","minWidth","groupItem","backgroundColor","ColumnListItem","item","checked","level","style","isFocused","isGroupItem","hideCheckBox","styles","AttributeListItem","data","label","Highlighter","text","highlight","filterText","labelInText","hideIcon","className","classnames","setFilterText","groupedItems","useMemo","buildColumnItems","items","flattenGroupedItemsData","containerWidth","getMaxItemWidth","handleSearchOnEnter","focusIndex","handleKeyDown","useKeyboardNavigation","open","onSelectFocusedItem","selectedItems","handleClose","listHeight","min","containerHeight","max","SelectionPopup","onSearch","searchInputOnKeyDown","VirtualGroupedList","fixedTitle","renderItem","index","isGroupColumn","getItemSize","groupId","isParentToColumn","parent","startsWith","isGroupToColumn","group","isHideableColumn","propOr","addColumn","columns","root","find","either","getColumnRoot","children","filterColumnsByLabel","utils","some","buildColumnsTrees","reduce","acc","attrType","dataTypeDefinition","buildFilteredColumnItems","filter","chain","isGroupedColumnsData","has","flattenGroupedColumnsData","map","assoc","when","childColumns","includes","every","theme","color","palette","primary","main","closeIcon","position","right","bottom","transform","button","padding","FilterButton","enabled","Tooltip","IconButton","classes","Filter","Close","pagination","display","alignItems","justifyContent","borderTop","boxShadow","caption","fontSize","lineHeight","selectRoot","marginLeft","marginRight","select","textAlign","actions","BasicTablePagination","rowsPerPageOptions","page","onChangePage","rowsPerPage","onChangeRowsPerPage","basicTableRef","labelRowsPerPage","resetScrollbarPosition","pathOr","handleChangePage","handleChangeRowsPerPage","TablePagination","component","labelDisplayedRows","from","to","fromRow","toRow","countRows","nthArg","getValue","React","RowCellAutoSizer","onChangeHeight","cell","cellProps","cellRef","rowValue","changeCellHeight","adjustCellHeight","clientHeight","useDidUpdateEffect","rawValue","handleHeight","onResize","RootRef","rootRef","CHANGE_COLUMNS","TOGGLE_FILTERS","CHANGE_FILTER","TOGGLE_SORT","CHANGE_PAGE","CHANGE_ROWS_PER_PAGE","changeColumns","createStandardAction","toggleFilters","changeFilter","toggleSort","changePage","changeRowsPerPage","changeVisibleColumns","state","nextVisibleColumns","removedColumns","visibleColumns","isRemovedColumn","columnId","evolve","always","sorting","field","nextSortField","order","filters","keys","dissoc","reducer","action","type","columnIds","payload","enableFilters","prevSortField","path","prevSortOrder","toggleSortOrder","flexDirection","basicView","BasicView","forwardRef","ref","otherProps","Paper","displayName","EmptyStub","HideOnShrink","widthToHide","handleWidth","render","onlyValue","fontWeight","whiteSpace","textOverflow","overflow","paddingLeft","paddingRight","selectMenu","textField","maxWidth","SelectorWithOnlyOptionAutoSelect","onChange","options","emptyLabel","firstOption","moreOptions","hasOnlyOneOptionToSelect","useEffect","displayEmpty","Typography","variant","DropDownEditor","disableUnderline","TextFieldProps","MenuProps","list","entries","flex","VerticalDivider","margin","borderLeft","flexShrink","viewMoreLessLink","cursor","arrow","transition","rotated","ViewMoreToggle","active","Link","underline","ArrowDropDown","useActions","dispatch","Object","actionName","actionCreator","useSavedStateForEntityType","getSavedState","saveState","entityTypeUri","savedState","setSavedState","changedState","setChangedState","isLoaded","setIsLoaded","updateSavedState","stateToSave","then","_","catch","createInteractionTypeFilter","ROWS_PER_PAGE_OPTIONS","INTERACTION_TYPE_COLUMN_ID","ACTORS_COLUMN_ID","ATTRIBUTES_COLUMN_ID","DEFAULT_COLUMNS_DATA","DataTypes","hideable","sortable","filterOptions","FilterOptions","filterable","maxAttrsToShow","DEFAULT_COLUMNS","ALL_TYPES_COLUMNS","getColumnsDataFromInteractionAttributes","attr","attributeUriToSearchUri","uri","getAttrDataTypeDefinition","uniqBy","getActorTypesOptions","memberTypes","name","updateColumnData","updateFn","adjust","findIndex","propEq","updateActorsColumn","interactionTypes","typeFilterDataType","makeTypeOption","makeCompositeFilterOption","getActorsColumnFilterOptions","getColumnsData","metadata","config","currentInteractionType","getInteractionAttributesFromMetadata","reject","getInteractionType","attributes","getInteractionColumnDataType","updateInteractionTypeColumn","defaultWrapperStyles","paddingBottom","headCell","rowCell","overflowWrap","wordWrap","actorsWrapper","memberWrapper","paddingTop","boxSizing","entityLabel","overflowX","entityAvatar","left","top","defaultWrapper","blobWrapper","link","attributesWrapper","viewMore","RowCellRenderer","CellValueRenderer","isSorted","values","withFilterAtBottom","DefaultHeadCellRenderer","MemberItem","entityType","labelCaption","getLabel","EntityTypeIcon","EntityTypeType","getActorsMembers","ActorsRenderer","members","useDispatch","viewId","useContext","ViewIdContext","useSelector","mdm","objectURI","getEntityType","openEntityWithUri","ui","DefaultCellValueRenderer","DataTypeValue","BlobRender","LinkRenderer","href","target","AttributesRenderer","mdmModule","interaction","attrTypes","expanded","setExpanded","attrNames","visibleCountLimit","hasExtraValuesToShow","attrNamesToShow","slice","attrsToShow","pick","attrTypesToShow","entity","drawLines","getAttrPathFromColumnId","split","Infinity","getNestedPathByColumnId","attrPath","getCellValueRenderer","getBasicTableColumnsData","resizable","nestedPath","headCellRenderer","HeadCellRenderer","rowCellValueRenderer","getMembersCount","getMemberCellHeight","calculateMembersCellHeight","actors","getStaticRowCellHeight","cond","pathEq","attributesCount","T","defaultGetRowCellHeight","tableContainer","fontFamily","interactions","onSort","onFilter","tableRowsData","getActorsForInteraction","timestamp","urisToShow","isAttrToShow","makeAttrTypeUri","pickBy","getAttributeValuesByPath","getInteractionAttributeValues","getRowValueByColumn","getBasicTableRowsData","tableColumnsData","useDynamicRowCellHeight","useLayoutEffect","renderRowCell","getRowCellHeight","BasicTable","rowsData","hoverStateEnabled","defaultColumnWidth","defaultColumnMinWidth","headRowHeight","hoveredRowRightContentWrapper","hoveredRowRightContentContainer","header","totalCaption","interactionTypeSelector","InteractionTypeSelector","InteractionTypeType","InteractionsTableHeader","total","filtersEnabled","onToggleFilters","onInteractionTypeChange","BasicViewHeader","Spacer","CHANGE_INTERACTION_TYPE","APPLY_SAVED_STATE","SAVE_CURRENT_STATE","basicTableViewState","changeInteractionType","applySavedState","saveCurrentState","resetActorsColumnFilters","resetPageNumber","getDefaultVisibleColumnsForCurrentInteractionType","ifElse","without","intersection","getSavedVisibleColumnsForCurrentInteractionType","changeVisibleColumnsForCurrentInteractionType","getVisibleColumnsFromSavedState","getFiltersFromSavedState","unless","isNil","validateFilterValue","saveVisibleColumnsForCurrentInteractionType","visibleColumnsForInteractionTypes","getStateToSave","nextInteractionType","entityTypeOfAppliedSavedState","tableView","DEFAULT_SORT_FIELD","initialState","sortOrder","sortColumn","useReducer","entityUri","isSavedStateApplied","isSavedStateLoaded","getInteractionTypesForEntityType","isInteractionTypeExist","allColumnsData","visibleColumnsData","currentTypeClause","Maybe","orSome","filtersClause","buildColumnsFilter","FilterBuilder","addClause","build","buildInteractionsFilter","isLoading","isInteractionsLoading","setIsLoading","setTotal","setInteractions","safePromise","useSafePromise","getInteractions","offset","sort","totalFetched","useInteractions","getRowsPerPageOptions","defaultRowsPerPage","option","handleFilterChange","LinearLoadIndicator","generateClassName","createGenerateClassName","productionPrefix","disableGlobal","store","getSavedStatePromisified","promisifyCallback","Provider","StylesProvider","MuiPickersUtilsProvider","ErrorPopup"],"sourceRoot":""}
|