{"version":3,"file":"37872e0cbdd665edda14cdbf.js?3.6.14.7428b935c.1723600572441","mappings":"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","sources":["webpack://mono-repo/./packages/core-asset/src/components/AssetContextPanel/containers/AssetContextPanel/index.tsx","webpack://mono-repo/./packages/core-asset/src/components/AssetPreview/components/AssetPreviewSkeleton/index.tsx","webpack://mono-repo/./packages/core-asset/src/components/AssetPreview/index.tsx","webpack://mono-repo/./packages/core-asset/src/components/Attributes/Selector/components/Selector/index.tsx","webpack://mono-repo/./packages/core-attribute-asset/src/context/index.tsx","webpack://mono-repo/./packages/core-attribute-asset/src/containers/Editor/index.tsx","webpack://mono-repo/./packages/core-attribute-smart-labels/src/components/SmartLabels/index.tsx","webpack://mono-repo/./packages/core-attribute-smart-labels/src/components/SmartLabelsField/index.tsx","webpack://mono-repo/./packages/core-attribute-smart-labels/src/components/SmartLabelsForm/index.tsx","webpack://mono-repo/./packages/core-attribute-smart-labels/src/containers/SmartLabels/index.tsx","webpack://mono-repo/./packages/core-components/VirtualizedGallery/components/VirtualizedCell/index.tsx","webpack://mono-repo/./packages/core-components/VirtualizedGallery/components/VirtualizedGallery/index.tsx","webpack://mono-repo/./packages/core-components/VirtualizedVariableList/index.tsx"],"sourcesContent":["// TODO: this component is garbage and needs reqorking / removing when we tackle the asset detail refactor\nimport React from 'react';\nimport {useCallback, useEffect, useMemo, useReducer, useRef} from 'react';\nimport deepmerge from 'deepmerge';\n\nimport {i18n} from '@netx/core/i18n';\nimport {type IAsset} from '@netx/core-asset-next/schema';\nimport {\n\tAssetEditorAccordion,\n\tSmartLabelsAccordion,\n} from '../../components/Accordions';\n\nimport {ACTIONS, ATTRIBUTES_PANEL, SMART_LABELS_PANEL} from '../../constants';\nimport {openPref, panelPref, readOnlyPref, widthPref} from '../../prefs';\nimport {initialState, reducer} from '../../store';\nimport {PanelNames} from '../../types';\nimport {assetIsEditable} from '../../../../enablers';\n\nimport {\n\tenabled as smartLabelsEnabled,\n\tsupportsAsset as smartLabelsSupportsAsset,\n} from '@netx/core-attribute-smart-labels/enablers';\n\nimport {ConfirmationServiceProvider} from '@netx/core-components/Confirmation';\nimport {Drawer} from '@netx/core-components/Drawer';\nimport {useUpdateEffect} from '@netx/core-components/hooks/useUpdateEffect';\nimport {IconButtonToggle} from '@netx/core-components/IconButtonToggle';\n\nimport {styled, type Theme} from '@netx/core-components/Theme';\nimport {faPencil as PencilIcon} from '@fortawesome/pro-regular-svg-icons';\n\nconst AssetContextPanelContainerRoot = styled('div')(({theme}) => ({\n\t...theme.mixins.scrollable,\n\t'& .ScrollBorder-scrollBorder': {\n\t\t// This is a hack to get the scroll border to show up\n\t\t// since we are hacking our way into a scroll / sticky position deal here\n\t\t// will fix when we tackle asset detail\n\t\tdisplay: 'none',\n\t},\n}));\n\nexport interface ContextPanelProps {\n\tassetData: IAsset;\n\toverflowParent: HTMLElement;\n\tonChange?: (hasChanged: boolean) => void;\n\tpreventEdits?: boolean;\n\trefreshAt?: number;\n\tonUpdate?: (data: IAsset) => void;\n}\n\nconst ContextPanel = ({\n\tassetData,\n\tonChange,\n\toverflowParent,\n\tpreventEdits,\n\trefreshAt,\n}: ContextPanelProps) => {\n\tconst [state, dispatch] = useReducer(reducer, {\n\t\t...initialState,\n\t\texpandedPanel: panelPref.get() || '',\n\t\tisOpen: openPref.get(),\n\t\tisReadOnly: readOnlyPref.get(),\n\t});\n\n\tconst canEdit = state.hasEditablePanels && !preventEdits;\n\tconst panelsAreReadOnly = !canEdit || state.isReadOnly;\n\n\tconst lastHasUnsavedPanelsRef = useRef(state.hasUnsavedPanels);\n\tuseEffect(() => {\n\t\tif (lastHasUnsavedPanelsRef.current === state.hasUnsavedPanels) return;\n\t\tlastHasUnsavedPanelsRef.current = state.hasUnsavedPanels;\n\t\tonChange?.(state.hasUnsavedPanels);\n\t});\n\n\tconst reset = useCallback(() => dispatch({type: ACTIONS.RESET_FORM}), []);\n\n\tuseUpdateEffect(() => {\n\t\treset();\n\t}, [refreshAt]);\n\n\tuseEffect(() => {\n\t\tconst editable = assetIsEditable(assetData);\n\t\tdispatch({\n\t\t\ttype: ACTIONS.ASSET_TOGGLE_ENABLED,\n\t\t\tenabled: editable,\n\t\t});\n\t\tdispatch({\n\t\t\ttype: ACTIONS.PANEL_EDITABLE_CHANGE,\n\t\t\tdata: {\n\t\t\t\tpanel: SMART_LABELS_PANEL,\n\t\t\t\teditable:\n\t\t\t\t\teditable &&\n\t\t\t\t\tsmartLabelsEnabled() &&\n\t\t\t\t\tsmartLabelsSupportsAsset(assetData),\n\t\t\t},\n\t\t});\n\t\t!editable && reset();\n\t}, [assetData]);\n\n\tconst handleCollapseToggle = useCallback(\n\t\t(open: boolean) => dispatch({type: ACTIONS.OPEN_TOGGLE, open}),\n\t\t[],\n\t);\n\n\tconst handlePanelDataChange = useCallback(\n\t\t(panel: PanelNames) => (hasChanged: boolean, isValid: boolean) => {\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.PANEL_CHANGED,\n\t\t\t\tdata: {\n\t\t\t\t\tpanel,\n\t\t\t\t\tunsavedChanges: hasChanged,\n\t\t\t\t\tvalid: isValid,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePanelEditableUpdated = useCallback(\n\t\t(panel: PanelNames, when: boolean) => () => {\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.PANEL_EDITABLE_CHANGE,\n\t\t\t\tdata: {\n\t\t\t\t\tpanel: panel,\n\t\t\t\t\teditable: when,\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t\t[],\n\t);\n\n\tconst handlePanelExpandChange = useCallback(\n\t\t(panel: PanelNames) => (isExpanded: boolean) => {\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.PANEL_EXPANDED,\n\t\t\t\tpanelName: isExpanded ? panel : '',\n\t\t\t});\n\t\t\treturn true;\n\t\t},\n\t\t[],\n\t);\n\n\tconst handleReadOnlyToggle = useCallback(\n\t\t(event: React.MouseEvent, on: boolean) => {\n\t\t\tdispatch({type: ACTIONS.READ_ONLY_TOGGLE, readOnly: !on});\n\t\t\t!on && reset();\n\t\t},\n\t\t[],\n\t);\n\n\tconst getCommonPanelProps = (panelName: PanelNames) => ({\n\t\tassetData,\n\t\tformOptions: {\n\t\t\tonChange: handlePanelDataChange(panelName),\n\t\t},\n\t\tonEditable: handlePanelEditableUpdated(panelName, true),\n\t\tonUnEditable: handlePanelEditableUpdated(panelName, false),\n\t\treadOnly: panelsAreReadOnly,\n\t\trefreshAt: state.refreshAt,\n\t\tAccordionProps: {\n\t\t\tonExpandChange: handlePanelExpandChange(panelName),\n\t\t\texpanded: state.expandedPanel === panelName,\n\t\t\thasUnsavedChanges: state.unsavedPanels.includes(panelName),\n\t\t},\n\t});\n\n\treturn (\n\t\t\n\t\t\t\t\t{(canEdit && (\n\t\t\t\t\t\t\n\t\t\t\t\t)) ||\n\t\t\t\t\t\tnull}\n\t\t\t\t\n\t\t\t}\n\t\t>\n\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nimport {useTheme, ThemeProvider} from '@mui/styles';\nimport {baseTheme as NetxTheme} from '@netx/core-components';\n\nconst themeModifications = (theme: Theme) => {\n\treturn {\n\t\tprops: {\n\t\t\tMuiTextField: {\n\t\t\t\tsize: 'small',\n\t\t\t},\n\t\t},\n\t};\n};\n\nconst ThemedContextPanel = (props: any) => {\n\t// We want small inputs\n\tconst theme = useTheme>();\n\tconst modifiedTheme = useMemo(\n\t\t() => deepmerge(theme, themeModifications(theme)),\n\t\t[theme],\n\t);\n\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\nexport default ThemedContextPanel;\n","import React 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\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\tflex: '1 1 auto',\n\t\t\toverflow: 'hidden',\n\t\t\tminHeight: 0,\n\t\t\theight: '100%',\n\t\t\twidth: '100%',\n\t\t},\n\t});\n\nconst AssetPreviewSkeleton: React.FC> = ({\n\tclasses,\n}) => {\n\treturn ;\n};\n\nexport default withStyles(styles, {\n\tname: 'AssetPreviewSkeleton',\n})(AssetPreviewSkeleton);\n","import React from 'react';\n\nimport AssetPreviewComponent, {\n\ttype AssetPreviewProps,\n} from './components/AssetPreview';\nimport AssetPreviewSkeleton from './components/AssetPreviewSkeleton';\n\nexport const AssetPreview = ({loading, ...props}: AssetPreviewProps) => {\n\tif (loading) return ;\n\treturn ;\n};\n\nexport default AssetPreview;\n","import React from 'react';\nimport {\n\tAttributeSelector,\n\tAttributeSelectorItemWrapper,\n\tAttributeSelectorItemRenderProps,\n} from '@netx/core-attribute/components/AttributeSelector';\nimport {AttributeDropdownContainer} from '@netx/core-attribute/containers/Dropdown';\nimport {getAttributeLabelFromId} from '@netx/core-asset/components/Attributes/Attribute/utils';\nimport type {AttributeTemplate} from '@netx/core-attribute/types';\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\talignItems: 'baseline',\n\t\t\tdisplay: 'flex',\n\t\t\tflexDirection: 'column',\n\t\t\tminHeight: 0,\n\t\t\tpadding: theme.spacing(1, 0),\n\t\t\twidth: '100%',\n\t\t},\n\t\theader: {\n\t\t\talignItems: 'center',\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '0 0 auto',\n\t\t\tjustifyContent: 'space-between',\n\t\t\tminHeight: 48,\n\t\t\tpadding: theme.spacing(0.75, 2, 0, 2),\n\t\t\twidth: '100%',\n\t\t\t'& $chip': {\n\t\t\t\tflex: '0 0 auto',\n\t\t\t\tmarginLeft: theme.spacing(2),\n\t\t\t},\n\t\t\t[theme.breakpoints.down('xs')]: {\n\t\t\t\tflexDirection: 'column',\n\t\t\t\t'& $addButton, & $chip': {\n\t\t\t\t\twidth: '100%',\n\t\t\t\t},\n\t\t\t\t'& $addButton': {\n\t\t\t\t\tminHeight: 40,\n\t\t\t\t},\n\t\t\t\t'& $chip': {\n\t\t\t\t\tmarginLeft: 0,\n\t\t\t\t\tmarginTop: theme.spacing(2),\n\t\t\t\t},\n\t\t\t},\n\t\t},\n\t\taddButton: {},\n\t\tchip: {},\n\t\tselectorWrapper: {\n\t\t\twidth: '100%',\n\t\t\tpadding: theme.spacing(1, 0),\n\t\t},\n\t});\n\nexport interface SelectorProps {\n\tattributes: AttributeTemplate[];\n\tmax?: number;\n\tonChange?: (selected: number[]) => void;\n\tscrollNewItemsIntoView?: boolean;\n\tselected?: number[];\n\twithSetSelection?: boolean;\n}\n\nconst Selector: React.FC & SelectorProps> = ({\n\tclasses,\n\tmax = Infinity,\n\tonChange,\n\tscrollNewItemsIntoView,\n\tselected,\n\twithSetSelection,\n}) => {\n\treturn (\n\t\t {\n\t\t\t\treturn ;\n\t\t\t}}\n\t\t/>\n\t);\n};\n\nexport const SelectorItem = ({\n\tdisabled,\n\tselected,\n\tonChange,\n\t...props\n}: AttributeSelectorItemRenderProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\tdisableClearable\n\t\t\t\tdisabled={disabled}\n\t\t\t\tselected={selected}\n\t\t\t\tlabel={undefined}\n\t\t\t\tvalue={{\n\t\t\t\t\tid: props.attributeId,\n\t\t\t\t\tvalue: getAttributeLabelFromId(props.attributeId),\n\t\t\t\t}}\n\t\t\t\tonChange={(event, value) => {\n\t\t\t\t\tvalue && onChange(value?.id);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\n\t);\n};\n\nexport default withStyles(styles)(Selector);\n","import React, {\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tuseReducer,\n\tuseCallback,\n\tuseEffect,\n\tuseRef,\n} from 'react';\n\nimport {nanoid} from 'nanoid';\nimport {queryClient} from '@netx/core-next/lib';\n\nimport {\n\tuseMutation,\n\tuseQuery,\n\tQueryClient,\n\tQueryClientProvider,\n\ttype QueryObserverBaseResult,\n} from '@tanstack/react-query';\n\nimport {\n\tgetTemplatesEffectedByLookup,\n\tnormalizeValue,\n\tparseValue,\n} from '@netx/core-attribute/utils';\n\nimport reducer, {initialState, type State} from './reducer';\nimport actions from './actions';\nimport {\n\tgetAssetAttributes,\n\tGetAssetAttributesResult,\n\tGetAssetAttributesRequestOptions,\n\tsetAssetAttributes,\n\tSetAssetAttributesResult,\n\tSetAssetAttributesRequestOptions,\n\tQueryError,\n} from '../api';\n\nimport {ACTIONS} from './constants';\nimport type {AttributeData, SetAssetAttributeData} from '../types';\nimport {\n\tAttributeAction,\n\tAttributeTemplate,\n\tAttributeFormValues,\n\tAttributeId,\n\tuseAttributeProvider,\n} from '@netx/core-attribute';\n\nimport usePoll from '@netx/core/services/job/hooks/usePoll';\n\nimport {\n\tuseForm,\n\tgetInputFormObject,\n\tFormType,\n} from '@netx/core-components/Form';\nimport {useWhenChangedEffect} from '@netx/core-components/hooks';\nimport {useConstCallback} from '@netx/core-components/hooks/useEvent';\n\nexport type AssetAttributeContextType = {\n\tactions: ReturnType;\n\tstate: State;\n\n\tform: FormType;\n\tinputForm: ReturnType;\n\tloading: boolean;\n\tperformLookup: (\n\t\tattribute: AttributeTemplate,\n\t\tlookupValue: string,\n\t\toptions?: {limitToIds?: number[]},\n\t) => Promise;\n\tsearchValue: (id: AttributeId, value: string) => void;\n\trefetch: QueryObserverBaseResult<\n\t\tGetAssetAttributesResult,\n\t\tQueryError\n\t>['refetch'];\n\tsave(\n\t\tvalues: AssetAttributesFormType['values'],\n\t\tchanges: AssetAttributesFormType['changes'],\n\t\tactions: AssetAttributesFormType['actions'],\n\t): Promise;\n};\n\n// type QueryParams = {\n// \tqueryKey: [string, GetAssetAttributesRequestOptions];\n// };\n\n// const queryClient = new QueryClient();\n\nconst StoreContext = createContext(\n\tundefined,\n);\n\n// const reactQueryGetAssetAttributes = async (params: QueryParams) => {\n// \tconst [, queryParams] = params.queryKey;\n// \treturn getAssetAttributes(queryParams);\n// };\n\nexport type AssetAttributesFormType = FormType<\n\tAttributeFormValues,\n\tAttributeAction\n>;\n\nexport const useAssetAttributeProvider = () => {\n\tconst context = useContext(StoreContext);\n\tif (context === undefined) {\n\t\tthrow new Error(\n\t\t\t'`useAssetAttributeProvider` must be used within a `AssetAttributeProvider`',\n\t\t);\n\t}\n\treturn context;\n};\n\nexport type AssetAttributeProviderProps = React.PropsWithChildren<{\n\tassetId?: number;\n\tlimitToAttributeIds?: number[];\n\tonSubmit?: (\n\t\tvalues: AssetAttributesFormType['values'],\n\t\tchanges: AssetAttributesFormType['changes'],\n\t\tactions: AssetAttributesFormType['actions'],\n\t) => Promise;\n\treadOnly?: boolean;\n\tuseDefaultValues?: boolean;\n}>;\n\n// single asset provider\nconst AssetAttributeProvider = ({\n\tchildren,\n\tassetId,\n\tlimitToAttributeIds,\n\tonSubmit,\n\treadOnly,\n\tuseDefaultValues,\n}: AssetAttributeProviderProps) => {\n\tconst [state, dispatch] = useReducer(reducer, initialState);\n\tconst instanceUuidRef = useRef(nanoid());\n\n\tconst {progress, poll} = usePoll();\n\n\tconst attributesProvider = useAttributeProvider();\n\n\tuseEffect(() => {\n\t\tdispatch({type: ACTIONS.SET_PROGRESS, progress});\n\t}, [progress]);\n\n\t// MUTATE\n\tconst assetAttributeMutation = useMutation<\n\t\tSetAssetAttributesResult,\n\t\tQueryError,\n\t\tSetAssetAttributesRequestOptions\n\t>({\n\t\tmutationFn: setAssetAttributes,\n\t\tonSuccess: async (uuid) => {\n\t\t\tawait poll(uuid);\n\n\t\t\tform.reset(form.valuesRef.current);\n\n\t\t\tdispatcher.trigger(\n\t\t\t\t'asset:attributes:updated:hack',\n\t\t\t\tassetId,\n\t\t\t\tinstanceUuidRef.current,\n\t\t\t);\n\t\t},\n\t});\n\n\t// QUERY\n\tconst assetAttributeQuery = useQuery<\n\t\tGetAssetAttributesResult,\n\t\tQueryError,\n\t\tGetAssetAttributesResult,\n\t\t['getAssetAttributes', GetAssetAttributesRequestOptions]\n\t>({\n\t\tqueryKey: ['getAssetAttributes', {assetIds: assetId ? [assetId] : []}],\n\t\tqueryFn: ({queryKey, signal}) => getAssetAttributes(queryKey[1], signal),\n\t\trefetchOnWindowFocus: false,\n\t\trefetchOnReconnect: false,\n\t\trefetchOnMount: true,\n\t\tretry: false,\n\t\tenabled: assetId != null,\n\t\tonSuccess([data]) {\n\t\t\tif (!data) return;\n\t\t\tconst attributeTemplates = attributesProvider.getAllAsObject();\n\t\t\tdata.attributes = data.attributes.reduce(\n\t\t\t\t(attributes, attr) => {\n\t\t\t\t\tconst template = attributeTemplates[attr.templateId];\n\t\t\t\t\treturn template\n\t\t\t\t\t\t? [\n\t\t\t\t\t\t\t\t...attributes,\n\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t...attr,\n\t\t\t\t\t\t\t\t\tvalues: parseValue(template.type, attr.values) as string[],\n\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t ]\n\t\t\t\t\t\t: attributes;\n\t\t\t\t},\n\t\t\t\t[],\n\t\t\t);\n\t\t\tdispatch({type: ACTIONS.UPDATE, data});\n\t\t},\n\t});\n\n\t// reflect saving\n\tuseEffect(() => {\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_SAVING,\n\t\t\tsaving: assetAttributeMutation.status === 'loading',\n\t\t});\n\t}, [assetAttributeMutation.status]);\n\n\tconst save = useCallback(\n\t\tasync (\n\t\t\tvalues: AssetAttributesFormType['values'],\n\t\t\tchanges: AssetAttributesFormType['changes'] = {},\n\t\t\tactions: AssetAttributesFormType['actions'] = {},\n\t\t) => {\n\t\t\t// Use custom `onSubmit`\n\t\t\tif (onSubmit) {\n\t\t\t\tdispatch({type: ACTIONS.SET_SAVING, saving: true});\n\t\t\t\tawait onSubmit(values, changes, actions);\n\t\t\t\tdispatch({type: ACTIONS.SET_SAVING, saving: false});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\t// Warn because we can't do anything without an `assetId` or a custom `onSubmit`\n\t\t\tif (!assetId) {\n\t\t\t\tconsole.warn('no `assetId` or `onSubmit` passed, ignoring submit');\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst attributeTemplates = attributesProvider.getAllAsObject();\n\t\t\tconst attributes = Object.entries(changes).reduce<\n\t\t\t\tSetAssetAttributeData['attributes']\n\t\t\t>((data, [id]) => {\n\t\t\t\tconst templateId = parseInt(id);\n\t\t\t\tif (limitToAttributeIds && !limitToAttributeIds.includes(templateId))\n\t\t\t\t\treturn data;\n\t\t\t\tconst value = normalizeValue(values[templateId]) as string[];\n\t\t\t\tconst attr = attributeTemplates[templateId];\n\t\t\t\tif (!attr || (attr.mandatory && !value.length)) return data;\n\t\t\t\treturn [\n\t\t\t\t\t...data,\n\t\t\t\t\t{\n\t\t\t\t\t\ttemplateId,\n\t\t\t\t\t\tassetId,\n\t\t\t\t\t\tvalues: value,\n\t\t\t\t\t},\n\t\t\t\t];\n\t\t\t}, []);\n\n\t\t\tif (!Object.keys(attributes).length) return;\n\n\t\t\treturn assetAttributeMutation.mutateAsync({\n\t\t\t\tdata: [\n\t\t\t\t\t{\n\t\t\t\t\t\tassetId,\n\t\t\t\t\t\tattributes,\n\t\t\t\t\t},\n\t\t\t\t],\n\t\t\t});\n\t\t},\n\t\t[assetId, onSubmit, limitToAttributeIds],\n\t);\n\n\tconst form = useForm(undefined, {\n\t\tremoveValueOnUnregister: false,\n\t\tresetWithCurrentValues: true,\n\t\t// resetWithOriginalValues: false,\n\t\tresetOnSubmit: true,\n\t\tonSubmit: save,\n\t});\n\tconst inputForm = getInputFormObject(form);\n\n\t// if switched into `readOnly` mode, reset form to original values\n\t// or refetch the data (the permissions will be out of sync if the\n\t// asset was unlocked without refetching)\n\tuseWhenChangedEffect(\n\t\treadOnly,\n\t\tuseCallback(\n\t\t\t(readOnly) => {\n\t\t\t\tif (!readOnly) {\n\t\t\t\t\tassetAttributeQuery.refetch();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tform.reset(form.originalValuesRef.current);\n\t\t\t},\n\t\t\t[form.reset, assetAttributeQuery.refetch],\n\t\t),\n\t);\n\n\t// when the `state.values`, or the passed in `useDefaultValues`, update the `form.values`\n\tuseWhenChangedEffect(\n\t\t[state.values, useDefaultValues, attributesProvider.data] as const,\n\t\tuseCallback(\n\t\t\t([values, useDefaultValues, attributes]) => {\n\t\t\t\tform.reset({\n\t\t\t\t\t...(useDefaultValues ? attributesProvider.getDefaultValues() : {}),\n\t\t\t\t\t...values,\n\t\t\t\t});\n\t\t\t},\n\t\t\t[attributesProvider.getDefaultValues],\n\t\t),\n\t\t{\n\t\t\texecuteAtMount: true,\n\t\t},\n\t);\n\n\t// This is a hack to communicate with other contexts (*cough*asset detail*cough*) ¯\\_(ツ)_/¯\n\tuseWhenChangedEffect(\n\t\tassetId,\n\t\tuseCallback(\n\t\t\t(assetId) => {\n\t\t\t\tconst updatedFromOutside = (updatedAssetId: number, uuid: string) => {\n\t\t\t\t\tif (uuid === instanceUuidRef.current || updatedAssetId !== assetId)\n\t\t\t\t\t\treturn;\n\t\t\t\t\tassetAttributeQuery.refetch();\n\t\t\t\t};\n\t\t\t\tdispatcher.on('asset:attributes:updated:hack', updatedFromOutside);\n\t\t\t\treturn () => {\n\t\t\t\t\tdispatcher.off('asset:attributes:updated:hack', updatedFromOutside);\n\t\t\t\t};\n\t\t\t},\n\t\t\t[assetAttributeQuery.refetch],\n\t\t),\n\t\t{\n\t\t\texecuteAtMount: true,\n\t\t},\n\t);\n\n\t// The reducer actions to expose to outside components\n\tconst dispatchActions = useMemo(() => actions(dispatch), []);\n\n\t/** handle attribute metadata lookup */\n\tconst performLookup = useConstCallback<\n\t\tAssetAttributeContextType['performLookup']\n\t>(async (attribute, lookupValue, options) => {\n\t\tconst attributes = attributesProvider.data;\n\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_ATTRIBUTES_WORKING,\n\t\t\tattributesWorking: getTemplatesEffectedByLookup(attribute, attributes),\n\t\t});\n\n\t\tconst lookupValues = await attributesProvider.lookup(\n\t\t\tattribute,\n\t\t\tlookupValue,\n\t\t\toptions,\n\t\t);\n\t\tform.setValue({\n\t\t\t...lookupValues,\n\t\t\t[attribute.attributeid]: lookupValue,\n\t\t});\n\n\t\t// We do not want to update so fast it looks like a glitch and not just that\n\t\t// the loading was super fast\n\t\tsetTimeout(() => {\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.SET_ATTRIBUTES_WORKING,\n\t\t\t\tattributesWorking: undefined,\n\t\t\t});\n\t\t}, 200);\n\n\t\treturn lookupValues;\n\t});\n\n\tconst searchValue = useCallback(\n\t\t(id: AttributeId, value: any) => {\n\t\t\t// Whenever we introduce a context where the use can search system\n\t\t\t// attribute values, we will need to address this\n\t\t\tif (id === -108) {\n\t\t\t\t// value = assetData.categories;\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tattributesProvider.searchValue(id, value);\n\t\t},\n\t\t[attributesProvider.searchValue],\n\t);\n\n\treturn (\n\t\t\n\t\t\t{children}\n\t\t\n\t);\n};\n\nexport default React.memo((props: AssetAttributeProviderProps) => {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n});\n","import React, {useCallback, useEffect, useMemo} from 'react';\nimport Editor, {EditorProps} from '../../components/Editor';\n// export * from '../../components/Editor/assetAttributeEditorClasses';\nimport AssetAttributeProvider, {useAssetAttributeProvider} from '../../context';\nimport {AttributeSetSelectionProvider} from '@netx/core-attribute-set-selection';\nimport {AttributeSetsProvider} from '@netx/core-attribute-set';\nimport {AttributeProvider} from '@netx/core-attribute';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\n\nexport type EditorContainerProps = Omit<\n\tEditorProps,\n\t| 'actions'\n\t| 'attributesWorking'\n\t| 'form'\n\t| 'inputForm'\n\t| 'values'\n\t| 'errors'\n\t| 'originalValues'\n> & {\n\tassetId: number;\n\tuserPrefKey?: string;\n\tonEditableChange?: (editable: boolean) => void;\n\tonChange?: (hasChanges: boolean, isValid: boolean) => void;\n};\n\nconst EditorContainerComponent = ({\n\tuserPrefKey,\n\tonEditableChange,\n\tonChange,\n\t...props\n}: Omit) => {\n\tconst {form, inputForm, loading, state, performLookup} =\n\t\tuseAssetAttributeProvider();\n\n\tuseWhenChangedEffect(\n\t\t[form.hasChanged, form.isValid] as const,\n\t\tuseCallback(\n\t\t\t([hasChanges, isValid]) => {\n\t\t\t\tonChange?.(hasChanges, isValid);\n\t\t\t},\n\t\t\t[onChange],\n\t\t),\n\t);\n\n\t// This is really only here for the toggle in asset detail sidebar\n\t// we do not want to show the edit toggle if there is nothing to\n\t// edit, and the sidebar should not need to try to deduce this istself\n\tuseEffect(() => {\n\t\tonEditableChange?.(state.hasEditableAttributes);\n\t}, [state.hasEditableAttributes, onEditableChange]);\n\n\t// When an attribute set selection changes, reset form to original values\n\t// `getAssetAttributes` does not hav an option for returning only certain\n\t// templates, so we have them all on any fetch\n\tconst handleAttributeSetSelectionChange = useCallback(() => {\n\t\tform.reset(form.originalValuesRef.current);\n\t}, [form.reset]);\n\n\t// Arrays will be recreated each time you pass them in\n\t// memoize to make sure the underlying component does\n\t// not keep interpreting it as a changed array\n\tconst defaultSelection = useMemo(() => ['all'], []);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n};\n\nexport const EditorContainer = ({assetId, ...props}: EditorContainerProps) => {\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\n\t\t\t\n\t\t\n\t);\n};\nexport default EditorContainer;\n","import React, {useMemo} from 'react';\n\nimport {getSelectedValues} from '../../collections/smartLabels';\nimport {SmartLabelSchema} from '../../schema';\nimport {\n\tReadOnlyMultiSelectField,\n\ttype ReadOnlyMultiSelectFieldProps,\n} from '@netx/core-components/SelectField/components';\n\nexport interface SmartLabelsProps extends ReadOnlyMultiSelectFieldProps {\n\tdata: SmartLabelSchema[];\n}\n\n/**\n * Read-only list of smart labels\n */\nconst SmartLabels: React.FunctionComponent = ({\n\tdata,\n\tloading,\n\t...props\n}) => {\n\tconst selectedLabels = useMemo(\n\t\t() => (loading ? [] : getSelectedValues(data)),\n\t\t[data, loading],\n\t);\n\n\treturn (\n\t\t\n\t);\n};\n\nexport default React.memo(SmartLabels);\n","import React from 'react';\nimport {i18n} from '@netx/core/i18n';\n\nimport {\n\tLegacyFormSelectField,\n\ttype LegacyFormSelectFieldProps,\n} from '@netx/core-components/Form/SelectField';\n\nexport type SmartLabelsFieldProps = Omit<\n\tLegacyFormSelectFieldProps,\n\t'name'\n>;\n\nexport const SmartLabelsField = ({\n\tdisabled,\n\tloading,\n\t...props\n}: SmartLabelsFieldProps) => {\n\treturn (\n\t\t\n\t\t\tlabel={i18n.t('i18n.smartLabels')}\n\t\t\tname=\"appliedLabels\"\n\t\t\tmultiple\n\t\t\t{...props}\n\t\t\tdisabled={disabled || loading}\n\t\t\tloading={loading}\n\t\t\tloadingValue={loading}\n\t\t/>\n\t);\n};\n\nexport default React.memo(SmartLabelsField);\n","import React, {useEffect, useRef} from 'react';\n\nimport {i18n} from '@netx/core/i18n';\n\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport type {Theme} from '@netx/core-components/Theme';\n\nimport {compareProps} from '@netx/core-components/util';\nimport {\n\twithForm,\n\tLegacyForm as Form,\n\tWithFormPropsIn,\n\tWithFormPropsOut,\n} from '@netx/core-components/Form';\nimport SubmitButton from '@netx/core-components/SubmitButton';\n\nimport {SmartLabelsField} from '../';\nimport {SmartLabelSchema} from '../../schema';\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\n\t\t\t...theme.mixins.flexFillColumn,\n\t\t\tposition: 'relative',\n\t\t\twidth: '100%',\n\t\t},\n\t\tcontentContainer: {\n\t\t\t...theme.mixins.flexFillColumn,\n\t\t\t...theme.mixins.scrollable,\n\t\t\tpadding: theme.spacing(2),\n\t\t\twidth: '100%',\n\t\t},\n\t\tfooter: {\n\t\t\t...theme.mixins.formFooter,\n\t\t},\n\t});\n\nexport type SmartLabelsFormData = {\n\tappliedLabels?: SmartLabelSchema['label'][];\n};\n\nexport type SmartLabelsFormSubmitData = Required;\n\nexport interface SmartLabelsFormProps\n\textends WithFormPropsIn<{}, SmartLabelsFormData> {\n\tloading?: boolean;\n\tlabels?: string[];\n}\n\nconst SmartLabelsForm: React.FunctionComponent<\n\tWithStyles &\n\t\tWithFormPropsOut\n> = ({\n\tclasses,\n\n\tform,\n\tinputForm,\n\trefreshAt,\n\n\tlabels,\n\tloading,\n}) => {\n\tconst submitDisabled = form.isSubmitting || !form.hasChanged || !form.isValid;\n\n\tconst refreshAtRef = useRef(refreshAt);\n\tuseEffect(() => {\n\t\tif (refreshAtRef.current === refreshAt) return;\n\t\trefreshAtRef.current = refreshAt;\n\t\tform.reset(form.originalValues);\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\t\n\t\t\t
\n\t\t
\n\t);\n};\n\nexport default withStyles(styles)(\n\twithForm(\n\t\tReact.memo(SmartLabelsForm, compareProps()) as any,\n\t),\n);\n","import React, {useEffect, useRef, useState} from 'react';\n\nimport {type IAsset} from '@netx/core-asset-next/schema';\nimport {useSmartLabelsData} from '../../hooks';\nimport {SmartLabelSchema} from '../../schema';\nimport SmartLabelsComponent from '../../components/SmartLabels';\nimport SmartLabelsFormComponent, {\n\tSmartLabelsFormProps,\n} from '../../components/SmartLabelsForm';\n\nimport {assetIsEditable} from '@netx/core-asset/enablers';\nimport {compareProps, SnackbarServiceProvider} from '@netx/core-components';\n\nexport interface SmartLabelsProps\n\textends Omit<\n\t\tSmartLabelsFormProps,\n\t\t'data' | 'loading' | 'onSubmit' | 'values'\n\t> {\n\tassetData: IAsset;\n\tonEditable?: () => void;\n\tonLoading?: () => void;\n\tonLoaded?: (data: SmartLabelSchema[]) => void;\n\tonUnEditable?: () => void;\n\treadOnly?: boolean;\n}\n\nconst SmartLabels: React.FunctionComponent = React.memo(\n\t({\n\t\tassetData,\n\t\tformOptions,\n\t\tonEditable,\n\t\tonLoaded,\n\t\tonLoading,\n\t\tonUnEditable,\n\t\treadOnly,\n\t\trefreshAt,\n\t}) => {\n\t\tconst [editable, setEditable] = useState();\n\t\tconst lastEditableRef = useRef(editable);\n\n\t\tconst {appliedLabels, data, handleSubmit, labelOptions, loading} =\n\t\t\tuseSmartLabelsData({\n\t\t\t\tassetData,\n\t\t\t\tonLoaded,\n\t\t\t\tonLoading,\n\t\t\t});\n\n\t\tuseEffect(() => {\n\t\t\tif (lastEditableRef.current === editable) return;\n\t\t\tlastEditableRef.current = editable;\n\t\t\teditable ? onEditable && onEditable() : onUnEditable && onUnEditable();\n\t\t});\n\n\t\tuseEffect(() => {\n\t\t\tsetEditable(assetIsEditable(assetData));\n\t\t}, [assetData]);\n\n\t\treturn !editable || readOnly ? (\n\t\t\t\n\t\t) : (\n\t\t\t\n\t\t);\n\t},\n\tcompareProps(),\n);\n\nexport default function (props: SmartLabelsProps) {\n\treturn (\n\t\t\n\t\t\t\n\t\t\n\t);\n}\n","import React from 'react';\n\nimport {type GridChildComponentProps} from 'react-window';\nimport type {BaseItemData} from '../../../VirtualizedList/types';\n\nexport type VirtualizedCellComponentProps<\n\tItemData extends BaseItemData,\n\tChildProps extends object,\n> = Omit & {\n\tdata: {\n\t\trows: ItemData[];\n\t\tviewportWidth: number;\n\t} & ChildProps;\n};\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n */\ntype CellComponentData<\n\tItemData extends BaseItemData,\n\tComponentProps extends object,\n\tSkeletonComponentProps extends object,\n> = {\n\tcolumnCount: number;\n\tdataReady: boolean;\n\tcellWidth: number;\n\tcellHeight: number;\n\titemHeight: number;\n\titemWidth: number;\n\titems: ItemData[];\n\tsizeLimit: number;\n\tspaceBetween: number;\n\tstartIndexFromPage?: number;\n\ttotal: number;\n\tCellComponentProps?: Partial;\n\tCellSkeletonComponentProps?: Partial;\n\tCellComponent: React.ComponentType;\n\tCellSkeletonComponent: React.ComponentType;\n\tgetCellComponentProps: (index: number, data: ItemData) => ComponentProps;\n\tgetCellSkeletonComponentProps: (index: number) => SkeletonComponentProps;\n};\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n */\ntype CellComponentProps<\n\tItemData extends BaseItemData,\n\tComponentProps extends object,\n\tSkeletonComponentProps extends object,\n> = Omit & {\n\tdata: CellComponentData;\n};\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n */\nconst Cell = <\n\tItemData extends BaseItemData,\n\tComponentProps extends object,\n\tSkeletonComponentProps extends object,\n>({\n\tcolumnIndex,\n\trowIndex,\n\tstyle,\n\tdata,\n}: CellComponentProps) => {\n\tconst {\n\t\tCellComponent,\n\t\tCellComponentProps,\n\t\tCellSkeletonComponent,\n\t\tCellSkeletonComponentProps,\n\t\tgetCellComponentProps,\n\t\tgetCellSkeletonComponentProps,\n\t\tcolumnCount,\n\t\tdataReady,\n\t\titems,\n\t\t// itemSize,\n\t\t// itemHeight,\n\t\t// itemWidth,\n\t\tcellHeight,\n\t\tcellWidth,\n\t\tsizeLimit,\n\t\tspaceBetween,\n\t\tstartIndexFromPage = 0,\n\t\ttotal,\n\t} = data;\n\n\tconst _index = columnIndex + rowIndex * columnCount;\n\tconst singleColumnIndex = _index + startIndexFromPage;\n\n\t// Do not render beyond our total, unless we are still gathering data\n\tif (\n\t\t(dataReady && singleColumnIndex >= total) ||\n\t\t(sizeLimit != null && _index >= sizeLimit)\n\t)\n\t\treturn null;\n\n\tconst itemData = items[singleColumnIndex];\n\n\tconst cellComponentProps: ComponentProps = {\n\t\t...CellComponentProps,\n\t\t...getCellComponentProps(singleColumnIndex, itemData),\n\t};\n\n\tconst cellSkeletonComponentProps: SkeletonComponentProps = {\n\t\t...CellSkeletonComponentProps,\n\t\t...getCellSkeletonComponentProps(singleColumnIndex),\n\t};\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\t{itemData ? (\n\t\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\n\t);\n};\n\nexport default Cell;\n","import React, {\n\tuseCallback,\n\tuseEffect,\n\tuseReducer,\n\tuseRef,\n\tuseState,\n} from 'react';\nimport clsx from 'clsx';\nimport _ from 'underscore';\nimport ResizeDetector from 'react-resize-detector';\nimport {\n\tFixedSizeGrid as Grid,\n\ttype GridOnScrollProps,\n\ttype ListOnItemsRenderedProps,\n\ttype GridOnItemsRenderedProps,\n} from 'react-window';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport {Pagination} from '@mui/material';\nimport {getScrollbarWidth} from '@netx/core-next/utils/browser/getScrollbarWidth';\nimport useEnhancedRef from '@netx/core-components/hooks/useEnhancedRef';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\nimport {\n\tcomposeClasses,\n\tstyled,\n\ttype WithClasses,\n} from '@netx/core-components/Theme';\nimport {combineRefs} from '@netx/core-components/util';\nimport {ScrollBorderReactWindow} from '@netx/core-components/ScrollBorder';\nimport {\n\tVirtualizedDragSelect,\n\tOnDragEnd as OnDragSelectEnd,\n\tOnDragMove as OnDragSelectMove,\n\tDirection as DragSelectDirection,\n\tDimensions as DragSelectDimensions,\n} from '@netx/core-components/VirtualizedDragSelect';\nimport {VirtualizedListClassicPager} from '@netx/core-components/VirtualizedList/components';\nimport type {BaseItemData} from '@netx/core-components/VirtualizedList/types';\nimport type {InfiniteLoaderComponentCommonProps} from '../../types';\nimport Cell from '../VirtualizedCell';\nimport {ACTIONS} from './constants';\n\nimport {reducer, initialState, State} from './reducer';\nimport {\n\tvirtualizedGalleryClasses,\n\tgetVirtualizedGalleryUtilityClass,\n\ttype VirtualizedGalleryClasses,\n\tVIRTUALIZED_GALLERY_CLASS_NAME,\n} from './virtualizedGalleryClasses';\n\ntype VirtualizedGalleryUtilityClassProps = WithClasses<\n\tVirtualizedGalleryClasses,\n\t{\n\t\tshowBorder?: boolean;\n\t}\n>;\n\nconst useUtilityClasses = (ownerState: VirtualizedGalleryUtilityClassProps) => {\n\tconst {classes, showBorder} = ownerState;\n\n\tconst slots = {\n\t\troot: ['root', showBorder && 'showBorder'],\n\t\tfooter: ['footer'],\n\t\twrapper: ['wrapper'],\n\t};\n\n\treturn composeClasses(slots, getVirtualizedGalleryUtilityClass, classes);\n};\n\nconst VirtualizedGalleryRoot = styled('div', {\n\tname: VIRTUALIZED_GALLERY_CLASS_NAME,\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tflexDirection: 'column',\n\toverflow: 'hidden',\n\tposition: 'relative',\n\tminHeight: 0,\n\t// `none` will cause all items within, that have overflow, to show\n\t// their scrollbars even if the os pref is to hide when not scrolling\n\t// react-window sets `pointer-events: none` inline\n\t'& [role=\"row\"][style*=\"pointer-events: none\"]': {\n\t\tpointerEvents: `stroke !important`,\n\t},\n}));\n\nconst VirtualizedGalleryFooter = styled('div', {\n\tname: VIRTUALIZED_GALLERY_CLASS_NAME,\n\tslot: 'Footer',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '0 0 auto',\n\tpadding: theme.spacing(1),\n\talignItems: 'center',\n\tjustifyContent: 'flex-end',\n}));\n\nconst VirtualizedGalleryWrapper = styled('div', {\n\tname: VIRTUALIZED_GALLERY_CLASS_NAME,\n\tslot: 'Wrapper',\n})(({theme}) => ({\n\tflex: '1 1 auto',\n\toverflow: 'hidden',\n\tposition: 'relative',\n\tminHeight: 0,\n}));\n\nconst InnerElement = React.memo(\n\tReact.forwardRef((props, ref) => {\n\t\treturn (\n\t\t\t\n\t\t);\n\t}),\n);\n\nconst getIndexesFromDrag = ({\n\titemHeight,\n\titemWidth,\n\tcellWidth,\n\tcellHeight,\n\tcolumnCount,\n\trowCount,\n\tx1,\n\ty1,\n\tx2,\n\ty2,\n\tdirection,\n}: Pick<\n\tState,\n\t| 'itemHeight'\n\t| 'itemWidth'\n\t| 'cellWidth'\n\t| 'cellHeight'\n\t| 'columnCount'\n\t| 'rowCount'\n> &\n\tDragSelectDimensions & {\n\t\tdirection: DragSelectDirection;\n\t}) => {\n\tif (\n\t\titemHeight === 0 ||\n\t\titemWidth === 0 ||\n\t\tcellWidth === 0 ||\n\t\tcellHeight === 0 ||\n\t\tcolumnCount === 0 ||\n\t\trowCount === 0\n\t)\n\t\treturn [];\n\n\t// with the assumption nothing has done something crazy, everything is of equal size, and items\n\t// are centered within the cell, get the offset of the actual rendered item\n\tconst itemOffsetX = (itemWidth - cellWidth) / 2;\n\tconst itemOffsetY = (itemHeight - cellHeight) / 2;\n\n\t// rough estimates\n\tconst estimatedColumnStartIndex = Math.max(Math.floor(x1 / itemWidth), 0);\n\tconst estimatedColumnStopIndex = Math.min(\n\t\tMath.floor(x2 / itemWidth),\n\t\tcolumnCount - 1,\n\t);\n\tconst estimatedRowStartIndex = Math.max(Math.floor(y1 / itemHeight), 0);\n\tconst estimatedRowStopIndex = Math.min(\n\t\tMath.floor(y2 / itemHeight),\n\t\trowCount - 1,\n\t);\n\n\t// refine\n\t// rows\n\tconst rowsInvolved: number[] = [];\n\tfor (let i = estimatedRowStartIndex; i <= estimatedRowStopIndex; i++) {\n\t\tconst startOfWholeRow = i * itemHeight;\n\t\tconst _y1 = startOfWholeRow + itemOffsetY;\n\t\tconst _y2 = _y1 + cellHeight;\n\t\t// the selection ended before or the selection started after\n\t\tif (y2 < _y1 || y1 > _y2) continue;\n\t\t// rowsInvolved.push(i);\n\t\tdirection === DragSelectDirection.NORTH_EAST ||\n\t\tdirection === DragSelectDirection.NORTH_WEST\n\t\t\t? rowsInvolved.unshift(i)\n\t\t\t: rowsInvolved.push(i);\n\t}\n\t// columns\n\tconst columnsInvolved: number[] = [];\n\tfor (let i = estimatedColumnStartIndex; i <= estimatedColumnStopIndex; i++) {\n\t\tconst startOfWholeColumn = i * itemWidth;\n\t\tconst _x1 = startOfWholeColumn + itemOffsetX;\n\t\tconst _x2 = _x1 + cellWidth;\n\t\t// the selection ended before or the selection started after\n\t\tif (x2 < _x1 || x1 > _x2) continue;\n\t\t// columnsInvolved.push(i);\n\t\tdirection === DragSelectDirection.NORTH_EAST ||\n\t\tdirection === DragSelectDirection.SOUTH_EAST\n\t\t\t? columnsInvolved.unshift(i)\n\t\t\t: columnsInvolved.push(i);\n\t}\n\n\t// get actual item indexes\n\tconst indexes: number[] = [];\n\tfor (let y = 0, c = rowsInvolved.length; y < c; y++) {\n\t\tfor (let x = 0, d = columnsInvolved.length; x < d; x++) {\n\t\t\tconst index = rowsInvolved[y] * columnCount + columnsInvolved[x];\n\t\t\tindexes.push(index);\n\t\t}\n\t}\n\n\treturn indexes;\n};\n\nconst getIndexesOrdered = (\n\tcurrentIndexes: number[],\n\tlastIndexes: number[],\n\tdirection: DragSelectDirection,\n) => {\n\treturn currentIndexes.sort((a, b) => {\n\t\tconst bIndex = lastIndexes.indexOf(b);\n\t\tconst aIndex = lastIndexes.indexOf(a);\n\t\t// was in the last set, keep the position it had there\n\t\tif (bIndex > -1 && aIndex > -1) return aIndex - bIndex;\n\t\t// a comes before b since it was in the last pending indexes\n\t\tif (aIndex > -1) return -1;\n\t\t// a comes after b since b was in the last pending indexes\n\t\tif (bIndex > -1) return 1;\n\t\t// in the order of the dom reversed or not reversed depending on direction x\n\t\treturn direction === DragSelectDirection.NORTH_EAST ||\n\t\t\tdirection === DragSelectDirection.SOUTH_EAST\n\t\t\t? b - a\n\t\t\t: a - b;\n\t});\n};\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\\\n */\nexport type VirtualizedGalleryProps<\n\tItemData extends BaseItemData,\n\tComponentProps extends object,\n\tSkeletonComponentProps extends object,\n> = InfiniteLoaderComponentCommonProps &\n\tWithClasses<\n\t\tVirtualizedGalleryClasses,\n\t\t{\n\t\t\tchunkSize?: number;\n\t\t\tlistClassName?: string;\n\t\t\tcellHeight: number;\n\t\t\tcellWidth: number;\n\t\t\tdisableScrollShadow?: boolean;\n\t\t\tspaceBetween?: number;\n\t\t\tminCellWidth?: number;\n\t\t\tmaxCellWidth?: number;\n\t\t\tuseClassicPaging?: boolean;\n\t\t\tonDragSelectCancel?: () => void;\n\t\t\tonDragSelected?: (indexes: number[]) => void;\n\t\t\tonDragSelecting?: (indexes: number[]) => void;\n\t\t\tonOverflownChange?: (overflown: boolean) => void;\n\t\t\t/** props to pass to cell component */\n\t\t\tCellComponentProps?: Partial;\n\t\t\tCellSkeletonComponentProps?: Partial;\n\t\t\tCellComponent: React.ComponentType;\n\t\t\tCellSkeletonComponent: React.ComponentType;\n\t\t\tgetCellComponentProps: (index: number, data: ItemData) => ComponentProps;\n\t\t\tgetCellSkeletonComponentProps: (index: number) => SkeletonComponentProps;\n\t\t}\n\t>;\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\\\n * @deprecated\n */\nexport const VirtualizedGalleryPrimitive = <\n\tItemData extends BaseItemData,\n\tComponentProps extends object,\n\tSkeletonComponentProps extends object,\n>({\n\tclasses: _classes,\n\tclassName,\n\n\tcellHeight,\n\tcellWidth,\n\tchunkSize,\n\tdata,\n\tdataReady,\n\tdisableScrollShadow,\n\thidePager,\n\tisItemLoaded,\n\tloadMoreItems,\n\ttotal,\n\tuseClassicPaging,\n\tonDragSelectCancel,\n\tonDragSelected,\n\tonDragSelecting,\n\tonPageChange,\n\tonResize,\n\tonOverflownChange,\n\tonScrollIndexUpdate,\n\tscrollIndex = 0,\n\tpage = 1,\n\tpageSize = 25,\n\n\tspaceBetween = 16,\n\tvirtualGridRef,\n\n\titemTotal,\n\n\tgetCellComponentProps,\n\tgetCellSkeletonComponentProps,\n\tCellComponent,\n\tCellComponentProps,\n\tCellSkeletonComponent,\n\tCellSkeletonComponentProps,\n}: VirtualizedGalleryProps<\n\tItemData,\n\tComponentProps,\n\tSkeletonComponentProps\n>) => {\n\tconst [currentPage, setCurrentPage] = useState(page || 1);\n\tconst [overflown, setOverflown] = useState(false);\n\tconst scrollBarWidth = useRef(getScrollbarWidth());\n\tconst lastRendered = useRef({\n\t\toverscanRowStartIndex: 0,\n\t\toverscanRowStopIndex: 0,\n\t\tvisibleRowStartIndex: 0,\n\t\tvisibleRowStopIndex: 0,\n\t\toverscanColumnStartIndex: 0,\n\t\toverscanColumnStopIndex: 0,\n\t\tvisibleColumnStartIndex: 0,\n\t\tvisibleColumnStopIndex: 0,\n\t});\n\n\tuseEffect(() => {\n\t\tsetCurrentPage(page || 1);\n\t}, [page]);\n\n\tconst rootRef = useRef(null);\n\tconst _virtualGridRef = useRef(null);\n\tconst sizeRef = useRef({height: 0, width: 0});\n\n\tconst classes = useUtilityClasses({\n\t\tclasses: _classes,\n\t\tshowBorder: disableScrollShadow,\n\t});\n\n\tif (!itemTotal) itemTotal = total;\n\tif (!chunkSize) chunkSize = pageSize;\n\n\tconst itemCountRef = useRef(itemTotal);\n\titemCountRef.current = itemTotal;\n\n\tconst infiniteLoaderRef = useRef(null);\n\n\tconst [state, dispatch] = useReducer(reducer(itemCountRef), {\n\t\t...initialState,\n\t\t// TODO: need to be able to update this\n\t\tspaceBetween,\n\t\tcellWidth,\n\t\tcellHeight,\n\t});\n\tconst stateRef = useRef(state);\n\tstateRef.current = state;\n\n\t// If data is not ready, set to `chunkSize` for skeleton loading\n\tconst totalItems = total > 0 || dataReady ? total : chunkSize;\n\tconst pageCount = Math.ceil(totalItems / pageSize);\n\n\tconst scrollPositionNeedsCorrectiong = useRef(false);\n\tconst scrollTopRef = useRef(0);\n\tconst scrollAtIndexRef = useRef(0);\n\tconst [readyToRenderList, setReadyToRenderList] = useState(false);\n\n\tconst lastCellHeightRef = useRef(0);\n\n\tconst correctIndexOnNextRender = useRef(-1);\n\tconst correctScrollOnNextEnder = useRef(-1);\n\n\tuseWhenChangedEffect([currentPage, dataReady], () => {\n\t\tif (!useClassicPaging) return;\n\t\t_virtualGridRef.current?.scrollTo({\n\t\t\tscrollTop: 0,\n\t\t});\n\t});\n\n\tconst handleDragSelectEnd = useCallback(\n\t\t(dims, direction) => {\n\t\t\t// see `handleDragSelectMove`\n\t\t\tonDragSelected?.(lastSelectionOverIndexes.current);\n\t\t},\n\t\t[onDragSelected],\n\t);\n\n\tconst lastSelectionOverIndexes = useRef([]);\n\n\tconst handleDragSelectMove = useCallback(\n\t\t_.throttle(\n\t\t\t(dims, direction) => {\n\t\t\t\t// the order of the indexes may be important\n\t\t\t\t// will try and keep the indexes in the order they were\n\t\t\t\t// pending selection\n\t\t\t\tconst indexes = (lastSelectionOverIndexes.current = getIndexesOrdered(\n\t\t\t\t\tgetIndexesFromDrag({\n\t\t\t\t\t\t...stateRef.current,\n\t\t\t\t\t\t...dims,\n\t\t\t\t\t\tdirection,\n\t\t\t\t\t}),\n\t\t\t\t\tlastSelectionOverIndexes.current,\n\t\t\t\t\tdirection,\n\t\t\t\t));\n\t\t\t\t// lastSelectionOverIndexes.current = indexes;\n\t\t\t\tonDragSelecting?.(indexes);\n\t\t\t},\n\t\t\t16,\n\t\t\t{trailing: true},\n\t\t),\n\t\t[onDragSelecting],\n\t);\n\n\tconst [onOverflownChangeRef] = useEnhancedRef(onOverflownChange);\n\tconst OuterElement = React.useMemo(\n\t\t() =>\n\t\t\tReact.forwardRef>(\n\t\t\t\t({children, ...props}, ref) => (\n\t\t\t\t\t {\n\t\t\t\t\t\t\tonOverflownChangeRef.current?.(overflown);\n\t\t\t\t\t\t\tsetOverflown(overflown);\n\t\t\t\t\t\t}}\n\t\t\t\t\t\tref={ref}\n\t\t\t\t\t\t{...props}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{children}\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[\n\t\t\tonDragSelected,\n\t\t\thandleDragSelectEnd,\n\t\t\thandleDragSelectMove,\n\t\t\tonDragSelecting,\n\t\t\tonDragSelectCancel,\n\t\t],\n\t);\n\n\tconst correctPosition = useCallback(\n\t\t_.debounce(() => {\n\t\t\tif (correctIndexOnNextRender.current > -1) {\n\t\t\t\t_virtualGridRef.current?.scrollTo({\n\t\t\t\t\tscrollTop:\n\t\t\t\t\t\tstateRef.current.itemHeight * correctIndexOnNextRender.current,\n\t\t\t\t});\n\t\t\t} else if (correctScrollOnNextEnder.current > -1) {\n\t\t\t\t_virtualGridRef.current?.scrollTo({\n\t\t\t\t\tscrollTop: correctScrollOnNextEnder.current,\n\t\t\t\t});\n\t\t\t}\n\t\t\tcorrectIndexOnNextRender.current = correctScrollOnNextEnder.current = -1;\n\t\t}, 16),\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tconst {lastColumnCount} = stateRef.current;\n\n\t\tif (lastColumnCount !== state.columnCount) {\n\t\t\tlet scrollIndex = scrollAtIndexRef.current;\n\t\t\tif (scrollIndex !== 0) {\n\t\t\t\tconst trueItemsIndexWithoutColumns = lastColumnCount * scrollIndex;\n\t\t\t\tscrollIndex = Math.round(\n\t\t\t\t\ttrueItemsIndexWithoutColumns / state.columnCount,\n\t\t\t\t);\n\t\t\t\tif (!isNaN(scrollIndex)) {\n\t\t\t\t\tscrollAtIndexRef.current = trueItemsIndexWithoutColumns;\n\t\t\t\t\tcorrectIndexOnNextRender.current = scrollIndex;\n\t\t\t\t\tcorrectPosition();\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif (\n\t\t\t\tlastCellHeightRef.current !== 0 &&\n\t\t\t\tlastCellHeightRef.current !== state.itemHeight\n\t\t\t) {\n\t\t\t\tconst scrollTo =\n\t\t\t\t\tcorrectIndexOnNextRender.current === -1\n\t\t\t\t\t\t? scrollAtIndexRef.current * state.itemHeight\n\t\t\t\t\t\t: correctIndexOnNextRender.current * state.itemHeight;\n\t\t\t\tcorrectScrollOnNextEnder.current = scrollTo;\n\t\t\t\tcorrectPosition();\n\t\t\t}\n\t\t}\n\t\tlastCellHeightRef.current = state.itemHeight;\n\t}, [state.columnCount, state.itemHeight]);\n\n\t// Listen for scroll change to see if scrolled or not (for shadow)\n\tconst handleScroll = useCallback(\n\t\t({scrollTop, scrollUpdateWasRequested}: GridOnScrollProps) => {\n\t\t\tconst index = Math.round(scrollTop / stateRef.current.itemHeight);\n\t\t\tscrollAtIndexRef.current = isNaN(index) ? 0 : index;\n\t\t\tscrollTopRef.current = scrollTop;\n\t\t\tconst itemIndex = index * stateRef.current.columnCount;\n\t\t\tif (isNaN(itemIndex)) return;\n\t\t\tconst page = useClassicPaging\n\t\t\t\t? currentPage\n\t\t\t\t: Math.max(Math.ceil(index / pageSize), 1);\n\t\t\t// TODO: this is mixed up with the on items rendered - recitfy that\n\t\t\tonScrollIndexUpdate?.(itemIndex, page, itemIndex);\n\t\t},\n\t\t[currentPage, useClassicPaging],\n\t);\n\n\t// in the event we are using non classic paging\n\t// when page changes, scroll the virtual list to that eqivelant index\n\tconst handlePageChange = useCallback((event: any, page: number) => {\n\t\tif (!_virtualGridRef.current) return;\n\t\tconst columnCount = stateRef.current.columnCount;\n\t\t// Scroll the first item in page into view\n\t\t_virtualGridRef.current.scrollToItem({\n\t\t\trowIndex: Math.floor(((page - 1) * pageSize) / columnCount),\n\t\t\tcolumnIndex: 0,\n\t\t\talign: 'start',\n\t\t});\n\t}, []);\n\n\t// get true indexes since we are doing this in a grid\n\tconst handleItemsRendered = useCallback(\n\t\t(_onItemsRendered: (props: ListOnItemsRenderedProps) => void) =>\n\t\t\t(props: GridOnItemsRenderedProps) => {\n\t\t\t\tif (!readyToRenderList) return;\n\t\t\t\tconst {columnCount} = stateRef.current;\n\t\t\t\tconst {\n\t\t\t\t\toverscanRowStartIndex,\n\t\t\t\t\toverscanRowStopIndex,\n\t\t\t\t\tvisibleRowStartIndex,\n\t\t\t\t\tvisibleRowStopIndex,\n\t\t\t\t} = props;\n\n\t\t\t\tlastRendered.current = props;\n\t\t\t\t_onItemsRendered({\n\t\t\t\t\toverscanStartIndex: overscanRowStartIndex * columnCount,\n\t\t\t\t\toverscanStopIndex: overscanRowStopIndex * columnCount,\n\t\t\t\t\tvisibleStartIndex: visibleRowStartIndex * columnCount,\n\t\t\t\t\tvisibleStopIndex: visibleRowStopIndex * columnCount,\n\t\t\t\t});\n\t\t\t\tcorrectPosition();\n\t\t\t},\n\t\t[onScrollIndexUpdate, useClassicPaging, currentPage, readyToRenderList],\n\t);\n\n\tconst handleResize = useCallback(\n\t\t(width = 0, height = 0) => {\n\t\t\tif (sizeRef.current.width === width && sizeRef.current.height === height)\n\t\t\t\treturn;\n\n\t\t\tsizeRef.current = {width, height};\n\t\t\tconst subtractFromWidth = overflown ? scrollBarWidth.current : 0;\n\n\t\t\tdispatch({\n\t\t\t\ttype: ACTIONS.SET_STAGE_DIMENSIONS,\n\t\t\t\tdimensions: {\n\t\t\t\t\twidth,\n\t\t\t\t\theight,\n\t\t\t\t\tcorrectedWidth: width - subtractFromWidth,\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t// This is how we would fix things like adding/removing to/from cart that decrease/increase the height\n\t\t\tscrollPositionNeedsCorrectiong.current = true;\n\n\t\t\tonResize?.(width - subtractFromWidth, height);\n\t\t},\n\t\t[overflown, onResize],\n\t);\n\n\tuseWhenChangedEffect(overflown, (overflown) => {\n\t\tconst subtractFromWidth = overflown ? scrollBarWidth.current : 0;\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_STAGE_DIMENSIONS,\n\t\t\tdimensions: {\n\t\t\t\twidth: sizeRef.current.width,\n\t\t\t\theight: sizeRef.current.height,\n\t\t\t\tcorrectedWidth: sizeRef.current.width - subtractFromWidth,\n\t\t\t},\n\t\t});\n\t\tonResize?.(\n\t\t\tsizeRef.current.width - subtractFromWidth,\n\t\t\tsizeRef.current.height,\n\t\t);\n\t});\n\n\tuseEffect(() => {\n\t\tdispatch({\n\t\t\ttype: ACTIONS.SET_CELL_DIMENSIONS,\n\t\t\tdimensions: {\n\t\t\t\twidth: cellWidth,\n\t\t\t\theight: cellHeight,\n\t\t\t},\n\t\t});\n\t}, [cellWidth, cellHeight, itemTotal, spaceBetween]);\n\n\t// TODO:\n\tconst overscanRowCount = 1; /* Math.min(\n\t\tMath.round(state.stageHeight / state.itemHeight),\n\t\t1,\n\t);*/\n\n\tuseEffect(() => {\n\t\tinfiniteLoaderRef.current?.resetloadMoreItemsCache();\n\t\thandleItemsRendered((infiniteLoaderRef.current as any)._onItemsRendered)(\n\t\t\tlastRendered.current,\n\t\t);\n\t}, [itemTotal]);\n\n\t// TODO: document\n\tconst readyToRenderRef = useRef(false);\n\tconst columnCountReady = useCallback(\n\t\t_.debounce(() => {\n\t\t\tif (readyToRenderRef.current || stateRef.current.columnCount === 0)\n\t\t\t\treturn;\n\n\t\t\tconst scrollTo = stateRef.current.itemHeight\n\t\t\t\t? stateRef.current.itemHeight *\n\t\t\t\t\t\t((scrollIndex - (scrollIndex % stateRef.current.columnCount)) /\n\t\t\t\t\t\t\tstateRef.current.columnCount) +\n\t\t\t\t (scrollIndex ? 1 : 0)\n\t\t\t\t: 0;\n\n\t\t\tcorrectScrollOnNextEnder.current = isNaN(scrollTo) ? -1 : scrollTo;\n\t\t\treadyToRenderRef.current = true;\n\t\t\tsetReadyToRenderList(true);\n\t\t}, 16),\n\t\t[],\n\t);\n\n\tuseEffect(() => {\n\t\tcolumnCountReady();\n\t}, [state.columnCount]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\thandleHeight\n\t\t\t\thandleWidth\n\t\t\t\tonResize={handleResize}\n\t\t\t>\n\t\t\t\t{({targetRef}) => (\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{({onItemsRendered, ref}) => {\n\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t// @ts-ignore\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\t\t\t_virtualGridRef,\n\t\t\t\t\t\t\t\t\t\t\tvirtualGridRef,\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\trowCount={readyToRenderList ? state.rowCount : 0}\n\t\t\t\t\t\t\t\t\t\trowHeight={state.itemHeight}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{Cell}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t);\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\n\t\t\t{!hidePager ? (\n\t\t\t\t\n\t\t\t\t\t{useClassicPaging ? (\n\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\tsetCurrentPage(page + 1);\n\t\t\t\t\t\t\t\tonPageChange?.(page + 1);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tpage={currentPage - 1}\n\t\t\t\t\t\t\trowsPerPage={pageSize}\n\t\t\t\t\t\t\tgetItemAriaLabel={(type) => `Go to ${type} page`}\n\t\t\t\t\t\t\tshowFirstButton={pageCount > 1}\n\t\t\t\t\t\t\tshowLastButton={pageCount > 1}\n\t\t\t\t\t\t\tloading={!dataReady}\n\t\t\t\t\t\t/>\n\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) : null}\n\t\t\n\t);\n};\n\n/** @deprecated */\nexport const VirtualizedGallery = VirtualizedGalleryPrimitive;\n\n/** @deprecated */\nexport default VirtualizedGallery;\n","import React, {useCallback, useEffect, useRef, useState} from 'react';\nimport clsx from 'clsx';\nimport {\n\tVariableSizeList,\n\ttype VariableSizeListProps,\n\ttype ListOnScrollProps,\n\ttype ListChildComponentProps,\n\ttype ListOnItemsRenderedProps,\n} from 'react-window';\nimport AutoSizer from 'react-virtualized-auto-sizer';\nimport InfiniteLoader from 'react-window-infinite-loader';\nimport ResizeDetector from 'react-resize-detector';\n\nimport {VirtualizedListClassicPager} from '../VirtualizedList/components/VirtualizedListClassicPager';\nimport {getScrollbarWidth} from '@netx/core-next/utils/browser/getScrollbarWidth';\nimport {Pagination} from '@mui/material';\n\nimport {createStyles, withStyles, type WithStyles} from '@mui/styles';\nimport {styled, Theme} from '@netx/core-components/Theme';\n\nimport {InfiniteLoaderComponentCommonProps, BaseItemData} from './types';\nimport {combineRefs} from '@netx/core-components/util';\nimport useWhenChangedEffect from '@netx/core-components/hooks/useWhenChangedEffect';\n\nimport {ScrollBorderReactWindow} from '@netx/core-components/ScrollBorder';\n\nconst VirtualizedVariableListRoot = styled('div', {\n\tname: 'VirtualizedVariableList',\n\tslot: 'Root',\n})(({theme}) => ({\n\tdisplay: 'flex',\n\tflex: '1 1 auto',\n\tflexDirection: 'column',\n\toverflow: 'hidden',\n\tposition: 'relative',\n\tminHeight: 0,\n}));\n\nconst styles = (theme: Theme) =>\n\tcreateStyles({\n\t\troot: {\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\tposition: 'relative',\n\t\t\tminHeight: 0,\n\t\t},\n\t\tscrollWrapper: {\n\t\t\tflex: '1 1 auto',\n\t\t\toverflow: 'hidden',\n\t\t\tposition: 'relative',\n\t\t\tminHeight: 0,\n\t\t},\n\t\tfooter: {\n\t\t\talignItems: 'flex-end',\n\t\t\tdisplay: 'flex',\n\t\t\tflex: '0 0 auto',\n\t\t\tflexDirection: 'column',\n\t\t\tpadding: theme.spacing(1),\n\t\t},\n\t});\n\n/**\n * Props that will be sent to the list item(s)\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n */\nexport type VirtualizedListItemProps<\n\tItemData extends BaseItemData,\n\tChildProps extends object,\n> = Omit & {\n\tdata: {\n\t\trows: ItemData[];\n\t\tviewportWidth: number;\n\t} & ChildProps;\n};\n\n/**\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n */\nexport interface VirtualizedVariableListProps<\n\tItemData extends BaseItemData,\n\tChildProps extends object,\n> extends InfiniteLoaderComponentCommonProps,\n\t\tPartial<\n\t\t\tPick<\n\t\t\t\tVariableSizeListProps,\n\t\t\t\t'itemCount' | 'innerElementType' | 'useIsScrolling'\n\t\t\t>\n\t\t> {\n\tclassName?: string;\n\tchunkSize?: number;\n\tdisableScrollShadow?: boolean;\n\thidePager?: boolean;\n\tparseOnItemsRendered?: (\n\t\tparams: ListOnItemsRenderedProps,\n\t) => ListOnItemsRenderedProps;\n\tonOverflownChange?: (overflown: boolean) => void;\n\tonScrollChange?: (\n\t\tscrollOffset: number,\n\t\tscrollUpdateWasRequested: boolean,\n\t) => void;\n\tuseClassicPaging?: boolean;\n\n\tListItemComponent: React.ComponentType<\n\t\tVirtualizedListItemProps\n\t>;\n\tListItemComponentProps?: Omit;\n}\n\n/**\n * Virtualized list\\\n * Virtualizes and loads data as needed\\\n * `ItemData` - The data specificlly from the return of a server request (will be unique data for each child)\\\n * `ChildProps` - Any additional data that should be passed to all children\n * @example\n {..props} />\n // if the data is all there and requires no additional fetching\n // just stub out these two methods\n \n isItemLoaded={() => true}\n\t itemSize{(index) => {...}}\n loadMoreItems={async () => {}}\n />\n */\nexport const VirtualizedVariableListPrimitive = <\n\tItemData extends BaseItemData,\n\tChildProps extends object,\n>({\n\tclassName,\n\tclasses,\n\n\tchunkSize,\n\tdisableScrollShadow,\n\tisItemLoaded,\n\titemSize,\n\tloadMoreItems,\n\tscrollIndex = 0,\n\tonOverflownChange,\n\tonPageChange,\n\tonScrollIndexUpdate,\n\tonResize,\n\n\tparseOnItemsRendered,\n\tdata,\n\tdataReady,\n\ttotal,\n\tvirtualListRef,\n\n\tpage = 1,\n\tpageSize = 25,\n\titemTotal,\n\thidePager,\n\tuseClassicPaging,\n\n\tListItemComponent,\n\tListItemComponentProps,\n\t...props\n}: WithStyles &\n\tVirtualizedVariableListProps) => {\n\tconst _virtualListRef = useRef(null);\n\tconst infiniteLoaderRef = useRef(null);\n\tconst [currentPage, setCurrentPage] = useState(page || 1);\n\tconst [overflown, setOverflown] = useState(false);\n\n\tif (!itemTotal) itemTotal = total;\n\tif (!chunkSize) chunkSize = pageSize;\n\n\tuseEffect(() => {\n\t\tsetCurrentPage(page || 1);\n\t}, [page]);\n\n\tuseWhenChangedEffect(page, () => {\n\t\tif (!useClassicPaging) return;\n\t\tinfiniteLoaderRef.current?.resetloadMoreItemsCache();\n\t});\n\n\tuseWhenChangedEffect([currentPage, dataReady], () => {\n\t\tif (!useClassicPaging) return;\n\t\t_virtualListRef.current?.scrollTo(0);\n\t});\n\n\t// Store to deal with `` renders and actual size changes\n\tconst sizeRef = useRef({height: 0, width: 0});\n\n\t// If data is not ready, set to `chunkSize` for skeleton loading\n\tconst totalItems = total > 0 || dataReady ? total : chunkSize;\n\tconst pageCount = Math.ceil(totalItems / pageSize);\n\tconst pageCountRef = useRef(pageCount);\n\tpageCountRef.current = pageCount;\n\n\tconst OuterElement = React.useMemo(\n\t\t() =>\n\t\t\tReact.forwardRef((props, ref) => (\n\t\t\t\t\n\t\t\t)),\n\t\t[],\n\t);\n\n\t// When page changes, scroll to the item\n\tconst handlePageChange = useCallback(\n\t\t(event: any, page: number) => {\n\t\t\tif (useClassicPaging) return;\n\t\t\t_virtualListRef.current?.scrollToItem((page - 1) * pageSize, 'start');\n\t\t},\n\t\t[pageSize, useClassicPaging],\n\t);\n\n\t// Pass up the current visible start index\n\tconst handleVisiableStartIndexUpdate = useCallback(\n\t\t(visibleStartIndex: number, visibleStopIndex: number) => {\n\t\t\tif (!useClassicPaging) {\n\t\t\t\tconst itemsInView = visibleStopIndex - visibleStartIndex;\n\t\t\t\tconst currentPage = Math.max(\n\t\t\t\t\tMath.round(\n\t\t\t\t\t\t((visibleStartIndex + itemsInView) / total) * pageCountRef.current,\n\t\t\t\t\t),\n\t\t\t\t\t1,\n\t\t\t\t);\n\t\t\t\tsetCurrentPage(currentPage);\n\t\t\t\tonScrollIndexUpdate?.(visibleStartIndex, currentPage, visibleStopIndex);\n\t\t\t} else {\n\t\t\t\tonScrollIndexUpdate?.(visibleStartIndex, page, visibleStopIndex);\n\t\t\t}\n\t\t},\n\t\t[onScrollIndexUpdate, pageSize, total, useClassicPaging, page],\n\t);\n\n\tconst [stageSize, setStageSize] = useState({width: 0, height: 0});\n\n\tconst scrollBarWidth = useRef(getScrollbarWidth());\n\n\tconst handleResize = useCallback(\n\t\t(width = 0, height = 0) => {\n\t\t\tif (\n\t\t\t\tsizeRef.current.width !== width ||\n\t\t\t\tsizeRef.current.height !== height\n\t\t\t) {\n\t\t\t\tsizeRef.current = {width, height};\n\t\t\t\tconst subtractFromWidth = overflown ? scrollBarWidth.current : 0;\n\t\t\t\tsetStageSize({width, height});\n\t\t\t\tonResize?.(width - subtractFromWidth, height);\n\t\t\t}\n\t\t},\n\t\t[overflown, onResize],\n\t);\n\n\tuseWhenChangedEffect(overflown, (overflown) => {\n\t\tconst subtractFromWidth = overflown ? scrollBarWidth.current : 0;\n\t\tonResize?.(\n\t\t\tsizeRef.current.width - subtractFromWidth,\n\t\t\tsizeRef.current.height,\n\t\t);\n\t});\n\n\tuseEffect(() => {\n\t\t// _virtualGridRef.current?.forceUpdate();\n\t\tinfiniteLoaderRef.current?.resetloadMoreItemsCache();\n\t}, [total]);\n\n\treturn (\n\t\t\n\t\t\t\n\t\t\t\thandleHeight\n\t\t\t\thandleWidth\n\t\t\t\tonResize={handleResize}\n\t\t\t>\n\t\t\t\t{({targetRef}) => (\n\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t{({onItemsRendered, ref}) => (\n\t\t\t\t\t\t\t\t {\n\t\t\t\t\t\t\t\t\t\tconst {\n\t\t\t\t\t\t\t\t\t\t\toverscanStartIndex,\n\t\t\t\t\t\t\t\t\t\t\toverscanStopIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStartIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStopIndex,\n\t\t\t\t\t\t\t\t\t\t} = parseOnItemsRendered\n\t\t\t\t\t\t\t\t\t\t\t? parseOnItemsRendered(params)\n\t\t\t\t\t\t\t\t\t\t\t: params;\n\n\t\t\t\t\t\t\t\t\t\thandleVisiableStartIndexUpdate(\n\t\t\t\t\t\t\t\t\t\t\tvisibleStartIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStopIndex,\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\tonItemsRendered({\n\t\t\t\t\t\t\t\t\t\t\toverscanStartIndex,\n\t\t\t\t\t\t\t\t\t\t\toverscanStopIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStartIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStopIndex,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\tprops.onItemsRendered?.({\n\t\t\t\t\t\t\t\t\t\t\toverscanStartIndex,\n\t\t\t\t\t\t\t\t\t\t\toverscanStopIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStartIndex,\n\t\t\t\t\t\t\t\t\t\t\tvisibleStopIndex,\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\tref={combineRefs(\n\t\t\t\t\t\t\t\t\t\tref,\n\t\t\t\t\t\t\t\t\t\t_virtualListRef,\n\t\t\t\t\t\t\t\t\t\tvirtualListRef,\n\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\twidth={stageSize.width}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ListItemComponent}\n\t\t\t\t\t\t\t\t\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\n\n\t\t\t{!hidePager ? (\n\t\t\t\t
\n\t\t\t\t\t{useClassicPaging ? (\n\t\t\t\t\t\t onPageChange?.(page + 1)}\n\t\t\t\t\t\t\tpage={currentPage - 1}\n\t\t\t\t\t\t\trowsPerPage={pageSize}\n\t\t\t\t\t\t\tgetItemAriaLabel={(type) => `Go to ${type} page`}\n\t\t\t\t\t\t\tshowFirstButton={pageCount > 1}\n\t\t\t\t\t\t\tshowLastButton={pageCount > 1}\n\t\t\t\t\t\t\tloading={!dataReady}\n\t\t\t\t\t\t/>\n\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) : null}\n\t\t\n\t);\n};\n\nexport const VirtualizedVariableList = withStyles(styles, {\n\tname: 'VirtualizedVariableList',\n})(React.memo(VirtualizedVariableListPrimitive)) as <\n\tItemData extends BaseItemData,\n\tChildProps extends object,\n>(\n\tprops: Omit, 'classes'>,\n) => JSX.Element;\n\nexport default VirtualizedVariableList;\n"],"names":["AssetContextPanelContainerRoot","styled","theme","_objectSpread","mixins","scrollable","display","ContextPanel","assetData","onChange","overflowParent","preventEdits","refreshAt","state","dispatch","useReducer","reducer","initialState","expandedPanel","panelPref","isOpen","openPref","isReadOnly","readOnlyPref","canEdit","hasEditablePanels","panelsAreReadOnly","lastHasUnsavedPanelsRef","useRef","hasUnsavedPanels","useEffect","current","reset","useCallback","type","ACTIONS","useUpdateEffect","editable","assetIsEditable","enabled","data","panel","SMART_LABELS_PANEL","smartLabelsEnabled","smartLabelsSupportsAsset","handleCollapseToggle","open","handlePanelDataChange","hasChanged","isValid","unsavedChanges","valid","handlePanelEditableUpdated","when","handlePanelExpandChange","isExpanded","panelName","handleReadOnlyToggle","event","on","readOnly","getCommonPanelProps","formOptions","onEditable","onUnEditable","AccordionProps","onExpandChange","expanded","hasUnsavedChanges","unsavedPanels","includes","React","Drawer","onCollapseToggle","onResized","widthPref","title","i18n","width","undefined","headerActions","IconButtonToggle","icon","PencilIcon","confirm","message","label","onToggle","AssetEditorAccordion","_extends","assetId","ATTRIBUTES_PANEL","SmartLabelsAccordion","props","useTheme","modifiedTheme","useMemo","deepmerge","MuiTextField","size","ThemeProvider","ConfirmationServiceProvider","withStyles","createStyles","root","flex","overflow","minHeight","height","name","AssetPreviewSkeleton","classes","Skeleton","className","variant","AssetPreview","_ref","loading","_objectWithoutProperties","_excluded","AssetPreviewComponent","SelectorItem","disabled","selected","AttributeSelectorItemWrapper","AttributeDropdownContainer","disableClearable","value","id","attributeId","getAttributeLabelFromId","alignItems","flexDirection","padding","spacing","header","justifyContent","marginLeft","breakpoints","down","marginTop","addButton","chip","selectorWrapper","Selector","max","Infinity","scrollNewItemsIntoView","withSetSelection","AttributeSelector","disableSetSelection","disableScrollIntoView","maxItems","selectedAttributeIds","renderItem","StoreContext","createContext","AssetAttributeProvider","children","limitToAttributeIds","onSubmit","useDefaultValues","instanceUuidRef","nanoid","progress","poll","usePoll","attributesProvider","useAttributeProvider","assetAttributeMutation","useMutation","mutationFn","setAssetAttributes","onSuccess","async","uuid","form","valuesRef","dispatcher","trigger","assetAttributeQuery","useQuery","queryKey","assetIds","queryFn","signal","getAssetAttributes","refetchOnWindowFocus","refetchOnReconnect","refetchOnMount","retry","attributeTemplates","getAllAsObject","attributes","reduce","attr","template","templateId","values","parseValue","saving","status","save","changes","actions","console","warn","Object","entries","parseInt","normalizeValue","mandatory","length","keys","mutateAsync","useForm","removeValueOnUnregister","resetWithCurrentValues","resetOnSubmit","inputForm","getInputFormObject","useWhenChangedEffect","originalValuesRef","refetch","getDefaultValues","executeAtMount","updatedFromOutside","updatedAssetId","off","dispatchActions","performLookup","useConstCallback","attribute","lookupValue","options","attributesWorking","getTemplatesEffectedByLookup","lookupValues","lookup","setValue","attributeid","setTimeout","searchValue","Provider","isLoading","isFetching","QueryClientProvider","client","queryClient","EditorContainerComponent","userPrefKey","onEditableChange","useAssetAttributeProvider","context","useContext","Error","hasChanges","hasEditableAttributes","handleAttributeSetSelectionChange","defaultSelection","AttributeSetSelectionProvider","Editor","clearable","errors","onLookup","originalValues","permissions","working","loadingValues","EditorContainer","_ref2","_excluded2","AttributeProvider","AttributeSetsProvider","objectType","SmartLabels","selectedLabels","getSelectedValues","ReadOnlyMultiSelectField","loadingValue","SmartLabelsField","LegacyFormSelectField","multiple","SmartLabelsForm","labels","submitDisabled","isSubmitting","refreshAtRef","Form","contentContainer","appliedLabels","footer","SubmitButton","fullWidth","showWorking","flexFillColumn","position","formFooter","withForm","compareProps","onLoaded","onLoading","setEditable","useState","lastEditableRef","handleSubmit","labelOptions","useSmartLabelsData","SmartLabelsComponent","SmartLabelsFormComponent","SnackbarServiceProvider","Cell","columnIndex","rowIndex","style","CellComponent","CellComponentProps","CellSkeletonComponent","CellSkeletonComponentProps","getCellComponentProps","getCellSkeletonComponentProps","columnCount","dataReady","items","cellHeight","cellWidth","sizeLimit","spaceBetween","startIndexFromPage","total","_index","singleColumnIndex","itemData","cellComponentProps","cellSkeletonComponentProps","VirtualizedGalleryRoot","VIRTUALIZED_GALLERY_CLASS_NAME","slot","pointerEvents","VirtualizedGalleryFooter","VirtualizedGalleryWrapper","InnerElement","ref","role","VirtualizedGallery","VirtualizedGalleryPrimitive","_classes","chunkSize","disableScrollShadow","hidePager","isItemLoaded","loadMoreItems","useClassicPaging","onDragSelectCancel","onDragSelected","onDragSelecting","onPageChange","onResize","onOverflownChange","onScrollIndexUpdate","scrollIndex","page","pageSize","virtualGridRef","itemTotal","currentPage","setCurrentPage","overflown","setOverflown","scrollBarWidth","getScrollbarWidth","lastRendered","overscanRowStartIndex","overscanRowStopIndex","visibleRowStartIndex","visibleRowStopIndex","overscanColumnStartIndex","overscanColumnStopIndex","visibleColumnStartIndex","visibleColumnStopIndex","rootRef","_virtualGridRef","sizeRef","ownerState","showBorder","slots","wrapper","composeClasses","getVirtualizedGalleryUtilityClass","useUtilityClasses","itemCountRef","infiniteLoaderRef","stateRef","totalItems","pageCount","Math","ceil","scrollPositionNeedsCorrectiong","scrollTopRef","scrollAtIndexRef","readyToRenderList","setReadyToRenderList","lastCellHeightRef","correctIndexOnNextRender","correctScrollOnNextEnder","_virtualGridRef$curre","scrollTo","scrollTop","handleDragSelectEnd","dims","direction","lastSelectionOverIndexes","handleDragSelectMove","_","indexes","getIndexesOrdered","currentIndexes","lastIndexes","sort","a","b","bIndex","indexOf","aIndex","DragSelectDirection","getIndexesFromDrag","itemHeight","itemWidth","rowCount","x1","y1","x2","y2","itemOffsetX","itemOffsetY","estimatedColumnStartIndex","floor","estimatedColumnStopIndex","min","estimatedRowStartIndex","estimatedRowStopIndex","rowsInvolved","i","_y1","unshift","push","columnsInvolved","_x1","y","c","x","d","index","trailing","onOverflownChangeRef","useEnhancedRef","OuterElement","ScrollBorderReactWindow","onOverflowChange","_onOverflownChangeRef","call","VirtualizedDragSelect","onDragEnd","onDragMove","onDragCancel","correctPosition","_virtualGridRef$curre2","_virtualGridRef$curre3","lastColumnCount","trueItemsIndexWithoutColumns","round","isNaN","handleScroll","scrollUpdateWasRequested","itemIndex","handlePageChange","scrollToItem","align","handleItemsRendered","_onItemsRendered","overscanStartIndex","overscanStopIndex","visibleStartIndex","visibleStopIndex","handleResize","subtractFromWidth","dimensions","correctedWidth","_infiniteLoaderRef$cu","resetloadMoreItemsCache","readyToRenderRef","columnCountReady","clsx","ResizeDetector","handleHeight","handleWidth","targetRef","InfiniteLoader","itemCount","minimumBatchSize","threshold","onItemsRendered","Grid","columnWidth","stageHeight","stageWidth","overscanRowCount","innerElementType","outerElementType","onScroll","combineRefs","rowHeight","VirtualizedListClassicPager","count","rowsPerPage","getItemAriaLabel","showFirstButton","showLastButton","Pagination","VirtualizedVariableListPrimitive","itemSize","parseOnItemsRendered","virtualListRef","ListItemComponent","ListItemComponentProps","_virtualListRef","_virtualListRef$curre","pageCountRef","_virtualListRef$curre2","handleVisiableStartIndexUpdate","itemsInView","stageSize","setStageSize","_infiniteLoaderRef$cu2","scrollWrapper","VariableSizeList","overscanCount","rows","viewportWidth","params","_props$onItemsRendere","VirtualizedVariableList"],"sourceRoot":""}