{"version":3,"file":"4268d5ec5f40ebc391b84129.js?3.6.14.7428b935c.1723600572441","mappings":"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","sources":["webpack://mono-repo/./packages/core-attribute-permission/src/components/ListItemMenu/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/ListItem/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/VirtualizedListItem/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/VirtualizedList/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/VirtualizedListTrapFocus/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/FormBody/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/components/Dialog/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/context/index.tsx","webpack://mono-repo/./packages/core-attribute-permission/src/containers/Permissions/index.tsx","webpack://mono-repo/./packages/core-attribute-set-selection/src/components/SetSelector/index.tsx","webpack://mono-repo/./packages/core-attribute-set/src/components/SortableSet/index.tsx","webpack://mono-repo/./packages/core-attribute-set/src/components/SortableSets/index.tsx","webpack://mono-repo/./packages/core-attribute/src/components/Dropdown/index.tsx","webpack://mono-repo/./packages/core-attribute/src/components/ReadOnlyAttribute/index.tsx","webpack://mono-repo/./packages/core-attribute/src/containers/Dropdown/index.tsx","webpack://mono-repo/./packages/core-components/Table/TableBody/index.tsx","webpack://mono-repo/./packages/core-components/Table/TableColumn/index.tsx","webpack://mono-repo/./packages/core-components/Table/TableRow/index.tsx"],"sourcesContent":["import React, {useState, useCallback, useEffect} from 'react';\nimport {i18n} from '@netx/core/i18n';\n\nimport {Menu, MenuItem, type MenuProps} from '@mui/material';\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport Button, {type ButtonProps} from '@netx/core-components/Button';\n\nimport {FontAwesomeIcon} from '@fortawesome/react-fontawesome';\nimport {faCaretDown} from '@fortawesome/pro-solid-svg-icons';\nimport {faCheck} from '@fortawesome/pro-solid-svg-icons';\n\nimport {PERMISSION_TYPE_LABEL} from '../../locales';\nimport type {PermissionMode} from '../../types';\nimport {PERMISSION_MODE, PERMISSION_TYPE} from '../../constants';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\n\nexport type PermissionItemMenuProps = {\n\tvalue: PermissionMode;\n\tonChange(value: PermissionMode): void;\n\tonRemove(): void;\n\tonClose?: () => void;\n\tonOpen?: () => void;\n\topen?: boolean;\n\n\tButtonProps?: Partial;\n\tMenuProps?: Partial;\n};\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\tdropdownIcon: {\n\t\t\tmarginLeft: 8,\n\t\t},\n\t\t// TODO: make a menu component that handles this checkmark stuff\n\t\tactiveIcon: {\n\t\t\twidth: 32,\n\t\t\tcolor: theme.palette.secondary.main,\n\t\t\tposition: 'absolute',\n\t\t\tright: 8,\n\t\t\ttop: 0,\n\t\t\tbottom: 0,\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\tjustifyContent: 'center',\n\t\t},\n\t\tmenu: {\n\t\t\t// TODO: make a decision on our menus - they get bigger at smaller screens\n\t\t\t// this layout works better with the sizing from that breakpoint\n\t\t\t'& .MuiMenuItem-root': {\n\t\t\t\tminHeight: '48px !important',\n\t\t\t},\n\t\t\t// TODO: something funky in the menu is preventing this from happening\n\t\t\t// when using arrow keys to navigate menu items\n\t\t\t'& li:focus': {\n\t\t\t\tbackgroundColor: theme.palette.action.hover,\n\t\t\t},\n\t\t},\n\t\tpermissionModeItem: {\n\t\t\tpaddingRight: 48,\n\t\t},\n\t});\n\nexport const PermissionItemMenu = ({\n\tclasses,\n\tvalue,\n\tonChange,\n\tonClose,\n\tonOpen,\n\tonRemove,\n\topen,\n\tButtonProps,\n\tMenuProps,\n}: PermissionItemMenuProps & WithStyles) => {\n\tconst [anchorEl, setAnchorEl] = useState(null);\n\tconst internalButtonRef = useSharedRef(null, [\n\t\tButtonProps?.ref,\n\t]);\n\n\tuseEffect(() => {\n\t\topen ? setAnchorEl(internalButtonRef.current) : setAnchorEl(null);\n\t}, [open]);\n\n\tuseWhenChangedEffect(\n\t\tanchorEl,\n\t\tuseCallback(\n\t\t\t(anchorEl) => {\n\t\t\t\tanchorEl ? onOpen?.() : onClose?.();\n\t\t\t},\n\t\t\t[onOpen, onClose],\n\t\t),\n\t);\n\n\tconst handleOpenClick = useCallback(\n\t\t(event: React.MouseEvent) =>\n\t\t\tsetAnchorEl(event.currentTarget),\n\t\t[onOpen],\n\t);\n\n\tconst handleClose = useCallback(() => setAnchorEl(null), []);\n\n\tconst selectPermission = useCallback(\n\t\t(perm: PermissionMode) => () => {\n\t\t\tonChange(perm);\n\t\t\tsetAnchorEl(null);\n\t\t},\n\t\t[onChange],\n\t);\n\n\tconst handleRemove = useCallback(() => {\n\t\tsetAnchorEl(null);\n\t\tonRemove();\n\t}, [onRemove]);\n\n\tconst modeEntries = Object.entries(PERMISSION_MODE);\n\tconst modeCount = modeEntries.length;\n\n\treturn (\n\t\t<>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t{\n\t\t\t\t\t\tPERMISSION_TYPE_LABEL[\n\t\t\t\t\t\t\tvalue === 'write' ? PERMISSION_TYPE.WRITE : PERMISSION_TYPE.READ\n\t\t\t\t\t\t]\n\t\t\t\t\t}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t{/** TODO: Make/adjust menu component to handle this checkmark active stuff */}\n\t\t\t\n\t\t\t\t{modeEntries.map(([key, mode], index) => (\n\t\t\t\t\t\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t{PERMISSION_TYPE_LABEL[key as keyof typeof PERMISSION_TYPE_LABEL]}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t{value === mode ? : null}\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t))}\n\t\t\t\t\n\t\t\t\t\t{i18n.t('i18n.remove')}\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(PermissionItemMenu) as (\n\tprops: Omit,\n) => JSX.Element;\n","import React, {useCallback} from 'react';\nimport clsx from 'clsx';\nimport {RequiredKeys} from '@netx/core/typings';\n\nimport {\n\tListItem,\n\ttype ListItemProps,\n\tListItemAvatar,\n\tListItemText,\n} from '@mui/material';\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport ColoredAvatar from '@netx/core-components/ColoredAvatar';\n\nimport {PERMISSION_TYPE_LABEL} from '../../locales';\nimport {AttributePermission} from '../../types';\nimport PermissionItemMenu, {\n\ttype PermissionItemMenuProps,\n} from '../ListItemMenu';\n\nexport type {PermissionItemMenuProps} from '../ListItemMenu';\nexport type MinimumPermissionItemMenuProps = Pick<\n\tPermissionItemMenuProps,\n\tRequiredKeys\n>;\n\nexport type PermissionListItemProps<\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n> = Partial, 'button' | 'onChange'>> & {\n\tonChange(permission: AttributePermission, newPerm: 'read' | 'write'): void;\n\tonRemove(permission: AttributePermission): void;\n\tpermission: AttributePermission;\n\tPermissionItemMenuComponent?: React.ComponentType;\n\tPermissionItemMenuProps?: Partial;\n};\n\nconst styles = ({palette, spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tborderRadius: '28px 0 0 28px',\n\t\t\toutline: 'none !important',\n\t\t\tpaddingLeft: 10,\n\t\t\tmarginLeft: spacing(2),\n\t\t\twidth: `calc(100% - ${spacing(2)}) !important`,\n\t\t\t'&:hover, &:focus': {\n\t\t\t\tbackgroundColor: palette.action.hover,\n\t\t\t},\n\t\t},\n\t\tlistItemAction: {\n\t\t\tflex: '0 0 auto',\n\t\t\tpaddingLeft: spacing(2),\n\t\t},\n\t\tselected: {\n\t\t\tbackgroundColor: palette.action.hover,\n\t\t},\n\t});\n\nconst PermissionListItem = <\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n>({\n\tclasses,\n\tpermission,\n\tonChange,\n\tonRemove,\n\tselected,\n\tPermissionItemMenuProps,\n\tPermissionItemMenuComponent = PermissionItemMenu,\n\t...props\n}: PermissionListItemProps & WithStyles) => {\n\tconst handleChange = useCallback(\n\t\t(perm: 'read' | 'write') => onChange(permission, perm),\n\t\t[permission, onChange],\n\t);\n\n\tconst handleRemove = useCallback(\n\t\t() => onRemove(permission),\n\t\t[permission, onRemove],\n\t);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(PermissionListItem) as <\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n>(\n\tprops: Omit, 'classes'>,\n) => JSX.Element;\n","import React, {useCallback} from 'react';\n\nimport {Skeleton} from '@mui/material';\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport PermissionListItem, {\n\ttype PermissionListItemProps,\n\ttype PermissionItemMenuProps,\n\ttype MinimumPermissionItemMenuProps,\n} from '../ListItem';\n\nimport type {AttributePermissionIndexed} from '../../types';\nimport type {VirtualizedListItemProps} from '@netx/core-components/VirtualizedList';\n\nexport interface VirtualizedPermissionListItemDataProps<\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n> extends Omit, 'permission' | 'onClick'> {\n\tonClick?: (index: number) => void;\n}\n\nexport interface VirtualizedPermissionListItemProps<\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n> extends VirtualizedListItemProps<\n\t\tAttributePermissionIndexed,\n\t\tVirtualizedPermissionListItemDataProps\n\t> {}\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\tskeleton: {\n\t\t\theight: 'calc(100% - 1px)',\n\t\t\twidth: '100%',\n\t\t\tposition: 'absolute',\n\t\t\ttop: 0,\n\t\t\tleft: 0,\n\t\t\tbottom: 0,\n\t\t\tright: 0,\n\t\t},\n\t});\n\nconst VirtualizedPermissionListItem = <\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n>({\n\tclasses,\n\tdata,\n\tindex,\n\tstyle,\n}: VirtualizedPermissionListItemProps &\n\tWithStyles) => {\n\tconst {rows, onClick, viewportWidth, ...props} = data;\n\n\tconst permission = rows[index];\n\n\tconst handleClick = useCallback(() => onClick?.(index), [index, onClick]);\n\n\tif (!permission)\n\t\treturn (\n\t\t\t
\n\t\t\t\t\n\t\t\t
\n\t\t);\n\n\treturn (\n\t\t\n\t\t\tid={`permission-${index.toString()}`}\n\t\t\tonClick={handleClick}\n\t\t\tpermission={permission}\n\t\t\trole=\"group\"\n\t\t\t{...props}\n\t\t\tstyle={{...style, ...props.style}}\n\t\t/>\n\t);\n};\n\nexport default withStyles(styles)(\n\tReact.memo(VirtualizedPermissionListItem),\n) as <\n\tMenuProps extends MinimumPermissionItemMenuProps = PermissionItemMenuProps,\n>(\n\tprops: Omit, 'classes'>,\n) => JSX.Element;\n","import React from 'react';\n\nimport {EmptyStateFallbackMessage} from '@netx/core-components/EmptyStateFallbackMessage';\nimport {faUserShield as PermissionsIcon} from '@fortawesome/pro-solid-svg-icons';\n\nimport type {AttributePermissionIndexed} from '../../types';\nimport {PERMISSION_MESSAGES} from '../../locales';\n\nimport VirtualizedList, {\n\ttype VirtualizedListProps,\n} from '@netx/core-components/VirtualizedList';\n\nimport VirtualizedPermissionListItem, {\n\ttype VirtualizedPermissionListItemDataProps,\n} from '../VirtualizedListItem';\n\ntype OurVirtualizedListProps<\n\tP extends VirtualizedPermissionListItemDataProps = VirtualizedPermissionListItemDataProps,\n> = VirtualizedListProps;\n\nexport interface VirtualizedPermissionsListProps<\n\tP extends VirtualizedPermissionListItemDataProps = VirtualizedPermissionListItemDataProps,\n> extends Omit<\n\t\tOurVirtualizedListProps

,\n\t\t'ListItemComponent' | 'ListItemComponentProps'\n\t> {\n\t// Allow for the passing of different components so long as their props\n\t// are compatible with the base `VirtualizedPermissionListItem`\n\tListItemComponent?: OurVirtualizedListProps

['ListItemComponent'];\n\tListItemComponentProps: Required<\n\t\tOurVirtualizedListProps

\n\t>['ListItemComponentProps'];\n}\n\nconst VirtualizedPermissionsList = <\n\tP extends VirtualizedPermissionListItemDataProps = VirtualizedPermissionListItemDataProps,\n>({\n\tListItemComponent = VirtualizedPermissionListItem,\n\tListItemComponentProps,\n\t...props\n}: VirtualizedPermissionsListProps

) => {\n\treturn (\n\t\t<>\n\t\t\t{!props.dataReady || props.total > 0 ? (\n\t\t\t\t\n\t\t\t\t\tuseIsScrolling\n\t\t\t\t\tinnerElementType=\"ul\"\n\t\t\t\t\t{...props}\n\t\t\t\t\tListItemComponent={ListItemComponent}\n\t\t\t\t\tListItemComponentProps={ListItemComponentProps}\n\t\t\t\t/>\n\t\t\t) : (\n\t\t\t\t\n\t\t\t)}\n\t\t\n\t);\n};\n\nexport default React.memo(VirtualizedPermissionsList) as <\n\tP extends VirtualizedPermissionListItemDataProps = VirtualizedPermissionListItemDataProps,\n>(\n\tprops: Omit, 'classes'>,\n) => JSX.Element;\n","import React from 'react';\n\nimport {styled} from '@netx/core-components/Theme';\n\nimport useSharedRef from '@netx/core-components/hooks/useSharedRef';\nimport {\n\tVirtualizedListArrowTabTrapProvider,\n\tuseVirtualizedListArrowTabTrapProvider,\n} from '@netx/core-components/VirtualizedList';\n\nimport VirtualizedPermissionsList, {\n\ttype VirtualizedPermissionsListProps,\n} from '../VirtualizedList';\nimport VirtualizedPermissionListItem, {\n\ttype VirtualizedPermissionListItemFocusTrapDataProps,\n} from './VirtualizedPermissionListItemFocusTrap';\n\nexport type PermissionsProps = VirtualizedPermissionsListProps & {\n\theight?: number;\n\taddedAtIndex?: number;\n};\n\nconst VirtualizedListTrapFocusRoot = styled('div', {\n\tname: 'VirtualizedListTrapFocus',\n\tslot: 'Root',\n})(({theme}) => ({\n\toutline: 'none',\n\tdisplay: 'flex',\n\tflexDirection: 'column',\n\tminHeight: 56,\n\twidth: '100%',\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n\t'& ul': {\n\t\tmargin: 0,\n\t},\n}));\n\nexport const PermissionsPrimitive = React.forwardRef<\n\tHTMLDivElement,\n\tPermissionsProps\n>(({height, virtualListRef, addedAtIndex = -1, ...props}, ref) => {\n\tconst itemProvider = useVirtualizedListArrowTabTrapProvider();\n\n\tconst internalVirtualListRef = useSharedRef(null, [virtualListRef]);\n\tconst rootRef = useSharedRef(null, [\n\t\tref,\n\t\titemProvider.rootRef,\n\t]);\n\n\treturn (\n\t\t// We are a \"tab\" trap of sorts\n\t\t// If a user tabs to this area arrow keys are now in play\n\t\t// to navigate through the contents\n\t\t\n\t\t\t\n\t\t\t\t{...props}\n\t\t\t\tinnerElementType=\"ul\"\n\t\t\t\tvirtualListRef={internalVirtualListRef}\n\t\t\t\tonScrollIndexUpdate={itemProvider.onScrollIndexUpdate}\n\t\t\t\tListItemComponent={VirtualizedPermissionListItem}\n\t\t\t\tListItemComponentProps={{\n\t\t\t\t\t...props.ListItemComponentProps,\n\t\t\t\t\tactiveIndex: itemProvider.state.activeIndex,\n\t\t\t\t\tfocusTrapActive: itemProvider.state.active,\n\t\t\t\t\ttabIndex: -1,\n\t\t\t\t\tonInteracting: itemProvider.onItemInteracting,\n\t\t\t\t\tonClick: itemProvider.onItemClick,\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n});\n\nexport const Permissions = React.memo(\n\tReact.forwardRef(\n\t\t({virtualListRef, ...props}, ref) => {\n\t\t\tconst internalVirtualListRef = useSharedRef(null, [virtualListRef]);\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t);\n\t\t},\n\t),\n);\n\nexport default Permissions;\n","import React, {useRef, useCallback, useEffect, useState} from 'react';\nimport {i18n} from '@netx/core/i18n';\nimport clsx from 'clsx';\n\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport Permissions, {type PermissionsProps} from '../VirtualizedListTrapFocus';\nimport type {PartialAttributePermission} from '../../types';\nimport type {AttributeTemplate} from '@netx/core-attribute';\n\nimport {\n\tGroupAutoList,\n\ttype GroupAutoListProps,\n\ttype IGroupAutoListItem,\n} from '@netx/core-user-next';\nimport type {FixedSizeList} from 'react-window';\n\nexport interface PermissionsFormProps extends PermissionsProps {\n\tattributeTemplate?: AttributeTemplate;\n\tcontainerRef?: React.RefObject;\n\tonAdd(permission: PartialAttributePermission): void;\n\tonClose?: () => void;\n}\n\nconst styles = ({spacing}: Theme) =>\n\tcreateStyles({\n\t\troot: {},\n\t\tpermissionListWrapper: {\n\t\t\twidth: '100%',\n\t\t},\n\t\tcontainer: {\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexDirection: 'column',\n\t\t\toverflow: 'hidden',\n\t\t},\n\t\tinput: {\n\t\t\tflex: '0 0 auto',\n\t\t\tpadding: spacing(0, 2, 2, 2),\n\t\t},\n\t});\n\nconst PermissionsForm = ({\n\tclasses,\n\tcontainerRef,\n\tonClose,\n\tonAdd,\n\t...props\n}: PermissionsFormProps & WithStyles) => {\n\tconst groupRef = useRef(null);\n\tconst virtualListRef = useRef(null);\n\n\tconst [stageHeight, setStageHeight] = useState(window.innerHeight);\n\tconst [listHeight, setListHeight] = useState(40);\n\t// TODO: get this value (56) from a constant\n\tconst [maxHeight, setMaxHeight] = useState(props.total * 56);\n\tconst [addedAtIndex, setAddedAtIndex] = useState(-1);\n\n\tuseEffect(() => {\n\t\t// TODO: get this value (56) from a constant\n\t\tsetMaxHeight(props.total * 56);\n\t}, [props.total]);\n\n\tuseEffect(() => {\n\t\tconst onResize = () => setStageHeight(window.innerHeight);\n\t\twindow.addEventListener('resize', onResize);\n\t\treturn () => {\n\t\t\twindow.removeEventListener('resize', onResize);\n\t\t};\n\t}, []);\n\n\tuseEffect(() => {\n\t\tif (!groupRef.current) return;\n\n\t\t// TODO: find a way to make this clean\n\t\tconst availableHeight =\n\t\t\t(containerRef?.current?.clientHeight || stageHeight) -\n\t\t\t68 - // footer\n\t\t\tgroupRef.current.clientHeight -\n\t\t\t64 - // margin\n\t\t\t84; // header\n\n\t\tconst minMeight = Math.min(availableHeight, 300);\n\n\t\tsetListHeight(\n\t\t\tMath.min(\n\t\t\t\tavailableHeight,\n\t\t\t\t// Prevent a jump in size between no items and 1 item\n\t\t\t\tmaxHeight < 300 ? minMeight : maxHeight,\n\t\t\t),\n\t\t);\n\t}, [stageHeight, maxHeight]);\n\n\tconst handleAdd = useCallback<\n\t\tRequired>['onChange']\n\t>(\n\t\t(event, group) => {\n\t\t\tif (!group) return;\n\t\t\tonAdd({groupId: group.value, groupName: group.label, read: true});\n\t\t\tsetAddedAtIndex(props.total);\n\t\t},\n\t\t[onAdd, props.total],\n\t);\n\n\tconst handleFilterGroups = useCallback(\n\t\t(groups: IGroupAutoListItem[]) =>\n\t\t\tgroups.filter(\n\t\t\t\t(group) => !props.data.find((d) => d.groupId === group.value),\n\t\t\t),\n\t\t[props.data],\n\t);\n\n\treturn (\n\t\t

\n\t\t\t
\n\t\t\t\t\n\t\t\t\t\tclearOnClose\n\t\t\t\t\tdisableClearable\n\t\t\t\t\tfilterOptions={handleFilterGroups}\n\t\t\t\t\tlabel={i18n.t('i18n.addGroup')}\n\t\t\t\t\tmultiple={false}\n\t\t\t\t\tvariant=\"filled\"\n\t\t\t\t\tonChange={handleAdd}\n\t\t\t\t/>\n\t\t\t
\n\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(PermissionsForm as any);\n","import React, {useRef} from 'react';\nimport {i18n} from '@netx/core/i18n';\nimport {faUsersMedical} from '@fortawesome/pro-solid-svg-icons';\nimport {\n\tLegacyFormDialog as Dialog,\n\ttype LegacyExtendFormDialogProps,\n} from '@netx/core-components/FormDialog';\nimport {dialogClasses} from '@netx/core-components/Dialog';\nimport {styled} from '@netx/core-components/Theme';\nimport {PERMISSION_TITLES} from '../../locales';\nimport PermissionFormBody, {type PermissionsFormProps} from '../FormBody';\n\nconst PermissionsDialogRoot = styled(Dialog)(({theme}) => ({\n\t[`& .${dialogClasses.content}`]: {\n\t\toverflow: 'hidden',\n\t},\n}));\n\nexport type PermissionsDialogProps = Omit<\n\tPermissionsFormProps,\n\t'classes' | 'columns' | 'onResize'\n> &\n\tOmit;\n\nconst PermissionsDialogPrimitive = ({\n\topen,\n\tDialogProps,\n\tonClose,\n\tonSubmit,\n\t...props\n}: PermissionsDialogProps) => {\n\tconst backdropRef = useRef(null);\n\treturn (\n\t\t\n\t\t\t {\n\t\t\t\t\tonClose?.();\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport const PermissionsDialog = PermissionsDialogPrimitive;\n\nexport default PermissionsDialogPrimitive;\n","import React, {\n\tcreateContext,\n\tuseContext,\n\tuseLayoutEffect,\n\tuseMemo,\n\tuseReducer,\n\tuseEffect,\n\tuseCallback,\n\tuseRef,\n} from 'react';\n\nimport {\n\tuseMutation,\n\tuseQuery,\n\tQueryClient,\n\tQueryClientProvider,\n} from '@tanstack/react-query';\n\nimport reducer, {initialState, type State} from './reducer';\nimport actions from './actions';\nimport {\n\tgetAttributePermissions,\n\ttype GetAttributePermissionsRequestOptions,\n\ttype GetAttributePermissionsResult,\n\tsetAttributePermissions,\n\ttype SetAttributePermissionsResult,\n\ttype SetAttributePermissionsRequestOptions,\n\ttype QueryError,\n} from '../api';\n\nimport type {AttributePermission} from '../types';\n\nimport {ACTIONS} from './constants';\n\nimport {useAttributeProvider} from '@netx/core-attribute/context/AttributesContext';\n\nexport type AttributePermissionContextType = {\n\tactions: ReturnType & {\n\t\tedit(): void;\n\t\tendEdit(): void;\n\t\tsave(): Promise;\n\t};\n\tstate: State;\n\n\tgetAttributeTemplate(): ReturnType<\n\t\tReturnType['getById']\n\t>;\n};\n\nconst queryClient = new QueryClient();\n\ntype QueryParams = {\n\tqueryKey: [string, GetAttributePermissionsRequestOptions];\n};\n\nconst reactQueryGetAttributePermissions = async (params: QueryParams) => {\n\tconst [, queryParams] = params.queryKey;\n\treturn getAttributePermissions(queryParams);\n};\n\nconst StoreContext = createContext(\n\tundefined,\n);\n\nexport const useAttributePermissionProvider = () => {\n\tconst context = useContext(StoreContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'`useAttributePermissionProvider` must be used within a `AttributePermissionProvider`',\n\t\t);\n\t}\n\treturn context;\n};\n\nexport interface AttributePermissionProviderProps {\n\ttemplateId?: AttributePermission['templateId'];\n}\n\nconst AttributePermissionProvider = ({\n\tchildren,\n\ttemplateId,\n}: React.PropsWithChildren) => {\n\tconst [state, dispatch] = useReducer(reducer, {...initialState, templateId});\n\tconst attributesProvider = useAttributeProvider();\n\n\t// Hold onto a ref of the data\n\t// some of the methods here do not need to respond to data changes\n\t// but would like to access the current state of it when time\n\tconst dataRef = useRef(state.data);\n\tdataRef.current = state.data;\n\n\t// When the `templateId` changes\n\t// `templateId` drives all the data fetching\n\tuseEffect(() => {\n\t\tdispatch({type: ACTIONS.SET_TEMPLATE_ID, templateId});\n\t}, [templateId]);\n\n\t// MUTATION\n\tconst attributePermissionsMutation = useMutation<\n\t\tSetAttributePermissionsResult,\n\t\tQueryError,\n\t\tSetAttributePermissionsRequestOptions\n\t>({\n\t\tmutationFn: setAttributePermissions,\n\t\tonError: (error) => {\n\t\t\tconsole.error(error);\n\t\t},\n\t\tonSuccess: (attributePermissions) => {\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.UPDATE,\n\t\t\t\tdata: attributePermissions.map((d, index) => ({...d, index})),\n\t\t\t});\n\t\t},\n\t});\n\n\t// QUERY\n\tconst attributePermissionsQuery = useQuery<\n\t\tGetAttributePermissionsResult,\n\t\tQueryError,\n\t\tGetAttributePermissionsResult,\n\t\tQueryParams['queryKey']\n\t>({\n\t\tqueryKey: [\n\t\t\t'getAttributePermissions',\n\t\t\t{templateId: state.templateId},\n\t\t] as QueryParams['queryKey'],\n\t\tqueryFn: reactQueryGetAttributePermissions,\n\t\tenabled: state.templateId != null,\n\t\trefetchOnReconnect: false,\n\t\trefetchOnWindowFocus: false,\n\t\tretry: false,\n\t});\n\n\tuseEffect(() => {\n\t\tdispatch({\n\t\t\ttype: ACTIONS.UPDATE,\n\t\t\tdata: (attributePermissionsQuery.data ?? []).map((d, index) => ({\n\t\t\t\t...d,\n\t\t\t\tindex,\n\t\t\t\tid: d.templateId,\n\t\t\t})),\n\t\t});\n\t}, [attributePermissionsQuery.data, attributePermissionsQuery.dataUpdatedAt]);\n\n\t// The attribute context will handle showing the editor\n\tconst edit = useCallback(() => {\n\t\tif (state.templateId == null) return;\n\t\tattributesProvider.setPermissionEdit(state.templateId);\n\t}, [state.templateId, attributesProvider.setPermissionEdit]);\n\n\t// The attribute context will handle showing the editor\n\tconst endEdit = useCallback(() => {\n\t\tattributesProvider.setPermissionEdit(false);\n\t}, [attributesProvider.setPermissionEdit]);\n\n\t// Pass the request along to the attibute context\n\tconst getAttributeTemplate = useCallback(\n\t\t() =>\n\t\t\tstate.templateId != null\n\t\t\t\t? attributesProvider.getById(state.templateId)\n\t\t\t\t: undefined,\n\t\t[state.templateId, attributesProvider.getById],\n\t);\n\n\t// Save the current state of our data\n\tconst save = useCallback(async () => {\n\t\tif (state.templateId == null) return;\n\t\tawait attributePermissionsMutation.mutateAsync({\n\t\t\ttemplateId: state.templateId,\n\t\t\t// `templateId` is not needed in `groupAttributePermissions`\n\t\t\tgroupAttributePermissions: dataRef.current.map(\n\t\t\t\t({templateId, ...rest}) => rest,\n\t\t\t),\n\t\t});\n\t\tendEdit();\n\t}, [endEdit, state.templateId]);\n\n\t// The reducer actions to expose to outside components\n\tconst dispatchActions = useMemo(\n\t\t() => ({\n\t\t\t...actions(dispatch),\n\t\t\tedit,\n\t\t\tendEdit,\n\t\t\tsave,\n\t\t}),\n\t\t[state.templateId, edit, endEdit, save],\n\t);\n\n\t// Reflect saving\n\tuseLayoutEffect(() => {\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_SAVING,\n\t\t\tsaving: attributePermissionsMutation.status === 'loading',\n\t\t});\n\t}, [attributePermissionsMutation.status]);\n\n\t// Reflect loading\n\tuseLayoutEffect(() => {\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_LOADING,\n\t\t\tloading:\n\t\t\t\tattributePermissionsQuery.isLoading ||\n\t\t\t\tattributePermissionsQuery.isFetching,\n\t\t});\n\t}, [\n\t\tattributePermissionsQuery.isLoading,\n\t\tattributePermissionsQuery.isFetching,\n\t]);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default React.memo(\n\t(props: React.PropsWithChildren) => {\n\t\treturn (\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t},\n);\n","import React, {useCallback, useState} from 'react';\n\nimport PermissionsDialog, {\n\ttype PermissionsDialogProps,\n} from '../../components/Dialog';\nimport AttributePermissionsProvider, {\n\tuseAttributePermissionProvider,\n} from '../../context';\n\nimport {AttributeProvider} from '@netx/core-attribute';\n\nimport type {AttributePermission, PermissionMode} from '../../types';\nimport {splitEventHandler} from '@netx/core-next/utils';\n\nexport type PermissionsContainerProps = Omit<\n\tPermissionsDialogProps,\n\t| 'ListItemComponentProps'\n\t| 'attributeTemplate'\n\t| 'data'\n\t| 'isItemLoaded'\n\t| 'loadMoreItems'\n\t| 'total'\n\t| 'onSubmit'\n\t| 'onAdd'\n> & {\n\ttemplateId: number;\n\tListItemComponentProps?: PermissionsDialogProps['ListItemComponentProps'];\n};\n\n/** we are not paging items (at this time) */\nconst isItemLoaded = () => true;\n\nconst PermissionsContainer = ({\n\tonClose,\n\topen,\n\tDialogProps,\n\t...props\n}: PermissionsContainerProps) => {\n\tconst {actions, state, getAttributeTemplate} =\n\t\tuseAttributePermissionProvider();\n\n\tconst [dialogReady, setDialogReady] = useState(false);\n\n\tconst handlePermissionItemChange = useCallback(\n\t\t(permission: AttributePermission, newPerm: PermissionMode) => {\n\t\t\tactions.updatePermission({\n\t\t\t\t...permission,\n\t\t\t\tread: false,\n\t\t\t\twrite: false,\n\t\t\t\t[newPerm]: true,\n\t\t\t});\n\t\t},\n\t\t[actions.updatePermission],\n\t);\n\n\tconst handlePermissionItemRemove = useCallback(\n\t\t(permission: AttributePermission) => {\n\t\t\tactions.deletePermission(permission.groupId);\n\t\t},\n\t\t[actions.deletePermission],\n\t);\n\n\tconst handleClose = useCallback(() => {\n\t\tactions.resetPermissions();\n\t\tonClose?.();\n\t}, [onClose]);\n\n\t// We are not utilizing `useForm`\n\tconst handleSubmit = useCallback(\n\t\tasync (event: React.FormEvent) => {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn actions.save().then(() => {\n\t\t\t\thandleClose();\n\t\t\t});\n\t\t},\n\t\t[actions.save],\n\t);\n\n\treturn (\n\t\t undefined}\n\t\t\topen={open}\n\t\t\tonClose={handleClose}\n\t\t\tonSubmit={handleSubmit}\n\t\t\t/** show _n_ loading items if data has not been loaded yet */\n\t\t\ttotal={state.ready ? state.data.length : 5}\n\t\t\thasChanged={state.unsavedChanges}\n\t\t\t{...DialogProps}\n\t\t\t{...props}\n\t\t\tDialogProps={{\n\t\t\t\thasChanged: state.unsavedChanges,\n\t\t\t\tTransitionProps: {\n\t\t\t\t\t...DialogProps?.TransitionProps,\n\t\t\t\t\t// TODO: this is a hack of sorts for now - will want to transition over to tanstack virtualizer lib\n\t\t\t\t\t// and if this stil lproves to be neccessary we should abstract this logic for all dialogs wit hvirtualized content\n\t\t\t\t\tonEntered: splitEventHandler(\n\t\t\t\t\t\tDialogProps?.TransitionProps?.onEntered,\n\t\t\t\t\t\t(node, isAppearing) => {\n\t\t\t\t\t\t\tsetDialogReady(true);\n\t\t\t\t\t\t},\n\t\t\t\t\t),\n\t\t\t\t},\n\t\t\t}}\n\t\t\tListItemComponentProps={{\n\t\t\t\t...props.ListItemComponentProps,\n\t\t\t\tonChange: handlePermissionItemChange,\n\t\t\t\tonRemove: handlePermissionItemRemove,\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport default function (props: PermissionsContainerProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import React, {useMemo} from 'react';\nimport {type AutocompleteValue} from '@mui/material';\nimport type {AttributeSetId} from '@netx/core-attribute-set';\nimport {useConstCallback} from '@netx/core-components/hooks/useEvent';\nexport * from '@netx/core-components/SelectField/selectFieldClasses';\nimport {useAttributeSetSelectionProvider} from '../../context';\nimport {\n\tSetSelector as BaseSetSelector,\n\ttype SetSelectorProps,\n} from './SetSelector';\n\nexport interface SelectionProps<\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n> extends Partial<\n\t\tOmit<\n\t\t\tSetSelectorProps,\n\t\t\t'attributeSets' | 'enforceAttributeSets' | 'value'\n\t\t>\n\t> {}\n\nexport interface Option {\n\tgroup: string;\n\tid: AttributeSetId;\n\tactive?: 0 | 1;\n\tname: string;\n}\n\nexport const SetSelectorPrimitive = <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\t{\n\t\tlabel,\n\t\tmultiple,\n\t\tonChange,\n\t\t...props\n\t}: SelectionProps,\n\tref: any,\n) => {\n\tconst attributeSetSelection = useAttributeSetSelectionProvider();\n\n\tconst attributeSets = useMemo(\n\t\t() => attributeSetSelection.attributeSetCtx.getSelectable(),\n\t\t[attributeSetSelection.attributeSetCtx.data],\n\t);\n\n\tconst handleSelectionChange = useConstCallback(\n\t\t(event: any, value: any, reason: any, details: any) => {\n\t\t\tconst pureValue = value;\n\t\t\tif (!Array.isArray(value)) value = [value];\n\n\t\t\tvalue =\n\t\t\t\tvalue == null\n\t\t\t\t\t? []\n\t\t\t\t\t: value.map((val?: Option) => (val?.id ? val.id : val));\n\n\t\t\tif (value.join() === attributeSetSelection.selected.join()) return;\n\n\t\t\tattributeSetSelection.setSelected(value);\n\t\t\tonChange?.(event, pureValue, reason, details);\n\t\t},\n\t);\n\n\tconst value = attributeSetSelection.selected;\n\n\tconst ourValue = (multiple ? value : value[0] || null) as AutocompleteValue<\n\t\tstring,\n\t\tMultiple,\n\t\tDisableClearable,\n\t\tfalse\n\t>;\n\n\treturn (\n\t\t\n\t\t\tref={ref}\n\t\t\tattributeSets={attributeSets}\n\t\t\tenforceAttributeSets={attributeSetSelection.enforce}\n\t\t\tmultiple={multiple}\n\t\t\t{...props}\n\t\t\tonChange={handleSelectionChange}\n\t\t\tvalue={ourValue}\n\t\t/>\n\t);\n};\n\nexport const SetSelector = React.forwardRef(SetSelectorPrimitive) as <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\tprops: SelectionProps,\n) => JSX.Element;\n\nexport default React.memo(SetSelector) as <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\tprops: SelectionProps,\n) => JSX.Element;\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\n\nimport {useSortable} from '@dnd-kit/sortable';\nimport {CSS} from '@dnd-kit/utilities';\nimport {getScrollparent} from '@netx/core-next/utils/element';\n\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\nimport IconButton from '@netx/core-components/IconButton';\n\nimport Title from '@netx/core-components/Title';\nimport {faEquals as EqualsIcon} from '@fortawesome/pro-solid-svg-icons';\n\nimport {LegacyAttributeSet, LegacyAttributeSetProps} from '../Set';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tbackground: theme.palette.background.paper,\n\t\t\tborder: `1px solid ${theme.palette.custom.border}`,\n\t\t\tborderTop: 0,\n\t\t\tborderRadius: 4,\n\t\t\tposition: 'relative',\n\t\t\t'&$stuck': {\n\t\t\t\t'& $title': {\n\t\t\t\t\tborderBottom: `1px solid ${theme.palette.custom.border}`,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\tcontent: {\n\t\t\tpadding: theme.spacing(1, 3, 2, 3),\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t},\n\t\tstickySentinel: {\n\t\t\tposition: 'absolute',\n\t\t\tleft: 0,\n\t\t\tright: 0,\n\t\t\tvisibility: 'hidden',\n\t\t},\n\t\tstickySentinel_top: {\n\t\t\theight: 65,\n\t\t\ttop: -65,\n\t\t},\n\t\tstickySentinel_bottom: {\n\t\t\theight: 65,\n\t\t\tbottom: 0,\n\t\t},\n\t\ttitle: {\n\t\t\t...theme.mixins.positionSticky,\n\t\t\tborderTop: `1px solid ${theme.palette.custom.border}`,\n\t\t\tdisplay: 'flex',\n\t\t\talignItems: 'center',\n\t\t\ttop: 0,\n\t\t\tbackground: theme.palette.background.paper,\n\t\t\tpadding: theme.spacing(1),\n\t\t\tzIndex: 9,\n\t\t},\n\t\tisDragging: {\n\t\t\tbackground: theme.palette.action.hover,\n\t\t\topacity: 0.5,\n\t\t\tcursor: 'grabbing',\n\t\t\t'& $content, & $title': {\n\t\t\t\tvisibility: 'hidden',\n\t\t\t},\n\t\t\t'& $dragHandle': {\n\t\t\t\tcursor: 'grabbing',\n\t\t\t},\n\t\t},\n\t\tdragHandle: {\n\t\t\tmarginRight: 8,\n\t\t\tcursor: 'grab',\n\t\t},\n\t\ttitleText: {},\n\t\tstuck: {},\n\t\tsearchable: {\n\t\t\t'&$content': {\n\t\t\t\tpadding: theme.spacing(1, 3, 2, 1.5),\n\t\t\t},\n\t\t},\n\t});\n\nexport interface SortableAttributeSetComponentProps\n\textends Omit {\n\tdisableSort?: boolean;\n\ttitle?: string;\n}\n\nexport const SortableAttributeSetComponent = ({\n\tclasses,\n\tdisableSort,\n\ttitle,\n\t...props\n}: WithStyles & SortableAttributeSetComponentProps) => {\n\tconst sortable = useSortable({id: props.id});\n\tconst ref = useRef(null);\n\tconst stickyTargetRef = useRef(null);\n\tconst sentinelTopRef = useRef(null);\n\tconst sentinelBottomRef = useRef(null);\n\tconst [stuck, setStuck] = useState(false);\n\n\tconst style = {\n\t\ttransform: CSS.Translate.toString(sortable.transform),\n\t\ttransition: sortable.transition || undefined,\n\t};\n\n\tconst bottomStuckRef = useRef(false);\n\tconst topStuckRef = useRef(false);\n\tconst stickyChange = useCallback((stuck: any, target: any) => {\n\t\tif (target === 'bottom') bottomStuckRef.current = stuck;\n\t\tif (target === 'top') topStuckRef.current = stuck;\n\t\tsetStuck(bottomStuckRef.current && topStuckRef.current);\n\t}, []);\n\n\tuseEffect(() => {\n\t\tconst scrollContainer = getScrollparent(ref.current as HTMLDivElement);\n\t\tif (\n\t\t\t!scrollContainer ||\n\t\t\t!sentinelBottomRef.current ||\n\t\t\t!sentinelTopRef.current\n\t\t)\n\t\t\treturn;\n\t\tconst footerObserver = new IntersectionObserver(\n\t\t\t([record]) => {\n\t\t\t\tconst targetInfo = record.boundingClientRect;\n\t\t\t\tconst rootBoundsInfo = record.rootBounds;\n\t\t\t\tconst ratio = record.intersectionRatio;\n\t\t\t\tif (!rootBoundsInfo) return;\n\n\t\t\t\tif (targetInfo.bottom > rootBoundsInfo.top && ratio === 1) {\n\t\t\t\t\tstickyChange(true, 'bottom');\n\t\t\t\t} else if (\n\t\t\t\t\ttargetInfo.top < rootBoundsInfo.top &&\n\t\t\t\t\ttargetInfo.bottom < rootBoundsInfo.bottom\n\t\t\t\t) {\n\t\t\t\t\tstickyChange(false, 'bottom');\n\t\t\t\t}\n\t\t\t},\n\t\t\t{threshold: [1], root: scrollContainer},\n\t\t);\n\t\tfooterObserver.observe(sentinelBottomRef.current as Element);\n\n\t\tconst headerObserver = new IntersectionObserver(\n\t\t\t([record]) => {\n\t\t\t\tconst targetInfo = record.boundingClientRect;\n\t\t\t\tconst rootBoundsInfo = record.rootBounds;\n\t\t\t\tif (!rootBoundsInfo) return;\n\n\t\t\t\tif (targetInfo.bottom < rootBoundsInfo.top) {\n\t\t\t\t\tstickyChange(true, 'top');\n\t\t\t\t}\n\t\t\t\tif (\n\t\t\t\t\ttargetInfo.bottom >= rootBoundsInfo.top &&\n\t\t\t\t\ttargetInfo.bottom < rootBoundsInfo.bottom\n\t\t\t\t) {\n\t\t\t\t\tstickyChange(false, 'top');\n\t\t\t\t}\n\t\t\t},\n\t\t\t{threshold: [0], root: scrollContainer},\n\t\t);\n\t\theaderObserver.observe(sentinelTopRef.current as Element);\n\n\t\treturn () => {\n\t\t\tfooterObserver.disconnect();\n\t\t\theaderObserver.disconnect();\n\t\t};\n\t}, []);\n\n\tif (title == null) return null;\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t
\n\t\t\t\t\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName={clsx(classes.content, {\n\t\t\t\t\t[classes.searchable]: props.onSearch != null,\n\t\t\t\t})}\n\t\t\t\tref={ref}\n\t\t\t>\n\t\t\t\t<LegacyAttributeSet {...props} />\n\t\t\t</div>\n\t\t\t<div\n\t\t\t\tclassName={clsx(classes.stickySentinel, classes.stickySentinel_bottom)}\n\t\t\t\tref={sentinelBottomRef}\n\t\t\t/>\n\t\t</div>\n\t);\n};\n\nexport const SortableAttributeSet = withStyles(styles)(\n\tSortableAttributeSetComponent as any,\n);\nexport default SortableAttributeSet;\n","import React, {useCallback, useState} from 'react';\nimport {createPortal} from 'react-dom';\nimport clsx from 'clsx';\nimport {i18n} from '@netx/core/i18n';\nimport {\n\tDndContext,\n\ttype DragEndEvent,\n\tDragOverlay,\n\ttype DragStartEvent,\n\tclosestCenter,\n\tKeyboardSensor,\n\tPointerSensor,\n\tTouchSensor,\n\tuseSensor,\n\tuseSensors,\n} from '@dnd-kit/core';\nimport {\n\tarrayMove,\n\tSortableContext,\n\tsortableKeyboardCoordinates,\n\tverticalListSortingStrategy,\n\trectSortingStrategy,\n} from '@dnd-kit/sortable';\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport {EmptyStateFallbackMessage} from '@netx/core-components/EmptyStateFallbackMessage';\nimport type {Theme} from '@netx/core-components/Theme';\nimport SortableSetComponent, {\n\ttype SortableAttributeSetComponentProps,\n} from '../SortableSet';\nimport {IAttributeSet} from '../../types';\nimport type {AttributeSetId, AttributeSetTemplates} from '../../types';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tdisplay: 'flex',\n\t\t\tposition: 'relative',\n\t\t\toverflow: 'auto',\n\t\t\tmarginTop: theme.spacing(2),\n\t\t\tpadding: '0 16px',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexWrap: 'nowrap',\n\t\t\tborder: `1px solid transparent`,\n\t\t\t'&:not($hasMultipleItems), &$list': {\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t'& $item, & .sortable-set': {\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t\twidth: '100%',\n\t\t\t\t\tmarginBottom: 16,\n\t\t\t\t},\n\t\t\t},\n\t\t\t'&$list $itemWrapper': {\n\t\t\t\tflexDirection: 'column',\n\t\t\t\tflexFlow: 'initial',\n\t\t\t},\n\t\t\t'&:not($list)$hasMultipleItems': {\n\t\t\t\t'& $item, & .sortable-set': {\n\t\t\t\t\tflex: '0 0 auto',\n\t\t\t\t\twidth: 'calc(50% - 9px)',\n\t\t\t\t\tmarginRight: 16,\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\titem: {\n\t\t\tflex: '0 0 auto',\n\t\t\twidth: 'calc(50% - 9px)',\n\t\t},\n\t\titemWrapper: {\n\t\t\talignItems: 'flex-start',\n\t\t\tdisplay: 'flex',\n\t\t\tposition: 'relative',\n\t\t\tflex: '1 1 auto',\n\t\t\tflexWrap: 'nowrap',\n\t\t\tmaxWidth: '100%',\n\t\t},\n\t\thasMultipleItems: {},\n\t\tlist: {},\n\t\tcolumn: {},\n\t\tdragOverlay: {\n\t\t\tcursor: 'grabbing',\n\t\t\tborderRadius: 4,\n\t\t\tboxShadow:\n\t\t\t\ttheme.palette.mode === 'light'\n\t\t\t\t\t? `-1px 0 15px 0 rgba(34, 33, 81, 0.01), 0px 15px 15px 0 rgba(34, 33, 81, 0.25)`\n\t\t\t\t\t: `-1px 0 15px 0 rgba(0, 0, 0, 0.01), 0px 15px 15px 0 rgba(0, 0, 0, 0.25)`,\n\t\t},\n\t});\n\nexport interface SortableAttributeSetsProps\n\textends Omit<\n\t\tSortableAttributeSetComponentProps,\n\t\t'attributes' | 'id' | 'title'\n\t> {\n\tids: AttributeSetId[];\n\tattributeTemplates: AttributeSetTemplates;\n\tsets: IAttributeSet[];\n\torderUpdated(ids: AttributeSetId[]): void;\n\tlayout?: string;\n\tenforce?: string[];\n\tsetsLoaded?: AttributeSetId[];\n\tinputForm: any;\n}\n\nconst SortableAttributeSetsComponent = ({\n\tclasses,\n\tenforce,\n\tids,\n\tattributeTemplates,\n\tsets,\n\tsetsLoaded,\n\tlayout = 'list',\n\tloading,\n\torderUpdated,\n\t...props\n}: WithStyles<typeof styles> & SortableAttributeSetsProps) => {\n\tconst [activeId, setActiveId] = useState<string | null>(null);\n\n\tconst sensors = useSensors(\n\t\tuseSensor(PointerSensor),\n\t\tuseSensor(KeyboardSensor, {\n\t\t\tcoordinateGetter: sortableKeyboardCoordinates,\n\t\t}),\n\t\tuseSensor(TouchSensor),\n\t);\n\n\tconst handleDragEnd = useCallback(\n\t\t({active, over}: DragEndEvent) => {\n\t\t\tsetActiveId(null);\n\t\t\tif (over && active.id !== over.id) {\n\t\t\t\tconst oldIndex = ids.indexOf(active.id as any);\n\t\t\t\tconst newIndex = ids.indexOf(over.id as any);\n\t\t\t\torderUpdated(arrayMove(ids, oldIndex, newIndex));\n\t\t\t}\n\t\t},\n\t\t[ids],\n\t);\n\n\tconst handleDragStart = useCallback(({active}: DragStartEvent) => {\n\t\tsetActiveId(active.id as any);\n\t}, []);\n\n\tif (!loading && (!sets.length || !ids.length)) {\n\t\treturn (\n\t\t\t<EmptyStateFallbackMessage\n\t\t\t\ttitle={i18n.t('i18n.noAttributeSetsSelected')}\n\t\t\t/>\n\t\t);\n\t}\n\n\treturn (\n\t\t<div\n\t\t\tclassName={clsx(classes.root, {\n\t\t\t\t[classes.hasMultipleItems]: ids.length > 1,\n\t\t\t\t// @ts-ignore\n\t\t\t\t[classes[layout]]: true,\n\t\t\t})}\n\t\t>\n\t\t\t<DndContext\n\t\t\t\tautoScroll\n\t\t\t\tsensors={sensors}\n\t\t\t\tcollisionDetection={closestCenter}\n\t\t\t\tonDragCancel={() => setActiveId(null)}\n\t\t\t\tonDragEnd={handleDragEnd}\n\t\t\t\tonDragStart={handleDragStart}\n\t\t\t\t// layoutMeasuring={{strategy: LayoutMeasuringStrategy.WhileDragging}}\n\t\t\t>\n\t\t\t\t<SortableContext\n\t\t\t\t\titems={ids}\n\t\t\t\t\tstrategy={\n\t\t\t\t\t\tlayout === 'list'\n\t\t\t\t\t\t\t? verticalListSortingStrategy\n\t\t\t\t\t\t\t: rectSortingStrategy\n\t\t\t\t\t}\n\t\t\t\t>\n\t\t\t\t\t<div className={classes.itemWrapper}>\n\t\t\t\t\t\t{ids.map((id, index) => (\n\t\t\t\t\t\t\t<SortableSetComponent\n\t\t\t\t\t\t\t\tkey={id}\n\t\t\t\t\t\t\t\tdisableSort={enforce && enforce.includes(id)}\n\t\t\t\t\t\t\t\ttitle={sets.find((set) => set.id === id)?.name}\n\t\t\t\t\t\t\t\tattributes={attributeTemplates[id]}\n\t\t\t\t\t\t\t\tid={id}\n\t\t\t\t\t\t\t\t{...props}\n\t\t\t\t\t\t\t\tloading={!setsLoaded?.includes(id)}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\t\t\t\t</SortableContext>\n\n\t\t\t\t{createPortal(\n\t\t\t\t\t<DragOverlay zIndex={9999}>\n\t\t\t\t\t\t{activeId != null ? (\n\t\t\t\t\t\t\t<div className={classes.dragOverlay}>\n\t\t\t\t\t\t\t\t<SortableSetComponent\n\t\t\t\t\t\t\t\t\ttitle={sets.find((set) => set.id === activeId)?.name}\n\t\t\t\t\t\t\t\t\t{...(props as SortableAttributeSetComponentProps)}\n\t\t\t\t\t\t\t\t\tattributes={attributeTemplates[activeId]}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</DragOverlay>,\n\t\t\t\t\tdocument.body,\n\t\t\t\t)}\n\t\t\t</DndContext>\n\t\t</div>\n\t);\n};\n\nexport const SortableAttributeSets = withStyles(styles)(\n\tSortableAttributeSetsComponent as any,\n);\nexport default SortableAttributeSets;\n","import React, {useMemo, useEffect} from 'react';\nimport type {SetOptional} from 'type-fest';\nimport {i18n} from '@netx/core/i18n';\nimport {getAttributeLabelFromId} from '@netx/core-asset/components/Attributes/Attribute/utils';\nimport {splitEventHandler} from '@netx/core-next/utils';\nimport {useEvent} from '@netx/core-components/hooks/useEvent';\nimport {\n\tSelectField,\n\ttype SelectFieldProps,\n} from '@netx/core-components/SelectField';\nimport type {InputForm} from '@netx/core-components/Form/typings';\nimport type {AttributeTemplate} from '../../types';\n\nexport interface AttributeDropdownProps<\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n> extends SetOptional<\n\t\tSelectFieldProps<Option, Multiple, DisableClearable, false>,\n\t\t'name' | 'options'\n\t> {\n\tattributes: AttributeTemplate[];\n\tselected?: number[];\n\tform?: InputForm;\n}\n\nconst getOptionSelected = (option: Option, value: Option) =>\n\toption?.id === value?.id;\n\nconst getOptionLabel = (option: Option) => option.value;\n\ntype Option = {\n\tvalue: string;\n\tid: number;\n};\n\nconst DEFAULT_SELECTED: number[] = [];\n\nexport const AttributeDropdownPrimitive = <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\t{\n\t\tattributes,\n\t\tform,\n\t\tname = 'attribute-select',\n\t\tselected = DEFAULT_SELECTED,\n\t\tfilterOptions,\n\t\tonChange,\n\t\t...props\n\t}: AttributeDropdownProps<Multiple, DisableClearable>,\n\tref: any,\n) => {\n\tconst options = useMemo<Option[]>(() => {\n\t\treturn attributes\n\t\t\t.filter(({attributeid}) => !selected.includes(attributeid))\n\t\t\t.map(({attributeid}) => ({\n\t\t\t\tvalue: getAttributeLabelFromId(attributeid),\n\t\t\t\tid: attributeid,\n\t\t\t}));\n\t}, [attributes, selected]);\n\n\tuseEffect(() => {\n\t\tif (!form) return;\n\t\tform.register(name);\n\t\treturn () => {\n\t\t\tform.unregister(name);\n\t\t};\n\t}, [name]);\n\n\tconst handleChange = useEvent(\n\t\tsplitEventHandler(onChange, (event, value) => {\n\t\t\tform?.setValue(name, value);\n\t\t}),\n\t);\n\n\treturn (\n\t\t<SelectField<Option, Multiple, DisableClearable>\n\t\t\tref={ref}\n\t\t\tlabel={i18n.t('i18n.attributes')}\n\t\t\t{...props}\n\t\t\tname={name}\n\t\t\toptions={options}\n\t\t\tgetOptionLabel={getOptionLabel}\n\t\t\tfilterOptions={(options, state) => {\n\t\t\t\tconst inputValue = state.inputValue.toLowerCase();\n\t\t\t\tconst filteredOptions =\n\t\t\t\t\tinputValue === ''\n\t\t\t\t\t\t? options\n\t\t\t\t\t\t: options.filter((option) =>\n\t\t\t\t\t\t\t\toption.value.toLowerCase().includes(inputValue),\n\t\t\t\t\t\t );\n\n\t\t\t\treturn filterOptions\n\t\t\t\t\t? filterOptions(filteredOptions, state)\n\t\t\t\t\t: filteredOptions;\n\t\t\t}}\n\t\t\tisOptionEqualToValue={getOptionSelected}\n\t\t\tonChange={handleChange}\n\t\t\tInputProps={{\n\t\t\t\t...props.InputProps,\n\t\t\t\tInputProps: {\n\t\t\t\t\t...props.InputProps?.InputProps,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcursor: props.disabled ? 'not-allowed' : 'pointer',\n\t\t\t\t\t\t...props.InputProps?.InputProps?.style,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tinputProps: {\n\t\t\t\t\t'aria-label': 'attribute select field',\n\t\t\t\t\tplaceholder: i18n.t('i18n.pleaseSelect'),\n\t\t\t\t\t...props.InputProps?.inputProps,\n\t\t\t\t\tstyle: {\n\t\t\t\t\t\tcursor: props.disabled ? 'not-allowed' : 'pointer',\n\t\t\t\t\t\t...props.InputProps?.inputProps?.style,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const AttributeDropdown = React.forwardRef(\n\tAttributeDropdownPrimitive,\n) as <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\tprops: AttributeDropdownProps<Multiple, DisableClearable>,\n) => JSX.Element;\n\nexport default AttributeDropdown;\n","import React from 'react';\nimport {compareProps} from '@netx/core-components/util';\nimport type {AttributeAttributes} from '@netx/core-asset/models/attribute';\nimport {\n\tReadOnlyMultiSelectField,\n\tReadOnlySelectField,\n} from '@netx/core-components/SelectField/components';\nimport {getURLFormattedText} from '@netx/core-components/Form';\nimport {ReadOnlyTextField} from '@netx/core-components/TextField';\nimport {AttributeType, ATTRIBUTE_MULTIPLE_VALUE_TYPES} from '../../constants';\nimport formatters from '../../formatters';\nimport {SYSTEM_ATTRIBUTE_LABELS} from '../../locales';\n\nexport interface ReadOnlyAttributeProps {\n\tattrData: AttributeAttributes;\n\tdisabled?: boolean;\n\thideLabel?: boolean;\n\tloadingValue?: boolean;\n\tlimitHeightToContainer?: boolean;\n\tmultipleValues?: boolean;\n\tvalue?: any;\n}\n\nconst getFormattedValue = (attrData: AttributeAttributes, value: any) => {\n\tif (ATTRIBUTE_MULTIPLE_VALUE_TYPES.includes(attrData.type)) return value;\n\n\t// @ts-ignore\n\tconst formattedValue = formatters[attrData.type || 1](value, attrData);\n\tif (\n\t\tformattedValue == null ||\n\t\tformattedValue === '' ||\n\t\ttypeof formattedValue !== 'string'\n\t)\n\t\treturn formattedValue;\n\n\treturn getURLFormattedText(formattedValue);\n};\n\nconst ReadOnlyAttributeComponent = ({\n\tattrData,\n\thideLabel,\n\tvalue,\n\t...props\n}: ReadOnlyAttributeProps) => {\n\tconst name = attrData.system\n\t\t? SYSTEM_ATTRIBUTE_LABELS[attrData.attributeid]\n\t\t: attrData.name;\n\n\tconst sendProps = {\n\t\tlabel: hideLabel ? '' : name,\n\t\tvalue: getFormattedValue(attrData, value),\n\t\t...props,\n\t};\n\n\t// multiselect, tag, tag(vocab), semantic\n\tif (ATTRIBUTE_MULTIPLE_VALUE_TYPES.includes(attrData.type)) {\n\t\treturn <ReadOnlyMultiSelectField {...sendProps} />;\n\t}\n\t// select\n\tif ([AttributeType.SELECT].includes(attrData.type)) {\n\t\treturn <ReadOnlySelectField {...sendProps} />;\n\t}\n\t// text, textarea, number, data\n\tif (\n\t\t[\n\t\t\tAttributeType.TEXT,\n\t\t\tAttributeType.TEXTAREA,\n\t\t\tAttributeType.NUMBER,\n\t\t\tAttributeType.DATE,\n\t\t].includes(attrData.type)\n\t) {\n\t\treturn <ReadOnlyTextField {...sendProps} />;\n\t}\n\n\treturn null;\n};\n\nexport const ReadOnlyAttribute = React.memo(\n\tReadOnlyAttributeComponent,\n\tcompareProps(),\n);\nexport default ReadOnlyAttribute;\n","import React from 'react';\n\nimport Dropdown, {AttributeDropdownProps} from '../../components/Dropdown';\nimport {useAttributeProvider} from '../../context';\nimport type {AttributeObjectType} from '../../types';\n\nexport type AttributeDropdownContainerProps<\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n> = Omit<\n\tAttributeDropdownProps<Multiple, DisableClearable>,\n\t'attributes' | 'options'\n> & {\n\tomitReadOnly?: boolean;\n\tomitSystem?: boolean;\n\tobjectType?: AttributeObjectType;\n};\n\nexport const AttributeDropdownContainerPrimitive = <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\t{\n\t\tomitReadOnly,\n\t\tomitSystem,\n\t\tobjectType,\n\t\t...props\n\t}: AttributeDropdownContainerProps<Multiple, DisableClearable>,\n\tref: any,\n) => {\n\tconst attributeProvider = useAttributeProvider();\n\treturn (\n\t\t<Dropdown<Multiple, DisableClearable>\n\t\t\tref={ref}\n\t\t\tattributes={attributeProvider.getAll({\n\t\t\t\tomitSystem,\n\t\t\t\tomitReadOnly,\n\t\t\t\tobjectType,\n\t\t\t})}\n\t\t\t{...props}\n\t\t/>\n\t);\n};\n\nexport const AttributeDropdownContainer = React.forwardRef(\n\tAttributeDropdownContainerPrimitive,\n) as <\n\tMultiple extends boolean = false,\n\tDisableClearable extends boolean = false,\n>(\n\tprops: AttributeDropdownContainerProps<Multiple, DisableClearable>,\n\tref: any,\n) => JSX.Element;\n\nexport default AttributeDropdownContainer;\n","import React from 'react';\n\nimport TableBody, {type TableBodyProps} from './TableBody';\nimport SortableTableBody, {type SortableProps} from './SortableTableBody';\n\nexport {TableBody, SortableTableBody};\nexport * from './TableBody';\nexport * from './SortableTableBody';\n\nexport default function ({onReorder, ...props}: any) {\n\tif (onReorder)\n\t\treturn (\n\t\t\t<SortableTableBody {...(props as SortableProps)} onReorder={onReorder} />\n\t\t);\n\treturn <TableBody {...(props as TableBodyProps)} />;\n}\n","import React from 'react';\n\nimport TableColumn, {TableColumnProps} from './TableColumn';\nimport ResizableTableColumn, {\n\tResizableTableColumnProps,\n} from './ResizableTableColumn';\n\nexport {TableColumn, ResizableTableColumn};\nexport * from './TableColumn';\nexport * from './ResizableTableColumn';\n\nexport interface TableColumnPropsComb\n\textends Omit<TableColumnProps, 'onResize'>,\n\t\tResizableTableColumnProps {\n\tresizable?: boolean;\n}\n\nexport default function ({\n\tresizable,\n\t...props\n}: React.PropsWithChildren<TableColumnPropsComb>) {\n\tif (resizable) return <ResizableTableColumn {...(props as any)} />; // ResizableTableColumnProps)} />;\n\treturn <TableColumn {...(props as any)} />; // TableColumnProps)} />;\n}\n","import React from 'react';\n\nexport * from './TableRow';\n\nimport SortableRow, {SortableRowProps} from './SortableTableRow';\nimport TableRow, {TableRowProps as BaseRowProps} from './TableRow';\n\nexport interface TableRowProps extends BaseRowProps, SortableRowProps {\n\treorderable?: boolean;\n\tsortableRef?: any;\n}\n\nexport default function ({reorderable, ...props}: TableRowProps) {\n\tif (reorderable) return <SortableRow {...(props as SortableRowProps)} />;\n\treturn <TableRow {...props} />;\n}\n"],"names":["withStyles","theme","createStyles","dropdownIcon","marginLeft","activeIcon","width","color","palette","secondary","main","position","right","top","bottom","display","alignItems","justifyContent","menu","minHeight","backgroundColor","action","hover","permissionModeItem","paddingRight","PermissionItemMenu","classes","value","onChange","onClose","onOpen","onRemove","open","ButtonProps","MenuProps","anchorEl","setAnchorEl","useState","internalButtonRef","useSharedRef","ref","useEffect","current","useWhenChangedEffect","useCallback","handleOpenClick","event","currentTarget","handleClose","selectPermission","perm","handleRemove","modeEntries","Object","entries","PERMISSION_MODE","modeCount","length","React","Button","_extends","onClick","variant","PERMISSION_TYPE_LABEL","PERMISSION_TYPE","className","FontAwesomeIcon","icon","faCaretDown","Menu","id","Boolean","map","key","mode","index","MenuItem","selected","divider","dense","faCheck","i18n","styles","spacing","root","borderRadius","outline","paddingLeft","listItemAction","flex","_ref","permission","PermissionItemMenuProps","PermissionItemMenuComponent","props","_objectWithoutProperties","_excluded","handleChange","ListItem","groupName","write","clsx","component","groupId","toString","ListItemAvatar","ColoredAvatar","label","ListItemText","primaryTypographyProps","noWrap","primary","role","VirtualizedPermissionListItem","data","style","rows","viewportWidth","handleClick","PermissionListItem","_objectSpread","Skeleton","skeleton","height","left","VirtualizedPermissionsList","ListItemComponent","ListItemComponentProps","dataReady","total","VirtualizedList","useIsScrolling","innerElementType","EmptyStateFallbackMessage","PermissionsIcon","title","PERMISSION_MESSAGES","VirtualizedListTrapFocusRoot","styled","name","slot","flexDirection","overflow","margin","PermissionsPrimitive","virtualListRef","addedAtIndex","itemProvider","useVirtualizedListArrowTabTrapProvider","internalVirtualListRef","rootRef","onFocusCapture","onBlur","tabIndex","activeDescendant","onScrollIndexUpdate","activeIndex","state","focusTrapActive","active","onInteracting","onItemInteracting","onItemClick","_ref2","_excluded2","VirtualizedListArrowTabTrapProvider","activeDescendantLabel","pageSize","permissionListWrapper","container","input","padding","containerRef","onAdd","groupRef","useRef","stageHeight","setStageHeight","window","innerHeight","listHeight","setListHeight","maxHeight","setMaxHeight","setAddedAtIndex","onResize","addEventListener","removeEventListener","_containerRef$current","availableHeight","clientHeight","minMeight","Math","min","handleAdd","group","read","handleFilterGroups","groups","filter","find","d","GroupAutoList","clearOnClose","disableClearable","filterOptions","multiple","undefined","Permissions","PermissionsDialogRoot","Dialog","dialogClasses","_props$attributeTempl","DialogProps","onSubmit","backdropRef","confirmLabel","disableContentPadding","fullWidth","faUsersMedical","isValid","maxWidth","preventBackdropClose","requiresChanges","secondaryTitle","attributeTemplate","PERMISSION_TITLES","BackdropProps","PermissionFormBody","queryClient","QueryClient","reactQueryGetAttributePermissions","async","queryParams","params","queryKey","getAttributePermissions","StoreContext","createContext","AttributePermissionProvider","children","templateId","dispatch","useReducer","reducer","initialState","attributesProvider","useAttributeProvider","dataRef","type","ACTIONS","attributePermissionsMutation","useMutation","mutationFn","setAttributePermissions","onError","error","console","onSuccess","attributePermissions","attributePermissionsQuery","useQuery","queryFn","enabled","refetchOnReconnect","refetchOnWindowFocus","retry","_attributePermissions","dataUpdatedAt","edit","setPermissionEdit","endEdit","getAttributeTemplate","getById","save","mutateAsync","groupAttributePermissions","dispatchActions","useMemo","actions","useLayoutEffect","saving","status","loading","isLoading","isFetching","Provider","QueryClientProvider","client","isItemLoaded","PermissionsContainer","_DialogProps$Transiti","useAttributePermissionProvider","context","useContext","Error","dialogReady","setDialogReady","handlePermissionItemChange","newPerm","updatePermission","handlePermissionItemRemove","deletePermission","resetPermissions","handleSubmit","preventDefault","stopPropagation","then","PermissionsDialog","hidePager","addPermission","ready","loadMoreItems","hasChanged","unsavedChanges","TransitionProps","onEntered","splitEventHandler","node","isAppearing","AttributeProvider","AttributePermissionsProvider","SetSelectorPrimitive","attributeSetSelection","useAttributeSetSelectionProvider","attributeSets","attributeSetCtx","getSelectable","handleSelectionChange","useConstCallback","reason","details","pureValue","Array","isArray","val","join","setSelected","ourValue","BaseSetSelector","enforceAttributeSets","enforce","SetSelector","background","paper","border","custom","borderTop","borderBottom","content","stickySentinel","visibility","stickySentinel_top","stickySentinel_bottom","mixins","positionSticky","zIndex","isDragging","opacity","cursor","dragHandle","marginRight","titleText","stuck","searchable","disableSort","sortable","useSortable","stickyTargetRef","sentinelTopRef","sentinelBottomRef","setStuck","transform","CSS","transition","bottomStuckRef","topStuckRef","stickyChange","target","scrollContainer","getScrollparent","footerObserver","IntersectionObserver","record","targetInfo","boundingClientRect","rootBoundsInfo","rootBounds","ratio","intersectionRatio","threshold","observe","headerObserver","disconnect","isSorting","setNodeRef","IconButton","listeners","attributes","EqualsIcon","disabled","Title","PrimaryTitleProps","onSearch","LegacyAttributeSet","marginTop","flexWrap","marginBottom","flexFlow","item","itemWrapper","hasMultipleItems","list","column","dragOverlay","boxShadow","_sets$find2","ids","attributeTemplates","sets","setsLoaded","layout","orderUpdated","activeId","setActiveId","sensors","useSensors","useSensor","PointerSensor","KeyboardSensor","coordinateGetter","sortableKeyboardCoordinates","TouchSensor","handleDragEnd","over","oldIndex","indexOf","newIndex","arrayMove","handleDragStart","DndContext","autoScroll","collisionDetection","closestCenter","onDragCancel","onDragEnd","onDragStart","SortableContext","items","strategy","verticalListSortingStrategy","rectSortingStrategy","_sets$find","SortableSetComponent","includes","set","createPortal","DragOverlay","document","body","getOptionSelected","option","getOptionLabel","DEFAULT_SELECTED","AttributeDropdownPrimitive","_props$InputProps","_props$InputProps2","_props$InputProps2$In","_props$InputProps3","_props$InputProps4","_props$InputProps4$in","form","options","attributeid","getAttributeLabelFromId","register","unregister","useEvent","setValue","SelectField","inputValue","toLowerCase","filteredOptions","isOptionEqualToValue","InputProps","inputProps","placeholder","getFormattedValue","attrData","ATTRIBUTE_MULTIPLE_VALUE_TYPES","formattedValue","formatters","getURLFormattedText","ReadOnlyAttributeComponent","hideLabel","system","SYSTEM_ATTRIBUTE_LABELS","sendProps","ReadOnlyMultiSelectField","AttributeType","ReadOnlySelectField","ReadOnlyTextField","ReadOnlyAttribute","compareProps","AttributeDropdownContainerPrimitive","omitReadOnly","omitSystem","objectType","attributeProvider","Dropdown","getAll","AttributeDropdownContainer","onReorder","SortableTableBody","TableBody","resizable","ResizableTableColumn","TableColumn","reorderable","SortableRow","TableRow"],"sourceRoot":""}