@ynput/ayon-frontend-shared 0.2.43 → 0.2.45
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_virtual/index.cjs4.js +1 -1
- package/dist/_virtual/index.cjs5.js +1 -1
- package/dist/_virtual/index.es4.js +5 -2
- package/dist/_virtual/index.es4.js.map +1 -1
- package/dist/_virtual/index.es5.js +2 -5
- package/dist/_virtual/index.es5.js.map +1 -1
- package/dist/node_modules/remove-accents/index.cjs.js +1 -1
- package/dist/node_modules/remove-accents/index.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/CSSTransition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/Transition.es.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.cjs.js +1 -1
- package/dist/shared/node_modules/react-transition-group/esm/utils/PropTypes.es.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.cjs.js.map +1 -1
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js +73 -68
- package/dist/shared/src/api/queries/userDashboard/getUserDashboard.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuContainer.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuContainer.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuContainer.es.js +58 -59
- package/dist/shared/src/components/Menu/MenuContainer.es.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js +1 -1
- package/dist/shared/src/components/Menu/MenuItem.cjs.js.map +1 -1
- package/dist/shared/src/components/Menu/MenuItem.es.js +21 -21
- package/dist/shared/src/components/Menu/MenuItem.es.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.cjs.js.map +1 -1
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js +23 -22
- package/dist/shared/src/containers/DetailsPanel/DetailsPanel.es.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.cjs.js.map +1 -1
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js +2 -3
- package/dist/shared/src/containers/Feed/components/ActivityComment/ActivityComment.es.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js +1 -1
- package/dist/shared/src/context/DetailsPanelContext.cjs.js.map +1 -1
- package/dist/shared/src/context/DetailsPanelContext.es.js +79 -80
- package/dist/shared/src/context/DetailsPanelContext.es.js.map +1 -1
- package/dist/shared/src/context/MenuContext.cjs.js +1 -1
- package/dist/shared/src/context/MenuContext.cjs.js.map +1 -1
- package/dist/shared/src/context/MenuContext.es.js +11 -10
- package/dist/shared/src/context/MenuContext.es.js.map +1 -1
- package/dist/types/api/queries/userDashboard/getUserDashboard.d.ts +1 -0
- package/dist/types/context/MenuContext.d.ts +3 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [] }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName },\n { forceRefetch: true },\n ),\n ).unwrap(),\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate(\n { projectName },\n { forceRefetch: true },\n ),\n ).unwrap(),\n ]\n\n const response = await Promise.all(responses)\n\n const projectData = response[0] as ProjectModel | undefined\n const anatomyData = response[1] as Anatomy | undefined\n\n if (projectData) {\n projectInfo[projectName] = { ...projectData, anatomy: anatomyData }\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","token","patchKanbanTask","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","draft","index","t","handlePubSub","_topic","message","project","entityId","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","projectInfo","responses","projectQueries","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"getUserDashboard.es.js","sources":["../../../../../../src/api/queries/userDashboard/getUserDashboard.ts"],"sourcesContent":["import {\n gqlApi,\n GetKanbanProjectUsersQuery,\n GetKanbanQuery,\n ProjectModel,\n KanbanNode,\n Anatomy,\n} from '@shared/api/generated'\nimport { projectQueries } from '@shared/api/queries/project'\nimport { PubSub } from '@shared/util'\nimport convertAccessGroupsData, { AccessGroups } from './convertAccessGroupsData'\n\n// GetKanban response type\nexport type GetKanbanResponse = KanbanNode[]\n\n// GetKanbanProjectUsers response type\nexport type KanbanProjectUserNode = Omit<\n GetKanbanProjectUsersQuery['users']['edges'][0]['node'],\n 'accessGroups'\n> & { accessGroups: AccessGroups; projects: string[]; avatarUrl: string }\nexport type GetKanbanProjectUsersResponse = KanbanProjectUserNode[]\n\nimport { DefinitionsFromApi, OverrideResultType, TagTypesFromApi } from '@reduxjs/toolkit/query'\nimport getUserProjectsAccess from './getUserProjectsAccess'\nimport { ThunkDispatch, UnknownAction } from '@reduxjs/toolkit'\n\ntype Definitions = DefinitionsFromApi<typeof gqlApi>\ntype TagTypes = TagTypesFromApi<typeof gqlApi>\n// update the definitions to include the new types\ntype UpdatedDefinitions = Omit<\n Definitions,\n 'GetKanban' | 'GetKanbanTasks' | 'GetKanbanProjectUsers'\n> & {\n GetKanban: OverrideResultType<Definitions['GetKanban'], GetKanbanResponse>\n GetKanbanTasks: OverrideResultType<Definitions['GetKanbanTasks'], GetKanbanResponse>\n GetKanbanProjectUsers: OverrideResultType<\n Definitions['GetKanbanProjectUsers'],\n GetKanbanProjectUsersResponse\n >\n}\n\n// get edges and sort by task label || name\nconst transformKanban = (response: GetKanbanQuery) =>\n response.kanban.edges\n .map(({ node }) => node)\n .sort((a, b) => {\n const aLabel = a.label || a.name\n const bLabel = b.label || b.name\n return aLabel.localeCompare(bLabel)\n })\n\nconst provideKanbanTags = (result: GetKanbanResponse | undefined, _error: any, args: any) =>\n result?.length\n ? [\n { type: 'kanBanTask', id: 'LIST' },\n ...result.flatMap(({ id, projectName, assignees }) => [\n { type: 'task', id },\n { type: 'kanban', id: 'project-' + projectName },\n ...assignees.map((assignee) => ({ type: 'kanban', id: 'user-' + assignee })),\n ...assignees.map((assignee) => ({\n type: 'kanban',\n id: 'user-' + assignee + '-project-' + projectName,\n })),\n { type: 'kanban', id: JSON.stringify(args) },\n ]),\n ]\n : [{ type: 'kanBanTask', id: 'LIST' }]\n\nexport const getKanbanTasks = async (\n {\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n },\n dispatch: ThunkDispatch<any, any, UnknownAction>,\n) => {\n try {\n // get the task\n const response = await dispatch(\n enhancedDashboardGraphqlApi.endpoints.GetKanbanTasks.initiate(\n { projects, taskIds },\n { forceRefetch: true },\n ),\n )\n\n if (response.status === 'rejected' || !response.data) {\n console.error('No tasks found', taskIds)\n throw new Error(`No tasks found ${taskIds.join(', ')}`)\n }\n\n if (response.status !== 'fulfilled') return []\n // get tasks from response (usually only one task)\n return response.data\n } catch (error) {\n console.error(error)\n return []\n }\n}\n\nconst enhancedDashboardGraphqlApi = gqlApi.enhanceEndpoints<TagTypes, UpdatedDefinitions>({\n endpoints: {\n GetKanban: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n async onCacheEntryAdded(\n { assignees = [], projects = [] } = {},\n { updateCachedData, cacheDataLoaded, cacheEntryRemoved, dispatch },\n ) {\n let token\n try {\n // wait for the initial query to resolve before proceeding\n await cacheDataLoaded\n\n const patchKanbanTask = async ({\n projects = [],\n taskIds = [],\n }: {\n projects: string[]\n taskIds: string[]\n }) => {\n const tasks = await getKanbanTasks({ projects, taskIds }, dispatch)\n\n // get all tasks that have been ADDED to the assignees\n const tasksWithArgAssignees = tasks.filter((task) =>\n task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n // get all tasks that have been REMOVED from the assignees\n const tasksWithoutArgAssignees = tasks.filter(\n (task) => !task.assignees.some((assignee) => assignees?.includes(assignee)),\n )\n\n // patch the kanban query by adding new tasks and remove old tasks\n updateCachedData((draft) => {\n // add new tasks\n tasksWithArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index === -1) {\n draft.push(task)\n } else {\n // update the task\n draft[index] = task\n }\n })\n // remove old tasks\n tasksWithoutArgAssignees.forEach((task) => {\n const index = draft.findIndex((t) => t.id === task.id)\n if (index !== -1) {\n draft.splice(index, 1)\n }\n })\n })\n }\n\n const handlePubSub = async (_topic: string, message: any) => {\n const project = message.project as string\n // first check the project name as selected\n if (!projects?.includes(project)) return console.log('project not selected')\n // then get entity id\n const entityId = message.summary.entityId\n if (!entityId) return console.log('no entity id found')\n\n // patch task updates into kanban cache\n patchKanbanTask({\n taskIds: [entityId],\n projects: [project],\n })\n }\n\n // sub to websocket topic\n token = PubSub.subscribe('entity.task', handlePubSub)\n } catch (error) {\n console.error(error)\n // no-op in case `cacheEntryRemoved` resolves before `cacheDataLoaded`,\n // in which case `cacheDataLoaded` will throw\n }\n // cacheEntryRemoved will resolve when the cache subscription is no longer active\n await cacheEntryRemoved\n // perform cleanup steps once the `cacheEntryRemoved` promise resolves\n PubSub.unsubscribe(token)\n },\n // // there is only one cache for kanban\n // serializeQueryArgs: () => '',\n // // whenever the assignees or projects change, we need to refetch the one query\n // forceRefetch: (params) => {\n // const { currentArg, previousArg } = params\n // // if the assignees are different, we need to refetch the query\n // if (!isEqual(currentArg?.assignees, previousArg?.assignees)) return true\n // // if the projects are different, we need to refetch the query\n // if (!isEqual(currentArg?.projects, previousArg?.projects)) return true\n // return false\n // },\n },\n // same query as GetKanban but for specific tasks\n // used mainly for patching tasks into the kanban cache\n GetKanbanTasks: {\n transformResponse: transformKanban,\n providesTags: provideKanbanTags,\n },\n // get all users on all selected projects\n GetKanbanProjectUsers: {\n transformResponse: (response: GetKanbanProjectUsersQuery, _meta, { projects } = {}) =>\n response.users.edges.map(({ node: user }) => {\n const accessGroups = convertAccessGroupsData(user.accessGroups)\n // parse access groups json\n const isUser = !user.isManager && !user.isAdmin\n // get the projects that the user has access to\n let projectsAccess = isUser ? getUserProjectsAccess(accessGroups) : projects\n if (typeof projectsAccess === 'string' || !projectsAccess) projectsAccess = []\n\n // assignees select requires avatarUrl\n const avatarUrl = `/api/users/${user.name}/avatar`\n\n return {\n ...user,\n accessGroups: accessGroups,\n projects: projectsAccess,\n avatarUrl,\n }\n }),\n providesTags: (result) =>\n result?.length\n ? [\n { type: 'user', id: 'LIST' },\n ...result.map(({ name }) => ({ type: 'user', id: name })),\n ]\n : [{ type: 'user', id: 'LIST' }],\n },\n },\n})\n\nexport const { useGetKanbanQuery, useGetKanbanProjectUsersQuery } = enhancedDashboardGraphqlApi\n\ntype GetProjectsInfoParams = {\n projects: string[]\n anatomy?: boolean\n}\n\nexport type ProjectModeWithAnatomy = ProjectModel & { anatomy?: Anatomy }\n\nexport type GetProjectsInfoResponse = { [projectName: string]: ProjectModeWithAnatomy | undefined }\n\nconst injectedDashboardRestApi = enhancedDashboardGraphqlApi.injectEndpoints({\n endpoints: (build) => ({\n getProjectsInfo: build.query<GetProjectsInfoResponse, GetProjectsInfoParams>({\n async queryFn({ projects = [], anatomy = true }, { dispatch }) {\n try {\n // get project info for each project\n const projectInfo: Record<string, ProjectModeWithAnatomy | undefined> = {}\n for (const project of projects) {\n const projectName = project as string\n // hopefully this will be cached\n // it also allows for different combination of projects but still use the cache\n const responses = [\n dispatch(\n projectQueries.endpoints.getProject.initiate(\n { projectName },\n { forceRefetch: true },\n ),\n ).unwrap(),\n ...(anatomy\n ? [\n dispatch(\n projectQueries.endpoints.getProjectAnatomy.initiate(\n { projectName },\n { forceRefetch: true },\n ),\n ).unwrap(),\n ]\n : []),\n ]\n\n const settled = await Promise.allSettled(responses)\n\n const projectDataResult = settled[0]\n const projectData =\n projectDataResult.status === 'fulfilled'\n ? (projectDataResult.value as ProjectModel)\n : undefined\n const anatomyData =\n anatomy && settled[1]?.status === 'fulfilled'\n ? (settled[1].value as Anatomy)\n : undefined\n\n if (projectData) {\n projectInfo[projectName] = {\n ...projectData,\n anatomy: anatomyData,\n } as ProjectModeWithAnatomy\n }\n }\n\n return { data: projectInfo, meta: undefined, error: undefined }\n } catch (error: any) {\n console.error(error)\n return { error, meta: undefined, data: undefined }\n }\n },\n providesTags: (_res, _error, { projects }) =>\n projects.map((projectName) => ({ type: 'project', id: projectName })),\n }),\n }),\n})\n\nexport const { useGetProjectsInfoQuery } = injectedDashboardRestApi\nexport { injectedDashboardRestApi as dashboardQueries }\n"],"names":["transformKanban","response","node","a","b","aLabel","bLabel","provideKanbanTags","result","_error","args","id","projectName","assignees","assignee","getKanbanTasks","projects","taskIds","dispatch","enhancedDashboardGraphqlApi","error","gqlApi","updateCachedData","cacheDataLoaded","cacheEntryRemoved","token","patchKanbanTask","tasks","tasksWithArgAssignees","task","tasksWithoutArgAssignees","draft","index","t","handlePubSub","_topic","message","project","entityId","PubSub","_meta","user","accessGroups","convertAccessGroupsData","projectsAccess","getUserProjectsAccess","avatarUrl","name","useGetKanbanQuery","useGetKanbanProjectUsersQuery","injectedDashboardRestApi","build","anatomy","projectInfo","responses","projectQueries","settled","projectDataResult","projectData","anatomyData","_res","useGetProjectsInfoQuery"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../../../../_virtual/jsx-runtime.cjs.js"),u=require("react"),M=require("../../context/MenuContext.cjs.js"),j=require("react-dom"),q=require("clsx"),p=require("./Menu.styled.cjs.js"),C=require("./useMenuPosition.cjs.js"),h=({id:n,target:c,targetId:l="",align:a="right",theme:s="light",children:d,...f})=>{const{menuOpen:t,setMenuOpen:o,navigate:i}=M.useMenuContext(),g=t===n,r=()=>{o(!1)},x=e=>{console.log("navigate and close"),r(),!i&&e?console.log("navigate not found"):i&&e&&i(e)};return g?m.jsxRuntimeExports.jsx(v,{handleClose:r,handleNavigate:x,target:c,targetId:l,align:a,theme:s,children:d,...f}):null},v=({handleClose:n,handleNavigate:c,target:l,targetId:a,align:s="right",children:d,...f})=>{const{position:t,menuRef:o}=C.useMenuPosition(l??null,a??"",s);u.useEffect(()=>{t&&o.current&&o.current.querySelectorAll("li, button")[0]?.focus()},[t]);const i=e=>{e.key==="Escape"&&n()},g=e=>{e.target.id==="dialog"&&n()},r=u.Children.map(d,(e,y)=>u.isValidElement(e)?u.cloneElement(e,{onClose:n,index:y,navigate:c}):e),x=t||{top:0,left:0,opacity:0,visibility:"hidden"};return j.createPortal(m.jsxRuntimeExports.jsx(p.Dialog,{open:!0,onClick:g,onKeyDown:i,...f,id:"dialog",children:m.jsxRuntimeExports.jsx(p.DialogContent,{id:"content",style:x,className:q(s),ref:o,children:r})}),document.body)};exports.MenuContainer=h;
|
|
2
2
|
//# sourceMappingURL=MenuContainer.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuContainer.cjs.js","sources":["../../../../../src/components/Menu/MenuContainer.tsx"],"sourcesContent":["import React, { useEffect, ReactNode } from 'react'\nimport { useMenuContext } from '@shared/context/MenuContext'\nimport {
|
|
1
|
+
{"version":3,"file":"MenuContainer.cjs.js","sources":["../../../../../src/components/Menu/MenuContainer.tsx"],"sourcesContent":["import React, { useEffect, ReactNode } from 'react'\nimport { useMenuContext } from '@shared/context/MenuContext'\nimport { createPortal } from 'react-dom'\nimport clsx from 'clsx'\nimport * as Styled from './Menu.styled'\nimport { useMenuPosition } from './useMenuPosition'\n\ntype AlignType = 'left' | 'right'\ntype ThemeType = 'light' | 'dark'\n\ninterface MenuContainerProps {\n id: string | undefined\n target?: HTMLElement | null\n targetId?: string\n align?: AlignType\n theme?: ThemeType\n children: ReactNode\n [key: string]: any\n}\n\nexport const MenuContainer: React.FC<MenuContainerProps> = ({\n id,\n target,\n targetId = '',\n align = 'right',\n theme = 'light',\n children,\n ...props\n}) => {\n const { menuOpen, setMenuOpen, navigate } = useMenuContext()\n const isOpen = menuOpen === id\n\n const handleClose = () => {\n setMenuOpen(false)\n }\n\n const handleNavigate = (path?: string) => {\n console.log('navigate and close')\n handleClose()\n if (!navigate && path) {\n console.log('navigate not found')\n } else if (navigate && path) {\n navigate(path)\n }\n }\n\n if (!isOpen) return null\n\n return (\n <MenuInner\n {...{\n handleClose,\n handleNavigate,\n target,\n targetId,\n align,\n theme,\n children,\n ...props,\n }}\n />\n )\n}\n\ninterface MenuInnerProps {\n handleClose: () => void\n handleNavigate: (path?: string) => void\n target?: HTMLElement | null\n targetId?: string\n align?: AlignType\n children: ReactNode\n [key: string]: any\n}\n\nconst MenuInner: React.FC<MenuInnerProps> = ({\n handleClose,\n handleNavigate,\n target,\n targetId,\n align = 'right',\n children,\n ...props\n}) => {\n const { position, menuRef } = useMenuPosition(target ?? null, targetId ?? '', align)\n\n // Focus management\n useEffect(() => {\n if (position && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [position])\n\n // Keyboard handling\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') handleClose()\n }\n\n // Click outside handling\n const handleOnClick = (e: React.MouseEvent<HTMLDialogElement>) => {\n if ((e.target as HTMLElement).id === 'dialog') handleClose()\n }\n\n // Attach props to children\n const childrenWithProps = React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onClose: handleClose,\n index: i,\n navigate: handleNavigate,\n } as any)\n }\n return child\n })\n\n const menuPosition = position || { top: 0, left: 0, opacity: 0, visibility: 'hidden' as const }\n\n return createPortal(\n <Styled.Dialog\n open={true}\n onClick={handleOnClick}\n onKeyDown={handleKeyDown}\n {...props}\n id=\"dialog\"\n >\n <Styled.DialogContent\n id=\"content\"\n style={menuPosition}\n className={clsx(align)}\n ref={menuRef as any}\n >\n {childrenWithProps}\n </Styled.DialogContent>\n </Styled.Dialog>,\n document.body,\n )\n}\n"],"names":["MenuContainer","id","target","targetId","align","theme","children","props","menuOpen","setMenuOpen","navigate","useMenuContext","isOpen","handleClose","handleNavigate","path","jsx","MenuInner","position","menuRef","useMenuPosition","useEffect","handleKeyDown","handleOnClick","childrenWithProps","React","child","i","menuPosition","createPortal","Styled.Dialog","Styled.DialogContent","clsx"],"mappings":"6TAoBaA,EAA8C,CAAC,CAC1D,GAAAC,EACA,OAAAC,EACA,SAAAC,EAAW,GACX,MAAAC,EAAQ,QACR,MAAAC,EAAQ,QACR,SAAAC,EACA,GAAGC,CACL,IAAM,CACJ,KAAM,CAAE,SAAAC,EAAU,YAAAC,EAAa,SAAAC,CAAA,EAAaC,EAAAA,eAAA,EACtCC,EAASJ,IAAaP,EAEtBY,EAAc,IAAM,CACxBJ,EAAY,EAAK,CACnB,EAEMK,EAAkBC,GAAkB,CACxC,QAAQ,IAAI,oBAAoB,EAChCF,EAAA,EACI,CAACH,GAAYK,EACf,QAAQ,IAAI,oBAAoB,EACvBL,GAAYK,GACrBL,EAASK,CAAI,CAEjB,EAEA,OAAKH,EAGHI,EAAAA,kBAAAA,IAACC,EAAA,CAEG,YAAAJ,EACA,eAAAC,EACA,OAAAZ,EACA,SAAAC,EACA,MAAAC,EACA,MAAAC,EACA,SAAAC,EACA,GAAGC,CACL,CAAA,EAbgB,IAgBtB,EAYMU,EAAsC,CAAC,CAC3C,YAAAJ,EACA,eAAAC,EACA,OAAAZ,EACA,SAAAC,EACA,MAAAC,EAAQ,QACR,SAAAE,EACA,GAAGC,CACL,IAAM,CACJ,KAAM,CAAE,SAAAW,EAAU,QAAAC,CAAA,EAAYC,EAAAA,gBAAgBlB,GAAU,KAAMC,GAAY,GAAIC,CAAK,EAGnFiB,EAAAA,UAAU,IAAM,CACVH,GAAYC,EAAQ,SACRA,EAAQ,QAAQ,iBAAiB,YAAY,EAAE,CAAC,GACvD,MAAA,CAEX,EAAG,CAACD,CAAQ,CAAC,EAGb,MAAMI,EAAiB,GAA2B,CAC5C,EAAE,MAAQ,UAAUT,EAAA,CAC1B,EAGMU,EAAiB,GAA2C,CAC3D,EAAE,OAAuB,KAAO,UAAUV,EAAA,CACjD,EAGMW,EAAoBC,EAAM,SAAS,IAAInB,EAAU,CAACoB,EAAOC,IACzDF,EAAM,eAAeC,CAAK,EACrBD,EAAM,aAAaC,EAAO,CAC/B,QAASb,EACT,MAAOc,EACP,SAAUb,CAAA,CACJ,EAEHY,CACR,EAEKE,EAAeV,GAAY,CAAE,IAAK,EAAG,KAAM,EAAG,QAAS,EAAG,WAAY,QAAA,EAE5E,OAAOW,EAAAA,aACLb,EAAAA,kBAAAA,IAACc,EAAAA,OAAA,CACC,KAAM,GACN,QAASP,EACT,UAAWD,EACV,GAAGf,EACJ,GAAG,SAEH,SAAAS,EAAAA,kBAAAA,IAACe,EAAAA,cAAA,CACC,GAAG,UACH,MAAOH,EACP,UAAWI,EAAK5B,CAAK,EACrB,IAAKe,EAEJ,SAAAK,CAAA,CAAA,CACH,CAAA,EAEF,SAAS,IAAA,CAEb"}
|
|
@@ -1,77 +1,76 @@
|
|
|
1
1
|
import { j as g } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import
|
|
3
|
-
import { useMenuContext as
|
|
4
|
-
import {
|
|
5
|
-
import
|
|
6
|
-
import j from "
|
|
7
|
-
import {
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
...u
|
|
2
|
+
import p, { useEffect as y } from "react";
|
|
3
|
+
import { useMenuContext as h } from "../../context/MenuContext.es.js";
|
|
4
|
+
import { createPortal as v } from "react-dom";
|
|
5
|
+
import C from "clsx";
|
|
6
|
+
import { Dialog as j, DialogContent as E } from "./Menu.styled.es.js";
|
|
7
|
+
import { useMenuPosition as M } from "./useMenuPosition.es.js";
|
|
8
|
+
const N = ({
|
|
9
|
+
id: n,
|
|
10
|
+
target: l,
|
|
11
|
+
targetId: c = "",
|
|
12
|
+
align: a = "right",
|
|
13
|
+
theme: r = "light",
|
|
14
|
+
children: u,
|
|
15
|
+
...f
|
|
17
16
|
}) => {
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
},
|
|
21
|
-
console.log("navigate and close"),
|
|
17
|
+
const { menuOpen: t, setMenuOpen: o, navigate: i } = h(), m = t === n, s = () => {
|
|
18
|
+
o(!1);
|
|
19
|
+
}, d = (e) => {
|
|
20
|
+
console.log("navigate and close"), s(), !i && e ? console.log("navigate not found") : i && e && i(e);
|
|
22
21
|
};
|
|
23
|
-
return
|
|
24
|
-
|
|
22
|
+
return m ? /* @__PURE__ */ g.jsx(
|
|
23
|
+
D,
|
|
25
24
|
{
|
|
26
|
-
handleClose:
|
|
27
|
-
handleNavigate:
|
|
28
|
-
target:
|
|
29
|
-
targetId:
|
|
30
|
-
align:
|
|
31
|
-
theme:
|
|
32
|
-
children:
|
|
33
|
-
...
|
|
25
|
+
handleClose: s,
|
|
26
|
+
handleNavigate: d,
|
|
27
|
+
target: l,
|
|
28
|
+
targetId: c,
|
|
29
|
+
align: a,
|
|
30
|
+
theme: r,
|
|
31
|
+
children: u,
|
|
32
|
+
...f
|
|
34
33
|
}
|
|
35
34
|
) : null;
|
|
36
|
-
},
|
|
37
|
-
handleClose:
|
|
38
|
-
handleNavigate:
|
|
39
|
-
target:
|
|
40
|
-
targetId:
|
|
41
|
-
align:
|
|
42
|
-
children:
|
|
43
|
-
...
|
|
35
|
+
}, D = ({
|
|
36
|
+
handleClose: n,
|
|
37
|
+
handleNavigate: l,
|
|
38
|
+
target: c,
|
|
39
|
+
targetId: a,
|
|
40
|
+
align: r = "right",
|
|
41
|
+
children: u,
|
|
42
|
+
...f
|
|
44
43
|
}) => {
|
|
45
|
-
const { position:
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
}, [
|
|
49
|
-
const
|
|
50
|
-
e.key === "Escape" &&
|
|
51
|
-
},
|
|
52
|
-
e.target.id === "dialog" &&
|
|
53
|
-
},
|
|
54
|
-
onClose:
|
|
44
|
+
const { position: t, menuRef: o } = M(c ?? null, a ?? "", r);
|
|
45
|
+
y(() => {
|
|
46
|
+
t && o.current && o.current.querySelectorAll("li, button")[0]?.focus();
|
|
47
|
+
}, [t]);
|
|
48
|
+
const i = (e) => {
|
|
49
|
+
e.key === "Escape" && n();
|
|
50
|
+
}, m = (e) => {
|
|
51
|
+
e.target.id === "dialog" && n();
|
|
52
|
+
}, s = p.Children.map(u, (e, x) => p.isValidElement(e) ? p.cloneElement(e, {
|
|
53
|
+
onClose: n,
|
|
55
54
|
index: x,
|
|
56
|
-
navigate:
|
|
57
|
-
}) : e),
|
|
58
|
-
return
|
|
55
|
+
navigate: l
|
|
56
|
+
}) : e), d = t || { top: 0, left: 0, opacity: 0, visibility: "hidden" };
|
|
57
|
+
return v(
|
|
59
58
|
/* @__PURE__ */ g.jsx(
|
|
60
|
-
|
|
59
|
+
j,
|
|
61
60
|
{
|
|
62
61
|
open: !0,
|
|
63
|
-
onClick:
|
|
64
|
-
onKeyDown:
|
|
65
|
-
...
|
|
62
|
+
onClick: m,
|
|
63
|
+
onKeyDown: i,
|
|
64
|
+
...f,
|
|
66
65
|
id: "dialog",
|
|
67
66
|
children: /* @__PURE__ */ g.jsx(
|
|
68
|
-
|
|
67
|
+
E,
|
|
69
68
|
{
|
|
70
69
|
id: "content",
|
|
71
|
-
style:
|
|
72
|
-
className:
|
|
70
|
+
style: d,
|
|
71
|
+
className: C(r),
|
|
73
72
|
ref: o,
|
|
74
|
-
children:
|
|
73
|
+
children: s
|
|
75
74
|
}
|
|
76
75
|
)
|
|
77
76
|
}
|
|
@@ -80,6 +79,6 @@ const q = ({
|
|
|
80
79
|
);
|
|
81
80
|
};
|
|
82
81
|
export {
|
|
83
|
-
|
|
82
|
+
N as MenuContainer
|
|
84
83
|
};
|
|
85
84
|
//# sourceMappingURL=MenuContainer.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuContainer.es.js","sources":["../../../../../src/components/Menu/MenuContainer.tsx"],"sourcesContent":["import React, { useEffect, ReactNode } from 'react'\nimport { useMenuContext } from '@shared/context/MenuContext'\nimport {
|
|
1
|
+
{"version":3,"file":"MenuContainer.es.js","sources":["../../../../../src/components/Menu/MenuContainer.tsx"],"sourcesContent":["import React, { useEffect, ReactNode } from 'react'\nimport { useMenuContext } from '@shared/context/MenuContext'\nimport { createPortal } from 'react-dom'\nimport clsx from 'clsx'\nimport * as Styled from './Menu.styled'\nimport { useMenuPosition } from './useMenuPosition'\n\ntype AlignType = 'left' | 'right'\ntype ThemeType = 'light' | 'dark'\n\ninterface MenuContainerProps {\n id: string | undefined\n target?: HTMLElement | null\n targetId?: string\n align?: AlignType\n theme?: ThemeType\n children: ReactNode\n [key: string]: any\n}\n\nexport const MenuContainer: React.FC<MenuContainerProps> = ({\n id,\n target,\n targetId = '',\n align = 'right',\n theme = 'light',\n children,\n ...props\n}) => {\n const { menuOpen, setMenuOpen, navigate } = useMenuContext()\n const isOpen = menuOpen === id\n\n const handleClose = () => {\n setMenuOpen(false)\n }\n\n const handleNavigate = (path?: string) => {\n console.log('navigate and close')\n handleClose()\n if (!navigate && path) {\n console.log('navigate not found')\n } else if (navigate && path) {\n navigate(path)\n }\n }\n\n if (!isOpen) return null\n\n return (\n <MenuInner\n {...{\n handleClose,\n handleNavigate,\n target,\n targetId,\n align,\n theme,\n children,\n ...props,\n }}\n />\n )\n}\n\ninterface MenuInnerProps {\n handleClose: () => void\n handleNavigate: (path?: string) => void\n target?: HTMLElement | null\n targetId?: string\n align?: AlignType\n children: ReactNode\n [key: string]: any\n}\n\nconst MenuInner: React.FC<MenuInnerProps> = ({\n handleClose,\n handleNavigate,\n target,\n targetId,\n align = 'right',\n children,\n ...props\n}) => {\n const { position, menuRef } = useMenuPosition(target ?? null, targetId ?? '', align)\n\n // Focus management\n useEffect(() => {\n if (position && menuRef.current) {\n const first = menuRef.current.querySelectorAll('li, button')[0] as HTMLElement\n first?.focus()\n }\n }, [position])\n\n // Keyboard handling\n const handleKeyDown = (e: React.KeyboardEvent) => {\n if (e.key === 'Escape') handleClose()\n }\n\n // Click outside handling\n const handleOnClick = (e: React.MouseEvent<HTMLDialogElement>) => {\n if ((e.target as HTMLElement).id === 'dialog') handleClose()\n }\n\n // Attach props to children\n const childrenWithProps = React.Children.map(children, (child, i) => {\n if (React.isValidElement(child)) {\n return React.cloneElement(child, {\n onClose: handleClose,\n index: i,\n navigate: handleNavigate,\n } as any)\n }\n return child\n })\n\n const menuPosition = position || { top: 0, left: 0, opacity: 0, visibility: 'hidden' as const }\n\n return createPortal(\n <Styled.Dialog\n open={true}\n onClick={handleOnClick}\n onKeyDown={handleKeyDown}\n {...props}\n id=\"dialog\"\n >\n <Styled.DialogContent\n id=\"content\"\n style={menuPosition}\n className={clsx(align)}\n ref={menuRef as any}\n >\n {childrenWithProps}\n </Styled.DialogContent>\n </Styled.Dialog>,\n document.body,\n )\n}\n"],"names":["MenuContainer","id","target","targetId","align","theme","children","props","menuOpen","setMenuOpen","navigate","useMenuContext","isOpen","handleClose","handleNavigate","path","jsx","MenuInner","position","menuRef","useMenuPosition","useEffect","handleKeyDown","handleOnClick","childrenWithProps","React","child","i","menuPosition","createPortal","Styled.Dialog","Styled.DialogContent","clsx"],"mappings":";;;;;;;AAoBO,MAAMA,IAA8C,CAAC;AAAA,EAC1D,IAAAC;AAAA,EACA,QAAAC;AAAA,EACA,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,OAAAC,IAAQ;AAAA,EACR,UAAAC;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,EAAE,UAAAC,GAAU,aAAAC,GAAa,UAAAC,EAAA,IAAaC,EAAA,GACtCC,IAASJ,MAAaP,GAEtBY,IAAc,MAAM;AACxB,IAAAJ,EAAY,EAAK;AAAA,EACnB,GAEMK,IAAiB,CAACC,MAAkB;AACxC,YAAQ,IAAI,oBAAoB,GAChCF,EAAA,GACI,CAACH,KAAYK,IACf,QAAQ,IAAI,oBAAoB,IACvBL,KAAYK,KACrBL,EAASK,CAAI;AAAA,EAEjB;AAEA,SAAKH,IAGHI,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MAEG,aAAAJ;AAAA,MACA,gBAAAC;AAAA,MACA,QAAAZ;AAAA,MACA,UAAAC;AAAA,MACA,OAAAC;AAAA,MACA,OAAAC;AAAA,MACA,UAAAC;AAAA,MACA,GAAGC;AAAA,IACL;AAAA,EAAA,IAbgB;AAgBtB,GAYMU,IAAsC,CAAC;AAAA,EAC3C,aAAAJ;AAAA,EACA,gBAAAC;AAAA,EACA,QAAAZ;AAAA,EACA,UAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,UAAAE;AAAA,EACA,GAAGC;AACL,MAAM;AACJ,QAAM,EAAE,UAAAW,GAAU,SAAAC,EAAA,IAAYC,EAAgBlB,KAAU,MAAMC,KAAY,IAAIC,CAAK;AAGnF,EAAAiB,EAAU,MAAM;AACd,IAAIH,KAAYC,EAAQ,WACRA,EAAQ,QAAQ,iBAAiB,YAAY,EAAE,CAAC,GACvD,MAAA;AAAA,EAEX,GAAG,CAACD,CAAQ,CAAC;AAGb,QAAMI,IAAgB,CAAC,MAA2B;AAChD,IAAI,EAAE,QAAQ,YAAUT,EAAA;AAAA,EAC1B,GAGMU,IAAgB,CAAC,MAA2C;AAChE,IAAK,EAAE,OAAuB,OAAO,YAAUV,EAAA;AAAA,EACjD,GAGMW,IAAoBC,EAAM,SAAS,IAAInB,GAAU,CAACoB,GAAOC,MACzDF,EAAM,eAAeC,CAAK,IACrBD,EAAM,aAAaC,GAAO;AAAA,IAC/B,SAASb;AAAA,IACT,OAAOc;AAAA,IACP,UAAUb;AAAA,EAAA,CACJ,IAEHY,CACR,GAEKE,IAAeV,KAAY,EAAE,KAAK,GAAG,MAAM,GAAG,SAAS,GAAG,YAAY,SAAA;AAE5E,SAAOW;AAAA,IACLb,gBAAAA,EAAAA;AAAAA,MAACc;AAAAA,MAAA;AAAA,QACC,MAAM;AAAA,QACN,SAASP;AAAA,QACT,WAAWD;AAAA,QACV,GAAGf;AAAA,QACJ,IAAG;AAAA,QAEH,UAAAS,gBAAAA,EAAAA;AAAAA,UAACe;AAAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,OAAOH;AAAA,YACP,WAAWI,EAAK5B,CAAK;AAAA,YACrB,KAAKe;AAAA,YAEJ,UAAAK;AAAA,UAAA;AAAA,QAAA;AAAA,MACH;AAAA,IAAA;AAAA,IAEF,SAAS;AAAA,EAAA;AAEb;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),t=require("@ynput/ayon-react-components"),M=require("react"),m=require("./Menu.styled.cjs.js"),N=require("lodash"),P=require("react-router-dom"),C=require("clsx");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");const
|
|
1
|
+
"use strict";const e=require("../../../../_virtual/jsx-runtime.cjs.js"),t=require("@ynput/ayon-react-components"),M=require("react"),m=require("./Menu.styled.cjs.js"),N=require("lodash"),P=require("react-router-dom"),C=require("clsx");require("../../context/RemoteModulesContext.cjs.js");require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");const L=require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");require("../../context/UriContext.cjs.js");const q=M.forwardRef(({label:r,icon:i,img:n,highlighted:j,notification:l,selected:p,danger:R,items:d=[],className:h,isLink:o,isDev:g,shortcut:u,disabled:E,powerFeature:I,active:w,...c},y)=>{const x=N.isArray(r)?r:[r],{powerLicense:f}=L.usePowerpack(),s=!f&&I,a=e.jsxRuntimeExports.jsxs(m.Item,{ref:y,className:C("menu-item",{highlighted:j,selected:p,notification:l,danger:R,dev:g,disabled:E,power:s},h),...c,"aria-label":x.join(", "),children:[(i||s)&&e.jsxRuntimeExports.jsx(t.Icon,{icon:s?"bolt":i}),n&&e.jsxRuntimeExports.jsx(m.Img,{src:n,alt:`${r} icon`}),x.map((k,A)=>e.jsxRuntimeExports.jsx("span",{children:k},A)),u&&e.jsxRuntimeExports.jsx(t.ShortcutTag,{style:{minWidth:22,textAlign:"center"},align:"right",children:u}),w&&e.jsxRuntimeExports.jsx(t.Icon,{icon:"check",style:{marginLeft:"auto"}}),!!d.length&&e.jsxRuntimeExports.jsx(t.Icon,{icon:"arrow_right",className:"more"})]});return o?e.jsxRuntimeExports.jsx(P.Link,{to:o,target:c.target,children:a}):a});q.displayName="MenuItem";module.exports=q;
|
|
2
2
|
//# sourceMappingURL=MenuItem.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.cjs.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense
|
|
1
|
+
{"version":3,"file":"MenuItem.cjs.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":"6hCA2BA,MAAMA,EAAWC,EAAAA,WACf,CACE,CACE,MAAAC,EACA,KAAAC,EACA,IAAAC,EACA,YAAAC,EACA,aAAAC,EACA,SAAAC,EACA,OAAAC,EACA,MAAAC,EAAQ,CAAA,EACR,UAAAC,EACA,OAAAC,EACA,MAAAC,EACA,SAAAC,EACA,SAAAC,EACA,aAAAC,EACA,OAAAC,EACA,GAAGC,CAAA,EAELC,IACG,CACH,MAAMC,EAAcC,EAAAA,QAAQlB,CAAK,EAAIA,EAAQ,CAACA,CAAK,EAC7C,CAAE,aAAAmB,CAAA,EAAiBC,eAAA,EACnBC,EAAiB,CAACF,GAAgBN,EAElCS,EACJC,EAAAA,kBAAAA,KAACC,EAAAA,KAAA,CACC,IAAAR,EACA,UAAWS,EACT,YACA,CACE,YAAAtB,EACA,SAAAE,EACA,aAAAD,EACA,OAAAE,EACA,IAAKI,EACL,SAAAE,EACA,MAAOS,CAAA,EAETb,CAAA,EAED,GAAGO,EACJ,aAAYE,EAAY,KAAK,IAAI,EAE/B,SAAA,EAAAhB,GAAQoB,IAAmBK,EAAAA,kBAAAA,IAACC,EAAAA,KAAA,CAAK,KAAMN,EAAiB,OAASpB,EAAO,EACzEC,GAAOwB,EAAAA,kBAAAA,IAACE,MAAA,CAAW,IAAK1B,EAAK,IAAK,GAAGF,CAAK,QAAS,EACnDiB,EAAY,IAAI,CAACjB,EAAO6B,4BACtB,OAAA,CAAkB,SAAA7B,CAAAA,EAAR6B,CAAc,CAC1B,EACAlB,GACCe,EAAAA,kBAAAA,IAACI,EAAAA,YAAA,CAAY,MAAO,CAAE,SAAU,GAAI,UAAW,QAAA,EAAY,MAAO,QAC/D,SAAAnB,CAAA,CACH,EAEDG,2BAAWa,EAAAA,KAAA,CAAK,KAAK,QAAQ,MAAO,CAAE,WAAY,MAAA,EAAU,EAE5D,CAAC,CAACpB,EAAM,gCAAWoB,EAAAA,KAAA,CAAK,KAAK,cAAc,UAAU,MAAA,CAAO,CAAA,CAAA,CAAA,EAIjE,OAAIlB,0BAECsB,EAAAA,KAAA,CAAK,GAAItB,EAAQ,OAAQM,EAAM,OAC7B,SAAAO,EACH,EAGKA,CAEX,CACF,EAEAxB,EAAS,YAAc"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { j as r } from "../../../../_virtual/jsx-runtime.es.js";
|
|
2
|
-
import { Icon as
|
|
3
|
-
import { forwardRef as
|
|
4
|
-
import { Item as
|
|
5
|
-
import { isArray as
|
|
2
|
+
import { Icon as m, ShortcutTag as L } from "@ynput/ayon-react-components";
|
|
3
|
+
import { forwardRef as M } from "react";
|
|
4
|
+
import { Item as P, Img as R } from "./Menu.styled.es.js";
|
|
5
|
+
import { isArray as $ } from "lodash";
|
|
6
6
|
import { Link as v } from "react-router-dom";
|
|
7
7
|
import E from "clsx";
|
|
8
8
|
import "../../context/RemoteModulesContext.es.js";
|
|
@@ -22,27 +22,27 @@ import "../../context/GlobalContext.es.js";
|
|
|
22
22
|
import "../../context/ProjectContext.es.js";
|
|
23
23
|
import "../../context/ProjectFoldersContext.es.js";
|
|
24
24
|
import "../../context/UriContext.es.js";
|
|
25
|
-
const S =
|
|
25
|
+
const S = M(
|
|
26
26
|
({
|
|
27
27
|
label: t,
|
|
28
|
-
icon:
|
|
28
|
+
icon: i,
|
|
29
29
|
img: e,
|
|
30
30
|
highlighted: l,
|
|
31
31
|
notification: f,
|
|
32
32
|
selected: x,
|
|
33
|
-
danger:
|
|
34
|
-
items:
|
|
35
|
-
className:
|
|
33
|
+
danger: j,
|
|
34
|
+
items: u = [],
|
|
35
|
+
className: d,
|
|
36
36
|
isLink: s,
|
|
37
|
-
isDev:
|
|
37
|
+
isDev: g,
|
|
38
38
|
shortcut: p,
|
|
39
39
|
disabled: h,
|
|
40
40
|
powerFeature: w,
|
|
41
41
|
active: I,
|
|
42
42
|
...n
|
|
43
43
|
}, y) => {
|
|
44
|
-
const a =
|
|
45
|
-
|
|
44
|
+
const a = $(t) ? t : [t], { powerLicense: A } = F(), o = !A && w, c = /* @__PURE__ */ r.jsxs(
|
|
45
|
+
P,
|
|
46
46
|
{
|
|
47
47
|
ref: y,
|
|
48
48
|
className: E(
|
|
@@ -51,22 +51,22 @@ const S = P(
|
|
|
51
51
|
highlighted: l,
|
|
52
52
|
selected: x,
|
|
53
53
|
notification: f,
|
|
54
|
-
danger:
|
|
55
|
-
dev:
|
|
56
|
-
disabled: h
|
|
54
|
+
danger: j,
|
|
55
|
+
dev: g,
|
|
56
|
+
disabled: h,
|
|
57
57
|
power: o
|
|
58
58
|
},
|
|
59
|
-
|
|
59
|
+
d
|
|
60
60
|
),
|
|
61
61
|
...n,
|
|
62
62
|
"aria-label": a.join(", "),
|
|
63
63
|
children: [
|
|
64
|
-
(
|
|
65
|
-
e && /* @__PURE__ */ r.jsx(
|
|
64
|
+
(i || o) && /* @__PURE__ */ r.jsx(m, { icon: o ? "bolt" : i }),
|
|
65
|
+
e && /* @__PURE__ */ r.jsx(R, { src: e, alt: `${t} icon` }),
|
|
66
66
|
a.map((N, k) => /* @__PURE__ */ r.jsx("span", { children: N }, k)),
|
|
67
|
-
p && /* @__PURE__ */ r.jsx(
|
|
68
|
-
I && /* @__PURE__ */ r.jsx(
|
|
69
|
-
!!
|
|
67
|
+
p && /* @__PURE__ */ r.jsx(L, { style: { minWidth: 22, textAlign: "center" }, align: "right", children: p }),
|
|
68
|
+
I && /* @__PURE__ */ r.jsx(m, { icon: "check", style: { marginLeft: "auto" } }),
|
|
69
|
+
!!u.length && /* @__PURE__ */ r.jsx(m, { icon: "arrow_right", className: "more" })
|
|
70
70
|
]
|
|
71
71
|
}
|
|
72
72
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.es.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense
|
|
1
|
+
{"version":3,"file":"MenuItem.es.js","sources":["../../../../../src/components/Menu/MenuItem.tsx"],"sourcesContent":["import { Icon, ShortcutTag } from '@ynput/ayon-react-components'\nimport React, { forwardRef } from 'react'\nimport * as Styled from './Menu.styled'\nimport { isArray } from 'lodash'\nimport { Link } from 'react-router-dom'\nimport clsx from 'clsx'\nimport { usePowerpack } from '@shared/context'\nimport { MenuItemType } from './Menu'\n\nexport interface MenuItemProps extends Omit<React.HTMLAttributes<HTMLElement>, 'label'> {\n label?: string | string[]\n icon?: string\n img?: string\n highlighted?: boolean\n notification?: boolean\n selected?: boolean\n danger?: boolean\n items?: MenuItemType[]\n isLink?: string\n isDev?: boolean\n shortcut?: string\n disabled?: boolean\n powerFeature?: string\n active?: boolean\n target?: string\n}\n\nconst MenuItem = forwardRef<HTMLLIElement, MenuItemProps>(\n (\n {\n label,\n icon,\n img,\n highlighted,\n notification,\n selected,\n danger,\n items = [],\n className,\n isLink,\n isDev,\n shortcut,\n disabled,\n powerFeature,\n active,\n ...props\n },\n ref,\n ) => {\n const labelsArray = isArray(label) ? label : [label]\n const { powerLicense } = usePowerpack()\n const isPowerFeature = !powerLicense && powerFeature\n\n const Item = (\n <Styled.Item\n ref={ref}\n className={clsx(\n 'menu-item',\n {\n highlighted: highlighted,\n selected: selected,\n notification: notification,\n danger: danger,\n dev: isDev,\n disabled: disabled,\n power: isPowerFeature,\n },\n className,\n )}\n {...props}\n aria-label={labelsArray.join(', ')}\n >\n {(icon || isPowerFeature) && <Icon icon={isPowerFeature ? 'bolt' : icon!} />}\n {img && <Styled.Img src={img} alt={`${label} icon`} />}\n {labelsArray.map((label, index) => (\n <span key={index}>{label}</span>\n ))}\n {shortcut && (\n <ShortcutTag style={{ minWidth: 22, textAlign: 'center' }} align={'right'}>\n {shortcut}\n </ShortcutTag>\n )}\n {active && <Icon icon=\"check\" style={{ marginLeft: 'auto' }} />}\n\n {!!items.length && <Icon icon=\"arrow_right\" className=\"more\" />}\n </Styled.Item>\n )\n\n if (isLink) {\n return (\n <Link to={isLink} target={props.target}>\n {Item}\n </Link>\n )\n } else {\n return Item\n }\n },\n)\n\nMenuItem.displayName = 'MenuItem'\n\nexport default MenuItem\n"],"names":["MenuItem","forwardRef","label","icon","img","highlighted","notification","selected","danger","items","className","isLink","isDev","shortcut","disabled","powerFeature","active","props","ref","labelsArray","isArray","powerLicense","usePowerpack","isPowerFeature","Item","jsxs","Styled.Item","clsx","jsx","Icon","Styled.Img","index","ShortcutTag","Link"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AA2BA,MAAMA,IAAWC;AAAA,EACf,CACE;AAAA,IACE,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,KAAAC;AAAA,IACA,aAAAC;AAAA,IACA,cAAAC;AAAA,IACA,UAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC,IAAQ,CAAA;AAAA,IACR,WAAAC;AAAA,IACA,QAAAC;AAAA,IACA,OAAAC;AAAA,IACA,UAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,QAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAELC,MACG;AACH,UAAMC,IAAcC,EAAQlB,CAAK,IAAIA,IAAQ,CAACA,CAAK,GAC7C,EAAE,cAAAmB,EAAA,IAAiBC,EAAA,GACnBC,IAAiB,CAACF,KAAgBN,GAElCS,IACJC,gBAAAA,EAAAA;AAAAA,MAACC;AAAAA,MAAA;AAAA,QACC,KAAAR;AAAA,QACA,WAAWS;AAAA,UACT;AAAA,UACA;AAAA,YACE,aAAAtB;AAAA,YACA,UAAAE;AAAA,YACA,cAAAD;AAAA,YACA,QAAAE;AAAA,YACA,KAAKI;AAAA,YACL,UAAAE;AAAA,YACA,OAAOS;AAAA,UAAA;AAAA,UAETb;AAAA,QAAA;AAAA,QAED,GAAGO;AAAA,QACJ,cAAYE,EAAY,KAAK,IAAI;AAAA,QAE/B,UAAA;AAAA,WAAAhB,KAAQoB,MAAmBK,gBAAAA,EAAAA,IAACC,GAAA,EAAK,MAAMN,IAAiB,SAASpB,GAAO;AAAA,UACzEC,KAAOwB,gBAAAA,EAAAA,IAACE,GAAA,EAAW,KAAK1B,GAAK,KAAK,GAAGF,CAAK,SAAS;AAAA,UACnDiB,EAAY,IAAI,CAACjB,GAAO6B,4BACtB,QAAA,EAAkB,UAAA7B,EAAAA,GAAR6B,CAAc,CAC1B;AAAA,UACAlB,KACCe,gBAAAA,EAAAA,IAACI,GAAA,EAAY,OAAO,EAAE,UAAU,IAAI,WAAW,SAAA,GAAY,OAAO,SAC/D,UAAAnB,EAAA,CACH;AAAA,UAEDG,2BAAWa,GAAA,EAAK,MAAK,SAAQ,OAAO,EAAE,YAAY,OAAA,GAAU;AAAA,UAE5D,CAAC,CAACpB,EAAM,gCAAWoB,GAAA,EAAK,MAAK,eAAc,WAAU,OAAA,CAAO;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAIjE,WAAIlB,0BAECsB,GAAA,EAAK,IAAItB,GAAQ,QAAQM,EAAM,QAC7B,UAAAO,GACH,IAGKA;AAAAA,EAEX;AACF;AAEAxB,EAAS,cAAc;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),z=require("@ynput/ayon-react-components"),n=require("react"),Pe=require("react-router-dom"),he=require("./hooks/useDetailsPanelURLSync.cjs.js"),v=require("./DetailsPanel.styled.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");const ge=require("../../api/queries/entities/getEntityPanel.cjs.js"),Te=require("../../api/queries/entities/transformDetailsPanelData.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("clsx");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("react-toastify");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("lodash");require("uuid");const De=require("../../util/extractEntityHierarchyFromParents.cjs.js");require("../../util/pubsub.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../context/RemoteModulesContext.cjs.js");const b=require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");const Re=require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");const Ne=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");const ve=require("../../context/UriContext.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/Feed.styled.cjs.js");require("date-fns");require("../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");require("../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../ProjectTreeTable/components/SelectionCell.cjs.js");require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");const be=require("./DetailsPanelHeader/DetailsPanelHeader.cjs.js"),Ce=require("./DetailsPanelFiles/DetailsPanelFiles.cjs.js"),we=require("./hooks/useGetEntityPath.cjs.js"),Fe=require("./helpers/getAllProjectsStatuses.cjs.js"),Se=require("./FeedWrapper.cjs.js"),ke=require("./FeedContextWrapper.cjs.js"),Le=require("./helpers/mergeProjectInfo.cjs.js");require("./DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("./DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("./DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../Actions/Actions.styled.cjs.js");require("../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../Actions/ActionIcon.cjs.js");require("../Views/context/ViewsContext.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");const We=require("../../components/EntityPath/EntityPath.cjs.js");require("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");const Ie=require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");const Ue=require("../../components/Watchers/Watchers.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/PricingLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../components/SizeSlider/SizeSlider.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Feedback/FeedbackContext.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/Chips/Chips.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../components/AccessUser/AccessUser.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../components/Menu/Menu.styled.cjs.js");require("../../components/Menu/MenuItem.cjs.js");const J=["product","representation"],He=({entityType:h,entitySubTypes:x=[],entitiesData:g=[],entities:q=[],tagsOptions:Y=[],disabledStatuses:Z,projectUsers:C,disabledProjectUsers:$,activeProjectUsers:w,projectsInfo:E={},projectNames:ee=[],isSlideOut:d=!1,style:_e={},scope:o,isCompact:re=!1,onClose:T,onWatchersUpdate:F,onOpenViewer:ie,onEntityFocus:te,onOpen:S,onUriOpen:k,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,entityListId:U,guestCategories:ue={}})=>{const{closeSlideOut:H,openPip:se,user:O,isGuest:ne,entities:u,setEntities:D,slideOut:_}=b.useDetailsPanelContext(),{currentTab:a,setTab:m,isFeed:qe}=b.useScopedDetailsPanel(o),[Ae,ae]=Pe.useSearchParams(),A=n.useRef(!1),i=u?.entityType??h,G=u?.entities??q,oe=u?.entitySubTypes??x,ce=u?.entities?[]:g,c=u?.entities?u.entities.map(e=>e.projectName):ee;n.useEffect(()=>{S&&!A.current&&(A.current=!0,S())},[]),n.useEffect(()=>{J.includes(i)&&a!=="details"&&m("details")},[i,a,m]),n.useEffect(()=>{q.length&&u&&D(null)},[q,u,D]);const j=n.useMemo(()=>Le(E,c),[E,c]),M=n.useMemo(()=>({task:j.taskTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{}),folder:j.folderTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{}),product:j.productTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{})}),[j]);n.useEffect(()=>{a==="files"&&i!=="version"&&m("activity")},[i,a,o]);let l=G.length?G.map(e=>({id:e.id,projectName:e.projectName})):ce.map(e=>({id:e.id,projectName:e.projectName}));l=l.filter(e=>e.id);const{data:s=[],isFetching:p,isError:le,originalArgs:pe}=ge.useGetEntitiesDetailsPanelQuery({entityType:i,entities:l},{skip:!l.length||!Te.detailsPanelEntityTypes.includes(i)});n.useEffect(()=>{d||H()},[pe,d]),n.useEffect(()=>{if(!p&&u?.source&&["uri","url"].includes(u.source)&&u?.entities?.length&&k){const e=s.find(r=>r.id===u.entities[0].id);if(!e)return;k(e)}},[s,p]);const V=Fe(E),y=c[0],B=E[y]||{},de=s[0]||{},P=s[s.length-1],R=c[c.length-1],[Q,ye]=we({entity:de,entityType:i,projectName:y,isLoading:p}),{setEntityUri:me,setUri:fe}=ve.useURIContext();n.useEffect(()=>{if(!P?.parents||!R)return;const{folderPath:e,taskName:r,versionName:f,productName:X}=De.extractEntityHierarchyFromParents(P.parents,i,P.name);return me({projectName:R,folderPath:e,taskName:r,productName:X,versionName:f}),()=>{fe("")}},[s,c,i]),he({entityData:P,project:R,activeEntityType:i,entitiesToQuery:l});const xe=()=>{ae(e=>{const r=new URLSearchParams(e);return r.delete("project"),r.delete("type"),r.delete("id"),r},{replace:!0})},N=()=>{T?.(),D(null),xe(),H()};n.useEffect(()=>{const e=r=>{if(r.key==="Escape"&&T){const f=r.target;if(["INPUT","TEXTAREA","SELECT"].includes(f.tagName)||f.isContentEditable||d===!1&&(f.closest("#viewer-dialog")||_))return;N()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[N,d,_]);const{requestPipWindow:Ee}=Re.usePiPWindow(),je=()=>{se({entityType:i,entities:l,scope:o}),Ee(500,500)},K=()=>!(c.length>1||ne&&(!U||!Object.prototype.hasOwnProperty.call(ue,O.attrib?.email||"")));return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(v.Panel,{className:"details-panel",children:[t.jsxRuntimeExports.jsxs(v.Toolbar,{children:[t.jsxRuntimeExports.jsx(We.EntityPath,{segments:Q,versions:ye,projectName:y,hideProjectName:d,isLoading:p||!Q.length,entityType:i,scope:o,entityTypeIcons:M}),t.jsxRuntimeExports.jsxs(v.RightTools,{className:"right-tools",children:[t.jsxRuntimeExports.jsx(Ue.Watchers,{entities:l,entityType:i,options:C||[],onWatchersUpdate:F&&F,userName:O.name}),t.jsxRuntimeExports.jsx(z.Button,{icon:"picture_in_picture",variant:"text","data-tooltip":"Picture in Picture",onClick:je}),(T||q)&&t.jsxRuntimeExports.jsx(z.Button,{icon:"close",variant:"text",onClick:N,"data-shortcut":"Escape"})]})]}),t.jsxRuntimeExports.jsx(be,{entityType:i,entitySubTypes:oe,entities:s,users:C,disabledAssignees:$,disabledStatuses:Z,tagsOptions:Y,isFetching:p,isCompact:re,currentTab:a,onTabChange:m,entityTypeIcons:M,onOpenViewer:e=>ie?.(e),onEntityFocus:te}),t.jsxRuntimeExports.jsxs(Ne.ProjectContextProvider,{projectName:y,children:[qe&&!le&&t.jsxRuntimeExports.jsx(Se,{entityType:i,entities:s,activeUsers:w||[],projectInfo:B,projectName:y,disabled:!K(),scope:o,statuses:V,readOnly:!1,entityListId:U,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,currentTab:a,setCurrentTab:m,isSlideOut:d}),a==="files"&&t.jsxRuntimeExports.jsx(Ce,{entities:s,scope:o,isLoadingVersion:p}),a==="details"&&t.jsxRuntimeExports.jsx(ke,{entityType:i,entities:s,activeUsers:w||[],projectInfo:B,projectName:y,disabled:!K(),scope:o,statuses:V,readOnly:!1,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,children:t.jsxRuntimeExports.jsx(Ie.DetailsPanelDetails,{entities:s,isLoading:p})})]})]})})},Oe=({isOpen:h,entityType:x,...g})=>{const{entities:q}=b.useDetailsPanelContext();return!h&&!q||!x&&!q?null:t.jsxRuntimeExports.jsx(He,{...g,entityType:x||q?.entityType})};exports.DetailsPanel=Oe;exports.entitiesWithoutFeed=J;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("../../../../_virtual/jsx-runtime.cjs.js"),z=require("@ynput/ayon-react-components"),n=require("react"),he=require("./hooks/useDetailsPanelURLSync.cjs.js"),v=require("./DetailsPanel.styled.cjs.js");require("../../api/base/client.cjs.js");require("../../api/generated/graphql.cjs.js");require("../../api/generated/graphqlLinks.cjs.js");require("../../api/generated/access.cjs.js");require("../../api/generated/actions.cjs.js");require("../../api/generated/activityFeed.cjs.js");require("../../api/generated/addons.cjs.js");require("../../api/generated/anatomy.cjs.js");require("../../api/generated/attributes.cjs.js");require("../../api/generated/authentication.cjs.js");require("../../api/generated/bundles.cjs.js");require("../../api/generated/configuration.cjs.js");require("../../api/generated/desktop.cjs.js");require("../../api/generated/entityLists.cjs.js");require("../../api/generated/events.cjs.js");require("../../api/generated/files.cjs.js");require("../../api/generated/folders.cjs.js");require("../../api/generated/inbox.cjs.js");require("../../api/generated/links.cjs.js");require("../../api/generated/market.cjs.js");require("../../api/generated/onboarding.cjs.js");require("../../api/generated/operations.cjs.js");require("../../api/generated/products.cjs.js");require("../../api/generated/projectDashboard.cjs.js");require("../../api/generated/projects.cjs.js");require("../../api/generated/reviewables.cjs.js");require("../../api/generated/services.cjs.js");require("../../api/generated/system.cjs.js");require("../../api/generated/tasks.cjs.js");require("../../api/generated/teams.cjs.js");require("../../api/generated/thumbnails.cjs.js");require("../../api/generated/uRIs.cjs.js");require("../../api/generated/users.cjs.js");require("../../api/generated/versions.cjs.js");require("../../api/generated/workfiles.cjs.js");require("../../api/generated/ynputCloud.cjs.js");require("../../api/generated/grouping.cjs.js");require("../../api/generated/views.cjs.js");require("../../api/queries/actions/getActions.cjs.js");require("../../api/queries/activities/getActivities.cjs.js");require("../../api/queries/activities/updateActivities.cjs.js");require("../../api/queries/activities/updateReaction.cjs.js");require("../../api/queries/activities/getMentions.cjs.js");require("../../api/queries/activities/getCategories.cjs.js");require("../../api/queries/addons/getAddons.cjs.js");require("../../api/queries/addons/updateAddons.cjs.js");require("../../api/queries/attributes/getAttributes.cjs.js");require("../../api/queries/attributes/updateAttributes.cjs.js");require("../../api/queries/authentication/getAuthentication.cjs.js");require("../../api/queries/cloud/cloud.cjs.js");require("../../api/queries/config/getConfig.cjs.js");require("../../api/queries/config/updateConfig.cjs.js");require("../../api/queries/entities/getEntity.cjs.js");const ge=require("../../api/queries/entities/getEntityPanel.cjs.js"),Te=require("../../api/queries/entities/transformDetailsPanelData.cjs.js");require("../../api/queries/entities/updateEntity.cjs.js");require("../../api/queries/entityLists/getLists.cjs.js");require("../../api/queries/entityLists/updateLists.cjs.js");require("../../api/queries/entityLists/getListsAttributes.cjs.js");require("../../api/queries/entityLists/updateListsAttributes.cjs.js");require("../../api/queries/entityLists/listFolders.cjs.js");require("../../api/queries/folders/getFolders.cjs.js");require("../../api/queries/grouping/getGrouping.cjs.js");require("../../api/queries/links/updateLinks.cjs.js");require("../../api/queries/links/getLinks.cjs.js");require("../../api/queries/links/getEntityLinks.cjs.js");require("../../api/queries/overview/getOverview.cjs.js");require("../../api/queries/overview/updateOverview.cjs.js");require("../../api/queries/versions/getVersionsProducts.cjs.js");require("../../api/queries/permissions/getPermissions.cjs.js");require("../../api/queries/products/createProduct.cjs.js");require("../../api/queries/project/getProject.cjs.js");require("../../api/queries/project/updateProject.cjs.js");require("../../api/queries/review/getReview.cjs.js");require("../../api/queries/review/updateReview.cjs.js");require("../../api/queries/share/share.cjs.js");require("../../api/queries/system/getSystem.cjs.js");require("../../api/queries/userDashboard/getUserDashboard.cjs.js");require("../../api/queries/users/getUsers.cjs.js");require("../../api/queries/users/updateUsers.cjs.js");require("../../api/queries/users/guests.cjs.js");require("../../api/queries/versions/updateVersions.cjs.js");require("../../api/queries/views/getViews.cjs.js");require("../../api/queries/views/updateViews.cjs.js");require("../../api/queries/watchers/getWatchers.cjs.js");require("../../api/queries/uris/getUris.cjs.js");require("../../components/AddonLoadingScreen/AddonLoadingScreen.cjs.js");require("clsx");require("../../components/ThumbnailSimple/ThumbnailSimple.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholder.cjs.js");require("../../components/EmptyPlaceholder/EmptyPlaceholderFlex.styled.cjs.js");require("react-toastify");require("@dnd-kit/core");require("@dnd-kit/sortable");require("../../components/ReviewablesList/ReviewablesList.styled.cjs.js");require("../ContextMenu/ContextMenuContext.cjs.js");;/* empty css */require("lodash");require("uuid");const De=require("../../util/extractEntityHierarchyFromParents.cjs.js");require("../../util/pubsub.cjs.js");require("../../components/ReviewablesList/ReviewablesUpload.styled.cjs.js");require("axios");require("../../context/RemoteModulesContext.cjs.js");const b=require("../../context/DetailsPanelContext.cjs.js");require("../../context/ThumbnailUploaderContext.cjs.js");require("../../context/SettingsPanelContext.cjs.js");const Re=require("../../context/pip/PiPProvider.cjs.js");require("react-dom");require("../../context/pip/PiPWrapper.cjs.js");require("../../context/AddonProjectContext.cjs.js");require("../../context/AddonContext.cjs.js");require("../../context/PowerpackContext.cjs.js");require("../../context/MoveEntityContext.cjs.js");require("../../context/MenuContext.cjs.js");require("../../context/WebsocketContext.cjs.js");require("../../context/GlobalContext.cjs.js");const Ne=require("../../context/ProjectContext.cjs.js");require("../../context/ProjectFoldersContext.cjs.js");const ve=require("../../context/UriContext.cjs.js");require("../../components/ReviewableCard/ReviewableCard.cjs.js");require("../../components/ReviewableProgressCard/ReviewableProgressCard.styled.cjs.js");require("../../components/FileThumbnail/FileThumbnail.cjs.js");require("../../components/Thumbnail/Thumbnail.styled.cjs.js");require("../../components/Thumbnail/StackedThumbnails.cjs.js");require("../Feed/context/FeedContext.cjs.js");require("../Feed/components/Tooltips/UserTooltip/UserTooltip.styled.cjs.js");require("../Feed/components/Tooltips/EntityTooltip/EntityTooltip.styled.cjs.js");require("../Feed/components/FileUploadPreview/FileUploadPreview.styled.cjs.js");require("../Feed/components/FileUploadPreview/Mimes/TextMime.cjs.js");require("react-markdown");require("remark-emoji");require("remark-gfm");require("remark-directive");require("remark-directive-rehype");require("../Feed/components/CommentInput/CommentInput.cjs.js");require("../Feed/components/ReactionContainer/Reactions.styled.cjs.js");require("../Feed/components/FilesGrid/FilesGrid.styled.cjs.js");require("../Feed/components/FileUploadCard/FileUploadCard.styled.cjs.js");require("../Feed/components/CommentInput/quillToMarkdown.cjs.js");require("../Feed/components/ActivityComment/ActivityComment.styled.cjs.js");require("../Feed/components/ActivityCheckbox/ActivityCheckbox.styled.cjs.js");require("../Feed/components/ActivityReference/ActivityReference.styled.cjs.js");require("react-router-dom");require("../Feed/components/ActivityStatus/ActivityStatus.cjs.js");require("../Feed/components/ActivityHeader/ActivityHeader.styled.cjs.js");require("../Feed/components/ActivityDate.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryTag.cjs.js");require("../Feed/components/ActivityStatusChange/ActivityStatusChange.styled.cjs.js");require("../Feed/components/ActivityAssigneeChange/ActivityAssigneeChange.styled.cjs.js");require("../Feed/components/ActivityVersions/ActivityVersions.styled.cjs.js");require("../Feed/components/ActivityGroup/ActivityGroup.styled.cjs.js");require("../Feed/Feed.styled.cjs.js");require("date-fns");require("../Feed/components/ActivityCategorySelect/ActivityCategorySelect.cjs.js");require("../Feed/components/ActivityCategorySelect/CategoryDropdownItem.cjs.js");require("@tanstack/react-virtual");require("@tanstack/react-table");require("../ProjectTreeTable/widgets/CollapsedWidget.cjs.js");require("../ProjectTreeTable/widgets/DateWidget.cjs.js");require("../ProjectTreeTable/widgets/EnumWidget.cjs.js");require("../ProjectTreeTable/widgets/TextWidget.cjs.js");require("../ProjectTreeTable/widgets/BooleanWidget.cjs.js");require("../ProjectTreeTable/widgets/CellWidget.cjs.js");require("../ProjectTreeTable/widgets/EntityNameWidget.cjs.js");require("../ProjectTreeTable/widgets/GroupHeaderWidget.cjs.js");require("../ProjectTreeTable/widgets/ThumbnailWidget.cjs.js");require("../../components/LinksManager/CellEditingDialog.cjs.js");require("../ProjectTreeTable/context/DetailsPanelEntityContext.cjs.js");require("../ProjectTreeTable/context/SelectedRowsContext.cjs.js");require("../../components/LinksManager/LinksManager.styled.cjs.js");require("../ProjectTreeTable/widgets/EmptyWidget.cjs.js");require("../ProjectTreeTable/widgets/ErrorWidget.cjs.js");require("../ProjectTreeTable/context/CellEditingContext.cjs.js");require("short-uuid");require("../ProjectTreeTable/context/SelectionCellsContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableQueriesContext.cjs.js");require("../ProjectTreeTable/context/ProjectTableContext.cjs.js");require("../ProjectTreeTable/context/ClipboardContext.cjs.js");require("../ProjectTreeTable/context/ColumnSettingsContext.cjs.js");require("../ProjectTreeTable/context/ProjectDataContext.cjs.js");require("../../../../_virtual/runtime.cjs.js");require("../../../../_virtual/semver.cjs.js");require("react-redux");require("custom-protocol-check");require("../ProjectTreeTable/components/GroupSettingsFallback.cjs.js");require("../ProjectTreeTable/ProjectTreeTable.styled.cjs.js");require("../ProjectTreeTable/components/SelectionCell.cjs.js");require("../ProjectTreeTable/components/RowSelectionHeader.cjs.js");require("../ProjectTreeTable/widgets/LoadMoreWidget.cjs.js");require("../ProjectTreeTable/components/HeaderActionButton.cjs.js");require("../ProjectTreeTable/components/ColumnHeaderMenu.cjs.js");require("../EntityPickerDialog/EntityPickerDialog.cjs.js");const be=require("./DetailsPanelHeader/DetailsPanelHeader.cjs.js"),Ce=require("./DetailsPanelFiles/DetailsPanelFiles.cjs.js"),we=require("./hooks/useGetEntityPath.cjs.js"),Fe=require("./helpers/getAllProjectsStatuses.cjs.js"),Se=require("./FeedWrapper.cjs.js"),ke=require("./FeedContextWrapper.cjs.js"),Le=require("./helpers/mergeProjectInfo.cjs.js");require("./DetailsPanelHeader/DetailsPanelHeader.styled.cjs.js");require("./DetailsPanelSlideOut/DetailsPanelSlideOut.styled.cjs.js");require("./DetailsPanelFloating/DetailsPanelFloating.styled.cjs.js");require("../Actions/Actions.styled.cjs.js");require("../Actions/ActionsDropdown/ActionsDropdown.cjs.js");require("../Actions/ActionIcon.cjs.js");require("../Views/context/ViewsContext.cjs.js");require("../Views/Views.styled.cjs.js");require("../Views/ViewsMenuContainer/ViewsMenuContainer.cjs.js");require("../Views/ViewsMenu/ViewsMenu.cjs.js");require("../../components/EntityPanelUploader/EntityPanelUploader.styled.cjs.js");require("../../components/SimpleFormDialog/SimpleFormDialog.cjs.js");const We=require("../../components/EntityPath/EntityPath.cjs.js");require("../../components/DetailsPanelAttributes/DetailsPanelAttributesEditor.cjs.js");const Ie=require("../../components/DetailsPanelDetails/DetailsPanelDetails.cjs.js");require("../../components/DetailsPanelDetails/DetailsSection.cjs.js");require("../../components/DetailsPanelDetails/FieldLabel.cjs.js");const Ue=require("../../components/Watchers/Watchers.cjs.js");require("../../components/ProjectTableSettings/ProjectTableSettings.cjs.js");require("../../components/Powerpack/PowerpackButton.cjs.js");require("../../components/Powerpack/PricingLink.cjs.js");require("../../components/Powerpack/PowerpackDialog.styled.cjs.js");require("../../components/Powerpack/CTAButton.cjs.js");require("../../components/Powerpack/RequiredAddonVersion.cjs.js");require("../../components/SizeSlider/SizeSlider.cjs.js");require("../../components/SettingsPanel/SettingsPanel.cjs.js");require("../../components/SettingsPanel/SettingsPanelItemTemplate.cjs.js");require("../../components/AttributeEditor/components/MinMaxField.cjs.js");require("../../components/EnumEditor/EnumEditor.styled.cjs.js");require("../../components/SearchFilter/filterDates.cjs.js");require("../../components/FeaturedVersionOrder/FeaturedVersionOrder.cjs.js");require("../../components/Badge/Badge.cjs.js");require("../../components/VersionUploader/components/UploadVersionDialog.cjs.js");require("../../components/VersionUploader/context/VersionUploadContext.cjs.js");require("../../components/Feedback/FeedbackContext.cjs.js");require("../../components/Feedback/SupportBubble.cjs.js");require("../../components/Chips/Chips.cjs.js");require("../../components/StyledLink/StyledLink.cjs.js");require("../../components/ShareOptionIcon/ShareOptionIcon.cjs.js");require("../../components/AccessUser/AccessUser.cjs.js");require("../../../../node_modules/match-sorter/dist/match-sorter.esm.cjs.js");require("../../components/AccessSearchInput/AccessSearchInput.styled.cjs.js");require("../../components/TableGridSwitch/TableGridSwitch.cjs.js");require("../../components/SortingSetting/SortingSetting.styled.cjs.js");require("../../components/EarlyPreview/EarlyPreview.cjs.js");require("../../components/LegacyBadge/LegacyBadge.cjs.js");require("../../components/Menu/Menu.styled.cjs.js");require("../../components/Menu/MenuItem.cjs.js");const J=["product","representation"],He=({entityType:h,entitySubTypes:x=[],entitiesData:g=[],entities:q=[],tagsOptions:Y=[],disabledStatuses:Z,projectUsers:C,disabledProjectUsers:$,activeProjectUsers:w,projectsInfo:E={},projectNames:ee=[],isSlideOut:d=!1,style:_e={},scope:o,isCompact:re=!1,onClose:T,onWatchersUpdate:F,onOpenViewer:ie,onEntityFocus:te,onOpen:S,onUriOpen:k,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,entityListId:U,guestCategories:ue={}})=>{const{closeSlideOut:H,openPip:se,user:O,isGuest:ne,entities:u,setEntities:D,slideOut:_,useSearchParams:qe}=b.useDetailsPanelContext(),{currentTab:a,setTab:m,isFeed:ae}=b.useScopedDetailsPanel(o),[Ae,oe]=qe(),A=n.useRef(!1),i=u?.entityType??h,G=u?.entities??q,ce=u?.entitySubTypes??x,le=u?.entities?[]:g,c=u?.entities?u.entities.map(e=>e.projectName):ee;n.useEffect(()=>{S&&!A.current&&(A.current=!0,S())},[]),n.useEffect(()=>{J.includes(i)&&a!=="details"&&m("details")},[i,a,m]),n.useEffect(()=>{q.length&&u&&D(null)},[q,u,D]);const j=n.useMemo(()=>Le(E,c),[E,c]),M=n.useMemo(()=>({task:j.taskTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{}),folder:j.folderTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{}),product:j.productTypes.filter(e=>!!e.icon).reduce((e,r)=>({...e,[r.name]:r.icon}),{})}),[j]);n.useEffect(()=>{a==="files"&&i!=="version"&&m("activity")},[i,a,o]);let l=G.length?G.map(e=>({id:e.id,projectName:e.projectName})):le.map(e=>({id:e.id,projectName:e.projectName}));l=l.filter(e=>e.id);const{data:s=[],isFetching:p,isError:pe,originalArgs:de}=ge.useGetEntitiesDetailsPanelQuery({entityType:i,entities:l},{skip:!l.length||!Te.detailsPanelEntityTypes.includes(i)});n.useEffect(()=>{d||H()},[de,d]),n.useEffect(()=>{if(!p&&u?.source&&["uri","url"].includes(u.source)&&u?.entities?.length&&k){const e=s.find(r=>r.id===u.entities[0].id);if(!e)return;k(e)}},[s,p]);const V=Fe(E),y=c[0],B=E[y]||{},ye=s[0]||{},P=s[s.length-1],R=c[c.length-1],[Q,me]=we({entity:ye,entityType:i,projectName:y,isLoading:p}),{setEntityUri:fe,setUri:xe}=ve.useURIContext();n.useEffect(()=>{if(!P?.parents||!R)return;const{folderPath:e,taskName:r,versionName:f,productName:X}=De.extractEntityHierarchyFromParents(P.parents,i,P.name);return fe({projectName:R,folderPath:e,taskName:r,productName:X,versionName:f}),()=>{xe("")}},[s,c,i]),he({entityData:P,project:R,activeEntityType:i,entitiesToQuery:l});const Ee=()=>{oe(e=>{const r=new URLSearchParams(e);return r.delete("project"),r.delete("type"),r.delete("id"),r},{replace:!0})},N=()=>{T?.(),D(null),Ee(),H()};n.useEffect(()=>{const e=r=>{if(r.key==="Escape"&&T){const f=r.target;if(["INPUT","TEXTAREA","SELECT"].includes(f.tagName)||f.isContentEditable||d===!1&&(f.closest("#viewer-dialog")||_))return;N()}};return window.addEventListener("keydown",e),()=>window.removeEventListener("keydown",e)},[N,d,_]);const{requestPipWindow:je}=Re.usePiPWindow(),Pe=()=>{se({entityType:i,entities:l,scope:o}),je(500,500)},K=()=>!(c.length>1||ne&&(!U||!Object.prototype.hasOwnProperty.call(ue,O.attrib?.email||"")));return t.jsxRuntimeExports.jsx(t.jsxRuntimeExports.Fragment,{children:t.jsxRuntimeExports.jsxs(v.Panel,{className:"details-panel",children:[t.jsxRuntimeExports.jsxs(v.Toolbar,{children:[t.jsxRuntimeExports.jsx(We.EntityPath,{segments:Q,versions:me,projectName:y,hideProjectName:d,isLoading:p||!Q.length,entityType:i,scope:o,entityTypeIcons:M}),t.jsxRuntimeExports.jsxs(v.RightTools,{className:"right-tools",children:[t.jsxRuntimeExports.jsx(Ue.Watchers,{entities:l,entityType:i,options:C||[],onWatchersUpdate:F&&F,userName:O.name}),t.jsxRuntimeExports.jsx(z.Button,{icon:"picture_in_picture",variant:"text","data-tooltip":"Picture in Picture",onClick:Pe}),(T||q)&&t.jsxRuntimeExports.jsx(z.Button,{icon:"close",variant:"text",onClick:N,"data-shortcut":"Escape"})]})]}),t.jsxRuntimeExports.jsx(be,{entityType:i,entitySubTypes:ce,entities:s,users:C,disabledAssignees:$,disabledStatuses:Z,tagsOptions:Y,isFetching:p,isCompact:re,currentTab:a,onTabChange:m,entityTypeIcons:M,onOpenViewer:e=>ie?.(e),onEntityFocus:te}),t.jsxRuntimeExports.jsxs(Ne.ProjectContextProvider,{projectName:y,children:[ae&&!pe&&t.jsxRuntimeExports.jsx(Se,{entityType:i,entities:s,activeUsers:w||[],projectInfo:B,projectName:y,disabled:!K(),scope:o,statuses:V,readOnly:!1,entityListId:U,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,currentTab:a,setCurrentTab:m,isSlideOut:d}),a==="files"&&t.jsxRuntimeExports.jsx(Ce,{entities:s,scope:o,isLoadingVersion:p}),a==="details"&&t.jsxRuntimeExports.jsx(ke,{entityType:i,entities:s,activeUsers:w||[],projectInfo:B,projectName:y,disabled:!K(),scope:o,statuses:V,readOnly:!1,annotations:L,removeAnnotation:W,exportAnnotationComposite:I,children:t.jsxRuntimeExports.jsx(Ie.DetailsPanelDetails,{entities:s,isLoading:p})})]})]})})},Oe=({isOpen:h,entityType:x,...g})=>{const{entities:q}=b.useDetailsPanelContext();return!h&&!q||!x&&!q?null:t.jsxRuntimeExports.jsx(He,{...g,entityType:x||q?.entityType})};exports.DetailsPanel=Oe;exports.entitiesWithoutFeed=J;
|
|
2
2
|
//# sourceMappingURL=DetailsPanel.cjs.js.map
|